镜像服务 IMS-配置Linux虚拟机:修改grub文件磁盘标识方式为UUID

时间:2025-04-10 16:37:46

修改grub文件磁盘标识方式为UUID

以Ubuntu 20.04为例,执行blkid命令获取root分区对应的UUID并记录下来,编辑“/boot/grub/grub.cfg”文件,使用root分区的UUID来配置boot项。如果root分区已经使用UUID形式则不需要修改。具体操作方法如下:
  1. 使用root用户登录虚拟机。
  2. 执行以下命令,列出当前系统中所有已挂载文件系统的类型以及对应设备的UUID 。

    blkid

    回显信息如下所示。

    /dev/xvda1: UUID="ec51d860-34bf-4374-ad46-a0c3e337fd34" TYPE="ext3"
    /dev/xvda5: UUID="7a44a9ce-9281-4740-b95f-c8de33ae5c11" TYPE="swap"
  1. 执行以下命令,查看“grub.cfg”文件:

    cat /boot/grub/grub.cfg

    回显信息如下所示:

    ……menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    else
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    fi
    echo 'Loading Linux 3.13.0-24-generic ...'
    linux /boot/vmlinuz-3.13.0-24-generic root=/dev/xvda1 ro 
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-3.13.0-24-generic 
    }
  1. 根据“/boot/grub/grub.cfg”配置文件里标记的root分区,查找是否包括“root=/dev/xvda1”或者“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”信息。
    • 存在“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”,即root分区以UUID的表示形式,无需修改。
    • 存在“root=/dev/xvda1”,即root分区以设备名称表示的形式,请执行步骤5
  1. 根据“root=/dev/xvda1”,即root分区对应的设备名称,以及blkid命令获取的分区信息,找到root分区设备名称对应的UUID。
  2. 执行以下命令,打开“grub.cfg”文件。

    vi /boot/grub/grub.cfg

  3. 按“i”进入编辑模式,将root分区改成UUID形式,本例中将“root=/dev/xvda1”修改为“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”。
  4. 按“Esc”后,输入:wq,按“Enter”, 保存设置并退出vi编辑器。
  5. 执行以下命令,确认修改结果。

    cat /boot/grub/grub.cfg

    回显信息如下所示表示修改成功,即root分区以UUID的形式表示。

    ……menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
    recordfail
    load_video
    gfxmode $linux_gfx_mode
    insmod gzio
    insmod part_msdos
    insmod ext2
    if [ x$feature_platform_search_hint = xy ]; then
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    else
    search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
    fi
    echo 'Loading Linux 3.13.0-24-generic ...'
    linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 ro
    echo 'Loading initial ramdisk ...'
    initrd /boot/initrd.img-3.13.0-24-generic
    }
support.huaweicloud.com/bestpractice-ims/ims_bp_0021.html