LoginSignup
2
2

More than 1 year has passed since last update.

SATA SSDをNVMe SSD(M.2 SSD)に移行したときにつまづいた箇所

Posted at

背景と事象

今までHDDからSSD、SSDから新しいSSDへHDDやSDDのクローンを何度か実施して何ら問題なく移行してきました。10年ほど前のマザーボードを使用していてWindows11の要件を満たしていないのを機に、今回新しいマザーボートに変えました。SATA接続のSSDやらHDD、DVD/BRドライブはそのまま新しいマザーに繋げました。
ちなみに古いマザーで使用していたのはWindows10でUEFIブートです。
どうせならOSのSSDを新しい規格のSSDにしようということでNVMeのいわゆるM.2 SSDにクローンしました。
しかし、古いOS DISKを外して起動したのですが、以下のメッセージを出してWindowsが起動しませんでした。(いわゆるブルースクリーンというやつです)

0xc000000e

このエラーコードでサーチしたところ、ごまんとヒットしましたが、以下の理由でぴったりの方法は見つけられませんでした。探せなかっただけなのかもしれませんが。
1.MBRのDISKに対する方法やおまじないとしたコマンド類が書かれており、私の場合何をすれば良いのか読み解けなかった
2.起動を何度かすれば直るという記載があり、理由が記載されていなかったので納得できなかった
3.いろいろ試した方法が記載されていたが結局はクリーンインストールしていた

色々調べて何とか解決できましたので、私の解決方法を記述します。少しでもお役に立てたら幸いです。

私が解決した方法

1. WindowsインストールUSBで起動しコマンドプロンプトに入る。
2. DISKPARTでブート領域を見つけドライブレターを割りふる。
3. ブート領域のBCDをrenameまたは削除する。
4. bootrec /RebuildbcdでBCDを再作成する。
5. USBを抜いて再起動させる。

手順の詳細

  1. USB起動とコマンドプロンプトへの入り方
    1-1. 起動用USBの作成方法はMicrosoftのページもしくは「windows インストールメディア 作成」で検索。修復にはプロダクト・キーは不要です。
    1-2. USB起動してコマンドプロンプトに入るにはこちらの方法が余分なことが書かれていないので良いです。(Windows11ですがUSB起動画面はWindows10も同様です)

  2. DISKPARTでドライブレターの割り振り
    ここが注意が必要な手順です。入力するコマンドはcommandで表記しています。大文字でも小文字でもかまいません。
    2-1. コマンドプロンプトからdiskpartを入力します。
    2-2. list volumeを入力して、Volumeのltrの部分はブランクとなっていてボリュームレターが割り振られていない数100MBのFAT32のVolumeを探します。私の場合は100MBでしたが、別のWindows11を導入したPCでは750MBでした。
    2-3. 2-2.で見つけたVolume番号nを選択するためにselect volume nを入力します。nは数値です。
    2-4. 確認のため、list volumeを入力します。2-2で選択したVolumeの左はじにアスタリスク(*)が表示されていることを確認します。
    2-5. ボリュームラベルとしてBを使用したいので、assign letter=bを入力します。
    2-6. 確認のため、list volumeを入力します。2-2で選択したVolumeのltrがBと表示されていることを確認します。
    2-7. exitと入力してDISKPARTを終了させます。

  3. ブート領域のBCDをrenameまたは削除する
    これも注意が必要です。コマンドプロンプトから入力するコマンドはcommandで表記しています。スラッシュ/は円記号¥でかまいません。表示はバックスラッシュ(実際には半角)になります。
    3-1. b:で2-5.で設定したBボリュームに入ります。
    3-2. cd /efi/microsoft/bootでBCDのあるディレクトリーに移動します。このコマンドが失敗するようであればボリュームの選択が間違っていた可能性があります。
    3-3. ren bcd bcd.bakでBCDをrenameします。削除しても良いのですが、後で検証するためにbcd.bakで保管しておきました。

4.BCDの再作成
3の続きのコマンドプロンプトからbootrec /rebuildbcdを入力し、BCDを再作成します。
以下のメッセージが出力されていればOKです。

Windowsのインストールとして認識された合計数:1

以下の表示がされた場合、BCDのrenameが失敗していた可能性があります。BCDの有無をdir bcd*で確認してください。すでにBCDがあるとコマンドが失敗しました。

Windows のインストールとして認識された合計数:0

5.再起動
この後はexitでコマンドプロンプトを終了させ、画面の指示に従い一度シャットダウンを行い、USBを抜いて再起動させればWindowsは立ち上がるはずです。

クローン後起動できなかった理由

WindowsのBCD(Boot Configuration Data、ブート構成データ)にはWindowsを起動するためのブートローダーの場所が記載されています。これがpartition=xという形式で記載されていて、partitionはH/Wが認識するDISKとその中のパーティションの順番で決まります。
今までHDD/SDDをクローンした時は元のHDD/SSDを繋いでいたSTATケーブルで新しいSSDを接続したため、この順番は狂いませんでした。
ところが今回SATA SSDからNVMe SSDに変更したため、その順番が狂いました。他のマザーボードでも同じかもしれませんが、少なくとも私のマザーボード(ASROCK Z690 Pro RS)ではSATAのDISK、NVMeのDISKの順番でDISKが接続されているので、クローン元のpartitionではcとなっていても、NVMeの他にSATA SSDが接続されている環境ではpartionはd以降でないと起動すべきwindowsが見つからないという事態になります。
SATA SSDからNVMe SSDにクローンしてもSSDが一つであれば何の問題もなかったのですが、SSDを複数繋げている環境ではかならずBCDの変更が必要となるので、今回の手順が必要だったわけです。

たまにしかPCを組み立てないと、忘れてしまうものですね。

参考にしたドキュメント

Microsoftのドキュメント

Microsoft以外のドキュメント

これらのサイトは具体的な手順が図とともにあるのでわかりやすいかもしれません。

おまけ

Windowsが起動できるようになってから確認した私の環境のBCDの内容は以下のとおりでした。
ブートマネージャーのパーティションにBをアサインした後のbcdeditコマンド結果です。

Windows ブート マネージャー 
-------------------------------- 
identifier              {bootmgr} 
device                  partition=B: 
path                    \EFI\Microsoft\Boot\bootmgfw.efi 
description             Windows Boot Manager 
locale                  ja-JP 
default                 {default} 
displayorder            {default} 
timeout                 30 
 
Windows ブート ローダー 
-------------------------------- 
identifier              {default} 
device                  partition=G: 
path                    \Windows\system32\winload.efi 
description             Windows 10 Pro 
locale                  ja-JP 
osdevice                partition=G: 
systemroot              \Windows 
resumeobject            {69686e35-e97f-11ed-9c69-806e6f6e6963} 
bootmenupolicy          Standard 
  • list diskの結果
    元のSSDはフォーマットしSATAポートを変えてDISK 4として接続しています。
ディスク      状態           サイズ   空き   ダイナ GPT 
  ###                                          ミック 
  ------------  -------------  -------  -------  ---  --- 
  ディスク 0    オンライン          5589 GB  1024 KB        * 
  ディスク 1    オンライン           931 GB      0 B 
  ディスク 2    オンライン           931 GB      0 B 
  ディスク 3    オンライン           149 GB      0 B 
  ディスク 4    オンライン           465 GB  1024 KB        * 
  ディスク 5    オンライン           465 GB    25 MB        *  
  • list volumeの結果
    元のSSDはフォーマットし直してVolume 5になっています。
    なぜか回復パーティションが2つ(Vol.7とVol.9)もできていました。今後もUSBブートする予定なのでどちらも使用可能にしていないです。
Volume ###  Ltr Label        Fs    Type        Size     Status     Info 
  ----------  --- -----------  ----  ----------  -------  ---------  -------- 
  Volume 0     F                       DVD-ROM         0 B  メディアなし         
  Volume 1     Z   BKUP6T       NTFS   Partition   5589 GB  正常                 
  Volume 2     E   E-DISK       NTFS   Partition    931 GB  正常                 
  Volume 3     D   D-DISK       NTFS   Partition    931 GB  正常                 
  Volume 4     Y   INTELSSD     NTFS   Partition    149 GB  正常                 
  Volume 5     X   WDSSD25      NTFS   Partition    465 GB  正常                 
  Volume 6     C   M2SSD        NTFS   Partition    463 GB  正常         ブート 
  Volume 7                      NTFS   Partition    670 MB  正常         非表示 
  Volume 8                      FAT32  Partition    100 MB  正常         システ ム 
  Volume 9                      NTFS   Partition    893 MB  正常         非表示 

おまけ2

SATA SSDからNVMe SSDに変えましたがWindowsの起動時間は気持ち早くなったかなというぐらいで、驚くほど短くはなりませんでした。
無事Windows11にもupgradeできましたし、マザーボートを変えても古いWindows 8.1のライセンスで認証はできています。
この後、もっと速度の速いNVMe(HIKSEMIのPCIe4のseq.readが7000MB/s超のSSD)が入手できたので、NVMe->NVMeでクローンしたところ、クローン時間が半減しました。何分もかかるような処理の場合は速さが実感できます。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2