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
}

#

关联

.