2016年11月2日水曜日

おかえり、Surface Pro 3

わりと〝これさえあれば、何もいらない〟と思いながらも、Windows 8の使い勝手の悪さに使うことを断念してしまったSurface Pro 3ですが、Windows 10にもだいぶ慣れて、晴れてぼくの元にSurface Pro 3が帰ってきました。

この再会のためにガラスフィルムも買って、Microsoft Store限定の赤いType Cover(HK版の英字配列)も買ってあげたけど、まず最初にやったことはOS X El Capitanのインストールです。ぼくはだいたいなんにでもOS Xを入れる人間です。まあ、前例もあるし素直なPCなのでインストール自体は簡単。スリープもできるしすごい。

EFI設定でSecure Bootを無効にするので、起動時のSurfaceロゴの背景が真っ赤になります。ここの抜き色がちゃんとしてなくてMicrosoftだなって感じ。Clover EFI自体はSecure Bootに一応対応しているようなので、頑張れば赤い起動画面を見なくて済むかもしれません。

2160x1440なのでRetinaには若干心許ないですが、表示のRetina化も以下のコマンド入力後に再起動ですぐ行けます(要設定)。『QuickRes』や『Display Menu』などがあれば、それなりに快適な画面解像度に設定できるのではないでしょうか。

$ sudo defaults write /Library/Preferences/com. apple.windowserver.plist DisplayResolutionEnabled -bool true

むしろ、どハマりしたのはWindows 10とのデュアルブート構成でした。

そのままじゃデュアルブートできないけど、なんとしてもデュアルブートしたい

Surface Pro 3のEFIにはLegacyモードがないので、Windowsは完全にUEFIモードでブートさせる必要があります(つまり、64ビット版が強制されます)。また、ストレージもGPT (GUID)構成である必要があります。

そんなんOS Xならふつうやんけとお思いでしょう。ぼくもそう思ってました。ところがOS XもWindowsも、我々が想像するよりはクソでした。

まず、Boot Campアシスタントやディスクユーティリティで素直にWindows用の領域(NTFS/FAT32)を作ってはいけません。また、ストレージ上にFAT32/exFAT領域があるのもだめです。と言いますのも、これらが行われていると、OS XはGPT構成のディスク先頭にMBRを書き込む、いわゆる〝Hybrid MBR〟という構成方法を自動的に行ってしまうためです。余計なお世話……

で、この状態でWindowsをインストールしようとすると途中までうまく行くのですが、ディスク領域の選択の際に『このディスクにWindowsをインストールすることはできません。選択されたディスクには MBRパーティションがあります。EFIシステムでは、GPTディスクのみにWindowsをインストールできます』と言われてしまいます。いやいや、しっかりGPTやがな。

要するにOS X側では、Boot CampでEFIのBIOS互換モードからWindowsの32ビット版(MBR)をブートさせることしか想定されてないんですね。逆にWindowsはUEFIブートしかできない64ビット版でも、ストレージの構成がGPTかどうかよりも先にまずMBRの有無を見ているので、いくらGPTでもHybrid MBRであることが認識できずにどうにもならなくなる。どちらも酷い。

ちなみに、ここでShift+F10を押してコマンドプロンプトを出して、diskpartコマンドでディスクを選択してMBRをclearすれば大丈夫だよ! みたいなエントリが多いんですが、それは間違いで、なぜならディスクの内容が全部消えます。新規インストールのときしか有効でないし、その場合は基本的にこのエラーに遭遇することはないはずです。

実はこれ、同じ問題にVAIO Pro 13のときも遭遇していたのですが、ぼくはWindowsのプライオリティが極端に低い人間なので、まあいいやと放置していたんですね(VAIOのEFIが怪しいのだろうなとも思っていた)。しかし、改心した今、Surface Pro 3ではペンを使いたいしタッチパネルを使いたい(※純粋に出張用PCだった前回と違い、今回はSurfaceで絵も描きたい)。それにはWindowsしかない。

解決するには作られてしまったMBRを消去するしかありません。

いやしかし乱暴な手法もなーと思っていたんですが、いろいろ探していたら非常にぼく好みの前例があったので、同じアプローチで行ってみることにしました。

ここでも述べられていますが、MBRはディスクの先頭512バイトに存在するので、その部分のデータをゼロで埋めることでMBR領域を潰すことができます。非常に乱暴ですが、アプローチとしては正しいと思います(そう、〝Protective MBR〟にするのはめんどくさい)。

$ sudo dd if=/dev/zero of=/dev/disk0 bs=512 count=1

シンプル。でもこれでWindowsがインストールできるはず。……ああ、これディスクがアンマウントされてないとダメだと思うので、OS XのインストールUSBメモリなりリカバリOSなりから diskutil unmountDisk disk0 とかしてからやってください。

で、OS X上でのディスク領域の切り分け方としては、Windowsをインストールする領域もHFS+でフォーマットすること。とにかくNTFSやFATに触れてはいけない。これをあとでWindowsのインストーラからNTFSへフォーマットしなおせばよいです。

あとはすんなりWindowsがインストールできました(※手元の環境では)。たぶん前にダメだったVAIO Pro 13も行けるんだと思う(追記; 行けました)。

これ、純正MacでBoot Campしようとしてる人がいちばん困ると思うんだけど、もうみんなとっくに素晴らしきEFIの世界に気づいていてBoot Campとかいっさい使ってないんですかね……

Surfaceはドライバ類が全部インボックスドライバで行ける上に更新もWindows Updateから降ってくるので、Windowsの新規インストール時に何も考える必要がなくて便利ですね。

ポストインストール処理として行う、Clover EFIからWindowsを起動するための作業は、EFIボリュームをマウントして EFI/Windows/Boot/bootmgfw.efi を bootmgfw-orig.efi などとリネームし、 EFI/CLOVERX64.efi を EFI/Windows/Boot/BOOTX64.efi としてコピーするだけですが、これでWindowsが起動できる理論はよくわからないながらも(Clover EFI側の拡張対応?)、Clover EFIの画面で〝Boot Microsoft EFI from EFI〟(場合によっては from SYSTEM など)を選ぶとWindowsが起動できるようになります。