ひな形PCで作ったWin10 21H1のイメージを、ディスクコピー(これDO台 Hi-Speed使用)で複製してHDDの入れ替えて全台キッティングしている中で、なぜか「ある一台のSSD」を接続するとSATAに接続したどんなSSDからもブートできなくなる現象が発生した → 解決したので 記録に残しておきます。
復旧前の状況
- 富士通製デスクトップなので起動時[F12]キーで、起動メニューを表示させる。でも、「Windows Boot Manager」は表示されない
- USBに入れた、GRUB2 で chainload すると、ちゃんとSSDから起動できる
- たぶん、Firmwareかどっかにブート関係のデータがあってそこがおかしい?
作業1 USBからブートして、SSDのWin10をchainload
たぶんWindowsPEとかでできるんだろうけど、デバッグしやすそうなのでGRUBを使いました。
(インストールディスクからコマンドプロンプトで、作業1は飛ばせると思います。)
- FAT32フォーマットのUSBドライブを準備
-
https://clonezilla.org/downloads.php
よりUbuntuベースのバージョンから clonezilla-live-20210609-hirsute-amd64.zipをダウンロード - EFIとboot フォルダのみUSBのルートに全部コピー
- X:\boot\grub\grub.cfg を書換
insmod chain
insmod boot
set default="0"
set root=(hd1,gpt1)
menuentry "Boot" {
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
boot
}
作業2 起動したWindowsから bcdeditで Windowsに関係しそうなデータを消す
Administrator権限のあるユーザでサインイン して コマンドプロンプトを開く。
> bcdedit /enum firmware
ファームウェアのブート マネージャー
--------------------------------
identifier {fwbootmgr}
displayorder {aaaaaa1f-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
{eee8b000-ddc6-yyyy-ze51-xxxxxxxxxxxx}
{aaaaaa1d-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
{aaaaaa20-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
{bootmgr}
timeout 2
Windows ブート マネージャー
--------------------------------
identifier {bootmgr}
device partition=\Device\HarddiskVolume1
path \EFI\MICROSOFT\BOOT\BOOTMGFW.EFI
description Windows Boot Manager
locale ja-JP
inherit {globalsettings}
default {current}
resumeobject {……省略……}
displayorder {current}
toolsdisplayorder {memdiag}
timeout 30
ファームウェア アプリケーション (101fffff
--------------------------------
identifier {aaaaaa1d-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
description 診断プログラム
ファームウェア アプリケーション (101fffff
--------------------------------
identifier {aaaaaa1f-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
description UEFI: IP4 Realtek PCIe GBE Family Controller
ファームウェア アプリケーション (101fffff
--------------------------------
identifier {aaaaaa20-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
description Windows Boot Manager
ファームウェア アプリケーション (101fffff
--------------------------------
identifier {eee8b000-ddc6-yyyy-ze51-xxxxxxxxxxxx}
description UEFI: IP6 Realtek PCIe GBE Family Controller
本来、{bootmgr}だけなはずなのに、もう一つWindows Boot Managerがあるのが間違いのよう
> bcdedit /delete {aaaaaa20-bbbb-yyyy-zbd0-xxxxxxxxxxxx}
この操作を正しく終了しました。
消せないときは
> bcdedit /delete {aaaaaa20-bbbb-yyyy-zbd0-xxxxxxxxxxxx} /f
この操作を正しく終了しました。
これでGRUBが入ったUSBなしで、Windowsのブート(WindowsRE 回復オプション)ができるはず。
できなかったら、Windowsに関係ありそうなidentifierを片っ端から削除。(消しても再起動時に正しいのが自動で認識される。)
> bcdedit /enum all /v
/v オプションで {bootmgr}などの実際のidentifierを調べて消す必要もあるかもしれない。
作業3 回復オプションじゃなくてちゃんと起動するようにする
回復オプションが起動したら、
オプションの選択で
「トラブルシューティング」→「コマンドプロンプト」を起動する。
Fat32でフォーマットされた、EFI System Partition(ESP)にアクセスできるようにする。
> diskpart
DISKPART> select disk 0
DISKPART> list volume
…未割当のFAT32を見つける
DISKPART> select volume 4
DISKPART> assign letter=Z
DISKPART> exit
>
これで EFIブートに必要なパーティションにアクセスできる。
参考:https://www.diskpart.com/jp/articles/assign-drive-letter.html
> bcdboot C:\Windows /l ja-JP /s Z: /f UEFI
> exit
参考:https://qwerty.work/blog/2020/03/windows10-repair-command.php
コマンドプロンプトを抜けると
回復コンソールに、先ほどはなかった
「続行 終了してWindowsに進みます」が表示されたら、成功。
そもそもは
職場のPC(Win8.1&HDD)が導入から5年半がすぎ、リプレースが近いのだけど
世の中の半導体不足と、「この前変えたばっかりじゃない?」という無理解のため
延命措置としてWin10 21H1 & SSD換装で乗り越えようとした中での出来事でした。
SSDの故障かと思って、新品に交換しても症状が治らなかったり、
調子の悪いSSDのほうを間違ってつないだら、症状が伝搬していってしまって、焦りました。
同じケースはあまりないのかもしれないですが、
まとまった情報がなかったので、メモしました。