无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 4 小时前 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
bios+grub2引导win+vhd+wim+iso的多个写法学习小结


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


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


#试图列出我所知道的 bios+grub2 方式下引导winnt6主要是win10+win11 分区系统的多个写法
#因在bios+grub2方式下,run能引导cfg+wim+vhd/vhdx,但不知如何引导windows分区系统,所以未列出。


menuentry "0.[bios] win11-bcd" --hotkey=0 --class=windows{
insmod ntldr
ntldr (${root})/boot/win/win11/bootmgr
}
#/boot/win/win11/bcd是通用的,即可引导安装在不同电脑、不同磁盘不同分区中的win11分区系统




menuentry "1.[bios] win10-bcd" --hotkey=1 --class=windows{
insmod ntldr
ntldr (${root})/boot/win/win10/bootmgr
}
#/boot/win/win10/bcd是通用的,即可引导安装在不同电脑、不同磁盘不同分区中的win10分区系统




menuentry "2.[bios] Win10-ima" --hotkey=2 --class=windows {
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwin10.ima
#memdisk为syslinux的6.03等版本的文件
#该方式可与esp分区的引导文件合盘
}


menuentry "3.[bios] Win10-ntboot" --hotkey=3 --class=windows{
insmod ntboot
search --file --no-floppy --set=wroot /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
ntboot --efi=(${root})/boot/grub2/run/ms/Bootmgr.exe  --win ($wroot)
#win系统安装在mbr分区硬盘或gpt分区硬盘均可
#其引导机理是ntboot修改其内部\boot\bcd的值为系统引导分区是($wroot),再用bootmgr.exe引导该bcd。
#即ntboot是用虚拟盘上的bcd,按实际文件名修改虚拟盘的bcd,启动硬盘上的win+wim+winvhd。
}


menuentry "4.[bios] Win10-wimboot" --hotkey=4 --class=windows{
insmod wimboot
search --file --no-floppy --set=wroot /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
wimboot @:bootmgfw.efi:(${root})/boot/grub2/run/ms/Bootmgr.exe @:bcd:(${wroot})/boot/bcd
#winboot不能用bootmgr而只能用Bootmgr.exe,且不支持bcd是通用的,该bcd只能设定win10所在分区
#上句要在windows分区上添加\boot\bcd
}


menuentry "5.[bios] win10-ntloader" --hotkey=5 --class=windows{
search --file --no-floppy --set=root /ntloader/ntloader
search --file --no-floppy --set=dev /Windows/system32/AzureSettingSyncProvider.dll
#该文件为win10的特征文件
probe -s dev_uuid -u $dev
linux16 /ntloader/ntloader uuid=${dev_uuid}
initrd16 /ntloader/initrd.cpio
boot
}


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


#试图列出我所知道的 bios+grub2 方式下引导win7/8/10/11_x64的原生vhd/vhdx系统引导的多个写法
#bios+grub2方式下,map只能交换磁盘,因此未列出
#用win7_x64.vhd及win8.1_x64.vhdx系统作的测试。因电脑中未安装win10vhdx及win11vhdx系统,未用后两者作测试。


menuentry "0.[bios] Win8vhd-bcd" --hotkey=0 --class=windows{
insmod ntldr
ntldr (${root})/boot/win/win8vhd/bootmgr
}


menuentry "1.[bios] Win7vhd-bcd" --hotkey=1 --class=windows{
insmod ntldr
ntldr (${root})/boot/win/win7vhd/bootmgr
}


menuentry "2.[bios] Win7vhd-ima" --hotkey=2 --class=windows {
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwin7vhd.ima
#memdisk为syslinux的6.03等版本的文件
#该方式可与esp分区的引导文件合盘
}


menuentry "3.[bios] Win7vhd-ntboot" --hotkey=3 --class=windows {
insmod  ntboot
search --file --no-floppy --set=vroot /vhds/win7_x64.vhd
ntboot --efi=(${root})/boot/win/bootmgr_ntboot/Bootmgr.exe --vhd ($vroot)/vhds/win7_x64.vhd
}


menuentry "4.[bios] Win7vhd-wimboot" --hotkey=4 --class=windows{
insmod wimboot
search --file --no-floppy --set=vroot /boot/win/win7vhd/bcd
wimboot @:bootmgfw.efi:(${root})/boot/win/bootmgr_ntboot/Bootmgr.exe @:bcd:(${vroot})/boot/win/win7vhd/bcd
}


menuentry "5.[bios] Win7vhd-run" --hotkey=5 --class=windows{
insmod ntboot
source $prefix/run/run.cfg
run /vhds/win7_x64.vhd
}


menuentry "6.[bios] Win7vhd-ntloader" --hotkey=6 --class=windows{
search -s -f /ntloader/ntloader
search -s dev -f /vhds/win7_x64.vhd
probe -s dev_uuid -u $dev
linux16 /ntloader/ntloader uuid=${dev_uuid} vhd=/vhds/win7_x64.vhd
initrd16 /ntloader/initrd.cpio
}


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


三、引导wim+iso


#试图列出我所知道的 bios+grub2 方式下引导winnt6之win10pe+win11pe-wim+iso系统的多个写法
#并测试winpe.wim+winpe.iso显示全屏而不花屏和显示半屏的情况。
#在uefi+grub2方式下引导winpe.wim+winpe.iso,基本不会出现花屏和显示半屏问题,显示是的全屏。
#但在bios+grub2方式下引导winpe.wim+winpe.iso,时常出现花屏和显示半屏情况。
#因在bios+grub2方式下,因map模块仅能交换磁盘,run要调用该模块,由此不能引导iso,使得引导iso仅memdisk这一法。


menuentry "0.[bios] Win10pe-wim-ntboot" --hotkey=0 --class=windows{
insmod ntboot
search --file --no-floppy --set=broot /boot/grub2/run/ms/Bootmgr.exe
#此bootmgr.exe是bios_grub2-run提供的,专用于bios+grub2+ntboot+wimboot引导win+wim+vhd用的,不是用BMplus生成的bootmgr.exe
search --file --no-floppy --set=wroot /winpe/win10pe_x64_bios_uefi.wim
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
ntboot --highest=yes --efi=($broot)/boot/grub2/run/ms/Bootmgr.exe --sdi=($wroot)/winpe/boot.sdi --wim ($wroot)/winpe/win10pe_x64_bios_uefi.wim
#ntboot会修改内部的\boot\bcd,再用bootmgr.exe引导bcd
#用--sdi=file指定与之匹配的boot.sdi更可靠,若省去--sdi=file参数则使用ntboot内部的boot.sdi
#--highest=yes 参数,强制使用最高分辨率,且加上set gfxpayload=keep等3行
}
#本方式测试了4次,winpe.wim显示全屏,不半屏、不花屏,优先推荐。


menuentry "1.[bios] Win10pe-wim-wimboot" --hotkey=1 --class=windows{
insmod wimboot
set currroot=(${root})
search --file --no-floppy --set=root /winpe/win10pe_x64_bios_uefi.wim
terminal_output console
set gfxpayload=keep
#echo "CONSOLE"
#在wimboot中,上行显示的内容太多不爽,注释掉
wimboot --rawwim @:bootmgfw.efi:${currroot}/boot/grub2/run/ms/Bootmgr.exe @:bcd:${currroot}/boot/win/bootmgr_bios_grub2/bcd @:boot.wim:(${root})/winpe/win10pe_x64_bios_uefi.wim
#Bootmgr.exe是用BMplus工具生成的,生成时指定的目录必须是\boot\,即引导该目录下的bcd,其专由wimboot使用。
#射入内存盘的bcd要添加GraphicsForceHighestMode参数,其值设为true(强制显示最高分辩率),且加上set gfxpayload=keep等行
}
#此方式,winpe.wim显示全屏(测试了4次),不半屏、不花屏 ,因要射入内存,引导较慢,可以使用。


menuentry "2.[bios] Win10pe-wim-bcd-有时花屏显半屏" --hotkey=2 --class=windows {
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
ntldr /boot/win/win10wimpe/bootmgr
#在bcd中添加GraphicsForceHighestMode参数,其值设为true(强制显示最高分辩率),且在执行的行前加上set gfxpayload=keep等行,winpe.wim仍时有花屏和显示半屏情况。
}


menuentry "3.[bios] Win10pe-wim-ima-有时花屏显半屏" --hotkey=3 --class=windows {
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
linux16 /boot/grub2/memdisk
initrd16 /boot/win/bwin10wimpe.ima
#memdisk为syslinux的6.03等版本的文件
#bwin10wimpe.ima中的bcd中添加了GraphicsForceHighestMode参数,其值设为true(强制显示最高分辩率),且加上set gfxpayload=keep等3行,winpe.wim仍时有花屏和显示半屏情况。
#该方式可与esp分区的引导文件合盘
}


menuentry "4.[bios] Win10pe-wim-run-有时花屏显半屏" --hotkey=4 --class=windows{
insmod ntboot
source $prefix/run/run.cfg
run /winpe/win10pe_x64_bios_uefi.wim
}


menuentry "5.[bios] Win10pe-wim-ntloader-有时花屏显半屏" --hotkey=5 --class=windows {
search -s -f /ntloader/ntloader
search -s dev -f /winpe/win10pe_x64_bios_uefi.wim
probe -s dev_uuid -u $dev
linux16 /ntloader/ntloader uuid=${dev_uuid} wim=/winpe/win10pe_x64_bios_uefi.wim
initrd16 /ntloader/initrd.cpio
}


menuentry "6.[bios] Win11pe-iso-memdisk-有时花屏显半屏" --hotkey=6 --class=windows {
search --file --no-floppy --set=root /winpe/win11PE_x64.iso
terminal_output console
set gfxpayload=keep
echo "CONSOLE"
linux16  $prefix/memdisk iso raw
#或linux16  $prefix/memdisk iso
initrd16 /winpe/win11PE_x64.iso
#用UltraISO工具打开iso,将其\boot\bcd(legacy引导)添加GraphicsForceHighestMode参数,其值设为true,且加上set gfxpayload=keep等行,winpe.iso仍时有花屏和显示半屏情况。
}


2#
发表于 4 小时前 | 只看该作者
感谢分享!
回复

使用道具 举报

3#
发表于 4 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 4 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

5#
发表于 4 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

6#
发表于 3 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

7#
发表于 3 小时前 | 只看该作者
好。。。。。。。。。。。。
回复

使用道具 举报

8#
发表于 3 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

9#
发表于 2 小时前 | 只看该作者
重复贴
回复

使用道具 举报

10#
发表于 2 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

11#
发表于 2 小时前 | 只看该作者
感谢分享!
回复

使用道具 举报

12#
发表于 半小时前 | 只看该作者
学习了,虽然还是云遮雾绕的,但还是要感谢分享
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-2 17:44

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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