LiveUSBがsquashfs(および同様の)ファイルシステムを使用するのはなぜですか?

LiveUSBがsquashfs(および同様の)ファイルシステムを使用するのはなぜですか?

これまで私が出会ったすべてのLiveUSBは、USBフラッシュドライブですでに見つかったパーティションタイプを実際に維持しながら、ext4ファイルシステムと一緒にsquashfsまたは同様の「偽」メソッドを使用しています。

ext4Linux LiveUSBが内蔵ハードドライブのようにUSBドライブを直接フォーマットしないのはなぜですか?

答え1

Squashfsは、不変のライブイメージを生成するためにフェデレーションされたFS(overlayfs、aufs)で使用されることがよくあります。

これはsquashfsイメージが読み取り専用でマウントされ、tmpfsが読み取り/書き込みでマウントされることを意味します。その後、これら2つの層を組み立てて、/に結合体としてマウントします。これらの組み立ておよびインストール手順は、通常、組み立てられたルートファイルシステムでルートを指定する前にinitramfsで実行されます。

すべての読み取り専用アクセスはsquashfsイメージに直接行われますが、すべての変更はRAMの揮発性tmpfsにコミットされるため、次回の起動時にイメージは変更されません。

IMHO、squashfs readwriteの使用は関連性が低いです。この場合、スペース制約を必ず満たす必要がない場合は、提案したようにext4を使用する必要があります。

答え2

squashfsは、特にUSBフラッシュドライブなどの低速メディアの場合は高速です。
squashfsから起動すると、データが効果的に圧縮され、メタデータがそれほど複雑ではないため、IOが削減されます。 squashfs

にはいくつかの欠点があります。 CPUを大量に使用し、データの変更を許可しないため、デスクトップでは広く使用されていませんが、liveUSBなどの操作には適しています。

答え3

主な理由は、解凍された画像が起動時に独自に拡張されることです。ところでどこで?

RAMにいる場合は、コンピュータにそれを実装するのに十分なRAMがない可能性があります。ただし、ext4パーティションのUSBキー自体で実行された場合、ファイルは同じパーティションに書き込まれたため、「イメージ」は完全ではありません。

さらに悪いことに、一部の変更により変更が継続的に発生する可能性があります。これは画像に発生したくないことです。

関連情報