恢复 clonezilla 图像 - cat | gzip | partclone 不起作用!

恢复 clonezilla 图像 - cat | gzip | partclone 不起作用!

我正在尝试恢复使用 clonezilla 拍摄的图像。该图像取自 Windows 7 计算机,并被分解为以下格式的多个文件。

sda1.ntfs-ptcl-img.gz.a*(其中 * 来自 ak)

我在网上搜索了恢复这些图像的方法,最常用的方法如下:

sudo cat /dir-to-images/sdb1.ntfs-ptcl-img.gz.* | sudo gzip -d -c | sudo partclone.restore -C -s - -O /dir-to-new-image/hda1.img

但是,当我尝试这样做时:

sudo cat sda1.ntfs-ptcl-img.gz.a* | sudo gzip -d -c | sudo partclone.restore -C -s - -o partclone-restore.img

我收到以下错误:

Partclone v0.2.70 http://partclone.org
Starting to restore image (-) to device (partclone-restore.img)
device (partclone-restore.img) is mounted at 
error exit
Partclone fail, please check /var/log/partclone.log !

那么,让我们看看 partclone.log...

Partclone v0.2.70 http://partclone.org
Starting to restore image (-) to device (partclone-restore.img)
device (partclone-restore.img) is mounted at
error exit

完全相同的错误..我是不是漏掉了什么?有人能给我指出正确的方向吗?

我正在使用 Ubuntu 12.04

答案1

我遇到了同样的问题。虽然 dogonthehorizo​​n 的答案最终可能会给你想要的结果,但在尝试安装旧版本的 partclone 时,你还必须解决依赖性问题。

相反,停止使用partclone.restore它被认为是弃用的partclone.ext4。与选项--restore --restore_raw_file(简称:)结合使用作为保留的替代方案-r -W。这里‘ext4’应替换为适当的文件系统(‘ext3’‘ext4’‘ntfs’, ETC)。

我没有遇到任何不兼容问题,我恢复了 0.2.58 版本ext4文件系统克隆,版本0.2.78。

以OP为例:

sudo cat /dir-to-images/sdb1.ntfs-ptcl-img.gz.* | sudo gzip -d -c | sudo partclone.restore -C -s - -O /dir-to-new-image/hda1.img

当你不再使用时,你将获得以下内容partclone.restore,但partclone.ntfs对于NTFS反而:

sudo cat /dir-to-images/sdb1.ntfs-ptcl-img.gz.* | sudo gzip -d -c | sudo partclone.ntfs -C -r -W -s - -O /dir-to-new-image/hda1.img

或者以下内容ext4文件系统备份:

sudo cat /dir-to-images/sdb1.ext4-ptcl-img.gz.* | sudo gzip -d -c | sudo partclone.ext4 -C -r -W -s - -O /dir-to-new-image/hda1.img

注意文件系统指示(‘ntfs’‘ext4’) 在原始.gz文件中。

答案2

TL;DR:从源代码安装 partclone 0.2.58 并再次尝试 partclone 步骤。

我在尝试在 Arch-Linux 机器上执行类似操作时偶然发现了这个问题。我处理这个问题的方法和你略有不同,但我希望我的解决方案至少能让你走上正确的道路。

我首先解压了使用以前版本的 Clonezilla 制作的压缩备份:

cat sda4.ext4-ptcl-img.gz.a* | gzip -d -c > sda4.img

然后我尝试使用 partclone 以下命令恢复此文件:

partclone.extfs -r -s sda4.img -o sda4-restored.img --restore_raw_file

到目前为止,事情应该很熟悉;我在这里所做的就是将你尝试的过程拆分为两个命令。现在,我遇到了和你遇到过同样的问题使用这些命令,它出现是我们正在使用的 partclone 版本的问题。

似乎两者Partclone v0.2.70Partclone v0.2.69 不兼容我已经备份了Clonezilla v3.5.1

然而,安装旧版本的 Partclone,即Partclone v0.2.58,允许我使用与上述相同的命令恢复我创建的备份映像。由于 partclone 没有为 Arch-Linux 准备的映像,因此我必须从源代码进行编译,但是运行 Ubuntu 12.04 时,您可能能够利用此 partclone 镜像中提供的 .deb 文件:http://partclone.nchc.org.tw/download/stable/0.2.58/

我编译 0.2.58 所遵循的步骤非常针对 Arch-Linux,但如果您仍然需要帮助,我很乐意与您分享这个过程。

干杯!

答案3

在另一个论坛中我找到了一个简单的解决方案。

您必须创建您正在写入的文件!

例如

触摸 sda4-restored.img

-C / dont check size ..请注意,除非您创建的文件大小与您的分区相同或更大,否则您必须使用它。

原始帖子:

https://bbs.archlinux.org/viewtopic.php?id=179929

答案4

当我尝试循环挂载使用 partclone.restore 恢复的图像时出现错误。我最初的备份是使用 clonezilla 创建的,我将一个分区备份为一个图像。

EXT4-fs(loop0):几何形状不良:块数 14648437 超出设备大小(14215168 个块)

所以我使用以下命令来截断它

截断-o-s 14648437 sda2.img

如果 img 归 root 所有或位于 root 拥有的文件夹中,则需要 sudo。但要小心,因为截断图像可能会导致文件丢失,但请记住,您仍然拥有原始 clonezilla 备份,因此如果您弄乱了 partclone.restore 创建的 .img 文件也没关系

相关内容