grub2 引导
uEFI
i386 —-> /efi/boot/bootia32.efi
x86_64 —-> /efi/boot/bootx64.efi
cfg搜索路径(first match):
-1-> /boot/grub/grub.cfg
-2-> ./grub.cfg
grub2 模块
grub_platform= “pc” | “efi”
grub_cpu= “i386"|"x86_64”
模块路径
/boot/grub/${grub_cpu}-${grub_platform}
# 例如: regexp, disk分区 模块, 文件系统模块
insmod xxxx
grub2 语法
类shell , 命令需要加载模块.
source xxxx.cfg # 当前进程 执行
configfile xxxx.cfg # 新的进程
export xxxx yyy zzz …# 导出到父进程
menuentry "chain loader" {
chainloader xxx.efi
}
menuentry "xxx name" {
linux /kernel 内核参数....
initrd /ramfs
# boot, menu结束默认自动boot, 故可以省略
}
submenu "xxx name" {
menuentry ""{}
menuentry ""{}
menuentry ""{}
}
举例
set timeout= -1 , 0 , N # wait forever, no wait , wait N second;
set root=hd0,gpt1
set prefix=($root)/….
set pager=1 #分页
set theme=/xxxx/theme.txt
#install
menuentry "ubuntu"{
loopback loop (hd2, msdos1)/Ubuntu-18.04.iso #挂载 iso文件
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/Ubuntu-18.04.iso
initrd (loop)/casper/initrd.lz
}
#安装
menuentry "Deepin Live 15 i386" {
set isofile="/deepin-15-i386.iso"
search --set -f $isofile
loopback loop (hd0,1)$isofile
linux (loop)/live/vmlinuz boot=live union=overlay live-config findiso=${isofile} locales=zh_CN.UTF-8 quiet splash nomodeset
initrd (loop)/live/initrd.lz
}
##############
#启动
menuentry "Deepin Linux"{
set root=(hd0,4)
linux /vmlinuz root=/dev/sda4ro quiet splash
initrd /initrd.img
}
#
关联
-
.
.