从 Linux 启动盘映像和压缩 NTFS 分区

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...但是那是哪个应用程序,我将如何使用它?

Ama*_*gat 8

您可以使用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可以很容易地安装在大多数支持网络的发行版上,如果默认情况下不包含它们的包管理器。如果您在特定发行版的软件管理器中找不到该实用程序,它可能是ntfsprogsntfs-3g实用程序的一部分。您还可以参考此链接以获取更多克隆信息。


Dav*_*ett 6

有多种用于拍摄分区图像的选项,包括绝对基本的catdd. 它们的优点是默认存在于类 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,您还可以替换它,以获得可能长时间操作的有用进度显示catpv