俺#

新潟市でIT業を営むおっさんのブログ。

Boot CampのWindows環境を別のMacに移植する

MacBook Airを買い換えた。メインとなるWindows環境の再構築とかやってらんないので、パーティションコピーで新しいAirに持ってきた。Airに限らずIntel Mac全般で有効な手法と思われる。ちなみに、OS X環境は使用してるアプリがXcodeiTunesVMware Fusionだけなので手動で再構築する予定。

用意するもの

傷だらけて何か臭う古いMacBook Air(2010/10)
ピカピカで良い匂いの新しいMacBook Air(2013/06)
USB接続のHDD(Boot Campパーティションがそっくり入るサイズのもの)
USBメモリその1(GPartedをインストールする)
USBメモリその2(Windowsインストーラ一式とBoot Campのファイルを入れる)
GParted(オープンソースパーティション操作ツール)
Windowsのインストールディスクisoイメージ(移行するWindows環境と同じもの)※

※:光学ドライブがあればWindowsのインストールディスクでも良いハズだけど...(後述)

手順

1)GPartedをダウンロードしてUSBメモリにインストールする。

http://sourceforge.net/projects/gparted/

使用したのは「0.14.1-6-i486」のzip版。インストール手順は「Gpartedのzipを解凍してUSBメモリのルートにコピー」→「コマンドプロンプトを管理者権限で開いて『utils\win32\makeboot.bat』を実行」。

CD-ROMドライブがある場合、isoを焼いたBootable CDでも良いハズなのだが2013 MidのAirでは動かなかった(後述)。

2)古いMacWindows環境を起動して、Boot CampサービスとAppleのドライバソフト類をアンインストールする。

念の為に古い環境を保持したまま...と思って移行後のアンインストールを企むのは良くない(後述)。復旧したくなったら再インストールすれば良いのでアンインストールしちゃいましょう。

3)Boot CampパーティションをUSBのHDDにコピーする。

Gpartedを使用して古いMac上のBoot Campパーティションを外付けHDDにコピーする。

古いMacの電源切る。
GPartedが入ったUSBメモリMacに接続する。
optionキーを押しながら古いMacの電源を入れる。
起動方法の選択肢として「OSX」「リカバリ」「Boot Camp」「USBメモリWindows」「USBメモリEFI」の選択肢が出るので、USBメモリWindowsを選択する。EFIで起動するとGPartedが動作しなかった(後述)。
GPartedアプリが自動的に起動するが一旦終了し外付けHDDを接続する。
改めてGPartedアプリを起動し、Boot Campパーティションを外付けHDDにコピーする。手順は「ドライブ/dev/sdaを選択」→「Boot Campパーティション(4番目)を選んでCopy」→「ドライブ/dev/sdc(※)を選択」→「空き領域を選んでPaste」→「Applyして待つ」。
コピーが終わったら「Exit」をダブルクリックして「Shutdown」を選択し電源を切る。

※:環境によって外付けHDDは/dev/sdbかもしれないし/dev/sddかもしれない。容量等で確認する。

4)新しいMacWindowsをインストールする

新しいMacに、Boot Campを使用してWindowsクリーンインストールする。Macでは手動のパーティション操作などでWindowsが起動する環境を構築するのが難しい(というか成功したことない)。通常の手順で一旦Windowsクリーンインストールし、起動環境を整えるのが無難だ。

新しいBoot Campパーティションは古いパーティションと同じサイズか大きくする。クリーンインストールしたWindowsが起動するところまで確認できたら、ドライバをインストールしたり認証を通したりする必要はないので電源を切る。

5)USBのHDDからパーティションを書き戻す

新しいMacに作成されたBoot Campパーティションに、古いMacからコピーしたBoot Campパーティションを上書きコピーする。GPartedの起動方法と終了方法は3)と同様だ。

パーティションの上書きコピーの手順は「ドライブ/dev/sdc(※)を選択」→「古いMacBoot Campパーティションを選択してCopy」→「ドライブ/dev/sdaを選択」→「新しいMacBoot Campパーティションを選択してPaste」→「上書きするけどいい?と聞かれるのでOKする」→「Applyして待つ」。

なお、上書きコピーの場合はパーティションサイズを勝手に合わせてくれるようだ。

※:環境によって外付けHDDは(以下略

6)書き戻したBoot Camp環境の起動を確認する

optionキーを押しながら新しいMacの電源を入れ、Boot CampWindows)を選択して起動してみる。古いWindows環境がそのまま起動したらほぼ成功。あとは新しいBoot Campサービスとドライバをインスト―すれば良い。ハードウェア構成が変わるので、恐らく大抵の場合は電話によるライセンス再認証が必要になる。

引っかかった所

GPartedの起動及び動作不良

MacUSBメモリやBootable CDから起動する場合、起動方法として「Windows(恐らくMBRやPCのBIOSにおけるFDエミュ)」と「EFI」が選択できるのだが、相変わらずフツーのPCと違って何かとおかしなことになる感じ。

Bootable CD版をWindowsで起動→起動しない
Bootable CD版をEFIで起動→起動するがX.org初期化失敗
USBメモリ版をWindowsで起動→起動する
USBメモリ版をEFIで起動→起動するがX.org初期化失敗

というわけでUSBメモリ版(zip版)で事なきを得た。最初Bootable CD版(iso版)で違うバージョン作ってみたり起動方法変えたりとゴニョゴニョして余計な時間食った。

ちなみに、Windows 8のインストールディスクisoを焼いたメディアの起動実験もしたんだけど、なんと「Windows」でも「EFI」でもインストーラが起動できなかった。Boot Camp環境構築の手順内でisoから起動USBを作成できるから困らなかったけど、なんで?(^^;

Boot Campサービスのアンインストール不可問題

Boot Campサービスのインストーラは、割と厳格にマシンやOSバージョンをチェックして動作拒否してくれるイヤなヤツだ。例えば、Boot Camp 4は2013 Mid以降のAirでは使用できない(インストールできない)。

このバージョンチェック、なんとアンインストール時にも行われ、アンインストールが拒否されることが判った。Boot Campサービスをアンインストールせずにパーティションをコピーし、コピー先でアンインストール試みたら「このモデルは対象外云々」だって。

新バージョンのBoot Campをインストールしようとしても、その手順内で旧バージョンのアンインストールが実施されるので、そこで拒否られてバージョンアップもできないのだ。仕方なく手動でレジストリとファイルをお掃除して削除した。

という訳で上記て順の通りパーティションコピー前のアンインストールが原則だ。