特别说明哦:我的日志都是自己写的,完全是自己写的,完全没有转载的,可别以为我是转载的哦
这里的文章除特别说明的以外,全部使用《知识共享 署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议》进行许可,不可以盗用哦

用 fusecompress 压缩 LiveUSB 上的文件

| |
[夜晚 2009年12月15日 23:11 | by gs ]

fusecompress 是个好东西,它可以用来透明地压缩磁盘上的文件,而且支持多种压缩方法和压缩等级。我已经把我的桂林计算姬上使用 Dropbox 同步的文件夹压缩过了,这样可以减小网络开销,ADSL的上行是很杯具的。反正我在 Dropbox 上的文件都是不用共享的,纯粹自己用,所以不存在麻烦别人的问题。

好,进入正题。我有一个4G的读卡器,在上面弄了一个 LiveUSB,直接安装 Ubuntu 9.10,但是 Ubuntu 在上面只有3G的空间可以使用,包括家目录。因为我只有这一个U盘,所以需要留出1G的空间用来储存需要动来动去的文件,学校的电脑清一色的 Windows,连实验考试都要求只能运行在 Windows 平台上,这是什么计算机系啊。

3G的空间放一个系统和家目录那算是非常小的了,所以压缩文件系统就成了一个不错的选择。另外,对于一些压缩率较高的文件,使用压缩文件系统以后可以减少磁盘开销。特别是对于存取速度较低的磁盘,效果更佳。比如我这个读卡器+4G的SD卡用 hdparm 测出来的速度就只有11MB左右。

首先要压缩的就是家目录,家目录下的配置文件还有一些鬼鬼怪怪的文件可压缩性还是不错的。我在 /home 目录下创建了一个 .gs 文件夹,然后挂载上压缩文件系统,再把当前 /home/gs 目录下的文件全部复制进去,之后修改 fstab,重启,完毕之后,成功了,家目录成功挂载,压缩文件系统工作正常。

接下来要压缩的是操作系统的文件,位于 /usr 目录下。/usr 目录下有两个目录是大头,两个目录加起来的大小超过了1G,而压缩率可高达0.5,如果压缩的话就又能省下至少500MB的空间了。这对我3G的 LiveUSB 空间来说那是相当可观的。

这两个目录是 /usr/lib 和 /usr/share。其实相对来说 lib 目录下的文件可压缩性比 share 目录下的文件要高,不过两个平均起来大约也就是0.5的压缩率。还是按照压缩家目录的方法,在 /usr 目录下创建两个文件夹分别命名为 .lib 和 .share,然后把这两个文件夹挂载到压缩文件系统上,接着把当前的 /usr/lib 和 /usr/share 目录下的文件分别复制到 .lib 和 .share 里,最后去修改 fstab。

重启之后,运行正常,压缩率也很不错,现在我的 LiveUSB 上已经有了超过1G的空间,而在没有使用压缩文件系统之前只有600多M的空间。这样活生生多出了半个G的空间,真是不错啊。

压缩前后我的 /usr/lib 和 /usr/share 总大小的对比:

压缩前: 1.6G

压缩后: 768.2M

(哎呀竟然压出了将近1G的空间,说实话要不是刚刚查看的目录大小,我还真没发现压出了那么多空间呢)

其实整个过程没有那么顺利的,在 LiveUSB 上弄这个压缩文件系统消耗了我一天的时间,本来我是想压缩整个 /usr 目录,但是在实践过程中发现不可行,遇到了很多小问题,但结果都是在加载 fstab 的时候没法把 /usr 给顺利挂载上,于是整个系统都启动不了。话说回来,消耗的时间都是在复制文件上面了,因为只有3G的空间,我不得不把没压缩的 /usr 和已经压缩的 /usr 在SD卡和本地硬盘之间来回倒腾,而XFS文件系统对操作小文件似乎速度不怎么样……于是大部分时间都浪费在复制文件上了。

期间遇到的重要问题有下面这些

fusecompress 找不到动态库

我在安装 fusecompress 的时候是安装在 /usr 下面的,所以 fusecompress 需要的动态库也在 /usr/lib 下面。而现在的情况是,我需要使用 fusecompress 来挂载 /usr/lib,这样就弄出了一个类似悖论的东西来……不过这个好解决,使用 ldd 命令查看 fusecompress 依赖哪些动态库,然后把这些动态库复制到 /lib 目录下,这样 fusecompress 就能在 /lib 目录下找到所需的动态库,然后乖乖地去挂载 /usr/lib 了。

本来我还想压缩 /var 和 /bin 以及 /usr/bin 的,不过似乎这几个目录下面都有在加载 fstab 之前需要使用的文件,所以不能把这几个目录弄成压缩的了。虽然 fusecompress 的作者在项目主页上说他成功地在 OpenSUSE 上把整个根目录都压缩了,但是却使用了一些比较哔——的手段,而且也不建议我们在工作电脑上使用。其实最重要的是……他没有给出具体的哔——手段的细节……

但是这样已经足够了,压缩了家目录和两个“冤大头”,已经腾出了不少空间,能榨出这么多的空间来我已经暂时满足了,嗯嗯。

至于 fusecompress 的使用似乎没有多少中文说明,改天我写个详细点的 fusecompress 如何使用的文。特别是,如何在 fstab 中使用 fusecompress。目前网上给出的方法是不可用的,至少我这里是不可用的,根源是 fuse 传给 fusecompress 的参数顺序,让 fusecompress 傲娇了。



请给这篇日志评个分吧!
  • Currently -4/9
  • 1
    -4
  • 2
    -3
  • 3
    -2
  • 4
    -1
  • 5
    0
  • 6
    1
  • 7
    2
  • 8
    3
  • 9
    4

现在的分数: -4 分,共1个评分

Tags: , , ,
科学最有爱 » 技术向 | 评论(2) | 引用(0) | 阅读(471)
白水山言 Email
2009年12月17日 09:29

ピア

gs 回复于 2009年12月17日 22:19

ツンデレになった

白水山言 Email
2009年12月16日 11:43

把0.5看成0.5%了

gs 回复于 2009年12月16日 22:51

正所谓,恋でいる人はバカです

分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               
请不要填写这个空,这个空是一个垃圾广告陷阱,如果你填写了这个空,你的留言将无法发表
请在下面的文本框填写评论内容

验证码 不区分大小写