顛末
きっかけは消せないファイルができてしまったことだ。Linuxからrsyncで機械的にコピーしたファイルが、ファイル名に妙な文字を含んでいるらしくターミナルからもFinderからもどうやっても消せなくなってしまったのだ(Finderはファイルの存在すら認識せず、0 itemsと表示する)。lsはできる。
% lsls -lをするとサイズは0である。
☁
%
ところがrmをすると
% rm **をファイル名一覧に展開するところはできるのに、rmが認識できていない。
rm: ☁: No such file or directory
%
ディレクトリごと動かすことはできる。
% ls a/ごみ箱に移したらごみ箱を空にすることができない。mvができてrmができないからか、と妙に納得してしまう。
☁
% mv a b
% ls b/
☁
%
原因
原因はわかっている。rsyncでLinuxからファイルを大量にコピーしたからだ。Linuxで作ったファイルではなく、その前のOSからrsyncしたファイルだと思う。Windowsかもしれない。rsyncがどんな処理をしてこういう妙なファイルを作ってしまったのかはわからないが、Linuxからrsync --deleteで空のディレクトリをコピーしてもこのファイルは消えてくれなかった。
対処
こういうファイルを放置したらどういう結果になるかは知らないものの、気持ち悪いことには違いない。バックアップをとるたびにエラーメッセージを見るのも愉快ではない。とはいえ、OSの再インストールしか直す方法がないらしい。となると、購入したてのいまがチャンスだ。LeopardはDVDから立ち上げてデータを失わずに再インストールできる。UNIXでは当たり前のことだけれど、すべてがGUIで完結するのはすごいと思う。
結果
問題のファイルを/tmpに置いてから再インストールしたら、このファイルは無事なくなった。というよりも/tmpにあったファイルはすべてなくなった。再インストール自体はDVDを2枚使う待ち時間ばかり長い作業だったが、ユーザディレクトリもインストールしたアプリケーションも失うことなく、OSの領域だけきちんと復元できた。
失われたもの
前記のとおり、/tmpにあったファイルは全部なくなった。さらに、/var、/etcにあったと思われる設定・データもなくなった。具体的には- /etc/sudoers
- /etc/ntp.conf(時刻の設定)
- /var/run/utmpx(ログイン履歴)
- ホスト名(どのファイルかは不明)
0 件のコメント:
コメントを投稿