2017年5月25日木曜日

Windowsのゴミ箱に本当の「ゴミ」が見つかった

Windowsのゴミ箱に、「ごみ箱」フォルダにも表示されず、ディスククリーンアップでも削除されず、chkdskでもエラーと検出されないファイル・フォルダが存在しうることが分かりました。
今回見つけたケースでは、ごみ箱から完全削除しようとしたはずの約100GByteのフォルダ・ファイルがごみ箱フォルダ($RECYCLE.BINフォルダ)の下で埋もれてしまい、通常の方法では表示することも削除することも出来ず、無駄にディスク容量を消費していたという事例です。

実際にこのようなことが起きうるのは、

  • ごみ箱に入れたファイルを完全削除する途中で、エクスプローラがクラッシュしたとき
というレアケースではあるのですが、さすがに100GByteもの容量を無駄にはできないので、その領域を回復する方法を調べてみました。

ポイントは、ごみ箱($RECYCLE.BIN)フォルダ内でのごみファイルの管理方法です。
'$I'で始まるファイルは、ごみ箱にいれたファイル・フォルダのインデックスファイル(元のファイル名・場所、および、ファイル時刻などを記録している)のようです。そして、'$R'で始まるファイルは、ごみ箱に入れたファイル・フォルダの本体のようです。
エクスプローラから見ている仮想的な「ごみ箱」フォルダでは、この$Iインデックスファイルの一覧を表示しているようですが、上のように「完全削除」の途中でエクスプローラがクラッシュした場合、'$I'インデックスファイルだけが削除されて、本体の'$R'ファイル・フォルダは削除されずに残っていることがあります。このとき、'$R'ファイルは「ごみ箱」内のファイルとしては見えませんので、削除されないままずっとディスク上に居座ってしまっていました。
そして、このファイルはディスククリーンアップでも見つけてくれない(クリーンアップ自体も$Iファイルしか見ていない?)し、chkdskでもエラーとはならない($Rファイル・フォルダは、ファイルシステム上では完全な状態なのでエラーにならないのは当たり前ですが)のが、困ったところです。

ここまで分かれば、修正は簡単です。
インデックスファイルと本体は一対になっているはずですから、$R+識別子.拡張子と同じ識別子・拡張子を持つ$I+識別子.拡張子というファイルが存在しなければ、そのファイルはごみ箱の中で捨てることができない本当の「ゴミ」になっています。実際、今回見つけたケースでは完全削除しようとしていた約100GByteのフォルダが$R+識別子の名前で見つかりましたので、そのフォルダを削除したところ、解放されるはずだったディスク容量が本当に解放されて空き容量が増えました。
もちろん、この操作はエクスプローラからはできませんので、コマンドプロンプトで実行しました。

2017年5月12日金曜日

マウスの操作間違いでメールを誤送信してしまった・・・

というのを、英語では何と表現するのだろう?と思っていました。
マウスでメーラーの何かボタンやメニューを押そうとしたとき、ちょっと手が滑って隣のボタンを押してしまった・・・、そういうことは誰にでも経験があるはずですね。
日本人が考えると、

mistake of mouse operation

んっ? あまりにも直接的な英訳だなぁ。

と思ったら、仕事でやり取りしているアメリカ人がそれをやらかしてしまったようで、そのお詫びメールの中に次のような表現がありました。
slip of the mouse
なるほど、そういう言い方があるんですね。ネイティブが使うのだから、自然な響きなんだと思います。勉強になりました。
続けて、このようにありました。

did not intend to send yet,  まだ送るつもりじゃなかったんだ。
please ignore previous email  さっきのメールは無視してくれ。

こんな風に付け足すと良いのですね。