当 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
字段中输入加密密钥。 - 您会看到类似于以下内容的输出:
第二个方括号中的值是您的 FNEK 值。请记下此值,因为您将在以下步骤中用到它。
Inserted auth tok with sig [79d78a9afb5ebc95] into the user session keyring Inserted auth tok with sig [e4e4e8a3ca7d5d54] into the user session keyring
- 出现提示时,请在
- 使用
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
上一篇:块存储/文件存储/对象存储区别 下一篇:在docker中安装onlyoffice
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。