当 Synology NAS 出现故障时,如何使用计算机恢复数据?
解决方法
使用计算机恢复数据
-
确保您的计算机具有足够的硬盘插槽以用于安装硬盘。
-
从 Synology NAS 中卸下硬盘,然后将其安装到计算机中。对于 RAID 或 SHR 配置,必须同时在计算机中安装所有硬盘(不包括 Hot Spare 硬盘)。
-
按照本教程中的说明准备 Ubuntu 环境。
-
前往左侧栏上的文件并选择家目录。
-
右键单击并选择新建文件夹,然后创建一个或多个文件夹作为装载点来访问数据。1
-
右键单击新文件夹,单击属性,父文件夹及文件夹名称为
${mount_point}
。-
示例:如果父文件夹为
/home/ubuntu/
,且文件夹名称为Test
,则装载点为/home/ubuntu/Test/
-
-
前往左下角的显示应用程序 > 输入以搜索...。
-
在搜索栏中输入终端机,然后选择终端机。
-
输入以下命令以获取 root 权限。
sudo -i
-
输入以下命令以安装
mdadm
和lvm2
(两者都是 RAID 管理工具)。必须安装lvm2
,否则vgchange
无法正常工作。apt-get update
apt-get install -y mdadm lvm2 -
输入以下命令以重组从 Synology NAS 中卸下的所有硬盘。根据 Synology NAS 上的存储池配置,结果可能有所不同。
mdadm -AsfR && vgchange -ay
-
输入以下命令以获取
${device_path}
的信息。cat /proc/mdstat
lvs根据
pvs/vgs/lvs
的输出,设备路径如下所示:以下是与其 RAID 和存储空间类型对应的
md 状态
示例:设备路径具有单一存储空间的经典 RAIDcat /proc/mdstat
root@ubuntu:~# cat /proc/mdstat
Personalities : [raid1]
md4 : active raid1 sdc3[0]
73328704 blocks super 1.2 [1/1] [U]
unused devices:<none>
lvs无输出${device_path}
/dev/md4
设备路径具有单一存储空间的 SHRcat /proc/mdstat
root@ubuntu:~# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sda5[0]
73319616 blocks super 1.2 [1/1] [U]
unused devices:<none>
lvsroot@ubuntu:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv vg1000 -wi-a----- 69.92g
${device_path}
/dev/vg1000/lv
设备路径具有多个存储空间的经典 RAID/SHRcat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdc3[0] sdd3[1]
73328704 blocks super 1.2 [2/2] [UU]
unused devices:<none>
lvsroot@ubuntu:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy% Sync Convert
syno_vg_reserved_area vg1 -wi-a----- 12.00m
volume_1 vg1 -wi-a----- 30.00g
volume_3 vg1 -wi-a----- 30.00g
${device_path}
/dev/vg1/volume_1
/dev/vg1/volume_3 -
输入以下命令以采用只读方式装载所有硬盘,从而可访问数据。在
${device_path}
中输入设备路径(根据步骤 12 中的 RAID 和存储空间类型),并在${mount_point}
中输入装载点(在步骤 6 中创建)。数据会放在装载点下。mount ${device_path} ${mount_point} -o ro
-
在文件 > 家目录 > 步骤 5 中创建的文件夹中检查数据。
-
对于加密存储空间和共享文件夹:
如果您仍然无法通过以上步骤恢复数据,请勿尝试任何其他方法进行修复,因为这可能会对您的数据造成更多损坏。作为您的最后选择,请向当地数据救援公司寻求帮助。请理解,仍无法保证可取回数据。
在计算机上装载加密存储空间
确保您拥有加密存储空间的恢复密钥。以下步骤仅在恢复密钥正确时才有效。
-
在终端机中,输入以下命令以安装
cryptsetup
。apt-get install cryptsetup
-
输入以下命令以解码恢复密钥。
base64 --decode ${your_recovery_key_path} > ${base64_decode_output_path}
-
输入以下命令以测试恢复密钥是否正确。
cryptsetup open --test-passphrase /dev/vgX/volume_Y -S 1 -d ${base64_decode_output_path}
如果不正确,返回值会显示
No key available with this passphrase
。请找到正确的密钥并返回上一步以再次解码。 -
输入以下命令以使用解码的恢复密钥为加密存储空间解密。
cryptsetup open --allow-discards /dev/vgX/volume_Y cryptvol_Y -S 1 -d ${base64_decode_output_path}
-
输入以下命令以采用只读方式装载所有硬盘,从而可访问数据。将
${device_path}
替换为您的设备路径/dev/mapper/cryptvol_Y
,并将${mount_point}
替换为在步骤 6 中创建的装载点。数据会放在装载点下。mount ${device_path} ${mount_point} -o ro
-
请参阅步骤 14 以恢复数据。
在计算机上装载加密共享文件夹
确保您拥有加密共享文件夹的加密密钥。以下步骤仅在加密密钥正确时才有效。
-
在 Terminal 中,输入以下命令以获得 root 权限。
sudo -i
-
输入以下命令以启用
universe repo
并安装ecryptfs-utils
。apt-get-repository universe
apt-get update
apt-get install ecryptfs-utils -
输入以下命令以获取加密密钥的 FNEK(文件名加密密钥)值。
ecryptfs-add-passphrase --fnek
-
出现提示时,请在
Passphrase
字段中输入加密密钥。 -
您会看到类似于以下内容的输出:
Inserted auth tok with sig [79d78a9afb5ebc95] into the user session keyring
Inserted auth tok with sig [e4e4e8a3ca7d5d54] into the user session keyring第二个方括号中的值是您的 FNEK 值。请记下此值,因为您将在以下步骤中用到它。
-
-
使用
cd
命令导航到您在上一节的步骤 6 中创建的装载点。cd ${mount_point}
-
示例:如果装载点
${mount_point}
是/home/ubuntu/Test/
,则输入的命令会是:cd /home/ubuntu/Test/
。
-
-
创建临时文件夹作为加密共享文件夹的装载点。使用
mkdir
命令创建新文件夹。mkdir folder_name
在上面的命令中,将
folder_name
替换为要向文件夹提供的名称。 -
输入以下命令以装载加密共享文件夹。
mount -t ecryptfs folder_name
请确保将
folder_name
替换为您在上一步中创建的临时文件夹的名称。若要完成安装,需要额外的输入。请按照下列指示来操作:-
Passphrase
:输入加密密钥。 -
Select cipher
:输入1
以选择 aes 作为加密标准。 -
Select key bytes
:输入2
以选择 32 作为密钥字节。 -
Enable plaintext passthrough
:输入n
以禁用此选项。 -
Enable filename encryption
:输入y
以启用此选项。 -
Filename Encryption Key (FNEK) Signature
:输入在步骤 3 中获取的 FNEK 值。 -
输入 FNEK 值后,您会看到类似于以下的输出内容:
Attempting to mount with the following options:
ecryptfs_unlink_sigs
ecryptfs_fnek_sig=e4e4e8a3ca7d5d54
ecryptfs_key_bytes=32
ecryptfs_cipher=aes
ecryptfs_sig=79d78a9afb5ebc95
WARNING: Based on the contents of [/root/.ecryptfs/sig-cache.txt], it looks like you have never mounted with this key before.This could mean that you have typed your passphrase wrong.警告消息只是提醒。如果您已确认加密密钥正确,则可以放心地忽略此警告并继续操作。
-
Would you like to proceed with the mount
:输入y
以同意继续装载。 -
Would you like to append sig … in order to avoid this warning in the future
:输入n
以继续。 -
如果装载成功,您会看到以下输出内容:
Mounted eCryptfs
-
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。