克隆机器时如何防止磁盘 UUID 不匹配?

克隆机器时如何防止磁盘 UUID 不匹配?

我已经构建了一台 Debian Linux 机器。我以压缩 tar 文件的形式捕获了整个硬盘驱动器的“图像”。然后我将其解压到另一台机器上,设置 grub 以便它可以启动。

我遇到的问题是磁盘 UUID 与原始磁盘 UUID 不同,因此该磁盘被挂载为只读。之后我可以通过在 /etc/fstab 中配置正确的 UUID 来修复此问题,但是我想避免这种情况。

在捕获原始计算机的“图像”之前,我可以在原始计算机上做什么,以便在解压到另一台计算机时避免此问题?

更新:根据对其中一个答案的有用评论,我应该澄清初始计算机和后续克隆将只有一个磁盘。

答案1

在捕获原始计算机的“图像”之前,我可以在原始计算机上做什么,以便在解压到另一台计算机时避免此问题?

而不是按名称挂载磁盘引用,而是通过

  • 已安装按标签
  • 或安装按名字

# for example when mounted by-name it would look like this in /etc/fstab

/dev/sda3   /

# and When mounted by-label it would like this in /etc/fstab

LABEL=some_name   /

正在做按标签将在新系统中工作,无需额外工作。

知道这样做按名字仅当它是系统中唯一的磁盘并保证其引用为 时,才会在新系统中工作sda。当系统中存在其他磁盘时,或者每当其他硬件被视为 时/dev/sd?,您不能依赖克隆磁盘始终存在sda,这就是按名称的问题所在。如果您的所有/etc/fstab参考资料grub都有/dev/sda,但您的磁盘也有,/dev/sdb那么找不到启动设备

你得稍微了解一下你的Linux系统,RHEL/CentOS、SLES/SUSE、Ubuntu,或者其他什么,并找到所有磁盘引用的位置。这不仅仅是/etc/fstab。这蛴螬引导加载程序最有可能是其他地方,因为它是 Linux 中最流行的。故事:我曾经使用 SLES 11,它使用 ELILO...这是 grub 的替代品,我认为这很棒...带回 ELILO! ...但为此我只需要担心除此之外的其他文件/etc/fstabelilo.conf.

一旦新克隆的磁盘启动并运行,然后在设置新系统(主机名、IP 地址等)的各种任务中,只需更新/etc/fstabgrub 文件即可返回到通过-uuid 挂载

还知道对于安装按标签您有责任保证没有其他磁盘使用相同的标签。看似简单,却很容易忘记;例如,我总是/boot简单地标记分区boot和我的/分区root。如果我去克隆磁盘,然后尝试连接其中两个磁盘并尝试启动,当有多个磁盘时系统会选择哪个分割有相同的标签吗?因此,如果您忘记了,按标签可能会咬您...系统可以轻松启动并工作,但您不会在您认为的磁盘上运行。

往下看/dev/disk/你就会看到

  • 按 ID/
  • 按标签/
  • 按部分标签/
  • by-partuuid/
  • 旁路/
  • 通过-uuid/

参考一下,应该很清楚明白了。

ls -l /dev/disk/by-label

lrwxrwxrwx. 1 root root 10 Mar  2 15:46 boot -> ../../sdc2
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 data -> ../../sda1
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 root -> ../../sdc3
lrwxrwxrwx. 1 root root 10 Mar  2 15:46 scratch -> ../../sdb1

# Explanation of these 4 listings: when installing Linux I always do
    /boot    ==> /dev/sda2  labeled as 'boot'
    /        ==> /dev/sdc3  labeled as 'root'
   
  my other disks here on this specific system I labeled as data and scratch.

答案2

  1. 用于blkid查找原始分区 UUID。
  2. 对于 ext2/ext3/ext4 分区,请sudo tune2fs -U UUID /dev/partition设置您在 1 中获得的 UUID。
  • 对于 btrfs 来说sudo btrfstune -U UUID /dev/partition
  • 对于 xfs 来说,它将是sudo xfs_admin -U UUID /dev/partition

当心它是不是建议有不同的分区相同的UUID如果您决定在同一台 PC 中插入两个磁盘,则更是如此。您的内核和您个人可能会感到困惑,并且可能会发生一些意想不到的事情。

相关内容