У меня есть флешка, которая по какой-то причине не читается. Я хочу сделать его изображение для хранения, чтобы я мог попытаться получить данные из изображения позже.
Как мне создать такой немного идентичный образ флешки?
Это ошибка, которую я получаю при использовании 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»: я вижу несколько возможностей.
~
перед /USB_image
. Другими словами, вы пытаетесь вывести корень вашей файловой системы, а не в свой домашний каталог. /dev/sdd
может быть неправильный диск. Запустите sudo fdisk -l
и сравните размер диска с известным размером USB-накопителя. Например, я знаю, что это моя флешка, потому что она близка к 16 ГБ: Disk /dev/sdf: 15.8 GB, 15805186048 bytes
. Используйте 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-накопитель?
Ошибки ввода-вывода обычно указывают на аппаратные сбои, а не на повреждения файловой системы.
Также попробуйте получить анализ данных SMART устройства, если оно доступно. Это может говорить о таких вещах, как, например, если устройство перегревалось, включалось в течение длительного времени, имеет поврежденные сектора, подвергалось воздействию больше, чем X нет. Gs и т. д.
Вы можете создать образ USB-накопителя (или другого устройства) с помощью dd
.
, например,
dd if=<usb device> of=usb.img
Вы можете добавить дополнительные параметры в dd
для оптимизации команды (например, bs
).
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
.
dd
, как упоминалось в предыдущем постере, является родным путем. Вы захотите, чтобы он продолжался с ошибками, поэтому начните его с:
dd if=<usb device> of=<new file on disk with enough space> bs=<should match your blocksize> conv=noerror,sync
Важной частью является последняя: conv=sync
говорит dd дополнить все те блоки, которые он мог прочитать. только частично с нулями, поэтому результирующее изображение может иметь несколько нулей слишком много, но будет структурно равным слоистому диску за вычетом ошибок чтения. conv=noerror
позаботился об этих ошибках чтения, сказав, что dd следует перейти к следующему блоку. На этом этапе размер блока имеет значение, потому что если он больше, чем необходимо, чтобы пропустить ошибку, читаемые данные будут потеряны здесь. Размер блока всегда должен быть вдвое больше - если есть сомнения, 512k
должен помочь.
Тогда я бы предложил:
(Частично цитирую себя из статьи, написанной еще в 2010 г.)
Если вам не нужно оставаться нативным, вы всегда можете попробовать инструменты, которые пытаются несколько облегчить процесс, такие как ddrescue (пакет gddrescue
) и его компаньон ddrescueview
( sourceforge ) для визуализации ошибок.