无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5609|回复: 17
打印 上一主题 下一主题

[求助] bug报告:加载NTFS分区的压缩文件出错

[复制链接]
跳转到指定楼层
1#
发表于 2016-11-6 21:33:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 pky317 于 2016-11-7 12:34 编辑

补充:1.下面提到的 启用压缩 是指用NTFS文件系统本身的压缩选项对文件进行压缩。
2.图片中显示的出错信息是加载到57xxMB后才出现的。
3.ramos.img的制作:用ImDisk新建12GB的空白文件并挂载、格式化,用WimTool将本机系统制作成wim文件,再将wim文件解开到12GB空白文件挂载的盘符中,这样可以保持系统的软、硬链接文件不被破坏。

利用FiraDisk制作了一个win7 32位内存系统,系统没有精简,保存在一个12GB的img格式的分区镜像里,文件名为ramos.img,ramos.img保存在NTFS分区里,在启用压缩前,ramos.img是可以正常加载到内存的,启用压缩后,加载出错,如下图所示。


压缩后的ramos.img没有损坏(md5值不变),分区镜像ramos.img采用的文件系统是NTFS,没有启用压缩,里面的软、硬链接文件没有破坏,文件约占用6.26GB,对ramos.img启用压缩后,ramos.img约占用4.11GB。经测试,和软、硬链接以及文件大小应该是没关系的,曾试过往ramos.img复制几十个视频文件,超过6.5GB,实测压缩后可以正常加载,空白的被NTFS压缩的ramos.img也可以正常加载。请老大们看看怎么回事,指点一下。

顺便给开发的老大提个建议:在加载lz4压缩格式的文件时,最好能同时打印加载进度,这样看着叫人心里暖和,情绪也稳定,如果只有一个光标在闪,文件大了,心里抓狂啊!
2#
发表于 2016-11-6 23:14:19 | 只看该作者
本帖最后由 不点 于 2016-11-6 23:17 编辑

我没看明白,不知道理解得对不对。

你是说 “ramos.img 用 NTFS 文件系统本身的压缩选项进行压缩” 吗?我这样理解对不对?

要知道,grub4dos 自身的 NTFS 驱动程序是不支持 NTFS 压缩的,因此,你这个方案是不可行的。

说明白点:grub4dos 不支持 NTFS 上的 “NTFS 压缩文件”。这么说很别扭,但只能这么说,才可以区别于其它压缩手段(比如 gz 或 lzma 之类的)。

关于 lz4 解压进度条丢失的问题,你再确认一下,你自己是否设定了 debug off 屏蔽输出结果?如果你最终证实确实有问题,可以向 chenall、yaya 报告 bug。

点评

我说的正是用 NTFS 文件系统本身的压缩选项对ramos.img进行压缩,经测试,grub4dos是可以支持 NTFS 上的 “NTFS 压缩文件”的,至少对分区镜像文件(按扇区1:1复制的img格式)是支持的,我的一台老机使用的是XP内存系  详情 回复 发表于 2016-11-7 01:17
回复

使用道具 举报

3#
 楼主| 发表于 2016-11-7 01:17:27 | 只看该作者
不点 发表于 2016-11-6 23:14
我没看明白,不知道理解得对不对。

你是说 “ramos.img 用 NTFS 文件系统本身的压缩选项进行压缩” 吗? ...

我说的正是用 NTFS 文件系统本身的压缩选项对ramos.img进行压缩,经测试,grub4dos是可以支持 NTFS 上的 “NTFS 压缩文件”的,至少对分区镜像文件(按扇区1:1复制的img格式)是支持的,我的一台老机使用的是XP内存系统,用的grub4dos版本是grub4dos-0.4.5c-2012-10-02,这个版本就已经可以正常加载用NTFS文件系统本身的压缩选项进行压缩的分区镜像文件了,不过这个版本在加载 用win7格式化的NTFS分区并启用压缩选项压缩的 分区镜像文件时,会提示找不到文件,最新的grub4dos-0.4.6a-2016-09-20版本不存在这个问题,我测试过,最新版本在加载启用NTFS压缩选项压缩的 空白的ramos.img或复制了几十个视频文件约6.5GB的ramos.img 都是成功的。
lz4解压确实没有进度条,我另发个帖子报告一下。
回复

使用道具 举报

4#
 楼主| 发表于 2016-11-7 01:27:59 | 只看该作者
之所以想对 分区镜像文件ramos.img启用NTFS压缩选项进行压缩,是因为压缩过的ramos.img在加载时,当加载到ramos.img中未被使用的空白空间时,速度非常快。
回复

使用道具 举报

5#
发表于 2016-11-7 09:19:39 | 只看该作者
很抱歉,是我弄错了。刚才看了 bean 的 fsys_ntfs.c 的代码,了解到 grub4dos 支持 “NTFS 压缩文件”。

但是我怀疑解压的代码存在 bug,因此,你遇到失败的情况。

解决办法:

1、报告 bug,看看开发者能否解决。

2、作为一个 workaround,避免采用 NTFS 压缩,而使用 lzma 压缩。

点评

多谢关注! 原来使用XP内存系统时,不但ramos.img这个文件启用NTFS压缩,ramos.img包含的整个NTFS分区也启用NTFS压缩,直接chainloader /ntldr启动系统,使用一直正常。 先报告bug吧,不行就用其它压缩方式。  详情 回复 发表于 2016-11-7 10:03
回复

使用道具 举报

6#
 楼主| 发表于 2016-11-7 10:03:37 | 只看该作者
不点 发表于 2016-11-7 09:19
很抱歉,是我弄错了。刚才看了 bean 的 fsys_ntfs.c 的代码,了解到 grub4dos 支持 “NTFS 压缩文件”。

...

多谢关注!
原来使用XP内存系统时,不但ramos.img这个文件启用NTFS压缩,ramos.img包含的整个NTFS分区也启用NTFS压缩,直接chainloader /ntldr启动系统,使用一直正常。
先报告bug吧,不行就用其它压缩方式。
回复

使用道具 举报

7#
发表于 2016-11-7 10:22:09 | 只看该作者
话说楼主为啥要用这种方法来压缩?用VDM加载ramos.img到某个盘符例如X:,然后对X:盘启用NTFS压缩,卸载后,用wincontig整理ramos.img,再用grub4dos加载,不就行了吗?NTFS压缩比也能达到70%左右。

点评

对ramos.img压缩,是为了加快加载ramos.img的速度。如果不对ramos.img启用NTFS压缩,加载ramos.img时,无论加载的位置是否有数据,加载的速度都是一样的。 --- 之所以想对 分区镜像文件ramos.img启用NTFS压缩  详情 回复 发表于 2016-11-7 10:32
回复

使用道具 举报

8#
 楼主| 发表于 2016-11-7 10:32:39 | 只看该作者
liuzhaoyzz 发表于 2016-11-7 10:22
话说楼主为啥要用这种方法来压缩?用VDM加载ramos.img到某个盘符例如X:,然后对X:盘启用NTFS压缩,卸载后, ...

对ramos.img压缩,是为了加快加载ramos.img的速度。如果不对ramos.img启用NTFS压缩,加载ramos.img时,无论加载的位置是否有数据,加载的速度都是一样的。

---
之所以想对 分区镜像文件ramos.img启用NTFS压缩选项进行压缩,是因为压缩过的ramos.img在加载时,当加载到ramos.img中未被使用的空白空间时,速度非常快。
回复

使用道具 举报

9#
发表于 2016-11-7 10:48:22 | 只看该作者
本帖最后由 liuzhaoyzz 于 2016-11-7 10:50 编辑

我所说的方法就是能够减小ramos.img的大小的呀,也是压缩的。我说的方法,我自己都是这样子玩的。建立一个新的ramos2.img,VDM加载到X盘,格式化,启用NTFS压缩,把ramos.img里面的文件拷贝过来就是了。

点评

我是指对ramos.img这个文件本身启用NTFS压缩,而不是对ramos.img这个文件所包含的NTFS文件系统启用NTFS压缩,如果对ramos.img这个文件所包含的NTFS文件系统启用NTFS压缩,是不影响ramos.img这个文件本身的大小的。  详情 回复 发表于 2016-11-7 11:14
回复

使用道具 举报

10#
 楼主| 发表于 2016-11-7 11:14:40 | 只看该作者
liuzhaoyzz 发表于 2016-11-7 10:48
我所说的方法就是能够减小ramos.img的大小的呀,也是压缩的。我说的方法,我自己都是这样子玩的。建立一个 ...

我是指对ramos.img这个文件本身启用NTFS压缩,而不是对ramos.img这个文件所包含的NTFS文件系统启用NTFS压缩,如果对ramos.img这个文件所包含的NTFS文件系统启用NTFS压缩,是不影响ramos.img这个文件本身的大小的。
回复

使用道具 举报

11#
发表于 2016-11-7 12:40:44 来自手机 | 只看该作者
对ramos.img里面的文件压缩后,占用空间变小,可以新建个更小的ramos2.img代替原来的ramos.img,论坛里大家不都是这么玩的?

点评

谢谢这个答复,这次还真的有点明白了。如果 pky317 也这么做,就可以躲过 grub4dos 在访问压缩的 ntfs 文件时的 bug 了。  详情 回复 发表于 2016-11-7 15:29
我不是这么玩的。  发表于 2016-11-7 12:58
回复

使用道具 举报

12#
发表于 2016-11-7 15:29:56 | 只看该作者
liuzhaoyzz 发表于 2016-11-7 12:40
对ramos.img里面的文件压缩后,占用空间变小,可以新建个更小的ramos2.img代替原来的ramos.img,论坛里大家 ...

谢谢这个答复,这次还真的有点明白了。如果 pky317 也这么做,就可以躲过 grub4dos 在访问压缩的 ntfs 文件时的 bug 了。

点评

liuzhaoyzz的做法有个问题,就是内存系统盘的空间太小,有时临时下载东西或安装软件不方便。 刚才按照liuzhaoyzz的做法,新建一个6GB的ramos.img作为内存盘,win7系统文件经NTFS压缩后有1.2GB剩余空间,不过还是  详情 回复 发表于 2016-11-7 20:07
回复

使用道具 举报

13#
 楼主| 发表于 2016-11-7 20:07:40 | 只看该作者
不点 发表于 2016-11-7 15:29
谢谢这个答复,这次还真的有点明白了。如果 pky317 也这么做,就可以躲过 grub4dos 在访问压缩的 ntfs 文 ...

liuzhaoyzz的做法有个问题,就是内存系统盘的空间太小,有时临时下载东西或安装软件不方便。

刚才按照liuzhaoyzz的做法,新建一个6GB的ramos.img作为内存盘,win7系统文件经NTFS压缩后有1.2GB剩余空间,不过还是不行,只要对ramos.img这个文件启用NTFS压缩,加载时就会出错,这次是加载到55xxMB后出错,差几百MB就加载完了,可能是在处理未使用的空白空间时出问题的。
先采用lz4压缩,期待问题可以解决。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-13 17:14

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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