更新时间:2026-06-03 GMT+08:00
修改grub文件磁盘标识方式为UUID
操作场景
为了确保Linux系统在启动文件系统时能够正确识别磁盘,在创建Linux私有镜像前,需要在弹性云服务器上修改grub文件磁盘标识方式为UUID。
修改GRUB属于高危操作,配置错误可能导致系统无法启动。在开始之前,强烈建议对当前虚拟机或服务器创建快照/备份,以便在操作失误时能够快速回滚。
操作步骤
- 使用root用户登录弹性云服务器。
- 确认GRUB版本与配置文件路径。Linux系统通常使用GRUB2或GRUB Legacy,它们的配置文件路径不同。
- GRUB2(目前绝大多数现代Linux发行版如:CentOS 7/8、Ubuntu 18.04+均使用):配置文件通常位于 /boot/grub2/grub.cfg 或 /boot/grub/grub.cfg。
- GRUB Legacy(较老的系统):配置文件通常位于 /boot/grub/menu.lst 或 /boot/grub/grub.conf。可通过查看目录结构来确认,执行 ls /etc/grub.d/,如果包含 00_header、10_linux 等文件,说明使用的是GRUB2。
- 执行以下命令,列出当前系统中所有已挂载文件系统的类型以及对应设备的UUID,复制对应的 UUID="xxxx-xxxx-..." 值。
blkid
回显信息如下所示:
/dev/vda1: UUID="ec51d860-34bf-4374-ad46-a0c3e337fd34" TYPE="ext4" /dev/vda2: UUID="7a44a9ce-9281-4740-b95f-c8de33ae5c11" TYPE="ext4"
- 执行以下命令,查看“grub.cfg”文件(本文以 /boot/grub/grub.cfg为例,请您结合实际情况进行调整)。
cat /boot/grub/grub.cfg | grep 'root='
回显信息如下所示:linux /boot/vmlinuz-3.13.0-24-generic root=/dev/xvda1 ro
- 根据“/boot/grub/grub.cfg”配置文件里标记的root分区,查找是否包括“root=/dev/vda1”或者“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”信息。
- 若存在“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”,即root分区以UUID的表示形式,无需修改。
- 若存在“root=/dev/vda1”,即root分区以设备名称表示的形式,请执行后续步骤。
- 根据“root=/dev/vda1”,即root分区对应的设备名称,以及blkid命令获取的分区信息,找到root分区设备名称对应的UUID。
- 执行以下命令,打开“grub.cfg”文件。
vi /boot/grub/grub.cfg
- 按“i”进入编辑模式,将root分区改成UUID形式,本例中将“root=/dev/vda1”修改为“root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34”。
请将“UUID值”替换为步骤3中获取的实际 UUID 字符串,不需要保留引号。
- 按“Esc”后,输入:wq,按“Enter”。 保存设置并退出vi编辑器。
- 执行以下命令,确认修改结果。
cat /boot/grub/grub.cfg | grep 'root='
回显信息如下所示表示修改成功,即root分区以UUID的形式表示。linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 ro