Не удается смонтировать диск FAT32 под Ubuntu Linux

7

У меня есть 320 ГБ USB-накопитель с одним большим разделом FAT32. Том прекрасно монтируется на моем компьютере Mac OS X 10.5.8, а Дисковая утилита на Mac не сообщает о проблемах с этим томом. Я могу читать / записывать все данные на диске.

Однако, когда я подключаю диск к моей системе Ubuntu 9.10 Karmic, раздел не монтируется. dmesg|tailговорит:

[ 2752.334822] scsi3 : SCSI emulation for USB Mass Storage devices
[ 2752.335040] usb-storage: device found at 3
[ 2752.335044] usb-storage: waiting for device to settle before scanning
[ 2757.330301] usb-storage: device scan complete
[ 2757.331005] scsi 3:0:0:0: Direct-Access     WD       3200AAK External 1.65 PQ: 0 ANSI: 0
[ 2757.331772] sd 3:0:0:0: Attached scsi generic sg2 type 0
[ 2757.355647] sd 3:0:0:0: [sdb] 625142448 512-byte logical blocks: (320 GB/298 GiB)
[ 2757.360737] sd 3:0:0:0: [sdb] Write Protect is off
[ 2757.360749] sd 3:0:0:0: [sdb] Mode Sense: 00 00 00 00
[ 2757.360755] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 2757.367618] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 2757.367631]  sdb: sdb1
[ 2762.797622] sd 3:0:0:0: [sdb] Assuming drive cache: write through
[ 2762.797636] sd 3:0:0:0: [sdb] Attached SCSI disk
[ 2822.866228] FAT: bogus number of reserved sectors
[ 2822.866237] VFS: Can't find a valid FAT filesystem on dev sdb1.

Когда я бегу, fsck.vfat -a /dev/sdb1я получаю:

root@cartman:~# fsck.vfat -a /dev/sdb1
dosfsck 3.0.3, 18 May 2009, FAT32, LFN
Logical sector size is zero.

Погуглив «vfat логический размер сектора равен нулю», мы не пришли к единому мнению относительно решения. Я бы предпочел не переформатировать диск, если это возможно, потому что он содержит около 280 ГБ данных, для которых я бы не стал искать временное хранилище. Какие-либо предложения?

мистифицировать
источник

Ответы:

4

Для меня fsck.vfat /dev/sdd1возвращение " Logical sector size is zero." было потому, что это был не vfat , а скорее новый exfat . Поэтому мне пришлось установить соответствующие инструменты tools ( apt-get install exfat-utils exfat-fuse), чтобы иметь возможность монтировать и fsck (используя fsck.exfat /dev/sdd1вместо этого или, что еще лучше, просто fsck /dev/sdd1и fsck автоматически определяет файловую систему)

Матия Налис
источник
2

Во-первых, я попытался бы получить доступ к chkdsk.exe, если это возможно, и запустить его на диске только в том случае, если есть проблема с файловой системой, и Linux просто более требователен к этому.

Кажется, что у fat32 есть резервный загрузочный сектор в секторе 6. Вы всегда можете попробовать заменить сектор 0 на этот сектор и посмотреть, поможет ли он вам, но я, вероятно, попробую маршрут chkdsk и посмотрим, поможет ли это вам вообще.

Крис Дисбро
источник
2

Это происходило еще несколько раз ... похоже, это проблема, характерная для дисков, отформатированных как FAT-32в Mac OS X 10.5. Я зарезервировал диски на моем Mac и переформатировал диски на lnux, mkfs.vfatпосле чего их можно было использовать. Не ответ на мой вопрос, но я хотел закрыть это, поэтому я просто публикую то, что сделал. (Если у кого-то есть другие идеи, ответьте на этот вопрос, и я попробую их, и приму ваш ответ, если он работает!)

мистифицировать
источник
1

В сети так удивительно мало полезной информации об этой ошибке и столько шума, что стало быстрее искать ответы в исходном коде.

Размер логического сектора записывается со смещением 0x0B вашего раздела, с небольшим окончанием, размером 2 байта. Обычно это должно быть кратно размеру вашего физического сектора (например, 512, 1024, 2048 и т. Д.).

Вы можете сами покопаться в байтах и ​​посмотреть, насколько сильно он облажался ( будьте осторожны! Последняя команда записывает данные на диск ):

dd if=/dev/sdb1 bs=512 count=4 > ./part_header
<use your favorite hex editor to explore and fix it>
dd if=./part_header_fixed of=/dev/sdb1 bs=512 count=4

Или используйте утилиту "testdisk".

Огурец
источник