装了黑苹果后,同一硬盘多个分区,有不同的系统,为了统一管理,需要找一个通用性强的引导程序。

现在环境是这样的一块硬盘,MBR分区方式,4个主分区分别如下:

  文件系统 操作系统 引导方式
分区一(C:) NTFS Windows Bootmgr
分区二(D:) EXT4 Ubuntu linux/initrd
分区三(E:) HFS+ MacOSX boot(变色龙)
分区四(F:) FAT32 grldr

分区四是目前只有1GB,预留用来存放通用引导程序的分区,这个分区是活动分区。

这样的分区方式,设计思想是各个分区负责引导各个分区的操作系统,互不干扰。

如果把grldr放到C盘根目录下,由Bootmgr来加载grldr,这不符合我的设计美学。

一开始我是这样思考的:

MBR设置为NT6 MBR,活动分区设置为分区四,分区四的PBR设置为GRUB4DOS。

也就是在分区四的根目录添加grldr文件和menu.lst文件,由它来引导这三个系统。

但很快就发现GRUB4DOS不支持HFS文件系统,不能读取分区三下面的/boot文件。

于是又想到了它的chainloader,用链式引导的方式,引导各个分区的PBR。

但很快又发现HFS系统的PBR很难正确地设置,还是无法引导/boot文件。

最终只能放弃GRUB4DOS。

目前能支持HFS文件系统的还是只有Chameleon和GRUB2。

优先考虑GRUB2这个引导程序。

好吧,先去下载GRUB2的内核文件,自己制作一个GRLDR吧:

下载地址:http://alpha.gnu.org/gnu/grub/

然后使用下面的命令生成一个支持HFS的core.img文件:

grub-mkimage.exe -C none -o core.img -O i386-pc -d i386-pc -p / biosdisk memdisk disk part_apple part_gpt part_msdos iso9660 udf fat exfat ntfs ext2 hfs hfsplus ls lsapm  mmap loopback net chain ntldr linux linux16 multiboot boot reboot help

这个core.img可以用GRUB4DOS的kernel命令引导,但是无法被PBR引导。

虽然有boot.img和diskboot.img,但还是没有找到正确的引导方法。

最终我用GRUB4DOS的GRLDR前面512字节数据添加到core.img的头部,

再把这个core.img改名为GRLDR,就可以被PBR引导了。(这个地方可能有问题)

需要这个GRLDR文件的可以在这里下载:https://download.csdn.net/download/qq446252221/11214645

经过测试,这个GRUB2就厉害了,可以读取HFS分区。

但有一个问题:在Windows系统下写入到HFS分区的文件,在GRUB2下无法显示出来。

因为这些文件的权限是0,需要进MAC系统修复文件的权限为755。

最后再把过程整理一下:

1.不管你用什么方式先把三个系统分别安装到C/D/E盘。

2.进Windows系统打开BootICE,把硬盘的MBR设置为NT6.0(引导活动分区的PBR)。

3.设置分区四为活动分区。

4.用BootICE把分区四的PBR设置为GRUB4DOS(其实我们的引导文件是GRUB2)。

5.把GRLDR和GRUB.CFG拷贝到分区四的根目录。

6.重启电脑,应该可以看到启动菜单了。完美!

最后,附上一个GRUB.CFG文件仅供参考:

set timeout=5
set default=0menuentry "Microsoft Windows" {set root=hd0,1ntldr /Bootmgr
}menuentry "Ubuntu Linux" {set root=hd0,2linux /boot/vmlinuzinitrd /boot/initrd.gz
}menuentry "Apple macOSX" {set root=hd0,3multiboot /boot
}menuentry "Windows PE" {linux16 /memdisk isoinitrd16 /winpe.iso
}

使用GRUB2制作多重系统引导程序相关推荐

  1. grub2命令 linux启动盘,Grub2 制作多系统U盘启动

    文章目录 1.通过DiskGenius对U盘进行转换,并分区 2.在Linux系统中向U盘安装`grub2` 3.去GNOME-LOOK官网下载喜欢的主题 4.配置grub2 5.制作Mac启动盘 6 ...

  2. Grub2 制作多系统U盘启动

    文章目录 1.通过DiskGenius对U盘进行转换,并分区 2.在Linux系统中向U盘安装`grub2` 3.去GNOME-LOOK官网下载喜欢的主题 4.配置grub2 5.制作Mac启动盘 6 ...

  3. grub2命令 linux启动盘,使用grub2制作多重启动盘(下)

    接着昨天 上一篇文章写到了,安装传统BIOS启动,昨天有点遗漏,需要注意的是,我写的--boot-directory=h:\boot\bios ,这里的h: 是我的U盘在这台电脑上的实际盘符.那么接下 ...

  4. X86平台下基于grub2+busybo+linux-2.6.36制作linux系统

    X86平台下基于grub2+busybo+linux-2.6.36制作linux系统 一.下载内核源码,grub2源码,以及busybox源码: 下载grub2源码 ftp://ftp.gnu.org ...

  5. 简单计算机java程序_JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单...

    JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单 JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单制作 汇编实现引导程序 ; 文件名 boot.asm org 7c ...

  6. linux多重引导工具,不同操作环境下,如何制作多重引导USB?

    导读 你想不想制作一个多重引导USB?你想在用来安装或者恢复其他系统的USB驱动器上有多个操作系统吗?你想从USB驱动器引导并使用多个操作系统吗?本文都能满足你的要求.不妨看一看这两种实现方法. 你想 ...

  7. win7多重引导 linux,如何在Linux和Windows下制作多重引导USB?

    [51CTO.com快译]你想不想制作一个多重引导USB?你想在用来安装或者恢复其他系统的USB驱动器上有多个操作系统吗?你想从USB驱动器引导并使用多个操作系统吗?本文都能满足你的要求.不妨看一看这 ...

  8. 制作多重启动光盘——启动易(EasyBoo…

    点这里下载==> 启动易(EasyBoot) v5.12 简体中文版 用EasyBoot刻盘正好可以解决这个问题.EasyBoot是一款集成化的中文启动光盘制作工具,它可以制作光盘启动菜单.自动 ...

  9. 在温系统下制作马克系统引导安装镜像启动U盘安装马克OS

    第一步:制作马克系统引导镜像启动U盘 准备一个8G(或以上)的U盘插入到win系统的电脑上 去下载TransMac按照说明安装好 插入准备好的U盘,U盘数据要转移,打开TransMac,右键U盘选择& ...

最新文章

  1. 话里话外:“按单制造”的业务特点(二)
  2. 基于NanoVNA调整150kHz``选频``放大电路
  3. Halcon 摄像机标定流程
  4. 怎么把项目推到gitlab上_Gitlab利用Webhook+jenkins实现自动构建与部署
  5. HBase简单代码实例(Java)
  6. RedisCluster读写分离改造
  7. 疫情下跨境电商逆势增长,大数据告诉你如何抓住跨境网购新趋势
  8. hbase 按时刻查询_Hbase查询工具类,根据时间查询数据
  9. Android 数据库 SQLite
  10. Flex及AIR开发资源集合
  11. 你的“数学潜意识”原来可以被唤醒
  12. TakeColor取色器的使用
  13. 物联网MT2625芯片平台技术参考资料
  14. python构造自定义数据包_Python发送网络封包,自定义封包结构与内容并发出去
  15. excel打开密码忘记了_密码箱忘记密码如何快速打开
  16. 从王自如和老罗的论战中我貌似懂得了点神马...
  17. 利用Python实现FGO自动战斗脚本
  18. MEM/MBA英语基础(07)复合句-定语从句
  19. discuz x2.5后台界面html版本
  20. Linux命令大全总结(看这一篇就够了)

热门文章

  1. 简单网页版的注册登录案例(JSP+CSS+MySQL+Servlet+MVC设计思想,含源码!)
  2. Ubuntu22.04平台安装mesa
  3. debugview下无法显示kdprint log 的问题
  4. Mysql-binlog的查看
  5. 嵌入式数据库架构特点
  6. SpringCloud实用篇01
  7. tabindex 用法说明
  8. c语言中整除和模除的优先级,整除运算与取模运算
  9. dreamweaver html css,Dreamweaver CC
  10. Mysql :Can't open the mysql.plugin table. Please run mysql_upgrade to create it.