AppleのMacBook Airの現行機種にはUSBドングルがインストールメディアとして 付属しているが私が使っている初代Airにはなく、以前HDからSSDに交換したとき にはリモートインストールで10.5のインストールに4時間、10.6へのアップに4時間 と非常に時間がかかった。
ある平日の朝、早朝の開発作業のためMacBook Airの電源を入れたところ起動画面の ままなかなか立ち上がらないため、電源ボタン長押しでいったん電源を切ったところ、 起動後すぐに電源が落ちてしまうようになってしまった。
何度電源を入れても同じように落ちてしまう。デバイス自体が不安定になってい る時はたまに正常に動作したりするが、そうでもないのでハードディスクが ハードウエアー的なダメージではなく論理的に壊れている可能性が高いと感じた。
ブート先を設定する起動後のOptionキーの起動で、元のディスクラベルが読めて いるので上の推測はかなり当たっていると思われる。
リモートインストールでブートしてターミナルからdiskutilコマンドをつかって修復を 試みたが、SSDドライブのボリュームは認識されるがverifyVolumeでfaileする。 しかしSMART StatusがVerifiedになっているのでSSDのハードウエア的な故障の可能性 はなくなった。
最悪の事態に備えて、とりあえずバラしてSSDを取り出してZIFが入るUSBケースを 使ってFreeBSD amd64 7.4Rのマシンでda0をddで吸い取ってみた。(結局未使用)
> time sudo dd if=/dev/da0 of=ssd_backup bs=4096 conv=noerror,sync 29360128+0 records in 29360128+0 records out 120259084288 bytes transferred in 22118.761889 secs (5436972 bytes/sec) 37.451u 537.370s 6:08:39.09 2.5% 26+1495k 3396+921093io 12pf+0w
ネットで知ったオープンソースのディスク修復ツールTestDiskをBSDでビルドして 試してみたが特に異常は確認できなかった。これで、パーティションの異常ではな くて、HFS部分の論理的な不整合の可能性がほぼ確定した。
Mac mini 10.4.11に上のUSBケースをつないだところやはりdiskutilでは修復でき なかった。 しかしボリューがディスクトップに現れていたので、とりあえずファイルを コピーしてみる。
sh-2.05b$ diskutil verifyVolume /dev/disk1 Error (-9958) encountered attempting to verify/repair disk1 sh-2.05b$ diskutil verifyVolume /dev/disk1s2 Started verify/repair on volume disk1s2 SSD Checking HFS Plus volume. Checking Extents Overflow file. Checking Catalog file. Invalid record count The volume SSD needs to be repaired. Error detected (-9972) while verifying/repairing volume disk1s2 SSD sh-2.05b$ diskutil repairVolume /dev/disk1s2 Started verify/repair on volume disk1s2 SSD Checking HFS Plus volume. Checking Extents Overflow file. Checking Catalog file. Invalid record count Volume check failed. Error detected (-9972) while verifying/repairing volume disk1s2 SSD
Airで行っている作業はほとんど開発なのだが、半分くらいの開発案件はオープン ソースなのでsfにバックアップがあるが、猫やカンガルーや訳ありのソースは オープンにしていないのでコピーできて九死に一生だった。
あまり興味がなかったのだがTime Machineやディスクユーティリティーの復元 など、最近は障害対策がAppleの一つのターゲットのように思えた。
いろいろ調べてみたところ、 Intel MacはUSBドライブから 起動できることがわかった。 その後 ここを見つけて、 USBメディアにインストールDVDをコピーしてリモート ではなく、ローカルのドライブからインストールできることがわかったので、SSD を元に戻して、元のHDDにパーティションを4つ作り、10.5のインストールDVDを2枚 と10.6のアップグレードDVDをコピーしてインストールしてみた。
初代Air付属の10.5のインストールDVDは二枚になっていて、一枚インストール後に リブートして二枚目読むため、コピーしたボリュームの名前はDVDと同じにしておく 必要があった。
コピーに使ったMac mini G4は久しく使っていなかったので、当初DVDメディアの認識 されずかなり焦ったが、何度か再起動などを行っていたところ認識できるようになった。
10.5をインストールしてユーザー登録などの設定を行って、10.6をインストールして
インストールした。10.6は既に10.6.8まで来ているので、ネットワークの設定後に
ソフトウェア・アップデートを二回実行して最新にする。あと開発に必要なXcode
3.2.5をインストール。Xcode3系は3.2.6が最終であったが、なんらかの理由があり
3.2.5を使っていたように思うのだが、理由は思い出せない3.2.6はiOS 4.3
以降のサポートになりiPhone 3GがiOS 4.2.1で止まったので、友人にもらった
SIMなしiPhone 3GのJailBreak環境での開発の為3.2.5を使っている。
後から気がついたのだがXcode 3.2.5でMac OS X 10.4 SDKを選択してもSDKは入っ ていなかった。以前は何らかの操作をした可能性があるが、全く思い出せない。 SDKはXcode3.1.2のPackagesに入っているMacOSX10.4.Universal.pkgを利用すると よいようだ。
10.6のDVDはアップグレード版と通常版があったがアップグレード版は10.5が インストールされていない使えない仕様だったので、ケチって通常版を買わな かったことがかなり悔やまれる。
この状態でインストールしたシステムのパーティションをUSB HDの4つ目の パーティションに復元しておいた。復元という翻訳が伝わりにくいのだが 要するにバックアップで、一度同じ容量以上のメディアに書き出しておいて、 それをもう一度復元ですると元に戻るということになる。 40Gのシステムボリュームの復元には書き出し&検証で40分くらいかかった。
ホームディレクトリをシステムと別ボリューム設定していたところ、パスを間違えた ようでログインできなくなり、復元したシステムを元に戻して、どうにかなった。 40Gのシステムボリュームの復元に30分くらいだった。同じ復旧作業に2日かかった ことを考えるとかなり優秀である。圧縮したディスクイメージを戻す場合は、もう少し かかると思われる。
リモートインストール 10.5+10.6のインストールとソフトウェア・アップデート | 10時間 |
USBハードディスクにコピーしてローカルでインストール DVDメディアのコピーと10.5+10.6のインストールとソフトウェア・アップデート | 5時間 |
ディスクユーティリティーで復元(ボリューム間で圧縮なし) | 30分 |
ディスクユーティリティーでディスクイメージをスキャンして復元 | 90分 |
Time Machineから復元 | (Mac mini 2010で15分) |
Apple USB SuperDriveを買ってDVDメディアでインストールする方法もあるだろうが おそらく上記のハードディスクにコピーしてのインストールとさほど時間は変わら ないのではないかと思われる。
後から解ったのだが、上のようにボリューム間でバックアップを取ることは 一般的ではなくて、新規ディスクイメージでファイルに落として、復元はその ファイルを使っておこなうのが一般的のようだ。10.5のディスクユーティリティは 一旦マウントを解除しないとディスクイメージが作れなかったが、10.6では自動的に マウントを解除するようになっていた。 バックアップしたボリュームをマウントしていじってしまうと復元できなくなる 可能性もあるのではないかと思われるが、検証はしていない。
今回のようなHFSの論理的不整合により起動しなくなったときの対処としては、 あらかじめディスクユーティリーで復元でバックアップしておいて、戻すのが よいと思われる。システム/アプリケーション側はディスクユーティリーの復元で、 個人のファイルはTime Machineでバックアップするのが理想なのだと思う。
起動できなくなったときはお先真っ暗だったが、あまり悪く思わないで対応しようと 思っていたら、どうにかなってほっとしている。交換したHDが有効に利用できて出費 がほとんどなく、解決できたことは大変よかった。
ちょうどWWDCが開幕して4世代目のAirが発表された。起動しなくなったときには 新しいのを買わなきゃだめかと思ったが、どうにか買わないですんだ。
クラッシュしたときに復旧が面倒なのでできるだけシステムはいじらないように しているが、 ここを参考にスクリーンキャプチャに陰がつかないようにしている。
リモートインストールはAppleらしくハードウエアのファームとアプリケーション プログラムの連携で実現したすばらしい仕組みなのだが、処理時間を考えると 現実的にはかなり厳し状態であった。リモートインストールを廃止してドングル をつけたAppleはよい判断だったと思う。
後から気がついたのだがUSBの外付けドライブなどでインストールした後に、 起動ディスクでインストールしたドライブを選んでいないと、起動が非常に 遅くなる。当たり前だのクラッカーだが、仕事でMacを使わなくって勘が鈍ったのか、 気かつくのにずいぶん時間がかかった。
起動ディスク選択なし | 1分12秒 |
起動ディスク選択あり | 42秒 |
platformioをupgradeしたらビルドできなくなったので、USBドライブでインストーラ を起動して、Time Machineからシステム全体を復元してみた。当初USBドライブの10.6の インストーラで起動できなかったが、何度か試したら起動できた。復元には2時間くらい かかった。なぜかドックのねこるすのアイコンが消えてしまったが、特に大きな問題は なさそう。(2017/12/02)
FPGAの開発環境がWindowsでしか用意されていなくて、オープンソースなどでも対応 不可能なようなので、WindowsをBoot Campで導入する事にした。いろいろ不可解な 事が起きたので、メモを残しておく。
上記のようにときどきファイルシステムのクラッシュに見舞われていたので、ドライブ に二つのパーティションを作って、OS用とホームに分けて、OS側はディスクユティリティ でホーム側はファイルのコピーでバックアップをとるようにした。 ところが、Boot Camp アシスタントはパーティションを切っている使えない事が 分かった。
このため、パーティションを一つにして、Time Machineでバックアップをとる事に した。パーティションを一つにしたことでホームのパスが変わったのだがEi-Fiの アプリが、設定(Library/Eye-Fi/Settings.xml)にデータのパスを直書きしている ので修正した。
Mac OS XのインストールはDVDをUSBディスクにコピー(復元)してインストールでき たが、Windows 7はできないようなので、あきらめてDVDドライブを購入した。 Windows 7のDSP版が9000円くらいでDVDドライブが6000円ほどの出費になった。 購入したドライブは純正のドライブだが、MacのUSBポートに直づけしないと使えない ようで、少し不便だが、あまり使う事は無いので、しょうがない。
10.6はもはや現行のOSの2世代前でAppleのダウンロードサイトのサポートが無くなっ ているのか、Boot Camp アシスタントのデフォルトの選択では実行できなくなっている。 解決策はこれ
10.6に入っているBoot Camp アシスタントは3.0.4で、このバージョンではWindows 7 のISOイメージをコピーしてのインストールはできない。おそらくLIONなどに入って いる4.xでは可能になっているのではないだろうか。またコピーしたUSBメモリからの ブートはおそらくISOからUDF変換してコピーされていて、UDFから起動できる EFIの新 しいバージョンが入っているMacでないと利用できないのではないかと思われる。 ISOイメージのコピーしてのインストールは日本語・英語のページでいろいろ見つかる が、非常に混乱している。これはAppleさんの情報の出し方に問題があるのではないだ ろうか。
Boot Camp本体は、つまるところWindows用のMacドライバーなのだが、実態はMac OS X 10.6のインストールDVDディスクにISO/HFS+ハイブリッドのISO部分にsetup.exe などが含まれている。Windowsをインストールした後にMac OS X 10.6のインストール ディスクを入れるとBoot Camp 3.0がWindowsにインストールされる。この後にApple のサイトにある3.1, 3.2, 3.3の更新プログラム(exe)をダウンロードして実行した。
インストールしたWindowsの起動は起動時にオプションキーで選択するか、 起動ディスクで設定できる。
何回かWindows Updateを実行して、やっと最新までもってきました。インストール よりも時間がかかります。Updateしているうちに、USB機器をいじったためか 起動しなくなり、Boot Camp アシスタントで再インストールを行おうとしたところ 自動的に復元が実行されて、どうにか元に戻った。
Windowsで確認したディスクの状況。24GでWindowsパティションを切ったが Windows 7が12G強だったので半分くらいしか空いていない。使用するアプリケーション のサイズを考えてパーティションは設定した方が良いのかと思われる。
Latticeの開発環境インストールできました。ハードディスクの空きが3Gくらいしか なくてしまい、他にインストールできなさそうです。^ ^;
さすがにパティションが小さすぎたので35Gに切り直してインストールし直してみた。 (2013/12/27)
ライセンス違反になる可能性はあるがAirはすでに10.6にしてあり10.5を インストールしてあるマシンは無いし、品薄のためオークション で販売時の価格と同じくらいの値段で取引されていて、オークションで中古商品を 落札するのも同じようにライセンス違反になる可能性もあり、とりあえず書いておく。 Airの10.5のインストールディスクで初代miniを起動すると以下のようなダイアログ が出る。
このため、いったんAirでGUIDパーティションマップの外付けのUSBドライブに Disk 1だけインストールする。そのドライブをminiに接続して、10.5のDVDで 起動して上のダイアログが出たらOKをクリックする。そうするとユーティリティ メニューのディスクユーティリティ使うことができるので、これで内蔵ドライブへ USBドライブを復元する。復元が終わったらインストーラを終了時に起動ディスク で、復元した内蔵ドライブを選択して再起動するとDisk 2のインストールから 続けられる。
miniを FireWire ターゲットディスクモードで起動してインストールする方法も 考えられるがAirにはFireWireが無いのでできない。
iBook Dual USBには9.1が付属で購入したのだが、現在Mac OS 9.2.1と9.2.2のアップ データがAppleサイトからなくなっているので、Mac mini G4に付いていたMac OS 9の ディスクでインストールできた。ただこの場合はMac OS 9での起動はできない。