ca-ttyの日記: grub2 の起動メニューから消滅した windows のエントリを復活させる方法 6
Debian12 / windows10 のデュアルブート環境にて、久々に windows を起動しようとしたところ、grub2 の起動メニューから windows が消滅していることに気づいた。 この問題の解決方法を記しておく。
起動メニューから消えた理由は /boot/grub/grub.cfg から GRUB_DISABLE_OS_PROBER 行がなくなっていたからであった。 何故・いつ消えたまではわからなかった。
この行を適切に復活させればなおすことができるわけだが、UEFI + grub2 環境は非常に複雑で私の知能では理解できないため、GUI によるカスタマイズ専用ユーティリティで解決することにした。以下手順である。
Debian12 に grub-customizer というパッケージをインストールする。
grub-customizer を起動し、管理者権限を得る。
「一般設定」タブの「高度な設定」ボタンの GRUB_DISABLE_OS_PROBER にチェックを入れる(値はもちろん false)。
「保存」アイコンを押して保存する。
GRUB_DISABLE_OS_PROBER 行消滅が原因であった場合はこれで復活する。
まっったく簡単だ!
私がこの作業を実行していたとき、windows10 の C: に相当するパーテーションをマウントしていたことを記しておく。 してないと発見されないみたいなことはないとは思うが念のため書いておく。
以下は経緯について記す。 状況を自分と比較したい人以外は読まなくとも良い。
まず本件が発生した機体を入手したときの状況を記す。 中に入っていた HDD の Win10 からプロダクトキーを抜き、新品の SSD に換装し、パーテーションを 1/3 程度切ってそこに win10 をゼロインストールした。 「最新」といわれるまでセキュリティパッチをあてて再起動を繰り返した。 そこに Debian12/amd64 をインストールし、どちらでも起動できることを確認した…確かにしたはずなんぬが…それ以降 win10 の出番はなかった。
んでついに出番が来たのだが、grub2 の起動メニューからは消えていたって寸法なんぬ。 入手以来使ってなかったのでどの時点で消えてたのか全然わからん…
win10 は起動すると大量のアップデートと再起動を要求されるので、ついつい起動するのが億劫になって使わなくなるという悪循環がある気がする。 notepc だとライセンスがついてくるからもったいなくて入れちゃうみたいなとこある。
ちなみにこれ最初はヒ(今はメか?)に書こうと思ったんだけど、シャドウバン食らって自分の書き込みが検索に出ねえんぬ? みたいな? ここに書くのは大げさかと思ったけど書いちゃいましたんぬ。 ちなみにここは ぬ の日記帳なんぬ。
いちおうマジレスしとくと (スコア:0)
UEFI/Secure bootでセキュリティ確保してるってのに、grubがos-proberかましてどこからでも好き勝手にOS起動できるという状態は誰がどう見ても不味いよな?
ゆえにデフォルト オフになっただけ
とはいえ無印grub時代は、あくまでもシンプルに徹していて余計なことしなかったが、grub2はアップデートする時、こうやってちょいちょい余計なことを始める
LILO的なものしかなかった時代はアップデートの度に毎回先っちょに書き込む必要があったが、今やブートマネージャーなんてそう何度も何度も設定変えるようなものでもないので
今回のように、また余計なことされる度に右往左往するのが面倒だと感じたら、mkconfigなんて使わず自分専用のgrub.cfg手書きしてそれ使っとけ
まともな頭もってる奴は皆そうしてる
Re:いちおうマジレスしとくと (スコア:2)
時間を割いてご教授いただきましてありがとうございます。 納得がいきました。
ただ世の中私を筆頭に現在の UEFI の起動周りについて詳しく把握している者ばかりではありませんで、そういった知識のない者でもとりあえず元の状態に簡便に戻せる方法にも需要があるかと考えて記しました。 GUI を使っているのもそのような意図に基づくものです。
私個人といたしましては今後頻繁に変更が来るような場合にはおっしゃるような手書きも検討するつもりでおります。
Re: (スコア:0)
> まともな頭もってる奴は皆そうしてる
そんなが奴いたら、そいつはアホです。というか嘘ばっかり言うのは止めてください。アホが伝染ります。
普通の人はまずマニュアルを読みます。余計な妄想は時間の無駄です。マニュアルを読み、事実だけを確認します。
マニュアルには、設定ファイルは /etc/default/grub または /etc/default/grub.d 以下のファイルと書いてます。
で、/etc/default/grub を見ると次のように説明があります
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in
Re:いちおうマジレスしとくと (スコア:2)
思案の末、穏当に斜めに弾いたのに正面からガチのマジレス返し!
…冗談はさておいて、どなたか存じませんが丁寧に説明してくださってありがとうございます! Anonymous Coward #4549960 さんの反論もぜひ読んでみたくて期間をおいてみたのですが、残念ながらお返事いただけないようなので、この話題はここらへんでキリとしたいと思います。
一応擁護しておきますとディストリビューションのパッケージ制作者達よりもクイックハックのほうが優れていると疑うことなく自らを信じきれる勢い・若さも多様性という観点から重要かと思います。 そういうタイプの人たちのクイックハックに助けられたことも過去多々ありますし(最近ではほとんどなくなりましたが)。
最後に私のお気持ちを表明しておきますと、ブートローダーには OS を選択して起動することしか求めていないし、PC ベースのハードウェアに「物理的に盗まれても中身は安全」レベルのセキュリティも求めていないので、BIOS/MBR/grub1 時代のほうが単純で良かったと思ってしまいます。 過去より現在のほうが改善されてより良くなっていることは理解しておりますし、パッケージ製作者の方々には感謝しておりますが、その一方でエリア88に出てきたジェット戦闘機についていけないおじさんみたいな心情を感じてしまいます。
変更通知 (スコア:0)
このgrubの変更があったときに、表示もされたし、同内容がroot宛にメールで来ていたはず。
もしかしてapt-listchangesが必要?
わたしもGrubメニューにWindowsを追加してますけど、UEFIのブートセレクターでいいような気がしている。
grubとSSD換装といえば、rootがUUIDになってると立ち上がらなくて困る。
/dev/sda1とかだったら物体を交換すれば動いたのに。
Re:変更通知 (スコア:2)
アップデート時の通知に関してはおそらくなんも考えずに読み飛ばしていたものと思われます。 お騒がせして申し訳ございません。
おっしゃるとおり UEFI 側で直接選んでも良いような気もいたします。 そちらのほうが実際固いのでしょうけれども、起動時に setup menu に入るタイミングがシビアな機体だと grub を経由したくなります。
物理的な SATA コネクタ単位で考えるならばたしかに旧来の表記のほうが楽ですね。 調べて書き換える一手間がめどい…