在主板和随后的几个磁盘发生硬件故障后,我将根分区迁移到另一个驱动器。但是,考虑到/dev
其他特殊位置,我想知道我的方法是否合理?:
rsync -avzPHAKXS /mnt/old/ /mnt/new/
请注意,新指定的根驱动器安装为 ,/mnt/new
而旧指定的根驱动器安装为/mnt/old
。
这会成功还是会失败?无论如何,本周晚些时候我都会通过尝试找到答案,但获得权威答案和可行的替代方案可能会节省我几个小时。
答案1
是的,您描述的方法将起作用,假设两个磁盘都不是您的当前根/活动分区(因为它们都在 /mnt/ 下,所以看起来您没问题。
另外,你说得对,因为涉及到 md 设备,所以最好不要 dd 整个分区。这还需要你扩大文件系统,可以使用 rsync 来避免这一步骤,在这种情况下,rsync 是绝对安全的。
一些评论:
无需担心 /dev、/proc、/sys、/run 等特殊文件系统;由于这两个磁盘都不是当前根分区,因此这些文件系统未安装(假设它们不是“实时”的),并且它们包含的都是文件。有些文件是“特殊的”(可能是 fifos 或 block/char 特殊文件),但这些文件可以正常复制。
您的 rsync 行中不需要 -z;因为它是一个本地副本,并且我假设硬盘足够快,如果避免压缩/解压缩开销,它会更快。
答案2
要复制整个分区,您应该使用dd
。卸载要复制的分区。您需要知道分区的名称。您可以使用 GParted 或sudo blkid
。例如,假设您要复制的分区是sdb1
,目标是sdc1
。那么您的dd
命令将是
sudo dd if=/dev/sdb1 of=/dev/sdc1
请务必小心,dd
因为使用参数指定的目标分区of
将被覆盖。务必确保您的分区名称正确。此外,分区名称在重启后可能会更改,因此重启后不要依赖它们。