我可以使用 dd 制作“扩展”分区的图像吗?

我可以使用 dd 制作“扩展”分区的图像吗?

我有一个扩展分区,其中包含三个其他分区。我要做的是复制该“扩展”分区的映像。我按照这里,然后运行这个

sudo dd if=/dev/sdc3 conv=sync,noerror bs=64K | gzip -c > TOSHIBA_ExtPart.img.gz

然后我收到错误:没有这样的设备或地址。

*我想要完美地复制分区,因为分区中有我想要在将来恢复的已删除文件,所以映像文件应该包含这些文件。

我犯了什么错误吗?或者有更好的方法吗?

(操作系统:Ubuntu 16.04 LTS)

答案1

我同意@ravery 的观点,你应该检查你是否确实尝试从正确的设备读取。

但还有另一个问题。我在测试环境中测试了您的命令,dd当我想让它创建扩展分区的映像时,它只读取了 1 千字节(1024 字节)。

一个明显的解决方法是制作整个驱动器的映像/dev/sdX,其中 X 是驱动器号(例如abc)。但这意味着更多的工作。

另一种选择是寻找开始和扩展分区的大小在...的帮助下parted

sudo parted /dev/sdX u MiB print

u MiB表示单位为 mibibytes。在 中也使用该块大小,dd然后使用seekcountdd选择要复制到映像中的正确数据。

seek=count=的使用方式类似bs=。 它在 中有描述man dd。 您可以使用bs=1M,然后使用 parted 命令行的输出作为 seek 和 count 的值。

sudo dd if=/dev/sdX bs=1M seek=Start count=Size | gzip -c > TOSHIBA_ExtPart.img.gz

相关内容