(2022-11-11更新)速记MBR硬盘,BIOS安装的Win7,EFI安装Ubuntu后如何引导双系统
11-11计划用grub2引导
继续用virtualbox做实验
由于EFI启动太快直机进ubuntu开机菜单了
所以要重启
电脑按ctrl+alt+del
会唤起windows的菜单
所以要virtualbox的热键菜单
但是发完鼠标点进去也来不及
所以用快捷键,Host键(如右ctrl)+Del,然后我Ryzen2600X现在是用esc的
这样就切进efi的设置菜单了
在efi菜单里也没认到我往分区里放的windows的efi引导(win7没有,我是用pe的)
看来bios和efi混装 只能用bios启动两个系统了
BIOS装win7
然后efi启动装ubuntu
然后ubuntu怎么update-grub都找不到windows
切回bios启动就是上图 启动不了
……其实 是不是切回bios 去ubuntu用 update-grub装一次 也就ok了?
我之前还切pe装 grub4dos grub2装了还不会用
好吧 笔记本之前可以在bios切回wepe 虚拟机里不行 进grub(第一版本吧)了 那我进ubuntu然后update-grub也可以的吧
使用Ubuntu live CD安装Grub - Jason Sun - 博客园
根据这边的命令,我在livecd上把grub2安装到了bios的主分区引导
重启以后确实是进了grub2,只是没能正确引导系统
我可能还是要学学livecd上安装grub2正确的参数是哪个
用老一套 linux (vmlinuz root=dev/sda) initrd boot命令 启动进ubuntu
重新登进去以后再sudo update-grub就搞定了
之前update-grub的只有linux内核,以及UEFI Shell的
这下没有UEFI Shell了,但是找到了win7
结果重启完还是这
说明MBR的引导不对 刚才update-grub更新的是分区的引导的样子
噢 我不能照着网页写的 用 --root-directory参数了 虽然grub-install没报错 但是grub-install --help里没这个参数 应该用 --boot-directory 而且 命令执行完 可以去 boot目录看一眼 有没有装错地方
刚发现自己一开始执行命令好像装成了 boot/boot/grub 也是一个错误
现在成功启动进grub2 然后启动进win7了
前言
本文没有图,截图不方便,虚拟机复现可以但是不想开
本以为折腾实在不行了,用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。