Windows XP上で、「ディスクの管理」ツールを使って、拡張領域内にあるパーティション(論理ボリューム)を1つ消したら、他のパーティションまで消えてしまいました。
なぜ!? そういうものなの!?
(この図は、TestDiskというツールで修復した後の様子)
もう冷や汗はでてくるし、胸がキューっと痛くなるような・・・
とりあえず、心を落ち着けて、知ってる方法で、消えてしまったパーティションを修復してみようと試みました。
以前書いた、gpartというツールを使った方法です。
とりあえず、このやり方で、ファイルを救出することはできました。
でも、以前にも書いたんですが、FreeBSDのfdiskコマンドって、拡張パーティションを操作できないみたいなので、仕方なく、もともと論理ボリュームだったNTFSなパーティションを、基本パーティションとして復活させたんですが、その場合、
FreeBSD上では、mount_ntfsでマウントできて、ファイルを取り出すことができる
のですが、
Windows XP上では、ディスクはフォーマットされていません、フォーマットしますか?みたいなことを言われてしまい、
「オイコラ!」と叫ぶことになります。ようするに、なぜかWindows XP上では、NTFSとしてアクセスできないんです。
FreeBSDでNTFSをマウントして中を見ると、「$」で始まるファイル名とかあって、それらが、ファイルシステムの管理情報みたいのを持っているみたいなんです。
たぶん、基本パーティションか拡張パーティションかによって、その「$」で始まるファイルの保存場所の記録の仕方が違うんじゃないかな~っと予想しているんですが、まあ、私の勝手な推測です。よくわかりません。
☆
というわけで、やっぱり、もともと論理ボリュームだったNTFSパーティションは、ちゃんと論理ボリュームとして復活させてやればいいんです。
先に書いたように、どうも、FreeBSDのfdiskコマンドって、拡張パーティションを操作できないらしいです。
portsにある、sysutils/linuxfdiskを使ったら、どうやら論理ボリュームを作れるみたいなんですが、セクタ単位でパーティションを編集する方法が、パッと見ではわかんなくて(メガバイトで数字をいれろとか、シリンダ境界にあわせようとしたりとか・・・)、断念しました。
で、ふとportsの中で見つけた、sysutils/testdiskというツール。これを使ったら、メニューを選んでいくだけで、とくに頭を使うことなく、ほぼ自動で、パーティションの修復までできてしまいました。なんかスゴイ!
TestDiskは、X Window Systemではなく、テキストベースで動くツールです。
☆
なんでそんなにたくさんパーティションを切るんだ?とか言われそうですね。
まあ、昔からのクセです。