2006 年 11 月 2 日 (木) 自宅

さて、実はここしばらくわかっていたことなのですが、私のMacBook、ゴミ箱が空に出来ない状態が続いていたのです。で、昨日ふとディスクユーティリティでディスクをチェックしてみると…。

エラー:基になるタスクが終了時に失敗したことが報告されました

というメッセージが出て、ディスクユーティリティが検査を放棄!

[image] [image]

ちなみにこのメッセージでGoogleを検索すると、

『ディスクユーティリティでボリュームを修復中に「基本タスクが失敗を報告しました」と表示される』

というページが引っかかる。このページによると…。

このまれな問題が発生した場合は、できる限り早急に問題を解決してください。

重要なデータやファイルをできる限りバックアップし、他社製のディスクユーティリティを使ってドライブの修復をお試しください。お使いの Mac OS X のバージョンで動作する他社製ディスクユーティリティを確認の上、ご利用ください。

重要なデータやファイルをできる限りバックアップし、問題のあるボリュームに Mac OS X を消去してインストールします。

あべし!

てなことで、冷静に考える。このような異常なメッセージは例のゴミ箱から消せないフォルダに原因があるに違いない。

このフォルダ、ちょっといじってみました。そうすると…こりゃやばいわ。完全にファイルシステムがぶっ壊れてます。なにしろ、こんな感じですから。

  1. Finderからはフォルダの中身にフォルダがあるように見える
  2. コマンドプロンプトからlsを実行すると、フォルダは空に見える
  3. rm -rfでも directory not empty で消せない
  4. Finderからフォルダの中身のディレクトリ名を短いのに変えていくと、変えた結果のディレクトリは消えるが、何故か新しい名前のディレクトリが出現する
  5. ずっと4.の作業をしていたら、ついにFinderからディレクトリは見えなくなったが、やっぱりゴミ箱でもrmでも消せない
  6. ディスクユーティリティで一貫性をチェックすると、そもそもエラーが出て異常終了するためチェックできない

はい、原因はわかっています。以前、ファイル共有の検証をする際に、MacOSの限界に挑戦する!という感じの変なフォルダを山ほど作り、それをAFPでコピーしてみたり、いっぺんWindowsに移した末にCIFS経由で外から書き込んだり、ということをやっていたら出来てしまったフォルダなのです。

ここで、冷静に考えてみました。私はFileVaultを使ってホームディレクトリを暗号化しているので、結局これはFileVaultの中の問題です(FileVaultは、ディスクイメージをマウントする機構なので、中になんの矛盾があろうが、本体のディスク的にはファイル1個の中の問題で、最後の手段としてはそのイメージファイルを消せば直るはず)。

つまり、このフォルダが原因であれば、それ以外のホームディレクトリの内容を別の場所にバックアップを取り、いっぺん私のホームディレクトリをFileVaultのイメージファイルごと消去してもう一度作り直し、リストアすればいいのではないでしょうか?

そう思って、まずは一時ユーザを管理者権限で作成しました。

[image]

まずはこのユーザでディスクユーティリティ。相変わらず例のメッセージで失敗します。

[image] [image]

なるほど、そうくるか、ということで、再度自分のユーザでログイン。

いつも、バックアップを取っているディスクはあるのですが、今回は念のため、別のディスクをUSB2.0で接続し、rsync を使ってバックアップを取ってみます(私はログインシェルがcshなので、cshでの書き方になります)。

% cd
% mkdir /Volumes/外部ディスク名/backup
% rsync -avEH --exclude .Trash {.??*,*} /Volumes/外部ディスク名/backup

単純コピーにrsyncを使うので、rsyncのオプションにuは不要です(uを付けると遅くなります)。それより、リソースフォーク(というよりExtended Attributes)とハードリンクのコピーもするため、EとHのオプションを忘れないようにしてください。

で、MacOSはFireWireのディスクから起動できるので、いざというときのための起動ハードディスクをFireWireで繋ぎ、再起動。起動時にOptionキーを押して、FireWireを選択します。

[image] [image]

ここで、ディスクユーティリティを起動。そうすると…、なぜか今回は無事に修正できました。やった!

[image] [image] [image]

ということで、再度内蔵ディスクから起動。一時ユーザでログインします。「システム環境設定」から、遠慮なく私のアカウントを削除(ホームディレクトリも同時に消すオプションを付ける)します。FileVaultのため、ホームディレクトリは一枚のイメージファイルなので、瞬時に消去されます。

で、直後に同じユーザ名で自分のアカウントを再作成します。ちょっとUIDがどうなるか心配だったのですが、旧UIDと同じ501番で作成されました。よかった。

% id hosokawa
uid=501(hosokawa) gid=501(hosokawa) groups=501(hosokawa), 81(appserveradm), 79(appserverusr), 80(admin)

ここで、もう一度新しい自分のアカウントでログインします。

[image]

今度は

% cd
% rsync -avEH --exclude .Trash /Volumes/外部ディスク名/backup/{.??*,*} .

で、ファイルをリストアし、終了したらすぐにログアウトして、再度ログインします。やった、デスクトップその他も、消去前の姿に戻っています。アプリケーションの動作も問題なし!

ディスクユーティリティでも正常な状態に戻っています。

[image] [image]

ということで、最後にFileVaultでホームディレクトリの暗号化ををかけ直して終了です。

[image] [image]

今回は、FileVaultに、ファイルシステムが致命的に壊れた場合でも、イメージファイル一枚なので、その影響が局所化されるという、思わぬ利点があることがわかりました。これはいいかも。

ところで、MacOS Xのユーザになってそろそろ半年、トラブル対処力も結構着いてきた感じです。これにて一件落着、めでたしめでたし。


このサイトへのリンクには何ら許可は必要ありません。 ただし、無断で写真をダウンロードして他の場所に掲載したり、 画像加工の素材として利用するなど、再配布に当たる行為はしないようにしてください。 また、このサイトへのリンクであることを明示すること無しに <img src="..."> などで他のページの内部に画像ファイルを取り込むことも、 ご遠慮下さい。