MBR/UEFI上安装GRUB2(小白/新手教程)

  • Post author:
  • Post category:其他


一、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=



版权声明:本文为sman19999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。