プロが教える店舗&オフィスのセキュリティ対策術

 PCのまとめて来たいろいろな不調の修復中のどの段階で起きたのか全く分からないのが痛いのですが、ほぼ修復の行程が済んで、ATA増設ボードに繋いでいたHDDがちゃんと見れるかとエクスプローラで中身を見たら・・・ファイル名が[XXX~1.(拡張子)](XXXは全角で元ファイル名の頭の部分)となってることが判明しました。まるでDOSのファイルみたいで。ファイルは全部ではありませんが、かなりの数が変わってました。それに対する規則性は分かりません。また対象はそのATAボードに着けていたHDDです(ただしIDEにはシステムドライブ1台しか着けてなかった)。とはいえ、ボードに着けていた4台のHDD全部ではないです、なにせ1台見たところでびっくりして他は見れなかったので、見ることでファイル名が変わる異常だったらどうしよう・・・と思い。
 ファイル名がDOSみたいというと、DOSっぽい操作といえば、DOSプロンプトでchkdskをやったことぐらい(初めてやりました)。でもやったドライブは別のドライブだった気がするし、短時間でファイル名書き換えが起きるものでしょうか? 他にはDOS起動のパーティションマジック(6という古いバージョン)も着けたままやりましたが、今まで何度やってもこんな事件は起きた事はありません。ただ、パーティションマジックそのものは、起動前にHDDにかなりアクセスするため、書き換える時間はたっぷりあったかも!? それともこんなことをするウィルスが?
 ということで、どうしてこうなってしまったんでしょうか? 今はここまでしか思い出せません。こういう事例は今までにあるものでしょうか? 全く理由が分からず混乱していて、これからファイル名の書き戻しをしなければならないことに頭が痛いです。ファイル名は修復で元に戻るものではないので・・・。

A 回答 (3件)

#1です



記憶に自信が無かったので、ちょっと調べてみました。

FATファイルシステムのファイルに関する情報(ファイル名や位置情報、属性、作成日等)のことを「ディレクトリエントリ」と呼ぶそうです。
Win95以前は1ファイルに対し1つのディレクトリエントリを使用していました。

しかし、Win95以降の拡張FATシステムは、1ファイルに対しディレクトリエントリを複数使用することにより、ロングファイル名を実現しました。

DOS版のソフトは、ロングファイル名を保持しているディレクトリエントリを理解できず、ディレクトリエントリが破損していると認識してしまうことがあるそうです。

今回の問題は、DOSプロンプトでchkdskを行った事が原因である可能性が大きいと思われます。

ディレクトリエントリは、すでにchkdskにより書き換えられてしまっていると思うので、ファイル名を付け直さない限り元のファイル名に戻る事は無いと思います。

しかし、ディレクトリエントリが書き換えられているだけなので、ファイル自体の破損は起きていないと思います。

ファイル名の文字数の計算は半角文字を1文字、全角文字を2文字としますので、名前の書き換えを免れたファイル・フォルダは、文字数の合計が8文字以下では無いかと思います。

この回答を、書きながら思い出したのですが、私がWin95を使用していた時に1度だけ同じ様な経験をした様な記憶が微かにあります。
そのとき被害を受けたファイルはEXCELやWORDのファイルでロングファイル名を使っていたファイルだったと思います。

この回答への補足

 返事が遅くなってすいません、こんな大事な件なのになんで気付かなかったんだろう・・・本当に申し訳ないです。

>しかし、ディレクトリエントリが書き換えられているだけなので、ファイル自体の破損は起きていないと思います。

ということは、ファイルシステムにおけるソフト的な異常であって、ハード的な異常、つまりHDD、もしかすると他のパーツにも故障は無いと、現時点では考えてもいいでしょうか? これならファイル名書き戻しは面倒ですが、故障によるHDDとファイルの損失さえなければこちらとしてはそれでいいので。更にこれから実は外しておいて被害に遭ってないHDDを戻そうと考えていて、PCに戻したとたんに「!」なんてことがなければいいので・・・こんなバカなことは無いですよね。それともちろんこの先も、事件の発端であるchkdskさえしなければ大丈夫であろうということが分かれば。
 XPのコマンドプロンプトでは問題が無かったので、Meでも同じ機能と思ったDOSプロンプトを気軽に使ってしまったのがそもそもの間違いだったということでしょうか。これからはまた何かあったらいけないので、ファイル名の先頭を半角にしておこうと思わずにはいられません。日付だったら不自然ではないので。

 しかしそれにしてもなぜOSが入ってるHDD(パーティションで分けてあるCドライブだけではなく、物理的に同じHDDの別ドライブ全部)だけが被害を免れたのでしょうか? これはかなり不思議です。最初の質問にも書いたように、あるドライブでのみchkdskコマンドを使っただけのはずなのに、他のHDDは書き換えられて、OSが乗ってるHDDだけが無事!? とはいえ仕組みが分かればなんてことないのかもしれませんが。
 この部分は不明でも問題無いと思うので回答は無くてもいいです。問題が出たらまた質問を・・・。

補足日時:2004/09/29 18:54
    • good
    • 0

「他のパーツにも故障は無いと、現時点では考えてもいいでしょうか?」


ファイル名の書き換えに関しては、ソフト的な要因によるものと考えていいでしょう。

しかし、事の発端であるPCの不調に関してはなんともいえません。
これは、今後突き詰めて行く必要があるでしょう。

chkdskに関してですが、XPとMEでは、まったく別物です。
XPのコマンドプロンプトはDOSプロンプトの互換プロンプトですが内部的には32Bitで動作(DOSプロンプトは16Bit)です。
    • good
    • 0
この回答へのお礼

>ソフト的な要因によるものと考えていいでしょう
ですよね、普通はそうですけど、実は今回はPC自体の異常から続く一連の処理の最後に起きたものだったんで、確証を得られるまで安心できなくて・・・。

 とりあえずこれからは例の作業に関しては十分気をつけます。こんなこと忘れはしないですけど。ということで、今回は大変お世話になりました、ありがとうございました。

 ついでですが、略されたせいでファイル名が同じになって、どれがどれなんだか中身を見ないと分からないのがたくさん・・・これからファイル名の戻し作業に苦労します。

お礼日時:2004/10/02 15:57

FATの拡張領域に何らかの問題が発生したためと思われます。



そもそも、HDD上のファイルは「ファイル名及び位置情報」と「データ」が別々に記録されています。
DOSの時代のFATシステムのファイル名は8+3形式(ファイル名8文字+拡張子3文字)でした。
それが、Windowsになり拡張FAT領域を持つことによりロングファイル名に対応しました。
この、拡張FAT領域に問題が発生し部分的にロングファイル名が失われてしまえば十分おきうる問題だと思います。
ファイル名が変わっていないファイルのファイル名がすべて半角8文字、全角4文字以下だとすれば拡張FAT領域自体がクリアされている可能性もあります。

この回答への補足

 回答ありがとうございます。素人ながらも、なんとなく全体の状況は理解できた感じです。
 が、どうしてそうなってしまうのか、そしてそうならないようにするにはどうしたらいいのか、これについてはどうなんでしょうか? もちろん直せるなら直したい・・・。Windowsマシンを買ってから4~5年経ちますか、こんなこと初めてです、それもこんな大問題が。
 また質問の中で「戻らない」と書いた元ファイル名ですが、やはりこれは“書き換えが起きてダメになってしまった”のか、それともどこかがおかしくて“今は変な風に表示されてるだけ”なのか、どちらでしょうか?
 実は回答の中の単語を使ってgoogleで検索したら、某FAQサイトのある人はボリュームラベルに同じ問題が起きて、しばらくしたらHDDが認識しなくなったと・・・。ちなみに回答は無かったです、あまりに〈珍問題〉で直しようが無いのかと落胆です。
 中身を調べてみたところ、
♯1/先頭から全角のファイル(フォルダもでした)は100%近くが質問のタイトルどおりになってましたが、所々に数個書き換えから免れたファイル・フォルダが存在。
♯2/先頭が半角文字だと書き換えは起こってない(例えば→(ファイル).jpgというファイル名だと、先頭が半角括弧なので書き換えは起きてない)。
♯3/先頭が全角だとその後に半角が来ても書き換えが起きた(全角・半角・半角・全角~1という半角6文字分に書き換えられ)。
他にもあるかもしれませんがだいたいこんなところです。
 またATAボードのことだけ書いてましたが、マザーIDEに付け直したHDDもすでになってました、ということは最終作業ではなく、まだそのHDDが付いていたときに起きたわけで・・・もう何がなんだか分かりません。
 一応、Cドライブとプログラムが入ってるDドライブだけウィルススキャンをしましたが何も出てきませんでした。そして標準スキャンディスクをしたら異常ドライブ全部にエラーが発見されて修復が行われました。以上です。

補足日時:2004/09/24 20:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!