无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: 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%要去掉才行。



点评

看wintoflash大神的例子里面说的,chainloader+ntloader+initrd=/efi/grub/initrd.lz1,initrd=后面永远不能加分区号。 kernel+ntloader+initrd方案,initrd后面最好加上分区号。  详情 回复 发表于 2021-2-7 16:06
回复

使用道具 举报

发表于 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 17:12
能不能发个启这种系统的 bcd 文件,我研究一下。 如果有个体积小的vhd能测试一下,那就更好了。  详情 回复 发表于 2021-2-7 15:57
回复

使用道具 举报

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

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

点评

原来是我太着急了。  详情 回复 发表于 2021-2-8 01:41
回复

使用道具 举报

 楼主| 发表于 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 加载到内存的,所以两个文件无论放在哪都行。

点评

这样一解释就容易理解多了。还是kernel方式更自由,chainloader受UEFI限制,不确定性较大。  详情 回复 发表于 2021-2-7 16:45
从这段话的意思来看: 1、chainloader+ntloader+initrd=/efi/grub/initrd.lz1方案中,ntloader和initrd.lz1一般地都要放在FAT32/ESP分区,部分主板内置了ntfs.efi驱动的,可能可以放在NTFS分区。 2、kernel+ntlo  详情 回复 发表于 2021-2-7 16:14
回复

使用道具 举报

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

如果 v ...

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

点评

感觉 bcd 设置上 跟正常的 vhd 没啥区别,但是 wim + vhd 所在的分区上 可能有标记,标记 很可能是在 system volume information 文件夹中的 某个文件里。 因为 Wim+ vhd 太大了,没法上传,只能先把 bcd 给你  详情 回复 发表于 2021-2-7 16:15
回复

使用道具 举报

发表于 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方案似乎兼容性更好。
        

点评

对头。还是kernel方式好,chainloader面对不同的UEFI,失败可能性增大。  详情 回复 发表于 2021-2-7 16:46
回复

使用道具 举报

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

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

使用道具 举报

发表于 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限制,不确定性较大。

点评

chainloader 也有一个好,就是命令行长度没有任何限制。linux内核支持的命令行长度是写死的,ntloader 目前是 511 字节。  详情 回复 发表于 2021-2-7 17:15
回复

使用道具 举报

发表于 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, 下载次数: 44)

点评

好的,  详情 回复 发表于 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 来解决的。

...

你这样用不行。

点评

为啥呢? 开始我以为是 本地 bootmgfw.efi 调用了本地的 bcd ,我把 本地的 bcd 改名了,一样可以。  详情 回复 发表于 2021-2-9 09:16
回复

使用道具 举报

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

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

点评

ntloader加载的bootmgfw.efi和bcd在initrd文件里面.  详情 回复 发表于 2021-2-9 09:43
回复

使用道具 举报

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

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

点评

可是 提示 no bootmgfw.efi ,也不知道为啥。 先chainloader bootmgfw.efi 加载了以后,就没这提示了。调用的也是 initrd.lz1 里的 bcd  详情 回复 发表于 2021-2-9 22:09
回复

使用道具 举报

 楼主| 发表于 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
复制代码


仅供测试

点评

1.05版本,启动svbus内存系统还是7B蓝屏。菜单前面有贴出来。  详情 回复 发表于 2021-2-9 17:42
启动win7vhd出错:Fatal no bootmgfw.efi  详情 回复 发表于 2021-2-9 13:24
回复

使用道具 举报

发表于 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
回复

使用道具 举报

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

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

点评

新下载,启动win7vhd黑屏无提示(win10台式机不支持?)  详情 回复 发表于 2021-2-9 14:32
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-28 20:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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