압축 된 파일을 디렉토리로 파일 시스템에 통합하는 방법이 있는지 궁금합니다 (마운트와 약간 다릅니다).
예를 들어, compressed-file.tar.gz
로컬 하드 드라이브에 a 를 다운로드 한 다음 cd compressed-file.tar.gz
압축 폴더 내에서 스크립트를 실행 cp some-file ..
하고 파일 중 하나를 추출 할 수 있습니다.
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
파일 시스템 – (리누스는 사용자 공간에서 파일 시스템 그들을 장난감 호출 ) 또는 사용자 정의 컴파일 된 커널을 또는 squashfs. Squash
당신은 단순히 예를 들면 타르를 탑재 할 수 없습니다 – -가 아니라 커널 어쨌든, VFS 지원 – 당신이 설명하는대로 정확하게는 아니지만 mksquash
원하는 수의 파일 또는 디렉토리를 확보하고 결과 아카이브를 읽기 전용으로 마운트 할 수 있습니다 . xz, lzma, or gz
압축을 선택할 수 있습니다 . Squash
라이브 리눅스 이미지를 사용한 적이 있다면 아주 좋았습니다.squashed.
이미지 파일 을 만들고 볼륨 을 만드는 데 사용 squashfs.
하는 트릭을 알려 드리겠습니다 . 그런 다음 해당 이미지를 아카이브 에 넣습니다 . 거기에 내가 할 수에서 그 내에서 이미지. btrfs
btrfstune -S 1
seed
squashfs
mount -o loop
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
S의 copy-on-write
기능과 자동 쓰기 압축 및 squashfs
모든 RAM 우수한 압축이야 AND 에 커널.