首页 > 系统相关 >速记MBR硬盘,BIOS安装的Win7,EFI安装Ubuntu后如何引导双系统

速记MBR硬盘,BIOS安装的Win7,EFI安装Ubuntu后如何引导双系统

时间:2022-11-01 03:44:07浏览次数:50  
标签:引导 分区 Win7 EFI Ubuntu 安装 MBR

前言

本文没有图,截图不方便,虚拟机复现可以但是不想开
本以为折腾实在不行了,用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

思路

调试了各种方法
最后思路考虑了两种

  1. MBR做引导两个系统
  2. 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

相关文章

  • 编译gRPC相关示例程序,undefined reference to `deflateInit2_'等相关错误解决
    编译gRPC相关示例程序时,出现如下链接错误:/home/suph/.local/lib/libgrpc.a(message_compress.cc.o):Infunction`zlib_compress(grpc_slice_buffer*,grpc_slice_buffer*......
  • win11的go安装
    背靠国外各大金主的go语言,在各种推动下,可谓是新的弄潮儿,但国内虽然各种推销,但从安装到开发再到维护,资料都少之又少,可能被垄断了解释权吧。因此下面的也只是一个记录而已,......
  • Linux下使用nm命令排查和解决“undefined reference to ”
    一、案例    编译出一个动态库.libXXXEngine.so。然后直接在另一个工程中,把头文件include进来,并link到该库:-lXXXEngine.尝试编译,出错:.//libXXXEngine.so:undefin......
  • vue3+vant 引入Dialog Toast都会失败报错not defined
    今天在封装vant组件的时候,刚好要用到toast提示信息的组件,索性就按照官网提供的引入方法进行正常的引入,嘿,好家伙,一顿操作下来后发现竟然报Toast未定义,这就纳闷了,明明步骤都......
  • node.js的安装
    一、下载node.js的下载地址Download|Node.js(nodejs.org)根据使用系统,选择对应的安装包根据点击如下按钮可以选择历史版本进行下载二、安装下载好之后直接双击安......
  • 安装 Ubuntu 操作系统 16.04.5
    此时虚拟机已经自动开始安装系统了。。。。。。。。稍后一段时间。等待10分钟后,出现完毕界面:登录后,进行一些基础配置。比如切换到中文:请参考下面链接安装软件:终端打开后输......
  • Linux C语言 Makefile 的使用 函数
    创建三个.c文件终端输入:创建目录:mkdirMakefile进入目录:cdMakefile使用gedit:gedit第一个文件:main.c#include<stdio.h>#include"input.h"#include"calcu.h"intm......
  • Docker安装Redis
    一、Docker拉取redis镜像dockerpullredis:<latest>二、Docker挂载配置文件将redis的配置文件进行挂载,以配置文件方式启动redis容器(挂载:将宿主机的文件和容器内部目录......
  • CentOS9上面使用rpm方式安装SQLServer2022的简单总结
    CentOS9上面使用rpm方式安装SQLServer2022的简单总结下载需要的资料下载CentOS9Stream的安装介质https://mirrors.bfsu.edu.cn/centos-stream/9-stream/BaseOS/x86_64......
  • redis 安装
    基于CenterOS7安装Redis下载安装包   wgethttp://download.redis.io/releases/redis-5.0.0.tar.gz解压安装包    tar–xvfredis-5.0.0.tar.gz编译(在解压......