1.磁盘分区
安装GParted, 打开软件,选择设备->创建分区表->gpt,建立一个GPT分区表
建立一个512MB的EFI分区,文件系统必须为FAT32,剩余空间作为文件系统分区,U盘末尾留下1MB空间,用来放MBR分区表,主要是出于兼容目的
2.下载grub并编译
$ wget https://ftp.gnu.org/gnu/grub/grub-2.06.tar.xz
$ tar -xf grub-2.06.tar.xz
$ cd grub-2.06/
$ mkdir EFI32 EFI64 BIOS
$ cd EFI64
$ ../configure --target=x86_64 --with-platform=efi && make -j$(nproc)
$ cd ../EFI32
$ ../configure --target=i386 --with-platform=efi && make -j$(nproc)
$ cd ../BIOS
$ ../configure --target=i386 --with-platform=pc --disable-nls && make -j$(nproc)
3.将grub安装到U盘的EFI分区上
# 先挂载u盘,我的EFI分区挂载目录为:/media/yuwp/9850-3499
$ cd ../EFI64/grub-core
$ sudo ../grub-install -d $PWD --force --removable --no-floppy --target=x86_64-efi --boot-directory=/media/yuwp/9850-3499/boot --efi-directory=/media/yuwp/9850-3499
$ cd ../../EFI32/grub-core
$ sudo ../grub-install -d $PWD --force --removable --no-floppy --target=i386-efi --boot-directory=/media/yuwp/9850-3499/boot --efi-directory=/media/yuwp/9850-3499
$ cd ../../BIOS/grub-core
$ sudo ../grub-install -d $PWD --force --no-floppy --target=i386-pc --boot-directory=/media/yuwp/9850-3499/boot /dev/sdf
4.创建grub配置文件:boot/grub/grub.cfg
set timeout=10 # waiting time befo automatic booting
set default=0 # default menu entry index
insmod all_video
menuentry "Boot ClosureOS v0.0.1" {
multiboot2 /boot/kernel.bin # use multiboot2 spec to boot
boot
}
if [ ${grub_platform} == "efi" ]; then
menuentry "UEFI Setting" {
fwsetup
}
fi
menuentry "System Reboot" --class=reboot {
reboot
}
menuentry "System Shutdown" --class=halt {
halt
}