系统装好无法启动:浅谈分区中的坑
2022/5/28 22:45:29
2022/5/28 22:45:29
目前主要的系统引导方式也有两种:传统的LegacyBIOS和新型的UEFI BIOS。
免责说明:本文为技术文章,仅供参考,所含操作方法可能造成数据永久丢失,请谨慎实践。数据无价,本站及作者不对用户操作结果提供任何担保和责任,特此说明。
一般来说,有如下两种引导+磁盘分区表组合方式:Legacy+MBR 和 UEFI+GPT
传统的Legacy+MBR
Legacy BIOS无法识别GPT分区表格式,所以也就没有Legacy+GPT组合方式;UEFI BIOS可同时识别MBR分区和GPT分区,所以UEFI下,MBR和GPT磁盘都可用于启动操作系统。不过由于微软限制,UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中。
传统Legacy BIOS引导windows操作系统时,是通过一个活动的主分区下的bootmgr(启动管理器)文件导入根目录下boot文件夹里的BCD(启动设置数据)文件,然后BCD文件根据自身的配置内容加载系统启动文件winload.exe(位置:根目录\Windows\system32\winload.exe)来启动系统。一个BCD文件可以加载多个系统启动文件从而实现引导多个系统的启动通过EasyBCD工具看以看到BCD文件的内容。
需要注意:MBR下,windows系统的启动文件(bootmgr、BCD)必须存放在活动的主分区内,才能正常引导启动(MBR磁盘分区格式下,只允许有一个分区是活动的)。如果是使用微软原版操作系统按照windows安装程序来进行系统安装,系统会自动创建一个隐藏的活动主分区(win7貌似是100M,win8貌似是350M)用来存放启动文件;如果采用其他安装方式来安装系统,由于系统默认并不会自动创建这个活动的主分区,启动文件将会存放我们的系统盘里,所以我们在采用其它安装方式安装第一个系统时,需要确保安装系统的分区是活动的、而且是主分区。而安装第二个、第三个系统时,就不必是主分区了,逻辑分区也可,因为我们已经有了一个活动的主分区了包含了我们的第二个、第三个启动信息。
UEFI+GPT模式
GPT分区能支持2T以上硬盘,因此UEFI+GPT模式多用于大硬盘分区启动模式。
UEFI bios启动时,自动查找硬盘下esp分区的bootx64.efi,然后由bootx64.efi引导efi下的bcd文件,由bcd引导指定系统文件(一般为c:\windows\system32\winload.efi)
UEFI BIOS引导windows系统时,是通过一个FAT格式分区下的bootmgfw.efi文件来导入BCD文件,然后BCD文件根据自身的配置内容加载系统引导文件winload.efi(对比legacy引导发现,UEFI的引导文件winload.efi,而Legacy的引导文件为winload.exe)
需要注意的是:GPT磁盘格式下,windows系统的启动文件(bootmgfw.efi、BCD)是存放在一个FAT格式的分区里的,有些出厂预装win8系统的电脑下将该FAT分区称之为ESP分区或EFI分区,ESP和EFI分区一般都是隐藏的FAT分区,可以通过DG分区工具来创建ESP分区,预装系统的时候的MSR分区没神马用,不用管他。
可见,UEFI+GPT模式引导windows系统时,并不需要MBR主分区来存储主引导记录,也不需要活动分区,只需要你一个存放了引导启动文件的fat格式分区就可以了,这个Fat分区当然也可以是U盘等外接USB设备了。
就目前情况而言,GPT分区表磁盘不支持32位的win7以及win7之前的系统,仅支持64位的XP、win7、win8、win10和32位的win8、win10。一般地,GPT磁盘多与64位windows系统组合搭配支持双系统启动。
引导修复
再说引导丢失、损坏导致系统无法正常进入情况下,如何通过修复引导来使系统正常启动。
即使使用了引导工具,启动仍然出现 Ntlder is missing,Bootmgr is missing 这样的错误。本人在修理戴尔一款I7笔记本时,采用UEFI+GPT装机WIN10,发现上述问题,反复运用NT6引导修复,BISO启动模式也换成UEFI无果,后来发现需要在BISO的UEFI手动新建一个启动项,命名为W10,关联到第一分区下类似BOOT/bcd,即可正常启动,具体GHO恢复办法如下:
本系统采用GTL分区安装,无法直接用1键GHOST备份恢复
请用UEF启动盘启动WIN10PE
确保C盘是GPT分区,如不是请用DiskGenius转换为GPT分区,不会损伤数据
使用WIN10PE的GHSOST将此镜像恢复到C盘
用NT6引导程序,引导到C盘。
回到BIOS确保设置为UEIF,新建启动W10,将引导文件定位于/boot/bcd
OK
用bootice自动修复
我们建议大家启动64位win8PE,用它带的bcdboot来修复。
指定esp分区修复
1.启动64位win8PE,并用esp分区挂载器或diskgenuis挂载esp分区
2.打开cmd命令行,输入以下命令并运行
bcdboot c:\windows /s o: /f uefi /l zh-cn
其中:
c:\windows 硬盘系统目录,根据实际情况修改
/s o: 指定esp分区所在磁盘,根据实际情况修改
/f uefi 指定启动方式为uefi
/l zh-cn 指定uefi启动界面语言为简体中文
注:64位win7PE不带/s参数,故win7PE不支持bios启动下修复
不指定esp分区修复
环境为64位win7或win8PE,只有uefi启动进入PE才可以
不用挂载esp分区,直接在cmd命令行下执行:
bcdboot c:\windows /l zh-cn
注意不指定esp分区的情况是已经存在了esp分区
其中
c:\windows 硬盘系统目录,根据实际情况修改
/l zh-cn 指定uefi启动界面语言为简体中文
部分参阅链接:https://www.jianshu.com/p/fd47937e8eb0
[1] [2]
相关文章(向右看)..
免责说明:本文为技术文章,仅供参考,所含操作方法可能造成数据永久丢失,请谨慎实践。数据无价,本站及作者不对用户操作结果提供任何担保和责任,特此说明。
一般来说,有如下两种引导+磁盘分区表组合方式:Legacy+MBR 和 UEFI+GPT
传统的Legacy+MBR
Legacy BIOS无法识别GPT分区表格式,所以也就没有Legacy+GPT组合方式;UEFI BIOS可同时识别MBR分区和GPT分区,所以UEFI下,MBR和GPT磁盘都可用于启动操作系统。不过由于微软限制,UEFI下使用Windows安装程序安装操作系统是只能将系统安装在GPT磁盘中。
传统Legacy BIOS引导windows操作系统时,是通过一个活动的主分区下的bootmgr(启动管理器)文件导入根目录下boot文件夹里的BCD(启动设置数据)文件,然后BCD文件根据自身的配置内容加载系统启动文件winload.exe(位置:根目录\Windows\system32\winload.exe)来启动系统。一个BCD文件可以加载多个系统启动文件从而实现引导多个系统的启动通过EasyBCD工具看以看到BCD文件的内容。
需要注意:MBR下,windows系统的启动文件(bootmgr、BCD)必须存放在活动的主分区内,才能正常引导启动(MBR磁盘分区格式下,只允许有一个分区是活动的)。如果是使用微软原版操作系统按照windows安装程序来进行系统安装,系统会自动创建一个隐藏的活动主分区(win7貌似是100M,win8貌似是350M)用来存放启动文件;如果采用其他安装方式来安装系统,由于系统默认并不会自动创建这个活动的主分区,启动文件将会存放我们的系统盘里,所以我们在采用其它安装方式安装第一个系统时,需要确保安装系统的分区是活动的、而且是主分区。而安装第二个、第三个系统时,就不必是主分区了,逻辑分区也可,因为我们已经有了一个活动的主分区了包含了我们的第二个、第三个启动信息。
UEFI+GPT模式
GPT分区能支持2T以上硬盘,因此UEFI+GPT模式多用于大硬盘分区启动模式。
UEFI bios启动时,自动查找硬盘下esp分区的bootx64.efi,然后由bootx64.efi引导efi下的bcd文件,由bcd引导指定系统文件(一般为c:\windows\system32\winload.efi)
UEFI BIOS引导windows系统时,是通过一个FAT格式分区下的bootmgfw.efi文件来导入BCD文件,然后BCD文件根据自身的配置内容加载系统引导文件winload.efi(对比legacy引导发现,UEFI的引导文件winload.efi,而Legacy的引导文件为winload.exe)
需要注意的是:GPT磁盘格式下,windows系统的启动文件(bootmgfw.efi、BCD)是存放在一个FAT格式的分区里的,有些出厂预装win8系统的电脑下将该FAT分区称之为ESP分区或EFI分区,ESP和EFI分区一般都是隐藏的FAT分区,可以通过DG分区工具来创建ESP分区,预装系统的时候的MSR分区没神马用,不用管他。
可见,UEFI+GPT模式引导windows系统时,并不需要MBR主分区来存储主引导记录,也不需要活动分区,只需要你一个存放了引导启动文件的fat格式分区就可以了,这个Fat分区当然也可以是U盘等外接USB设备了。
就目前情况而言,GPT分区表磁盘不支持32位的win7以及win7之前的系统,仅支持64位的XP、win7、win8、win10和32位的win8、win10。一般地,GPT磁盘多与64位windows系统组合搭配支持双系统启动。
引导修复
再说引导丢失、损坏导致系统无法正常进入情况下,如何通过修复引导来使系统正常启动。
即使使用了引导工具,启动仍然出现 Ntlder is missing,Bootmgr is missing 这样的错误。本人在修理戴尔一款I7笔记本时,采用UEFI+GPT装机WIN10,发现上述问题,反复运用NT6引导修复,BISO启动模式也换成UEFI无果,后来发现需要在BISO的UEFI手动新建一个启动项,命名为W10,关联到第一分区下类似BOOT/bcd,即可正常启动,具体GHO恢复办法如下:
本系统采用GTL分区安装,无法直接用1键GHOST备份恢复
请用UEF启动盘启动WIN10PE
确保C盘是GPT分区,如不是请用DiskGenius转换为GPT分区,不会损伤数据
使用WIN10PE的GHSOST将此镜像恢复到C盘
用NT6引导程序,引导到C盘。
回到BIOS确保设置为UEIF,新建启动W10,将引导文件定位于/boot/bcd
OK
用bootice自动修复
我们建议大家启动64位win8PE,用它带的bcdboot来修复。
指定esp分区修复
1.启动64位win8PE,并用esp分区挂载器或diskgenuis挂载esp分区
2.打开cmd命令行,输入以下命令并运行
bcdboot c:\windows /s o: /f uefi /l zh-cn
其中:
c:\windows 硬盘系统目录,根据实际情况修改
/s o: 指定esp分区所在磁盘,根据实际情况修改
/f uefi 指定启动方式为uefi
/l zh-cn 指定uefi启动界面语言为简体中文
注:64位win7PE不带/s参数,故win7PE不支持bios启动下修复
不指定esp分区修复
环境为64位win7或win8PE,只有uefi启动进入PE才可以
不用挂载esp分区,直接在cmd命令行下执行:
bcdboot c:\windows /l zh-cn
注意不指定esp分区的情况是已经存在了esp分区
其中
c:\windows 硬盘系统目录,根据实际情况修改
/l zh-cn 指定uefi启动界面语言为简体中文
部分参阅链接:https://www.jianshu.com/p/fd47937e8eb0
相关文章(向右看)..