我有一个朋友的 NAS 陷入了固件升级过程,它是基于 Linux 的,我相信它在 4 个磁盘上使用软件 raid-5,使用mdadm
/dev/md*
.
产品客户支持只是告诉如何重新安装工厂固件,但所有数据都会丢失。
这位朋友已经联系了专业的恢复服务,但他们要求一些钱(不便宜)。
我对 Linux 很有信心(过去用来为嵌入式设备编写固件),但对 raid 不太有信心。
我想将磁盘连接到 Debian 电脑并将 raid 挂载为只读,如果我理解正确的话,raid 及其配置很可能会被内核自动检测到(或使用mdadm
),但是如何确保没有数据写入磁盘,安装 raid 的步骤是什么ro
?
答案1
首先插入磁盘并运行:
mdadm --examine /dev/sdb1
之后,假设它们是可读的,您应该能够使用以下命令重新组装:
mdadm --assemble /dev/md/... /dev/sdxn
如果您真的很担心,请将磁盘放在主机上,然后在运行虚拟机的用户只能读取磁盘的配置中使用虚拟机,但我怀疑这是否可行,因为磁盘上的元数据需要更新。
不过,我想到了另一个想法,如果您有空间、dd
本地磁盘并可以播放这些文件,或者执行以下操作来保存:
dd if=/dev/sdxN | gzip > /content/sdxN.gz
答案2
我必须做的事情比预期要少得多。
在连接磁盘之前,我已经安装了mdadm
软件包并用于dpkg-reconfigure mdadm
在任何 raid 上禁用任何自动功能。
连接磁盘后,Debian 内核 (3.16.0-4-amd64) 在启动时检测到 raid。
/proc/mdstat
:
Personalities : [raid6] [raid5] [raid4] [raid1]
md126 : active (auto-read-only) raid1 sdb1[0] sdd1[3] sde1[2]
20955008 blocks super 1.2 [4/3] [U_UU]
md127 : active (auto-read-only) raid5 sdb2[0] sdd2[3] sde2[2] sdc2[1]
5797132800 blocks super 1.1 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
unused devices: <none>
我不知道什么md126
是,正确的是md127
。
我尝试挂载/dev/md127
到临时目录但失败并出现错误:mount: unknown filesystem type 'LVM2_member'
我已经安装了lvm2
软件包并使用lvmdiskscan
命令lvdisplay
来显示有趣的卷。
# lvmdiskscan
/dev/14b46bb0_vg/lv53a3800a [ 5,40 TiB]
...
# lvdisplay
--- Logical volume ---
LV Path /dev/14b46bb0_vg/lv53a3800a
...
LV Size 5,40 TiB
...
然后只要安装就可以了。
mount -o ro /dev/14b46bb0_vg/lv53a3800a /tmp/raid/