如何创建一个相同的usb棒图像?

我有一个因某种原因无法读取的USB棒。 我想为了存储目的制作它的图像,所以我可以尝试在以后从图像中检索数据。

我将如何创建这样一个相同的usb棒图像?


这是我使用dd时遇到的错误:

 oshirowanen@desktop:~$ sudo dd if=/dev/sdd of=/USB_image [sudo] password for oshirowanen: dd: reading `/dev/sdd': Input/output error 0+0 records in 0+0 records out 0 bytes (0 B) copied, 1.00783 s, 0.0 kB/s oshirowanen@desktop:~$ 

dd吧!

用法类似于sudo dd if=/dev/sdb of=~/USB_image其中/ dev / sdb是你的usb驱动器,由sudo fdisk -l列出,而〜/ USB_image是将要复制的映像文件(a将创建图像文件的路径)。

要将映像恢复到另一个USB驱动器,只需反转过程: sudo dd if=~/USB_image of=/dev/sdb〜/ USB_image恢复到设备sdb 。 只需确保新USB驱动器与原始驱动器一样大或更大。

您也可以将刚刚创建的映像文件挂载到路径中,而无需先使用mount ~/USB_image /mnt/USB_image -o loop将其恢复到另一个USB驱动器。

使用ddrescue 。 它将在错误之后继续,其中dd将完全失败。

另外, ddrescue在回购中。 在13.04,我输入了sudo apt-get install gddrescue来安装。

使用sudo fdisk -ldmesg找出设备位置,例如: /dev/sdb ,然后运行命令,如

 ddrescue /dev/sdb /home/user/desktop/bkp.img 

ddrescue有很多选项,您可能需要阅读man页。 此外,我不确定为什么你的硬件出现故障,并且转储dd 。 一个坏块可以使dd退出,但间歇性电源故障也可能。 dmesg可能会告诉您有关您可能遇到的硬件故障的更多信息。

确认设备没有安装! 当您尝试进行数据恢复,成像等时。这可能会导致问题。

在数据恢复方面有很多问题可能出错。 如果您遇到问题,请回复。 testdisk是一个很好的实用程序,用于在有图像后进行数据恢复。

为了清楚起见,这是一个USB硬盘驱动器还是usb(固态存储器)设备?

I / O错误通常表示硬件故障而不是文件系统损坏。

同时尝试获取设备的SMART数据分析(如果可用)。 这可能会告诉你一些事情,比如设备是否已经过热,长时间通电,有坏扇区,暴露在X以上。 Gs等

您可以使用dd创建USB记忆棒(或其他设备)的图像。

例如

 dd if= of=usb.img 

您可以向dd添加更多参数以优化命令(例如bs )。

dd ,如前一张海报所述,是本土的出路。 但是,你会希望它继续存在错误,所以你要从以下开始:

 dd if= of= bs= conv=noerror,sync 

最重要的部分是最后一个: conv=sync告诉dd填充它只能部分地用零读取的所有块,因此得到的图像可能有几个零太多,但在结构上等于片状磁盘,减去它的读取错误。 conv=noerror处理那些读错误,告诉dd继续下一个块。 此时,块大小很重要,因为如果大于跳过错误所需的大小,则可读数据将丢失。 Blocksize应该总是两倍 – 如果有疑问, 512k应该做到这一点。

然后我建议:

  • 在安全的地方存储该图像的未经修改的副本
  • fsck磁盘映像的副本
  • 挂载磁盘映像
  • 检查你的文件 – 它们现在没有问题,但有些可能会丢失或被截断
  • 如果设备本身根本无法读取,您可能会失败。 此外,如果设备恰好包含某些专有软件,则可以将其设置为在第一个块中访问时返回读取错误。

(部分引用自己2010年写的一篇文章)

如果您不需要保持原生状态,您可以尝试尝试稍微简化过程的工具,例如ddrescue(包gddrescue )及其配套ddrescueview ( sourceforge )以显示错误。

关于问题的后半部分“这是我使用dd时得到的错误”:我可以看到几种可能性。

  1. 请注意您键入的命令与接受的答案的区别; 你错过了/USB_image前面的~ 。 换句话说,您尝试输出文件系统的根而不是您的主目录。
  2. /dev/sdd可能不是正确的驱动器。 运行sudo fdisk -l并将驱动器的大小与USB记忆棒的已知大小进行比较。 例如,我知道这是我的USB记忆棒,因为它接近16GB: Disk /dev/sdf: 15.8 GB, 15805186048 bytes