圧縮ファイルをディレクトリとしてファイルシステムに統合する方法(マウントとは少し異なると思います)はあるのでしょうか。
たとえば、compressed-file.tar.gz
をローカルハードドライブにダウンロードしてから、cd compressed-file.tar.gz
を実行して圧縮フォルダ内からスクリプトを実行するか、cp some-file ..
を実行してファイルの1つを抽出します。
Btrfs は圧縮をサポートしていますが、この機能をサポートするために(ext3)が持っているファイルシステムを変更したくありません。
コマンドarchivemount
を使用して、.tar.gz
などのアーカイブをマウントできます。
$ ls
files.tgz mnt/
$ archivemount files.tgz mnt
$ ls mnt
file1 file2
[... Perform desired read/write operations on the archive via mnt/ ...]
$ umount mnt
[... Any changes are saved to the archive ...]
詳細については、archivemount
のマニュアルページを参照してください。多くの場合、インストールされないため、パッケージをインストールする必要があります。 archivemount
とも呼ばれます。 Fedora 19では、例えば:
$ Sudo yum install archivemount
あなたはFuse
ファイルシステム(ユーザースペースのファイルシステム-Linus それらをおもちゃと呼ぶ )またはカスタムコンパイルされたカーネルOR squashfs. Squash
は、説明どおりではありません。たとえば、tarballを単純にマウントすることはできません。カーネルでサポートされているVFSを使用しない場合は、とにかく、ファイルまたはディレクトリをいくつでもmksquash
できます。結果のアーカイブを読み取り専用でマウントします。 xz, lzma, or gz
圧縮を選択できます。 Squash
は常に使用されます-ライブLinuxイメージを使用したことがある場合は、squashed.
である可能性が非常に高いです。
squashfs.
で使用する1つのトリックを紹介します。btrfs
イメージファイルを作成し、btrfstune -S 1
を使用して seed
ボリュームにするのが好きです。 。次に、そのイメージをsquashfs
アーカイブに入れました。そこからmount -o loop
the image.sfs
を実行し、そのmount -o loop
からbtrfs
画像を取得できます。
btrfs seed
ボリュームは最初はread-only
としてマウントされます。これは、squashed
ループマウント内に含まれていることを考慮すると予想されます。しかし、私がそうするなら:
GB_tmp_loop=$(
fallocate -l $((1024*1024*1024)) /tmp/1GB_tmp.img &&
losetup -f --show $_
)
btrfs device add "$GB_tmp_loop" "${btrfs_seed=/path/to/btrfs_image_mount}"
umount "$btrfs_seed"
mount -o compress-force=lzo,autodefrag,rw "$GB_tmp_loop" "$btrfs_seed"
突然、btrfs
scopy-on-write
機能と自動書き込み圧縮[〜#〜]および[〜#〜]squashfs
s優れた圧縮RAMですべて[〜#〜]および[〜#〜]カーネル内。