如何创建一个相同的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 -l
或dmesg
找出设备位置,例如: /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时得到的错误”:我可以看到几种可能性。
- 请注意您键入的命令与接受的答案的区别; 你错过了
/USB_image
前面的~
。 换句话说,您尝试输出文件系统的根而不是您的主目录。 -
/dev/sdd
可能不是正确的驱动器。 运行sudo fdisk -l
并将驱动器的大小与USB记忆棒的已知大小进行比较。 例如,我知道这是我的USB记忆棒,因为它接近16GB:Disk /dev/sdf: 15.8 GB, 15805186048 bytes
。