web-dev-qa-db-fra.com

Comment obtenir la traduction correcte du chemin vfat pour mes disquettes?

Mon père m'a laissé un lot de disquettes 3,5 pouces créées avec Windows 95 (néerlandais). Je veux copier leur contenu. Mon seul ordinateur avec un lecteur de disquette tourne sous Ubuntu 12.04.5 LTS.

Après avoir installé le paquet udisks,

udisks --mount /dev/fd0

monte le contenu sur /media/floppy0.

Cela convient pour les fichiers avec des noms de fichiers DOS standard (8.3), mais cela ne va pas du tout quand il y a autre chose:

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?.├╛?

(Il n'y a pas que les noms de fichiers insensés: rsyncle contenu de cette disquette m'a donné un fichier de 5 Go, et à ce moment-là, je n'ai plus assez d'espace disque.)

Mon hypothèse: la traduction du nom de chemin VFAT est tentée incorrectement ou pas du tout.

Comment rectifier cela?

Les pages trouvées avec Google, telles que celui-ci , suggèrent que vous devez fournir les valeurs appropriées pour les options de montage iocharset et codepage .

Est-ce vrai? Quelles valeurs utiliser? Et tout d’abord: comment les fournir?

udisks ignore silencieusement les options de montage fournies:

$ 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

(Ce n'est pas ce que j'ai dit!)

Un échec direct mount échoue silencieusement:

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

(ne retourne rien; la monture ne fonctionne tout simplement pas).

Au moins de cette façon, je peux vérifier quelles codepages sont valides:

$ 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

mais ce dont j'ai besoin, c'est un moyen de réellement mount avec une telle page de codes.

Qu'est-ce qui ne va pas? Que puis-je essayer?

5
Reinier Post

Un stockage long peut avoir affecté ces disquettes et leur FAT pourrait être cassé. Ceci est hautement possible, car même une disquette fraîchement écrite ne saurait être considérée comme un support fiable. J'ai souvent fait 2 copies des mêmes données quand des disquettes étaient utilisées il y a plusieurs années.
Il y a un bon wiki expliquant l'utilisation des options codepage et iocharset de la commande mount pour le système de fichiers FAT.
La prise en charge directe des disquettes dans les systèmes plus récents n’est pas fiable. Même en 12.04, leur support était en proie à de multiples bugs. L'un d'eux , par exemple.

1
whtyger

L'argument de commande mount-t spécifie le type de système de fichiers. Votre utilisation est proche, mais vous avez besoin d'un espace entre le -t et le type de système de fichiers. Changez votre commande de:

$ Sudo mount -tvfat /dev/fd0 /mnt

à:

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

Désolé, je n'ai pas accès à mes machines avec des lecteurs floopy pour montrer à quoi ressemble la sortie dans la vie réelle.

0
WinEunuuchs2Unix

Si vous additionnez les tailles de fichier de chaque fichier de votre exemple comportant des noms de fichier légitimes et des dates de création, le total est de 328 058. Il s’agit des résultats qu’on pourrait s’attendre à trouver sur une disquette de cette capacité (1 Mo).

De toute évidence, vous ne trouverez pas un fichier de 5 Go ou un fichier créé en 1959 ou 2038 dans un périphérique de stockage vieux de près de 30 ans.

Si votre problème est de récupérer des fichiers légitimes à partir de ces anciennes disquettes, cela semble possible maintenant en copiant simplement les fichiers avec des noms, des tailles de fichier et des dates raisonnables.

Je n'ai aucun matériel pour tester quoi que ce soit aussi ancien et vous ne pouvez que supposer que les disques Udisks prennent en charge ces disques anciens. Je suppose que peut-être pas. Ou du moins pas sans faille.

Il existe peut-être une méthode pour bricoler un schéma de montage qui lira correctement la structure de fichiers sur ces périphériques, mais cela semble demander beaucoup de travail si tout ce que vous voulez, c'est restaurer les fichiers.

Sudo mount /dev/fd0 /floppy -t vfat

"devrait" travailler ...

Win95 était il y a bien longtemps et je ne pense pas que NTFS était là à l'époque. Mais bien sûr, une possibilité [bien que distante] est que la disquette ne soit pas formatée en tant que périphérique FAT.

Ensuite, il y a toujours le problème de compatibilité du contrôleur natif IDE par rapport à une interface USB et si ce dernier (que je suppose que vous utilisez) communique fidèlement avec le matériel et le support du lecteur.

0
jones0610