
Ubuntu日本語フォーラム
ログインしていません。
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を使用しています。
オフライン
使っているGrubは、Ubuntu由来のものでしょうか?
それともFedora由来のものでしょうか?
2つあるGrubの使いたい方のディストリビューションを起動して
/etc/default/grubを編集後、
sudo update-grub
続けて、sdaならば
sudo grub-install /dev/sda
オフライン
redred による投稿:
使っているGrubは、Ubuntu由来のものでしょうか?
それともFedora由来のものでしょうか?
うーん…分かりません。見た目的にはUbuntu由来だと思います。はっきり判別する方法はないですか?
それと、Grubは今のところ2つとも使いたくありません。
grub-installは使い方を知らないので、調べてみます。
オフライン
>うーん…分かりません。見た目的にはUbuntu由来だと思います。はっきり判別する方法はないですか?
Grubの起動OS選択画面の一行目が、そのGrubの由来です。
FedoraのアップデートでFedora由来のGrub設定が使われるようになったのだろう、と思います。
だから、今までUbuntu由来で表示をオフにしていたGrubが使われなくなった結果の現象だなと察します。
https://vegam57.livedoor.blog/archives/8877283.html
>それと、Grubは今のところ2つとも使いたくありません。
今までUEFIから直接起動しても途中で非表示設定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で非表示にできると思っていたのですが。
オフライン
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は表示されています。
オフライン
#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
オフライン
elliptic による投稿:
前回のセッションでGRUBから起動したlinuxが正常終了していないときは、問題ありとして
GRUB_TIMEOUTではなくGRUB_RECORDFAIL_TIMEOUTの時間 メニューを入力待ちにします。
ellipticさん
いつもお世話になります。
本件質問者さんは
>は、「Grubは今のところ2つとも非表示にしたい」ということです。
とのくだりから察するに、
UEFIから直接起動OSを選び、途中の各Grub画面は非表示でOSを起動したい、との模様に読めます。
でなければ、Grub画面は2つとも非表示にしたい、とは言えないと思いました。
この場合、
>前回のセッションでGRUBから起動したlinuxが正常終了していないとき
に当てはまってくるとの洞察の由縁を教えていただけますか?
私も勉強になります。
オフライン
#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
を実行する。
オフライン