余りに馬鹿々々しい経験をしたのでメモっとく。他人にとっては面白くも無いし、まず役にもたたないだろう。
昨年9月にほぼ6年ぶりに新規PCを購入し、従来のメインPCだったDell XPS 8700はセカンダリPC扱いとなった。手間はかかるが金はかからない正規の手続きに従いとっとと処分する予定だったが、緊急かつかなり非生産的な理由により24時間稼働のサーバーとなった。ある時はデータサーバー、またある時はネット帯域監視サーバーと用途を変えつつ、今後も暫くは稼働予定である。
私のDell XPS 8700は2014年のWindows7プレインストールモデルで、CPUはIntel i7-4790(4コア8スレッド)、メモリは32GB、グラボは最終的にnVIDIA GTX1070になった。ゲーム、3DCGI、DAWと全て睨んだ上での構成だ。ただ起動途中のシャットダウンなど故障が予測される兆候も示し始めたことから、第一線を退いてもらうことになった。
さて、 エントリタイトルにもある受難のスタートラインであり、以降でキーとなる初期状態を列挙する。
- レガシーBIOSブートである。これはプレインストールのWindows7から上書きでWindows10に無償アップグレードしたためだ。
- OSはWindows10 Proで、Windows10自体の機能を使って初期化した。
次いで内部のドライブ構成について示す。
- ドライブ0:SATA 2TB HDD、以降は単にHDD、ドライブレターは\D
- ドライブ1:mSATA 256MB SSD、以降は単にSSD、ドライブレターは\C
初期状態のブートドライブはもちろんSSDだ。
さぁ、淡々と行こう。
1.BIOSのアップデート → セキュリティ関連ファームウェアの破損
BIOSをA13から最新のA14にアップデートした。アップデート用ファイルはもちろんDellから入手したものである。BIOS自体はアップデートされたが、セキュリティデバイスである「Intel Management Engine Interface」のファームウェアのアップデート中にエラーが発生、オプションで強制書き込みを指定してもアップデートが弾かれるようになった。もう少し状況を丁寧に書いておくと、アップデートプログラムがファームウェアのバージョンを取得できないままエラーを吐いて落ちる。結果、OS起動後のデバイスマネージャー上で「Intel Management Engine Interface」と「SMバスコントローラ」に「!」マークが付く状態となった。
2.SSDからのUEFIブートにブート方法を変更 → SSDのディスク形式を誤変換
ブート方法を変更するには、まず起動ドライブのパーティション形式をMBRからGPTへと変更しなければならないが、Windows10には"mbr2gpt.exe"というそのためのコマンドが用意されている。"mbr2gpt.exe"の良いところは、ディスクの内容は一切失わないことにある。早速このコマンドを試したところ、エラーで変更できない。原因は所謂OEMパーティションというやつだ。OSプレインストール版メーカーPCの多くで、起動ドライブのパーティション構成はメーカー独自となっている。Microsoftにとっては預かり知らない状況となっている訳で、"mbr2gpt.exe"にパーティション構成を教えてやらなければならない。ネットを漁ると教えるべき内容を見つけることはできるが、まぁ、当然ながら色々とリスクだらけだ。
で、Dellのユーザーコミュニティスレッドで見つけたとある情報を使って"mbr2gpt.exe"を実行したところ見事変換完了、BIOS/UEFIでブート方法をUEFI、Windows Boot Managerに変更したところ見事OSが起動した。動作は快調だったのだが、ディスク管理画面を見るとSSD(\C)の中身が見えない。実は "mbr2gpt.exe"実行時に使った情報には1ヶ所誤りがあり、本来ディスク形式を「ベーシック」のままにしておくところを「ダイナミック」に変換してしまっていたのだ。
SSDの中身を失なわずに「ベーシック」に戻す方法は基本的に無い。有料中華アプリで対応できるものもあるとのことだったが、本質的な原因はWindows7プレインストールPC用のOEMパーティション構成だ。ここはもう意味の無くなったOEMパーティションの呪縛から逃れるべく、Microsoftの回復ツールを使ってWindows10をSSDへクリーンインストールすることにした。既に紐付け済みのマイクロソフトアカウントとXPS 8700のハードウェア情報に基づいてWindowsライセンスを認証してもらう必要から、インストール時はインターネットと有線接続しておいた。
3.Windows10をHDDにインストール後、SSDに再インストール
→ OSはSSD、EFIシステムパーティションはHDD
Microsoftの回復ツールを書き込んだUSBメモリからブートしても、SSDの再フォーマットなどは回復ツール上からはできない。これがダイナミックディスクの罠だ。一方、HDDはNTFSでベーシックドライブ、しかも空っぽだ。
と言う訳でSSDを取り外し、Microsoftの回復ツールでまずHDDにWindows10をインストールした。HDDからブートすれば再取り付けしたSSDのディスク形式などもディスク管理機能で変更でき、晴れてSSDへのWindows10のクリーインストールの準備が整った。SSDへのインストールの為だけに、一度HDDにインストールした訳だ。当然ながら、EFIシステムパーテションはこの時点ではHDD上にある。
USBメモリ上の回復ツールを使ったSSDへのWindows10のインストールは何のトラブルも無く完了し、これで万事OKかと思いきや、EFIシステムパーティションがHDDに残っている、っつーか、HDDにあったEFIシステムパーティションがアクティブのまま使われていて、SSDにはEFIシステムパーティションすら無い。これはHDDを使ってSSDをブートすると言う余り上手くない状況と言える。場合によってはHDDは外してしまおうかとも思っていた矢先、本当に上手くない。
4.Windows10をSSDに再々インストール、HDDをまっさらに
HDDの信号及び電源ケーブルを抜いてMicrosoftの回復ツールを書き込んだUSBメモリでブート、SSDへWindows10を再々インストールした。アクティブなEFIシステムパーティションがSSDに移動したのを確認し、アクティブではないEFIシステムパーティションを含むHDDの全領域を削除、フォーマットした。本来は2.の途中で終わっていた筈の作業がここまでかかってしまった。
ところが24時間稼働状態にしたところ、特定の通信内容に対してネットワーク機器が停止することが分かった。時に不意の再起動も起こす。調べると、PC起動から10分程度経つと「Intel Management Engine Interface」に「!」マークが付き、不具合が起きた時にはその状態にあることが分かった。
実は「Intel Management Engine Interface」に「!」マークが付くことは以前から少なからずあり、これまではBIOSアップデートなどで解決してきた。が、「Intel Management Engine Interface」に「!」マークが付いているからと言って、ネットワーク接続やPC自体が不安定化した記憶は無かった。その当時との違いについて改めて考えてみると、ブート方法とWindows10のバージョンの違いしか思いつかなかった。
5.Windows10をSSDに再々々インストール、レガシーBIOSブートに戻す
→ 「違う、そうじゃない」ことに思い至る
レガシーBIOSブートとすべく、SSDにwindows10を再々々インストールした。インストール作業が必要な理由は、SSDのパーティション形式をEFIブート用のGPTからレガシーBIOSブート用のMBRにする際に、ディスクの内容が全て消えるからだ。
さて、レガシーBIOSブートとすることで、「Intel Management Engine Interface」に「!」マークが付いていても、OS自体の勝手な再起動やシャットダウンは発生しなくなった。 一方、ネットワーク機器の停止は1日に2回程度発生し続けた。
いよいよ頭を抱えざるを得なくなったところで天啓(になるかも知れない)が訪れた。2000年代前半まで、つまりPCを自作していた時代の自分なら真っ先にやっただろうことを思いついたのだ。
CMOSのクリアだ、困ったらコレ。That's the PC-AT!!
手順と結果は別エントリに記載してあるが、"Intel Management Engine Interface"のファームウェア更新も成功し、デバイスマネージャーから全ての「!」が消えた。
6.EFIブート再び
72時間連続稼働に耐えたし、「!」マークも現れないので、改めてレガシーBIOSブートからEFIブートに変更することにした。今回のSSDのパーティション構成はMicrosoftによるものだから(=OEMパーティションではないから)、"mbr2gpt.exe"はそのまま使える筈だ。結論から言えば全く問題無し、"mbr2gpt.exe"実行後に2回再起動(BIOS/UEFI設定変更含む)して以降は快調そのものだ。現在24時間稼働の2日目に突入、ログを見ると以前はネットワーク機器停止に至ることが多かったイベントにもきっちり耐えている。テスト兼実運用は暫く続くことになる。
あと、「!」マークを消す件は色々と重要だ。「Intel Management Engine Interface」に「!」マークが付いている状態では、EFIブートに異様に時間がかかった。Dellロゴが表示されている時間が3~5分、Windowsロゴが表示されている時間が約20秒といった具合だった。今やDellロゴが10~20秒、Windowsロゴは表示されることもなくサインイン画面に至る。
7.実は書いていないこともある
やれ24時間稼働だ、やれサーバーだ、なんて話なら、Windows10に拘る必然性は全く無い。実際、並行してLinuxの某ディストリビューションの導入も試していたのだが、USBメモリでの運用に拘ったために沼ってしまっている。昨夜辺りで「快適に使いたければここまでにしときなさい」というラインが具体的に見えたので、それが再確認できて気が向いたら別エントリに顛末を書くことになると思う。それはそうと、他製品と比べてシーケンシャルリード・ライト、シーケンシャルライトは悪くないのに、ランダムライトだけ1/200以下っていう製品(個体ではない)があるのは、USBメモリ界隈では普通なんですかねぇ?