如何压缩 dd 图像并同时使用它们?
在 Windows 上,我可以将其标记为压缩并像处理普通文件一样使用它。
我无法重新分区,但我可以安装一些驱动器(例如NTFS/Win32
)
答案1
有一个Linux模块称为cloop
(压缩循环),与一些一起打包相应的实用程序,例如在 Debian 上。
您可以以压缩状态安装这些映像。注意:只读。另外,您必须专门创建它们,sda1.img.gz 不会只是安装。
简而言之:
# create_compressed_fs - blocksize < /dev/xyz > imageName.cloop
# insmod cloop.ko file=/path/to/imageName.cloop
# mount -o ro -t whatever /dev/cloop /mnt/compressed
作为第一步,您可以转换现有图像:
# gunzip oldImg.gz |create_compressed_fs - blocksize > imageName.cloop
注意:请确保您有足够的虚拟内存。 (看自述文件)
关于可实现的压缩比:https://en.wikipedia.org/wiki/Cloop:
软件的压缩比通常约为 2.5:1。例如,Knoppix cloop 映像压缩后大小为 700MB,未压缩时大小约为 1.8GB。
该模块已在生产中使用多年,因为它用于例如Knoppix Linux live 启动盘。自 2005 年起定期打包/更新。软件看起来很成熟,例如README
最后一次修改是2008年,
这是一个类似的Q,有一个写得很好的 squashfs 示例。归根结底是安装squashfs-tools
和运行
# mkdir empty-dir
# mksquashfs empty-dir squash.img -p 'sda_backup.img f 444 root root dd if=/dev/sda bs=4M'
# mount squash.img /mnt/compressed
答案2
我想这dd image
意味着包含文件系统的某个分区的压缩副本。
一般来说,您无法挂载此类压缩映像,因为它不适合随机访问。您需要解压缩它,然后才能安装它并访问文件系统。
如果您想要一个自动压缩数据的文件系统(如Windows
您提到的文件系统),请查看BTRFS
.但要使用它,您需要创建一个分区,因此它可能不适合您。
答案3
要动态创建压缩图像:
gzip < /path/to/inpurt >/path/to/image.gz
要即时读取压缩图像:
zcat /path/to/image.gz > /path/to/output