古いサーバーにWindowsServer2016をインストールしたい!
知人たちと毎月行っている「鍋とボドゲとサーバー定例会」にて難儀なサーバーがあったので、まとめておきます。
また、今回の手法は、試行錯誤の末に行き着いた例なので、必ずしも正しいとは限りません。
割と古めの筐体にNTFS形式のUSBブートでWindowsをインストールしたいという人には役に立つかもしれません。
(追記:MicroServer G8にWinSer2019をインストールしようとしたところ同様の現象にハマり、同じ手順でセットアップ出来ました。)
環境と状況
###環境
サーバー機
- HP ProLiant DL360 G6(Xeon E55402, DDR3 48GB, SAS 146GB4-RAID5)
OS
- WindowsServer2016 Datacenter(USBメモリブート)
###状況
サーバーのBIOSセットアップ後、OSのisoファイルを焼いたUSBメモリを差し込み、USBブートしても起動しない。
ブート問題が解決し、インストールしようとしたら、「このドライブにWindowsをインストールすることはできません」といったエラーが表示されインストールできない。
###改善策
- 別のWindowsブートメディアを使用し、起動後コマンドプロンプトからUSBメモリ内のStartup.exeを実行する
- Diskpartから手動でDiskを用意する
##経緯と作業内容
ことの発端は、OSを書き込んだUSBメモリでブートできないことから始まった。
原因はおそらくこのサーバーがNTFS形式のメモリでのブートをサポートしていないためだと思われる。
しかし、WindowsServer2016のインストールイメージは5GBを超えるものであり、FAT32形式の壁にぶち当たってしまう。
また、DVDも2層式のディスクでなければ焼く事ができない。
困り果てた末、ようやくひとつの方法が見つかった。
それは、別のWindowsインストーラーからUSBメモリ内のインストーラーを起動するという方法である。
手順としては、まず別のWindowsインストーラーを用意する。
今回は、DVD版のWindows8パッケージがあったので、これを利用した。
(DVDやFAT形式でフォーマットされたUSBメモリであれば起動できるため)
起動後WindowsServerのUSBメモリを差し込み、Shift+F10
キーを押しコマンドプロンプトを表示する。
次に、diskpart
と入力し、DISKPARTを立ち上げる。
ここで、list volume
と入力することで、USBメモリに割り当てられているドライブ文字を確認することができる。
判断にはラベルやドライブの容量を参考にすると良い。
今回は、USBメモリに割り当てられたドライブ文字が"C"と仮定する。
exit
でDISKPARTを終了し、C:\sources\Setup.exe
を実行する。
すると、不思議なことにWindowsServerのインストーラーが起動する。
これでようやくセットアップできるぜ!!!!
しかし、現実はそこまで甘くない。
セットアップを続けていくと、インストール場所の選択画面で「このドライブにWindowsをインストールすることはできません」と表示され、ドライブ/パーティションの選択ができない。GUI操作でのフォーマットやパーティション作成を試したが選択できず。
どうしようも無いので、またDISKPARTを起動する。
先ほどと同じように、Shift+F10
キーを押しコマンドプロンプトを表示しdiskpart
と入力することで起動できる。
ここでまず、インストール先のドライブを探す。
list disk
で接続されているディスクの一覧を表示できる。
インストール先のディスク番号を確認する。
今回はディスク0にインストールする。
select disk 0
でディスク0を選択し、clean
で消去する。
※確認無しでパーティション/データがすべて消えるため注意すること
convert mbr
と入力し、ディスクをMBRにします。
create partition primary size=◯◯◯◯◯MB
で任意のサイズのパーティションを作成します。
list part
でパーティションを確認し、select part 1
でパーティション1を選択します。
active
で起動ドライブに指定し、format fs=ntfs quick
でパーティションをフォーマットします。
最後にassign
でマウントします。←要らないかも?
これで、WindowsServer2016が問題なくがインストールできました。
めでたしめでたし...