我想对我的软件 RAID5 配置(3 个驱动器)进行映像,然后将其移动到一组新的硬盘驱动器。由于 CloneZilla 不支持软件 RAID,我希望执行以下操作:
使用 CloneZilla 在外部 HDD 上创建每个设备的映像(从
/dev/sda/
到sda.img
以及 和sdb
)sdc
。将新硬盘连接到计算机。
使用 Clonezilla 将每个图像恢复到相应的设备(从
sda.img
到新的/dev/sda
,同样对于sdb
和sdc
)使用
sda
、sdb
、创建新的 RAID5 。sdc
mdadm
这个程序行得通吗?我担心单独拍摄驱动器的映像是否可以使其与新的 RAID 一起使用。
答案1
您可以像您想象的那样克隆硬盘驱动器,但我建议从等式中完全删除 CloneZilla。
我认为你应该这样做:
- 确保跟踪哪些驱动器是旧驱动器、哪些驱动器是新驱动器,以及哪个磁盘映像来自哪个驱动器。
- 绝对确保
md
设备已卸载并停止!假设是,则/dev/md0
(以 root 身份)执行。umount /dev/md0
mdadm --stop /dev/md0
- 确保您的外部硬盘驱动器上有文件系统并安装它。我将用作
/mnt
演示的安装点。 - 确保您有
xz
可用的压缩机。如果不这样做,您可以使用,但请确保在命令中gzip
替换xz
为并使用文件而不是!gzip
.gz
.xz
- 对于每个驱动器,运行(在根 shell 中)
cat /dev/sdX | xz > /mnt/sdY.img.xz
。/dev/sdX
将是您从中克隆的驱动器,也是sdY.img.xz
我们将要创建的映像的名称。确保替换sdX
为适当的驱动器(例如/dev/sda
)并分别命名您的映像。 (对于克隆的第一个驱动器,将其命名为sd1.img.xz
)。正如我想象的那样,您的外部驱动器很快就会被填满,因此您可能应该执行步骤 4,然后返回到步骤 3 以获取下一个驱动器。这样,外部驱动器将仅充当一个硬盘驱动器的缓冲区,而不是阵列中所有硬盘的缓冲区。 - 现在我们要恢复驱动器。当您安装了外部硬盘驱动器并连接了新驱动器后,运行(在 root shell 中)
cat /mnt/sdY.img.xz | xz -d > /dev/sdX
wheresdY.img.xz
is your disk image and/dev/sdX
是您想要克隆到的新驱动器。 - 现在每个驱动器应该有两个副本,因此我们需要确保
mdadm
不会混淆哪个驱动器是哪个驱动器。我们可以通过覆盖旧驱动器来做到这一点,但我们只会覆盖前 64 MiB 以确保所有超级块和分区表都消失。对于每个旧驱动器执行(作为root!)dd if=/dev/zero of=/dev/sdX bs=4M count=8
。如果您希望完全覆盖驱动器(可能安全地擦除其内容),您可以cat /dev/zero > /dev/sdX
以 root 身份进行操作。 - 现在,每个驱动器应该只有一份副本,全部位于新驱动器上!
mdadm
应该以相同的方式查看它们,因此您不必进行任何重新配置。