使用GRUB2制作多重系统引导程序
装了黑苹果后,同一硬盘多个分区,有不同的系统,为了统一管理,需要找一个通用性强的引导程序。
现在环境是这样的一块硬盘,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制作多重系统引导程序相关推荐
- grub2命令 linux启动盘,Grub2 制作多系统U盘启动
文章目录 1.通过DiskGenius对U盘进行转换,并分区 2.在Linux系统中向U盘安装`grub2` 3.去GNOME-LOOK官网下载喜欢的主题 4.配置grub2 5.制作Mac启动盘 6 ...
- Grub2 制作多系统U盘启动
文章目录 1.通过DiskGenius对U盘进行转换,并分区 2.在Linux系统中向U盘安装`grub2` 3.去GNOME-LOOK官网下载喜欢的主题 4.配置grub2 5.制作Mac启动盘 6 ...
- grub2命令 linux启动盘,使用grub2制作多重启动盘(下)
接着昨天 上一篇文章写到了,安装传统BIOS启动,昨天有点遗漏,需要注意的是,我写的--boot-directory=h:\boot\bios ,这里的h: 是我的U盘在这台电脑上的实际盘符.那么接下 ...
- X86平台下基于grub2+busybo+linux-2.6.36制作linux系统
X86平台下基于grub2+busybo+linux-2.6.36制作linux系统 一.下载内核源码,grub2源码,以及busybox源码: 下载grub2源码 ftp://ftp.gnu.org ...
- 简单计算机java程序_JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单...
JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单 JAVA程序员需要知道的计算机底层基础10-操作系统引导程序的简单制作 汇编实现引导程序 ; 文件名 boot.asm org 7c ...
- linux多重引导工具,不同操作环境下,如何制作多重引导USB?
导读 你想不想制作一个多重引导USB?你想在用来安装或者恢复其他系统的USB驱动器上有多个操作系统吗?你想从USB驱动器引导并使用多个操作系统吗?本文都能满足你的要求.不妨看一看这两种实现方法. 你想 ...
- win7多重引导 linux,如何在Linux和Windows下制作多重引导USB?
[51CTO.com快译]你想不想制作一个多重引导USB?你想在用来安装或者恢复其他系统的USB驱动器上有多个操作系统吗?你想从USB驱动器引导并使用多个操作系统吗?本文都能满足你的要求.不妨看一看这 ...
- 制作多重启动光盘——启动易(EasyBoo…
点这里下载==> 启动易(EasyBoot) v5.12 简体中文版 用EasyBoot刻盘正好可以解决这个问题.EasyBoot是一款集成化的中文启动光盘制作工具,它可以制作光盘启动菜单.自动 ...
- 在温系统下制作马克系统引导安装镜像启动U盘安装马克OS
第一步:制作马克系统引导镜像启动U盘 准备一个8G(或以上)的U盘插入到win系统的电脑上 去下载TransMac按照说明安装好 插入准备好的U盘,U盘数据要转移,打开TransMac,右键U盘选择& ...
最新文章
- 话里话外:“按单制造”的业务特点(二)
- 基于NanoVNA调整150kHz``选频``放大电路
- Halcon 摄像机标定流程
- 怎么把项目推到gitlab上_Gitlab利用Webhook+jenkins实现自动构建与部署
- HBase简单代码实例(Java)
- RedisCluster读写分离改造
- 疫情下跨境电商逆势增长,大数据告诉你如何抓住跨境网购新趋势
- hbase 按时刻查询_Hbase查询工具类,根据时间查询数据
- Android 数据库 SQLite
- Flex及AIR开发资源集合
- 你的“数学潜意识”原来可以被唤醒
- TakeColor取色器的使用
- 物联网MT2625芯片平台技术参考资料
- python构造自定义数据包_Python发送网络封包,自定义封包结构与内容并发出去
- excel打开密码忘记了_密码箱忘记密码如何快速打开
- 从王自如和老罗的论战中我貌似懂得了点神马...
- 利用Python实现FGO自动战斗脚本
- MEM/MBA英语基础(07)复合句-定语从句
- discuz x2.5后台界面html版本
- Linux命令大全总结(看这一篇就够了)
热门文章
- 简单网页版的注册登录案例(JSP+CSS+MySQL+Servlet+MVC设计思想,含源码!)
- Ubuntu22.04平台安装mesa
- debugview下无法显示kdprint log 的问题
- Mysql-binlog的查看
- 嵌入式数据库架构特点
- SpringCloud实用篇01
- tabindex 用法说明
- c语言中整除和模除的优先级,整除运算与取模运算
- dreamweaver html css,Dreamweaver CC
- Mysql :Can't open the mysql.plugin table. Please run mysql_upgrade to create it.