Как создать немного идентичное изображение USB-палки?

15

У меня есть USB-накопитель, который по какой-то причине не читается. Я хочу сделать его образ для хранения, поэтому я могу попытаться извлечь данные с изображения на более позднюю дату.

Как я могу создать такое же идентичное изображение USB-палки?

Это ошибка, которую я получаю при использовании dd :

[email protected]:~$ 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
[email protected]:~$ 
    
задан oshirowanen 11.07.2013 в 12:38
источник

5 ответов

35

dd it!

Использование будет таким, как sudo dd if=/dev/sdb of=~/USB_image , где / dev / sdb - ваш USB-накопитель, указанный в списке sudo fdisk -l и ~ / USB_image - это файл изображения, будет создана копия (путь, в котором будет создан файл изображения).

Чтобы восстановить изображение на другом USB-накопителе, просто инвертируйте процесс: sudo dd if=~/USB_image of=/dev/sdb восстановит ~ / USB_image на устройство sdb . Просто убедитесь, что новый USB-накопитель такой же большой или больший, чем оригинальный.

Вы также можете монтировать созданный образ в путь без необходимости его сначала восстановить на другой USB-накопитель с mount ~/USB_image /mnt/USB_image -o loop .

    
ответ дан Bruno Pereira 11.07.2013 в 12:44
источник
6

Используйте 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 quit, но так могли прерывистые сбои питания. dmesg может рассказать вам больше об аппаратных сбоях, которые могут возникнуть.

УБЕДИТЕСЬ, что устройство не смонтировано! когда вы пытаетесь выполнить восстановление данных, визуализацию и т. д. Это может вызвать проблемы.

В восстановлении данных есть много вещей, которые могут пойти не так. Если у вас есть проблемы, отправьте сообщение. testdisk - хорошая утилита для восстановления данных после того, как у вас есть изображение.

Просто для ясности, это USB-накопитель или USB-устройство (твердотельная память)?

Ошибки ввода-вывода обычно указывают на аппаратные сбои, а не на повреждение файловой системы.

Также попробуйте получить SMART-анализ данных устройства, если он доступен. Это может рассказать вам, например, о том, что устройство, которое его нагревало, долгое время работало, имеет плохие сектора, подверженные более чем X нет. Gs и т. д.

    
ответ дан j0h 11.07.2013 в 20:30
2

Вы можете создать изображение USB-накопителя (или другого устройства) с помощью dd .

например.

dd if=<usb device> of=usb.img

Вы можете добавить дополнительные параметры в dd для оптимизации команды (например, bs ).

    
ответ дан Uwe Plonus 11.07.2013 в 12:43
2

dd , как упоминалось предыдущим плакатом, является родным путем. Вы хотите, чтобы он продолжал с ошибками, поэтому вы должны начать с:

dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync 

Важная часть - последняя: conv=sync сообщает dd, чтобы заполнить все те блоки, которые она могла читать только частично с нулями, поэтому в результате изображение может иметь несколько нулей слишком много, но будет структурно равно flaky disk, минус его ошибки чтения. %код% позаботился об этих ошибках чтения, сказав dd, чтобы продолжить следующий блок. На данный момент размер блока имеет значение, поскольку, если он больше, чем необходимо, чтобы пропустить ошибку, здесь будут потеряны читаемые данные. Blocksize всегда должен быть в два раза - если есть сомнения, conv=noerror должен сделать трюк.

Затем я предлагаю:

  • Хранить немодифицированную копию этого изображения где-то в безопасности
  • fsck копия образа диска
  • смонтировать образ диска
  • проверьте свои файлы - они могут быть легко прочитаны без проблем, но некоторые могут быть отсутствует или усекается
  • Если само устройство не может быть прочитано вообще, вам может быть не повезло. Кроме того, если устройство содержит какое-то проприетарное программное обеспечение, оно может быть настроена для возврата ошибок чтения при доступе в первых блоках.

(Частично цитируя себя из статьи, написанной в 2010 году)

Если вам не нужно оставаться родным, вы всегда можете попробовать инструменты, которые пытаются немного облегчить процесс, например ddrescue (package 512k ) и его спутник gddrescue (sourceforge ), чтобы визуализировать ошибки.

    
ответ дан Tatjana Heuser 06.04.2014 в 12:51
2

Что касается второй половины вашего вопроса «Это ошибка, которую я получаю при использовании dd»: я вижу пару возможностей.

  1. Обратите внимание на разницу в команде, которую вы набрали, против принятого ответа; вам не хватает ~ перед /USB_image . Другими словами, вы пытаетесь вывести корень вашей файловой системы вместо своего домашнего каталога.
  2. /dev/sdd не может быть правильным диском. Запустите sudo fdisk -l и сравните размер диска с известным размером USB-накопителя. Например, я знаю, что это мой USB-накопитель, потому что он близок к 16GB: Disk /dev/sdf: 15.8 GB, 15805186048 bytes .
ответ дан MDMower 22.11.2014 в 10:13