外付けドライブを「ライトワンスアーカイブ」として設定しているとします。それを再フォーマットし、(願わくば)更新されないファイルをコピーして、何かを読む必要があるまで脇に置いておきます(別のLinuxボックスからのアーカイブから(長い間または決して)。また、アーカイブにできるだけ多くのファイルスペースを取得できるようにしたいです。つまり、ファイルシステムがそれ自体の目的のためにできるだけ少ない空き領域を消費するようにしたいのです。
特定の質問1:このユースケースにはどのファイルシステムが適していますか:ジャーナリングなしのext2またはext4?
私はこれまで後者を行ったことがないので(私は通常、この種のことを GParted で行います)、念のために言っておきます。
特定の質問2:はジャーナルレスext4をインストールする「方法」ですmke2fs -t ext4 -O ^has_journal /dev/whatever
?
一般的な質問3:このユースケースに適したファイルシステムはありますか?または完全に異なる何か?
デッドボックス上の古いプロジェクトからのbunchaファイル(したがって、更新されることはありません)をさまざまな外部ドライブに保存しています。まとめてサイズ(ファイル)〜= 250GB。これはDVDには大きすぎます(つまり、何かが足りない場合を除いて、必要な数が多すぎます)。また、テープドライブがありません。したがって、私は古いUSB2HFS外付けドライブをアーカイブとして設定しています。 「実際のLinux」ファイルシステムを使用したいのですが、次のようなファイルシステムも使用したいと思います。
私はGPartedで次のシーケンスを実行することを計画していました:[古いパーティションを削除し、単一の新しいパーティションを作成し、ext2ファイルシステムを作成し、ラベルを付け直します]。しかし、私は読んだ ここ それ
recent Linux kernels support a journal-less mode of ext4
which provides benefits not found with ext2
man mkfs.ext4
の次のテキストに注意してください
"mke2fs -t ext3 -O ^has_journal /dev/hdXX"
will create a filesystem that does not have a journal
だから知りたい
mke2fs -t ext4 -O ^has_journal /dev/whatever
?私はsquashfsの推奨事項に同意しません。通常、squashfsをrawブロックデバイスに書き込むことはありません。読みやすいtarアーカイブと考えてください。つまり、下にあるファイルシステムがまだ必要です。
ext2
には、今日の有用性を制限するいくつかの厳しい制限があります。したがって、ext4
をお勧めします。これはアーカイブを目的としているため、圧縮アーカイブを作成してアーカイブを続行します。つまり、ほとんど変更されないかなり大きなファイルが少数あることになります。そのために最適化できます。
-I 128
を指定して、個々のiノードのサイズを縮小します。これにより、iノードテーブルのサイズが縮小されます。-i
オプションを試して、iノードテーブルのサイズをさらに小さくすることもできます。この値を増やすと、作成されるiノードが少なくなるため、iノードテーブルも小さくなります。ただし、これは、ファイルシステムがファイルごとに平均してより多くのスペースを浪費することを意味します。したがって、これは少しトレードオフになります。-O ^has_journal
を使用してジャーナルをオフにすることができます。ただし、そのルートをたどる場合は、デフォルトのオプションを設定してファイルシステムを読み取り専用でマウントすることをお勧めします。これはfstab
で行うか、tune2fs -E mount_opts=ro
を使用してファイルシステムにデフォルトを記録することができます(mkfs
時にこれを行うことはできません)-m
オプションを使用して予約済みブロックの数をmkfs
またはtune2fs
に減らすこともできます。これにより、ルート用に予約されているパーセンテージ(デフォルトでは5に設定)が設定されますのみ。ゼロに設定しないでください。ファイルシステムは、効率的な操作のためにいくらかのスペースを必要とします。SquashFS は、要件によく適合する圧縮可能な読み取り専用ファイルシステムであり、カーネルに数年間使用されており、すでに広く使用されています(LiveCDなど)。ユーザースペースツールの最新のドキュメント GitHubにあります 。ドキュメントから:
Squashfsは、Linux用の高度に圧縮された読み取り専用ファイルシステムです。 gzip/xz/lzo/lz4圧縮のいずれかを使用して、ファイル、iノード、およびディレクトリの両方を圧縮します。システム内のiノードは非常に小さく、データのオーバーヘッドを最小限に抑えるためにすべてのブロックがパックされています。 4Kを超えるブロックサイズは、最大1Mバイト(デフォルトのブロックサイズ128K)までサポートされます。
Squashfsは、一般的な読み取り専用ファイルシステムの使用、アーカイブの使用(つまり、.tar.gzファイルを使用できる場合)、および低オーバーヘッドが必要な制約付きブロックデバイス/メモリシステム(組み込みシステムなど)を対象としています。
おそらく、圧縮されたファイルシステムの方が適しているでしょう。
さまざまなLinuxファイルシステムを圧縮する方法はいくつかありますが(Fuse
で圧縮できます)、作成すると読み取り専用になるため、squashfs
を検討してください。 mksquashfsを使用してファイルシステムを作成します。
Linuxは2.6.something以来メインカーネルにsquashfsを持っているので、ほとんどすべてのLinuxボックスから動作するはずです。
btrfs
はオンザフライ圧縮で実行できると思いますが、私自身は使用したことがありません。 ZFS
can-私はFreeBSDで自分で使用しています-Linuxマシンがそれを読み取る前に、いくつかのセットアップが必要になりますが。
ジャーナリングのないext2とext4に関しては、私には言えませんでした。Linuxでは習慣からJFSとXFSを使用しています。