前言
本文没有图,截图不方便,虚拟机复现可以但是不想开
本以为折腾实在不行了,用BIOS启动重装一次Ubuntu
环境
MBR硬盘
EFI | Win7 | 拓展分区 | Swap | EFI by Ubuntu | Ubuntu |
---|---|---|---|---|---|
FAT32 | NTFS | / | / | FAT32 | ext4 |
Win7 在BIOS模式下安装(未打开EFI/进入BIOS模式PE)
第一个EFI是安装Win7时强行删除第一个分区空出来的
第二个EFI是安装Ubuntu(18.04,20.04等等)时分区出来的(打开EFI/进入UEFI模式PE)
问题
装好Ubuntu后,sudo update-grub
找不到Windows
思路
调试了各种方法
最后思路考虑了两种
- MBR做引导两个系统
- EFI做引导两个系统
EFI引导
尝试了很多方式,都不成功:
- Ubuntu下做boot-repair(没有自行敲命令,嫌麻烦,没记住)
- WePE下用BOOTICE、Windows引导修复等配置UEFI引导
- 根据搜索到的资料,在PE下用Win8/10内核的bcdboot.exe d:\windows /s c: /l zh-CN /f UEFI 方式往EFI分区安装efi文件
- PE用BOOTICE修改MBR 主引导为grub2(其实安装好Ubuntu之后引导已经是grub2了;但是是不是EFI不是很确定,我修改主引导后反而造成了Ubuntu的grub2找不到,两个系统都不能引导)
另外,MBR硬盘格式没有ESP分区,EFI分区有,但是设置分区属性后,PE会把它隐藏。没研究过是机制还是什么
BIOS引导
在各种摸索中逐渐有了一个意识,就是我在EFI引导修改主引导记录为grub2之后,MBR硬盘的引导从跳往第二个EFI分区被我改成第一个EFI分区了,一直提示找不到/boot/gurb/grub.cfg
;当我随便放一个空文件的grub.cfg
后又提示找不到/boot/grub/modules/i386-pc.img
之类的东西(记不住名字)
加上我对grub2不那么熟悉,以前只折腾过win7 MBR 安装Ubuntu,那时候用的是EasyBCD
的软件,所以写过menu.lst,(我才意识到是grub/grub4dos
的脚本文件)
所以进PE、创建第一个EFI分区并取消隐藏,转安装主分区引导为grub4dos;重启提示找不到 menu.lst和grldr,就去官网下载了 0.46a版本(相比0.45c支持ext2启动还是什么的);然后拷贝了压缩包里几乎所有文件(压缩包/samples/目录下的default和config.sys可以保存之前使用过的引导),根据samples下的menu.lst修改菜单条目,成功引导Ubuntu。
标签:引导,分区,Win7,EFI,Ubuntu,安装,MBR From: https://www.cnblogs.com/SendBoringBackToNoWhere/p/16846485.html