用csmwrap或clover为uefi引导添加legacy引导项入口及legacy引导配置初探

查看 10|回复 1
作者:陈磊   
用csmwrap或clover为uefi引导添加legacy引导项入口及legacy引导配置初探
本文的不当之处,诚请各位指正为谢!
一、纯uefi引导电脑用csmwrap添加legacy引导项入口
(一)csmwrap工作机制初探
下载点:https://github.com/FlyGoat/CSMWrap。目前的最版版本为1.30。它让纯uefi引导的电脑有了引导legacy项的可能。
1.引导方式。引导过程中,若按下ESC键,如有3个硬盘,将把3个硬盘编为1、2、3,让用户选1-3,从其中一个硬盘的legacy引导项进行引导;引导过程中,若未按ESC键,将把搜索到的第一个legacy引导项进行引导。
2.不搜索和引导gtp分区硬盘的legacy引导项,即使在引导中按下ESC键选gpt分区硬盘,也不会执行其上的legacy引导项。
3.csmwrap目前尚无配置文件。本想若有配置文件则编辑其配置文件,而按配置文件的设置而引导我所需要的legacy项。但我在该下载点搜索,未发现其目前有配置文件。
4.因是模拟legacy引导,其兼容性尚不太好,还需csmwrap的开发者对csmwrap进行不断的完善和优化。
(二)csmwrap添加legacy引导项直接进入口的思路及具体做法
1.思路。若给csmwrap留只一个legacy引导项入口,不按ESC键,csmwrap将会搜索并直接引导进入这个唯一的legacy引导入口。
2.具体做法。以我的13代cpu纯uefi引导电脑为例作介绍。
我的3个硬盘目前分区情况是:
盘一:机械硬盘,MBR分区格式,2个主分区:data(存放用户数据)、soft(存放用户下载的软件),未安装任何操作系统。
盘二:固态硬盘,MBR分区格式,3个主分区+3个逻辑分区:boot(2G,激活分区,存放legacy方式的grub4dos简称g4d+grub2引导win+linux+pe+ventoy)、winxp(拟安装winxp)、win7(拟安装win7)、kylin(逻辑分区一:已安装国产银河麒麟kylin系统)、uos(逻辑分区二:已安装国产统信uos系统)、swap(逻辑分区三:已安装的2个国产linux系统共用的交换分区)。
盘三:nvme2硬盘,gpt分区格式,4个分区:esp(4G:存放uefi方式的oc引导win+linux+mac+pe+ventoy+csmwrap+grub4dosuefi简称g4e+grub2)、win11(已安装win11)、 win10(已安装win10)、mac(拟安装黑苹果系统)。
修改各硬盘的主引导记录MBR和分区引导记录PBR(具体详见后面的进阶一部分),并添加efi引导项:
①对盘一,用bootice修改mbr为nt5.x,用DiskGenius取消其激活分区。这样csmwrap将搜索不到盘一的legacy引导项。
②对盘二,用bootice修改mbr为legacy方式的grub4dos引导或定制的grub2引导,两者只能任选其一。这样csmwrap将搜索到盘二有legacy方式的g4d或grub2引导项。
③对盘三,用bootice修改mbr为nt5.x,或不作修改。因csmwrap将不会搜索gpt分区硬盘的legacy引导。
④在盘三的esp分区中,添加csmwrapx64.efi为oc或g4e或grub2的引导项之一,用EasyUEFI添加oc或g4e或grub2引导,并将三者之一作为第一引导项。
如上修改,只给csmwrap留了一个legacy引导项,当用uefi引导,选csmwrap进入时,则会进入事先编制好legac方式的g4d或grub2菜单,在其中选择引导安装的win7或winxp_x32等legacy系统。
经测试,已成功进入legac方式的g4d或grub2菜单。但未测试能否顺利进入win7或winxp_x32等legacy系统,原因是:
我的13代cpu纯uefi引导电脑,是核显730,,win7和mac均不支持,我在调试安装win7时,原认为最多显示不正常,而是全程无显示,到网上咨询,说13代cpu核显电脑安装win7必须要独显。
为此,我正在网上查找并购一款支持新版本mac的显卡,到手后,再调试安装mac+win7+winxp。
二、uefi+bios引导电脑用clover添加legacy引导项入口
大概作法是:
1.前提要电脑支持uefi+bios双启,并在电脑bios中打开双启设置;
2.在mbr分区硬盘或gpt分区硬盘上创建legacy入口(可以是g4d或grub2菜单,或直接引导win7_x32、winxp等老系统);
3.编辑clover的配置文件为其配置一个legacy引导方式入口,以uefi方式引导clover,从该入口进入legacy方式的g4d或grub2菜单,或直接引导进入win7_x32、winxp等老系统。
我已为另一台9代cpu台式电脑、一台6代cpu笔记本电脑(两者均支持uefi+bios双启),对其clover配置成功,用clover以uefi方式能正常win+linux+mac系统,还能从其legacy入口成功引导g4d或grub2菜单,也可成功进入winxp系统桌面。
实例见我在2020年发《用CLOVER为UEFI引导方式添加legacy方式引导入口的思路》帖子(http://wuyou.net/forum.php?mod=viewthread&tid=419190&extra=&page=1)。
三、uefi+bios引导电脑用csmwrap添加legacy引导项入口
我在多台uefi+bios引导电脑上也测试成功,但对uefi+bios引导电脑,不推荐此法,因这是模拟引导legacy方式,兼容性不好。
对uefi+bios引导电脑,推荐用clover添加legacy引导项入口方式,因这种方式是进入电脑主板提供的bios引导方式,兼容性高。
四、纯uefi引导电脑用clover添加legacy引导项入口
[color=]这仅是一个思路,可能无法行得通

因两方面原因,我用clover,修改其配置文件,其始终未出现legacy引导项:
1.此方式可能需主板支持bios引导,但这是纯uefi引导的电脑;
2.我对clover的配置是一知半解,对其配置未真正入门,
[color=]还非常希望各位clover的高手们不吝赐教

五、进阶一:在MBR分区格式硬盘上配置legacy引导
用bootice或xorboot软件实施,分别在硬盘主引导记录MBR和分区引导记录PBR安装相应引导。
(一)用bootice在MBR安装winnt5.x或nt6.x引导,按激活主分区的PBR的设置进行引导
1.PBR安装NTLDR
引导激活主分区的winnt5(winnt/2000/xp/2003)。
2.PBR安装BOOTMGR
引导激活主分区的winnt6(winvisa/7/8/10/11及win2008和以后版本的服务器)系统。
3.PBR安装grub4dos
在激活主分区根目录搜索grub4dos的grldr并引导出现grldr菜单的内容。
4.PBR安装syslinux(若自定义ldlinux.sys及syslinux.cfg的位置为/boot/syslinux/)
在激活主分区根目录搜索syslinux的ldlinux.c32->执行/boot/syslinux/ldlinux.sys->出现/boot/syslinux/syslinux.cfg菜单的内容。
(二)用bootice在MBR安装ultraiso USB hdd+/usb-zip+
似只适合U盘。
(三)用bootice在MBR安装PLOP boot manager
硬盘、光盘、软盘以它启动后,可实现bios不支持情况下的usb引导。现已无意义。
(四)用bootice在MBR安装Plvynan 1jf9z/1jf9k
若MBR分区格式硬盘有4个主分区,可分别在4个主分区中安装主系统分区、救护系统分区、辅助系统1分区、辅助系统2的引导分区,可分别设定4个系统分区的热键F1-F12,在规定时间内,按下某个热键,就执行热键对应系统分区的引导。
若只有3个主分区,就只能分别在3个主分区中安装主系统分区、救护系统分区、辅助系统1分区的引导。
若只有2个主分区,就只能分别在2个主分区中安装主系统分区、救护系统分区的引导。
若只有1个主分区,就只能在这个主分区中安装主系统分区的引导
(五)用bootice在MBR安装grub2.0(63个扇区)
仅支持在mbr分区格式(不支持gpt分区格式)硬盘的各分区(仅支持fat32、exfat、ext2/3/4分区文件系统,含主分区和逻辑分区,不支持NTFS分区)搜索/boot/grub/grub.cfg,搜索到后就引导出现grub.cfg中的菜单内容。
特别提醒:若第一分区前的扇区数,少于63个扇区,该项出现灰色,因强行安装会破坏分区结构。解决办法是:打开DiskGenius软件->点第一分区->在右键菜单中选“调整分区大小”->在起始扇区号处设为2048->开始。调整完成后,即可安装。该软件中安装MBR出现灰色的项均可用此办法解决。
(六)用bootice在MBR安装grub4dos
安装后,将在本硬盘的各分区(支持fat32、exfat、ntfs、ext2/3/4分区,含主分区和逻辑分区)的根目录搜索grldr而引导之。
(七)用bootice在MBR安装wee
安装时,可将其内的引导菜单内容复制出来,粘贴在文本文件中修改,修改好后拷进去(若内容较多,后面部分菜单项将不显示出来),写入硬盘,引导时将出现文本方式(不支持汉字)的引导菜单,经用户选择后执行。
若想搜索引导该盘某分区的\boot\g4d\grldr,只要如下内容即可:
      find --set-root /boot/g4d/grldr
/boot/g4d/grldr
但要注意的是:第一行前要空至少6个空格,否则第一行的首命令的前6个字母将被wee吃掉,以后各行前不留空格。这可能是bootice的bug。
(八)用bootice在MBR安装定制的grub2的g2ldr.mbr引导
定制的方法和工具请见我的帖子《我定制grub2的bios+uefi引导的方法和成品工具》(链接为:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=447956&page=1&extra=#pid5867536)。
特别提醒:因这g2ldr.mbr的大小为233个扇区,直接如下操作将会破坏分区结构。解决办法是用上法将起始扇区号处设为2048。再如下操作:
bootice->选MBR分区硬盘的主引导记录->恢复MBR->选定制的g2ldr.mbr->勾选"保持硬盘签名和分区表不变"(此点特别关键)->“恢复”即可。
若定制时仅包含part_msdos和fat、exfat、ntfs模块,启动目录设为/boot/grub2/,引导时将搜索该MBR分区格式硬盘各分区(支持fat32、exfat、ntfs分区)的\boot\grub2\grub.cfg并引导之。
(九)用xorboot在MBR安装grldr引导
用xorboot_0.74(0.73及以前各版本不行)建立一菜单,启动菜单仅一项,为:搜索文件并启动->文件名选\boot\g4d\grldr->保存菜单文件名例为xor074_grldr.bin->另存为:部署到硬盘MBR,选该MBR硬盘->“完成部署”即可。
将占用76个扇区,也先需作如上的将起始扇区号处设为2048的处理,否则会破坏分区结构。
引导时,将在该盘各分区(仅支持FAT32、EXFAT、NTFS分区)搜索\boot\g4d\grldr而引导。
(十)用xorboot在MBR安装定制的grub2的g2ldr.mbr引导
用xorboot_0.74建立一菜单,启动菜单仅一项,为:搜索文件并启动->文件名选\boot\grub2\g2ldr.mbr->选引导类型为MBR->保存菜单文件名例为xor074_g2ldr_mbr.bin->另存为:部署到硬盘MBR,选该MBR硬盘->“完成部署”即可。
将占用76个扇区,也先需作如上的将起始扇区号处设为2048的处理,否则会破坏分区结构。
引导时,理论上将在该盘各分区(支持fat32、exfat、ntfs分区)搜索\boot\grub2\grub.cfg而引导之。
但经我在一台纯legacy引导、一台uefi+bios引导、一台纯uefi引导+csmwrap(目前最版版本为1.30)的电脑上测试,均失败,估计是xorboot_0.74不能引导g2ldr.mbr。
六、进阶二:在GUID(GPT)分区格式硬盘上配置legacy引导
因gpt分区格式的硬盘的mbr只一个扇区,称0扇区。若强行写2个及以上的扇区内容进去,将破坏分区结构。因此,只能用xorboot按如下实施。
(一)xorboot+grub4dos的grldr引导
1.用DiskGenius软件将efi(esp)分区的后部调整出大于或等于38kb的空闲空间(因要用于存放xor074_grldr.bin文件,其大小为38kb、占用76个扇区)。
2.用WinHex打开该硬盘,记下该空闲空间的起始位置,如为xxxxx。
3.用xorboot_0.74打开刚建好的xor074_grldr.bin文件->另存为:部署到硬盘指定扇区,选该gpt分区硬盘,首扇区为0(千万不要更改),辅助扇区粘贴为用WinHex记下该空闲空间的起始位置xxxxx,完成部署,即可。
经测试:
1.在uefi+bios双启的电脑上,以legacy引导,选该gpt分区格式硬盘,引导成功。
2.在纯uefi引导的电脑上,以csmwrap_1.30模拟legacy引导,按ESC键,选该gpt分区格式硬盘,引导失败。
(二)xorboot+grub2的g2ldr.mbr引导
按上法实施,经测试失败。

分区, 硬盘, 系统

Williamongh   
看看
您需要登录后才可以回帖 登录 | 立即注册

返回顶部