HP Compaqの8300USは第3世代core i5が載っている。これをcorei7に載せ替えたところなぜかWindows10が起動しない。念のためもう一度core i5に戻したが同じように起動しない。理由は不明だがなんかやらかしたらしい。
症状
BIOSは立ち上がる。ブートディスクが見つけられないらしく、
grub>
で止まっている。ん?
このPCは中古でWindows10がプリインストールされていた。Linuxを入れた記憶はない。起動後にF9連打でブートメニューを表示させたところ、候補にubuntuが出てくる。ubuntu???
今まで気づかなかったが、どうやら前の持ち主がLinuxをインストールしてデュアルブート化して使っておりそれを中途半端に削除していたとしか思えない。でも、そうも思えない。HDDはMBRでなくGPTでインストールされている模様。UEFIには近づきたくなかったが、仕方がない。
対策1(EFIパーティションのchkdsk、ダメ)
WindowsのインストールUSBから起動し、定番の、
X:\> bootrec /fixmbr X:\> bootrec /fixboot
とすると、「アクセスが拒否されました」と出る。なんでや。
https://freesoft.tvbok.com/win10/recovery/fixboot-access-denied.html
↑のページを参考に、diskpartで次のコマンドを打ち、
↑のページを参考に、diskpartで次のコマンドを打ち、
X:\> diskpart diskpart> list vol diskpart> select vol 2 diskpart> assign letter b: diskpart> exit
とする。Volume2がFAT32でフォーマットされており、EFIのパーティションである。サイズはちょうど100MBだった。EFIのパーティションをBドライブにアサインする。そして、
X:\> chkdsk B: /f
それが終わったら、
X:\> bootrec /fixboot
とすると、正常に終了しました、と言ってくる。ただ再起動しても症状は変わらず、起動後
grub>
で止まる。
もう一度Windows10のインストーラで起動し、
X:\> bootrec /fixboot
とすると、はやりアクセスが拒否される。何がおかしいんだろうか。
対策2(grubの削除、ダメ)
https://itlogs.net/ubuntu-grub-delete-uefi-bios/
↑を参考にWindows10のインストーラから、
↑を参考にWindows10のインストーラから、
X:\> bcdedit /enum firmware
とすると、見つからない、と言われる。
先ほどと同様にEFIのパーティションをBドライブに割り当て、
X:\> B: B:\> dir
とすると、Bドライブには、トップ階層に\EFIというディレクトリがあり、その下位に\EFI\Microsoft、\EFI\Boot、\EFI\ubuntuという3つのディレクトリがある。このうちubuntuをディレクトリごと削除した。
B:\EFI> rmdir /s ubuntu
そして再起動すると、grub>は出なくなったが、やはりブートデバイスがないと言って起動できない。
対策3(EFIパーティションの初期化、ダメ)
- B:ドライブをFAT32でフォーマット
format b: /FS:FAT32
- BCDの再作成
cd /d b: bootrec /Rebuildbcd
ここで、見つからない的なことを言われる。参考にしたページもここまで、あとは(バックアップを取ったうえで)再インストールしかないのか。諦めた。
対策3(バックアップと新規インストール)
仕方がないので、HDDを外して、代わりに480GBのSSDにWindows10をインストールし直すことにした。
UEFIで起動するWindows10インストーラUSBメモリの作成
UEFIで起動するwindows10をインストールするためには、インストーラが起動するUSBメモリがUEFIで起動されなけらばならないらしい。手元にあるWindows10 インストール用のUSBメモリはBIOSで起動するのでこれを使うとWindowsをMBRにインストールしてしまうらしい。そこでrufusを使って改めてWindows10のisoファイルをGPTを指定してWindows10インストーラUSBメモリを作成した。このあたり分かりづらい。
UEFIで起動するWindowsのインストール方法
上で作ったUSBメモリから起動すると、なるほどUEFIから起動している。このインストーラを使ってWindowsをインストールするのだが、時々このディスクにはインストールできない的なことを言われるらしい。これはこのディスクがMBRで起動する状態で初期化されているかららしい。インストール先のディスクを選ぶ時点で、いったんパーティションを削除し、新規を選んで適用、とすればインストールができるようになる。↓ここ参照。
https://freesoft.tvbok.com/tips/efi_installation/diskpart_gpt_mbr.html
https://freesoft.tvbok.com/tips/efi_installation/diskpart_gpt_mbr.html
元のディスクのバックアップと復元
一応念のために元のディスクのCドライブのファイルを全部別の外付けHDDにコピーした。この作業は本体のHDDから起動できないので、Puppy LinuxのUSBメモリから起動し、ここでファイルのコピーを行った。元のHDDのファイルサイズは合計170GB程度。コピーにはやたら時間がかかった。3時間くらい。
次にEase US BackUpのUSBメモリから起動するやつ(以前作成したもの)から起動し、Cドライブの内容を別の外付けHDDにバックアップした。バックアップはシステムバックアップ、パーティションバックアップ、ファイルバックアップが選べるようになっているが、パーティションバックアップを選んだ(これが失敗だった)。バックアップに要した時間は1時間程度だったか。
ここで元のHDDを外し、新しいSSDに入れ替えた。新しいSSDにいったんWindows10を新規にインストールし、再びEase US BackUpのUSBメモリから起動し、復元を選んだ。復元には1時間程度かかった。そうして再起動させてみると、、元のHDDと同じで起動できない状態が単に再現された。パーティションバックアップをすると、まったく前のHDDと同じ状態が再現されてしまい、ダメなんだろうか。やり方が悪かったんだろうか。ちょっとわからない。
そして復活
一晩経ってよく考えてみると、そもそも元のHDDにはきちんとWindowsが残っているはずで、問題は起動のところだけだから、やっぱり何とかなるんじゃないか、と思い直した。
https://freesoft.tvbok.com/tips/efi_installation/uefi_bootrec.html
このページを見て、もう一度、元のHDDを戻してみた。
https://freesoft.tvbok.com/tips/efi_installation/uefi_bootrec.html
このページを見て、もう一度、元のHDDを戻してみた。
そしてWindowsインストーラが入ったUSBメモリから起動し、コマンドプロンプトから、
X:\>bootrec /rebuildBCD
とすると何やら正常に終了したように見えた。あれ?
そして次にコマンドプロンプトを抜けて、スタートアップ修復、とすると何やら始めて勝手に再起動した。そしてなんと、元のWindowsがHDDから起動された。
これで問題は解決したが、いったい何だったんだろうか。なぞは残ったままである。