はじめに
下記にあるような理由でWindows 10のインストールをはじめてみたが、Ubuntu18.04のインストールに比べてあまりにも時間がかかったため、今回のインストールでよくわからなかったところを備忘録としてここに書いておくことにする。この記事が少しでも読んでくれた方の時間節約に役立ったら嬉しく思う。
未踏やっていたときにJenkinsなどをインストールして雑に運用していたサーバー、未踏が終って最近は使っていなかったのでWindowsを入れてHyper-Vとかゲームで遊ぶかと思ったけど永遠にインストールできなくてツライ😇
— 吉村 優 / YOSHIMURA Yuu (@_yyu_) May 12, 2020
今回の環境
- CPU: Ryzen 5 2600
- Memory: Crucial DDR4 32GB(16GB × 2)
- Storage: WD SATA M.2 SSD 250GB
- MB: ASUS 450M-K
- GPU: Geforce GT 1030
なお著者は普段macOSをよく使っており、インストール前の段階ではWindows機を所持していなかった。
BIOS設定
すべてに意味があるかどうかは不明だが、とりあえず次のような状態で最終的に成功した。
- CMS boot: Disable
- Secure boot: OFF
- Fast boot: OFF
Windowsインストール
それではここから成功した手順を書いていく。なお@kaz1815さんによるとプロダクトキーはいったん入れずにインストールすることができるらしいので、この手順を見て不安に思った場合はWindowsをインストールできた段階でプロダクトキーを購入するとよいと思う。
プロダクトキー入力画面は小さく書いてある「後で」というところを押すと、プロダクトキー入れないままインストール完了させることができます。
— KAZ@社畜㌠ (@kaz1815) May 21, 2020
プロダクトキー入力には90日(だったか)猶予があるので、完了してからライセンス調達しても十分間に合うかと。
- Windows 10のISOファイルであるWin10_1909_Japanese_x64.isoをダウンロードする
- この時点ですでにWindowsは他のOSと比べて不親切で、SHA256などのハッシュ値を公開していない。したがって、きちんとダウンロードできたかどうか?というのを判定することが難しい。
- 普通のOSインストールでは、ISOが壊れているという疑いを持つことなく終わるが、Windows 10はそうではなかったので原因の切り分けのためにハッシュ値を公開しておいてほしかった……
- この時点ですでにWindowsは他のOSと比べて不親切で、SHA256などのハッシュ値を公開していない。したがって、きちんとダウンロードできたかどうか?というのを判定することが難しい。
- USBメモリーなどを用意してブートメディアをこのページの手順で焼く
- この手順は非常に重要である。FAT32で初期化するが、普通に
dd
コマンドで作るとinstall.wim
が4GBを越えているため、絶対インストールに失敗するインストールメディアとなってしまう- FAT32はファイルシステムの仕様上、4GB以上のファイルを作ることができないので、この記事にある方法で分割して入れなければならない
- しかも、このようなエラーの場合は著者の環境では「メディアデバイスドライバーがみつかりません」のような全く関係のないエラーメッセージとなるので、普通はこの制約による問題と気がつくことができない
- この手順は非常に重要である。FAT32で初期化するが、普通に
- USBブートメディアを挿入し、UEFIでインストーラーを起動するが、いったんここではWindowsのインストールを行なわず、PC本体の内蔵ストレージへインストーラーをコピーする(やり方は次のステップ)
- Windows10のクリーンインストールで躓きがちなこととその対策にどうしてこの手順が必要なのか書かれている(下記に引用)
パーティショナーはドライブを直接認識しているのでHDDやSDDしか認識しないが、このエラーを出しているインストーラーはドライブレターで認識しているのでそういうストレージが認識されてるとドライブレターがずれて認識できなくなるというマヌケな原因のようだ。この問題は窓7以降ずっと存在するのでMSはこれを直す気はないっぽい。
- しょうじき、どうしてこんなことになったまま放置されているのか謎だが、この状態のままだとプロダクトキーを入れてWindowsをインストールするところでパーティションへアクセスできなくなって失敗する - かつ、その失敗した際のエラーメッセージもまったく実態を述べていないWindows10のインストーラー、ほんとに不親切すぎて頭がおかしくなりそう😡💢💢💢 pic.twitter.com/wjDV9nupxc
— 吉村 優 / YOSHIMURA Yuu (@_yyu_) May 20, 2020 - 次のようなコマンドを実行する
- インストーラーの言語・IME等の選択画面でShift+F10キーを押し、コマンドプロンプトを起動する
-
diskpart
でパーティション編集ツールを起動 -
list disk
コマンドでディスクの一覧(ここで内蔵ストレージとUSBブートメディアが見える)を確認する。- これ以降では内蔵ストレージの番号が
0
だったものとしてコマンドを解説していく
- これ以降では内蔵ストレージの番号が
-
select disk 0
して内蔵ストレージを選択する(この次の作業で、内蔵ストレージの内容を全て消去する!) -
clean
で内容を初期化する -
convert gpt
でストレージをGPT形式にする -
list part
でパーティションを表示してみる- このとき
clean
した直後なので、何も表示されないはず
- このとき
-
create partition primary size=20000
で20GBのパーティションを作成する- Windows 10のブータブルデータが入ればいいので、20GBでなくてもいい
-
list part
でパーティションを表示してみる。このとき(8)で作った1つのパーティションが見える -
select part 1
で作成したパーティションを選択する -
format fs=fat32 label="WIN10" quick
でパーティションをFAT32で初期化 -
list volume
でCドライブとかのボリューム情報を表示する- このとき今起動しているUSBブートメディアにのみドライブレーター(CとかDドライブみたいな)が振られている
-
assign
で現在のパーティションにボリュームレターを割り当てる -
list volume
で作ったパーティションと、さらにブートメディアのボリュームレターを両方とも確認する
$$\def\D{\color{red}{\text{D}}} \def\C{\color{blue}{\text{C}}}$$- これ以降、ブートメディアが$\D$ドライブ、そして作ったパーティションが$\C$ドライブとなったものとして解説を進める
-
exit
でdiskpart
コマンドを終了する - コマンドプロンプトで次を実行し$\D$ドライブの内容を$\C$ドライブへコピーする
xcopy d: c: \e \h \k
- なお、このとき
install.wim
はもう分割されているので、install.swm
とinstall2.swm
となっておりこのままコピーすればよい
-
xcopy
が終了し次第、USBブートメディアを抜去しPCを再起動する- Windowsインストーラーが、USBブートメディアと内蔵ストレージが区別できなくなることでこの手順が必要となったため、USBメモリーはここで抜いておく必要がある
- ストレージへのコピーが正常に行われていれば、内蔵ストレージからWindowsインストーラーが起動する
- IMEなどを適当に選んでいくとセットアップとなり、プロダクトキーを入力しEULA(?)に同意する
- インストール方法についての選択があるが、今回は既存のWindows OSがないので「カスタム」を選ぶ
- インストール先として2つ表示されるので、「割り当てられていない領域」を選択する
- 1つは手順(4)で作ったインストール用ブート領域であり、残りはディスクの余りである。ここでは自力でパーティションなどを作る必要はなく、OSに必要なリカバリー領域などはインストーラーが勝手に作ってくれる
- 何度か再起動するが、しばらく放置すると終了する
- MSアカウントなどを入れるよう要請されるので、Windowsの機能が全て使えるようになるまでは指示に従う
- Windows 10が使えるようになった段階でAOMEI Partition Assistant Standardをインストールする
- このソフトウェアで暫定的に作成した20GBのFAT32領域(Windowsインストーラーのあるブート領域)を破壊する
- Windows 10に附属のパーティション編集ツールでは隣接していないボリュームを統合することができないので、このサードパーティソフトウェアを利用する
- 手順(8)でパーティションを自力で作っておけば、隣接させることができるかもしれない……
- Pro版を試用するか?という案内があるが、著者はフリー版のまま行った
- 先頭にある(と思われる)20GBを破壊し、現在のCドライブと統合する
これでようやくWindows 10のインストールが完了である。あとはここからグラフィックカードなどのデバイスドライバーをインストールするなどしていけばいい。
まとめ
今回のインストール作業を経て、Ubuntuは本当に優れたインストーラーを持っていると認識した。Windowsはむしろ実機にインストールされた状態で出荷されることが多いので、インストーラーを作り込んでもベネフィットが薄いのかもしれない。エラーが全体的に全く的外れであり、かつエラーログやエラーコードも出力しないため、全然関係のない部分を調査するなどして恐しく時間がかかっている。Twitterにも書いたが、「それでもこの世で最も普及したOSの末裔か!」