【BOOT】多重引导程序启动U盘

标签: BIOS UEFI syslinux grub2 xorboot
8人阅读 评论(0) 收藏 举报
分类:

第1章.     准备U盘

1.1  U盘分区

准备工具:

1.        BooticeX64.exe

2.        U盘

建议:

1.        U盘容量不小于8G,太小存不下Windows、Linux系统镜像,只能简单的作为WinPE启动盘

1.2  操作步骤

打开bootice--》Destination Disk中选中U盘--》Physical disk--》Parts Manage--》Re-Partitioning--》选择USB-HDD mode(Multi-Partitions)--》OK--》在PartitionSetting中进行如下分区


建议:

1.        第一个分区可以在1.5G,其余划分给第二个分区,因为第一个分区要存放WinPE和其他引导文件,以及以后要添加的FreeDOS,

2.        第二个分区一定要用ExFAT格式,如果用FAT32将不能存放大于4G的单个文件,

3.        不用修改分区表类型为GPT,因为UEFI启动会搜寻FAT32格式磁盘目录下的EFI文件夹,修改为GPT分区表后MBR空间将只剩1个扇区,且不能设置活动分区。不能设置活动分区将导致BIOS方式下bootmgr不能启动,MBR只剩1个扇区(0扇区)将导致一部分引导程序的空间不足,不能写入MBR,且可能会造成GPT主分区表被覆盖(从1扇区开始)

4.        xorboot不能加载exFAT分区,所以不能加载位于exFAT分区上的wim和iso,需要使用grub2。

第2章.     操作思路

2.1  操作思路

1.        因为xorboot的启动功能强大,在此BIOS主引导程序采用xorbootV0.73(后边称为xorbootB),EFI引导程序采用xorbootUx64(后边称为xorbootU)。主要利用xorboot的RealMode模式来引导其他引导程序安装完成后导出的MBR、PBR、BIN、SYS的引导文件。

xorbootV0.73特性:

A.       BIOS版本XORBOOT支持的启动类型有GRLDR/GRLDR.MBR、NTLDR/SETUPLDR.BIN/BOOTMGR、SYSLINUX的LDLINUX.BIN/ISOLINUX.BIN(3.00~6.02)、PLoPBootManager、MS-DOS(IO.SYS)、FreeDOS(KERNEL.SYS)以及磁盘映像文件(IMG;IMA;ISO;VHD/VHDX(MSNT6x);WIM(MSNT5x/6x);VHD/VMDK(VBOOT驱动);WindowsNT5XPE(IMG/ISO/WIM))的启动。

B.        按文件系统读取文件时,文件名最大长度为31个英文字符,仅支持FAT16/FAT32/EXFAT/NTFS文件系统。

xorbootUx64特性:

A.       xorboot已内置了bootmgfw.efi,boot.sdi,启动Windows系列系统(本地系统、VHD/VHDX/WIM)时不再需要bootmgfw.efi,BCD,boot.sdi等支持文件。

2.        xorbootB放在最后在进行操作,因为操作过程中为提取一些其他引导工具的MBR文件会存在重复擦写MBR,造成xorboot的主引导记录丢失。

3.        先添加windows引导--》再grub2--》再添加--》再添加syslinux--》再添加FreeDOS--》再添加MaxDOS--》再添加WinPE。

2.2  UEFI版的特殊

因为UEFI版是通过查找FAT32格式分区内的EFI文件夹,所以不用写入等操作,只需要将文件复制到相应的目录下即可。

第3章.     添加windows引导

3.1  BIOS版引导

打开windows8或10的系统镜像,复制其中的boot文件夹至U盘FAT32分区的根目录下,并将bootmgr也复制到boot文件夹下以保持FAT32分区根目录下的文件清晰。

 

3.2  UEFI版引导

将EFI文件夹复制到FAT32分区根目录。

3.3  Windows引导总结

BIOS引导流程:

MBR中的WindowsNT6.X(第一个扇区)查找活动分区--》加载bootmgr启动管理器--》加载BCD菜单文件--》根据菜单内的文件路径启动各个系统

UEFI引导流程

UEFI启动后--》查找FAT32分区(FAT、FAT16,仅支持这几种格式)--》加载boot/bootx64.efi--》加载boot/microsoft/boot/BCD菜单文件--》根据菜单内的文件路径启动各个系统

3.4  BCD添加启动项

编辑BCD菜单,进行有目的的引导。详见:https://blog.csdn.net/xinlan3618/article/details/78860317

第4章.      添加grub2引导

4.1  安装grub2到u盘

准备材料:

grub-2.02-for-windows.zip

安装grub2到u盘过程详见:

https://blog.csdn.net/xinlan3618/article/details/78952698

4.2  准备操作

将压缩包解压至D盘根目录,并将文件夹名称修改为grub-2.02-for-windows(若不是则需要修改,因为以下步骤将需要该路径)

4.3  BISO版引导

1.        以管理员身份运行cmd,并运行cd /dd:\grub-2.02-for-windows,将工作目录转至grub-2.02-for-windows文件夹下。

2.        运行精简的命令行:grub-install.exe--directory=D:\grub-2.02-for-windows\i386-pc--locale-directory=D:\grub-2.02-for-windows\locale --boot-directory=X(FAT32分区盘符): --force --recheck--target=i386-pc \\.\PHYSICALDRIVE(X)(可以在磁盘管理器中查看U盘是第几个磁盘,将数值代替(X))

3.        此时将在FAT32分区根目录下生成grub文件夹,然后再将grub-2.02-for-windows目录下的themes文件夹复制到grub文件夹下。

4.        其他的自定义操作详见:https://blog.csdn.net/xinlan3618/article/details/78952698

5.        使用bootice备份mbr,备份63个扇区,生成grub.bin,放置在grub目录下。

4.4  UEFI版引导

1.        定制grubx64.efi,详见https://blog.csdn.net/xinlan3618/article/details/79862667

2.        精简的命令行:grub-mkimage.exe -d x86_64-efi -cx86_64-efi.cfg -p /EFI/grub -o grubx64.efi -O x86_64-efi disk part_gptpart_msdos fat exfat ext2 ntfs,精简模块,以减小生成的grubx64.efi的体积大小,其中x86_64-efi.cfg的内容如下:

search.file /EFI/grub/grub.cfgroot   

set prefix=($root)/EFI/grub   

configfile ($root)/EFI/grub/grub.cfg   

3.        复制生成的grubx64.efi至efi/boo文件夹下,在efi文件夹下新建grub文件夹,并将grub-2.02-for-windows目录下的locale、themes、x86_64-efi文件夹至efi/grub文件夹下。

4.        编辑grub.cfg文件,添加启动项,详见:https://blog.csdn.net/xinlan3618/article/details/78952698

5.        编辑theme.txt文件,详见:https://blog.csdn.net/xinlan3618/article/details/78963513

第5章.      添加syslinux引导

5.1  准备材料

Sysylinux-6.03.zip(下载地址:https://mirrors.edge.kernel.org/pub/linux/utils/boot/syslinux/syslinux-6.03.zip)

5.2  BIOS版引导

1.        将syslinux-6.03.zip解压至d盘,在U盘根目录新建syslinux文件夹

2.        拷贝bios\win32中的syslinux.exe到U盘的syslinux文件夹下

3.        拷贝bios\com32\chain中的chain.c32到U盘的syslinux文件夹下

4.        拷贝bios\com32\menu中的menu.c32、vesamenu.c32到U盘的syslinux文件夹下

5.        拷贝bios\com32\modules中的poweroff.c32、reboot.c32到U盘的syslinux文件夹下

6.        拷贝bios\memdisk中的memdisk到U盘的syslinux文件夹下

7.        管理员身份运行cmd,切换工作目录至syslinux文件夹下

8.        运行syslinux.exe  -ma -d /syslinux/   [U盘Fat323分区盘符]: ,此时将写入引导至mbr,需备份MBR1个扇区;

9.        运行syslinux.exe  -d  /syslinux/   [U盘Fat323分区盘符]: ,此时将写入引导至pbr,需备份PBR1个扇区

10.     以上两种方法都可以,将备份文件命名为syslinux.bin,放置在syslinux文件夹下。

11.    同时生成ldlinux.sys文件,可以用xorbootB引导ldlinux.sys,也可以用xorbootB引导sysylinux.bin来跳转到ldlinux.sys。

5.3  UEFI版引导

1.        拷贝efi64\efi中的syslinux.efi到u盘的boot/syslinux文件夹下并改名为syslinuxx64.efi。

2.        拷贝efi64\com32\chain中的chain.c32到u盘的boot/syslinux文件夹下

3.        拷贝efi64\com32\menu中的menu.c32、vesamenu.c32到u盘的boot/syslinux文件夹下

4.        拷贝efi64\com32\modules中的poweroff.c32、reboot.c32到u盘的boot/syslinux文件夹下

5.        拷贝bios\memdisk中的memdisk到u盘的boot/syslinux文件夹下

6.        拷贝完成即完成部署

第6章.     添加grub4dos引导

6.1  准备材料

grub4dos-0.4.6a-2018-04-11.7z(下载地址;http://grub4dos.chenall.net/

grub4dos仅支持BIOS启动,不支持UEFI启动。

6.2  BIOS版引导

将文件解压至D盘根目录,复制grldr和menu.lst至U盘grub文件夹下。grldr即为引导文件。

第7章.     添加FreeDOS文件

7.1  准备材料

1.        已安装好的Freedos.VDI,具体获得办法详见:

2.        WinImage9.exe

7.2  BIOS版引导

1.     以管理员身份运行cmd,将当前目录切换至D:\Program Files\Oracle\VirtualBox\

2.     运行VBoxManage.exe clonehd FreeDOS.vdiFreeDOS.vhd --format vhd

3.     使用WinImage打开FreeDOS.vhd,将所有文件复制到FAT32分区根目录下,保持文件结构不变。

4.        引导过程:xorbootB引导KERNEL.SYS --》即可完成引导。

第8章.     添加MaxDOS工具箱

8.1  准备材料

Maxdos93.zip(下载地址http://pzz.cn/soft/maxdos93.zip

8.2  BIOS引导

解压安装后,将安装目录的MaxDos文件夹复制到U盘Fat32分区根目录下。

引导过程:xorbootB引导MaxDos/mxldr(需取消隐藏才能看到) --》即可完成引导。

第9章.      使用xorboot引导各引导工具

详见:https://blog.csdn.net/xinlan3618/article/details/78860317


查看评论

大容量U盘制作USB多重系统启动盘初探

大容量8G U盘制作USB多重系统启动盘初探 【摘要】对于大于2GB容量的U盘,大多数网友反映很难制作成功。那么大于2GB的U盘能否成功制作启动盘呢?又如何实现Dos、WinPE、Prayaya-l...
  • Trassion
  • Trassion
  • 2013-07-01 08:39:03
  • 7657

重大突破!最完美的U盘解决方案—U+,GRUB.MBR双引导多菜单,强强联合提兼...

重大突破!最完美的U盘解决方案—U+,GRUB.MBR双引导多菜单,强强联合提兼容,隐藏分区保安全! 更新说明: 7.31 上承http://os.deepin.org/read.php?ti...
  • xys_777
  • xys_777
  • 2011-11-18 16:54:23
  • 1755

bios boot option 找不到u盘

本人华硕电脑,当用大白菜U盘启动器重装系统时遇到了这种问题,通过了以下方案解决了 1,开机启动时长按F2键进入BIOS界面 2,通过方向键选择[Lunch CSM]选项,将其更改为“Enabled...
  • qq_2300688967
  • qq_2300688967
  • 2016-12-22 00:26:40
  • 1738

u盘装linux结果启动分区在U盘 每次启动必须插上U盘才能进系统 怎么改到硬盘上,硬盘上也有/boot分区

但是为什么启动文件没写到里面 将grub写入硬盘 grub-install --boot-directory=/boot --no-floppy /dev/sda 修改/boot...
  • hyjzcy
  • hyjzcy
  • 2013-11-04 11:23:49
  • 2939

《自己动手写操作系统》Boot Sector U盘实现

近期开始看《自己动手写操作系统》,第一章“十分钟完成的操作系统”,发现竟然用的是软盘实现的~现在用软盘真的太难找了,于是想到用U盘实现。网上搜索资料,发现早有高手实现了。详情请看:读写U盘(FAT32...
  • mjsornp
  • mjsornp
  • 2010-12-30 19:46:00
  • 3912

Mac使用Boot Camp安装win10(不用U盘)

原文在 https://bbs.feng.com/forum.php?mod=viewthread&tid=10748184&page=1&mobile=no 大概的步骤: 1、从微软官网下载w...
  • mrsyf
  • mrsyf
  • 2018-01-05 11:06:55
  • 1602

mac os x 10.9 U盘通过 Boot Camp Assistant 安装windows7

在mac os x 10.8之前通过U盘安装windows7系统很容易。 但是10.9以后,以前的方法不管用了。 网上测试了很多次都不管用。后来在youtube.com里面找到个视频。记录下方法。...
  • watsy
  • watsy
  • 2013-12-20 21:03:58
  • 9562

《自己动手写操作系统》,软盘没有,用U盘引导,大白菜MBR Boot启动512字节反汇编代码!

初始化部分 初始化寄存器环境 00007C60  31DB              xor bx,bx 00007C62  8EDB              mov ds,bx 00007C64 ...
  • xianjian1990
  • xianjian1990
  • 2017-11-17 12:57:50
  • 249

deepin-boot-maker deepin官方U盘启动制作工具

  • 2014年06月16日 22:55
  • 8.34MB
  • 下载

U盘安装 Ubuntu 16.04 LTS 提示:gfxboot.c32: not a COM32R image

U盘安装 Ubuntu 16.04 LTS 提示:gfxboot.c32: not a COM32R image 这是一个Ubuntu的bug,在Ubuntu 14.01 LTS里也出现过1。解决办...
  • gis_101
  • gis_101
  • 2018-01-16 09:52:12
  • 262
    个人资料
    等级:
    访问量: 945
    积分: 82
    排名: 155万+
    文章存档