一、Grub2的疑惑
1、Grub2是什么? Grub2是个启动引导器,类似于xorboot、grub4dos等
2、Grub2用在哪? 装在空/有系统的磁盘/U盘,作为此盘启动菜单引导系统或程序
3、Grub2怎么安装? 在linux/windows/pe操作grub2程序安装到磁盘或U盘,主要有两种安装方式:1、直接安装;2、定制导入。具体下方有介绍
二、Grub2安装生成的路径及文件结构
/boot/grub/grub.cfg 启动菜单(必须,且手动添加)
/boot/grub/x86_64-efi或i386-pc或i386-efi 启动模块(必须)
/boot/grub/background.png 背景图(可无)
/boot/grub/fonts/unicode.pf2 字体(可无),默认unicode
/boot/grub/locale/zh_CN.mo 语言(可无),默认多国
/boot/grub/themes/ 主题目录(可无)
/efi/boot/grubx64.efi或grubia32.efi UEFI启动模式文件(必须,若MBR则无)
小知识:
1、 MBR硬盘在grub2安装过程会向主引导记录写入启动程序,所以第一分区前要预留足够的空闲空间(10M),否则会提示“无法写入”等错误。
2、 GPT(UEFI)硬盘默认启动esp分区中的/efi/boot/bootx64.efi或bootia32.efi。
三、Grub2的两种安装方式
- 在linux或windows都有效,可能在命令方面有些细微变化
- 先用DiskGenius对要安装grub2的磁盘或U盘进行分区
- 官方下载对应的版本,解压并cmd进入grub2目录
第一种方式—直接安装法
MBR:
wmic diskdrive list brief
查看本机磁盘情况
grub-install.exe --target=i386-pc --boot-directory=w:\boot \\.\PHYSICALDRIVE0
- 成功提示Installation finished. No error reported.
- 其中w:即grub2生成文件的分区,默认是磁盘第一分区
- 手动添加/boot/grub/grub.cfg菜单文件,此文件可从其他复制过来
- 重启看到grub2的菜单即成功。
UEFIx32:
grub-install.exe --target=i386-efi --efi-directory=w: --boot-directory=w:\boot --removable
UEFIx64:
grub-install.exe --target=x86_64-efi --efi-directory=w: --boot-directory=w:\boot --removable
- 执行命令前要挂载/指派esp分区驱动器符号
- 在磁盘中w:为esp分区(或U盘驱动器符号),即grub2生成文件的分区。
- –removable是U盘参数,若是磁盘要去除
- 成功提示Installation finished. No error reported.
- /efi/boot/grubx64.efi 修改成 bootx64.efi
- 手动添加/boot/grub/grub.cfg菜单文件,此文件可从其他复制过来
- 重启看到grub2的菜单即成功。
第二种方式—定制导入法
@echo off
cd /d "%~dp0"
echo search.file /boot/grub/grub.cfg root>bootinfo.cfg
echo set prefix=($root)/boot/grub/>>bootinfo.cfg
mkdir res\boot\grub
mkdir res\efi\boot
xcopy /s /e /y /i i386-pc res\boot\grub\i386-pc
echo i386-efi
grub-mkimage.exe -d i386-efi -c bootinfo.cfg -p /boot/grub -o res\efi\boot\bootia32.efi -O i386-efi -v newc iso9660 part_msdos part_gpt ext2 cpio memdisk blocklist minicmd loopback fat ntfs gfxterm reboot configfile normal test gfxmenu gfxterm search search_fs_file echo
echo x86_64-efi
grub-mkimage.exe -d x86_64-efi -c bootinfo.cfg -p /boot/grub -o res\efi\boot\bootx64.efi -O x86_64-efi -v newc iso9660 part_msdos part_gpt ext2 cpio memdisk blocklist minicmd loopback fat ntfs gfxterm reboot configfile normal test gfxmenu gfxterm search search_fs_file echo
echo i386-pc
grub-mkimage.exe -d i386-pc -c bootinfo.cfg -p /boot/grub -o res\boot\grub\i386-pc\core.img -O i386-pc -v biosdisk loopback tar part_msdos fat exfat ntfs search_fs_file
copy /B res\boot\grub\i386-pc\boot.img + res\boot\grub\i386-pc\core.img res\g2ldr.mbr
echo menuentry "0.Windows" --hotkey=0 {chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi}>res\boot\grub\grub.cfg
echo menuentry "1.WinPE" --hotkey=1 {search --file /grldr --set=root}>>res\boot\grub\grub.cfg
echo menuentry "3.Reboot" --hotkey=3 {reboot;}>>res\boot\grub\grub.cfg
echo menuentry "4.Halt" --hotkey=4 {halt;}>>res\boot\grub\grub.cfg
del /q bootinfo.cfg
- 复制上面代码成bat脚本一键定制出MBR和UEFI启动文件
- 在res目录下生成定制的启动文件
- MBR磁盘:建议复制的启动文件放在活动分区,使用bootice在主引导记录导入g2lr.mbr,重启即可
-
GPT磁盘:建议复制的启动文件放在esp分区,重启即可。
直接安装法vs
定制导入法:
通过安装发现两种方法效果都一样,选择哪种看个人喜好
三、视频教程到我无忧论坛
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=423752&extra=