Wee*_*ezy 4 windows linux compression images partition-copy
首先这个问题不是欺骗:
https://superuser.com/questions/7739/windows-backup-by-imaging
我过去广泛使用 Norton Ghost(实际上我在 Norton 购买之前就已经在使用 Ghost),我喜欢的一件事是它可以压缩 Windows 分区,因此您可以拍摄 Windows 系统的相对较小的快照/图像。
我在 Windows 95/98/ME、XP 和 2000 天中做了很多映像。但现在我倾向于只在 VM 中运行 Windows(主要在 KVM 下)。这些虚拟Windows,我在成像然后复制/删除/编辑/等方面没有问题。那些图像。
但是我现在的需求不同了,这是真正的超级用户的问题:我想从 Linux 引导 CD 对 Windows 计算机的 Windows NTFS 分区进行映像和压缩。
我不介意用任何需要的应用程序为自己创建 Linux 引导 CD...但是那是哪个应用程序,我将如何使用它?
您可以使用ntfsclone,这是一款专为此设计的 Linux 工具。您可以通过将连字符传递给-o
开关,将输出直接通过管道传输到标准输出。
例如,如果要/dev/sda1
使用 gzip 压缩进行映像,可以使用以下命令:
ntfsclone -s -o - /dev/sda1 | gzip -c > /output/location.img.gz
Run Code Online (Sandbox Code Playgroud)
如果您想要更多压缩并且有时间,我建议您改用xz方法:
ntfsclone -s -o - /dev/sda1 | xz -cv > /output/location.img.xz
Run Code Online (Sandbox Code Playgroud)
这两者都会对您的 NTFS 分区进行映像和压缩,同时忽略未使用的磁盘空间。
干杯!
编辑:ntfsclone可以很容易地安装在大多数支持网络的发行版上,如果默认情况下不包含它们的包管理器。如果您在特定发行版的软件管理器中找不到该实用程序,它可能是ntfsprogs或ntfs-3g实用程序的一部分。您还可以参考此链接以获取更多克隆信息。
有多种用于拍摄分区图像的选项,包括绝对基本的cat
和dd
. 它们的优点是默认存在于类 UNIX 世界的任何地方,并且两者都可以通过 gzip 或类似的方式传递,如下所示:
cat /dev/sda1 | gzip -c > /some/directory/sda1.img.gz
Run Code Online (Sandbox Code Playgroud)
甚至整个磁盘:
cat /dev/sda | gzip -c > /some/directory/sda.img.gz
Run Code Online (Sandbox Code Playgroud)
这些选项与文件系统无关,因此不会忽略未使用的块(可能仍包含旧数据),因此为了提高获得的压缩率(在某些情况下显着),请使用Windows 中的sdelete实用程序将所有分区可用空间清零,如下所示:
sdelete -v c:
Run Code Online (Sandbox Code Playgroud)
或者,如果您非常信任 Linux NFTS 设置,您可以挂载分区并运行cat /dev/zero > /mnt/ntfs/zero.file ; rm zero.file
(我更愿意保持警惕,因为 NTFS 格式没有完全公开记录,因此可能存在它不知道的情况,无法很好地处理) )。
cat
您可以像这样从上面的示例中删除:
gzip -c < /dev/sda1 > /some/directory/sda1.img.gz
Run Code Online (Sandbox Code Playgroud)
它的 CPU 效率会更高一些,但我怀疑效率差异会很大,除非您有一个非常低功耗的处理器,并且我更喜欢这种方法,因为cat
命令从左到右“流动”得更好。
如果安装了 Pipe Viewer,您还可以替换它,以获得可能长时间操作的有用进度显示cat
。pv