无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 248|回复: 14
打印 上一主题 下一主题

[分享] bios+grub4dos引导win+vhd+wim+iso的多个写法学习小结

[复制链接]
跳转到指定楼层
1#
发表于 昨天 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 qj_tzy 于 2025-12-2 17:09 编辑

bios+grub4dos引导win+vhd+wim+iso的多个写法学习小结


在学习grub4dos的过程中,得到了多个网友的热心指导,特别是几位大大的悉心指导,让我获益非浅。
为此,我也想作了小小的贡献,把我学习中的小结贴出。
若下述有误的,敬请指出。
对bios+grub4dos引导win+vhd+wim+iso的方法,我未能列出的,敬请各位列出,供大家学习借鉴为谢!
所需引导工具是从本论坛下载的


==========================
一、引导win分区系统


#试图列出我所知道的 bios+g4d 方式下引导winnt6主要是win10+win11 分区系统的多个写法
#对wimboot或用siso内置的wimboot作测试,均未成功,看其说明似为引导winpe.wim设计的。因此未列出。
#以下各项在grub4dos-0.4.6a-2019-2-22的grldr中测试通过,其中ntboot和siso用该版本引导正常。
#g4d(含ext下各文件)及bwin10.ima等各引导文件可存放在gpt分区硬盘的fat/exfat/ntfs分区(如esp分区),也可是mbr分区硬盘的fat/exfat/ntfs分区。但用bcd引导项仅后者(见该项说明)。


title win11-bcd
find --set-root --devices=h /boot/win/win11/bootmgr
chainloader /boot/win/win11/bootmgr
#/boot/win/win11/bcd是通用的,即可引导安装在不同电脑、不同磁盘不同分区中的win11分区系统
boot


title win11-ntboot
find /boot/g4d/ext/ntboot | set bd=
find --set-root /Windows/system32/APMonUI.dll
#该文件为win11的特征文件
#win11的特征文件也可为\Windows\system32\Taskbar.dll
%bd%/boot/g4d/ext/ntboot NT6=%@root%
#ntboot内置bootmgr及bcd
boot


title win10-bcd
find --set-root --devices=h /boot/win/win10/bootmgr
chainloader /boot/win/win10/bootmgr
boot
#\boot\win\win10\bootmgr用BMplus_v1.3.5生成,bootmgr引导\boot\win\win10\中的bcd,设定引导win10分区系统。
#该bcd是通用的,用于以bios(legacy)方式引导安装在不同电脑不同硬盘不同分区的win10 分区系统,搜索的是win7/8/10/11的不同特征文件。
#bcd需解除数字签名,方法是:假如bcd在e:\boot\目录下,先按win+r键,运行cmd,再运行cd  e:\boot,再运行bcdedit /store BCD /set {bootmgr} nointegritychecks yes。一般需在win10pe或win11pe中进行。
#该目录只能存放在mbr分区硬盘的fat/exfat/ntfs分区,不能放在gpt分区硬盘的某分区,因微软不支持bios+gpt方式引导。


title win10-ima-map
find /boot/win/bwin10.ima | set bd=
map (hd0) (hd)
map --mem %bd%/boot/win/bwin10.ima (hd0)
map --hook
chainloader (hd0)+1
boot
#bwin10.ima.ima含有\bootmgr、\boot\bcd,bcd是通用的。


title win10-run
find /boot/g4d/ext/run | set bd=
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
#win10的特征文件也可为\Windows\system32\DiskSnapshot.exe,或\Windows\system32\DataUsageLiveTileTask.exe
#%bd%/boot/g4d/ext/run %@root% ,只显示该分区的文件列表
%bd%/boot/g4d/ext/run %@root%/bootmgr
#本法要在windows分区上添加\bootmgr+\boot\bcd,bcd不能是通用的,只能设置引导win10所在分区。
boot


title win10-ntboot
find /boot/g4d/ext/ntboot | set bd=
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
%bd%/boot/g4d/ext/ntboot NT6=%@root%
#ntboot内置bootmgr及bcd
boot


title win10-siso-ntboot
find /boot/g4d/ext/siso | set bd=
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
%bd%/boot/g4d/ext/siso ntboot NT6=%@root%
#siso内置ntboot、bootmgr及bcd
boot


title win10-siso-run
find /boot/g4d/ext/siso | set bd=
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
%bd%/boot/g4d/ext/siso run=%@root%/bootmgr
#本法要在windows分区上添加\bootmgr+\boot\bcd,bcd是通用的。
#siso内置run。
boot


title win10-siso-runz
find /boot/win/bwin10.ima | set bd=
find --set-root /boot/g4d/ext/siso
/boot/g4d/ext/siso runz=%bd%/boot/win/bwin10.ima
#/boot/g4d/ext/siso run=%bd%/boot/win/bwin10.ima
#siso内置runz、run,上两句之一均引导成功。
boot


title win10-ntloader-源版
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
uuid ()
find --set-root /ntloader/ntloader
kernel /ntloader/ntloader uuid=%?_UUID%
initrd /ntloader/initrd.cpio
#内置bootmgr及bcd
boot


title win10-ntloader-g4d版
find --set-root /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
uuid ()
find --set-root /boot/g4d/ext/ntloader
kernel /boot/g4d/ext/ntloader uuid=%?%
initrd /boot/g4d/ext/initrd.lz1
#内置bootmgr及bcd
boot


==============================
二、引导vhd/vhdx


#试图列出我所知道的 bios+g4d 方式下引导win7/8/10/11_x64的原生vhd/vhdx系统引导的多个写法
#经我测试,bios+g4d+run 似不支持引导vhd/vhdx,是否是我下载的run未内置ntboot所致,所以未列出。
#g4d之wimboot,及siso内置wimboot,似只支持wim文件的引导,也未列出。
#用win7_x64.vhd及win8.1_x64.vhdx系统作的测试。因电脑中未安装win10vhdx及win11vhdx系统,未用后两者作测试。
#除map引导项须在vhd内部添加uefi+bios引导外,其他引导项均不需在vhd内部添加uefi+bios引导。
#以下各项在grub4dos-0.4.6a-2019-02-22版的grldr中测试通过,其中ntboot和siso目前只能用该版本引导,其他项可用该版至2025-8-19间的各版本引导。
#g4d(含ext下各文件)及bwin7vhd.ima等各引导文件可存放在gpt分区硬盘的fat/exfat/ntfs分区(如esp分区),也可是mbr分区硬盘的fat/exfat/ntfs分区。但用bcd引导项仅后者(见该项说明)。


title Win7vhd_bcd
find --set-root --devices=h /boot/win/win7vhd/bootmgr
chainloader /boot/win/win7vhd/bootmgr
boot
#\boot\win\win7vhd\bootmgr、bootvhd.dll(bios引导vhd的支持文件)均用BMplus_v1.3.5生成,bootmgr引导\boot\win\win7vhd\中的bcd,bcd需解除数字签名,设定引导x:\vhds\win7x64.vhd。
#bcd解除数字签名的方法是:假如bcd在e:\boot\目录下,先按win+r键,运行cmd,再运行cd  e:\boot,再运行bcdedit /store BCD /set {bootmgr} nointegritychecks yes。一般需在win10pe或win11pe中进行。
#该目录只能存放在mbr分区硬盘的fat/exfat/ntfs分区,不能放在gpt分区硬盘的某分区,因微软不支持bios+gpt方式引导。


title Win7VHD-ima
find /boot/win/bwin7vhd.ima | set bd=
map (hd0) (hd)
map --mem %bd%/boot/win/bwin7vhd.ima (hd0)
map --hook
chainloader (hd0)+1
boot
#bwin7vhd.ima含有\bootmgr、\boot\bootvhd.dll、\boot\bcd,bcd设定引导x:/vhds/win7_x64.vhd。


title Win7VHD-ntboot
find /vhds/win7_x64.vhd | set bd=
find --set-root /boot/g4d/ext/ntboot
#/boot/g4d/ext/ntboot NT6=%bd%/vhds/win7_x64.vhd NTPATH=system32
/boot/g4d/ext/ntboot NT6=%bd%/vhds/win7_x64.vhd
#上两行之一均可
boot
#目前需grub4dos-0.4.6a-2019-02-22版+ntboot的2014版(4294kb)才能成功引导,g4d+ntboot的其他版本组合,将出现"不识别的命令"的出错提示。#win8/10/11的vhdx系统,用grub4dos新版本+ntboot(2014版)可正常引导。感谢网友chen463的反馈。

title Win7VHD-siso-ntboot
find /vhds/win7_x64.vhd | set bd=
find --set-root /boot/g4d/ext/siso
/boot/g4d/ext/siso ntboot NT6=%bd%/vhds/win7_x64.vhd
#siso内置ntboot
boot
#目前需grub4dos-0.4.6a-2019-02-22版+siso(1955kb)才能成功引导,该两者外的其他g4d+siso版本组合,将出现"不识别的命令"的出错提示


title Win7VHD-ntloader_g4d版
find --set-root /vhds/win7_x64.vhd
uuid ()
find --set-root /boot/g4d/ext/ntloader
kernel /boot/g4d/ext/ntloader uuid=%?% file=/vhds/win7_x64.vhd
initrd /boot/g4d/ext/initrd.lz1
#需将ntloader、initrd.lz1这两个文件复制到\boot\g4d\ext\目录下
boot


title Win7VHD-ntloader_源版
find --set-root /vhds/win7_x64.vhd
uuid ()
find --set-root /ntloader/ntloader
kernel /ntloader/ntloader uuid=%?_UUID% vhd=/vhds/win7_x64.vhd
initrd /ntloader/initrd.cpio
#将ntloader源版的整个目录/ntloader拷入某盘某分区的根目录或某目录下
boot


title Win7VHD-map_需足够内存
find --set-root /vhds/win7_x64.vhd
map (hd0) (hd)
map --mem /vhds/win7_x64.vhd (hd0)
#因需装入内存后生成硬盘头信息,--mem参数不可省,否则将出现分区有问题或参数大多等出错提示。
map --hook
root (hd0,0)
chainloader /bootmgr
boot
#这项是网上所说的方法,因我的内存较小,无条件作测试。


=========================================


三、引导wim+iso


#试图列出我所知道的 bios+g4d 方式下引导winnt6主要是win10pe+win11pe-wim+iso系统的多个写法
#以下各项在grub4dos-0.4.6a-2019-2-22和grub4dos-0.4.6a-2025-8-19两个版本的grldr中测试通过,其中ntboot和siso用该版本引导正常。
#g4d(含ext下各文件)及bwin10wimpe.ima等各引导文件可存放在gpt分区硬盘的fat/exfat/ntfs分区(如esp分区),也可是mbr分区硬盘的fat/exfat/ntfs分区。但用bcd引导项仅后者(见该项说明)。


title win10pe-wim-bcd
find --set-root --devices=h /boot/win/win10wimpe/bootmgr
chainloader /boot/win/win10wimpe/bootmgr
boot
#\boot\win\win10wimpe\bootmgr用BMplus_v1.3.5生成,bootmgr引导\boot\win\win10wimpe\中的bcd,设定引导/winpe/win10pe_x64_bios_uefi.wim,并设定由/winpe/boot.sdi支持。
#bcd需解除数字签名,方法是:假如bcd在e:\boot\目录下,先按win+r键,运行cmd,再运行cd  e:\boot,再运行bcdedit /store BCD /set {bootmgr} nointegritychecks yes。一般需在win10pe或win11pe中进行。
#该目录只能存放在mbr分区硬盘的fat/exfat/ntfs分区,不能放在gpt分区硬盘的某分区,因微软不支持bios+gpt方式引导。


title win10pe-wim-ima
find /boot/win/bwin10wimpe.ima | set bd=
map (hd0) (hd)
map --mem %bd%/boot/win/bwin10wimpe.ima (hd0)
map --hook
chainloader (hd0)+1
boot
#bwin10wimpe.ima.ima含有\bootmgr、\boot\bcd,bcd设定引导x:/winpe/win10pe_x64_bios_uefi.wim,并设定由/winpe/boot.sdi支持。


title win10pe-wim-wimboot
find /winpe/win10pe_x64_bios_uefi.wim | set bd=
find /boot/win/win10wimpe/bcd | set bcddsk=
find --set-root /boot/g4d/ext/wimboot
kernel /boot/g4d/ext/wimboot
#initrd @bcd=/boot/bcd @boot.sdi=/boot/boot.sdi @bootmgr=/boot/bootmgr @boot.wim=/boot/winpe.wim
initrd  @bcd=%bcddsk%/boot/win/win10wimpe/bcd @boot.sdi=%bd%/winpe/boot.sdi @boot.wim=%bd%/winpe/win10pe_x64_bios_uefi.wim
#@bootmgr省略将使用内置的bootmgr
boot


title win10pe-wim-siso-wimboot
find /winpe/win10pe_x64_bios_uefi.wim | set bd=
find --set-root /boot/g4d/ext/siso
/boot/g4d/ext/siso boot.wim=%bd%/winpe/win10pe_x64_bios_uefi.wim
#siso内置wimboot
#SISO  WIMBOOT=参数1  BOOTMGR=参数2  BCD=参数3  BOOT.SDI=参数4  E820CYCLE=防蓝屏参数y/n  BOOT.WIM=参数6
#参数1-4省略时分别使用内置的WIMBOOT、BOOTMGR、BCD、BOOT.SDI
boot


title win10pe-wim-siso-ntboot
find /winpe/win10pe_x64_bios_uefi.wim | set bd=
find --set-root /boot/g4d/ext/siso
/boot/g4d/ext/siso ntboot NT6=%bd%/winpe/win10pe_x64_bios_uefi.wim
#siso内置ntboot
boot


title win10pe-wim-ntboot
find /boot/g4d/ext/ntboot | set bd=
find --set-root /winpe/win10pe_x64_bios_uefi.wim
%bd%/boot/g4d/ext/ntboot NT6=/winpe/win10pe_x64_bios_uefi.wim
boot


title win10pe-wim-run
find /winpe/win10pe_x64_bios_uefi.wim | set bd=
find --set-root /boot/g4d/ext/run
command /boot/g4d/ext/run %bd%/winpe/win10pe_x64_bios_uefi.wim
boot


title win10pe-wim-ntloader-源版
find --set-root /winpe/win10pe_x64_bios_uefi.wim
uuid ()
find --set-root /ntloader/ntloader
kernel /ntloader/ntloader uuid=%?_UUID% wim=/winpe/win10pe_x64_bios_uefi.wim
initrd /ntloader/initrd.cpio
boot


title win10pe-wim-ntloader-g4d版
find --set-root /winpe/win10pe_x64_bios_uefi.wim
uuid ()
find --set-root /boot/g4d/ext/ntloader
kernel /boot/g4d/ext/ntloader uuid=%?% file=/winpe/win10pe_x64_bios_uefi.wim
initrd /boot/g4d/ext/initrd.lz1
boot


title win11pe-iso-map
find --set-root /winpe/win11PE_x64.iso
map --mem /winpe/win11PE_x64.iso (0xFF)
map --hook
chainloader (0xFF)
boot


title win11pe-iso-run
find /winpe/win11PE_x64.iso | set bd=
find --set-root /boot/g4d/ext/run
command /boot/g4d/ext/run %bd%/winpe/win11PE_x64.iso
boot


title win11pe-iso-siso-run
find /winpe/win11PE_x64.iso | set bd=
find --set-root /boot/g4d/ext/siso
/boot/g4d/ext/siso run=%bd%/winpe/win11PE_x64.iso
#/boot/g4d/ext/siso runz=%bd%/winpe/win11PE_x64.iso
#上两句之一均引导成功
#/boot/g4d/ext/siso iso=%bd%/winpe/win11PE_x64.iso
/boot/g4d/ext/siso ntboot="cdrom=%bd%/winpe/win11PE_x64.iso"
#上两句之一均不能引导
boot




2#
发表于 昨天 13:18 | 只看该作者
感谢分享!
回复

使用道具 举报

3#
发表于 昨天 13:25 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 昨天 13:35 | 只看该作者
感谢分享
回复

使用道具 举报

5#
发表于 昨天 13:36 | 只看该作者
感谢分享
回复

使用道具 举报

6#
发表于 昨天 14:00 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

7#
发表于 昨天 14:02 | 只看该作者
感谢分享
回复

使用道具 举报

8#
发表于 昨天 14:02 | 只看该作者
本帖最后由 chen463 于 2025-12-2 14:40 编辑

title Win7VHD-ntboot
find /vhds/win7_x64.vhd | set bd=
find --set-root /boot/g4d/ext/ntboot
#/boot/g4d/ext/ntboot NT6=%bd%/vhds/win7_x64.vhd NTPATH=system32
/boot/g4d/ext/ntboot NT6=%bd%/vhds/win7_x64.vhd
#上两行之一均可
boot
#目前需grub4dos-0.4.6a-2019-02-22版+ntboot的2014版(4294kb)才能成功引导,g4d+ntboot的其他版本组合,将出现"不识别的命令"的出错提示

............
以上这菜单我实机优盘测试Windows10.vhdx,使用grub4dos-0.4.6a-2025-11-25版+ntboot的2014(C大2014-8/24版),LEGACY BIOS成功启动。
为何您测试跟我有那么大差距,是WIN7和WIN10系统不同关系吗?我还刻意选择差分系统VHDX动态来测试,
还由优盘引导启动硬盘VHDX文件

点评

感谢您的回复 我测试win7_x64.vhd,就是我说的那个结果。 我测试win8.1_x64.vhdx,与你相同,win10与win11的vhd未测试,未列出。 所以在本帖子应加上说明: win8/10/11的vhdx可用新版本grub4dos+ntboot(2014版  详情 回复 发表于 昨天 16:55
回复

使用道具 举报

9#
发表于 昨天 14:57 | 只看该作者
折腾
回复

使用道具 举报

10#
发表于 昨天 15:01 | 只看该作者
感谢分享
回复

使用道具 举报

11#
发表于 昨天 15:21 | 只看该作者
感谢分享!
回复

使用道具 举报

12#
发表于 昨天 16:30 | 只看该作者
学习学习
回复

使用道具 举报

13#
 楼主| 发表于 昨天 16:55 | 只看该作者
chen463 发表于 2025-12-2 14:02
title Win7VHD-ntboot
find /vhds/win7_x64.vhd | set bd=
find --set-root /boot/g4d/ext/ntboot

感谢您的回复
我测试win7_x64.vhd,就是我说的那个结果。
我测试win8.1_x64.vhdx,与你相同,win10与win11的vhd未测试,未列出。
所以在本帖子应加上说明:
win8/10/11的vhdx可用新版本grub4dos+ntboot(2014版)可正常引导。


点评

我找时间挂载WN7测试,如果不行,那就是里面的bootmgr不通用  详情 回复 发表于 昨天 17:31
回复

使用道具 举报

14#
发表于 昨天 17:31 | 只看该作者
qj_tzy 发表于 2025-12-2 16:55
感谢您的回复
我测试win7_x64.vhd,就是我说的那个结果。
我测试win8.1_x64.vhdx,与你相同,win10与wi ...

我找时间挂载WN7测试,如果不行,那就是里面的bootmgr不通用
回复

使用道具 举报

15#
发表于 昨天 21:53 | 只看该作者
感谢分享学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-3 04:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表