无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
楼主: wintoflash
打印 上一主题 下一主题

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

    [复制链接]
91#
发表于 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
回复

使用道具 举报

92#
发表于 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上。

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

回复

使用道具 举报

93#
发表于 2021-2-7 15:19:25 | 只看该作者
测试 ,g4d 下 ntloader 可以启动 wim 和 本地系统,硬盘是 sata组的 raid0,可以跨区引导启动,

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

使用道具 举报

94#
 楼主| 发表于 2021-2-7 15:52:37 | 只看该作者
lusir401 发表于 2021-2-7 00:20
我按照启动WINDOWS的方式,直接指定WINDOWS7X64所在分区,启动后过了Windows徽标后就蓝屏了。

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

点评

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

使用道具 举报

95#
 楼主| 发表于 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
回复

使用道具 举报

96#
 楼主| 发表于 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
回复

使用道具 举报

97#
发表于 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后面最好加上分区号。

        
回复

使用道具 举报

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

使用道具 举报

99#
发表于 2021-2-7 16:15:39 | 只看该作者
wintoflash 发表于 2021-2-7 15:57
能不能发个启这种系统的 bcd 文件,我研究一下。
如果有个体积小的vhd能测试一下,那就更好了。

G.7z (19.84 KB, 下载次数: 14)

感觉 bcd 设置上 跟正常的 vhd 没啥区别,但是 wim + vhd 所在的分区上 可能有标记,标记 很可能是在 system volume information 文件夹中的 某个文件里。
因为 Wim+ vhd 太大了,没法上传,只能先把 bcd 给你看看了。


回复

使用道具 举报

100#
发表于 2021-2-7 16:42:07 | 只看该作者
用这个 启动 本地系统 win10  不支持休眠 么?
回复

使用道具 举报

101#
 楼主| 发表于 2021-2-7 16:45:13 | 只看该作者
dos时代菜鸟 发表于 2021-2-7 16:42
用这个 启动 本地系统 win10  不支持休眠 么?

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

使用道具 举报

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

使用道具 举报

103#
发表于 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,失败可能性增大。
回复

使用道具 举报

104#
 楼主| 发表于 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
回复

使用道具 举报

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

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

使用道具 举报

106#
发表于 2021-2-7 17:18:26 | 只看该作者
非常好,支持W大!
回复

使用道具 举报

107#
发表于 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,我尝试修改回来,还是蓝屏。
回复

使用道具 举报

108#
发表于 2021-2-8 01:41:07 | 只看该作者
wintoflash 发表于 2021-2-7 15:52
win7 UEFI 要用特殊的 bootmgfw.efi 文件,这个还没有搞。

原来是我太着急了。

点评

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

使用道具 举报

109#
 楼主| 发表于 2021-2-8 15:03:51 | 只看该作者
dos时代菜鸟 发表于 2021-2-7 16:42
用这个 启动 本地系统 win10  不支持休眠 么?

ntloader.zip (2.13 MB, 下载次数: 45)
试试,应该支持休眠了。


点评

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

使用道具 举报

110#
发表于 2021-2-8 16:08:11 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-2-8 16:23 编辑
wintoflash 发表于 2021-2-8 15:03
试试,应该支持休眠了。

好的,

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

回复

使用道具 举报

111#
发表于 2021-2-8 16:09:47 | 只看该作者
wintoflash 发表于 2021-2-7 17:12
"不能启动" 的具体现象是什么?

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

使用道具 举报

112#
 楼主| 发表于 2021-2-8 18:29:07 | 只看该作者
dos时代菜鸟 发表于 2021-2-8 16:08
好的,

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

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

点评

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

使用道具 举报

113#
发表于 2021-2-8 20:48:28 | 只看该作者
本帖最后由 dos时代菜鸟 于 2021-2-8 22:20 编辑
wintoflash 发表于 2021-2-8 18:29
是不是开了"快速启动"?

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

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

回复

使用道具 举报

114#
发表于 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

回复

使用道具 举报

115#
 楼主| 发表于 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
回复

使用道具 举报

116#
发表于 2021-2-9 09:16:31 | 只看该作者

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

使用道具 举报

117#
 楼主| 发表于 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
回复

使用道具 举报

118#
 楼主| 发表于 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
回复

使用道具 举报

119#
发表于 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 (519.26 KB, 下载次数: 277)

win7vhd1.jpg

点评

抱歉,提交源码的时候漏了点东西。请重新下载。  详情 回复 发表于 2021-2-9 14:00
回复

使用道具 举报

120#
 楼主| 发表于 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-6-16 09:24

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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