跳至內容
Bluebean 的筆記
Go back

解決 UEFI+LVM 的 Linux Boot 畫面 Timeout 無法設定的問題

一切的起源

大約一個月前,因為覺得公司的筆電開機慢又容易發燙,所以自己另外買了一臺筆電想要在工作上使用 不過買了才發現電腦裝的是 Windows 11 Home 好傢伙,我連 WSL 沒辦法開

雖然有嘗試過找指令來開 Hyper V 結果就是 Windows 一直開機失敗……

因為不想再花錢升級成 Windows 11 Pro 所以開箱第一天,直接拿去重灌成 Linux Mint

目前用起來還算順手,缺點就是 Linux 好多軟體不支援 😢 偏偏公司用微軟套餐,非 Windows/Mac 就沒軟體用,只能乖乖用 PWA 最後就放棄在公司使用改在家裡當第二台電腦

每次 Mint 開機時都會遇到一個問題 那就是 boot 選單都需要等 30 秒 常常接上螢幕後蓋著發現怎麼還沒開機,打開來才知道倒數計時還沒結束 等個 10 秒就算了,偏偏要等 30 秒……

於是,我就開始查資料來解決這個問題

TL;DR

使用 UEFI + LVM 的朋友 到 /etc/default/grub 設定 GRUB_RECORDFAIL_TIMEOUT 變數 就可以逃離 30 秒等待時間的魔爪了

辛路歷程

設定 GRUB_TIMEOUT 變數 (失敗)

正常情況下 只要前往 /etc/grub/default 修改 GRUB_TIMEOUT 變數 然後下 update-grub 就可以套用了

實際上就是設定好變數後,產出新的 Grub 腳本在開機時運行

更改完之後重開機 結果一樣要等 30 秒…

之後又到處去找跟 Grub 相關的配置檔修改 但都無果 不論怎麼改 GRUB_TIMEOUT 都沒什麼用

透過 Grub Customizer 設定 (失敗)

實際上 GUI 跟下指令的效果是一樣的 但是我想說有沒有可能是我找錯變數,或是有什麼配置我沒使用到 所以想借助 GUI 進行配置與更新 結果仍然是 30 秒

最後不小心搞爆 boot 配置,用安裝碟來還原 然後突然就變 10 秒了 ???

不過安裝碟還原的配置就少了 Mint 的 Splash,感覺就怪怪的 所以從 VM 裝了 Mint 然後把設定檔拉回來 然後秒數又回到 30 秒了

從 Grub 配置查原因

在找了一些資料之後,最後被引導到 Grub 的配置產生腳本 從這邊去尋找可能的參數來設定秒數,或是自己寫設定

打開 /etc/grub.d/00_header 後,發現了這段:

# ...
if [ "$recordfail_brkoen" = 1 ]; then
    cat << EOF
if [ \$grub_platform = efi ]; then
    set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
    if [ x\$feature_timeout_style = xy ] ; then
        set timeout_style = menu
    fi
fi
EOF
fi
# ...

如果 recordfail 功能無法使用 那會在 grub 配置檔新增: uefi 開機時強制進入 boot 選單的腳本 等待時間預設 30 秒,可以透過 GRUB_RECORDFAIL_TIMEOUT 設定等待時間

於是我在 /etc/default/grub 加入 GRUB_RECORDFAIL_TIMEOUT=5 然後下 grub-update 套用

最終, boot 選單終於變成只會等待 5 秒

問題在哪裡?

由於已經知道程式會走哪一段 所以就比較好查原因 原來是因為我剛好使用 UEFI 開機加上使用 LVM 檔案系統

UEFI + LVM = 進不去 Boot 選單

2018 年的時候,Ubuntu 上有人回報了一個 Bug 因為 UEFI 沒辦法在開機時進行瞬時按鍵判斷,加上 Grub 無法將開機失敗紀錄寫入 LVM 這導致了透過 UEFI + LVM 開機會無法進入 boot 選單

可以直接到 /boot/grub/grub.cfg 尋找 function recordfail 不支援的檔案系統會寫成這個樣子:

function recordfail {
  set recordfail=1
  # GRUB lacks write support for lvm, so recordfail support is disabled
}

該 Bug 最後的修正方式就是:強制進入 boot 選單

只不過預設等待 30 秒有些折騰人就是了 雖然可以直接 Enter 開機,不過有時候按下開機就馬上離開,結果回來都還沒離開 boot 選單呢 🙃

後記

之前就有在虛擬機用 Linux Desktop 的關係 所以用起來不會說不順手 就是有些常用的的 Windows 軟體要去找替代軟體

現在的 Linux Desktop 跟以前比起來已經穩定很多 用來寫 Code 看影片已經非常充足 遊戲上也可以用 Wine 跟 Porton 遊玩一部分的 Windows 遊戲

少數不便的地方,就是沒辦法用微軟的軟體 因為限定 Windows ,少部份 MAC 然後 Office PWA 又難用


分享文章:

Previous
久違的新文章
Next
好久沒寫文章了