お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2022-05-05 10:22:48

taku1367
メンバ
登録日: 2020-09-25

grubメニューを非表示にできません

Ubuntu 20.04.4 LTSをFedoraとWindows10とのマルチブートで使っています。
Fedoraをシステムアップデートした後、Ubuntuを起動する時にGRUBブートメニューが表示されるようになったのですが、これを非表示にすることができません。

/etc/default/grubは今こうしています。sudo update-grubはしました。

コード:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_FORCE_HIDDEN_MENU="true"
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

ちなみにこの問題とは関係ないと思うのですが、
GRUBメニューからFedoraを選ぶと古いバージョンのカーネルで起動します。
が、UEFIのBoot Overrideリストから選んだ場合は最新のカーネルで起動します。
マザーボードはASUS PRIME X570-PROを使用しています。

オフライン

 

#2 2022-05-05 11:19:56

redred
メンバ
登録日: 2020-05-27

Re: grubメニューを非表示にできません

使っているGrubは、Ubuntu由来のものでしょうか?
それともFedora由来のものでしょうか?

2つあるGrubの使いたい方のディストリビューションを起動して
/etc/default/grubを編集後、
sudo update-grub
続けて、sdaならば
sudo grub-install /dev/sda

オフライン

 

#3 2022-05-05 15:29:24

taku1367
メンバ
登録日: 2020-09-25

Re: grubメニューを非表示にできません

redred による投稿:

使っているGrubは、Ubuntu由来のものでしょうか?
それともFedora由来のものでしょうか?

うーん…分かりません。見た目的にはUbuntu由来だと思います。はっきり判別する方法はないですか?

それと、Grubは今のところ2つとも使いたくありません。

grub-installは使い方を知らないので、調べてみます。

オフライン

 

#4 2022-05-05 16:09:24

redred
メンバ
登録日: 2020-05-27

Re: grubメニューを非表示にできません

>うーん…分かりません。見た目的にはUbuntu由来だと思います。はっきり判別する方法はないですか?

Grubの起動OS選択画面の一行目が、そのGrubの由来です。
FedoraのアップデートでFedora由来のGrub設定が使われるようになったのだろう、と思います。
だから、今までUbuntu由来で表示をオフにしていたGrubが使われなくなった結果の現象だなと察します。
https://vegam57.livedoor.blog/archives/8877283.html

>それと、Grubは今のところ2つとも使いたくありません。

今までUEFIから直接起動しても途中で非表示設定Grubを経由していたのでは?

オフライン

 

#5 2022-05-05 16:13:25

taku1367
メンバ
登録日: 2020-09-25

Re: grubメニューを非表示にできません

Ubuntu上で/etc/default/grubを次のように編集して
sudo update-grub
sudo grub-install /dev/sda
を実行してみましたが、GRUBメニューは消えませんでした。

コード:

GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html
上のマニュアルを読んで、GRUB_TIMEOUT=0で非表示にできると思っていたのですが。

オフライン

 

#6 2022-05-05 16:36:15

taku1367
メンバ
登録日: 2020-09-25

Re: grubメニューを非表示にできません

redred による投稿:

Grubの起動OS選択画面の一行目が、そのGrubの由来です。

それなら、Grubの起動OS選択画面の一行目はubuntuなので、ubuntu由来です。

redred による投稿:

https://vegam57.livedoor.blog/archives/8877283.html

これは興味深いですね。読んでみます。情報提供ありがとうございます。

redred による投稿:

今までUEFIから直接起動しても途中で非表示設定Grubを経由していたのでは?

たぶん、そうだと思います。そして、僕の

taku1367 による投稿:

Grubは今のところ2つとも使いたくありません。

は、「Grubは今のところ2つとも非表示にしたい」ということです。
そして、FedoraのほうではGRUB_TIMEOUT=0に設定して.cfgファイルを更新したら表示されなくなったので、そのままにしています。
Ubuntuでも同じようにできると思い、やってみましたが、まだGRUBは表示されています。

オフライン

 

#7 2022-05-07 22:15:59

elliptic
メンバ
登録日: 2020-03-05

Re: grubメニューを非表示にできません

#5

taku1367 による投稿:

https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html
上のマニュアルを読んで、GRUB_TIMEOUT=0で非表示にできると思っていたのですが。

前回のセッションでGRUBから起動したlinuxが正常終了していないときは、問題ありとして
GRUB_TIMEOUTではなくGRUB_RECORDFAIL_TIMEOUTの時間 メニューを入力待ちにします。

コード:

$ grep -nC5 GRUB_RECORDFAIL_TIMEOUT /etc/grub.d/00_header 
357-
358-make_timeout ()
359-{
360-    cat << EOF
361-if [ "\${recordfail}" = 1 ] ; then
362:  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
363-else
364-EOF
365-    if [ "x${3}" != "x" ] ; then
366-    timeout="${2}"
367-    style="${3}"
--
409-fi
410-EOF
411-if [ "$recordfail_broken" = 1 ]; then
412-  cat << EOF
413-if [ \$grub_platform = efi ]; then
414:  set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
415-  if [ x\$feature_timeout_style = xy ] ; then
416-    set timeout_style=menu
417-  fi
418-fi
419-EOF

オフライン

 

#8 2022-05-08 07:38:47

redred
メンバ
登録日: 2020-05-27

Re: grubメニューを非表示にできません

elliptic による投稿:

前回のセッションでGRUBから起動したlinuxが正常終了していないときは、問題ありとして
GRUB_TIMEOUTではなくGRUB_RECORDFAIL_TIMEOUTの時間 メニューを入力待ちにします。

ellipticさん

いつもお世話になります。

本件質問者さんは

>は、「Grubは今のところ2つとも非表示にしたい」ということです。

とのくだりから察するに、
UEFIから直接起動OSを選び、途中の各Grub画面は非表示でOSを起動したい、との模様に読めます。
でなければ、Grub画面は2つとも非表示にしたい、とは言えないと思いました。

この場合、

>前回のセッションでGRUBから起動したlinuxが正常終了していないとき

に当てはまってくるとの洞察の由縁を教えていただけますか?
私も勉強になります。

オフライン

 

#9 2022-05-19 21:09:47

elliptic
メンバ
登録日: 2020-03-05

Re: grubメニューを非表示にできません

#7を少し訂正します。
誤:起動したlinuxが正常終了していないとき
正:Ubuntuの起動が成功しなかったとき
終了までは監視してなくて
/etc/systemd/system/multi-user.target.wants/grub-common.service
にたどりついたら起動成功らしいです。

#8 redred による投稿:

>前回のセッションでGRUBから起動したlinuxが正常終了していないとき

に当てはまってくるとの洞察の由縁を教えていただけますか?

当てはまると思ったわけではありませんが GRUB_TIMEOUT=0 が無視されるケースとして
上げてみました。
起動失敗しただけなら次の正常起動から復旧するので、失敗を記憶したまま
grubenvが書き換え禁止になるなどの条件が揃わないとtaku1367さんの状態を
再現するのは 難しそうです。
いま、もう少し可能性が可能性がありそうかなと思っているのがos-prober関連です。

コード:

$ grep -nB5 '### END /etc/grub.d/30_os-prober ###' /boot/grub/grub.cfg
322-}
323-set timeout_style=menu
324-if [ "${timeout}" = 0 ]; then
325-  set timeout=10
326-fi
327:### END /etc/grub.d/30_os-prober ###

Ubuntu以外のOSを検出し、かつ GRUB_TIMEOUT=0 だったとき
タイムアウトを10秒に変更して、メニュー表示を強制するコードが入ってます。

taku1367さん
表示されるGRUBメニューが 10秒のカウントダウン付きならば
以下の操作を試して変化があるかを見てください。

* /etc/default/grubを編集して
GRUB_DISABLE_OS_PROBER="true"
の1行を追加する。
* 「端末」で
sudo update-grub
を実行する。

オフライン

 

Board footer

Powered by FluxBB