2025年12月01日

(加筆修正)linuxで、uefiブートローダーの消失させない方法?

※わかりにくいところがあったりしたので、修正しました。

ずっと以前からよく解らないままにしてきたことです。
ubuntuを除くと、たいがいの ディストリビューションは、
HDD_Aなりのディスクを切り離し別なHDD_Bなどを代わりに接続、起動し、
再びドライブをHDD_Aに戻したときに、uefi_biosの起動候補から、
消えてしまいます。

つまりHDDはそのままでマザーボードやcpuを換装したあとに
確実に見えなくなるわけですね。そのワケは、googleAIの
説明するところによると、マザーボードの
不揮発性メモリのnvramに登録されてから。
これは、納得です。
HDD側にある/boot/efi/EFI/archlinux/grubx64.efiなどが
が依然存在しても、ないのと同じで見えなくなります。
nvramに登録がないと、HDD側のブートファイルが
そろっていても起動しないということでしょう。

ディストリビューションによって結果に違いが出る理由は、
ディストリビューション・インストール時の
ブートローダーのインストール方法が
ディストリビューションによって違うから、
との説明もgoogleAIの返答にありました。

HDDは同じであるまま、マザーボードを替えたら、
nvramもまっさらの別なものになります。
ubuntuも起動できなくなりそうですよね。
なぜか起動できるんです。

つまり好き嫌いは棚の上に上げて、linuxをやるなら、
ubuntuは入れておけ、ということになります。
ひとつ立ち上がれば、ほかのディストリビューションは
grub2のgrub-mkconfig(os-proberの機能要)コマンドなどを使えば、
起動するよう、状態を戻せますから。

きょう、やってみたコマンドが以下です。
$ sudo efibootmgr -c -d /dev/sda -p 1 -l "\EFI\SparkyLinux\grubx64.efi" -L "SparkyLinux"
    ※1行のコマンドです。

オプションの意味するところは、googleAIに拠ると
efibootmgr_install_2025-11-30_17-39-19.jpg

efibootmgr_install_2025-12-01_05-11-24.jpg
さも、適正にインストールされた如くです。

$ sudo efibootmgr -v でエントリーを確認すると、
efibootmgr_-v_2025-11-30_18-10-46.jpg

sparkyがダブりました。
このようなことは、何度かトライしたことがりまして、
やっぱり消えてしまったような記憶があります。
コマンドオプションがちょっと違ったかもしれないですが。

HDDを取り外して実験する元気は、いまちょっと、、、。

翌朝、早起きしてやりました。
やっぱりsparkylinuxは、uefi_bios上、消失しました。
残ったのは、Widowsにみせかけたarchlinuxと
ubuntuと、fodoraでした。最近のfedoraは消えないみたいです。
ただ、fedoraをデフォルトインストールすると、勝手に
uefi systemパーティションをfedora専用に設けてしまいます。
そのパーティションが既にあるんだから、
見つけて利用してくれればいいものを。

個人的には、ubuntuだけは、nvramに完全にリードオンリー
の領域があったりsて、チップメーカーが配慮していんじゃないかな、
と疑っています。nvramって、ほんとに不揮発なんかい!?
fedoraの消えない理由はは判らないですけど。

騙してWindowsに見せかけるには、
/boot/efi/EFI/Microsoft/Boot/bootmgfw.efi
の階層と名前で、好みのディストロのgrubx64.efi辺りを
コピー&リネームしてそこに置くと消えません、
マザーボードを替えたときにもOKのはず。

絶対的存在がゆらいできたWindowsですが、
いまのところ、マザーボードメーカー各社は、
Windowsと運命を共にする覚悟のようですから、
必ず起動できるはずです。

nvramの仕組みは、未だによくわかりません。
だれか、教えて!


posted by ブログ開設者 at 17:58| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。