成功制作一个多启动优盘
2024年注:
这篇文章已经比较过时了,现在已经有 Ventoy 等工具可以很快地做一个多启动U盘
当时这个系列有好几篇文章,我只把第一篇找到这来做个存档
图完全挂了找不回来了,将就看吧 XD
近期本人成功制作一个多启动U盘,遂有此文,与大家分享经验。
本人制作的这个多启动优盘有如下两个优势:
- 多启动,即可进入多款操作系统或工具
- 易拓展,可以随时更换集成的系统或工具
以下是本人的制作思路:
要做到多重引导,也许有许多方法,但我选择了GRUB ,理由是绝大多数PE工具箱或者Linux都用到了GRUB进行引导。那么,我们何尝不可在可引导U盘中使用GRUB去进行多系统的引导?所以,我们只需要将U盘制成可引导U盘,然后将GRUB放入其中,就可以实现引导多系统。
再则,GRUB更易更换集成的系统与工具。用EasyBoot+量产做出来的东西不如GRUB好变更。修改GRUB的菜单只需要修改menu.lst就够了, 不需要额外的软件。
所以,带有GRUB的可引导U盘应当是最好的选择。
本想使用GNU GRUB,但是GNU GRUB引导失败,于是改用DOS+GRUB4DOS,如果你想用ntldr/bootmgr+GRUB4DOS,也行。
(效果图)
需要准备的工具如下:
- 优盘一只
- GRUB4DOS
- DOS.img (2024年注:之前的链接失效了,可以找 FreeDOS 的最新版本)
- UltraISO (较新版本即可)
- 待集成的操作系统
2024年注: 这个系列的文章后续有介绍基于 BOOTICE 直接做 grldr/GRUB4DOS 启动的方式,有兴趣的读者可以自己试试。这里我就不再重新把那篇文章贴出来了。
操作步骤:
一.制作可启动DOS盘(此举会删除U盘中所有数据,请先备份)
- 打开UltraISO(win7/vista需要管理员权限),打开解压出来的DOS.img
- 启动(B)->写入硬盘映像…
- 便捷启动->写入新的硬盘主引导记录(MBR)->USB-HDD+
- 写入
至此,U盘的DOS引导就制作完成了。重新启动,并使用USB-HDD模式,就可以看到命令提示符
二.集成GRUB
将下载到的grub4dos-0.4.4.zip解压,将其中的grub.exe复制到U盘根目录
创建autoexec.bat
autoexec.bat的作用是在启动DOS的时候启动GRUB4DOS,当然,你也可以在DOS提示符里输入grub来进入DOS,不过为了方便,还是建立一 个。
首先,请在U盘根目录创建autoexec.bat(注意拓展名是bat)
如果你不需要使用DOS的话,你只需要在autoexec.bat中写一句话
grub.exe
如果你还想用DOS或者加一点个性化元素,你还可以自行按照bat脚本的规则扩充,比如本人的
@echo off
cls
echo.Welcome to Samhjn's USB Disk
echo.========================================================================
echo.Please press any key to enter GRUB or CTRL-C to enter DOS
echo.You can also enter GRUB in dos mode by typing "grub"
pause>nul
grub.exe
- 建立menu.lst
menu.lst是grub的配置文件,负责菜单项,这个文件在我们集成系统之时还会更改,如果你想之后创建也可以
同autoexec.bat一样,我们需要在U盘根目录里创建menu.lst,然后编辑它,在里面加入以下内容
color black/cyan yellow/cyan
timeout 30
default 0
title Reboot
reboot
title Shutdown
halt
title <=== Back ====
rootnoverify (hd0,3)
makeactive
chainloader +1
这时,GRUB就整好了,此时U盘下会有7个文件,如图
前四个文件是DOS的文件,后三个是GRUB以及为它创建的文件。
当然,搞定它的方式还有不少,这只是其中之一。本人采用这种方法只是因为传说中UltraISO具有更好的兼容性。
三.集成操作系统
有了GRUB,剩下的自然就好办了。考虑到U盘容量的问题,选择的东西大多都是CD之中的。
- 先教一个偷懒的办法
将ISO镜像拷贝至U盘,然后在menu.lst的适当位置(每个title与上一句代码之间)添加如下代码
title 菜单选项名
find --set-root 镜像文件路径/镜像文件名
map --mem 镜像文件路径/镜像文件名 (hd32)
map --hook
chainloader (hd32)
boot
汉字部分请使用相关内容替代。特别注意的是镜像文件路径是相对U盘而言的
(p.s,其实两个镜像文件路径/镜像文件名意义不同)
比如你要添加一个WinPE,将文件pe.iso放在U盘根目录,你就要这样写
title Start WinPE
find --set-root /pe.iso
map --mem /pe.iso (hd32)
map --hook
chainloader (hd32)
boot
如果你把他放在一个叫做pe的文件夹中,你要把/pe.iso换成/pe/pe.iso
这个方法的缺点在于,对于有的系统/工具,将造成无法启动或功能缺失。如果你用老毛桃PE,这样整损失不大,但是用深山红叶就得不 偿失了。
- Fedora 15/16的集成方法
这里以Fedora16 LiveCD为例,首先,用UltraISO打开CD镜像,然后将镜像文件当中的LiveOS目录全部复制到U盘中。再将镜像文件里isolinux这个目录中的vmlinuz0和initrd0.img两个文件复制到FAT32分区的LiveOS目录当中(用/boot的也可以,其实/boot里才是原始文件,/isolinux那个是符号链接)。完成后截图如下:
在menu.lst适当位置添加如下内容:
title Start/Install Fedora16
root (hd0,3)
kernel /LiveOS/vmlinuz0 root=live:/dev/sdb4 ro liveimg rghb rootfstype=auto
initrd /LiveOS/initrd0.img
boot
这个不一定在所有机器上成功启动。如果出错,请在出现Shell之后执行ls /dev,检查回显,如果有sdX(X可以是任意英文字母),并且在这个sdX之后有且只有一个sdX4,再无sdXn(n为非负整数)出现,那么请在grub中按e,修改/dev/sdb4为/dev/sdX4
- 集成深山红叶WinPE工具箱
深山红叶算是一个比较老的WinPE了。比较有代表性。下面我来介绍它的集成方法
首先,提取CD中的PROGRAMS与WXPE文件夹以及BOOTFONT.BIN及WINNT.XPE到U盘,再把WXPE下的SETUPLDR.BIN和NTDETECT.COM移动到U盘根 目录。
然后,编辑menu.lst,加入如下内容:
title Start WindowsPE(ShenShanHongYe)
find --set-root /Setupldr.bin
chainloader /Setupldr.bin
boot
深山红叶WinPE就集成好了,其它的PE2.0集成方法类似。
集成了Fedora 16与深山红叶之后,我的menu.lst如下
color black/cyan yellow/cyan
timeout 30
default 0
title Start/Install Fedora16
root (hd0,3)
kernel /LiveOS/vmlinuz0 root=live:/dev/sdb4 ro liveimg rghb rootfstype=auto
initrd /LiveOS/initrd0.img
boot
title Start WindowsPE(ShenShanHongYe)
find --set-root /Setupldr.bin
chainloader /Setupldr.bin
boot
title Reboot
reboot
title Shutdown
halt
title <=== Back ====
rootnoverify (hd0,3)
makeactive
chainloader +1
2024年注:
当年应 @SXKDZ 要求还写了一篇集成 Windows 7+ PE 的文章。这里暂时也不打算把那篇文章再找出来。这里只简单描述下方法:
- 准备相关 wim 镜像
- 制作 BOOTMGR 的 BCD 文件
现在有许多 Windows PE 被植入了返利软件,用这种 Windows PE 装系统会自动植入全家桶。其中一些 PE 会盗用老一代 PE 的名号,使用时要特别注意鉴别
- 搜索集成方法的方法
当然,我不可能将所有的集成方法都告诉大家,所以当大家需要扩充本工具的功能的时候,需要在网络上自行搜索相关办法。你可以使用如下关键词:
XX硬盘安装
XX GRUB
(XX请使用相关名称代替)
一般来讲,Linux系统都需要提取内核vmlinuz与initframes文件initrd.img,剩下的就是vmlinuz的参数问题。
其实只要掌握了GRUB,就一切都不怕。
最后,希望各位大牛能补充,批评。
参考资料
- 原文作者:ShadowMov's Blog
- 原文链接:https://shadowmov.com/posts/build-a-multi-boot-udisk/
- 版权声明:本作品采用CC BY-SA 4.0. 进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。