iPod touchでrm -rf ~/してしまった。

iPod touchでホームディレクトリの大切なファイルを消してしまいました。

login as: root
root@192.168.1.23's password:
Last login: Tue Mar 18 02:50:35 2008 from 192.168.1.21
# ls
Sites   bin

rm -rf ~/を行っている間にあわてて電源を切ったので、いくつかのファイルは残っていて、ホームディレクトリがかろうじて生きているため、SSHでログインすることができました。以前と同じように電源はつくのですが、iTunesと接続する絵のままで他に何もできない。電源ボタンを長押しすると、通常通り電源を切るウィンドウがでてきて、電源を切ることは可能でしたが、電源をつけてもまたiTunesとの接続の絵しか表れません。

あきらめてiTunesを使って復元しようとしてiTunesにつなげると

登録記録が見つからないため、iTunesiPod"iPod"に接続できませんでした。

と表示され、iPod touchiTunesが認識してくれませんでした。。。

きっとrootのホームディレクトリにあったiTunesが読み取るべきファイルを消してしまったことが原因でしょう。


iPod touchのファイル構成
を見てみるとrootのホームディレクトリ(/var/rootは/private/var/rootへのシンボリックリンク)には"/private/var/root/Media/iTunes_Control/iTunes"という名前からしiTunesが読み取りそうなディレクトリがあったらしいです。

というわけでsshでrootログインをしてそれっぽいファイルを名前だけ同じにして作成しました。

# mkdir -p Media/iTunes_Control/iTunes
# cd Media/iTunes_Control/iTunes
# pwd
/var/root/Media/iTunes_Control/iTunes
# touch IC-Info.sidv
# touch iTunesControl
# touch iTunesDB
# touch iTunesPrefs

としたらiTunesが認識して、リカバリーモードのiPodを見つけました。復元してください、というメッセージが出て認識してくれました。よかった。*1

みなさんもiPod touchでrm -rf ~/してしまったときは急いで電源を切って、上の方法を試してみてはいかがでしょうか。

*1:でも修復させた後またsshで入ったらMediaなんでディレクトリはなかった不思議〜