ddrescue 2 ГБ USB на раздел reiserfs

975
panny

Я почти два дня спас мою флешку объемом 2 ГБ в пустой раздел Reiserfs на 100 ГБ с помощью этих двух команд:

ddrescue -f -n / dev / sda / dev / sdb8 logfile

ddrescue -d -f -r3 / dev / sda / dev / sdb8 logfile

так как я не знал, что делать дальше, я попытался смонтировать / dev / sdb8, чтобы посмотреть, что внутри. Но смонтировать: вы должны указать тип файловой системы. До этого я смог смонтировать пустой раздел reiserfs до того, как ddrescue написал на нем. Есть ли способ прочитать спасенные данные сейчас?

Благодарю.

1

2 ответа на вопрос

2
Gilles

Большинство USB-накопителей используют формат разделов ПК и имеют один раздел. Это означает, что первый сектор (512 байт) диска содержит таблицу разделов (и, возможно, загрузчик), а остальная часть диска содержит раздел.

Вы могли бы спасти только раздел с

ddrescue -f -n /dev/sda1 /dev/sdb8 logfile ddrescue -d -f -r3 /dev/sda1 /dev/sdb8 logfile 

Но теперь, когда у вас есть весь диск, вы можете получить его раздел.

losetup -o 512 /dev/loop0 /dev/sdb8 mount -r /dev/loop0 /mnt 

Если /dev/loop0он уже используется, возможно, вам придется выбрать другой номер. Команда losetup -fвернет номер устройства свободной петли .

Однако манипулирование разделами в работающей системе подвержено ошибкам, поэтому вместо этого я рекомендую перенести данные с USB-накопителя в обычный файл. Либо скопируйте весь диск, а затем используйте losetupна образе диска (16М × 130 рассчитывается как размер, превышающий размер USB-накопителя):

dd bs=16M count=130 </dev/sdb8 >/var/tmp/usb-stick.disk 

Или скопируйте только раздел и смонтируйте образ раздела напрямую:

tail -c +513 </dev/sdb8 | dd bs=16M count=130 >/var/tmp/usb-stick.partition mount -o loop,ro /var/tmp/usb-stick.partition /mnt 

И для дальнейшего использования ddrescueв первую очередь вы могли бы передать выходной файл, а не выходной раздел .

Привет! Не удается смонтировать -r / dev / loop0 / mnt mount: вы должны указать тип файловой системы, чтобы я попробовал монтировать -r -t usbfs / dev / loop0 / mnt, и это сработало, но содержимое было устарело ... четыре папки 001 002 003 004 и текстовый файл «устройства»? panny 13 лет назад 0
@panny: `usbfs` является псевдофайловой системой (например,` proc` и `sysfs`); он игнорирует устройство. Возможно, у вас есть файловая система `vfat`, но если` mount` не определил файловую систему автоматически, возможно, что-то не так в другом месте. Как именно вы создали петлевое устройство? Что означает `file - Gilles 13 лет назад 0
файл - panny 13 лет назад 0
#parted / dev / sdb8 unit B print Предупреждение: GNU Parted обнаружил несоответствие версии интерфейса libreiserfs. Найдено 1-1, требуется 0. Поддержка ReiserFS будет отключена. Ошибка: / dev / sdb8: нераспознанная метка диска panny 13 лет назад 0
Я создал петлевую файловую систему, например: losttup -o 512 / dev / loop0 / dev / sdb8 panny 13 лет назад 0
@panny: первое объяснение, которое мне приходит, это то, что самое начало диска повреждено, поэтому структуры файловой системы повреждены. Журнал ddrescue показывает ошибки в первом килобайте или около того? Если это так, вам придется обратиться к другим методам восстановления, таким как поиск известных шаблонов, чтобы попытаться восстановить файлы. Была ли это файловая система FAT? Если это так, попробуйте `dosfsck` (на ** копии ** (в обычный файл) того, что вы сейчас имеете в` / dev / sdb8`). Gilles 13 лет назад 0
ты имеешь ввиду начало / dev / sdb? Это звучит невозможно, так как я могу смонтировать все разделы (кроме / dev / sdb8 сейчас) и читать и писать. Я не могу обнаружить ошибки в лог-файле: panny 13 лет назад 0
# current_pos текущий статус 0x7CFF0200 + # размер позиции pos 0x00000000 0x7D000000 + panny 13 лет назад 0
dosfsck / dev / sdb8 dosfsck 3.0.10, 12 сентября 2010, FAT32, LFN Размер логического сектора (65535 байт) не кратен размеру физического сектора. вернулся: 1 panny 13 лет назад 0
@panny: Я имел в виду, что подозревал, что начало USB-накопителя повреждено (но может быть другое объяснение). То, что у вас есть в начале `/ dev / sdb8` (то есть то, что у вас было на флешке), не похоже на файловую систему или образ диска с разделом ПК. Попробуйте добавить вывод `head -c 1024 Gilles 13 лет назад 0
1
RobotHumans

вы скопировали диск в раздел - вот почему есть разница,
если вы хотите смонтировать раздел для монтирования в обычном режиме, вы должны были использовать / dev / sda1 в качестве входного файла

вам нужно вырезать раздел из файла диска или использовать смещения для установки руководства:
http://www.andremiller.net/content/mounting-hard-disk-image-incключ-partitions-using-linux

вы также сможете легко увидеть содержимое с помощью autopsy / sleuthkit, доступного через apt-get или как rpm с CERT.org

обычно я копирую диск или раздел в файл ... так проще работать. затем, если я скопировал диск в файл, разделил разделы на отдельные файлы или смонтировал их, как описано в предыдущем уроке. наконец, у меня есть файлы разделов, которые я могу смонтировать и cp -pR для новых разделов.