我喜欢“磁盘”(gnome-disk-utility
)及其创建系统分区备份的功能。
但后来我在网上看到一个程序,它可以创建这样的映像,其大小不等于整个分区,而只等于分区上的文件大小。现在我再也找不到它了。
有这样的实用程序吗?
答案1
答案2
实现更小的磁盘映像通常是通过不从映像中的初始文件系统复制零块来实现的。这个概念称为稀疏空间在文件或冲压文件中的漏洞,并且您的主机文件系统必须支持它。有点命令行,但尝试这个:
sudo apt-get install virt-manager qemu-utils
安装完成后,您可以使用:
qemu-img convert -f raw -O raw /dev/sdX /home/<user>/Ubuntu.img
这将创建磁盘的稀疏(文件中不写入零)映像。其中 -f = 格式,-O 输出格式。sdX 磁盘(也可以使用分区)。该程序具有快照和不同输出格式(vdi、vmdk 等)等高级功能。您的地方图像保存位置必须支持稀疏文件,否则大小将一样大,因为分区中的零将被写入磁盘。为了充分利用它,请在分区上运行 apt 中的程序,例如sfill
或zerofree
,因为可用空间并不总是零空间,并且您希望最大化文件系统上的零空间量。
额外忍者积分。由于 Linux 将磁盘视为“文件”,因此您也可以使用普通的 cp,前提是您存放文件的输出分区知道稀疏文件。
sudo cp --sparse=always /dev/sdX /home/<user>/Ubuntu.img
这将通过 cp 创建原始副本。
支持稀疏的文件系统示例:ext4、btrfs、xfs、ntfs(但是 ntfs-3g 可能不允许稀疏写入)。
不存在的文件系统示例:fat32。
答案3
因为似乎没有任何程序本身能够满足这两个条件:
1)具有类似‘磁盘’的GUI;
2)创建与使用空间一样大的磁盘映像,
我正在考虑一个相当简单的解决方法,但涉及两个在 Ubuntu 中很常见的 GUI 程序:
其中一个会是相同的 ‘磁盘’ (gnome-disk-utility),用于创建给定分区的备份映像,第二个是 Gparted,用于在创建备份映像之前,尽可能缩小分区,然后将其调整回原始大小。
我认为这样的操作没有任何不便之处:将分区缩小到最小只需要几分钟(10GB 大约需要一分钟),并且会在右侧创建一个空白空间。使用“磁盘”制作磁盘备份映像后,使用 Gparted 可以将分区大小调整回右侧空白空间,直至其初始状态,这只需几秒钟。
在安装了 Ubuntu 的分区上进行测试:
尽可能使用 Gparted 缩小分区
带有磁盘的该分区的备份映像
使用磁盘将映像恢复到大于映像的分区上;应先卸载该分区:如何使用“磁盘”正确恢复系统分区(iso 映像)。
答案4
ddrescue
使用with-S
选项怎么样?
ddrescue -S /dev/sdXY /<path_to_backup>/backup.img
这将克隆每个块,但在块设备中找到零个/dev/sdXY
块/<path_to_backup>/backup.img