|
本帖最后由 2011hiboy 于 2024-10-19 22:30 编辑
Grub2正文部分(想DIY的仔细看)
Grub2引导是可以定制的,建议下载ubuntu-13.04然后VMware虚拟机安装,然后使用 “grub-mkimage” 定制(n多过程需自行摸索,我下发提供点命令帮助哦..)。
1、
bootconfig.cfg内容(BIOS):
search.file /neyan/grub2_bios/grub.cfg root
set prefix=($root)/neyan/grub2_bios
bootconfig.cfg内容(EFI):
search.file /neyan/grub2_efi/grub.cfg root
set prefix=($root)/neyan/grub2_efi
2、创建GRUB2 硬盘的MBR
sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ext2 search_fs_file
sudo cat /boot/grub/i386-pc/boot.img core.img > g2ldr.mbr
3、创建GRUB2 文件的LDR
sudo grub-mkimage -d /boot/grub/i386-pc -c bootconfig.cfg -o core.img -O i386-pc biosdisk part_msdos fat exfat ntfs ext2 iso9660 udf configfile search help reiserfs font linux chain
sudo cat /boot/grub/i386-pc/lnxboot.img core.img > g2ldr
4、创建GRUB2 文件的efi
sudo grub-mkimage -d /boot/grub/x86_64-efi -c bootconfig.cfg -o grub.efi -O x86_64-efi part_gpt part_msdos iso9660 udf fat exfat ext2 ntfs search configfile help reiserfs font linux linuxefi chain
我把自定义Grub2的步骤简单说一下:
bootconfig.cfg这个文件中的路径就是你能够自定义的。
而之后的g2ldr、g2ldr.mbr都由2部分组成:bootconfig.cfg+必要的模块。
我上面给出的命令包含了这两个部分。当然完成这些操作的环境是:ubuntu-13.04
我做好的成品合盘:
这是传统BIOS的Grub2合盘,简单的放置了2个DOS工具。之后的命令大家多多完善啊,我个人精力是有限的...
这是UEFI启动菜单,里面有启动efi文件的写法,大家照抄就可以了,这样就可以启动任意efi了...挺好使的
下载使用:
年代久远,不提供下载服务了
后话:
大家可以以这个合盘为基础增加DOS工具,增加PE,增加UEFI系统的启动菜单,简单的来说下Grub2引导过程:
BIOS:
开机--->按照指定的顺序启动U盘--->启动U盘主引导--->主引导搜索指定位置的Grub.cfg--->加载Grub.cfg菜单,有用户自行选择启动项
UEFI
开机--->查找指定U盘内计算机默认引导文件:\efi\boot\bootx64.efi (grub2.efi改名)--->搜索指定位置的Grub.cfg--->加载Grub.cfg菜单,有用户自行选择启动项
大家如需自行定制Grub2的话需具备 ubuntu 系统,并且需要BIOS和UEFI版本的各一个,然后使用 grub-mkimage 定制。
Grub2的一些典型菜单写法(自行看说明摸索的,希望对大家有点用处啊):
重启写法
menuentry "重启"{
reboot
}
关机写法
menuentry "关机"{
halt
}
从主引导启动
#最后一句或者 chainloader (hd0)+1
menuentry "启动主引导记录 " {
set root=(hd0)
chainloader +1
}
从某个分区启动
#从第一磁盘的第一分区启动
#最后一句或者 chainloader (hd0,1)+1
menuentry "启动分区引导记录 1" {
set root=(hd0,1)
chainloader +1
}
#从存在bootmgr文件的那个分区启动
menuentry "启动分区引导记录 2" {
search --file /bootmgr --set=root
chainloader +1
}
最后一句或者 chainloader (hd0,1)+1
启动某个引导文件:
menuentry "启动 G4D"{
search --file /grldr --set=root
insmod ntldr
ntldr /grldr
}
启动efi件:
menuentry "启动EFI SHELL" {
echo "正在启动EFI SHELL,请等待...."
search --file /rdtobot/efi_file/boot/bootx64.efi --set=root
chainloader ($root)/rdtobot/efi_file/boot/bootx64.efi
}
启动IMG文件:
menuentry "启动 MHDD" {
search --file /neyan/grub/memdisk --set=root
linux16 /neyan/grub/memdisk
initrd16 /rdtobot/MHDD.img
}
启动ISO文件:
menuentry "列出操作系统" {
search --file /neyan/grub/memdisk --set=root
linux16 /neyan/grub/memdisk iso
initrd16 /rdtobot/LSTSYS.iso
}
子菜单写法:
submenu "我是一级菜单" {
menuentry "我是二级菜单1" {
echo "我是运行结果1"
}
menuentry "我是二级菜单2" {
echo "我是运行结果2"
}
}
|
评分
-
查看全部评分
|