
overlayroot=tmpfs:swap=1,recurse=0
/etc/overlayroot.conf で設定された overlayroot を使用しています。
overlayroot は期待通りに動作しています。overlayroot を無効にしてから必要に応じて再度有効にするだけで、grub を更新できました (イメージを設定しているため、途中でかなりの変更を加えています)
問題は、grub の設定方法に関係なく、再起動時に grub メニューが 30 秒間表示されることです。ああ、言及しておくべきなのは、毎回 update-grub を実行し、読み取り専用モードではなかったことです。
これが私のGRUB設定です。私も試してみましたが、ダメでしたGRUB_DISABLE_OS_PROBER=true
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
# Disable OS Prober for selecting dual boot scenarios.
GRUB_DISABLE_OS_PROBER=true
何が起こっているかというと、overlayroot がマウント ポイントを変更しているのだと思います。そのため、overlayroot が無効になっていると、grub メニューを表示せずに起動しますが、有効になっていると、より多くのマウント ポイントが検出され、メニューを読み込むことを決定します。
この投稿で受け入れられた回答も試しました:https://serverfault.com/questions/549166/how-to-update-grub-on-a-system-running-overlayrootただし、まだ「/usr/sbin/grub-probe: error: `/dev/mmcblk0p2' の正規パスを取得できませんでした」というエラーが表示されます。
答え1
OK、解決しました。overlayroot を無効にして、以下を追加します。
デフォルト
GRUB_RECORDFAIL_TIMEOUT=$GRUB_TIMEOUT
次にgrubを更新します
update-grub
overlayrootを再度有効にして再起動します