无忧启动论坛

标题: grub4dos 0.4.6a 新功能,支持lz4解压缩 [打印本页]

作者: chenall    时间: 2015-6-17 15:16
标题: grub4dos 0.4.6a 新功能,支持lz4解压缩
今天上传的版本lz4解压缩功能已经可以正常使用,我使用qemu测试同样的一个32MB镜像用LZMA压缩加载需要45秒,用LZ4只需要12秒,用gz需要19秒.

我把lz4压缩程序也一起传上来,大家可以测试一下.

注: 使用lz4压缩要在grub4dos下使用必须添加--content-size参数
例子
lz4 -9 --content-size test.img test.lz4


LZ4.7z

26.12 KB, 下载次数: 261, 下载积分: 无忧币 -2


作者: wsgdmzr    时间: 2015-6-17 16:12
下载了,谢谢大元帅。
作者: plutoshen    时间: 2015-6-17 16:46
地板?支持老大!
作者: 赤木刚宪    时间: 2015-6-17 19:24
不压缩有没有错对比测试?
作者: saiz    时间: 2015-6-17 20:48
請問要如何使用?
我把中文字型LZ4壓縮
FONT FONT.HEX.LZ4
G4D找不到 沒有載入
把8PE.ISO lz4壓縮
也是出現錯誤 無法載入
作者: chenall    时间: 2015-6-17 21:58
saiz 发表于 2015-6-17 20:48
請問要如何使用?
我把中文字型LZ4壓縮
FONT FONT.HEX.LZ4

1.确认是最新版本的GRUB4DOS
2.确认压缩时有添加--content-size参数.


作者: saiz    时间: 2015-6-17 22:09
本帖最后由 saiz 于 2015-6-17 22:19 编辑

1.我使用20150617 4.6a版
2.我是上網抓LZ4 for WIN的程式來用的
我再試試能不能自己加參數上去
不然就用附件程式再試一次~~
作者: devilma    时间: 2015-6-17 22:34
下载试试先!辛苦了
作者: minmax    时间: 2015-6-18 18:54
本帖最后由 minmax 于 2015-6-18 19:09 编辑

請問解壓的參數,可以舉例下嗎? 能直接覆蓋解壓後同名檔案嗎?
作者: chenall    时间: 2015-6-18 21:58
minmax 发表于 2015-6-18 18:54
請問解壓的參數,可以舉例下嗎? 能直接覆蓋解壓後同名檔案嗎?

lz4是不保存文件名的,解压需要指定文件名
例子:
lz4 -d test.lz4 test.img
作者: pseudo    时间: 2015-6-19 00:02
本帖最后由 pseudo 于 2015-6-19 00:04 编辑

好像快一点点。
lz4压缩比低于gzip和lzma,多占空间,时间上再不快些就没意义了。

这里有两个版本pe:http://pan.baidu.com/s/1o6Fs4Y2,大家可以对比一下效果。
其中new文件夹下的用lz4压缩了部分文件(体积大些),文件名保持跟old文件夹下的一致。

顺便问一下,可以支持zip格式吗?
作者: chenall    时间: 2015-6-19 00:53
pseudo 发表于 2015-6-19 00:02
好像快一点点。
lz4压缩比低于gzip和lzma,多占空间,时间上再不快些就没意义了。

速度是快一些,另外lz4也很适用于用于PXE上,GZ用于PXE就不适合.

LZMA 除非对空间要求比较高,否则不建议使用,压缩解压速度超级慢.

lz4支持大文件,gz是不支持的.

另外据作者说目前的lz4解压速度还有提升的空间.

ZIP支持也要有人写相关代码,我觉得要支持zip应该不难,因为gzip就是和zip差不多的.
作者: plutoshen    时间: 2015-6-19 16:03
老大,有没有32位的lz4?
作者: chenall    时间: 2015-6-19 16:10
plutoshen 发表于 2015-6-19 16:03
老大,有没有32位的lz4?


http://dl.grub4dos.chenall.net/lz4_xp.7z
作者: plutoshen    时间: 2015-6-19 16:16
chenall 发表于 2015-6-19 16:10
http://dl.grub4dos.chenall.net/lz4_xp.7z

谢谢老大,刚才在网上找了半天都找不到,这下解决了。
作者: saiz    时间: 2015-6-20 17:31
想請問一下 如果是ISO檔
如8PE或是ATIH之類的
幾百MB大檔 但LZ4壓縮後只差不到10MB
有需要用LZ4壓縮嗎?速度會變快嗎?
因為我在筆電上試是沒什麼差
但不知是不是在舊電腦上才會有明顯差別
有人測試過嗎?
作者: chenall    时间: 2015-6-20 17:35
saiz 发表于 2015-6-20 17:31
想請問一下 如果是ISO檔
如8PE或是ATIH之類的
幾百MB大檔 但LZ4壓縮後只差不到10MB

如果差点不大的话没有必要压缩.
作者: roytam1    时间: 2015-6-20 23:09
對應LZ4 HC不?
作者: chenall    时间: 2015-6-21 10:58
roytam1 发表于 2015-6-20 23:09
對應LZ4 HC不?

应该是不支持,
作者: plutoshen    时间: 2015-6-21 15:51
saiz 发表于 2015-6-20 17:31
想請問一下 如果是ISO檔
如8PE或是ATIH之類的
幾百MB大檔 但LZ4壓縮後只差不到10MB

确实,我压缩了几个iso文件都没见减小,倒是压缩word文档和文本文件能减小50%体积。
作者: gy0715    时间: 2015-7-1 09:35
pseudo 发表于 2015-6-19 00:02
好像快一点点。
lz4压缩比低于gzip和lzma,多占空间,时间上再不快些就没意义了。

没用过一拖一格,请教下P大,这个是什么问题?



作者: pseudo    时间: 2015-7-2 12:15
本帖最后由 pseudo 于 2015-7-2 12:17 编辑

不按键就好了。
new文件夹那个版本按键会出错。

在用cat --length=0命令取文件尺寸时,旧版grub4dos取的是未解压尺寸,而新版取的是解压后尺寸——游戏规则变了,估计就是新版grub4dos的这个变动造成的问题。

又,应该把iso弄进ud里(扩展区),免得虚拟机里找不到iso。
作者: wangxiongfang    时间: 2015-7-2 15:58
好长时间没上网,今天别处偶上,看到又出新版,功能更强大了。老大辛苦了。
本来想多打点字,可惜拼音用不惯,半天也没打出几个字。下次有空再提点意见。
作者: 三尺忧伤    时间: 2015-7-2 22:02
好久没来这里研究了,看看。
作者: james168    时间: 2015-7-3 13:13
这个用在 pxe 下很不错,支持下。
作者: yjqd    时间: 2015-7-4 17:27
“我使用qemu测试同样的一个32MB镜像用LZMA压缩加载需要45秒,用LZ4只需要12秒,用gz需要19秒”,请问一下这句的意思是不是把PE的镜像文件用lz4压缩后,启动PE要快一些,比如我的启动文件是WIN8PE.WIM,用lz4.exe压缩成WIN8PE.LZ4,然后修改GRLDR中的启动文件WIN8PE.WIM为WIN8PE.LZ4,PE启动时就加载WIN8PE.LZ4,是这样的吗?
作者: cszwin    时间: 2015-8-9 10:03
太好了 感谢
作者: pseudo    时间: 2015-8-9 14:14
报告一个问题。

1、附件可以生成iso,在qemu启动测试器中作为光盘镜像可正常运行到彩色菜单界面出现。
grldr版本是grub4dos-0.4.6a-2015-05-18.7z。

2、更新grldr到grub4dos-0.4.6a-2015-08-07.7z,同等条件下,则运行到批处理MKGRUB.BAT中语句
(hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE
时报错:

(有点像#21楼的图,但这里没用到lz4压缩)

但接着回车进入grub命令行,无论直接执行语句
(hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE
还是执行批处理/MKGRUB.BAT均正常。

3、MKGRUB.BAT内容是:
!BAT
echo (hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE
(hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE || pause && commandline
为便于修改,该文件放在iso内根目录下。

4、5.18之后的其它版本未运行到批处理MKGRUB.BAT就在其它问题上报错,不深究了。
感觉引入lz4后的g4d版本就不能正常启动0pe了。

test.7z

1.77 MB, 下载次数: 11, 下载积分: 无忧币 -2


作者: chenall    时间: 2015-8-10 09:22
pseudo 发表于 2015-8-9 14:14
报告一个问题。

1、附件可以生成iso,在qemu启动测试器中作为光盘镜像可正常运行到彩色菜单界面出现。

你附件的是05-18的,要怎么快速更新GRLDR?

直接复制GRLDR替换不行.
作者: pseudo    时间: 2015-8-10 10:13
本帖最后由 pseudo 于 2015-8-10 13:06 编辑
chenall 发表于 2015-8-10 09:22
你附件的是05-18的,要怎么快速更新GRLDR?

直接复制GRLDR替换不行.

我用帖子
http://bbs.wuyou.net/forum.php?m ... 9221&extra=page%3D1
提供的FbinstTool_1.607.2015.203.exe,通过
“工具-更新grldr-选择...”
菜单项对5.18的grldr文件直接进行自动联网版本更新,它保持内置菜单不变。

启动过程会调用MKGRUB.BAT,它在DIY文件夹下(即iso的根目录),内容可改,以便调试。

修改grldr和MKGRUB.BAT后,用现成批处理重新生成iso,用
http://bbs.wuyou.net/forum.php?m ... 5197&highlight=qemu
提供的qemu启动测试器测试光盘镜像。

5.18之后的其它版本未运行到批处理MKGRUB.BAT就在其它问题上报错,不深究了。主要关注8.7版跟5.18版在执行语句
(hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE
时的差异。

会不会是某种资源不足所致?
------------------------------------------------
又试了一下,8.7版这样子正常:
MKGRUB.BAT内容改为:
  1. !BAT
  2. /M.BAT
复制代码

M.BAT内容为:
  1. !BAT
  2. echo (hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE
  3. (hd-1,0)/BIN/FAT mkfile size=330803 (hd-1,0)/GRUB.EXE || pause && commandline
复制代码

文件M.BAT与MKGRUB.BAT并列存放。

作者: minmax    时间: 2015-8-15 19:05
grub> lz4 -9 --content-size test.img test.lz4
1.确认是最新版本的GRUB4DOS
2.确认压缩时有添加--content-size参数.
ERROR 13 error 13: invalid or unsupported executable format
作者: chenall    时间: 2015-8-16 17:07
minmax 发表于 2015-8-15 19:05
grub> lz4 -9 --content-size test.img test.lz4
1.确认是最新版本的GRUB4DOS
2.确认压缩时有添加--conte ...

这个和lz4无关,你用什么压缩都是一样的提示..

这个提示是提示命令错误.看你的命令是不是有写错了.或者你把这个IMG文件当成一个命令来执行了?
作者: pseudo    时间: 2015-8-30 12:39
本帖最后由 pseudo 于 2015-8-30 12:41 编辑

@chenall
关于28楼的问题。
我是用FbinstTool_1.607.2015.203.exe的“工具-更新grldr”功能来更新grldr(自动保持内置菜单)的,受fbinsttool影响,我疏忽了:
1、FbinstTool里给出的5.18版是0.4.5c的而非0.4.6a的,所以28楼附件实际用的是0.4.5c的5.18版。
2、FbinstTool里有些版本没列出供选择,所以我把分界线弄错了。

正确说法应该是:对于0.4.6a
6.5版完全正常,
6.9版至7.16版异常,表现为读lzma文件错。盖因6.9开始引入lz4压缩,影响了lzma读取,至7.24版才修复读lzma问题。
7.24版至8.25版虽然读lzma不错,但出现28楼问题未解决。

这样,从6.9版起至8.25版,grldr都不能正常启动0pe。28楼附件对0pe做了简化,更换不同版本grldr(内置相同菜单)就能重现问题。

对于fbinsttool的“工具-更新grldr”中未列出的grldr版本,要编辑内置菜单的话,可以点fbinstool的“grldr菜单”,然后拖grldr到fbinsttool窗口即可编辑。
借助fbinsttool对不同grldr的内置菜单的全选、复制、粘贴、右键保存功能,可以达到更换grldr版本而保持内置菜单不变的目的。
作者: 不点    时间: 2015-8-30 20:49
本帖最后由 不点 于 2015-8-30 20:56 编辑

28 楼的错误,有可能是 FAT 外部命令的 bug(比如说,源代码里面有某些 global 的变量忘了加上 static 变成静态局部变量;或者还有别的什么 bug)。也有可能是内存分配和释放(malloc 和 free)引起的 bug。

注意:bug 可能是隐蔽的,而排解 bug 也是相当不容易的。FAT 命令在旧版上能正常运行,并不能证明它是“健壮”的。它在新版下不能正常运行,有可能暴露出它的 bug 来。我并不是断定 FAT 有 bug,而是说,不要忽略了这种可能性。


作者: zzz654321    时间: 2015-9-17 11:08
本帖最后由 zzz654321 于 2015-9-17 11:11 编辑

20150915 版本的 g4d, splashimage 不能使用了, 错误 13, 无效的执行格式?
麻烦看看
如果可以用, 请提供一个 OK 的 xpm 文件. 谢谢
作者: star    时间: 2015-10-2 13:39
grub4dos-0.4.6a-2015-09-15 测试加载 lz4压缩的img,vhd文件成功。
但grub4dos-0.4.6a-2015-09-15加载(map --mem ) 无压缩的img,vhd支持有问题,加载完成直接重启。换回0.4.5a版本正常成功加载img,vhd。
作者: hhh333    时间: 2015-10-14 11:21
反映一个问题,我把最新版10.12号的,改名放boot\h3_grdos.bin,并改内置菜单如下:
  1. pxe detect
  2. configfile /BOOT/H3_GRDOS.LST || configfile /boot/h3_grdos.lst
  3. default 0
  4. timeout 1

  5. title find /BOOT/H3_GRDOS.LST
  6.         errorcheck off
  7.         if "%@root%"=="(ud)" && calc *0x82A0=*0x82b9&0xff
  8.         if "%@root:~1,1%"=="f" find --set-root --devices=f /BOOT/H3_GRDOS.LST && configfile /BOOT/H3_GRDOS.LST
  9.         find --set-root --ignore-floppies --ignore-cd /BOOT/H3_GRDOS.LST && configfile /BOOT/H3_GRDOS.LST
  10.         #----U+DEEPHIDE----
  11.         set /a boot=*0x8280&0xffffffff
  12.         dd if=(%boot%)96+1 of=(md)0x200+1 bs=1 count=8 skip=502
  13.         set /a pe=*0x40000&0xffffffff  && set /a ps=*0x40004&0xffffffff
  14.         map (%boot%)%pe%+%ps% (fd3)
  15.         map --hook
  16.         set pe= && set ps= && set boot=
  17.         rootnoverify (fd3) && configfile /BOOT/H3_GRDOS.LST
  18.         errorcheck on
  19.         commandline
  20. title commandline
  21.         commandline
  22. title reboot
  23.         reboot
  24. title halt
  25.         halt
复制代码


再在iPXE菜单中作如下:
  1. :dostools
  2.   chain http://${next-server}/BOOT/H3_GRDOS.BIN || goto failed
  3.   goto start
复制代码


发现它没有执行我的/BOOT/H3_GRDOS.LST菜单,而是直接执行了根下的menu.lst默认菜单,没搞清楚是怎么回事?

作者: 不点    时间: 2015-10-14 12:02
当 grldr 是以 pxe 的方式启动时,pxe detect 命令,会去执行服务器端的 menu.lst 文件。


作者: hhh333    时间: 2015-10-14 17:55
本帖最后由 hhh333 于 2015-10-14 17:58 编辑
不点 发表于 2015-10-14 12:02
当 grldr 是以 pxe 的方式启动时,pxe detect 命令,会去执行服务器端的 menu.lst 文件。


那就去掉这一句可好?默认菜单里为什么要有这么一句,本来是网启的,没有这一句会有问题吗?
作者: 不点    时间: 2015-10-14 18:11
hhh333 发表于 2015-10-14 17:55
那就去掉这一句可好?默认菜单里为什么要有这么一句,本来是网启的,没有这一句会有问题吗?

去掉了行不行,你自己可以试验啊。

你甚至可以把菜单清空。

你可以用各种方式来测试菜单中的每条命令的作用。

开发者给出的默认菜单,那是供大家在各种场合使用的。

假如你对此不满意,你想改进,那么,你就要付出代价。

这代价,便是你需要耗费时间来进行尝试或调试。

假如你把能用的菜单改成不能用的菜单了,那么,你就是失败。

于是你知道你错了。于是你知道正确的做法是什么了。


作者: hhh333    时间: 2015-10-14 18:46
本帖最后由 hhh333 于 2015-10-14 20:24 编辑

去掉了就不行,找不到PXE上的菜单,我想执行它又要用我的菜单有什么办法?


自己答一下:这个很简单,通过查阅帮助文档
pxe detect nul
configfile /BOOT/H3_GRDOS.LST || configfile /boot/h3_grdos.lst

作者: 2012_willylin    时间: 2016-2-28 02:14
本帖最后由 2012_willylin 于 2016-2-29 15:20 编辑
chenall 发表于 2015-6-19 16:10
http://dl.grub4dos.chenall.net/lz4_xp.7z

chenall大大
一樓的 LZ4我看也不是 x64的阿 size 6264 bytes
我在Windows 7 x86也可以執行阿
這個lz4_xp 較大 161280bytes
還是說是XP少了某些.dll 所以這個包了runtime dll才比較大!?


試出來了 我在某Windows 10 PE下 執行 lz4.exe會提示缺檔 在Windows 7一般系統下不會
Microsoft Visual C++ 可轉散發套件 2012
少MSVCR110.dll
lz4_xp那個我想應該是有多包了這個吧


lz4.png (35.19 KB, 下载次数: 177)

lz4.png

作者: devilma    时间: 2016-3-19 00:03
标记一下先。。。。。
作者: yunyan100    时间: 2017-7-3 16:12
chenall老大,你好,我在用坛子里的两份个run启动ISO,也直接以grub4dos菜单启动iso,现在有个问题反应下,就是关于直接启动iso的问题,一部分pe系统没问题,现在通过他们的run取得ISO表或者直接grub启动,beini系列,xiaopang系列,veket系列,还有bt系列,全部有问题,beini是无法加载到扩展程序,直接以系统本身启动,xiaopang直接卡在启动界面,veket是无法找到qrqy888.sfs,bt也都是卡在启动界面,这些都是ISO文件,都无法完整启动,不知道是不是grub的最终原因? 用的是grub4dos 0.4.6.a,

作者: kailern    时间: 2019-10-12 11:17
chenall大牛,我使用ntldr->boot.ini启动时,在boot.ini中增加启动项C:\grldr="Grub4Dos"后,内置菜单怎么无法启动啊?想把grldr改名可以吗?
作者: liwei_show    时间: 2020-1-25 18:31
谢谢楼主分享
作者: wpyjp    时间: 2021-9-24 16:14
收藏




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3