Linux Kernel 2.4 Documentation:
/usr/src/linux/Documentation/filesystems/cramfs.txt
filesystems/cramfs.txt
小さなストレージ (ROM など) 向けの cram ファイルシステムの情報
[プレインテキスト版]
- 原著作者: unknown
- 翻訳者: 野本浩一 <hng@ps.ksky.ne.jp>
- バージョン: 2.4.7
- 翻訳日時: 2001/10/31
Cramfs - 小さな ROM 上にファイルシステムを詰め込む
cramfs は単純で小さいもので、目的のものを効果的に圧縮するよう設計され
ています。
一度にファイルの一ページを圧縮するために、zlib ルーチンを使用し、任意
のページアクセスを行います。メタデータは圧縮されませんが、従来のファイ
ルシステムより少ないディスクスペースを使うようにするために、とても簡素
な表記で書かれます。
cramfs ファイルシステムに書き込みはできません (それを圧縮可能で小型に
し、さらに動作中に更新することは *とても* 困難です)。したがって
scripts/cramfs の中 "mkcramfs" ユーティリティを使用してディスクイメー
ジを作成しなければなりません。
使用上の注意
------------
ファイルサイズは 16MB 未満に制限されます。
ファイルシステムの最大サイズは 256MB 強です。(ファイルシステムの最後の
ファイルは 256MB を超えることができます。) (mkcramfs.c のコメント行に
は、ROM サイズは 64MB までの制限がある場合があると書かれていますが、こ
の制限はcramfs コードにはあてはまりません。)
gid の下位 8 ビットだけが格納されます。mkcramfs の現行版は単純に 8 ビッ
トに切り詰めるので、潜在的なセキュリティ問題があります。
ハードリンクはサポートされていますが、ハードリンクされたファイルは、
cramfs イメージ内で 1 のリンクカウントのままです。
Cramfs ディレクトリは `.' もしくは `..' を持ちません。(cramfs 上のすべ
てのファイルと同様に) ディレクトリのリンクカウントは常に 1 です。(余談
ですが `find' で -noleaf を使う必要はありません。)
cramfs でタイムスタンプは格納されていないので、自動的に紀元 (1970 GMT)
になります。アクセスして間もないファイルはタイムスタンプが更新されてい
るかもしれませんが、その更新が持続するのは inode がメモリにキャッシュ
されている間だけで、その後タイムスタンプは 1970 に戻ります。つまり時間
が逆行します。
現在、cramfs は同じエンディアンのアーキテクチャで書き込みおよび読み出
しされなければならず、PAGE_CACHE_SIZE == 4096 なカーネルだけ読むことが
できます。これらのうち少なくとも後者はバグですが、最良の修正方法はまだ
定まっていません。さしあたり、大きなページが必要な場合、将来のカーネル
でファイルシステムが読み出せなくなることを気にしなければ、mkcramfs.c
の中の #define のちょっとした変更でできます。
/usr/share/magic 用
-------------------
0 long 0x28cd3d45 Linux cramfs
>4 long x size %d
>8 long x flags 0x%x
>12 long x future 0x%x
>16 string >\0 signature "%.16s"
>32 long x fsid.crc 0x%x
>36 long x fsid.edition %d
>40 long x fsid.blocks %d
>44 long x fsid.files %d
>48 string >\0 name "%.16s"
ハッカーへの注意
----------------
ファイルシステムのレイアウトおよび実装の注意は fs/cramfs/README を参照
してください。
======================================================================
日本語訳:野本浩一 <hng@ps.ksky.ne.jp>
校正:azureさん <azure@kcc.zaq.ne.jp>
境真太郎さん <s_sakai@mxn.mesh.ne.jp>
中谷千絵さん <jeanne@mbox.kyoto-inet.or.jp>
Linux カーネル 2.4 付属文書一覧へ戻る