なんと5年振りくらいのブログ更新です、愛莉です。
日記の役目は完全にTwitterと連携させてるTwilogで完結している感じで、たまーーーーに技術系の事をブログ記事にまとめようかなぁということがあってもまぁいっかで終わっちゃうんですよね…
そんな訳で放置され続けてたわけですが、今回自作機にNVMe SSDを導入するにあたってかなり手こずった上にネット上にも(特に日本語では)今一つピンとくる記事がなかったので、情報共有の意味も兼ねて久々の更新です。
しようと思った事
私が今使っている自作機のマザーボード「ASRock A88M-G/3.1」にはNVMe対応のM.2スロットが搭載されていて、折角なのでずっとHDD運用だった自作機もSSDにしてしまおう!という計画でした。
組み合わせたSSDは東芝のNVMe SSD、XG3の512GBモデル(THNSN5512GPU7)です。
このモデルはOCZ RD400のOEM供給版との情報もありますね。
国内供給のSamsung 960EVOとかなり悩んだのですが、極微使用の中古がeBayで送料・PayPalレート手数料を加味しても23000円くらいで手に入りそうだったので(あと相変わらずの東芝信者なので)こっちにしました。MLCですしね。
というわけで、この組み合わせでNVMe SSDをシステムドライブにして使おうという算段でした。
が、ドツボにハマり、数日間夜な夜な自作機をいじくりまわすハメになりました…
タイトルから記事の内容が分かりづらいので「非対応マザー」なんて書きましたが、NVMe対応マザーのはずなんですけどね……
結論
- NVMeブート非対応のマザーボード(or 非対応NVMe SSD)からブートする際は外部ブートローダー(今回はClover EFI loader)を噛ませて起動する
ASRock A88M-G/3.1のファームウェアは P1.40よりもP1.30の方が安定して動作する
数日間掛けてパーツも買い増してみたりして記事の中身が非常に長くなりそうなので、取りあえず結論をまとめるとこんな感じです。
基本的には1番目だけ押さえればNVMe非対応のマザーボードでもファームウェア改造無しで起動出来るかと思います。自環境では未検証ですが、UEFIでない、古いBIOS環境でも一応起動できるようです(本記事では基本UEFI環境前提で進めますので、適宜読み替えて下さい)。
マザボのファームウェアに関してはそれぞれの環境によってみたいなのがあるかもしれませんが、私の環境ではしょっちゅうUEFI設定画面に入れなくなったりとかが頻発しました。
今回SSD増設と同時にファームウェアのアップデートを掛けたせいで、あっちが悪いのかこっちが悪いのかとかなり頭を抱えたので一応。1.30だろうが1.40だろうが設定画面起動しません。
何とかしてくれASRock…
使用した機材
マザーボード:ASRock A88M-G/3.1
APUをA8-3870KからA10-7890Kにアップグレードした際に同時購入したマザーボードです。
NVMe対応のM.2スロットを搭載しており、問題なく使える…はずでした。
PCIスロットに並んでM.2スロットが配置されています。
本マザーボードのM.2スロットはNVMe(PCI Express接続)のみの対応で、SATA接続のM.2 SSDは使用できないので注意。
更に言うと本マザーボードのM.2スロットはPCI Express 2.0 x4までの対応なので、PCIe 3.0 x4のNVMe SSDを刺してもPCIE 2.0 x4の速度までしか出ないので注意。
SSD:東芝 NVMe SSD XG3 512GB(THNSN5512GPU7)
東芝のNVMe対応M.2 SSD。OCZ R400のOEM版らしく、メモリチップはMLCです。
PCI Express 3.0 x4対応で、結構優秀な速度が出ます。
あと写真は割愛しますが親和産業のヒートシンク SS-M2S-HS01も購入しました。
動作時の速度はこんな感じ。
後述するM.2 – PCIe 3.0 x4変換ボードで接続したときの速度。
つまりPCI Express 3.0 x4での最速接続状態です。
こっちはマザーボードのM.2スロットに刺した時、つまりPCI Express 2.0 x4での速度です。
これでも通常用途には十分すぎる速度。
USBメモリ:余ってたもの、恐らく128MB~256MBもあれば余裕でOKです。
ブートローダー(今回はClover EFI loader)を書き込むのに使います。
ここを起点に起動することになるため、小容量のUSBメモリやらSDカードが余っていればその子が適任です。
NVMe M.2 – PCI Express 3.0 x4変換ボード:EasyDiy ED-AC-PCIE05
USB 2.0 ピンヘッダ – USB 2.0ポート変換アダプタ:世田谷電器 奥沢一丁目 AR-UPIPO-A
この2点は必須ではありません。
前者の変換ボードは「マザボのM.2スロットに刺すから不安定になるのでは???どうせ直差しだと速度落ちるしボード買うか~~~~~」ってなって注文しましたが、結局不安定なのはマザボのファームウェアのせいでしたってオチでした。ただ先述の通りこっちの方が速度出るのでそのまま使います。
後者はブートローダーを書き込んだUSBメモリが背面ポートをずっと占領するのが嫌で、自作機内部に入れておきたかったので注文。この辺りはお好みで。
マザボのUSB 2.0ピンヘッダからポートに変換してそのまま刺す感じで、こんな感じに落ち着きました。
青く光っているのは今回導入したM.2-PCIe変換ボードです、通電で青、アクセスでピンクに光ります。かなり明るく光るので気になる人はアクセスランプ目張りした方がいいかもです。
私は外から中が見えないタイプのケースを使っているので、カバーを閉じてしまえば大丈夫でした。背面のPCIバックパネルはなんかカッコよくなってしまいましたが…笑
実際にしたこと
NVMe SSDから起動するためにしたことは、先述した通りClover EFI bootloaderを導入しただけですが、ブートローダーのNVMeのドライバを有効にしたり、多少設定を変更したりはしました。
ただClover EFI bootloaderの導入に関しては全部GUIで出来ます。
原理としては、NVMe SSDからのブートに対応したマザーボードであれば
UEFIがNVMeドライバをロード → UEFIがNVMe SSDを認識 → UEFIがSSDに記録されたEFIローダーを起動
という流れで立ち上げるところを
UEFIがClover EFI bootloaderを起動 → CloverがNVMe SSDをロード→ CloverがNVMe SSDを認識 → CloverがSSDに記録されたEFIローダーを起動
と、Clover EFI bootloaderが補助する形でOSを起動します。
リムーバブルメディアへの導入は簡単で、cVadさんから提供されているBootDiskUtilityを使用すると最新版のClover EFI bootloaderをGUIで簡単に導入できます。
ツールを起動するとこんな感じの画面が立ち上がるので、まずはOptionsからConfiguration…を開きます。
設定画面が開いたら、まずはClover Bootloader SourceのソースをDLに設定し、Check Nowのボタンをクリックします。
これで最新版のClover EFI bootloaderが確認され、書き込み時にリポジトリから自動ダウンロードされます。
ボリュームラベルを設定したい人はVolume labelから設定しておきます。
そして既定ではMulti Partitioningが有効になっていますが、もし今回使うUSBメモリはそれ専用にしようと思っているのであれば無効にしておきましょう。
逆に大きい容量のものを使うから残った容量は有効活用したい、という方は有効のままで大丈夫です。
OKをクリックすると元の画面に戻りますので、リストから書き込み先のディスクを選択します。
今回はブログ掲載前に改めてスクリーンショットを撮影したためSDカードが書き込み先になっていますが、実際にはImationのUSBメモリに書き込みました。
ディスク選択後、Format Diskをクリックすると最終確認の後、ディスクのフォーマットとClover EFI bootloaderの書き込みが始まります。
終了すると、All doneと表示されます。これで書き込みは完了です。
さて、ここからはドライバの有効化作業とちょっとした設定変更に入ります。
エクスプローラーを立ち上げ、Clover EFI bootloaderを書き込んだドライブを開き、EFI>CLOVER>drivers-Off>drivers64を開きます。
中に標準では無効化されているモジュールが格納されていますので、この中からNvmExpressDxe-64.efiを選択、切り取ります。
次に切り取ったファイルを有効なモジュールが格納されたフォルダに移動させるのですが、この移動先がUEFI環境かBIOS環境かによって異なります。
UEFIの場合はEFI>CLOVER>drivers64UEFI、BIOSの場合はEFI>CLOVER>drivers64に移動させてください。
自環境で未検証ではありますが、両方にコピーすると動作しないとの情報もありますので注意してください。
これでドライバの準備はOKです。Clover EFI bootloaderからNVMe SSDが認識出来るようになりました。
この状態で一度PCをシャットダウンしてUEFIの設定画面に入り、ブートデバイスを今回書き込んだリムーバブルメディアに変更、可能であればCSMを無効にするか、UEFI onlyな値に変更します。
この状態でWindowsのインストールメディアをUEFIモードで立ち上げてNVMe SSDをターゲットにインストールします。
その際OSによってはドライバロード等必要なようですが、その辺りはネットの海にいくらでも日本語の情報が転がっているようなので割愛します。私はWindows 8.1を使っているので、インストーラからは問題なく認識されて進めました(と言いつつ、私はこのタイミングでRD400/XG3用のドライバを読み込ませました)。
あとはインストーラが再起動を掛けるタイミングを待ち、再起動したらClover EFI bootloaderからPCを立ち上げ、ディスク一覧からNVMe SSDに入ったWindowsを探して起動するとインストールが再開されます(ここでインストールメディアからブートしてしまうと振り出しに戻されるので注意してください)。
インストールが終われば毎回Clover EFI bootloaderからそのままブート出来るかと思いますが、毎回GUIが数秒間表示されるのが野暮ったく感じるようであれば、Clover EFI bootloaderを書き込んだディスクの中のEFI>CLOVER>config.plistの中のTimeout値を変更しましょう。
私は0に設定して即起動するようにしましたが、マルチブート環境などで支障が出る方は任意の適切な値に設定してください。
またGUIのデザインがダサいという方(私)は続けてThemeの値も変更してしまいましょう。
今回はembedded(標準テーマ)に設定しましたが、Clover EFI bootloaderには多数テーマが存在するので、お好みのものを探して適用しても良いかと思います。
Timeout値を0にすると基本的には見ることがないんですけどね(^^;
なお、config.plistはWindows標準のメモ帳では改行コード違いで正常に読み込めないので注意してください。私はSublime Textを使いました。
あとはエクスプローラからブートローダーを書き込んだディスクが見えるのが嫌な方(私)であればドライブレターを削除するなり非表示パーティションに設定するなりで対処してあげてください。
前者であればWindows標準のディスクの管理(diskmgmt.msc)から簡単に出来ます。
おわりに
以上の手順で無事NVMe SSDからOSを起動することが出来ました。速くて快適です。
色々回り回ってお金も少し余分に掛かってしまいましたが、結局は上記のような簡単な方法で完結してしまいましたね、ちょっと悲しい、、、
UEFIファームウェアを改造する形での起動方法はたくさん上がっているのですが、どうもIntel向けの内容のようでAMDのチップセットでやって大丈夫なのか不安だったので、改造しない手法で起動出来て良かったです。
同様の症状で悩んでいらっしゃる方々の手助けになればと思います。
ただASRockさんにはNVMe SSDを刺してもまともに動くファームウェアを早く提供して頂きたいです何卒お願いします!!!
おかげ様で必要になった移行作業中にHDDがうんともすんとも言わなくなって普段使いのツール集と作業中のデータが天に召されました……(死)
この記事を参考に、BIOSTAR A68N-5745というA10(APU)オンボードのマザーボードでWindows10のBOOTに成功しました。情報に感謝します。
from:GATAGATA
>GATAGATAさん
お役に立てたようで何よりです!
NVMe SSDでの起動はまだまだクセがありますし、早くどの環境でも問題なく簡単にブートできるようになるといいですね~
C602チップセットに M2を載せるのに 参考にさせていただきました。ありがとうございます。PCの延命が出来ました。
MSI H87-G41+AINEX AIF-08+Crucial CT1000PSSD8JP+Windows 10 Homeでも同じ手で行けました。非CPU側PCIe Gen 2 x4レーンを丸々使って片方向理論転送レートの8割はリードライトともに出ます!