Как восстановить файловую систему Fat32 в Linux

Как восстановить файловую систему Fat32 в Linux

Вот что произошло:

Я использовал ноутбук и получил доступ к некоторым данным на моем USB-накопителе. Затем я закрыл ноутбук, переведя систему в спящий режим. USB-накопитель все еще был подключен. После того, как ноутбук полностью перешел в спящий режим, я вынул его (свет был выключен, так что, должно быть, он был без питания). Сегодня я разбудил ноутбук без USB-накопителя. Теперь, когда я снова подключаю его, файловая система не монтируется автоматически.

Я попробовал вручную смонтировать его:

chi mnt # mount -t vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 usb/
mount: wrong fs type, bad option, bad superblock on /dev/sdb1,
       missing codepage or helper program, or other error
       Manchmal liefert das Syslog wertvolle Informationen – versuchen
       Sie  dmesg | tail  oder so

Проделав это, dmesg | tailя обнаружил следующее:

FAT-fs (sdb1): bogus number of FAT structure
FAT-fs (sdb1): Can't find a valid FAT filesystem

Итак, я попробовал сделать это fsck.vfatна перегородке флешки, чтобы посмотреть, можно ли это как-то исправить:

chi mnt # fsck.vfat /dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 
dosfsck 3.0.9, 31 Jan 2010, FAT32, LFN
Cluster size is zero.

Есть ли способ восстановить файловую систему на флешке с помощью инструментов Linux? Я использую Gentoo.

Также не следует ли считать такое поведение ошибкой или, по крайней мере, опасным? Извлечение флешки, когда система находится в спящем режиме, кажется мне обычным случаем использования. Кроме того, если вы ее вынете, очень легко забыть вставить ее обратно перед тем, как снова включить систему, и я не думаю, что это должно убить вашу файловую систему таким образом. Я готов сообщить об этой ошибке, но я не знаю, какой список рассылки/багтрекер будет правильным.

РЕДАКТИРОВАТЬ:

Я нашел несколько предложений в Интернете. Однако, если я попробую это с помощью:

dd if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 of=sector6.bin bs=512 count=1 skip=6 conv=noerror,sync
dd if=sector6.bin of=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0-part1 bs=512 count=1 conv=noerror,sync,notrunc

Я все еще получаю ту же ошибку после этого. Я также пробовал использовать CHKDSK F: \R \Tпод Windows, как предлагалось в некоторых сообщениях, но этот инструмент только сообщает о диске как о RAWи, таким образом, неподдерживаемом.

решение1

Прежде чем что-либо делать с USB-накопителем, следует создать его образ:

dd bs=4k of=stick.img if=/dev/disk/by-id/usb-JetFlash_Transcend_4GB_QTMFKJQQ-0\:0

Затем вы надежно убираете флешку и используете файл stick.img для своих нужд, вместо того чтобы уничтожать еще больше данных.

Есть ли на нем важные файлы? Проверитьhttp://www.cgsecurity.org/wiki/PhotoRecдля инструментов восстановления. Он восстанавливает не только фотографии, как следует из названия.

После восстановления данных создайте новую файловую систему на USB-накопителе, поскольку старой больше нельзя доверять ваши данные. (mkfs.vfat)

Связанный контент