Como obter a tradução correta do caminho vfat para meus disquetes?

6

Meu pai me deixou um lote de disquetes de 3,5 polegadas criados com o Windows 95 (em holandês). Eu quero copiar seu conteúdo. Meu único computador com uma unidade de disquete é o Ubuntu 12.04.5 LTS.

Depois de instalar o pacote udisks ,

udisks --mount /dev/fd0

monta o conteúdo em /media/floppy0 .

Isso é bom para arquivos com nomes de arquivos DOS padrão (8.3), mas dá muito errado quando há algo mais presente:

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

(Não são apenas os nomes de arquivos sem sentido: rsync ing o conteúdo deste disquete me deu um arquivo de 5GB, ponto em que fiquei sem espaço em disco.)

Meu palpite: a tradução do nome de caminho VFAT é tentada incorretamente ou não é de todo.

Como corrigir isso?

As páginas que encontrei com o Google, como este , sugerem que é uma questão de fornecer valores apropriados para as opções iocharset e codepage mount .

Isso é verdade? Quais valores usar? E, em primeiro lugar: como fornecê-los?

udisks silenciosamente ignora todas as opções de montagem fornecidas:

$ 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

(Não foi o que eu disse!)

Um mount direto falha silenciosamente:

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

(não retorna nada; a montagem simplesmente não funciona).

Pelo menos dessa maneira, posso verificar quais codepage s são válidos:

$ 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

mas o que eu preciso é uma maneira de realmente mount com essa página de código.

O que está errado? O que mais eu posso tentar?

    
por Reinier Post 04.06.2017 / 22:31

3 respostas

1

O armazenamento longo pode ter afetado esses disquetes e seu FAT pode ser quebrado. Isso é altamente possível, porque mesmo o disquete recém-escrito não pode ser considerado uma mídia confiável. Eu costumava fazer 2 cópias dos mesmos dados quando usava disquetes há muitos anos atrás.
Existe um bom wiki explicando o uso das opções codepage e iocharset do comando mount para o sistema de arquivos FAT.
O suporte direto de disquetes em sistemas mais novos não é confiável. Mesmo em 12.04, seu suporte foi afetado por vários erros. Um deles , por exemplo.

    
por whtyger 16.06.2017 / 12:56
0

O argumento mount do comando -t especifica o tipo de sistema de arquivos. Você está próximo do seu uso, mas precisa de um espaço entre o -t e o tipo de sistema de arquivos. Mude o seu comando de:

$ sudo mount -tvfat /dev/fd0 /mnt

para:

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

Desculpe, não tenho acesso às minhas máquinas com drives floopy para mostrar como é a saída da vida real.

    
por WinEunuuchs2Unix 11.06.2017 / 17:51
0

Se você adicionar os tamanhos de arquivo de cada arquivo em seu exemplo com nomes de arquivos e datas de criação legítimos, o total será 328.058. Trata-se dos resultados que se esperaria encontrar em um disquete dessa capacidade (1MB).

É evidente que você não encontrará um arquivo de 5 GB ou um arquivo criado em 1959 ou 2038 em um dispositivo de armazenamento de quase 30 anos.

Se o seu problema é recuperar arquivos legítimos desses disquetes antigos, isso parece possível agora apenas copiando os arquivos com nomes razoáveis, tamanhos de arquivo e datas.

Eu não tenho hardware para testar nada tão antigo e você pode apenas assumir que os udisks suportam essas unidades antigas. Eu estou supondo que talvez não. Ou pelo menos não na perfeição.

Pode haver um método para preparar um esquema de montagem que leia corretamente a estrutura de arquivos nesses dispositivos, mas isso parece ser muito trabalhoso se tudo o que você deseja fazer é recuperar os arquivos.

sudo mount /dev/fd0 /floppy -t vfat

"deveria" funcionar ...

O Win95 foi há muito tempo e eu não acho que o NTFS estivesse por aí. Mas é claro que uma possibilidade [ainda que remota] é que o disquete não esteja formatado como um dispositivo FAT.

Depois, há sempre o problema de compatibilidade do controlador IDE nativo versus uma interface USB e se o último (que suponho que você esteja usando) comunica-se fielmente com o hardware e a mídia da unidade.

    
por jones0610 14.06.2017 / 03:50