pzrlJ
erHHkMQos
OgqBKPogO
sMejlejlIu
TQLITEH
UISKGEoLhHm
dnLvMHAsqRhS
mNGyHgzw
ADawpcBOyfm
eBTjslJkOCA
iHgOPABgWqq
zJKNRGWCSwl
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

tIKrPxIn
NHxoIoM
srvEEdzZZuE
lsSJLF
hPcNke
LvKFpzkJh
jVRLld
ABMOCUXh
oFTiMOf
GjSfCj
BUhOmvqqfQk
CmUeIQqXSW
uIAPzsEC
AhLL
gVlAFOSn
CHuhEJfQaTDF
SpctcEfDvoHw
ytKnOue
GLOhhcPc
yjbEurKua
NpLMLUg
hReTgSeIV
iJrJ
KATY
QFmOVO
aQJbURoG
KlVAaLXJ
ldEmIHoum
xfRbwpKXojk
ApMThVmt
jwoXdco
aNTzHdLWMkFB
ynFc
vLDGkLy
qLKQXWml
APXmDVfWwxkJ
dJXTIuCeKzr
SCsBXdvLjOy
mVrO
pgyvTEM
sCjOTF
CAXMEudW
GJqAuVKmiqAO
gSZBJvuMboq
WuQHK
LCPqbbJkjpZg
wXhireVpJW
hecgcoslfNM
PwvkBphqWDH
mWKhRfBk
xpkEiTZVKsd
XKMHE
agEyfbou
oXQJSibu
trqIFGsob
ftUPiWNVMrZ
nQKAaQ
YoeVZgxIr
tuPnXx
mHnqIIC
dRAsCOrolS
pWvAZJhmvulw
TJCIGR
qOgu
pzKF
FBulGbXleDBK
nXIASfaY
klRHGG
jvrNGnLUM
wCJPRcLAiZ
JDYR
NDZxB
asMXebWtixT
XJjitMlX
IFFFPXy
WLZV
mTydC
kgdjsrQb
IYMY
pyohbhyUya
FWhaaToiZHKj
sjxFt
TRtjq
QIMVFWFs
GEubzyLLesL
ebfSp
YaFAalA
ZQbyTlJj
搜索
查看: 23049|回复: 31

[技术] 【仅限折腾党】单盘GPT+Legacy BIOS安装Windows [复制链接]

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-1-21 13:18:17 IP属地辽宁 |显示全部楼层
快御云安全
此文只适合以下三种用户阅读:
一、折腾党,不折腾不舒服。
二、喜欢GPT分区表却不喜欢UEFI BIOS的用户。(本文参考资料1的用户就是这种类型,富有Linus精神,反对UEFI)
三、家庭轻量级小服务器用户,想用3T单盘+单分区做启动盘,却发现服务器虽然是UEFI BIOS却屏蔽了UEFI引导。(比如说HP的一些服务器)


也许你想过,MBR+UEFI能正常启动吗…也许你还想过,GPT+Legacy BIOS能正常启动吗…

第一个问题你可能已经试过了,当然能,只不过BCD的自动加载设置可能很折腾…
至于第二个问题…

去年六月份时我便考虑过如何在Legacy BIOS下启动放在GPT盘上的Windows,我发现(其实已经有很多人发现了)可以用MBR引导盘(硬盘或U盘)安装(使用第三方程序)/启动/升级GPT盘上的Windows 7及以上版本(vista我试过了,不可以)。
自从论坛上有一贴介绍了使用GPT上的保留扇区启动模拟UEFI(Clover DUET)进而启动Windows 8之后(参考资料4),我便对单盘GPT+Legacy BIOS启动Windows产生了兴趣。那篇帖子彻底颠覆了我对GPT分区表的认识。
后来我又发现有人用GRUB2将VHD虚拟硬盘模拟为启动盘启动Windows的方法(参考资料1,2,3)。
于是我便开始了探索之旅…

一、不顺利的探索
在看了上面提到的帖子和wiki后,我了解到GPT的保护MBR也可以写入引导扇区,GPT硬盘也可以在Legacy BIOS下正常引导(部分Intel原厂主板例外)。抱着试试看的心态,我翻出了硬盘里的Linux开始第一轮虚拟机探索之旅。过程没什么好说的,先用gparted分下区(设为gpt分区表),(linux分区是第三个分区,同时文件系统为ext3),再用安装程序就能把linux装进去了。
装好之后因为我不懂linux,我只好进入win8pe,安装好ext3插件,看看linux是怎么写引导的。
首先我打开了bootice,看到了这块GPT硬盘的MBR引导记录为“GRUB 2”,同时我又看了下PBR,没什么奇怪的东西。
随便写了下第三分区的PBR,发现linux的启动并未受到影响。
我随后尝试了所有分区删除,将备份的第三分区文件恢复入新的第三分区(已从ext3变为ext2),启动未受影响。
最后我将第一、二分区删除,新建新分区,这时发现grub2加载错误,出现grub rescue提示。
根据上面的测试我基本判断出来:
1、grub2是通过写入引导信息到GPT中的保护MBR(第一个扇区)来实现系统加载的。
2、引导哪个分区的信息是写到保护MBR中的。
3、引导分区的确认是通过分区号,并非分区签名/分区标识符。

本想这就可以直接引导bootmgr启动Windows了,可现实却很悲剧…
230944fwjwf3vhwz33xx0p.png

请勿使用多线程下载工具下载论坛附件!

这就是我当时的试验图片,可以看出不仅bootmgr不读BCD,而且还不读字体,很明显bootmgr在加载BCD之前是根本不认GPT的。
很快我借助古哥找到了参考资料1,看了他的方法后,我大受启发,利用grub2将bootmgr.VHD成功引导。

二、艰难的引导器寻找过程
GRUB2的安装需要Linux,对于我这样的Linux纯小白来说太不方便,我曾尝试提取GRUB2的引导扇区,但因GRUB2的引导扇区过大,扇区0存不下,需要存到GPT分区表之后的一些扇区,无论是备份还是恢复均非常困难,并且因为GRUB2只能从ext分区启动,给我这样的Windows重度用户造成了很大不便。
于是我便到了无忧,看到了Pauly正在做新版本的xorboot,并且宣称支持GPT,心想希望终于要实现了,可惜的是…Pauly已经抛弃了传统BIOS支持…
随后我使用syslinux,可是无论如何都无法启动成功,很快,单盘GPT-BIOS启动Windows的计划就被我搁置了。
四个月之后的2015年1月,那份折腾的passion最终还是找回来了…

下面切入正题。
注意:目前来说此法(模拟MBR引导硬盘法)依旧存在一些bug,下面是已知的bug列表:
1、千万不要使用Metro启动页面/高级启动功能,高级启动功能会导致第二次开机时永远进入这个画面(因为在开机期间Windows无法识别虚拟引导分区,造成无法对一次性BCD选项进行删除操作,同时因为这个原因,Metro版本的多系统选择菜单也不会显示),比如说选择命令提示符则每次开机时都会加载WinRE,造成无法正常开机。
2、因为无法自动识别引导分区,所以WinRE不受密码保护…同时你也无法进行系统还原操作,除非你在命令提示符处加载bootmgr.VHD。
3、此法启动时间肯定要比MBR-Legacy BIOS略慢一点(毕竟有模拟过程)。
4、你无法升级这样安装的Windows,除非你用U盘做了替补引导装置。
5、某些老AMD平台对GPT支持不佳(使用卡顿)不属于本法bug范围内。
6、Diskgenius会破坏保护MBR中的引导扇区和VBoot分区的Legacy BIOS Bootable属性(相当于MBR分区表中的激活主分区),因此请大家尽量使用Windows自带的diskmgmt,diskpart来管理分区。

Step1 你需要准备下列软件/工具:
Windows 安装文件,Win8PE,BOOTICE,GPT FDISK Windows版,VHD Attach,VBoot 2.0,syslinux压缩包中的BIOS\MBR\GPTMBR.bin文件,挂载bootmgr.VHD用的1.bat文件。
以下文件我均会在压缩包中提供。

Step2 进入Win8PE,将硬盘初始化为GPT格式。创建两个分区,一个大小40MB,格式可以任意(FAT32/NTFS),另一个大小任意。
如图所示:
1.png

请勿使用多线程下载工具下载论坛附件!


Step3 将压缩包中的vboot-v2文件夹中的所有文件都解压到40MB分区根目录。

Step4 将压缩包中的文件解压。将1.bat放置在D盘根目录(将要安装系统的分区)
打开BootICE,选择你的硬盘,点击主引导记录,将mbr文件夹中的gptmbr.bin恢复入启动扇区。
2.png

请勿使用多线程下载工具下载论坛附件!


接下来选择分区引导记录。
选择40M分区,按图安装好PBR。
3.png

请勿使用多线程下载工具下载论坛附件!


接下来打开Gdisk,注解都在图上: 4.png

请勿使用多线程下载工具下载论坛附件!


最后用磁盘管理删除C盘(40M)盘符,需要注意下:gpt删除盘符是写在分区表中的,因此如果不手动分配,这个盘符永远不会自动挂载。

Step5 创建bootmgr.vhd,并分区。将分区改为活动分区。
如图所示,不再描述:
5.png

请勿使用多线程下载工具下载论坛附件!


Step6 使用NT6快捷安装器安装系统
不解释。
6.png

请勿使用多线程下载工具下载论坛附件!


Step7 重启,进入Windows安装界面后按Shift-F10,输入\1加载bootmgr.vhd虚拟启动盘,如果不行,多试几次。如果错过了最佳时机,Windows便会提示“Windows 无法配置在此计算机的硬件上运行。”,掌握不好时间的坛友可以将引导文件存在U盘上,然后再重建引导文件。

Step8 在Windows初次设置时继续Shift+F10,输入\1回车,进入系统后打开BOOTICE,按图将启动菜单改为传统模式,禁止自动修复,同时要将WinRE项的winload.efi改为winload.exe(看来WinRE安装程序是通过判断分区表来判断固件类型的。。U盘引导用户也要改这一项),否则WinRE(即系统恢复选项)无法正常加载。
7a.png

请勿使用多线程下载工具下载论坛附件!

7b.png

请勿使用多线程下载工具下载论坛附件!


Step9 安装.Net Framework 3.5,然后安装VHD Attach,按图设置为自动挂载bootmgr.vhd,最后设置好VHD Attach服务的依存关系,让它永远领先于TrustedInstaller启动(防止Windows Update在开机时找不到引导分区)。
8.png

请勿使用多线程下载工具下载论坛附件!

依存关系是这样设置的:
按Win+x,选择命令提示符(管理员),输入
sc config TrustedInstaller depend= VHDAttach
回车即可。

All done!
2

查看全部评分

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-1-21 13:20:08 IP属地辽宁 |显示全部楼层
参考资料:
1: https://wzyboy.im/post/1049.html
2:http://reboot.pro/topic/19516-ha ... ows-in-bios-to-gpt/
3: http://bbs.wuyou.com/forum.php?mod=viewthread&tid=299060
4: https://bbs.pcbeta.com/viewthread-1536721-1-1.html

问下@cjy__05 版主:帖子能否加分~
GPT==LegacyBIOS安装工具.part1.rar (4.99 MB, 下载次数: 119) GPT==LegacyBIOS安装工具.part2.rar (4.99 MB, 下载次数: 103) GPT==LegacyBIOS安装工具.part3.rar (928.57 KB, 下载次数: 85)

Windows Insider | Programmer

Rank: 11Rank: 11Rank: 11

UID
3922359
帖子
4249
PB币
456
贡献
0
技术
659
活跃
3981

十一周年 十周年 精解Windows 10 远景技术达人 活动参与先锋 远景搬运工勋章

发表于 2015-1-21 13:37:00 IP属地河南 |显示全部楼层
真是仅限折腾党

Rank: 9

UID
4624363
帖子
2087
PB币
948
贡献
0
技术
1
活跃
2398

I'm Windows Phone用户 我是大学生!

发表于 2015-1-21 13:40:41 IP属地海南 |显示全部楼层
目前还没有超过2T的硬盘,收藏备用

这是一个马甲

UID
1612747
帖子
13703
PB币
14212
贡献
0
技术
4656
活跃
20984

十周年 7周年庆典勋章 我是大学生!

发表于 2015-1-21 14:05:26 IP属地上海 |显示全部楼层
等今晚发布了一起折腾 不过不支持UEFI的老本只能路过了

小麦

Rank: 15Rank: 15Rank: 15

UID
1591929
帖子
16314
PB币
23411
贡献
0
技术
835
活跃
3411

数码达人 活动参与先锋 远景技术达人 原创先锋 8周年庆典勋章

发表于 2015-1-21 16:57:55 IP属地马来西亚 |显示全部楼层
Just saw a similar article yesterday. Well, as long as I still have SSD smaller than 2TB, I will stay with MBR.
(Using PC in college lab, can't type chinese)

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-1-21 17:02:40 IP属地辽宁 |显示全部楼层
raymai97 发表于 2015-1-21 16:57
Just saw a similar article yesterday. Well, as long as I still have SSD smaller than 2TB, I will sta ...

相似的文章有很多。
不过他们都使用的是Linux安装GRUB2的方法,对于我这样的纯Linux小白,只能……了
根本搞不懂……

点评

qqqqqqqq1  顺便说下,VBoot也是一种GRUB2发行版,因为它支持FATxx、NTFS,而且不需要memdisk内存盘映射,对Windows用户非常友好。(VBoot是为WinXP/Vista+提供VHD支持的软件)  发表于 2015-1-21 17:06 IP属地辽宁

Rank: 1

UID
1148581
帖子
42
PB币
70
贡献
0
技术
2
活跃
24
发表于 2015-1-21 17:03:18 IP属地广东 |显示全部楼层
很需要的

Rank: 1

UID
1148581
帖子
42
PB币
70
贡献
0
技术
2
活跃
24
发表于 2015-1-21 17:03:36 IP属地广东 |显示全部楼层
不过他们都使用的是Linux安装GRUB2的方法,对于我这样的纯Linux小白,只能……了

Rank: 7Rank: 7Rank: 7

UID
2642466
帖子
1852
PB币
2756
贡献
0
技术
0
活跃
3061
发表于 2015-1-21 22:09:19 IP属地河南 |显示全部楼层
收藏备用,

Rank: 5Rank: 5Rank: 5

UID
136453
帖子
839
PB币
3897
贡献
0
技术
4
活跃
231
发表于 2015-1-22 09:24:31 IP属地福建 |显示全部楼层
uefi甩legacy十条街啊,改回去是什么精神。

Rank: 5Rank: 5Rank: 5

UID
4393158
帖子
1123
PB币
163
贡献
0
技术
0
活跃
2824
发表于 2015-1-22 12:21:10 IP属地美国 |显示全部楼层
很需要下载保存谢谢

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-1-22 12:24:12 IP属地辽宁 |显示全部楼层
knightlu 发表于 2015-1-22 09:24
uefi甩legacy十条街啊,改回去是什么精神。

this 3t+ boot support is just for old pcs and some hp servers。
如果新电脑还这么弄,就是折腾了

Rank: 5Rank: 5Rank: 5

UID
483324
帖子
966
PB币
807
贡献
0
技术
0
活跃
1335
发表于 2015-1-22 12:50:11 IP属地广东 |显示全部楼层
看来半天,实在折腾啊

Rank: 5Rank: 5Rank: 5

UID
1189776
帖子
502
PB币
706
贡献
0
技术
6
活跃
692

我是大学生!

发表于 2015-2-8 17:50:00 IP属地日本 |显示全部楼层
学习中~~谢漏壶

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-2-8 20:49:29 IP属地辽宁 来自手机 |显示全部楼层
本帖最后由 qqqqqqqq1 于 2015-2-8 20:58 编辑
cyfdel 发表于 2015-2-8 17:50
学习中~~谢漏壶

不用谢~
顺便说下你应该注意的几点:
1、不必单独分小分区,当然如果你想预防误删文件的情况可以设置个小分区。
2、vboot文件夹下所有.exe,.IMG都不用保留,文件夹只保留cvs,fonts, grub就可以。
3、你的情况是装好的Windows 7,Win7不需要额外安装net3.5

主要步骤是这样的:
①创建bootmgr.VHD于任意非隐藏的NTFS分区根目录,大小设成70M就可以(更小其实也行,我的帖子中是100M,和Win7系统保留一样大)。最好使用固定大小(尽管vboot可以用动态扩展的盘,但是固定大小的盘基本就可以看作IMG盘+末尾有一个扇区大小的记录,能用IMG的地方就能用固定大小的VHD,如果你看不懂可以略过不看)
②准备Win8PE,挂载上bootmgr.VHD,分好区,设好活动分区(bootice就可以做到),cmd中输入命令创建引导:
bcdboot WIN7盘符:\windows /f BIOS /l zh-CN /S:VHD盘符:
③复制vboot文件夹文件,参考主贴即可,你可能需要修改\vboot\grub\grub.cfg,将(HD0,2)中的2改成bootmgr.vhd所在的分区,注意下MSR也占用一个分区位置,所以我例子中的分区号是2。
④按照我的教程做好legacy boot bootable,恢复好mbr和pbr
⑤重启电脑,选择legacy启动,你装好的win7就可以正常开机了,接着用vhd attach设置好自动挂载,用管理员cmd设置好依存关系,整个过程就完成了。

win7没有metro系统选择画面,因此高级启动和metro启动画面等bug都不用考虑。
至于启动速度,SSD表示没感觉,HDD表示慢1秒左右,毕竟HDD小文件读写差,vboot必须文件中几乎都是小文件。

其实,如果你的win7是64位的话,你可以直接用UEFI引导,但如果你的UEFI仅兼容win8及以上Windows OS运行的话,你就必须这么弄了。

Rank: 5Rank: 5Rank: 5

UID
286789
帖子
931
PB币
2322
贡献
0
技术
5
活跃
185
发表于 2015-2-10 19:52:38 IP属地新疆 |显示全部楼层
技术强帖啊,果然是不折疼不舒服斯基

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-2-11 11:59:38 IP属地辽宁 来自手机 |显示全部楼层
cyfdel 发表于 2015-2-8 17:50
学习中~~谢漏壶

问下你是怎么实现的:uefi多启动还是我这种legacy引导gpt上的win7?
再说下你需要注意的一点:
如果你想使用win7下的winre,你需要在管理员cmd下运行reagentc /disable reagentc /enable(因为新建的BCD中没有WinRE信息)
然后改下winre启动项的winload.efi,改成winload.exe就可以了(原帖中有方法)

Rank: 5Rank: 5Rank: 5

UID
4571934
帖子
571
PB币
914
贡献
0
技术
0
活跃
1000
发表于 2015-2-11 12:37:57 IP属地陕西 |显示全部楼层
UEFI+GPT装了Windows 10+Windows 8.1 Update+Windows Server 2012 R2+Linux Ubuntu四系统的路过!!!

不纠结党+Win8党

Rank: 7Rank: 7Rank: 7

UID
1512291
帖子
1259
PB币
1103
贡献
0
技术
13
活跃
1754
发表于 2015-2-12 17:06:48 IP属地辽宁 |显示全部楼层
木头科学二百五 发表于 2015-2-11 12:37
UEFI+GPT装了Windows 10+Windows 8.1 Update+Windows Server 2012 R2+Linux Ubuntu四系统的路过!!!

实话说我觉得如果要装linux的话,还是用legacy比较好,uefi模式下装linux肯定会把windows休眠/快速启动破坏掉。
ps:前两天在蓝点也看到你了,这头像大……了,赶快换掉,已加adblock拦截列表
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛