无忧启动论坛

 找回密码
 注册
搜索
最纯净的「微PE装机优盘」UEPON大师作品系统gho:最纯净好用系统下载站数据恢复、数据保护、视频编辑
Win To Go 极致利器(IXUNCIS固态U盘)无忧启动网成立20周年!广告联系 QQ:184822951 微信:wuyouceo
楼主: wintoflash

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

    [复制链接]
发表于 2021-2-7 14:52:13 | 显示全部楼层
liuzhaoyzz 发表于 2021-2-7 13:28
是两种情况都成功了吗?你的截图有同分区、不同分区的情况。

ntloader/initrd.lz1、wim/vhd都放到一个分区里,ntloader/initrd.lz1就没必要再指定%x%了吧?

实验了一下,和多分区一样,chainloader的话,initrd前的%x%要去掉才行。



回复

使用道具 举报

发表于 2021-2-7 14:56:28 | 显示全部楼层
本帖最后由 wuwuzz 于 2021-2-7 15:51 编辑
2011whp 发表于 2021-2-7 13:33
1   跟 ntfs驱动 没关系,ntloader内部能读 ntfs分区 (好几个案例,不出这个问题)
      你是不是把   ...

双分区的话,ntloader/initrd.lz1放在FAT,像WIM/VHD这样的大文件才放NTFS上。

单分区,还没细分,待测试。

回复

使用道具 举报

发表于 2021-2-7 15:19:25 | 显示全部楼层
测试 ,g4d 下 ntloader 可以启动 wim 和 本地系统,硬盘是 sata组的 raid0,可以跨区引导启动,

如果 vhd 是经由 具有 wimboot 特性的 wim 做的指针,似乎就不能被启动了,还是需要另外设置些什么?
这种用 wimboot 特性的 wim 做的 vhd 指针,来启动 vhd 系统的方案,多出现在 较早期的 Win10 平板和 固态硬盘上。
回复

使用道具 举报

 楼主| 发表于 2021-2-7 15:52:37 | 显示全部楼层
lusir401 发表于 2021-2-7 00:20
我按照启动WINDOWS的方式,直接指定WINDOWS7X64所在分区,启动后过了Windows徽标后就蓝屏了。

win7 UEFI 要用特殊的 bootmgfw.efi 文件,这个还没有搞。
回复

使用道具 举报

 楼主| 发表于 2021-2-7 15:56:16 | 显示全部楼层
wuwuzz 发表于 2021-2-7 11:00
kernel命令启动wim/vhd,没有问题。
===================================================
chainloader ...

ntloader 本身不支持任何文件系统,它只能通过 UEFI 固件提供的 Simple File System Protocol 读 initrd 文件。
所以把它当 EFI 应用程序启动时,它和 initrd 文件必须放在同一分区,且要保证 UEFI 固件支持这个分区。
如果把它当 linux 内核用,那么 initrd 是由 grub4dos 加载到内存的,所以两个文件无论放在哪都行。
回复

使用道具 举报

 楼主| 发表于 2021-2-7 15:57:56 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-7 15:19
测试 ,g4d 下 ntloader 可以启动 wim 和 本地系统,硬盘是 sata组的 raid0,可以跨区引导启动,

如果 v ...

能不能发个启这种系统的 bcd 文件,我研究一下。
如果有个体积小的vhd能测试一下,那就更好了。
回复

使用道具 举报

发表于 2021-2-7 16:06:23 | 显示全部楼层
wuwuzz 发表于 2021-2-7 14:52
ntloader/initrd.lz1、wim/vhd都放到一个分区里,ntloader/initrd.lz1就没必要再指定%x%了吧?

实验了 ...

看wintoflash大神的例子里面说的,chainloader+ntloader+initrd=/efi/grub/initrd.lz1,initrd=后面永远不能加分区号。

kernel+ntloader+initrd方案,initrd后面最好加上分区号。

        
回复

使用道具 举报

发表于 2021-2-7 16:14:48 | 显示全部楼层
wintoflash 发表于 2021-2-7 15:56
ntloader 本身不支持任何文件系统,它只能通过 UEFI 固件提供的 Simple File System Protocol 读 initrd  ...

从这段话的意思来看:
1、chainloader+ntloader+initrd=/efi/grub/initrd.lz1方案中,ntloader和initrd.lz1一般地都要放在FAT32/ESP分区,部分主板内置了ntfs.efi驱动的,可能可以放在NTFS分区。

2、kernel+ntloader+initrd方案,ntloader和initrd.lz1似乎可以随意放置,只要指明他所在的分区号即可,比如(hd1,0)这样子的。

综上所述,kernel+ntloader+initrd方案似乎兼容性更好。
        
回复

使用道具 举报

发表于 2021-2-7 16:15:39 | 显示全部楼层
wintoflash 发表于 2021-2-7 15:57
能不能发个启这种系统的 bcd 文件,我研究一下。
如果有个体积小的vhd能测试一下,那就更好了。

G.7z (19.84 KB, 下载次数: 3)
回复

使用道具 举报

发表于 2021-2-7 16:42:07 | 显示全部楼层
用这个 启动 本地系统 win10  不支持休眠 么?

点评

试试,应该支持休眠了。  详情 回复 发表于 2021-2-8 15:03
不支持。休眠好像和 winresume 有点关系,我没研究明白, bcd 里面就没有弄。  详情 回复 发表于 2021-2-7 16:45
回复

使用道具 举报

 楼主| 发表于 2021-2-7 16:45:13 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-7 16:42
用这个 启动 本地系统 win10  不支持休眠 么?

不支持。休眠好像和 winresume 有点关系,我没研究明白, bcd 里面就没有弄。
回复

使用道具 举报

发表于 2021-2-7 16:45:25 | 显示全部楼层
wintoflash 发表于 2021-2-7 15:56
ntloader 本身不支持任何文件系统,它只能通过 UEFI 固件提供的 Simple File System Protocol 读 initrd  ...

这样一解释就容易理解多了。还是kernel方式更自由,chainloader受UEFI限制,不确定性较大。
回复

使用道具 举报

发表于 2021-2-7 16:46:39 | 显示全部楼层
liuzhaoyzz 发表于 2021-2-7 16:14
从这段话的意思来看:
1、chainloader+ntloader+initrd=/efi/grub/initrd.lz1方案中,ntloader和initrd. ...

对头。还是kernel方式好,chainloader面对不同的UEFI,失败可能性增大。
回复

使用道具 举报

 楼主| 发表于 2021-2-7 17:12:23 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-7 15:19
测试 ,g4d 下 ntloader 可以启动 wim 和 本地系统,硬盘是 sata组的 raid0,可以跨区引导启动,

如果 v ...
如果 vhd 是经由 具有 wimboot 特性的 wim 做的指针,似乎就不能被启动了,还是需要另外设置些什么?

"不能启动" 的具体现象是什么?

点评

没有任何提示的卡死,屏幕纯色 青色,不是蓝屏,然后 Ctrl+Alt+del 就重启了。  详情 回复 发表于 2021-2-8 16:09
回复

使用道具 举报

 楼主| 发表于 2021-2-7 17:15:06 | 显示全部楼层
wuwuzz 发表于 2021-2-7 16:45
这样一解释就容易理解多了。还是kernel方式更自由,chainloader受UEFI限制,不确定性较大。

chainloader 也有一个好,就是命令行长度没有任何限制。linux内核支持的命令行长度是写死的,ntloader 目前是 511 字节。
回复

使用道具 举报

发表于 2021-2-7 17:18:26 | 显示全部楼层
非常好,支持W大!
回复

使用道具 举报

发表于 2021-2-7 20:09:24 | 显示全部楼层
2011whp 发表于 2021-2-7 12:16
可能是  win 要锁定  esp分区 ,然后找不到吧,

你的情况,应该是先装的win7,后装的win 10吧(你用bo ...

我的bootmgfw.efi 文件WIN7是720K,Win10是1.2M,都是独立安装好,能正常进系统,然后再进行多系统引导的,看到你的分析,估计是启动时找不到这个bootmgfw.efi ,因为我在用chainloader /efi/microsoft/boot/bootmgfw.efi启动系统时,已经修改了bootmgfw.efi为boot7.efi,我尝试修改回来,还是蓝屏。
回复

使用道具 举报

发表于 2021-2-8 01:41:07 | 显示全部楼层
wintoflash 发表于 2021-2-7 15:52
win7 UEFI 要用特殊的 bootmgfw.efi 文件,这个还没有搞。

原来是我太着急了。

点评

希望 出个 initrd.lz0 来启动win7 (兼容 以前的系统)  发表于 2021-2-8 11:04
回复

使用道具 举报

 楼主| 发表于 2021-2-8 15:03:51 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-7 16:42
用这个 启动 本地系统 win10  不支持休眠 么?

ntloader.zip (2.13 MB, 下载次数: 12)

点评

好的,  详情 回复 发表于 2021-2-8 16:08
回复

使用道具 举报

发表于 2021-2-8 16:08:11 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-2-8 16:23 编辑
wintoflash 发表于 2021-2-8 15:03
试试,应该支持休眠了。

好的,

休眠、睡眠按钮都能用了,但是 ,功能不正常,点完以后,马上就又回系统里来了,并没有 保存数据。

点评

是不是开了"快速启动"?  详情 回复 发表于 2021-2-8 18:29
回复

使用道具 举报

发表于 2021-2-8 16:09:47 | 显示全部楼层
wintoflash 发表于 2021-2-7 17:12
"不能启动" 的具体现象是什么?

没有任何提示的卡死,屏幕纯色 青色,不是蓝屏,然后 Ctrl+Alt+del 就重启了。
回复

使用道具 举报

 楼主| 发表于 2021-2-8 18:29:07 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-8 16:08
好的,

休眠、睡眠按钮都能用了,但是 ,功能不正常,点完以后,马上就又回系统里来了,并没有 保存数 ...

是不是开了"快速启动"?

点评

有可能,老机器,可能bios 里没有这设置。 我明天看看才知道。  详情 回复 发表于 2021-2-8 20:48
回复

使用道具 举报

发表于 2021-2-8 20:48:28 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2021-2-8 22:20 编辑
wintoflash 发表于 2021-2-8 18:29
是不是开了"快速启动"?

有可能,老机器,可能bios 里没有这设置。
我明天看看才知道。

BIOS 里面关闭了 快速启动 也是一样不行。只能重新启动。

回复

使用道具 举报

发表于 2021-2-8 22:21:59 | 显示全部楼层
那个  no bootmgfw.efi 的问题,我 是在 kernel /ntloader 前 先 chainloader bootmgfw.efi 来解决的。

title win10PE.x64
        find /boot/pe/win10pe_x64.wim | set pe_path=
        uuid %pe_path%
        chainloader /efi/microsoft/boot/bootmgfw.efi
        kernel /efi/grub/ntloader uuid=%?_UUID% file=/boot/pe/win10pe_x64.wim
        initrd /efi/grub/initrd.lz1
        boot

点评

你这样用不行。  详情 回复 发表于 2021-2-8 22:25
回复

使用道具 举报

 楼主| 发表于 2021-2-8 22:25:11 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-8 22:21
那个  no bootmgfw.efi 的问题,我 是在 kernel /ntloader 前 先 chainloader bootmgfw.efi 来解决的。

...

你这样用不行。
回复

使用道具 举报

发表于 2021-2-9 09:16:31 | 显示全部楼层

为啥呢?
开始我以为是  本地 bootmgfw.efi 调用了本地的 bcd ,我把 本地的  bcd  改名了,一样可以。
回复

使用道具 举报

 楼主| 发表于 2021-2-9 09:43:33 | 显示全部楼层
dos时代菜鸟 发表于 2021-2-9 09:16
为啥呢?
开始我以为是  本地 bootmgfw.efi 调用了本地的 bcd ,我把 本地的  bcd  改名了,一样可以。
...

ntloader加载的bootmgfw.efi和bcd在initrd文件里面.
回复

使用道具 举报

 楼主| 发表于 2021-2-9 11:31:44 | 显示全部楼层
本帖最后由 wintoflash 于 2021-2-9 11:55 编辑

v1.0.5
增加 win7 bootmgfw.efi 和 uefiseven
添加 win7 和 vgashim 参数以模拟 int10h 启动 Win7
  1. kernel /ntloader %?_UUID% win7 vgashim
复制代码


仅供测试

回复

使用道具 举报

发表于 2021-2-9 13:24:42 | 显示全部楼层
wintoflash 发表于 2021-2-9 11:31
v1.0.5
增加 win7 bootmgfw.efi 和 uefiseven
添加 win7 和 vgashim 参数以模拟 int10h 启动 Win7

启动win7vhd出错:Fatal no bootmgfw.efi
win7vhd1.jpg
回复

使用道具 举报

 楼主| 发表于 2021-2-9 14:00:24 | 显示全部楼层
hiluo 发表于 2021-2-9 13:24
启动win7vhd出错:Fatal no bootmgfw.efi

抱歉,提交源码的时候漏了点东西。请重新下载。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2021-3-2 06:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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