rsync不复制分区

rsync不复制分区

我读到过一些文章说,在使用rsync将分区从一个设备复制到另一个设备后,编辑很重要UUID,因为设备不能与同一个 UUID 共存

这是真的吗?我该怎么做?

答案1

rsync不复制分区

rsync是一款文件和文件夹复制/同步工具。它非常适合将本地文件夹与远程计算机中的文件夹同步,或将一台计算机中的文件夹和文件备份到另一台计算机。

它不会克隆分区。因此,使用时无需担心分区的 UUID rsync

使用gparted(或dd)克隆分区

如果要复制分区,请使用 GUIgparted或命令行dd。它将复制原始分区,其大小和可用空间与原始分区完全相同。副本也将具有相同的 UUID。

当系统尝试通过 UUID 挂载分区(例如使用文件)/etc/fstab并发现两个分区具有相同的 UUID 时,就会出现问题。如果原始分区和副本位于两台不同的计算机中,或者副本替换了原始分区,则相同的 UUID 应该不会有问题。

要从内部为复制的分区赋予新的 UUID gparted

  1. 选择复制的分区。确保它没有被挂载
  2. 分割在顶部菜单中或右键单击图表中的分区
  3. 点击新的 UUID
  4. 单击“应用”进行更改

使用命令行分配新的 UUID(ext4仅适用于分区)

$ tune2fs -U $(uuidgen) /dev/sdXN

或者

$ tune2fs -U random /dev/sdXN

其中 X 是字母,N 是特定于感兴趣分区的数字。

查看此问题的答案问题在 Stackexchange 中了解有关使用命令行更改 UUID 的更多信息。

希望这可以帮助

答案2

rsync可以克隆你的整个/

但是使用rsyncdd或其他克隆方法时,您必须更改/etc/fstab/etc/default/grub和扩展/boot/grub/grub.cfg以使 Ubuntu 正常工作。

从这个脚本:使用 Bash 脚本将 Ubuntu 备份/克隆到另一个分区

rsync调用方式如下:

rsync -haxAX --stats --delete --info=progress2 --info=name0 --inplace  \
      /* "$TargetMnt"                                                   \
      --exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found}

请注意,您不要想要复制的目录,请使用--exclude指令指定。这些目录要么在启动时重新创建(虚拟文件系统),要么指向其他分区(如/mnt/media)。您可能还想将垃圾文件夹排除在复制之外。

完成后rsync你需要像这样更改上述文件:

sudo sed -i "s/$SourceUUID/$TargetUUID/g" "$TargetMnt"/etc/fstab
sudo sed -i "s/$SourceUUID/$TargetUUID/g" "$TargetMnt"/boot/grub/grub.cfg
sudo sed -i "s/quiet splash/nosplash/g" "$TargetMnt"/boot/grub/grub.cfg

在哪里:

  • SourceUUID=当前分区的 UUID
  • TargetUUID=目标/克隆分区的 UUID
  • TargetMnt=克隆分区的挂载点
  • s/quiet splash/nosplash/g行是可选的,以便当您启动克隆时,您会看到显示的系统消息与没有启动画面的区别。

最后,添加一个指向新克隆的 Ubuntu 的 GRUB 菜单选项,使用:

sudo update grub

相关内容