新・闘わないプログラマ No.394

フロッピーのフォーマット


いつの頃からだったか、もう記憶が定かではないのですが、Windowsのエクスプローラでフロッピーのフォーマットをしようとしても、「フォーマットが正常に完了しませんでした」とか、そういうメッセージがでてどうもうまく行かないことがたまに(よく?)ありました。もちろんメディア自体に問題がある場合もあるのでしょうけど、それにしては頻繁にそういうことが起こっている印象です。
Windows 95の頃には、こういう問題はそれほど多くなかった記憶があるのですが、Windows 2000やXPあたりでは結構頻繁にそういう現象に遭遇しました。一度でもこういう現象になったフロッピーのメディアは他のWindows PCでも、読むこともフォーマットも不可能な状況になってしまい、結局「フロッピーなどどうせそんな高いものじゃないし」ということで、そういうやつは捨てて、新しいのを使用することにしていました。
どういう状況でフォーマットの不具合が出やすいか、これも経験上なのですが、Macなどの他OSでフォーマットしたことのあるものはダメなことが多い、けれど他のPCやOSでFATでフォーマットされていたものの再フォーマットのときも問題が発生することがありましたし、まっさらなメディアでもだめなことがありました。
そんなわけで私は用心のために、フロッピーのフォーマットにはWindowsを使わず、その昔に買ってある時期からはディスクの肥やしになっていたMS-DOS(実際にはIBMが売っていたPC DOSというやつでしたが)を立ち上げて、それでフォーマットしていました。
当時のDOSコマンドでは、

   format a: /u

という感じで“/u”というスイッチを付けて実行すると、強制的にフォーマットされました。「強制的」とはどういうことかというと、もうこの辺の記憶はあやふやなところがあるのですが、確か、普通にフォーマットすると、実はフォーマットされたメディアをもとに戻すのに必要な(フォーマット前に戻すための)情報を保存しておく、というような処理を行っていました。誤ってフォーマットしてしまったメディアを元に戻せる、というのがあるバージョン以降のDOSの「売り」だった記憶があります。
つまり、「フロッピーのフォーマット」と言っても、実はフロッピーの中をまっさらにするためにすべてのセクタにデータを書き込むようなことをするわけではなく、確か、

  1. フロッピーの全セクタを読み込んで、正しく読めるかどうか確かめる(メディアのチェック)
  2. FATやルートディレクトリの情報をフロッピーの特定の場所に保管(復旧情報の保存)
  3. FATやルートディレクトリの内容を消去(これでフォーマットを行ったことを意味する)

なんてことをやっていました。ただし、この場合、FATじゃない別の形式でフォーマットされたフロッピー(Macのやつとか)とか、何らかの理由で読めないセクタがあるフロッピーとかの場合には、フォーマットの処理が途中でおかしくなってしまう可能性がありました。ここで“/u”スイッチを付けてフォーマットを実行すれば、

  1. 強制的に全セクタにデータを書き込む。
  2. FATとルートディレクトリを作成する

ということを行い、どんなメディアであれ強制的にフォーマットができるようになっていました。これを使えば、どんな場合でもフォーマットができました(メディアに物理的な問題があるのでなければ)。
ところがWindowsになると、この「強制的なフォーマット」をやろうとしても、どうもうまく行かないことがあるみたいなのです。Windows 9xで、DOSプロンプト上で上記の強制フォーマットを実行しても、メディアの元のフォーマットが変だと、Windows自体が「ブルースクリーン状態」になったりすることがあります。Windows 9xにはMS-DOSで起動する機能がありますから、ということで、それでformatコマンドを実行すると、今度はうまく行くこともあるし、やっぱりエラーで弾かれたりすることもあるし。
一方、Windows NT/2000/XP系では、MS-DOSで起動する機能は当然ありません。またformatコマンドに“/u”オプションが無いみたいで、明示的に強制フォーマットはできないようです(マニュアル上は)。これだと、元のフロッピーがFATフォーマットではないと、うまくフォーマットができなかったりすることがあるようです。必ずしも絶対に出来ないというわけでもなくて、再現性に乏しいので困ってしまいます。ドライブの機種によっても違っているような印象もありますし、そもそもメディア自体が不良品である可能性もありますので、ちゃんと調べるのは結構厄介かも知れません。
そういえば余談ですが、その昔、Windows NTにMacフォーマットのフロッピーを入れて再フォーマットしようとした(単に読もうとしただけだったかも、もう記憶があいまい)らブルースクリーンが出たことがあったような。それでもって、稼動中のサーバを落としたことがあったような……。

このフロッピーのフォーマットができたりできなかったりする問題、以前にいろいろと調べてみたのですが、いまいち情報が集まりませんでした。あまり情報が無いところを見ると、もしかして、私も周りだけの話なんでしょうか、これ。
結局のところ、私自身、その後フロッピーなどほとんどまったく使わなくなってしまい、「そんなん、どうでもいいや」と、そのままほったらかしにしてあったのですが、ちょっと「フロッピーを使いたいけど、うまくフォーマットができん」という話を振られて、「えー、まだフロッピーを使うつもり?」とか思いつつ、こんなことを書いてみました。
しかし、「確か」とか「たぶん」とか「記憶が云々」とか、そんないい加減なあやふやなことしか書いてないや、今回。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp