市販されているUSBメモリはどれもこれもがフラッシュメモリで、Windows To Goで使えない。
Windows To Goってのは、Windowsマシンを持ち出すんじゃなくて、OS入りUSBディスクだけを持ち出せるようにしたらいいんじゃね?っていうWindowsの標準機能です。
#ただし、Enterpriseに限る。
USBメモリがWindowsから、「こいつ、使えない」って弾かれるのが、とても気に入らない。
でも、何とかしてやれる方法を模索するのが、アレです。
まずは必要なものを列挙
- PC本体
- Windows 8 Enterprise
- USBメモリ(できるだけ高速なもの)
- USBメモリよりも若干容量の少ないUSB-HDD
たぶん、これだけ。
PC本体は、Windows 8のインストール要件を満たすもの。
Windows 8 Enterpriseの入手は、もうすぐ打ち止めなTechNetかMSDN(のほうは大丈夫)のサブスクリプションを買うのが賢いかな。
USBメモリはUSB3.0とかの高速I/Fを持ってるほうが、時間短縮できていいけど、ぶっちゃけそれほどの高速化を期待しちゃぁいけないよ。容量は32GB以上のを。
USB-HDDは30GB程度で大丈夫なので、こんなのでOK。
64GBのUSBメモリでやるなら、60GBくらいのHDDを中古で探してきて、USB化するのが良い。
で、手順だ。
- PCにWindows 8 Enterpriseをインストール
- Windows To GoをUSB-HDDにインストール
- USB-HDDをVHD(VHDX)ファイル化
- USBメモリをアクティブにして、VHD(VHDX)ファイルをコピー
- BCDBOOTでブートメニューを作成
- USBから起動させて完了
簡単そうに思えるけど、実は、結構時間が掛かる。
普通に売られているUSBメモリは、パーティションが切れないために、Windows To Goの要件を満たせない。
これ、非常に残念。
#Linuxなどではパーティションを認識できる(らしい)。
でも、俺たちには、VHDという強い味方がいる。
USBメモリに仮想ドライブを構成すればよいわけだ。
あとは仕込むネタ用に、VHDを用意すればいい。
Windows 8 でのVHD化に失敗する場合には、Windows Server 2012 R2 Preview等で試してみるといい。
なお、USBメモリ上に圧縮VHDを展開するのはパフォーマンスなどに影響しそうなので、固定VHDにするのを、俺はお勧めする。
だから、USBメモリ容量よりUSB-HDD容量は少ないものをチョイス。
ブートメニューを構成する際には、USBメモリにコピーしたVHDファイルをドライブマウントして、windowsフォルダがあるパーティションをアサインしてから、
bcdboot <vhdパーティション>:\windows /l ja-jp /s <usbメモリパーティション>: /f ALL
でOK。
USBメモリのアクティブ化は、diskpartでやってください。
あとは、USBメモリからブートして、設定が終わって画面が表示されるまで、ひたすら我慢(手元のUSB2.0環境では、軽く6時間以上かかった)。
この方法の利点は、安いUSBメモリの利用可能性が増えることと、OS全体がVHDに収まるので仮想環境へ移行やその逆が楽かも知れないことだろうか。
USB-HDDにOSをぶち込むのは、昔はUSBドライバを停止させないことで可能だったんだけど。USBメモリへのインストールは結構制約があったと思う。
とりあえず、USB2.0のUSBメモリでは実用レベルではないし、USB3.0になっても多少高速化する程度で実務には使えない。
本当に実用したいなら、やはりUSB-HDDにすべきだろう・・・が、実に面白い。
緊急用に1本作っておくのもいいかもしれない。
蛇足として、まだまだ32bitしか動かないCPUが載ったマシンがごろごろしているので、To Goに使用するOSは32bitが望ましい。
因みに、ここに至るまでに、XCOPYによるコピーとか、GPartedによるパーティション操作とかやっておりますが、途中で起動エラーが出まくってうまくいかないパターンが多く、確実な成功を導く方法というのがなかったわけですが。
最後に残された方法は、USBメモリをHDD認識させることですが、インストールメディアにもそれを導入しておく必要があるはずなので、面倒さ加減は今回の方法以上。
時間があれば、やってみたい気もするけど。
コメントしちゃいなよ