開機直接進Ubuntu?GRUB引導菜單修復全攻略)
1. 問題現(xiàn)象與核心癥結(jié)拆解裝完雙系統(tǒng)重啟屏幕一閃直接進了Ubuntu連個引導菜單的影子都沒見著——這個場景我遇到過不下十次身邊朋友裝機翻車后第一個找我的問題也基本是這個。表面上看是引導菜單沒出來但背后的原因其實分好幾種有的五分鐘能搞定有的則需要重新規(guī)劃整個引導鏈。這篇文章就把我這些年踩過的坑、驗證過的方案從頭到尾捋一遍讓你不管遇到哪種情況都能對號入座。先明確一下這個問題的典型表現(xiàn)機器里明明裝了Windows和Ubuntu兩個系統(tǒng)BIOS里也能看到兩塊硬盤或者兩個啟動項但開機后不彈GRUB菜單直接進了Ubuntu桌面。這時候你去文件管理器里看Windows所在的分區(qū)還在數(shù)據(jù)也沒丟就是進不去。很多人第一反應是Windows被覆蓋了其實絕大多數(shù)情況下Windows完好無損只是引導程序沒把它列出來或者引導程序壓根沒被正確加載。這個問題的核心關鍵詞是GRUB引導菜單、雙系統(tǒng)啟動項、EFI引導分區(qū)、os-prober檢測、GRUB_TIMEOUT配置。搞懂這幾個概念之間的關系問題就解決了一大半。GRUB是Linux世界最常用的引導加載程序它負責在開機時列出所有可啟動的操作系統(tǒng)讓你選擇進哪個。如果它沒顯示W(wǎng)indows要么是它沒檢測到Windows要么是它根本沒機會顯示——比如超時時間設成了0或者引導順序里Ubuntu排在了前面且沒給菜單留時間。適合閱讀這篇文章的人包括剛裝完雙系統(tǒng)的Linux新手、被引導問題折騰過的運維人員、以及想搞清楚UEFI引導邏輯的硬件愛好者。不管你用的是哪種Linux發(fā)行版只要底層是GRUB思路都是通用的。下面我會從原理講到實操每一步都給出具體的命令和判斷依據(jù)確保你看完就能動手解決。2. 引導流程的底層邏輯與常見誤區(qū)2.1 從按下電源鍵到進入系統(tǒng)中間發(fā)生了什么要解決問題先得知道正常流程長什么樣。按下電源鍵后主板固件現(xiàn)在基本都是UEFI會讀取NVRAM里存儲的啟動項列表這個列表里每一項指向一個EFI應用程序通常位于EFI系統(tǒng)分區(qū)ESP里。對于Ubuntu來說這個應用程序就是\EFI\ubuntu\grubx64.efi。固件加載它之后GRUB開始工作讀取/boot/grub/grub.cfg這個配置文件根據(jù)里面的內(nèi)容生成菜單。菜單里每一項對應一個操作系統(tǒng)或內(nèi)核你選中哪個就加載哪個。關鍵點在于GRUB菜單是否顯示取決于grub.cfg里的配置。如果GRUB_TIMEOUT被設成了0菜單會一閃而過直接啟動默認項。如果GRUB_TIMEOUT_STYLE設成了hidden菜單干脆不顯示。這兩個參數(shù)是導致直接進Ubuntu最常見的原因沒有之一。很多發(fā)行版在檢測到系統(tǒng)里只有Linux時會默認把超時設為0但裝雙系統(tǒng)后這個設置不會自動改回來。另一個關鍵點是os-prober。GRUB靠這個工具去掃描其他硬盤分區(qū)尋找Windows的引導文件通常是bootmgr.efi或bootmgr。如果os-prober沒運行或者運行了但沒找到Windowsgrub.cfg里就不會有Windows的菜單項。Ubuntu從某個版本開始默認禁用了os-prober理由是安全考慮。這就導致即使Windows就在那里GRUB也視而不見。2.2 為什么BIOS和UEFI的解決思路完全不同這里必須區(qū)分兩種引導模式。老機器用的是Legacy BIOS MBR分區(qū)表引導程序?qū)懺诖疟P的第一個扇區(qū)。這種情況下GRUB會覆蓋Windows的引導代碼但通常GRUB能自動檢測到Windows并添加菜單項。新機器用的是UEFI GPT分區(qū)表每個系統(tǒng)的引導程序獨立存放在ESP分區(qū)里互不覆蓋。UEFI模式下主板固件維護一個啟動項列表你可以通過efibootmgr命令查看和調(diào)整順序。很多人搞混的地方在于UEFI模式下即使GRUB配置完全正確如果主板固件的啟動順序里Windows Boot Manager排在Ubuntu前面你開機也會直接進Windows根本輪不到GRUB出場。反過來如果Ubuntu排在前面但GRUB沒配置好就會直接進Ubuntu。所以排查問題時第一步永遠是確認當前引導模式用[ -d /sys/firmware/efi ] echo UEFI || echo Legacy這條命令就能判斷。注意在UEFI模式下不要用Legacy模式下的那套修復方法去操作比如fdisk /mbr之類的命令搞不好會把分區(qū)表弄壞。先確認模式再選方案。2.3 那些年我踩過的認知誤區(qū)第一個誤區(qū)是Windows被刪了。實際上雙系統(tǒng)安裝時Ubuntu的安裝程序只會動你指定的分區(qū)不會主動刪除Windows分區(qū)。除非你在分區(qū)那一步手滑選了清除整個磁盤否則Windows的數(shù)據(jù)一定還在。判斷方法很簡單用Ubuntu的磁盤工具或者lsblk命令看看NTFS分區(qū)還在不在。第二個誤區(qū)是必須重裝系統(tǒng)。我見過太多人一遇到引導問題就重裝其實90%的情況只需要改一個配置文件或者跑一條命令。重裝不僅浪費時間還可能把數(shù)據(jù)搞丟。正確的做法是先診斷再動手。第三個誤區(qū)是GRUB越新越好。有些教程會讓你升級GRUB到最新版但引導程序和內(nèi)核的兼容性很微妙盲目升級可能引入新問題。我的建議是能用系統(tǒng)自帶的版本解決問題就不要折騰版本。3. 手把手排查與修復實操3.1 第一步確認Windows分區(qū)是否健在打開終端運行sudo lsblk -f你會看到所有磁盤和分區(qū)的列表。重點找文件系統(tǒng)類型為ntfs或vfat且掛載點為空的分區(qū)這些很可能就是Windows的系統(tǒng)盤和引導分區(qū)。如果能看到NTFS分區(qū)說明Windows的數(shù)據(jù)還在問題純粹出在引導配置上。另一種方法是sudo os-prober這個命令會主動掃描所有分區(qū)尋找可引導的系統(tǒng)。如果它輸出了類似/dev/sda1:Windows Boot Manager:Windows:efi的內(nèi)容說明Windows的引導文件完好只是GRUB沒把它寫進菜單。如果os-prober什么都沒輸出那可能是Windows的EFI引導文件丟了需要用Windows安裝盤修復。我個人的習慣是先用lsblk確認分區(qū)結(jié)構再用os-prober確認引導文件兩步下來基本就能定位問題范圍。這兩個命令都不需要安裝額外軟件Ubuntu自帶。3.2 第二步檢查GRUB配置文件的關鍵參數(shù)打開/etc/default/grub這個文件用sudo nano /etc/default/grub或者你習慣的編輯器。重點看三個參數(shù)GRUB_TIMEOUT這個值如果是0菜單不會停留。改成10或者你想要的秒數(shù)。GRUB_TIMEOUT_STYLE如果是hidden改成menu。有些系統(tǒng)里這個參數(shù)可能不存在手動加一行就行。GRUB_DISABLE_OS_PROBER如果是true改成false。如果這行被注釋掉了取消注釋并設為false。改完之后保存運行sudo update-grub。這個命令會重新生成/boot/grub/grub.cfg過程中會調(diào)用os-prober掃描其他系統(tǒng)。如果一切正常你會在輸出里看到Found Windows Boot Manager on /dev/sda1之類的提示。看到這行字基本就穩(wěn)了。提示有些發(fā)行版比如Fedora的配置文件路徑和參數(shù)名略有不同但邏輯是一樣的。核心就是讓GRUB顯示菜單、讓os-prober運行、讓超時時間足夠你選擇。3.3 第三步調(diào)整UEFI啟動順序如果改完GRUB配置重啟后還是直接進Ubuntu那問題可能出在UEFI啟動順序上。運行sudo efibootmgr你會看到類似這樣的輸出BootCurrent: 0001 Timeout: 0 seconds BootOrder: 0001,0000,0002 Boot0000* Windows Boot Manager Boot0001* ubuntu Boot0002* UEFI: Built-in EFI ShellBootOrder決定了固件嘗試啟動的順序。如果ubuntu排在Windows Boot Manager前面固件會先加載GRUB。這本身沒問題因為GRUB應該顯示菜單讓你選。但如果GRUB配置有問題就會直接進Ubuntu。你可以用sudo efibootmgr -o 0000,0001把Windows調(diào)到前面這樣開機會先加載Windows Boot Manager。不過這不是根本解決辦法因為Windows Boot Manager默認也不會顯示Ubuntu選項。更好的做法還是修好GRUB。如果efibootmgr的輸出里根本沒有Windows Boot Manager這一項說明Windows的EFI引導記錄丟了。這種情況需要用Windows安裝U盤啟動進入修復模式運行bootrec /rebuildbcd來重建。這一步稍微復雜一些后面會詳細說。3.4 第四步手動添加Windows引導項有時候os-prober能檢測到Windows但生成的菜單項有問題選中后報錯。這種情況下可以手動在/etc/grub.d/40_custom文件里添加一個引導項。這個文件是GRUB的自定義菜單模板內(nèi)容會被追加到最終的grub.cfg里。一個典型的Windows引導項長這樣menuentry Windows 10 { insmod part_gpt insmod fat insmod chain search --no-floppy --fs-uuid --setroot XXXX-XXXX chainloader /EFI/Microsoft/Boot/bootmgfw.efi }其中XXXX-XXXX是ESP分區(qū)的UUID用sudo blkid可以查到。chainloader這行告訴GRUB把控制權交給Windows的引導程序。這種方法的優(yōu)點是精準可控缺點是每次Windows大版本更新后可能需要調(diào)整路徑。我一般建議先用os-prober自動檢測檢測不到再手動加。手動加的時候一定要確認ESP分區(qū)的UUID和文件路徑正確否則菜單項會報錯。3.5 第五步重建GRUB引導記錄如果以上方法都不奏效可能是GRUB本身沒正確安裝到ESP分區(qū)。這種情況常見于安裝時選錯了引導設備或者ESP分區(qū)被格式化過。修復方法是掛載ESP分區(qū)然后重新安裝GRUB。先找到ESP分區(qū)通常是/dev/sda1或/dev/nvme0n1p1用lsblk確認。然后sudo mount /dev/sda1 /mnt sudo grub-install --targetx86_64-efi --efi-directory/mnt --bootloader-idubuntu sudo update-grub如果提示grub-install: error: cannot find EFI directory說明掛載點不對檢查一下ESP分區(qū)是否真的掛載到了/mnt。有些系統(tǒng)里ESP分區(qū)默認掛載在/boot/efi那就直接用那個路徑不需要重新掛載。這一步做完后efibootmgr里應該能看到ubuntu的啟動項。如果還是沒有可能需要手動添加sudo efibootmgr -c -d /dev/sda -p 1 -L ubuntu -l \\EFI\\ubuntu\\grubx64.efi。這條命令的參數(shù)含義是創(chuàng)建啟動項磁盤為/dev/sda分區(qū)為1標簽為ubuntu引導文件路徑為\EFI\ubuntu\grubx64.efi。4. 高頻問題速查與避坑指南4.1 常見問題對照表現(xiàn)象可能原因排查命令解決方案開機直接進Ubuntu無菜單GRUB_TIMEOUT0grep TIMEOUT /etc/default/grub改為10并update-grub有菜單但無Windows項os-prober被禁用grep PROBER /etc/default/grub設為false并update-grub有Windows項但選中報錯引導文件路徑錯誤ls /boot/efi/EFI/Microsoft/Boot/手動修正40_customefibootmgr無Windows項EFI引導記錄丟失sudo efibootmgr用Windows安裝盤重建改完配置重啟無效配置文件未生效cat /boot/grub/grub.cfg確認update-grub成功執(zhí)行菜單顯示但鍵盤無響應USB鍵盤在UEFI下未初始化換PS/2鍵盤測試BIOS里開啟USB Legacy支持這張表基本覆蓋了我遇到過的所有情況。實際排查時建議按順序來先看菜單有沒有顯示再看菜單里有沒有Windows最后看選中后能不能啟動。每一步都有對應的檢查點不要跳步。4.2 那些教程不會告訴你的細節(jié)第一個細節(jié)update-grub和grub-mkconfig -o /boot/grub/grub.cfg是等價的但有些發(fā)行版只有后者。如果你運行update-grub提示命令不存在就用后者。另外運行這兩個命令時一定要加sudo否則會提示權限不足。第二個細節(jié)os-prober在某些內(nèi)核版本下需要手動安裝。Ubuntu上運行sudo apt install os-proberFedora上運行sudo dnf install os-prober。裝完之后再運行sudo os-prober測試一下確認它能輸出Windows的路徑。第三個細節(jié)如果你用的是NVMe固態(tài)硬盤設備名可能是/dev/nvme0n1而不是/dev/sda。efibootmgr和grub-install里的磁盤參數(shù)要相應調(diào)整。我見過有人照著教程敲/dev/sda結(jié)果報錯折騰半天才發(fā)現(xiàn)自己的硬盤是NVMe。第四個細節(jié)Windows快速啟動功能會影響GRUB對NTFS分區(qū)的讀寫。如果os-prober檢測到了Windows但掛載NTFS分區(qū)時出錯去Windows的電源選項里關掉快速啟動。這個功能會讓Windows關機時不完全卸載文件系統(tǒng)導致Linux無法安全掛載。第五個細節(jié)雙硬盤雙系統(tǒng)的情況下兩塊硬盤各有各的ESP分區(qū)是很常見的。這時候GRUB可能只掃描了其中一塊硬盤的ESP。解決方法是在/etc/default/grub里加上GRUB_DISABLE_OS_PROBERfalse然后手動在40_custom里添加另一塊硬盤的Windows引導項。或者更簡單在BIOS里把兩塊硬盤的啟動順序調(diào)好用主板的啟動菜單通常是F12或F11臨時選擇啟動設備。4.3 修復Windows引導的備用方案如果Windows的EFI引導記錄徹底丟了GRUB再怎么配置也沒用因為根本沒有可引導的目標。這時候需要Windows安裝U盤。制作方法很簡單去微軟官網(wǎng)下載媒體創(chuàng)建工具準備一個8GB以上的U盤按提示操作即可。用U盤啟動后選擇修復計算機→疑難解答→命令提示符然后依次運行bootrec /fixmbr bootrec /fixboot bootrec /scanos bootrec /rebuildbcd/rebuildbcd會掃描所有磁盤尋找Windows安裝找到后會問你是否添加到啟動列表輸入Y確認。完成后重啟Windows應該能正常啟動了。然后再進Ubuntu運行sudo update-grub把Windows加到GRUB菜單里。注意bootrec /fixboot在某些UEFI系統(tǒng)上會提示拒絕訪問這是正?,F(xiàn)象可以跳過。關鍵是/rebuildbcd能成功執(zhí)行。這個方案我實際用過三次兩次成功一次因為硬盤分區(qū)表損壞而失敗。失敗那次最后是用分區(qū)工具重建了ESP分區(qū)才搞定。所以如果你的分區(qū)表本身有問題先修分區(qū)表再修引導。4.4 預防勝于治療裝雙系統(tǒng)前的準備與其事后折騰不如裝之前就做好準備。我的習慣是裝Ubuntu之前先在Windows里用磁盤管理工具壓縮出一個足夠大的未分配空間至少50GB。然后在BIOS里確認啟動模式是UEFI還是Legacy記下來。安裝Ubuntu時手動選擇其他選項把引導程序安裝到Windows所在的ESP分區(qū)通常是第一個FAT32分區(qū)而不是新建一個ESP分區(qū)。這樣兩個系統(tǒng)共用同一個ESPGRUB能自動檢測到Windows的概率大大增加。另外安裝前把Windows的快速啟動和休眠功能都關掉??焖賳釉诳刂泼姘宓碾娫催x項里休眠用powercfg /h off命令關閉。這兩個功能開著的時候Linux掛載NTFS分區(qū)可能會出問題os-prober也可能檢測不到Windows。最后裝完Ubuntu后第一時間運行sudo update-grub確認輸出里有Windows的條目。如果沒有當場解決不要等到重啟后才發(fā)現(xiàn)問題。當場解決的好處是你還在Ubuntu環(huán)境里各種工具都順手重啟后進不去Windows反而更麻煩。5. 不同發(fā)行版的差異化處理5.1 Ubuntu與Debian系的通用做法Ubuntu和Linux Mint、Pop!_OS這些基于Debian的發(fā)行版處理方式基本一致。核心就是/etc/default/grub加update-grub。區(qū)別在于os-prober的默認狀態(tài)Ubuntu 20.04之后默認禁用需要手動開啟Linux Mint則一直默認啟用。如果你用的是Mint裝完雙系統(tǒng)后GRUB菜單里通常直接就有Windows不需要額外配置。Debian本身對os-prober的態(tài)度更保守默認也是禁用的。開啟方法和Ubuntu一樣編輯/etc/default/grub確保GRUB_DISABLE_OS_PROBERfalse然后sudo update-grub。Debian的update-grub命令是grub-mkconfig的包裝腳本效果一樣。有一個小差異Ubuntu的grub-install默認使用--bootloader-idubuntu而Debian可能用debian。這會影響efibootmgr里顯示的標簽名但不影響功能。如果你在意啟動項的名字可以在grub-install時用--bootloader-id參數(shù)指定。5.2 Fedora與RHEL系的注意事項Fedora的GRUB配置文件和Ubuntu略有不同。/etc/default/grub里的參數(shù)名基本一致但update-grub命令不存在需要用sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg。注意輸出路徑是ESP分區(qū)里的grub.cfg而不是/boot/grub/grub.cfg。這是Fedora的一個特點它的GRUB配置文件直接放在ESP分區(qū)里。Fedora默認也是禁用os-prober的開啟方法是在/etc/default/grub里加GRUB_DISABLE_OS_PROBERfalse然后重新生成配置。Fedora的os-prober包名是os-prober用sudo dnf install os-prober安裝。另外Fedora使用Btrfs文件系統(tǒng)作為默認選項這會影響GRUB對分區(qū)的識別。如果你在Fedora上遇到GRUB找不到Windows的情況檢查一下/etc/default/grub里是否有GRUB_ENABLE_BLSCFGtrue這個參數(shù)會讓GRUB使用BLSBoot Loader Specification配置可能繞過os-prober。臨時關掉它試試。5.3 Arch與衍生版的靈活配置Arch Linux的GRUB配置完全靠手動沒有update-grub這種包裝命令。你需要運行sudo grub-mkconfig -o /boot/grub/grub.cfg。os-prober需要單獨安裝sudo pacman -S os-prober。然后在/etc/default/grub里確保GRUB_DISABLE_OS_PROBERfalse。Arch的滾動更新特性意味著GRUB版本可能比較新有時候新版本會改變默認行為。比如某個版本的GRUB默認不再自動添加Windows菜單項需要手動在40_custom里配置。我的建議是每次GRUB大版本更新后檢查一下grub.cfg里是否還有Windows條目沒有就手動補上。Arch的另一個特點是ESP分區(qū)通常掛載在/boot或/efi而不是/boot/efi。這會影響grub-install的參數(shù)。用findmnt /boot或findmnt /efi確認掛載點然后相應調(diào)整命令。5.4 雙硬盤雙系統(tǒng)的特殊處理兩塊硬盤各裝一個系統(tǒng)的情況越來越常見處理起來也稍微復雜一些。假設硬盤A裝了Windows硬盤B裝了Ubuntu。Ubuntu的GRUB默認只會掃描自己所在硬盤的ESP分區(qū)可能找不到硬盤A上的Windows。解決方法有兩種。第一種是在BIOS里把硬盤B設為第一啟動設備然后進Ubuntu運行sudo os-prober看它能不能檢測到硬盤A上的Windows。如果檢測不到手動在40_custom里添加menuentry Windows (on /dev/sda1) { insmod part_gpt insmod fat insmod chain search --no-floppy --fs-uuid --setroot XXXX-XXXX chainloader /EFI/Microsoft/Boot/bootmgfw.efi }其中UUID是硬盤A的ESP分區(qū)UUID。這樣即使os-prober不工作你也能手動引導。第二種方法是利用主板的啟動菜單。大多數(shù)主板在開機時按F12或F11會彈出啟動設備選擇菜單你可以臨時選擇從哪塊硬盤啟動。這種方法不需要配置GRUB但每次都要手動選適合不經(jīng)常切換系統(tǒng)的用戶。我個人的做法是兩塊硬盤都保留各自的ESP分區(qū)GRUB配置里手動添加另一塊硬盤的Windows引導項。這樣開機默認進GRUB菜單想進哪個系統(tǒng)選哪個不用改BIOS設置。6. 引導修復后的驗證與日常維護6.1 重啟前的最后檢查改完配置、運行完update-grub之后不要急著重啟。先做幾個檢查用grep -i windows /boot/grub/grub.cfg看看生成的配置文件里有沒有Windows相關條目。如果有說明GRUB已經(jīng)識別到了。再用sudo efibootmgr確認啟動項列表里有ubuntu和Windows Boot Manager。兩個都有基本就穩(wěn)了。還可以用sudo grub-script-check /boot/grub/grub.cfg檢查配置文件語法是否正確。這個命令會掃描配置文件報告語法錯誤。如果有錯誤GRUB啟動時可能會卡住或者報錯。提前發(fā)現(xiàn)比重啟后抓瞎好。如果一切正常重啟。重啟時盯著屏幕看GRUB菜單是否出現(xiàn)。如果出現(xiàn)了但很快跳過說明超時時間還是太短再調(diào)大一些。如果出現(xiàn)了但鍵盤不能選可能是USB鍵盤在UEFI環(huán)境下沒初始化去BIOS里找USB Legacy Support或USB Keyboard Support選項設為Enabled。6.2 內(nèi)核更新后的引導維護Ubuntu每次更新內(nèi)核都會自動運行update-grub正常情況下不需要手動干預。但如果你手動改過40_custom或者/etc/default/grub更新內(nèi)核后最好檢查一下grub.cfg是否還包含你的自定義條目。有時候更新會覆蓋配置文件導致自定義條目丟失。我的習慣是每次內(nèi)核更新后運行sudo update-grub然后grep -i windows /boot/grub/grub.cfg確認Windows條目還在。如果不在檢查/etc/default/grub里的GRUB_DISABLE_OS_PROBER是否被重置了。Ubuntu的某些更新會把這個參數(shù)改回默認值需要重新設為false。另外如果Windows進行了大版本更新比如從Windows 10升級到Windows 11它的EFI引導文件路徑可能會變。更新后如果GRUB菜單里的Windows項失效重新運行sudo update-grub通常能修復。如果不行檢查/boot/efi/EFI/Microsoft/Boot/目錄下的文件名確認bootmgfw.efi還在。6.3 備份引導配置的實用技巧引導配置不大但丟了很麻煩。我習慣把/etc/default/grub和/etc/grub.d/40_custom這兩個文件備份到U盤或者云盤。這樣即使系統(tǒng)重裝也能快速恢復配置。備份命令很簡單sudo cp /etc/default/grub ~/grub-backup-default sudo cp /etc/grub.d/40_custom ~/grub-backup-custom恢復的時候反過來復制回去然后sudo update-grub即可。另外efibootmgr的輸出也值得備份sudo efibootmgr ~/efibootmgr-backup.txt。這樣即使NVRAM被清空你也能知道原來的啟動項長什么樣方便重建。還有一個更徹底的備份方法用dd命令備份整個ESP分區(qū)。ESP分區(qū)通常只有幾百MB備份起來很快sudo dd if/dev/sda1 of~/esp-backup.img bs4M statusprogress恢復的時候用dd if~/esp-backup.img of/dev/sda1。這個方法適合在折騰引導之前做萬一搞砸了可以完整還原。不過要注意恢復ESP分區(qū)會覆蓋里面所有系統(tǒng)的引導文件包括Windows的。所以恢復后可能需要重新運行update-grub和Windows的引導修復。6.4 長期使用中的經(jīng)驗沉淀用了這么多年雙系統(tǒng)我最大的體會是引導問題宜早不宜遲。裝完系統(tǒng)第一次重啟前就把GRUB配置好比用了一段時間再修要簡單得多。因為剛裝完系統(tǒng)時環(huán)境干凈變量少排查起來容易。用久了之后內(nèi)核更新、驅(qū)動變化、分區(qū)調(diào)整都可能引入新問題排查難度成倍增加。另一個體會是不要迷信自動工具。有些圖形化的引導修復工具看起來很方便一鍵修復但背后的邏輯不透明出了問題更難排查。我寧愿手動敲幾條命令至少知道每一步在做什么。手動操作還有一個好處你能理解每一步的原理下次遇到類似問題就能舉一反三。最后保持耐心。引導問題有時候很邪門同樣的配置在這臺機器上能用換一臺就不行。這通常和主板固件的實現(xiàn)差異有關。遇到這種情況不要死磕一種方案換一種思路試試。比如os-prober不工作就手動加菜單項GRUB菜單不顯示就檢查UEFI啟動順序。多試幾種組合總能找到適合你機器的方案。我在實際使用中發(fā)現(xiàn)把GRUB_TIMEOUT設為10秒、GRUB_TIMEOUT_STYLE設為menu、GRUB_DISABLE_OS_PROBER設為false這三個設置組合起來能解決90%的直接進Ubuntu問題。剩下的10%里一半是UEFI啟動順序問題一半是Windows引導文件丟失。按這個優(yōu)先級排查效率最高。