squashfs文件系统初识

squashfs其实对于我们来说并不陌生,live cd或是安装cd都是我们学习linux必经的一步。
本人接触这个文件系统是对安装盘的认识开始的。以asianux2.0或3.0为例,同理可以用于
一切red hat发行版。
squashfs 是在linux下将目录或文件打包成只读文件系统。如果你想实现压缩的话,需要kernel
的支持,请访问如下链接:
http://www.squashfs-lzma.org/
以下是官方的对其特性的描述:

  • Data, inodes and directories are compressed.
  • Squashfs stores full uid/gids (32 bits), and file creation time.
  • Files up to 2^64 bytes are supported. Filesystems can be up to 2^64 bytes.
  • Inode and directory data are highly compacted, and packed on byte boundaries. Each compressed inode is on average 8 bytes in length (the exact length varies on file type, i.e. regular file, directory, symbolic link, and block/char device inodes have different sizes).
  • Squashfs can use block sizes up to 1Mbytes (the default size is 128K). Using 128K blocks achieves greater compression ratios than the normal 4K block size.
  • File duplicates are detected and removed.
  • Both big and little endian architectures are supported. The mksquashfs program can generate filesystems for different endian architectures for cases where the host byte ordering is different to the target. This is useful for embedded systems.

squashfs可完整的存储uid/gid和文件建立的时间。支持2的64次方byte的文件。可以指定block大小来打包。
另外LZMA还有一个权威的表格beachmark.
此处我们不谈LZMA,只谈squashfs能起到什么作用。
在安装盘的根目录里,有这么一个文件/images/stage2.img
$ file stage2.img
stage2.img: Squashfs filesystem, little endian, version 3.0, 68102631 bytes, 4938 inodes, blocksize: 65536 bytes, created: Wed Aug 29 16:58:29 2007
$ sudo mount -t squashfs -o loop stage2.img stage2
$ du -sh stage2
175M    stage2
$ du -sh stage2.img
66M    stage2.img
$ ls
etc lib modules proc usr var
这就是我们的安装程序的运行根目录!包括安装程序anaconda.busybox等程序。
这个东西最大的作用就是其只读,不管你是什么用户,所有的文件和目录都是只读的。
如果你想实现自己的东西不被修改,那么就用这个文件系统吧。
如果想将自己的发行版做成live-cd的话,请将你的内核打上支持LZMA的patch.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值