我有一个扩展分区,其中包含三个其他分区。我要做的是复制该“扩展”分区的映像。我按照这里,然后运行这个
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 是驱动器号(例如a
或b
或c)
。但这意味着更多的工作。
另一种选择是寻找开始和扩展分区的大小在...的帮助下parted
。
sudo parted /dev/sdX u MiB print
u MiB
表示单位为 mibibytes。在 中也使用该块大小,dd
然后使用seek
和count
来dd
选择要复制到映像中的正确数据。
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