无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 11052|回复: 59

[求助] g4d有没办法在用wimboot启动wim的时候分行写initrd语句啊?

  [复制链接]
发表于 2019-12-5 09:50:26 | 显示全部楼层 |阅读模式
444.png

我插入的文件有点多,于是就超长了,如果换到下一行,貌似就不会被执行。写起来很不方便,grub2是可以分行写的,老旧机器用grub2有点勉强
发表于 2019-12-5 10:04:43 | 显示全部楼层
本帖最后由 wintoflash 于 2019-12-5 10:06 编辑


批处理好像是用 ^ 续行的,你试试


回复

使用道具 举报

发表于 2019-12-5 10:26:05 | 显示全部楼层
希望可以帮到你

grub4dos-help.chm

583.58 KB, 下载次数: 34, 下载积分: 无忧币 -2

回复

使用道具 举报

 楼主| 发表于 2019-12-5 12:43:38 | 显示全部楼层
试了都不行啊,看来没戏了
回复

使用道具 举报

发表于 2019-12-5 13:23:32 | 显示全部楼层
每行都加个 initrd 行不行?

点评

最早试的,,不行啊  详情 回复 发表于 2019-12-5 14:36
回复

使用道具 举报

 楼主| 发表于 2019-12-5 14:36:56 | 显示全部楼层
527104427 发表于 2019-12-5 13:23
每行都加个 initrd 行不行?

最早试的,,不行啊
回复

使用道具 举报

发表于 2019-12-5 15:16:49 | 显示全部楼层
grub4dos好像没有没办法在用wimboot启动wim的时候分行写initrd
回复

使用道具 举报

发表于 2019-12-5 15:33:51 | 显示全部楼层
不知yaya或chenall有没有时间增加分行写initrd语句的功能
回复

使用道具 举报

发表于 2019-12-5 19:23:51 | 显示全部楼层
这样PE应该我喜欢的类型,,

我想要一个最小化的PE启动镜像,就像之前我弄的模块化PE 1.X那样.

默认启动是最小化的只包括必要的核心文件, 其它的功能可以自由组合扩展.

不过个人没有太多精力^_^,,就等看看能不能捡个现成的来用.

这个启动wimboot的功能是我添加上去的, 应该是有办法修改支持的,不行的话再加个命令好了.

我这些天抽空再看看能不能实现,好久没有看GRUB4DOS的代码,估计生疏了.

点评

chenall老大不处理下这个pr吗 https://github.com/chenall/grub4dos/pull/219  详情 回复 发表于 2019-12-10 10:48
最小化pe我是直接原pe里砍掉program files目录,再另把目录7z高压缩打包自解压, 然后wimboot进去或等到桌面再提取的,7z释放出来垃圾电脑也很快 要是分行写能实现就方便多了 稍期待一下  详情 回复 发表于 2019-12-5 21:34
回复

使用道具 举报

 楼主| 发表于 2019-12-5 21:34:36 | 显示全部楼层
chenall 发表于 2019-12-5 19:23
这样PE应该我喜欢的类型,,

我想要一个最小化的PE启动镜像,就像之前我弄的模块化PE 1.X那样.

最小化pe我是直接原pe里砍掉program files目录,再另把目录7z高压缩打包自解压,
然后wimboot进去或等到桌面再提取的,7z释放出来垃圾电脑也很快
要是分行写能实现就方便多了
稍期待一下  
回复

使用道具 举报

发表于 2019-12-6 11:14:48 | 显示全部楼层
chenall来了,分行写initrd语句有希望了
回复

使用道具 举报

发表于 2019-12-10 10:48:24 | 显示全部楼层
chenall 发表于 2019-12-5 19:23
这样PE应该我喜欢的类型,,

我想要一个最小化的PE启动镜像,就像之前我弄的模块化PE 1.X那样.

chenall老大不处理下这个pr吗
https://github.com/chenall/grub4dos/pull/219

点评

你给 yaya 发个 PM,或许更快一点。yaya 来这里似乎更频繁一些。  详情 回复 发表于 2019-12-10 12:00
回复

使用道具 举报

发表于 2019-12-10 12:00:15 | 显示全部楼层
wintoflash 发表于 2019-12-10 10:48
chenall老大不处理下这个pr吗
https://github.com/chenall/grub4dos/pull/219

你给 yaya 发个 PM,或许更快一点。yaya 来这里似乎更频繁一些。

点评

发了。 因为我看到yaya在github上最后的活跃时间晚于这个pr的发表时间,我以为yaya没有处理pr的权限呢。  详情 回复 发表于 2019-12-10 13:56
回复

使用道具 举报

发表于 2019-12-10 13:56:53 | 显示全部楼层
不点 发表于 2019-12-10 12:00
你给 yaya 发个 PM,或许更快一点。yaya 来这里似乎更频繁一些。

发了。
因为我看到yaya在github上最后的活跃时间晚于这个pr的发表时间,我以为yaya没有处理pr的权限呢。

点评

抱歉,yaya 有没有权限,这我可不知道。  详情 回复 发表于 2019-12-10 15:10
回复

使用道具 举报

发表于 2019-12-10 15:10:04 | 显示全部楼层
wintoflash 发表于 2019-12-10 13:56
发了。
因为我看到yaya在github上最后的活跃时间晚于这个pr的发表时间,我以为yaya没有处理pr的权限呢。

抱歉,yaya 有没有权限,这我可不知道。
回复

使用道具 举报

发表于 2019-12-10 16:31:44 | 显示全部楼层
我看到了。好像 pts 提供的 NTFS 修正代码还待商榷。我再想一想怎么修改。

linux 工具,如 mkfs.vfat,mkfs.exfat,mkfs.ntfs 等,不能正确地确定 BPB 表的隐藏扇区数,为零。
还有在 MBR,不设置活动分区标记;或将文件系统标识设置为 0。够奇葩的。

点评

是的,我也认为,隐藏扇区数不可以搞错,否则,根本就不能启动。启动代码需要用到隐藏扇区数,如果这个隐藏扇区数是错误的,那就是让启动代码失效。这是微软建立的规范。如果连微软建立的规范都“无视”,那还怎么谈  详情 回复 发表于 2019-12-10 16:45
回复

使用道具 举报

发表于 2019-12-10 16:45:43 | 显示全部楼层
本帖最后由 不点 于 2019-12-10 17:01 编辑
2011yaya2007777 发表于 2019-12-10 16:31
我看到了。好像 pts 提供的 NTFS 修正代码还待商榷。我再想一想怎么修改。

linux 工具,如 mkfs.vfat,m ...

是的,我也认为,隐藏扇区数不可以搞错,否则,根本就不能启动。启动代码需要用到隐藏扇区数,如果这个隐藏扇区数是错误的,那就是让启动代码失效。这是微软建立的规范。如果连微软建立的规范都“无视”,那还怎么谈“支持 FAT”?只能是空头支票了。任何软件,都得尽力遵从规范。不可以让一个遵从规范的软件,去迁就一个故意不遵从规范的软件。软件填入正确的“隐藏扇区数”,是“遵从规范”的举手之劳;没有什么合理的理由来拒绝填入“隐藏扇区数”。

只是随便说说罢了,希望不至于影响到开发者的判断和决定。




顺便说,我以前维护 grub4dos 时的理念,是尽力迁就那些不遵从规范的硬件(BIOS 也算硬件,因为是制造商才能更改的,用户无法更改)。但是,对那些不遵从规范的软件,毫不留情,不予支持——我甚至还可能给它定个“添乱、惹麻烦”的罪名。比如说,某个著名的虚拟机就不能启动 grub4dos。我就不搭理它。因为虚拟机也是软件,是软件你就得好好写,不可以制造不兼容。既然你制造了不兼容,那对不起,我就不支持你。你再怎么 NB,充其量也只是一款软件罢了。你若是硬件,那你真 NB,我不得不甘拜下风,给你磕头,支持你。但你是软件,我就不给你磕头了。



回复

使用道具 举报

发表于 2019-12-12 18:53:28 | 显示全部楼层
不点说的对,grub4dos 应当尽量迁就有 bug 的硬件,而不迁就不遵循规范的软件。

fat, exfat, ntfs 是微软创建的文件系统,应当遵循微软的规定,至少应当适应其习俗。隐含扇区数是一个关键参数,格式化的工具就应当正确地确定他。 mkfs.vfat, mkfs.exfat and mkfs.ntfs 等 Linux 工具,格式化时,既然写磁盘,不可能不确定书写位置,也就是知道分区在磁盘的位置(隐含扇区数),而故意不将其填写到规定位置。

pts 提出一个方案,就是利用从主分区启动时,由 int13/ah=42 传入的 8(%si) 值,替代 bpb 表的隐藏扇区数。
grub4dos 从分区启动时,隐藏扇区数不使用启动分区自有的 bpb 表,却使用一个传入的值,有些怪怪的。
再说,当映射磁盘时,把启动分区复制到 0x7c00,传入驱动器号,跳转到 0x7c00 执行,此时没有执行由 int13/ah=42 ,不会传入隐藏扇区数。

因此,不采纳 pts 提出的方案。已经告知 pts。
回复

使用道具 举报

 楼主| 发表于 2019-12-12 19:26:34 | 显示全部楼层
这么热闹,中午吃着面点开看了看,然后头顶三只乌鸦飞过去了。。。


它们叫着,啊,啊,啊。。
回复

使用道具 举报

发表于 2019-12-15 19:05:29 | 显示全部楼层
使用chenall的2019-9-9的g4d启动xp系统时报如下错误,不知道什么原因?
try(hd0,0):NTFS5:2
try(hd0,1):NTFS5:2
try(hd0,2):NTFS5:No GRLDR
try(hd0,3):invalid or null
no floppy
Cannot Find GRLDR in all drives , press Ctrl+Alt+Del to restart.
以上已经把grldr,grldr.mbr复制到(hd0,0),(hd0,1)了啊?如果找不到grldr怎么会报这个错误呢?
回复

使用道具 举报

发表于 2019-12-16 18:36:33 | 显示全部楼层
使用chenall的2019-9-9的g4d启动xp系统时报如下错误,不知道什么原因?

try(hd0,0):NTFS5:2
返回错误代码2,是指NTFS损坏。含义是读文件标识,或者读属性,或者读某些数据错误。
原因是drub4dos有局限性,尤其是启动代码(由于只有4扇区)。
1. 不支持>1K MFT记录尺寸,>4K索引记录尺寸。
2. 不支持加密文件。
3. 不支持>4K的非驻留属性列表和$BITMAP。
回复

使用道具 举报

发表于 2019-12-19 19:59:56 | 显示全部楼层
本帖最后由 chenall 于 2019-12-31 22:51 编辑

抽了一些时间再读了一下源码.


使用比较简单的方法来实现了这个功能(仅限于使用了"@"符号的语句)

楼主可以试试看有没有什么问题.




点评

[attachimg]407465[/attachimg][attachimg]407467[/attachimg] ok了,射进去的文件也正常,终于不用复制到notepad++去写一长段又要检查了  详情 回复 发表于 2019-12-19 20:20
回复

使用道具 举报

 楼主| 发表于 2019-12-19 20:20:18 | 显示全部楼层
本帖最后由 江南一根葱 于 2019-12-19 20:52 编辑
chenall 发表于 2019-12-19 19:59
抽了一些时间再读了一下源码.
00000000000000000000000.gif
22222.png

ok了,射进去的文件也正常,终于不用复制到notepad++去写一长段又要检查了
回复

使用道具 举报

 楼主| 发表于 2019-12-19 21:16:31 | 显示全部楼层
99999999999999999.png
666 貌似这样写都可以了,,
回复

使用道具 举报

发表于 2019-12-20 09:10:31 | 显示全部楼层
是的,可以看一下代码修改记录,实际上只是添加了几行代码

在保持原有功能的基础上额外作了增强.

目前的方法有一个弊端就是 如果多行initrd
系统内部其实是一直在做数据合并的操作,效率可能会不如单行执行.

如果要分行写目前的建议是 大的文件尽量放在后面.

点评

我下载了grub4dos-0.4.6a-2019-12-20.7z 用其中的grldr替换原来的grldr,菜单保持不变,启动正常,但分行写时,启动报错: Directory entry "PXE" not found Emulating drive 0x81 FATAL: on bootmgr.exe pre  详情 回复 发表于 2019-12-21 09:55
回复

使用道具 举报

发表于 2019-12-21 09:55:14 | 显示全部楼层
本帖最后由 yjqd 于 2019-12-21 09:58 编辑
chenall 发表于 2019-12-20 09:10
是的,可以看一下代码修改记录,实际上只是添加了几行代码

在保持原有功能的基础上额外作了增强. ...

我下载了grub4dos-0.4.6a-2019-12-20.7z
用其中的grldr替换原来的grldr,菜单保持不变,启动正常,但分行写时,启动报错:

Directory entry "PXE" not found
Emulating drive 0x81
FATAL: no bootmgr.exe
press a key to reboot...

分行写菜单如下:
pxe detect
configfile
timeout 5

title 启动Windows8pe用wimboot
kernel /grub4dos/wimboot index=1
initrd @bcd=/grub4dos/bcd
initrd @boot.sdi=/boot/boot.sdi
initrd @bootmgr=/bootmgr
initrd @boot.wim=/WINPE.WIM
boot

注:grldr是bootmgr加载的





点评

多行会多费一两秒的时间,建议这么写 title 启动Windows8pe用wimboot kernel /grub4dos/wimboot index=1 initrd @bcd=/grub4dos/bcd @boot.sdi=/boot/boot.sdi @bootmgr=/bootmgr initrd @boot.wim=/WINPE.WIM  详情 回复 发表于 2019-12-21 20:33
chenall还没有提交到github  详情 回复 发表于 2019-12-21 10:23
回复

使用道具 举报

发表于 2019-12-21 10:23:38 | 显示全部楼层
yjqd 发表于 2019-12-21 09:55
我下载了grub4dos-0.4.6a-2019-12-20.7z
用其中的grldr替换原来的grldr,菜单保持不变,启动正常,但分 ...

chenall还没有提交到github

点评

哦,谢谢 我是在官网下载的 现在在本贴下载试试  详情 回复 发表于 2019-12-21 11:29
回复

使用道具 举报

发表于 2019-12-21 11:29:16 | 显示全部楼层
wintoflash 发表于 2019-12-21 10:23
chenall还没有提交到github

哦,谢谢

我是在官网下载的

现在在本贴下载试试
回复

使用道具 举报

发表于 2019-12-21 20:29:58 | 显示全部楼层
本贴下载的grldr分行写命令成功了
回复

使用道具 举报

 楼主| 发表于 2019-12-21 20:33:15 | 显示全部楼层
yjqd 发表于 2019-12-21 09:55
我下载了grub4dos-0.4.6a-2019-12-20.7z
用其中的grldr替换原来的grldr,菜单保持不变,启动正常,但分 ...

多行会多费一两秒的时间,建议这么写
title 启动Windows8pe用wimboot
kernel /grub4dos/wimboot index=1
initrd @bcd=/grub4dos/bcd @boot.sdi=/boot/boot.sdi @bootmgr=/bootmgr
initrd @boot.wim=/WINPE.WIM
boot


就是觉得写不下了再分行,哈哈

点评

谢谢,我还没仔细观察对比所用时间 看来确如chenall据说分行多了会效率低一些 你测试过大文件放前面没有  详情 回复 发表于 2019-12-21 21:50
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-3-29 04:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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