2008-10-18

MacBook Pro 復活

修理に出していた MacBook Pro が帰ってきた。

修理内容は、普通にロジックボードの交換(と認識しなくなっていた iSight の載っているボードの交換)。 例のリコール(とまでは言わないか)についてはなんにも書いてなかった。ちなみに修理後に System Profiler.app で グラフィックスの項目を見ると以下のようになっている。修理前のものがないので比較はできなけど……

さっそく、代替機の起動ディスクに使っていた外付けのハードディスクの中味を Disk Utility の「復元」で MacBook Pro の内蔵ディスクに上書き。今回は、~/Library/Preferences/ByHost 以下のファイルで以前使っていたものを、新しい UUID に合わせてコピーしたので、手での設定変更は最小限にすんだと思う(参考: 6 x 3: 結局 MacBook を購入 のコメント)。

ネットブート環境での設定の共有とは違って、今回は一回限りの変更なので、手抜きをして以下のようなシェルスクリプトを使った(本当はもうちょっと複雑だけど、それぞれに事情も違うだろうから骨の部分だけ)。もちろん、先に ~/Library/Preferences/ByHostのバックアップをまるごと取っておくのは言わずもがな。ついでに、いつもうっかりしてしまうので、実行すべきコマンドを別ファイルに出力しておき、その内容を確認したあとで(たとえば、ファイル名に空白が入っていたりすると困っちゃうことなんかもあるので、その部分を編集したりして)、それを実行するようにしている。

#!/bin/sh

DIR=/Users/rok/Library/Preferences/ByHost
ORIGUUID=00XXXXXXXXXX
NEWUUID=00YYYYYYYYYY

cd $DIR
ls *${ORIGUUID}.plist | while read origfile
do
prefix=$(expr "$origfile" : "\\(.*\\)\\.${ORIGUUID}\\.plist")
newfile=$(echo "$origfile" | sed -e s/${ORIGUUID}/${NEWUUID}/)
if [ -f "$newfile" ]; then
echo cp "$newfile" "$newfile.bak"
fi
echo cp -p "$origfile" "$newfile"
done
新旧の UUID は予め調べておいて直書きしている。UUID の付け方はまともに扱おうとするとけっこう面倒臭いので、一度普通にログインしてすぐにログアウトしたあとで、~/Library/Preferences/ByHost をのぞけば、タイムスタンプでだいたいの見当はつくと思う。

今回は念のためにシングルユーザモードで起動して作業したのだけど、キーマップが US になってしまい、日本語キーボードではbackquote「`」がどこにあるか分からず、自分としては珍しく「$()」を使っている。まぁ、それはどうでもいい話。

というわけで、(たぶん)無事復活してめでたしめでたし。

No comments: