本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
GRUB
是一个用于引导操作系统启动的程序。其配置文件中支持使用设备名称或UUID
来标识磁盘分区。本文介绍如何将GRUB
配置文件中的磁盘分区标识方式修改为UUID
。
背景信息
在GRUB
配置文件中,若使用设备名称(例如/dev/vda1
)来标识磁盘分区,其设备名称可能会因为导入镜像后启动实例等操作而发生改变。如果指定的UUID
与磁盘分区实际的UUID
不匹配,也可能导致系统启动时内核无法正确加载文件系统,从而造成系统启动失败。
操作步骤
为了确保GRUB
配置文件中根文件系统磁盘分区标识能够被程序成功读取,建议在配置时采用UUID
方式来标识磁盘分区。具体操作步骤如下。
修改GRUB配置为高危操作,如果操作不当很可能导致实例无法启动,在操作之前,请务必确认您已为实例创建快照,以确保数据安全。
确认GRUB版本信息
目前,GRUB
程序分为GRUB2
和GRUB Legacy
两个版本,后者除修复错误外,已不再进行开发和维护。确认当前使用GRUB
版本的操作步骤如下。
参考如下方法,以确认GRUB版本信息。
GRUB2GRUB Legacy运行如下命令,查看当前系统的
GRUB
配置文件结构。sudo ls /etc/grub.d/
回显信息示例如下,如果其中包含
00_header
、40_custom
等内容,表明您使用的是GRUB2
。00_header 05_debian_theme 10_linux 20_linux_xen 30_os-prober 30_uefi-firmware 40_custom 41_custom
运行如下命令,查看
/boot
目录下的配置文件结构。sudo ls /boot/grub/
如果存在
/boot/grub
目录,且在该目录下存在menu.lst
文件,那么您使用的是GRUB Legacy
。
确认GRUB配置文件信息
GRUB2
和GRUB Legacy
对应的配置文件存在一些差异。
GRUB2
:配置文件通常位于/boot/grub/grub.cfg
或/boot/grub2/grub.cfg
中。GRUB Legacy
:配置文件通常位于/boot/grub/menu.lst
或/boot/grub/grub.conf
中。
您可以参考上述示例,进入/boot
目录以确认GRUB
配置文件信息。
获取当前磁盘信息
您需要获取当前实例的磁盘分区信息,以便后续修改GRUB
配置文件。具体操作如下。
运行如下命令,查看当前实例磁盘分区信息。
sudo blkid
回显信息示例如下。
/dev/vda1: LABEL="/" UUID="e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645" TYPE="ext4" PARTUUID="0efbxxxx-01"
以上示例显示,
/dev/vda1
设备的UUID
为e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645
。
修改GRUB配置文件
运行如下命令,备份当前
GRUB
配置文件。sudo cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
如果修改GRUB配置文件后,想要恢复到修改前的状态,您可以运行如下命令。
sudo cp -f /boot/grub2/grub.cfg.bak /boot/grub2/grub.cfg
运行如下命令,打开
GRUB
配置文件。sudo vim /boot/grub2/grub.cfg
按
i
进入编辑模式,将配置文件中所有包含root=/dev/vda1
的内容全部替换为root=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645
。linux /boot/vmlinuz-3.16.0-4-amd64 root=/dev/vda1 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8
修改后的内容如下所示。
linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=e7e8xxxx-xxxx-xxxx-xxxx-xxxxb9263645 ro single debian-installer=en_US net.ifnames=0 vga=792 console=tty0 console=ttyS0,115200n8
编辑完成后,按
Esc
键退出编辑模式,输入:wq
保存并退出。(可选)运行如下命令,查看修改后的配置文件。从而确保
GRUB
中配置的磁盘分区标识都被修改为UUID方式。sudo cat /boot/grub2/grub.cfg
相关文档
关于fstab文件中配置挂载数据盘的操作,请参见在fstab文件中配置UUID方式自动挂载数据盘。
- 本页导读 (1)
- 背景信息
- 操作步骤
- 确认GRUB版本信息
- 确认GRUB配置文件信息
- 获取当前磁盘信息
- 修改GRUB配置文件
- 相关文档