修改Win7引导文件实现Win7与Ubuntu双系统引导的失败

QEMU模拟器下完成win7与ubuntu双系统启动的详细过程与原理解释 MBR,主动引导记录,可以帮助引导操作系统启动。是boot_loader的一种。通常处于硬盘第一扇区。MBR中主要分为三个部分:引导加载程序,硬盘分区表,结束标志。其中引导加载程序是引导操作系统启动,硬盘分区表则存储硬盘上所有分区的起始和终止位置,以及其他与分区相关的信息。结束标志则是标志MBR的结束。 阅读详情

1 背景

之前安装过Win7和Ubuntu的双系统,安装的过程是先安装Win7,然后安装Ubuntu,在安装Ubuntu时将GRUB引导程序安装在硬盘的主引导扇区中。按这样的安装顺序是因为Windows系统的引导程序无法自动检索Ubuntu系统的引导程序,而且安装Win7系统时,默认会将Windows系统的引导程序安装在硬盘的主引导扇区,这样就会造成无法进入Ubuntu系统。

将GRUB引导程序安装在主引导扇区固然方便,但是每当我们 要重新安装Windows系统时,就要重新安装Ubuntu系统或者GRUB引导程序。通过网上的一些资料,知道可以修改Win7系统的引导文件来引导Ubuntu系统,这样每次要重装Win7系统时只要再修改一些Win7系统的引导文件即可正确引导已安装的Ubuntu系统。过去的两天重装系统就打算用这种方式,然而折腾了一天一夜,最终还是没有成功。下面是我重装系统时做的一些功课,以及我的失败情况。

2 主引导记录

2.1 主引导记录MBR

参考资料:主引导记录 - 维基百科

主引导记录(Master Boot Record,MBR),又称为主引导扇区,是计算机硬盘的第一个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。主引导记录记录着硬盘本身的相关信息以及硬盘各个分区的大小以及位置信息。

主引导记录的组成包括:启动代码、硬盘分区表和魔数(0x55AA,表示主引导扇区的结束)。启动代码占据主引导扇区的前446个字节,其中的硬盘引导程序的主要作用是检查分区表是否正确并且在硬件完成自检以后将控制权交给硬盘上的引导程序。硬盘分区表占据主引导扇区的64个字节(偏移01BEH—偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以参考下面的硬盘分区结构信息。

偏移

长度(字节)

意见

00H

1

分区状态:00Hà非活动分区;80Hà活动分区;其他数据没有意义

01H

1

分区起始磁头号(HEAD),用8位

02H

2

分区起始扇区号(SECTOR),占据02H的位0-5;该分区的起始磁柱号(CYLINDER),占据02H的位6-7和03H的全部8位

04H

1

文件系统标志位

05H

1

分区结束磁头号(HEAD),用8位

06H

2

分区结束扇区号(SECTOR),占据06H的位0-5;该分区的结束磁柱号(CYLINDER),占据06H的位6-7和07H的全部8位

08H

4

分区起始相对扇区号

0CH

4

分区总的扇区数

 

2.2 引导程序读取流程

当系统开机或重启时,

  1. BIOS加电自检(Power On self Test – POST)。BIOS执行的内存地址为FFFF:0000H处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。
  2. 读取主引导记录。当BIOS检查到硬件正常并与CMOS中的设置相符后,按照CMOS中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(即主引导扇区)读入内存地址为0000:7C00H处。
  3. 检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于55AAH,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示“NO ROM BASIC”,然后死机。
  4. 当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处,然后继续执行。
  5. 根据MBR中的引导代码启动相应分区的引导程序。

3 Win7引导过程基本知识

Xp系统的引导文件是boot.ini。如果存在多个系统,那么需要在该文件中进行设置。当MBR的引导代码启动xp系统所在分区的引导程序后,将读取boot.ini文件来显示启动选项。在Win7系统中没有了boot.ini文件,而是通过bootmgr和BCD(Boot Configuration Data,启动配置数据)来进行引导配置。

3.1 Win7引导过程

MBR的引导代码启动Win7系统所在活动分区的引导程序后,引导程序将通过bootmgr来寻找并读取BCD,如果有多个启动选项,则将其显示,由用户进行选择。启动Win7时会加载C:\windows\system32\winload.exe,并开始加载内核。

3.2 BcdEdit基本知识

BcdEdit时一个管理BCD存储的命令行工具。它有多种功能,包括创建新存储、修改现有存储以及添加启动菜单选项等(注:需要管理权限才能使用BCDEdit修改BCD)。该工具与Win7分发一起包含在%WINDIR%\System32文件夹中。

BcdEdit的命令行格式为:BcdEdit /command [Argument1] [Argument2] …

 

表格 1 常用的BcdEdit命令行选项

选项

描述

/?

显示BcdEdit命令列表。

/createstore

新建一个空的启动配置数据存储。创建的存储不是系统存储。

/export

将系统存储的内容导出到文件。仅对系统存储有效。

/import

将某存储导入系统存储,之前的系统存储内容将删除。

/store

指定特定的存储。未指定是对系统存储进行操作。

/copy

复制同一系统存储中指定的启动选项。

/create

在启动配置数据存储中创建一个新的空项。

/delete

删除指定项。

/deletevalue

删除启动项中指定的元素。

/set

设置一个项的选项值。

/enum

列出存储中的项。

/default

指定在超时到期时启动管理器选择的默认项。

/displayorder

指定向用户显示启动选项时启动管理器使用的显示顺序,有两个值/addfirst和/addlast。

/timeout

指定在启动管理器选择默认项之前要等待的时间,以秒为单位。

 

4 解决方案

下面是我在网上找的一个修改Win7启动配置文件来引导Win7和Ubuntu双系统的一个解决方案。

1. 以管理员身份启动命令提示符。

2. 使用bcdedit配置新引导项。

>bcdedit /create /d “Ubuntu” /application osloader

新建引导项,成功后返回一个GUID值,格式为{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}该GUID值用于唯一标识该引导项。

>bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=c:

设置新引导项的引导文件所在分区。

>bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \linux.bin

设置启动项的启动文件在分区中的相对路径,注意文件之前的“\”时必须的,表明是在所在分区的根目录下。

>bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast

设置引导项顺序,addlast为将其添加到引导项列表的最后。

3. 制作Ubuntu系统的引导文件linux.bin。

通过LiveCD进入Ubuntu系统,通过命令fdisk查看各个分区信息,将Win7系统所在分区(假设为sda2)挂载在/mnt/dos目录下(挂载命令为mount /dev/sda2 /mnt/dos),然后将我们所安装的Ubuntu系统所在的分区(假设为sda3)的第一个扇区的内容保存为一个文件linux.bin(命令为dd if=/dev/sda3 of=/mnt/dos/linux.bin bs=512 count=1)。

4. 进入Win7系统,将linux.bin文件放在c盘根目录下,然后重启系统可以看到Win7和Ubuntu两个系统的启动选项进行选择了。

 

5 失败

折腾了一天一夜,将Ubuntu装了7、8次,一直出现下面的两个错误,

错误1:无法将Ubuntu系统的引导程序GRUB安装在挂载了”/”目录的ext2分区中。

错误2:将GRUB装在U盘中,按照上面方案制作Ubuntu的引导文件linux.bin,并修改Win7的引导文件,还是无法加载Ubuntu。

最后只好将GRUB引导程序安装到MBR中了。

告别BIOS切换!用BOOTICE一键整合Win10与Ubuntu20.04双系统引导(附EFI分区清理技巧) 本文详细介绍了如何使用BOOTICE工具一键整合Win10与Ubuntu20.04双系统引导,告别频繁的BIOS切换。通过迁移Ubuntu引导文件、重建启动项及清理EFI分区等步骤,实现单菜单切换双系统,同时回收磁盘空间。附有EFI分区清理技巧和常见问题解决方案,适合开发者提升工作效率。 阅读详情

相关推荐

双硬盘双系统实战:华硕天选3+Win11+Ubuntu20.04分区与引导配置详解

本文详细解析了在华硕天选3游戏本上实现Win11与Ubuntu20.04双硬盘双系统的完整配置流程。核心内容包括:BIOS关键设置、利用双NVMe硬盘实现物理隔离的分区策略、GRUB引导配置,并重点解决了Realtek无线网卡驱动缺失导致WiFi图标不显示的问题,提供从安装到驱动修复的一站式实战指南。

web39explorer的博客 5497

Windows 7启动项文件夹路径修改指南:自定义你的启动项目

路径:C:\Users\<用户名>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。输入 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 并按回车键。在“系统配置”窗口中,选择“启动”选项卡,这里会列出所有启动程序。在“启动”选项卡中,右键点击不需要的启动项,选择“禁用”。在注册表编辑器中,点击“文件”菜单,选择“导入”。

leleshengh520的博客 5282

双硬盘部署Win10与Ubuntu双系统:UEFI引导隔离与分区实战指南

操作系统引导是计算机启动的核心环节,它负责加载内核并初始化硬件。在UEFI固件与GPT分区表成为主流的今天,引导管理变得更加灵活可靠。通过物理隔离实现多系统引导,能有效避免引导冲突与数据风险,提升系统稳定性与维护效率。这一技术在开发测试、数据科学、网络安全等需要多环境切换的场景中尤为实用。本文以Windows 10和Ubuntu 20.04.1为例,详细解析如何利用双硬盘实现引导隔离,涵盖UEFI设置、分区规划、GRUB配置及常见排错,为追求稳定与可控性的用户提供一套完整的工程实践方案。

weixin_30598225的博客 557

安装 win7和ubuntu14.04 32位 双系统时引导不成功解决!

说来还是自己在装系统太菜,不过每次失败都会学习很多。 自己公司给配备的新笔记本电脑的硬盘分区格式是:GPT   。win7和ubuntu14.04 32位都可以正常安装,但是安装后用EasyBCD在windows中添加ubuntu引导不成功。经过查证,是因为自己的启动模式UEFI,但是ubuntu14.04 32位可能不太支持UEFI启动引导,只可以用Legacy来引导,又因为U

zhaoyuaiweide的博客 1931

华硕主板UEFI+GPT双系统安装指南:Ubuntu与Windows共存与引导修复

在计算机硬件与操作系统协同工作中,UEFI与GPT是现代启动方案的核心基础。UEFI取代传统Legacy BIOS,提供更快的启动速度和更完善的安全机制,而GPT分区表则突破了MBR的容量限制,两者结合成为当前主流系统安装的标准配置。理解启动模式与分区表类型的匹配关系,是解决多系统共存问题的前提。在实际工程实践中,安装双系统常涉及磁盘分区规划、引导器选择与系统启动顺序管理等关键技术环节。无论是开发环境搭建、学习Linux操作,还是日常办公需求,在单台设备上运行Windows与Ubuntu系统都能显著提升工作

weixin_34356555的博客 361

Ubuntu零基础入门到精通【3.5讲】:双系统安装 Ubuntu 与 Windows:从分区原理到系统引导,一次讲透!

🏆 本文收录于 《滚雪球学 Ubuntu》 专栏。 本专栏面向有一定计算机基础,但尚未系统学习 Linux / Ubuntu 的读者,采用“滚雪球式学习法”:先装好、再会用、再理解、再优化、再实战,带你从第一次进入 Ubuntu 桌面 / 终端开始,逐步掌握 Ubuntu 的日常使用、命令操作、软件安装、系统配置、开发环境搭建与服务器部署能力。

**My Coding Family** 1341

安装系统怎么老是在启动服务器失败怎么办啊,装系统时引导文件添加失败怎么处理?...

按照我的经验,你想办法退到ok提示符下,然后根据你系统情况,选一个合适的boot方式。一般boot方式选择有cdrom/disk/network等几种,在eeprom里面可以配置(root 用户敲命令eeprom可以查看或配置)。系统在boot的时候,会按照eeprom里面配置的媒质次序来boot,如果你想从disk来启动,但eeprom里面只配置了cdrom或/和network,那你把网线和光盘...

weixin_32822089的博客 1279

win7启动文件参数修改

BCD各种参数的介绍和修改方法,高手必备宝典

Ubuntu 18.04 启动失败的修复方法

由于突然断电,重新启动后发现不能进入Ubuntu系统,进入了GRUB界面。按照网上的方法在GRUB界面下修复,但是还是不能成功。原因可能是GRUB启动文件或者启动分区遭到破坏,于是尝试了另外一种方法,就是利用Ubuntu的安装光盘,加载Boot-Repair修复引导程序来解决问题。 这里涉及三个问题: 制作Ubuntu安装光盘或U盘,然后启动到Ubuntu安装界面,注意这时候要选择“试用Ubuntu”,然后就能进入Ubuntu桌面。 连接上互联网,打开终端,然后下载安装并运行Boot-R...

stlinax的博客 8447

LangChain Message 官方文档

消息是聊天模型中的基本通信单位。它们用于表示聊天模型的输入和输出,以及与对话相关的其他上下文或元数据。每条消息都包含一个角色(如“用户”、“助手”)和内容(如文本或多模态数据),并可能包含根据不同聊天模型提供商而有所不同的附加元数据。LangChain 提供了一个统一的消息格式,可以跨不同聊天模型使用,简化用户在不同模型之间切换时所需关注的消息格式差异。

AI Agent 首席体验官 896

GIS常用坐标系简介

EPSG:4326是基于WGS 84的地理坐标系,使用经纬度表示,适用于全局定位和地理数据表示。它的缺点是在进行距离、面积计算等地理分析时不够准确。EPSG:3857是投影坐标系,使用平面米坐标表示,适用于在线地图展示,特别适合 Web 地图应用。虽然它在地图展示中很高效,但由于投影引起的变形问题,它不适合高精度地理测量和计算。

weixin_59096287的博客 1976

双系统下WIN10删除EFI下Ubuntu的引导项

因为要建立深度学习小型工作站,因此,在自用笔记本上安装了双系统,并且想尝鲜ubuntu最新的版本20.04,但是ubuntu系统的驱动安装失败,就直接在磁盘管理中删除了ubuntu所在的磁盘分区,但是没有删除引导项,因此每次开机,都会进入grub界面,输入exit才能进入win系统。

qq_38620433的博客 3019

KEIL调试实战:解决‘TRACE HW not present‘错误的完整指南

本文详细解析了KEIL调试中常见的'TRACE HW not present'错误,该错误通常由芯片或ST-LINK调试器不支持高级指令跟踪功能引发。文章提供了从禁用Trace功能到更新固件、检查硬件连接等完整的解决步骤,帮助开发者快速恢复STM32的正常调试,是解决KEIL调试连接问题的实用指南。

weixin_29192365的博客 360

uefi引导mbr分区表的win7,并与ubuntu18组双系统

最开始,笔记本之前装的是win7旗舰版。win7安装默认使用Legacy引导mbr分区表。后来,想装个ubuntu组双系统,目前的版本是ubuntu18.04。机器有两块硬盘,一个ssd作为系统盘,一个hdd作为存储盘。我把hdd压缩了一些空间出来,准备在这些空间里安装,遇到的问题如下: 1、下载镜像文件,用UltraISO作个u盘启动盘,发现只能用uefi引导启动。 2、安装...

ltb000的博客 3319

【知识点总结】电路原理 第一讲

大家好,从今天起,我将开始更新自上大学以来所学到的各种知识,之所以选择更新它们是因为最近我一直在收拾整理自己自上大学以来所收获到的各种知识,看着那厚厚一沓的书本心里不由得犯愁。如果我想找到特定的知识,那岂不是得翻到猴年马月。俗话说得好,下雨天打鞋子,闲着也是闲着,为此我设置一个专栏,将知识点一一分类总结,目的在于更好的整理所学的知识。本人学艺不精,有一些知识点地方可能存在瑕疵,希望各位大佬可以多多指教。以下是本篇文章正文内容虚断:一般通用性运算放大器的正反向输入端之间的电阻非常非常的大。

weixin_51130221的博客 4万+

飞腾X100芯片GPU状态查询

本文档对在linux系统下查看X100芯片GPU状态信息进行说明,可以帮助大家了解芯片的实时工作状态。

乌拉大喵喵 2813

win10恢复linux引导文件,easybcd误删Win10启动项,UEFI恢复引导

想给电脑安Ubuntu双系统,期间根据一些不靠谱的文章用了easybcd软件,Ubuntu没安上,反而把Windows的引导弄没了,这软解真没坑啊。回复Windows引导需要用Windows系统盘来修复。再BIOS里设置U盘启动,进入Windows安装界面,点击下一步,在新的页面选择左下角的修复计算机。修复界面依次选择:疑难解答->高级工具->命令提示符 进入命令行,显示X:\Sour...

weixin_36227100的博客 2538

高性能算力中心 — RDMA — Overview

目录 文章目录目录RDMA基于以太网的 RoCE/RDMA 计算优化NVMeNVMe Over Fabrics基于以太网的 NVMe 存储优化 RDMA RDMA(Remote DMA,远程直接内存访问)是一种新的内存访问技术,RDMA 让计算机可以直接存取其他计算机的内存,而不需要经过 CPU 耗时的处理。RDMA 将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响。RDMA 技术的原理及其与 TCP/IP 架构的对比如下图所示。 InfiniBand(IB):从一开始就支持 R

烟云的计算 2365

Win10下安装Ubuntu18.04/Centos7.9双系统

Win10+Ubuntu16.04LTSWin10下安装Ubuntu16.04LTS双系统主要步骤可能遇到的问题 Win10下安装Ubuntu16.04LTS双系统 许多SAR处理软件都是在Linux环境下开发的,故而有了这次折腾的安装。我的笔记本电脑是宏碁win10,安装Ubuntu期间可以在administrator账户中操作,可以免去许多繁琐。 主要步骤 (1)使用软碟通ultraISO制作Ubuntu启动盘,软碟通可以在网上下载,具体制作教程也很容易找到,在此不做赘述。 ps: 不要在ultraIS

weixin_44937979的博客 960

微博scheme

微博scheme

qq_42278595的博客 318

新系统申请软件著作权详细操作说明

今年八月底版权中心系统升级,新系统相对好用一些,至少不用再拿IE访问了,但是多了一项实名认证。下面介绍新系统的操作流程。 目录注册、登录和实名认证注册登录实名认证软件登记申请申请表填写鉴别材料身份证明文件权利归属证明文件其他材料提交材料变更登记 注册、登录和实名认证 首先访问版权中心系统:https://register.ccopyright.com.cn/login.html,如果老系统有账号直接登录即可,没有的话需要注册。 注册 点击注册按钮进入注册。 根据实际情况选择个人或单位,每个个人或单位只能在

Programming Talk 1万+

双硬盘安装Ubuntu与Win10双系统:Grub引导与分区避坑指南

在单块硬盘上安装多操作系统时,引导冲突与分区错乱是常见痛点,其根源在于UEFI固件与启动管理器Grub对磁盘分区和引导文件的争夺。采用双硬盘物理隔离,让Ubuntu与Windows各自拥有独立的EFI引导分区和系统盘,可从根本上降低引导覆盖风险,同时保留系统级容错能力。对于需要搭建深度学习、ROS开发或工业控制环境的用户,这种方案兼顾稳定性和维护便利性。以磁盘分区、UEFI启动项设置到Grub配置与引导修复为主线,完整梳理双硬盘安装Ubuntu 16.04与Win10双系统的工程实践路径,帮助遇到黑屏、引导

weixin_34364071的博客 292

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Win11与Ubuntu双系统安装全攻略:从分区到引导的避坑指南

双系统安装是计算机用户拓展操作系统能力、构建异构开发环境的常见需求,其核心原理在于通过引导管理器(如GRUB)实现多个操作系统在同一硬件上的共存与选择启动。这项技术能充分发挥物理硬件的原生性能,避免虚拟化带来的资源损耗,尤其适用于深度学习、高性能计算、嵌入式开发等对I/O和GPU有直接访问需求的场景。在具体实践中,UEFI引导模式、GPT分区表以及AHCI磁盘控制器模式构成了现代双系统安装的技术基础。对于Windows 11与Ubuntu的组合,成功的关键在于正确处理Intel RST/VMD控制器设置、E

cneo2012的博客 424

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

告别BIOS切换!用BootICE一键整合Win10和Ubuntu20.04双系统引导(附EFI分区清理技巧)

本文详细介绍了如何使用BootICE工具一键整合Win10和Ubuntu20.04双系统引导,告别繁琐的BIOS切换,并附上EFI分区清理技巧。通过可视化操作和零命令输入,开发者可以快速实现双系统引导整合,提升启动效率,同时安全清理冗余的EFI分区。

weixin_30664051的博客 416

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

上一篇: 常见MIME类型
下一篇: java.lang.ClassNotFoundException: com.sun.faces.config.ConfigureListener
轻鸿飘羽
博客等级 码龄16年 124粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值