お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-06-30 14:45:04

sirase
メンバ
From: 福岡県
登録日: 2012-06-02

UbuntuのISOファイル内のfilesystem.squashfsについて

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コマンドのオプションで何か特別なパラメータを指定しているのでしょうか?

以上、ご教示のほどよろしくお願い致します。

オフライン

 

#2 2013-07-03 00:12:32

sirase
メンバ
From: 福岡県
登録日: 2012-06-02

Re: UbuntuのISOファイル内のfilesystem.squashfsについて

レスつかないようなのでもう少し詳細を。

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コマンドのオプションの付け方なのかなと思うのですが
どうやって調べればよいやらと・・・。

そのものズバリの回答でなくても、何か少しでもヒントになりそうな事がわかる方
どうかコメントをよろしくお願い致します。

オフライン

 

#3 2013-07-03 01:51:30

STGSAGWAN
ゲスト

Re: UbuntuのISOファイル内のfilesystem.squashfsについて

私の環境(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
 

#4 2013-07-03 10:27:11

sirase
メンバ
From: 福岡県
登録日: 2012-06-02

Re: UbuntuのISOファイル内のfilesystem.squashfsについて

レスありがとうございます。

そのものずばりの回答でした!
手元の環境で調べたところ、圧縮率の違いはオリジナルの方がxz圧縮を使っているのに対して
自分で圧縮したのはオプションを何もつけてなかったのでgzip圧縮が使われていました。
xzの方が小さくなるという事です。

unsquashfsコマンドに-sオプションをつけることでどういう感じに圧縮されているものなのか
詳細を見れるってことを教えて頂けたことが解決に繋がりました!

ありがとうございます。

オフライン

 

Board footer

Powered by FluxBB