Как получить правильный перевод пути 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 ing содержимое этой дискеты дало мне файл размером 5 ГБ, после чего у меня закончилось дисковое пространство.)

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

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

Страницы, которые я нашел в Google, например, 3,5-дюймовые дискеты с дискетами , предполагают, что это вопрос предоставления соответствующих значений для 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

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

По крайней мере, таким образом я могу проверить, какие 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 с такой кодировкой.

Что не так? Что еще я могу попробовать?

6
задан 12 June 2017 в 18:20

5 ответов

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

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

Если ваша проблема заключается в восстановлении (! d2)

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

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

sudo mount /dev/fd0 /floppy -t vfat

«должны» работать ....

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

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

0
ответ дан 18 July 2018 в 12:10

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

$ sudo mount -tvfat /dev/fd0 /mnt

на:

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

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

0
ответ дан 18 July 2018 в 12:10

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

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

Если ваша проблема заключается в восстановлении (! d2)

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

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

sudo mount /dev/fd0 /floppy -t vfat

«должны» работать ....

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

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

0
ответ дан 24 July 2018 в 19:55
  • 1
    Я использую интерфейс IDE. Я знаю, что команда mount должна работать, а это не так. Как я писал, установка с udisks отлично работает и чтение файлов со стандартными именами DOS также работает нормально, но есть дополнительные файлы и каталоги с невозможными именами. – Reinier Post 14 June 2017 в 10:20

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

1
ответ дан 24 July 2018 в 19:55

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

$ sudo mount -tvfat /dev/fd0 /mnt

на:

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

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

0
ответ дан 24 July 2018 в 19:55
  • 1
    Я изменил его в вопросе. Спасибо за ваше предложение. – Reinier Post 12 June 2017 в 18:21

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

Похожие вопросы: