Bạn đang nói về một FUSE
hệ thống tệp (hệ thống tệp trong không gian người dùng - Linus gọi chúng là đồ chơi ) hoặc hạt nhân được biên dịch tùy chỉnh HOẶC squashfs. Squash
không chính xác như bạn mô tả - ví dụ, bạn không thể gắn tarball - nhưng không phải với VFS được hỗ trợ kernel bạn chắc chắn có thể có mksquash
bất kỳ số lượng tệp hoặc thư mục và gắn kết lưu trữ chỉ đọc. Bạn có sự lựa chọn xz, lzma, or gz
nén. Squash
được sử dụng mọi lúc - nếu bạn đã từng sử dụng hình ảnh linux trực tiếp thì rất có thể đó làsquashed.
Tôi sẽ nói với bạn một mẹo tôi sử dụng với squashfs.
tôi muốn tạo btrfs
tệp hình ảnh và sử dụng btrfstune -S 1
để biến nó thành một seed
tập . Sau đó tôi đặt hình ảnh đó trong một squashfs
kho lưu trữ. Từ đó tôi có thể mount -o loop
sự image.sfs
và từ bên trong mà mount -o loop
các btrfs
hình ảnh.
Âm btrfs seed
lượng ban đầu sẽ gắn kết như read-only
- dự kiến sẽ xem xét rằng nó được chứa trong một squashed
vòng lặp. Nhưng nếu tôi thì làm:
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"
Đột nhiên, tôi đang tận dụng chức năng btrfs
của s copy-on-write
và nén ghi tự động VÀ squashfs
nén vượt trội tất cả trong RAM VÀ trong kernel.