2012年8月8日水曜日

MBA2012のbootcampでUsersフォルダをSDカードに移動

Macbook Air 2012(たぶん2012以外も)でbootcampすると、Windowsが読み書き可能なDドライブはSSD上には作れない。これは以下の理由による:
  • bootcampすると、SSDにはパーティションが4つある状態になる。
  • bootcampはSSDの最後のパーティションにWindows起動ドライブがなければならない仕様。
  • MAC OS Xが普段は利用しないパーティション(=SSDの最後のパーティションではないパーティション)を潰してWindows用パーティションにすると、MAC OS Xのアップデート時などでリカバリパーティションが再生されるために潰される。
一方、自分はWindows環境を構築する際UsersフォルダをDドライブに移動している。これは、よく書き換えるドライブをシステムドライブと分けることで、バックアップを楽にしたり、トラブル時の復旧を早くするためである。 とあるプログラマの休日 - Windows7でUsersを移動 などを参照のこと。

さて、この度なんとかUsersフォルダを内蔵SDスロットに挿したSDカードに退避させることに成功したので、その手順をメモしておく。


■参考にしたサイト


■用意するもの

■事前準備
bootcampの一般的な注意点となるが、Appleのサイトからインストールマニュアルを落として良く読んでおく。あとMAC OS Xはユーザーデータのバックアップをきちんとして、万一のために外部メディアで再インストールできるようにしておく。ディスクユーティリティでMountain LionのInstallESD.dmgをDVD-R DL等に焼いておくとよい。


■手順
(1)
MAC OS X上でディスクユーティリティを使ってSDカードをフォーマットする。今回はThunderbirdのデータをMACとWINの両方で読みたかったので、exFATでフォーマットした。

(2)
SDカードをスロットから取り除く。自分の環境ではこの手順が抜けると、Windowsのインストールにてディスク0パーティション4が(フォーマットをしても)インストール先として選択できなかった。

(3)
bootcamp開始。
Windowsの.isoをMAC OS X上にコピーした後、MAC OS X上でbootcampアシスタントを起動し、「Windows7インストールディスクを作成」、「最新のWindowsサポートソフトウェアをAppleからダウンロード」、「Windows7をインストール」の3つにチェックを入れて実行。

(4)
Windowsのインストーラが起動し「Windowsのインストール場所を選択してください。」に来たら、ディスク0パーティション4(BOOTCAMPとラベリングされているはず)をフォーマットしてインストール先とする。フォーマットするには「ドライブオプション(詳細)」をクリックするとメニューが出る。

(5)
ユーザー名とコンピューター名を入力するところまで進んだら、SDカードを挿し、SHIFT+F10を押す。コマンドプロンプトが立ち上がる。
※ファンクションキーにfnキー同時押しが必要なことがあるので、コマンドプロンプトが起動しなかったらSHIFT+fn+F10を押下する。

(6)
あとでログイン画面でログインせずにコマンドプロンプトを利用したいので、ユーティリティマネージャをコマンドプロンプトに置き換える
>ren Utilman.exe Utilman.exe.back
>copy cmd.exe Utilman.exe
※あとでユーティリティマネージャを復活させたくなったら、LinuxのLive CDなど、Windowsを起動せずにSSD内のNTFSパーティションを書き換える手段が必要。

(7)
ディスクの管理を起動:
>diskmgmt.msc
「仮想ディスク サービスに接続中」が結構長く表示されることがあるが、我慢強く待つ(10秒~1分程度)。

(8)
少なくともSSD、SDカード、USBメモリ(bootcampでのWinインストール用)の3つが認識されているはず。ここでSDカードのドライブレターがDになっていなければ、Dにする。ちなみにUSBメモリのドライブレターは変更してもWindowsのインストールに影響しない。SDカードのドライブレターがDになったら、ディスクの管理を閉じる。
※このとき右クリックができないし、右クリック代わりのショートカット(SHIFT+F10)はコマンドプロンプトが起動してしまうので、メニューの「操作(A)」から変更する。

(9)
以下のコマンドによりUsersを移動する:
>robocopy "C:\Users" "D:\Users" /E /COPYALL /XJ
>rmdir "C:\Users" /S /Q
>mklink /J "C:\Users" "D:\users"

(10)
以下のコマンドによりProgramDataをコピーし、削除を試みておく:
>robocopy "C:\ProgramData" "D:\ProgramData" /E /COPYALL /XJ
>rmdir "C:\ProgramData" /S /Q
この段階ではC:\ProgramDataは利用中なので、rmdirは一部失敗するが無視する。

(11)
コマンドプロンプトからレジストリエディタを起動する:
>regedit

(12)
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
の下にある4つのキー値について、「%SystemDrive%」を「D:」に変える。
Default           -> D:\Users\Default
ProfilesDirectory -> D:\Users
ProgramData       -> D:\ProgramData
Public            -> D:\Users\Public

(13)
日本で作業している場合は以下を行なってハードウェア時刻をUTC扱いにする:
HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥TimeZoneInformation
の下に「RealTimeIsUniversal」の名前でDWORD値を作り、値を1にする。

(14)
レジストリエディタとコマンドプロンプトを閉じ、Windowsの初期設定を完了させる。日本で作業している場合は日付と時刻の設定において9時間前の時刻が表示されるが、無視する(設定しなおさない)。

(15)
Windowsを再起動させるが、ログインしない。ログイン画面でcommandキー+Uキー(つまりWindowsキー+Uキー)を押下するとコマンドプロンプトが起動するので、以下を実行してProgramDataを移動:
>rmdir "C:\ProgramData" /S /Q
>mklink /J "C:\ProgramData" "D:\ProgramData"

(16)
コマンドプロンプトを閉じて、ログインする。

(17)
bootcampドライバをインストール。USBメモリのWindowsSupportフォルダ内にあるsetup.exeを実行する。インストール後に再起動するが、ログインしない
※bootcampドライバによってMAC OS XのインストールパーティションがDドライブになってしまっているはず。なのでここでログインすると、SDカードに移動したUsersをロストしてしまう。こうなると、色々と面倒な復旧作業を行う必要が出てしまう(単にドライブレターを戻すだけでは復旧しない)。

(18)
ログイン画面でcommand+Uキーを押下してコマンドプロンプトを起動し、ディスクの管理を起動する:
>diskmgmt.msc

(19)
SDカードのドライブレターを再びDに変更し、ディスクの管理とコマンドプロンプトを閉じる。

(20)
ログインせずに再起動。
※もしかしたら、このステップは不要かもしれない・・・が、失敗しているとここまでの苦労が完全に水の泡なので、怖くてログインできない・・・。

(21)
ログインして動作を確認する。


いやー、面倒だ!

0 件のコメント:

コメントを投稿