
Ubuntu日本語フォーラム

ログインしていません。
siraseです。
Ubuntuデスクトップ版のISOイメージファイル内に含まれているfilesystem.squashfsについてです。
このファイルはUbuntuシステム全体をmksquashfsコマンドによって圧縮したものだと
認識しているのですが、疑問があります。
1. filesystem.squashfsを自分でunsquashfsコマンドで展開
2. 展開したディレクトリに一切変更を加えずmksquashfsコマンドで再度圧縮しなおし
とやると、元々のオリジナルのfilesystem.squashfsと同じ容量になるはずだと思うのですが
自分で再圧縮したfilesytstem.squashfsの方がかなり容量が大きくなると思います。
その上、それぞれのfilesystem.squashfsでUSB bootすると起動速度が二倍ぐらい違って
オリジナルの容量が小さい方が高速に起動できます。
Ubuntu公式のfilesystem.squashfsはどのように作られているのでしょうか?
圧縮率が違うので、mksquashfsコマンドのオプションで何か特別なパラメータを指定しているのでしょうか?
以上、ご教示のほどよろしくお願い致します。
オフライン
レスつかないようなのでもう少し詳細を。
Linux mintのISOイメージ内のfilesystem.squashfsを例に出します。
元ファイル
linuxmint-13-mate-dvd-32bit.iso
$ sudo apt-get install squashfs-tools $ sudo mkdir /media/iso $ sudo mount -o loop,ro ./linuxmint-13-mate-dvd-32bit.iso /media/iso $ sudo unsquashfs -d edit /media/iso/casper/filesystem.squashfs $ sudo mksquashfs edit ./filesystem.squashfs
というように、filesystem.squashfsファイルを伸長(unsquashfs)した後すぐ何も変更せずに
圧縮(mksquashfs)したのですが、結果が下記のようになりました。
$ du -sh /media/iso/casper/filesystem.squashfs 869M /media/iso/casper/filesystem.squashfs $ du -sh ./filesystem.squashfs 1019M ./filesystem.squashfs
このようにだいぶファイルサイズが大きくなってしまうのです。
なぜでしょうか?どうすればオリジナルと同じサイズになりますか?
おそらくmksquashfsコマンドのオプションの付け方なのかなと思うのですが
どうやって調べればよいやらと・・・。
そのものズバリの回答でなくても、何か少しでもヒントになりそうな事がわかる方
どうかコメントをよろしくお願い致します。
オフライン
私の環境(Ubuntu 12.04)では、サイズは殆ど変わらないです。
詳しい事は分からないです。
$ sudo mount ubuntu-13.04-desktop-i386.iso /mnt $ sudo unsquashfs -d /tmp/hoge /mnt/casper/filesystem.squashfs $ sudo mksquashfs /tmp/hoge /tmp/hoge.squashfs $ ls -l /mnt/casper/filesystem.squashfs /tmp/hoge.squashfs -r--r--r-- 1 root root 794050560 Apr 25 02:11 /mnt/casper/filesystem.squashfs -rw-r--r-- 1 root root 794284032 Jul 3 01:42 /tmp/hoge.squashfs $ unsquashfs -s /mnt/casper/filesystem.squashfs Found a valid SQUASHFS 4:0 superblock on /mnt/casper/filesystem.squashfs. Creation or last append time Thu Apr 25 02:11:40 2013 Filesystem size 775437.94 Kbytes (757.26 Mbytes) Compression gzip Block size 131072 Filesystem is exportable via NFS Inodes are compressed Data is compressed Fragments are compressed Always_use_fragments option is not specified Xattrs are compressed Duplicates are removed Number of fragments 5691 Number of inodes 175742 Number of ids 30 $ unsquashfs -s /tmp/hoge.squashfs Found a valid SQUASHFS 4:0 superblock on /tmp/hoge.squashfs. Creation or last append time Wed Jul 3 01:42:06 2013 Filesystem size 775667.15 Kbytes (757.49 Mbytes) Compression gzip Block size 131072 Filesystem is exportable via NFS Inodes are compressed Data is compressed Fragments are compressed Always_use_fragments option is not specified Xattrs are compressed Duplicates are removed Number of fragments 5691 Number of inodes 175742 Number of ids 30
レスありがとうございます。
そのものずばりの回答でした!
手元の環境で調べたところ、圧縮率の違いはオリジナルの方がxz圧縮を使っているのに対して
自分で圧縮したのはオプションを何もつけてなかったのでgzip圧縮が使われていました。
xzの方が小さくなるという事です。
unsquashfsコマンドに-sオプションをつけることでどういう感じに圧縮されているものなのか
詳細を見れるってことを教えて頂けたことが解決に繋がりました!
ありがとうございます。
オフライン