无忧启动论坛

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

[原创] NTloader: BIOS/UEFI 下用 GRUB 启动 VHD/WIM

    [复制链接]
511#
发表于 2025-4-9 16:58:43 | 只看该作者
wintoflash 发表于 2025-4-9 15:03
没有任何有效信息,我不会隔着网线算命。

感謝您的回應,我再試試

点评

你的这个菜单似乎哪里都不对,我改了也不对。应该获取vhd所在分区的uuid,你这是获取的哪个分区的uuid?  详情 回复 发表于 2025-4-9 17:01
回复

使用道具 举报

512#
 楼主| 发表于 2025-4-9 17:01:10 | 只看该作者
本帖最后由 wintoflash 于 2025-4-9 17:04 编辑
minmax 发表于 2025-4-9 16:58
感謝您的回應,我再試試

你的这个菜单似乎哪里都不对,我改了也不对。应该获取vhd所在分区的uuid,你这是获取的哪个分区的uuid?
  1. title Boot Windows NT6+ VHD
  2. find --set-root /VHDOS/LTSC2024.VHDX
  3. uuid ()
  4. find --set-root /EFI/g4e/ntloader
  5. kernel /EFI/g4e/ntloader uuid=%?_UUID% vhd=/VHDOS/LTSC2024.VHDX
  6. initrd /EFI/g4e/initrd.cpio
复制代码
回复

使用道具 举报

513#
发表于 2025-4-10 07:34:13 来自手机 | 只看该作者
wintoflash 发表于 2025-4-9 07:48
菜单中fi所在的行未注释掉。



set gfxpayload=text
terminal_output console
linux16 /ntloader/ntloader text ...
上述三行全用上,或只用其中一行,或两行都不成功,但是只用前两行,或三行都用,以下面这种方式都能成功引导,即在进入grub2的cfg的图形配置菜单后,选择引导winpewim的menuentry,然后按e键进入命令行编辑模式,不做任何编辑,再按F10就能成功加载winpe.wim进入桌面。区别是,只用前两行的话只显示loading进度条后即显示windows logo然后进入pe桌面,第三行也用上的话,loading进度条后,显示动态滚动条,然后进入pe桌面。
貌似这三行命令都战胜不了cfg配置菜单全局位置的terminal_output gfxterm

点评

感觉是grub2的玄学问题。 在menuentry加上几行无意义的echo语句呢? menuentry ... { echo "TEXT" echo "TEXT" set gfxpayload=text ... }  详情 回复 发表于 2025-4-10 21:13
回复

使用道具 举报

514#
发表于 2025-4-10 07:41:49 来自手机 | 只看该作者
把全局位置的terminal_output gfxterm改为terminal_output gfxterm console 依然是上面的情况
回复

使用道具 举报

515#
 楼主| 发表于 2025-4-10 21:13:42 | 只看该作者
whyqwt 发表于 2025-4-10 07:34
set gfxpayload=text
terminal_output console
linux16 /ntloader/ntloader text ...

感觉是grub2的玄学问题。
在menuentry加上几行无意义的echo语句呢?
menuentry ... {
  echo "TEXT"
  echo "TEXT"
  set gfxpayload=text
  ...
}
回复

使用道具 举报

516#
发表于 2025-4-10 21:59:35 来自手机 | 只看该作者
wintoflash 发表于 2025-4-10 21:13
感觉是grub2的玄学问题。
在menuentry加上几行无意义的echo语句呢?
menuentry ... {

W大,您实在是厉害,一招制敌,果不其然,加上两行echo ,一切正常!太巧妙了!!
那进入PE后分辨率不是cfg全局菜单中设置的1366×768 这个加上一行什么命令呢?
非常感谢指导!!

点评

bios启动后,winpe中是可以手动调节分辨率的。 当然也有方法可以继承grub的分辨率,但是你的电脑有花屏的问题。 set gfxpayload=keep ntloader命令行不要用text参数。  详情 回复 发表于 2025-4-11 06:00
回复

使用道具 举报

517#
发表于 2025-4-10 22:04:49 来自手机 | 只看该作者
这两行echo,在我看来就像小时候农村不想让鸡随处下蛋时,在鸡窝里放的“引蛋”一样!哈哈!
回复

使用道具 举报

518#
发表于 2025-4-10 23:43:16 来自手机 | 只看该作者
真的像您说的,玄,这个方法还不是很稳定,至少在我的机器上还不是很稳定,有时还会花屏,按照您的思路,问deepseek,加了read, sleep -- interruptible 5 两行 让机器此时缓一缓,pause一会儿。(注: 这纯属娱乐哈!)
回复

使用道具 举报

519#
 楼主| 发表于 2025-4-11 06:00:50 | 只看该作者
whyqwt 发表于 2025-4-10 21:59
W大,您实在是厉害,一招制敌,果不其然,加上两行echo ,一切正常!太巧妙了!!
那进入PE后分辨率不是 ...

bios启动后,winpe中是可以手动调节分辨率的。
当然也有方法可以继承grub的分辨率,但是你的电脑有花屏的问题。
set gfxpayload=keep
不使用terminal_output console,且ntloader命令行不要用text参数。
回复

使用道具 举报

520#
发表于 2025-4-11 06:53:14 来自手机 | 只看该作者
wintoflash 发表于 2025-4-11 06:00
bios启动后,winpe中是可以手动调节分辨率的。
当然也有方法可以继承grub的分辨率,但是你的电脑有花屏 ...

好的,随后用用keep.
目前用的有这两行
set gfxpayload=text
terminal_output console
没用ntloader text参数,就可以的。花屏估计是个案,绝大多数机器应该是不存在这问题的。
感谢指导,学了很多!谢谢!
回复

使用道具 举报

521#
发表于 2025-4-11 07:29:21 来自手机 | 只看该作者
wintoflash 发表于 2025-4-11 06:00
bios启动后,winpe中是可以手动调节分辨率的。
当然也有方法可以继承grub的分辨率,但是你的电脑有花屏 ...

bios启动后,winpe中是咋手动调节分辨率,请指点一下。谢谢!

点评

pecmd可以用disp命令设置分辨率吧。你可以看看pecmd自带的文档。  详情 回复 发表于 2025-4-11 09:28
回复

使用道具 举报

522#
 楼主| 发表于 2025-4-11 09:28:19 | 只看该作者
whyqwt 发表于 2025-4-11 07:29
bios启动后,winpe中是咋手动调节分辨率,请指点一下。谢谢!

pecmd可以用disp命令设置分辨率吧。你可以看看pecmd自带的文档。
回复

使用道具 举报

523#
发表于 2025-4-11 15:48:28 来自手机 | 只看该作者
wintoflash 发表于 2025-4-11 09:28
pecmd可以用disp命令设置分辨率吧。你可以看看pecmd自带的文档。

pecmd disp w1366 h768 已解决,感谢指点!谢谢您!
回复

使用道具 举报

524#
发表于 2025-4-16 16:09:38 | 只看该作者
非常好,支持
回复

使用道具 举报

525#
发表于 2025-5-25 16:08:12 来自手机 | 只看该作者
做个记号
回复

使用道具 举报

526#
发表于 2025-6-9 17:19:53 | 只看该作者
有国产统信系统ext4的分区 若把win10.vhd放到这样的分区里,再用grub4dos for uefi 加ntloader 不知能不能正常引导进win10.vhd

点评

请仔细看帖子内容:  详情 回复 发表于 2025-6-9 19:42
回复

使用道具 举报

527#
 楼主| 发表于 2025-6-9 19:42:32 | 只看该作者
xiaoy 发表于 2025-6-9 17:19
有国产统信系统ext4的分区 若把win10.vhd放到这样的分区里,再用grub4dos for uefi 加ntloader 不知能不 ...

请仔细看帖子内容:
支持 FAT, NTFS, exFAT 文件系统 (VHD 不能位于 FAT 分区,老版本 Windows VHD 只能位于 NTFS 分区)

点评

感谢回复,不知道能不能解决这个问题,学校有国产机房想不破坏原统信系统上增加win10双系统启动,又要何保持正版检查,又想上课用win10,想到用vhdwin10 g4e 双引导切换,老大能不能帮忙助力实现。  详情 回复 发表于 2025-6-10 15:13
回复

使用道具 举报

528#
发表于 2025-6-10 15:13:06 | 只看该作者
wintoflash 发表于 2025-6-9 19:42
请仔细看帖子内容:

感谢回复,不知道能不能解决这个问题,学校有国产机房想不破坏原统信系统上增加win10双系统启动,又要何保持正版检查,又想上课用win10,想到用vhdwin10 g4e 双引导切换,老大能不能帮忙助力实现。

点评

ext4支持无损缩小分区。把ext4缩小,留出空间分个ntfs分区。  详情 回复 发表于 2025-6-10 16:02
回复

使用道具 举报

529#
 楼主| 发表于 2025-6-10 16:02:39 | 只看该作者
xiaoy 发表于 2025-6-10 15:13
感谢回复,不知道能不能解决这个问题,学校有国产机房想不破坏原统信系统上增加win10双系统启动,又要何 ...

ext4支持无损缩小分区。把ext4缩小,留出空间分个ntfs分区。
回复

使用道具 举报

530#
发表于 2025-6-25 08:56:27 来自手机 | 只看该作者
感谢分享经验
回复

使用道具 举报

531#
发表于 2025-8-21 19:27:34 来自手机 | 只看该作者
谢谢分享
回复

使用道具 举报

532#
发表于 2025-8-21 22:19:42 | 只看该作者
精华软件啊,非常不错呢
回复

使用道具 举报

533#
发表于 2025-9-11 23:06:33 | 只看该作者
在efi分区新建了ntload文件夹,把ntloader 和 initrd.cpio放了进来,win10vhd在/dev/sda5的ntfs分区,grub2.06 menuentry 如下:
menuentry "VHDwin10" {
search -s -f /efi/ntload/ntloader
if [ "${grub_platform}" = "efi" ]; then
chainloader /efi/ntload/ntloader initrd=/efi/ntload/initrd.cpio uuid=45A3C5FC05B9F081 vhd=/Win10-22H2-25G-20250501.vhdx
else
linux16 /efi/ntload/ntloader uuid=45A3C5FC05B9F081 vhd=/Win10-22H2-25G-20250501.vhdx
initrd16 /efi/ntload/initrd.cpio
fi;
}
可以启动vhd,但启动前一大堆输出,滚动太快,没截图,请问那里有错误?还需要完善。
多谢!

点评

那些是调试信息。  详情 回复 发表于 2025-9-12 09:45
回复

使用道具 举报

534#
 楼主| 发表于 2025-9-12 09:45:19 | 只看该作者
yanxsh 发表于 2025-9-11 23:06
在efi分区新建了ntload文件夹,把ntloader 和 initrd.cpio放了进来,win10vhd在/dev/sda5的ntfs分区,grub2 ...

那些是调试信息。
回复

使用道具 举报

535#
发表于 2025-9-12 13:10:21 | 只看该作者
wintoflash 发表于 2025-9-12 09:45
那些是调试信息。

多谢!
回复

使用道具 举报

536#
发表于 2025-9-12 20:03:17 | 只看该作者
感谢分享。
回复

使用道具 举报

537#
发表于 2025-9-14 20:53:55 | 只看该作者
学习了,谢谢。
回复

使用道具 举报

538#
发表于 2025-10-10 22:18:50 | 只看该作者
试着用了一下,不能启动
回复

使用道具 举报

539#
发表于 2025-10-13 13:29:46 | 只看该作者
本帖最后由 xuesfh007 于 2025-10-13 13:34 编辑

请问下,用NTloader来启动vhd文件,其中vhd文件里只安装了ventoy(MBR格式)
采用Legecy BIOS模式启动系统
系统文件目录为:
├─grub
└─ntloader
根目录下放置ventoyMBR.vhd文件
启动出错,怎么办
出错内容:
    windows failed to start. A recent hardware or software change might be thecause. To fix the problem:
    1. Insert your windows installation disc and restart your computer.2. choose your language settings, and then click "Next."
    3. click "Repair your computer."
    If you do not have this disc, contact your system administrator or computer manufacturer for assistance.
    File: \windows\system32\winload.exe
    status: 0xc0oo0oof
    Info: The application or operating system couldn't be loaded because a
    required file is missing or contains errors.



D:\MyUserData\MyDocuments\Desktop\PixPin_2025-10-13_13-26-06.png
看提示,意思只能启动安装windows系统的vhd文件?如果是安装了ventoy系统的vhd有办法启动么?

grub2菜单如下:
menuentry "Boot  VHD/VHDx" {
    set vhd_path="/ventoyMBR.vhd"
    set ntloader_path="/EFI/ntloader"

    search -s -f $ntloader_path/ntloader
    search -s dev -f $vhd_path
    probe -s dev_uuid -u $dev
    if [ "${grub_platform}" = "efi" ]; then
        linux $ntloader_path/ntloader uuid=${dev_uuid} vhd=$vhd_path
        initrd $ntloader_path/initrd.cpio
    else
        linux16 $ntloader_path/ntloader uuid=${dev_uuid} vhd=$vhd_path
        initrd16 $ntloader_path/initrd.cpio
   fi;
}

点评

NTloader当然只支持Windows的vhd,帖子里面的菜单也写明了都是Windows的vhd。 你想在Legacy BIOS下启动Ventoy的vhd,使用memdisk :https://wiki.syslinux.org/wiki/index.php?title=MEMDISK  详情 回复 发表于 2025-10-13 13:51
回复

使用道具 举报

540#
 楼主| 发表于 2025-10-13 13:51:12 | 只看该作者
xuesfh007 发表于 2025-10-13 13:29
请问下,用NTloader来启动vhd文件,其中vhd文件里只安装了ventoy(MBR格式)
采用Legecy BIOS模式启动系统 ...

NTloader当然只支持Windows的vhd,帖子里面的菜单也写明了都是Windows的vhd。
你希望在Legacy BIOS下启动Ventoy的vhd,应使用memdisk :https://wiki.syslinux.org/wiki/index.php?title=MEMDISK
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-11-3 20:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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