Как получить правильный перевод пути vfat для моих дискет?

Мой отец оставил мне партию 3,5-дюймовых "дискет", созданных с помощью Windows 95 (голландский). Я хочу скопировать их содержимое. Мой единственный компьютер с флоппи-дисководом работает под управлением Ubuntu 12.04.5 LTS.

После установки udisks пакет,

udisks --mount /dev/fd0

монтирует содержимое на /media/floppy0,

Это хорошо для файлов со стандартными (8.3) именами DOS-файлов, но все идет не так, как надо:

ls -l /media/floppy0 /bin/ls: cannot access /media/floppy0/vï▐ffφl.: Input/output error /bin/ls: cannot access /media/floppy0/$Θh²çⁿ.tΘ: Input/output error /bin/ls: cannot access /media/floppy0/ëG╟+.|√═: Input/output error /bin/ls: cannot access /media/floppy0/t╛n}φa.2σ═: Input/output error total 13395579
-r-xr-xr-x 1 rp root 1476370920 Dec 25  1959 ╣?.???
-rwxr-xr-x 1 rp root  641204006 Jan 30  1980 └≤½Θ- ps.QR3
-r-xr-xr-x 1 rp root 1346403387 Dec 19  1905 6?|■└ó<|.í7|
-rwxr-xr-x 1 rp root      48514 Jan  1  1980 BL.WDB
-rwxr-xr-x 1 rp root       3728 Aug 25  2000 CADRE.WP
-rwxr-xr-x 1 rp root 2857697280 Dec 31  1979 COM d????????? ? ?  ?             ?            ? ??ëG?╟?+.|√═
-rwxr-xr-x 1 rp root 2294480508 Dec 11  1966 ï?=|Ω
-rwxr-xr-x 1 rp root     152428 Dec 23  1991 KAART2.WKS
-rwxr-xr-x 1 rp root      12909 Jan  1  1980 KABRO.WKS
-rwxr-xr-x 1 rp root       8554 Nov 28  1991 K.BRO drwxr-xr-x 2 rp root       1024 Nov 28  1991 KOPIE
-rwxr-xr-x 1 rp root      47250 Nov 28  1991 L39.ZND
-rwxr-xr-x 1 rp root          0 Dec 19  1991 LIJST39.WEK d????????? ? ?  ?             ?            ? t?╛n}φa.2σ═
-r-xr-xr-x 1 rp root 1963196670 Jan  6  2038 ├┬?.ⁿ?u d????????? ? ?  ?             ?            ? vï▐ffφl?.???
-rwxr-xr-x 1 rp root      21774 Dec 31  1979 WIELEK.WDB
-rwxr-xr-x 1 rp root      22612 Dec 31  1979 WIELGA.WDB
-rwxr-xr-x 1 rp root      23255 Dec 22  1991 WIEL.WBL
-rwxr-xr-x 1 rp root      27044 Jan  1  1980 WIEL.WDB
-rwxr-xr-x 1 rp root          0 Jan  8  1980 δ4ÉIBM.3.2 d????????? ? ?  ?             ?            ? $?Θh²çⁿ?.t?Θ
-rwxr-xr-x 1 rp root 3137341625 Nov 26  1907 Θ╨■φ? s?.├╛?

(Это не просто бессмысленные имена файлов: rsync Содержимое этой дискеты дало мне файл объемом 5 ГБ, после чего у меня закончилось место на диске.)

Мое предположение: VFAT перевод пути выполняется неправильно или не выполняется вообще.

Как это исправить?

Страницы, которые я нашел в Google, такие как эта, предполагают, что вопрос заключается в предоставлении соответствующих значений для iocharset а также codepage варианты монтирования.

Это правда? Какие значения использовать? И, прежде всего: как их снабдить?

udisks молча игнорирует любые опции монтирования:

$ udisks --mount /dev/fd0 --mount-options='ro,iocharset=utf8,codepage=1252,foo=bar'
Mounted /org/freedesktop/UDisks/devices/fd0 at /media/floppy0
$ fgrep fd0 /proc/mounts
/dev/fd0 /media/floppy0 vfat ro,nosuid,nodev,relatime,uid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0

(Это не то, что я сказал!)

Прямой mount молча терпит неудачу

$ sudo mount -t vfat /dev/fd0 /mnt
mount: block device /dev/fd0 is write-protected, mounting read-only
$ fgrep fd0 /proc/mounts

(ничего не возвращает; монтирование просто не работает).

По крайней мере, так я могу проверить, какие codepage s действительны:

$ sudo mount -t vfat -oro,codepage=850 /dev/fd0 /mnt
$ fgrep fd0 /proc/mounts
$ sudo mount -t vfat -oro,codepage=85 /dev/fd0 /mnt
mount: wrong fs type, bad option, bad superblock on /dev/fd0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail  or s

но мне нужен способ на самом деле mount с такой кодовой страницей.

Что случилось? Что еще я могу попробовать?

3 ответа

Решение

Длительное хранение могло повлиять на эти дискеты, и их FAT мог быть поврежден. Это очень возможно, потому что даже недавно написанная дискета не может считаться надежным носителем. Я часто делал 2 копии одних и тех же данных, когда использовал дискеты много лет назад.
Есть хорошая вики, объясняющая использование codepage а также iocharset варианты mount команда для файловой системы FAT.
Прямая поддержка дискет в новых системах не является надежной. Даже в 12.04 их поддержка страдала от множества ошибок. Один из них, например.

mount командный аргумент -t указывает тип файловой системы. Вы близки в использовании, но вам нужно пространство между -t и тип файловой системы. Измените свою команду с:

$ sudo mount -tvfat /dev/fd0 /mnt

чтобы:

$ sudo mount -t vfat /dev/fd0 /mnt

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

Если вы добавите размеры файлов каждого файла в вашем примере, которые имеют допустимые имена файлов и даты создания, общее количество составляет 328 058. Речь идет о результатах, которые можно ожидать на дискете с такой емкостью (1 МБ).

Очевидно, что вы не найдете файл объемом 5 ГБ или файл, созданный в 1959 или 2038 году, на устройстве хранения данных, которому почти 30 лет.

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

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

Может существовать метод для объединения схемы монтирования, который будет правильно считывать файловую структуру на этих устройствах, но это кажется большой работой, если все, что вы хотите сделать, это восстановить файлы.

sudo mount /dev/fd0 /floppy -t vfat

"должен" работать....

Win95 был давным-давно, и я не думаю, что NTFS была тогда. Но, конечно, одна [хотя и удаленная] возможность заключается в том, что дискета не отформатирована как устройство FAT.

Кроме того, всегда существует проблема совместимости встроенного контроллера IDE с интерфейсом USB, а также с тем, насколько точно (как я предполагаю, вы используете) последний поддерживает связь с оборудованием и носителями диска.

Другие вопросы по тегам