CCC3.1.1 でコピーしたディスクがブートしない。
System Preferences[503] Error setting the Startup Disk com.apple.systempreferences[503] Booter partition disk0s1 is not Apple_Boot com.apple.systempreferences[503] Booter partition disk1s1 is not Apple_Boot
うむ?
# diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *153.4 Gi disk0 1: EFI 200.0 Mi disk0s1 2: Apple_RAID 153.1 Gi disk0s2 3: Apple_Boot Boot OSX 128.0 Mi disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *153.4 Gi disk1 1: EFI 200.0 Mi disk1s1 2: Apple_RAID 153.1 Gi disk1s2 3: Apple_Boot Boot OSX 128.0 Mi disk1s3
うむ。確かに、Apple_Bootを指してないなぁ。って納得している場合ではないか。
10.5.2ではなく10.4.7 Server OSでやってみたら上手くいったよ、という報告があるようで、これはCCCかLeopardのバグの疑い濃厚*1。なんかこの連休中、こんなんばっかし。
# bless --info /Volumes/Server\ HD\ 1/System/Library/CoreServices/ --bootinfo --verbose
してみた。
Mount point for /Volumes/Server HD 1/System/Library/CoreServices/ is /Volumes/Server HD 1 Boot blocks read successfully Aggregate boot path is IODeviceTree:first-boot/@0:2 GPT detected Booter partition required at index 3 System partition found Booter partition found Aggregate boot path is IODeviceTree:sata/k2-sata@1/@0:2 GPT detected Booter partition required at index 3 System partition found Booter partition found Returning booter information dictionary: <CFDictionary 0x109ec0 [0xa01e2174]>{type = mutable, count = 3, capacity = 3, pairs = ( 0 : <CFString 0x180e0 [0xa01e2174]>{contents = "Auxiliary Partitions"} = <CFArray 0x109d40 [0xa01e2174]>{type = immutable, count = 2, values = ( 0 : <CFString 0xa01ee730 [0xa01e2174]>{contents = "disk0s3"} 1 : <CFString 0xa01f0e00 [0xa01e2174]>{contents = "disk1s3"} )} 2 : <CFString 0x180d0 [0xa01e2174]>{contents = "Data Partitions"} = <CFArray 0x10a9c0 [0xa01e2174]>{type = immutable, count = 2, values = ( 0 : <CFString 0xa01ef820 [0xa01e2174]>{contents = "disk0s2"} 1 : <CFString 0xa01f24b0 [0xa01e2174]>{contents = "disk1s2"} )} 3 : <CFString 0x180f0 [0xa01e2174]>{contents = "System Partitions"} = <CFArray 0x10a530 [0xa01e2174]>{type = immutable, count = 2, values = ( 0 : <CFString 0x10a6c0 [0xa01e2174]>{contents = "disk0s1"} 1 : <CFString 0x10a910 [0xa01e2174]>{contents = "disk1s1"} )} )} finderinfo[0]: 151595 => Blessed System Folder is /Volumes/Server HD 1/System/Library/CoreServices finderinfo[1]: 62996178 => Blessed System File is /Volumes/Server HD 1/System/Library/CoreServices/boot.efi finderinfo[2]: 0 => Open-folder linked list empty finderinfo[3]: 0 => No OS 9 + X blessed 9 folder finderinfo[4]: 0 => Unused field unset finderinfo[5]: 151595 => OS X blessed folder is /Volumes/Server HD 1/System/Library/CoreServices 64-bit VSDB volume id: 0xFCAA4452B1AD0B75 #
パーティションスキームの違い、か?
数時間 bless と戯れてみたけれども、埒があかない。
もっとディスク寄りのところに何か問題があるのではないかと思い直し、麦茶を飲んで一息ついてから、diskutil list の内容を再度表示。
こちらは、ブートしないと騒いでいる、コピー先のRAID0のディスクたち。
/dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *153.4 Gi disk0 1: EFI 200.0 Mi disk0s1 2: Apple_RAID 153.1 Gi disk0s2 3: Apple_Boot Boot OSX 128.0 Mi disk0s3 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *153.4 Gi disk1 1: EFI 200.0 Mi disk1s1 2: Apple_RAID 153.1 Gi disk1s2 3: Apple_Boot Boot OSX 128.0 Mi disk1s3
こちらは、ブートしている、コピー元のRAID0の片肺。
/dev/disk3 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *76.7 Gi disk3 1: Apple_partition_map 31.5 Ki disk3s1 2: Apple_Boot Boot OSX 128.0 Mi disk3s2 3: Apple_RAID 76.6 Gi disk3s3
…。…………ああ、不覚。
IntelMac登場以降、Macのパーティションに GUIDパーティションというバリエーションが増えている。
PPC MacはGUIDパーティションのディスクを読めるがブートできない。反対に IntelMac は、従来のAppleパーティションのディスクを読めるがブートできない。
こういう背景があるので、ディスクユーティリティは、自分が動作しているCPU環境によってデフォルトのパーティションスキームを選んでいる。
ユーザに無駄な選択をさせないという点で、この挙動は便利といえば便利。けれども、今回のように、異機種環境でサルベージするなんていうときには、ハマり道へと誘う危険仕様。
ちなみに、ディスクユーティリティのオンラインヘルプには、パーティションスキームの変更方法が書かれていないっぽい。まあ、変更方法を記述したブログが結構あるので、参照すれば解決できるのではあるけれども。