ubuntu用户自定义 grub 引导菜单
grub 是menu.list 文件
grub2 是 /boot/grub/grub.cfg 文件
在的grub 1.0 版本以前是 menu.lst , 是直接编辑的。
在的grub 2.0 版本是 grub.cfg,这个文件通过运行update-grub
来更新的,跟如下命令是一个作用。
grub-mkconfig -o /boot/grub/grub.cfg.
如果用户希望在一个不同的位置创建一个不同名字的启动菜单的话,就需要通过 “-o” 选项来指定新的路径。
/etc/grub.d/脚本 ,配置启动优先级和启动项
$ ls /etc/grub.d/
00_header 10_linux 20_memtest86+ 40_custom README
05_debian_theme 20_linux_xen 30_os-prober 41_custom
update-grub执行的时候, /etc/grub.d/ 下的脚本会被执行。
grub2 语法
### 我这里Ubuntu 18.04.2 LTS 安装在 /dev/sdb4 UUID=b611cee4-cc3e-43eb-9dd3-d9b133fbe752
menuentry 'Ubuntu 18.04.2 LTS (18.04) (on /dev/sdb4)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-b611cee4-cc3e-43eb-9dd3-d9b133fbe752' {
###----1-----加载设备驱动
### 加载 msdos分区支持 ,我的 /dev/sdb 是msdos 分区方式
insmod part_msdos
### 加载 ext2分区支持
insmod ext2
###----2-----设置 /boot 分区位置
### 我这里是 hd1,msdos1 ,单独一个分区,作为 root变量默认值
set root='hd1,msdos1'
### 按照uuid查找root位置,同上一句作用
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,msdos1 --hint-efi=hd1,msdos1 --hint-baremetal=ahci1,msdos1 99ad338e-0f1a-4e78-bc99-60cc2dbba830
else
search --no-floppy --fs-uuid --set=root 99ad338e-0f1a-4e78-bc99-60cc2dbba830
fi
### -------3-------加载内核模块 linux /vmlinuz-4.18.0-20-generic
###指定 根分区 / 位置,我这里是单独一个分区 /dev/sdb4: UUID="b611cee4-cc3e-43eb-9dd3-d9b133fbe752"
### ro 即是 readonely 只读的意思
linux /vmlinuz-4.18.0-20-generic root=UUID=b611cee4-cc3e-43eb-9dd3-d9b133fbe752 ro quiet splash $vt_handoff
###-------4------初始化RAM
initrd /initrd.img-4.18.0-20-generic
}
分区表 UUID
/dev/sdb4: UUID="b611cee4-cc3e-43eb-9dd3-d9b133fbe752" TYPE="ext4" PARTUUID="96a3c92f-04"