标题中问题的简单答案是“是”。但是,您真正想要做的是下一步,即镜像现有数据。
可以转换现有磁盘,但是如上所述,由于元数据位置的原因,这是有风险的。最好用新磁盘创建一个空的(损坏的)镜像并将现有数据复制到该镜像上。然后,如果它不起作用,则只需引导回未镜像的原始文件即可。
首先,使用缺少的驱动器将其初始化/dev/sdb1
为新/dev/md0
文件并初始化文件系统(我假设使用ext3,但选择是您自己的)
mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdb1 missing
mkfs -text3 /dev/md0
现在,/dev/sda1
很可能是您的根文件系统(/
),为了安全起见,您应该从可访问这两者的实时CD,应急磁盘或其他可引导系统中进行下一步/dev/sda1
,/dev/md0
尽管我已经成功地通过进入单用户模式来做到了这一点。
将文件系统的全部内容复制/dev/sda1
到/dev/md0
。例如:
mount /dev/sda1 /mnt/a # only do this if /dev/sda1 isn't mounted as root
mount /dev/md0 /mnt/b
cd /mnt/a # or "cd /" if it's the root filesystem
cp -dpRxv . /mnt/b
编辑/etc/fstab
或以其他方式确保在下次启动时/dev/md0
挂载而不是/dev/sda1
。您的系统可能已设置为从中引导,/dev/sda1
并且引导参数可能将其指定为根设备,因此,在重新引导时,您应该手动更改它,以使根为/dev/md0
(假设/dev/sda1
为根)。重新启动后,检查/dev/md0
是否已挂载(df
)以及它是否作为降级镜像(cat /proc/mdstat
)运行。添加/dev/sda1
到数组:
mdadm /dev/md0 --add /dev/sda1
由于重建将覆盖/dev/sda1
,因此您使用的元数据版本无关紧要。与往常一样,在进行重大更改时,请进行完整备份(如果可能),或者至少确保无法重新创建的任何内容都是安全的。
您将需要重新生成引导配置以/dev/md0
用作root(如果/dev/sda1
是root),并且可能需要重新生成mdadm.conf
以确保/dev/md0
始终启动。
--add
,您需要小心,但是并不是很复杂。请参阅如何在Ubuntu中设置磁盘镜像?(由于新规则,我不能将这个问题重复提出。)