「デスクトップのジャンクPC買いました」で紹介したWindows 10 / Ubuntu 22.04のデュアルブートにしていたPCなんですが、HDD容量が160GBと小さくて容量不足になってしまったので、1TBのSSDに換装する事にしました。
ところがあまりWindowsを使っていないため外付けボリュームへのインストールの方法をちゃんと調べなかったため、USBに入れた「Media Creation Tool」(「Windows 10 のダウンロード」参照)を使って外付けSSDにインストールできるものと思っていたら、それはできずHDDのWindowsを上書きインストールしかできず、加えてWindowsもubuntuも起動出来なくなってしまいました。
(参考(仮想マシンを作成する場合など):「Windows 10 のディスク イメージ (ISO ファイル) のダウンロード」)
ひとまずWindowsだけでも起動出来ないかと色々調べてみたのですが、試行錯誤することになってしまいました。まず、「Windows 10 インストールメディアでセーフモードを起動する方法」を参照してセーフモードで起動出来ないかと、
「bcdedit /set {default} safeboot minimal network」
でセーフブートに設定してみたのですが,、再起動がかかるとgrubが「rescue mode」で起動してしまい状況は変わりませんでした。
ここから推測できるのはブートレコードの不具合が起きているということで、参考記事を探してみました。
「スタートアップ修復とコマンドプロンプトでWindows10起動しない問題を解決!」が見つかり、
bootrec /FixMbr
bootrec /FixBoot
bootrec /RebuildBcd
を入力してみました
(参考:「Windows のブートに関する問題のための高度なトラブルシューティング」)。「bootrec /FixBoot」は「Bootrec /Fixboot アクセスが拒否されました」のエラーが出てしまいましたが、MBRの修復はうまくいったので、ここで再起動を試したところ、ubuntuは立ち上がらなくなったのですが、Windows10は起動できる様になり復旧できました。1TBのSSDへの換装はまだできていませんが、うっかり壊したHDDの修復はなんとかできました。
#追記(2023/12/30)
記事を投稿した後で、類似の記事を見つけました。デュアルブートにした環境からLinuxを削除した場合にも類似のトラブルが起きる様です。(「grub rescue の画面が出てWindowsが起動しない場合の修復方法」)
#追記(2023/12/30)
bootrec /FixBootのエラー対策の記事がありました。
(スタートアップの修復画面に関する操作は「対処法:Bootrec/fixbootアクセスが拒否されました-2023最新」を参考にして、手元のPCはレガシーBIOSなので、「bootrec /fixbootで「アクセスが拒否されました」が出た時の対処 – Windows10」を参考にしました)これらの記事の方法を試してみたところ、
「chkdsk c: /r」
とディスクのメンテナンスをしたところエラーは消えました。
なお「Windowsの回復環境から自動修復」の起動方法はこの記事にも書いてあるのですが、Microsoftの公式記事もありました。
(「Windows の回復オプション」-「スタートアップ修復機能を使用する」)
grebの不具合解決にはgrubを再インストールするしかない様です
(参考:「(.WindowsアップデートしたらデュアルブートのUbuntuが起動しなくなった )」)