无忧启动论坛

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

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

    [复制链接]
541#
发表于 2025-10-13 17:56:58 | 只看该作者
本帖最后由 xuesfh007 于 2025-10-13 18:00 编辑
wintoflash 发表于 2025-10-13 13:51
NTloader当然只支持Windows的vhd,帖子里面的菜单也写明了都是Windows的vhd。
你希望在Legacy BIOS下启 ...

明白了,感谢大佬回复
再请教下:
使用memdisk来启动vhd文件,vhd文件里只安装了ventoy(MBR格式),vhd文件大概30多兆(vhd内的虚拟盘容量256兆)
grub2采用Legecy BIOS模式启动系统时,一直卡在了这个界面,不知道错在哪里?
(上面一大串英文和数字提示)
Loading boot sector... booting...


grub2菜单如下:
menuentry "ventoy" {
        linux16 /EFI/grub/memdisk
        initrd16 /ventoyMBR.vhd
}


试过如下格式,都是卡在上面这个界面
menuentry "ventoy" {
        linux16 /EFI/grub/memdisk raw
        initrd16 /ventoyMBR.vhd
}


menuentry "ventoy" {
        linux16 /EFI/grub/memdisk harddisk raw
        initrd16 /ventoyMBR.vhd
}


menuentry "ventoy" {
        linux16 /EFI/grub/memdisk harddisk
        initrd16 /ventoyMBR.vhd
}




点评

你这个VHD是动态的吧,syslinux的memdisk不支持动态VHD的。  详情 回复 发表于 2025-10-13 19:09
我用grub4dos0.46a来启动ventoy.vhd  详情 回复 发表于 2025-10-13 18:04
回复

使用道具 举报

542#
发表于 2025-10-13 18:04:05 | 只看该作者
xuesfh007 发表于 2025-10-13 17:56
明白了,感谢大佬回复
再请教下:
使用memdisk来启动vhd文件,vhd文件里只安装了ventoy(MBR格式),vh ...

我用grub4dos0.46a来启动ventoy.vhd
回复

使用道具 举报

543#
发表于 2025-10-13 18:05:40 | 只看该作者
fh123456 发表于 2025-10-13 18:04
我用grub4dos0.46a来启动ventoy.vhd

grub2按道理也能启动吧

点评

应该能吧,但是我没用过grub2,我用grub4dos启动ventoy.vhd是没有问题的  详情 回复 发表于 2025-10-13 18:09
回复

使用道具 举报

544#
发表于 2025-10-13 18:09:21 | 只看该作者
xuesfh007 发表于 2025-10-13 18:05
grub2按道理也能启动吧

应该能吧,但是我没用过grub2,我用grub4dos启动ventoy.vhd是没有问题的
回复

使用道具 举报

545#
 楼主| 发表于 2025-10-13 19:09:28 | 只看该作者
xuesfh007 发表于 2025-10-13 17:56
明白了,感谢大佬回复
再请教下:
使用memdisk来启动vhd文件,vhd文件里只安装了ventoy(MBR格式),vh ...

你这个VHD是动态的吧,syslinux的memdisk不支持动态VHD的。
回复

使用道具 举报

546#
发表于 2025-10-13 21:51:02 | 只看该作者
wintoflash 发表于 2025-10-13 19:09
你这个VHD是动态的吧,syslinux的memdisk不支持动态VHD的。

感谢指导
的却是动态格式启动不了
回复

使用道具 举报

547#
发表于 2025-10-16 21:42:23 | 只看该作者
因为我是用wimramos1.3制作的ramos,制作时对ntoskrnl.exe进行了修改,又重新用Windows 64Signer V1.2加了数字签名,现在是用ntloader直接引导ramoswin7.wim
有两个问题提一下:
一、能否再加个参数让跳过系统启动时禁用数字签名的下面如图那个选择屏幕




二、initrd.CPIO名件解压后里面有个3M的boot.sdi,我替换成朱玛制作的28KB的精简版(用此版本启动后系统盘为exfat格式),如何用7z再压缩回去?
是压成initrd.zip.gz,再重命名为initrd.cpio吗?还是只能由你重新制作一个版本?



点评

无法实现。只能命令行使用f8参数自动进入这个界面,但是必须要用户手动选择才行。 你下载的压缩包里面有文档已经说明了。 也可以看github上的说明:https://github.com/grub4dos/ntloader/blob/main/docs/util  详情 回复 发表于 2025-10-16 22:29
回复

使用道具 举报

548#
 楼主| 发表于 2025-10-16 22:29:18 | 只看该作者
2011masm 发表于 2025-10-16 21:42
因为我是用wimramos1.3制作的ramos,制作时对ntoskrnl.exe进行了修改,又重新用Windows 64Signer V1.2加了数 ...
一、能否再加个参数让跳过系统启动时禁用数字签名的下面如图那个选择屏幕

无法实现。只能命令行使用f8参数自动进入这个界面,但是必须要用户手动选择才行。
二、initrd.CPIO名件解压后里面有个3M的boot.sdi,我替换成朱玛制作的28KB的精简版(用此版本启动后系统盘为exfat格式),如何用7z再压缩回去?
是压成initrd.zip.gz,再重命名为initrd.cpio吗?还是只能由你重新制作一个版本?

你下载的压缩包里面有文档已经说明了。
也可以看github上的说明:https://github.com/grub4dos/ntloader/blob/main/docs/utils.md
回复

使用道具 举报

549#
发表于 2025-10-17 14:10:02 | 只看该作者
本帖最后由 2011masm 于 2025-10-17 21:54 编辑

一、因为我已对ntoskrnl.exe添加了数字签名,经测试不加f8参数,只加testmode=yes参数即可跳过禁用数字签名的下面如图那个选择屏幕。
二、在linux环境下,已用find * | cpio -o -H newc > ../initrd.cpio命令对替代过boot.sdi重新打包,已成功启动。谢谢指点。
有一个新的问题:
我用的笔记本,在光驱位加装了一块硬盘,不加装此硬盘前启动正常,加装此硬盘后无法启动,显示如下:
因无法上传图片,将文字贴上
booting 'ramoswin7.wim'

(hd0,3)
(hd0,3) UUID  is "00068**************"
         filesystem type is ntfs,partition type 0x07
(hd0,1)
    [liux-bzo,age,setup=0x800,size=0x13400]
loading :/ntloader/initrd.cpio
    [linux-initrd @ 0xba33d000,0x939e40 bytes]

ntloader v3.0.7

command line: "uuid=00068********** wim=ram/ramoswin7.wim testmode=yes"
scratch addr 0x30000
停在此画面死机。
而后将加装的硬盘拆下后启动又可以正常启动。有一块硬盘时启动正常,有两块硬盘时无法启动。补充一下新发现,并非两块就一定不能启动,而是其中一块硬盘装了个fydeos19.0,上面分了12个区,是这块硬盘挂上后无法启动。

回复

使用道具 举报

550#
发表于 2025-10-17 16:28:32 | 只看该作者
能配合iPXE使用不?
回复

使用道具 举报

551#
发表于 2025-10-17 17:08:36 来自手机 | 只看该作者
能引导动态存储的vhd吗
回复

使用道具 举报

552#
发表于 2025-10-18 10:59:02 | 只看该作者
感谢分享,学习一下!
回复

使用道具 举报

553#
发表于 2025-11-7 10:26:28 | 只看该作者
再次回来感谢!
回复

使用道具 举报

554#
发表于 4 天前 | 只看该作者
refind菜单如下:
menuentry "Windows NT6+ VHD" {
    loader /path/to/ntloader
    initrd /path/to/initrd.cpio
    options "uuid=CB0050F3-A3B4-4F48-8316-AF2F61384CA4 file=/vhd/5600g_w10.vhdx"
}
选择后一片英文一闪而过,然后屏幕就全蓝了(不是蓝屏),等一会就自动重启。
用的是08-08版的ntloader,同版本用在g4e里就可以正常启动同一个vhdx系统。

点评

这个UUID显然是错误的。 压缩包里面带了fsuuid.exe用来查看文件系统的UUID,README文档里面也有相关说明。 [attachimg]567951[/attachimg] [attachimg]567952[/attachimg] 如果你用的是DiskGenius,应该复制的  详情 回复 发表于 4 天前
回复

使用道具 举报

555#
 楼主| 发表于 4 天前 | 只看该作者
fanchenwen 发表于 2025-11-22 08:41
refind菜单如下:
menuentry "Windows NT6+ VHD" {
    loader /path/to/ntloader
uuid=CB0050F3-A3B4-4F48-8316-AF2F61384CA4

这个UUID显然是错误的。
压缩包里面带了fsuuid.exe用来查看文件系统的UUID,README文档里面也有相关说明。


如果你用的是DiskGenius,应该复制的是"卷序列号",且对于NTFS分区,应该去掉'-'横杠。

点评

复制的不是卷的,确实是分区GUID,你说的两个软件都用过,uuid 是一样的,只有大小写区别,而大小写我都试过了。  详情 回复 发表于 4 天前
回复

使用道具 举报

556#
发表于 4 天前 | 只看该作者
wintoflash 发表于 2025-11-22 10:12
这个UUID显然是错误的。
压缩包里面带了fsuuid.exe用来查看文件系统的UUID,README文档里面也有相关说 ...

复制的不是卷的,确实是分区GUID,你说的两个软件都用过,uuid 是一样的,只有大小写区别,而大小写我都试过了。

点评

那是不可能的。 NTFS分区fsuuid不会是那种格式的。100%是你搞错了。 你执行 "fsuuid.exe VHD所在盘符",截个图。  详情 回复 发表于 4 天前
回复

使用道具 举报

557#
 楼主| 发表于 4 天前 | 只看该作者
本帖最后由 wintoflash 于 2025-11-22 11:55 编辑
fanchenwen 发表于 2025-11-22 10:24
复制的不是卷的,确实是分区GUID,你说的两个软件都用过,uuid 是一样的,只有大小写区别,而大小写我都 ...

那是不可能的。
NTFS分区fsuuid不会是那种格式的。100%是你搞错了。
你执行 "fsuuid.exe VHD所在盘符",截个图。DiskGenius也截个图。
对于上个帖子中我的回复,似乎有歧义。
如果你用的是DiskGenius,应该复制的是"卷序列号",且对于NTFS分区,应该去掉'-'横杠。

此处意思为:你 应该 复制 的 东西 是 卷序列号 (而不是"分区GUID"),且对于NTFS分区,(复制时)应该去掉'-'横杠。

点评

用fsuuid.exe -l显示出来的和dg的GUID是一样的cb0050f3-a3b4-4f48-8316-af2f61384ca4},不过按你说的fsuuid.exe E:得出的结果是fd5f9c3daf07ecb3  详情 回复 发表于 4 天前
文件系统类型: NTFS 卷标: 弈 4T 总容量: 3.7TB 总字节数: 4095424667136 已用空间: 2.1TB 可用空间: 1699.1GB 簇大小: 4096 总簇数: 999859537 已用簇数: 554463694 空闲簇数: 445395843 总扇区数: 79988  详情 回复 发表于 4 天前
回复

使用道具 举报

558#
发表于 4 天前 | 只看该作者
wintoflash 发表于 2025-11-22 11:48
那是不可能的。
NTFS分区fsuuid不会是那种格式的。100%是你搞错了。
你执行 "fsuuid.exe VHD所在盘符" ...

文件系统类型:        NTFS
卷标:        弈 4T
总容量:        3.7TB
总字节数:        4095424667136
已用空间:        2.1TB
可用空间:        1699.1GB
簇大小:        4096
总簇数:        999859537
已用簇数:        554463694
空闲簇数:        445395843
总扇区数:        7998876303
扇区大小:        512
起始扇区号:        2697216
GUID路径:        \\?\Volume{cb0050f3-a3b4-4f48-8316-af2f61384ca4}
设备路径:        \Device\HarddiskVolume9
卷序列号:        FD5F-9C3D-AF07-ECB3
NTFS版本号:        3.1
$MFT簇号:                  786432 (柱面:559 磁头:132 扇区:22)
$MFTMirr簇号:                       2 (柱面:167 磁头:228 扇区:14)
文件记录大小:        1024
索引记录大小:        4096
卷GUID:        CC166D1A-8A8A-4497-B091-9C3CD843A9EA

分区类型 GUID:        EBD0A0A2-B9E5-4433-87C0-68B6B72699C7
分区 GUID:        CB0050F3-A3B4-4F48-8316-AF2F61384CA4
分区名字:        Basic data partition
分区属性:        正常

点评

所以uuid就是 FD5F9C3DAF07ECB3 文档也说了,fsuuid -l 是列出volume path,没说是uuid。 volume path和盘符是一样用的。通过盘符或volume path获取uuid。  详情 回复 发表于 4 天前
回复

使用道具 举报

559#
发表于 4 天前 | 只看该作者
wintoflash 发表于 2025-11-22 11:48
那是不可能的。
NTFS分区fsuuid不会是那种格式的。100%是你搞错了。
你执行 "fsuuid.exe VHD所在盘符" ...

用fsuuid.exe -l显示出来的和dg的GUID是一样的cb0050f3-a3b4-4f48-8316-af2f61384ca4},不过按你说的fsuuid.exe E:得出的结果是fd5f9c3daf07ecb3
回复

使用道具 举报

560#
 楼主| 发表于 4 天前 | 只看该作者
fanchenwen 发表于 2025-11-22 15:55
文件系统类型:        NTFS
卷标:        弈 4T
总容量:        3.7TB
卷序列号:        FD5F-9C3D-AF07-ECB3

所以uuid就是 FD5F9C3DAF07ECB3

文档也说了,fsuuid -l 是列出volume path,没说是uuid。
volume path和盘符是一样用的。通过盘符或volume path获取uuid。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-11-26 03:20

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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