Post Views:
13,517

今天用两块新硬盘,试了一下用synology创建raid1后,故意破坏其中一片硬盘,再从剩余的另一块硬盘中恢复文件。实测给synology一块新硬盘,它自己可以修复raid1。
不过比较尴尬的是,当我破坏raid1后再拔掉两块硬盘,然后重新插上,这时synology就无法识别这两块硬盘内的raid1了,更无法修复,这就很恶心了。
上网查了一下,修复方法是用linux下的mdadm挂载raid1中剩下的一块硬盘,从中取出文件。
先说一下,我是在windows虚拟机 hyper-v 里创建了一个 centos6.9 的虚拟机,把硬盘挂在虚拟机上测试的。
官方给的命令是
# mdadm -Asf && vgchange -ay
执行之后会增加一个 /dev/md*, 比如我这里增加的是 /dev/md4。有了这个md之后可以用
# mount /dev/md4 /{empty_folder}
命令挂载硬盘到指定目录,然后就可以从这个目录中访问原始 raid1 中的文件了。
用完以后用
# umount /{empty_folder}
解除挂载,然后用
# mdadm –stop /dev/md4
解除对 raid 硬盘的解析。
不过之前不知道怎么回事,官方命令我没执行成功。后来用 blkid , fdisk -l 等命令调查过,根据种种迹象得知硬盘上的三个分区,我需要的是 /dev/sdb3。
之后执行
# mdadm –assemble –run /dev/md127 /dev/sdb3
mdadm: /dev/md127 has been started with 1 drive (out of 2).
(这里md127是随便写的,应该不是非得用这个名字。)
之后执行
# mount /dev/md127 /{empty_folder}
挂载硬盘后,一样可以访问。
取消的命令分别是
# umount /{empty_folder}
或者
# umount /dev/md127
然后执行
# mdadm –stop /dev/md127
mdadm: stopped /dev/md127
值得一提的是,有人说需要用
# mdadm –examine –scan >> /etc/mdadm.conf
来修改配置文件,就可以在启动时加载磁盘阵列了,不过我这次只是想知道取出文件的方法,懒得重启测试了,这里只做记录,不再测试。