tencent cloud

文档反馈

配置 GRUB 文件磁盘标识方式为 UUID

最后更新时间:2024-01-08 09:37:01

    操作场景

    为了确保 Linux 系统在启动文件系统时能够正确识别磁盘,请您检查并正确配置 GRUB 文件磁盘标识方式。
    GRUB(GRand Unified Bootloader)是一个用于启动操作系统的引导加载器。GRUB 支持使用设备名(例如 /dev/vda1/dev/vdb1 等)来标识磁盘分区。然而,设备名称可能会因为导入镜像后实际运行环境的更改而改变。为了确保在设备名发生变化时仍能正确引导系统,您可以将 GRUB 文件中的磁盘标识方式修改为 UUID(Universally Unique Identifier,通用唯一标识符)。

    配置 GRUB 文件磁盘标识方式为 UUID

    确认 GRUB 文件路径

    GRUB 有两个常见版本,分别是 GRUB(GRUB Legacy) 和 GRUB2,GRUB 和 GRUB2 的配置文件位于不同的路径:
    对于 GRUB:配置文件通常位于 /boot/grub/menu.lst/boot/grub/grub.conf
    对于 GRUB2:配置文件通常位于 /boot/grub/grub.cfg/boot/grub2/grub.cfg
    如果您在 /boot/grub 目录下找到了 menu.lstgrub.conf 文件,那么您可能正在使用 GRUB(GRUB Legacy)。如果您在 /boot/grub/boot/grub2 目录下找到了 grub.cfg 文件,那么您可能正在使用 GRUB2。

    获取 UUID

    要获取分区的 UUID,可以使用 blkid 命令。blkid 命令会显示所有可用分区的详细信息,包括其 UUID。在终端中运行以下命令:
    sudo blkid
    得到类似如下输出,该输出表示设备/dev/vda1关联的 UUID 是 c0b9ecd8-f922-4e5d-bccb-83fbc94ad23b
    /dev/vda1: UUID="c0b9ecd8-f922-4e5d-bccb-83fbc94ad23b" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="bcfcb5cb-01"

    修改 GRUB 配置文件

    本章节以修改位于/boot/grub/grub.cfg 的 GRUB2 配置文件为例,若您使用的是 GRUB 或者发行版的 GRUB2 配置文件在/boot/grub2/grub.cfg,请您结合实际情况进行配置调整。
    1. 将当前/boot/grub/grub.cfg文件备份至 /home 目录。
    sudo cp /boot/grub/grub.cfg /home
    2. 使用 vi 编辑器,打开/boot/grub/grub.cfg文件,确认配置文件中标记的 root 分区。在本例中,root 分区位于/dev/vda1设备。
    sudo vi /boot/grub/grub.cfg
    # /boot/grub/grub.cfg
    ...
    echo 'Loading Linux 6.1.0-13-amd64 ...'
    linux /boot/vmlinuz-6.1.0-13-amd64 root=/dev/vda1 ro
    echo 'Loading initial ramdisk ...'
    ...
    3. 编辑 grub.cfg文件中以设备名称开始的配置,将root=/dev/vda1设备名称修改为root=UUID=xxx格式,root=UUID=后的内容即 blkid 命令返回的设备对应 UUID 值。该配置项可能在 grub.cfg 内出现多处,每一处都需要完成修改。
    # 修改前
    ...
    echo 'Loading Linux 6.1.0-13-amd64 ...'
    linux /boot/vmlinuz-6.1.0-13-amd64 root=/dev/vda1 ro
    echo 'Loading initial ramdisk ...'
    ...
    # 修改后
    ...
    echo 'Loading Linux 6.1.0-13-amd64 ...'
    linux /boot/vmlinuz-6.1.0-13-amd64 root=UUID=c0b9ecd8-f922-4e5d-bccb-83fbc94ad23b ro
    echo 'Loading initial ramdisk ...'
    ...
    4. Esc 输入 :wq ,并按下 Enter,保存设置并退出编辑器。
    5. (可选)执行以下命令,确保修改已成功保存。
    sudo cat /boot/grub/grub.cfg
    ...
    linux /boot/vmlinuz-6.1.0-13-amd64 root=UUID=c0b9ecd8-f922-4e5d-bccb-83fbc94ad23b ro
    ...
    6. (可选)删除/home目录下的备份 grub.cfg 文件。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持