web-dev-qa-db-ja.com

フロッピーの正しいvfatパス変換を取得する方法は?

父は、Windows 95(オランダ語)で作成された .5インチの「フロッピー」ディスク のバッチを残しました。内容をコピーしたいです。フロッピードライブを備えた私の唯一のコンピューターは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?.├╛?

(無意味なファイル名だけではありません:このフロッピーの内容をrsyncingすることで5GBのファイルが得られ、その時点でディスク容量が不足しました。)

私の推測:VFATパス名の変換が誤って試行されるか、まったく試行されません。

これを修正する方法は?

this one などの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

(何も返しません。マウントは機能しません)。

少なくともこの方法で、どのcodepagesが有効かを確認できます。

$ 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する方法です。

なにが問題ですか?他に何ができますか?

5
Reinier Post

長いストレージがこれらのフロッピーに影響を与えている可能性があり、FATが壊れている可能性があります。新しく書き込まれたフロッピーでさえ、信頼できるメディアとは見なされないため、これは非常に可能です。何年も前にフロッピーを使用したときに、同じデータのコピーを2つ作成することがよくありました。
FATファイルシステム用のcodepageコマンドのiocharsetおよびmountオプションの使用法を説明する wiki があります。
新しいシステムでのフロッピーの直接サポートは信頼できません。 12.04でも、サポートは複数のバグに悩まされていました。 そのうちの1つ など。

1
whtyger

mountコマンド引数-tは、ファイルシステムタイプを指定します。使用方法は近いですが、-tとファイルシステムタイプの間にスペースが必要です。コマンドを次から変更します。

$ Sudo mount -tvfat /dev/fd0 /mnt

に:

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

申し訳ありませんが、実際の出力がどのように見えるかを示すためにfloopyドライブを備えたマシンにアクセスすることはできません。

0

正当なファイル名と作成日を含む例の各ファイルのファイルサイズを合計すると、合計は328,058になります。これは、その容量(1MB)のフロッピーディスクで予想される結果に関するものです。

明らかに、5 GBのファイルや、1959年または2038年に作成されたファイルは、ほぼ30年前のストレージデバイスにはありません。

問題がこれらの古いフロッピーから正当なファイルを回復することである場合、適切な名前、ファイルサイズ、および日付のファイルをコピーするだけで可能になりました。

私はこの古いものをテストするためのハードウェアを持っていませんし、udisksがこれらの古代のドライブをサポートしているとしか想定できません。おそらくそうではないと思います。または少なくとも完璧ではありません。

これらのデバイスのファイル構造を適切に読み取るマウントスキームを作成する方法があるかもしれませんが、ファイルを回復するだけであれば、多くの作業のように思えます。

Sudo mount /dev/fd0 /floppy -t vfat

動作するはずの「...」.

Win95はずっと前のことであり、NTFSはその頃とは思いません。しかしもちろん、[リモートではあるが] 1つの可能性は、フロッピーがFATデバイスとしてフォーマットされていないことです。

そして、ネイティブIDEコントローラーとUSBインターフェースの互換性の問題が常にあり、後者(使用していると思います)がドライブハードウェアおよびメディアと忠実に通信するかどうかです。

0
jones0610