欢迎光临!
若无相欠,怎会相见

使用grub2制作多重启动盘(上)

序言

之前,我自己折腾过双系统的安装,而且也成功安装过。那时,安装成功后,也在使用,Linux系统其实也挺好用的。特别是做项目的时候。

但是有一点比较重要,那就是启动盘的制作。我制作的启动盘的数量比较多,中间格盘、重新刻录的次数也是比较多的,有些iso映像可以直接写入磁盘,有些却不能。所以很早之前,我就想制作一个多重启动盘,我也实验过,找过很多的软件,一个一个的试,映像写入、U盘格式化、再写入,陷入一个死循环。

当时在学校,没太多的时间让我慢慢搞,所以最后,因为双系统的制作完成,也就放弃了。现在在这个假期,我却不得不重新学习怎么制作多重启动盘,因为我的Fedora被我玩儿坏了,中文输入法彻底崩溃了,而且上网查找解决办法,找了几天,没找到,只能重装,而且我还需要用Linux系统做项目。

软件

我制作多重启动盘尝试的软件比较多,而且现在印象比较深刻的是YUMI,xboot,Easy2boot,WinSetupFromUSB等,就我所知,Easy2boot制作支持UEFI启动的启动盘比较麻烦,不过好处是直接把ISO映像放到指定目录就好了,xboot我不确定是否支持UEFI启动,他也不用解包(解压ISO映像),其他的,YUMI,WinSetupFromUSB都需要解包,让我不爽。

最后,我在V2EX的一个帖子上偶然发现了grub2这款开源神器,对我来说,它是名副其实的神器。它支持传统的BIOS启动,也支持现在很流行的UEFI启动,还可以直接读取ISO映像。下面我就先介绍怎么在Windows 10(我没其他系统可测试)上面使用grub2制作多重启动盘。Linux上面就不用我来介绍了,网上很多,就是Windows平台的少。

准备

grub2下载

我平常学习和娱乐用的是Windows 10,所以,我们下载 grub-2.02-for-windows.zip,使用最新版的,它支持UEFI方式启动。软件官网是:https://www.gnu.org/software/grub,下载地址为:ftp://ftp.gnu.org/gnu/grub/。

添加环境变量

将压缩包解压后,放到C盘或其他盘的根目录,因为比较好找。然后,将路径放到环境变量中去。

其他东西

大容量USB设备(我的是16GB的U盘),bootice(很好用的小工具),Qemu启动测试器(这两个软件我会放到云盘里,供大家下载)。

暂时就是这些了,如果有什么遗漏,会在追加的。

开始制作

我想要的是一个多功能U盘,可以救援系统,可以加载WinPE,可以安装系统,这就需要支持传统BIOS启动和现代的UEFI启动方式。这样我可以自己用,也可以帮助他人。比如我的一个同学当时让我帮他安装Linux系统,他的电脑的启动方式就是传统BIOS启动的。

事先规划

因为我也是摸着石头过河,所以我现在的这个启动盘多少有点儿瑕疵。因为当时我不熟悉grub2的一些命令,导致我现在的启动盘的目录结构是有点问题的。

H:.
├─boot
│  │  MEMDISK
│  │  16.png
│  │
│  ├─bios  #传统方式启动
│  │  └─grub
│  │      │  grubenv  
│  │      │  grub.cfg  #配置文件
│  │      ├─i386-pc
│  │      ├─locale
│  │      ├─themes
│  │      └─fonts
│  └─grub
│      │  grubenv
│      │  grub.cfg   #配置文件
│      ├─x86_64-efi
│      ├─locale
│      ├─themes
│      ├─fonts
│      └─i386-efi
├─efi
│  └─boot
└─iso
    ├─WinPE
    ├─LiveCD
    └─DVD

其中,U盘根目录有三个文件夹,分别是boot,efi,和iso ,解释一下,boot目录是存放grub目录的,你也可以存放一些其他的东西,例如grub的背景图片等。efi下面有一个boot文件夹,它是存放*.efi文件的,iso就是存放映像文件的了。

├─boot
│  ├─bios  #传统方式启动
├─efi
│  └─boot
└─iso

上面这个是我最开始的规划,他们都是文件夹的名字。

另外,需要强调的是,U盘的分区表必须是MBR,U盘的格式必须是FAT32格式,而且efi目录下面需要提前创建一个boot目录,否则到时候执行命令之后,自动创建的是grub目录,而不是boot目录,在这里,我掉了很多次的坑,格式化很多次U盘,才得出的结果,虽然FAT32格式有4GB大小限制,但是现在很多Linux系统都有封装好的LiveCD映像,实际大小也就1.5GB左右,再加上现在网络很普遍,所以LiveCD映像已经足够。以上只是我的个人经验,欢迎你们进行其他测试。

下面就是依照我的规划所需要的步骤

支持传统BIOS的grub安装

现在,我认为大家的U盘分区表都是MBR的,格式都是FAT32的(格式化可以使用diskgenius免费版就可以)。使用命令:

wmic diskdrive list brief

我们可以得到当前电脑上的物理磁盘驱动器的DeviceID。在此之前,需要你先插上U盘。

其中\\.\PHYSICALDRIVE1 是我的U盘的DeviceID 。

接下来执行命令(cd到grub-2.02-for-windows目录下执行)

grub-install.exe --target=i386-pc \\.\PHYSICALDRIVE1 --boot-directory=h:\boot\bios

这样就在MBR上安装了grub,而且主引导记录就变成了grub2。当然需要没有报错。

我的已经安装好了。

注意:

  1. 执行命令的时候,使用管理员权限
  2. 如果你对grub2的语法熟悉,可以把--boot-directory=h:\boot\bios 换成--boot-directory=h:\boot ,这样,到时候传统BIOS启动和EFI方式启动只读取同一个grub.cfg文件。如果不熟,可以参考我的,我也是刚学,我把他们分开放的,就是多用几MB的空间。

今天就到这里吧,夜深了,该睡了。

PS:可能是服务器软件有问题,每次都打不开知识库,想打开还得重启服务器上的软件,很烦,我现在先在本地多整理点儿资料,等我把服务器软件搞好,在弄到知识库里面!

如有错误,敬请指出,感谢阅读!   —2018-01-21  22:49:55

赞(1) 打赏
转载请注明:飘零博客 » 使用grub2制作多重启动盘(上)
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    照着做能做好,谢谢

    Snake 5年前 (2018-12-05) 来自天朝的朋友 谷歌浏览器 Windows 10 回复

欢迎光临