不点 发表于 2024-4-17 17:44:28

boot.ini 在 win11 下无效?

本帖最后由 不点 于 2024-4-17 18:02 编辑

找到了这个网页,不知能否解决:


https://www.tenforums.com/tutorials/22455-enable-disable-f8-advanced-boot-options-windows-10-a.html


因为想通过 boot.ini 来添加 grldr 启动项。用别的办法都比较麻烦,所以就想用 boot.ini。

在 C 盘根目录(确认根目录下有 bootmgr 文件)创建 boot.ini 文件(而且保证文件头部不含 UTF-8 的 BOM),内容如下:



timeout=10

C:\grldr="grldr"



启动时确实能够出现 bootmgr 的菜单,但是却没有 grldr 启动项,无法启动 grldr。补充:启动当然是 BIOS 模式,而不是 UEFI 模式。


szwp 发表于 2024-4-17 18:33:22

不要蓝菜单,8.1的bootmgr启动11正常

呆萌鼠 发表于 2024-4-17 18:36:34

                   GPT      在Windows系统中,boot.ini文件主要用于配置启动时的选项,但是在Windows Vista及以后的版本中,boot.ini已经被BCD(Boot Configuration Data)取代了。因此,如果你正在使用Windows Vista、Windows 7、Windows 8、Windows 10或者Windows Server 2008及以后版本,boot.ini文件可能不再适用。如果你仍然想通过修改启动项来引导grub4dos(使用grldr),可以通过BCD编辑器或者命令行工具来实现。以下是一种通过命令行工具(bcdedit)添加启动项的方法:
[*]打开命令提示符(以管理员身份运行)。
[*]运行以下命令添加启动项:
bashCopy code
bcdedit /create /d "grldr" /application bootsector


[*]该命令会返回一个类似于 {xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 的GUID,将其替换下面命令中的 {xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}。
[*]继续运行以下命令设置引导文件和路径:
sqlCopy code
bcdedit /set {xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=C:bcdedit /set {xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \grldr

确保将 {xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} 替换为前一步中返回的GUID,以及将路径\grldr替换为grldr文件所在的正确路径。
[*]最后,设置超时时间:
bashCopy code
bcdedit /timeout 10

以上命令会将超时时间设置为10秒,你也可以根据需要进行调整。通过以上步骤添加的启动项应该会在启动时出现在引导菜单中,允许你选择启动grldr。























呆萌鼠 发表于 2024-4-17 18:41:10

给你GPT3.5入口,你自己问,上面是我把你的复制到GPT提问的答案。go.gptdsb.com/list密码GPTDSB,只能用3.5的。

fuldho 发表于 2024-4-17 18:53:05

NT6下没试过boot.ini,

添加实时模式

for /f "tokens=2" %%c in ('BCDEDIT /CREATE /D "grub4dos" /application bootsector ') do set id=%%c
bcdedit /set %id% device boot>nul
bcdedit /set %id% path \grldr >nul
bcdedit /displayorder %id% /addlast >nul

dayeye 发表于 2024-4-17 20:26:30

本帖最后由 dayeye 于 2024-4-17 20:32 编辑

英文版的链接看不懂。
我想应该是这样的:
1. 在bootmgr同目录下放置NTLDR+BOOT.INI+grldr

2. 在BCD菜单中添加Winxp启动项


但事实上没必要这样做,可以直接添加实模式启动项





wypengfei 发表于 2024-4-17 20:43:49

学习了多谢科普

hehuiying 发表于 2024-4-17 20:56:06

我看不懂你写的,看来我是小白,还得继续学习才行

yyz2191958 发表于 2024-4-17 21:01:34

进来学习

hilsonma 发表于 2024-4-17 21:02:27

本帖最后由 hilsonma 于 2024-4-17 21:23 编辑

最简单的就是把c盘根目录的bootmgr改名为bootms
然后把grldr改名为bootmgr放到c盘根目录

grldr菜单里其中一项设定为chainloader /bootms
这项可以是默认项。菜单等待时间可以是10秒也可以是1秒。

softwarezheng 发表于 2024-4-17 21:08:20

谢谢

yuguotqing 发表于 2024-4-17 21:38:47

感谢,学习了

不点 发表于 2024-4-17 21:42:21

谢谢各位!各位都是熟练的高手,十分佩服!

我用 bing 国际版,用关键字 “+bootmgr boot.ini grldr win10”(去掉引号)搜了一下,找到如下网页:

http://reboot.pro/index.php?showtopic=21787

misty 在 13 楼的发言,切中要害:

As an alternative, I manually added a boot.ini file with entries for Grub4dos to my FAT (boot) partition - this was automatically parsed by the Windows 7 boot manager (bootmgr) and I was able to successfully boot grub4dos without modifying the BCD store.

Contents of boot.ini


default=C:\grldr

C:\grldr="Grub4Dos"

Using bootmgr from Windows 10 source (1607 and 1709 versions were tested) - boot.ini was not parsed and it was not possible to use this method.

Using bootmgr from Windows 8.1 source - boot.ini was parsed and an entry for Grub4Dos was availble in the Windows boot menu.

Using bootmgr from Windows 7 (SP1) source - boot.ini was parsed and an entry for Grub4Dos was availble in the Windows boot menu.

Adding an entry for grldr.mbr to the BCD store should work in all versions.


主要意思是说,win7、win8 的 bootmgr 会去解析(读取并处理) boot.ini 文件,但 win10 的 bootmgr 就不去解析 boot.ini 文件了。

不点 发表于 2024-4-17 22:17:03

hilsonma 发表于 2024-4-17 21:02
最简单的就是把c盘根目录的bootmgr改名为bootms
然后把grldr改名为bootmgr放到c盘根目录



这个办法,有一定的概率会失败。虽然 “失败” 是小概率事件,但毕竟是有可能失败的。

这个办法的本质,是让微软的 VBR(卷引导记录,也说成 PBR -- 分区引导记录)来加载 grldr。失败的可能性就在这一步骤出现。

当这个卷(分区)是 FAT32 或 NTFS 格式时,这不会失败,因为微软的 FAT32 或 NTFS 引导扇区代码能够完整加载 ntldr 或 bootmgr 到内存(就等于说完整加载了 grldr 到内存,因为 grldr 冒充了 ntldr 或 bootmgr)。所以,这种情况是成功的。

当这个卷(分区)是 FAT12 或 FAT16 格式时,这肯定要失败,因为微软的 FAT12 或 FAT16 引导扇区代码不能够完整加载 ntldr 或 bootmgr 到内存,确切地说,只加载了最开头的一个扇区到内存(就等于说只加载了 grldr 的第一扇区到内存,因为 grldr 冒充了 ntldr 或 bootmgr)。所以,这种情况肯定要失败。前面之所以说失败的概率不高,是因为 FAT12 和 FAT16 的使用场景不多而已,大多数情况都是使用 FAT32 和 NTFS。如果用来引导 grldr 的分区的格式碰巧就是 FAT12 或 FAT16,那么,此时失败是肯定的,换句话说,就是 100% 失败,而不可能成功。

exFAT 的情况没研究过,但估计成功的可能性较大,因为 exFAT 类似于 FAT32 和 NTFS,而不是向 FAT12/16 看齐。大家可以试试,看看 exFAT 的情况究竟是成功还是失败。只需有一个人去试试即可,如果试验成功,那么对于所有的情况总是成功,不会有失败;如果试验失败,那么对于所有的情况也总会失败,而不可能有成功。

2012fengxi 发表于 2024-4-17 22:25:49

我觉得不如用grldr作为引导,boot.ini太过时了

hilsonma 发表于 2024-4-18 06:34:47

不点 发表于 2024-4-17 22:17
这个办法,有一定的概率会失败。虽然 “失败” 是小概率事件,但毕竟是有可能失败的。

这个办法的本质 ...

exfat的情况是成功的,我试过。

fat16或fat12我没有试过,毕竟罕见了,真有的话,我想多是引导io.sys的,这种情况下我会使用grub.exe,而不是pbr直接引导grldr.。也可以尝试你前面说的ntldr+boot.ini+grldr 和 bootmgr7+boot.ini+grldr。

壁垒是存在的,所以,很难有一个统一的方案。
wee是很优秀的,但我试过在某台机器上装了wee后,该机器直接不认引导盘了。
所以,现在我不是根据自己的喜好来做机器的引导,而是根据实际情况在尽量不改原机引导方式的情形下灵活应用,穿插自己的喜好。

不点 发表于 2024-4-18 07:17:47

hilsonma 发表于 2024-4-18 06:34
exfat的情况是成功的,我试过。

fat16或fat12我没有试过,毕竟罕见了,真有的话,我想多是引导io.sys ...

exFAT 成功,很好。跟我的猜测吻合。

FAT12 比较少见,只在 “软盘” 级别的 img 上出现。

但 FAT16 出现的概率还是挺大的。你可以搜一下 FAT16 最大支持多大的分区长度。grldr 如果只是你自己用,你倒是可以避开 FAT12、FAT16,但如果你是把自己的方案发布出去,让别人使用,则别人有可能碰上 FAT12、FAT16。

关于你描述的 wee 的情况,我猜,很可能 wee 所占用的 62 个扇区,正好覆盖了这台机器的主板 BIOS 在硬盘开头记录的硬盘参数,导致主板 “不认可” 这个硬盘为 “可启动的设备”。wee 在运行过程中不会有写盘动作。wee 与别的东西发生冲突,也仅仅只会在 62 扇区 “覆盖、冲突” 这一点上。主板将某些硬盘信息记录在硬盘开头(读取或写入),是有可能的。主板这么做,当然是不合理的。但不合理的事情,也是有可能发生的。

不点 发表于 2024-4-18 08:32:50

隐隐约约记得有人说 bootmgr 能够直接加载 iso 文件,但找不到帖子了。不知是否我记忆有偏差?

我的目的就是要启动 kuer 的 PE 而已,如果能够用 bootmgr 直接实现,我不想经由 grub4dos 来弄。

dayeye 发表于 2024-4-18 08:53:01

即使 win7、win8 的 bootmgr 能够解析 boot.ini,还是会有bootmgr默认(或优先)引导的问题存在。
假定在启动分区同时存在bootmgr、boot.ini 和 BCD,我想bootmgr会首先指向BCD,忽略BOOT.INI ,
而不会在启动菜单上同时出现boot.ini及BCD下的引导项(这个我没有尝试过,也没有百度过)。


所以,无论是WIN7、WIN8的bootmgr,还是WIN10、Win11的bootmgr,要利用boot.ini方便地添加GRLDR启动项,又能同时用bootmgr引导WINDOWS(7、8、10、11)项,都是做不到的。



这只是猜想。究竟怎么样,试过才知道。



dayeye 发表于 2024-4-18 09:06:44

本帖最后由 dayeye 于 2024-4-18 09:08 编辑

不点 发表于 2024-4-18 08:32
隐隐约约记得有人说 bootmgr 能够直接加载 iso 文件,但找不到帖子了。不知是否我记忆有偏差?

我的目的 ...
用bootice添加WIM启动项就好。直接启动ISO没试过。

szwp 发表于 2024-4-18 09:21:00

dayeye 发表于 2024-4-18 09:06
用bootice添加WIM启动项就好。直接启动ISO没试过。
bcd启动wim方便

hlowld 发表于 2024-4-18 09:25:22

不点 发表于 2024-4-18 08:32
隐隐约约记得有人说 bootmgr 能够直接加载 iso 文件,但找不到帖子了。不知是否我记忆有偏差?

我的目的 ...

想启动iso文件,又不想用grub,可以将ventoy安装到一个约50M的vhd文件中,BCD中添加引导这个vhd文件,引导到ventoy,在ventoy按F2选择iso文件来加载

不点 发表于 2024-4-18 09:58:18

谢谢 dayeye,szwp,hlowld。

这么说来,我可能是弄错了。bootmgr 应该是不能直接启动 iso。看来想偷懒还是不行。

那就老老实实用 bootmgr 启动 grldr,再启动 iso 好了。

各位大师所说的方法,我会储备起来,慢慢消化。目前我停留在 ISO 思维模式。假如我以后能够发现 ISO 里面只有一个 wim 是起作用的,那就只保留这个 wim 即可,不需要保留整个 iso 文件。到那时候,我就会进一步去学习用 bootmgr 来直接加载 wim 的方法和步骤了。

不点 发表于 2024-4-18 10:06:19

dayeye 发表于 2024-4-18 08:53
即使 win7、win8 的 bootmgr 能够解析 boot.ini,还是会有bootmgr默认(或优先)引导的问题存在。
假定在启 ...

碰巧我试过,win7 的 bootmgr 支持 boot.ini 里面的实模式加载项。它肯定是先处理 BCD 里面的启动项,然后才寻找 boot.ini 里面的 “实模式加载项”。而 boot.ini 里面的其他项目,会被忽略,所以,也不会有冲突。

szwp 发表于 2024-4-18 10:07:26

iso里如果有多个pe会有多个wim,除了wim文件还需要一个sdi文件。

不点 发表于 2024-4-18 10:13:08

szwp 发表于 2024-4-18 10:07
iso里如果有多个pe会有多个wim,除了wim文件还需要一个sdi文件。

哦,我下载的 kuer 的 PE,不知道里面有多少个 wim,我猜通常只有一个吧?sdi 是不是也在其中呢?如果方便,您可以把相关知识点描述一下,作为知识储备,方便需要的人查阅。

szwp 发表于 2024-4-18 10:21:22

不点 发表于 2024-4-18 10:13
哦,我下载的 kuer 的 PE,不知道里面有多少个 wim,我猜通常只有一个吧?sdi 是不是也在其中呢?如果方 ...

如果多个的话,启动时会有菜单7pe 10pe之类的,没启动菜单的就只有一个wim,sdi文件在iso会有的。有不少现成的工具,可以在当前系统自动将wim加入bcd菜单。

wondaol 发表于 2024-4-18 10:50:55

boot.iniboot.ini 在XP系统里用的吧

JOINT 发表于 2024-4-18 13:24:24

本帖最后由 JOINT 于 2024-4-18 14:13 编辑

不点 发表于 2024-4-18 10:13
哦,我下载的 kuer 的 PE,不知道里面有多少个 wim,我猜通常只有一个吧?sdi 是不是也在其中呢?如果方 ...
kuer 的 PE在 soucers目录下有boot.WIM
boot目录下有boot.sdi,sdi多数情况下可通用。

sdi是加载wim文件到加载到内存时初始化需要的,包含有分区格式化时需要的驱动程序,论坛里最小的sdi有28KB大小,对应于exfat格式的PE系统分区,是不通用的。(朱玛12345678的帖子)

“WIM版Windows PE系统盘X盘的文件系统类型属性是由boot.sdi这个文件决定的,与PE启动盘本身的格式无关。
boot.sdi这个文件是一个存放有文件系统的微型镜像,在wim启动时将其虚拟为X盘并让wim挂载到该文件系统上作为WinPE的系统盘使用。
而在PE系统内X盘的实际容量则取决于FBWF配置文件或其注册表的设置,在绝大多数情况下与boot.sdi的文件大小无关。”

也有很多PE-ISO包含多个WIM,路径也可能放在boot或根目录下,boot.sdi也可能不在boot目录下,也可能改名。
用BOOTICE添加wim引导项可参考以下帖子:

安装Windows PE 到硬盘常用方法及所需工具
bbs.c3.wuyou.net/forum.php?mod=viewthread&tid=435219&extra=page%3D2

JOINT 发表于 2024-4-18 13:41:19

hilsonma的帖子里有“添加PE到C盘 ”的批处理。
页: [1] 2
查看完整版本: boot.ini 在 win11 下无效?