如果您使用快照创建云盘后挂载到原Linux实例,新创建云盘的UUID会和原云盘冲突。本文介绍如何修改新云盘的UUID。

背景信息

使用快照创建云盘后,新创建的云盘的UUID和原云盘是一样的。如果您将新创建的云盘挂载到原来的Linux实例,此时会导致UUID冲突,存在以下问题:
  • 如果您使用系统盘快照创建一个新云盘,挂载到原Linux实例。Linux可能不是从系统盘启动,而是从新挂载的数据盘启动。
  • 如果您的云盘使用xfs文件系统,会因为UUID冲突禁止挂载(mount),提示“mount: wrong fs type, bad option, bad superblock on /dev/vdd1,”
因此,您在使用快照创建新云盘并在控制台挂载到原Linux实例后,需要登录实例修改新云盘的UUID,再执行挂载(mount)操作。关于如何修改云盘的UUID,您可以通过 blkid命令查询文件系统类型,并根据查询结果选择合适的操作:

修改ext2、ext3或ext4文件系统分区的UUID

说明 本示例以/dev/vdb1为例,您需要根据自己的设备名修改相关命令。
  1. 远程连接ECS实例。连接方式请参见通过VNC远程连接登录Linux实例
  2. 运行以下命令查询云盘的UUID。
    blkid
    查询结果如下所示,此时通过快照新创建云盘的UUID和原云盘一样。 uuid信息
  3. 运行以下命令检查文件系统。
    e2fsck -f /dev/vdb1
  4. 运行以下命令为云盘生成新的UUID。
    uuidgen | xargs tune2fs /dev/vdb1 -U
  5. 运行以下命令查看是否已经修改UUID。
    blkid
    查询结果如下,表示已经修改/dev/vdb1的UUID。 uuid已变动
  6. 运行以下命令挂载(mount)云盘。
    mount /dev/vdb1 /mnt
  7. 配置/etc/fstab文件,开机自动挂载新云盘。
    关于如何配置 /etc/fstab文件,请参见 在fstab文件中配置UUID方式自动挂载数据盘

修改xfs文件系统分区的UUID

说明 本示例以/dev/vdd1为例,您需要根据自己的设备名修改相关命令。
  1. 远程连接ECS实例。连接方式请参见通过VNC远程连接登录Linux实例
  2. 运行以下命令查询云盘的UUID。
    blkid
    查询结果如下所示,此时通过快照新创建云盘的UUID和原云盘一样。 xfs-uuid
  3. 运行以下命令为云盘生成新的UUID。
    xfs_admin -U generate /dev/vdd1
  4. 运行以下命令查看是否已经修改UUID。
    blkid
    查询结果如下,表示已经修改/dev/vdd1的UUID。 uuid结果-xfs
  5. 运行以下命令挂载(mount)云盘。
    mount /dev/vdd1 /mnt
  6. 配置/etc/fstab文件,开机自动挂载新云盘。
    关于如何配置 /etc/fstab文件,请参见 在fstab文件中配置UUID方式自动挂载数据盘

相关文档