オーバーヘッドの低いファイルシステムを作成する方法

オーバーヘッドの低いファイルシステムを作成する方法

7.4GBファイルをコピーする必要がある7.5GB USBキーチェーンがあります。しかし、スーパーブロックは0.5GBのスペースを消費するので、それはできません。

答え1

デバイスにデータを書き込むためにファイルシステムは必要ありません。tarディレクトリ構造とすべてのメタデータを保存するアーカイブを作成し、それをデバイスに書き込むことができます。

データ投入

これはsdb私のシステムにあるUSBドライブの例です。設定に合わせて調整してください。

tar cf /dev/sdb <some_directory>

データの読み取り

tar以下を使用して、デバイスからデータを直接読み取ることができます。

tar xf /dev/sdb

私の実験では、tarアーカイブのデータだけでなく、常にブロックデバイス全体を読み取っています。デバイスに8GiBがあることはわかっていますが、3GiBのみを保存した場合は、次のようにデバイス全体をdd読み取る必要はありません。

dd if=/dev/sdb bs=1M count=3072 | tar xf -

注意事項

データをできるだけ圧縮してみてください。時間がかかることがありますが、通常のファイルシステムを搭載したドライブにはすべてが含まれます。使用することをお勧めします7-Zip。遅いが圧縮率が高い。例は次のとおりです。

7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z <some_directory>

答え2

実際、ext4ファイルシステムは必要ありませんが、オーバーヘッドをデバイス容量の1.3%未満(7.5GBのうち100MB)に減らすファイルシステムが必要なので、さまざまな低オーバーヘッドオプションを考えてみましょう。単一の7.4GBファイルを処理できるという基準を満たす2つの最も明確な方法は、低inode数と希薄なスーパーブロックを備えたext2または低オーバーヘッドFAT32ファイルシステムです。

編集する:FAT32最大ファイルサイズについて私が間違っているようですが、誰かがこの問題を経験し、単一のファイルが2^32 - 1(4GiB - 4 GiB - 1)フェスティバル。

オーバーヘッドが低いext2ファイルシステムの場合は、ファイルシステムのinode数を指定するなどのmke2fs -t ext2 -N 8 -O sparse_super操作を試してください。-N 8この値がどれほど低いかわからないため、このノブには少し調整が必要な場合があります。

オーバーヘッドの低いFAT32ファイルシステムの場合は、次のようにしてください。これにより、単一のFAT、8つのルートエントリ、32KiBの論理セクタサイズ、クラスタ領域あたり128のセクタを持つFAT32(必要なファイルサイズを許可)がmkdosfs -F 32 -f 1 -r 8 -S 32768 -s 128 -a作成されます。この値を増やすことができます)とデータ構造の並べ替えを無効にすることができます。-F 32-f 1-r 8-S 32768-s 128-a

関連情報