きっかけ
OculusHomeを、またUnrealEngineやUnityを使うべく窓10を購入してあったので、インストールしてみた。その時に躓いたことをメモ。
しかしOculusHomeには「CPUがショボい」と蹴られてしまった。
環境
- EFI ではない(たぶん無関係)
- プロセッサはAMDの(無関係)
- 繋がってるドライブ(認識順)
- SSD(480GB):Linuxで使用、GPTなはず
- HDD(2TB):だいたいはLinuxで使用、GPTなはず
- SSD(120GB):インストール先
ドライブX パーティションX にWindowsをインストールすることはできません
原因
原因そのものは不明だが、調べた限りでは以下のどちらかの条件で出る。エラーメッセージはGPTかどうかだけを問題にしているような記述だが、これは大嘘だ。
- EFI環境でGPTじゃないドライブを指定
- EFIかどうかにかかわらずGPTのとき、パーティションテーブルを作成した環境そのままではない(他のOSでパーティションテーブルを作った場合も含む)
どうやら「窓のシグネチャがないパーティションテーブルは認めない」ということらしい。
対策
該当ドライブのパーティションを全部削除してインストーラのものでもいいので窓のパーティショナでパーティションテーブルを作り直す。
新しいパーティションを作成できなかったか、既にあるパーティションが見つかりませんでした
原因
窓にリムーバブルでないストレージとして認識されるリムーバブルドライブがあること。USBメモリとかSDとかの一部とか外付けHDDなんかが該当する。
パーティショナーはドライブを直接認識しているのでHDDやSDDしか認識しないが、このエラーを出しているインストーラーはドライブレターで認識しているのでそういうストレージが認識されてるとドライブレターがずれて認識できなくなるというマヌケな原因のようだ。この問題は窓7以降ずっと存在するのでMSはこれを直す気はないっぽい。
対策
そういうドライブを外すのが基本だが、まさにそういうUSBメモリでインストールしている場合はそうもいかないのでその場合の対策を記す。
- パーティションを切る(ここまでは普通に)
- Shift-F10を押してコマンドプロンプトを出す
- diskpart
- list diskでドライブ一覧を表示
- select disk xでインストール先のドライブを選択(xはドライブ番号)
- list partitionでパーティション一覧を表示
- select partition xでパーティションを選択(xはパーティション番号)
- activeでそのパーティションから起動できるようにする
- assignでパーティションにドライブレターを与える
- list volumeでドライブレターを見る(インストール先とインストーラが入ってるストレージのドライブレターを覚えておく。以後仮にインストーラをX、インストール先をYとしておく)
- exit
- xcopy X:*.* Y:\ /s /e /f
- exit
- インストーラのストレージを外して再起動(起動ドライブはインストール先)
- インストーラが起動するのでそのままインストール
ごちゃごちゃしてるがインストール先パーティションにインストーラをコピーするのがキモ。それからインストール後に何も言わずに数回再起動するので慌てずそのまま進める。
総じて
インストーラが不親切。Linuxの各種ディストロのインストーラの方がずっと親切。OEMの方が多いからだろうけど。