記一次Windows 系統更新導致雙系統無法啟動的修復過程

Vincentson發表於2024-12-01

記一次 Windows 系統更新導致雙系統引導錯誤,無法啟動的修復過程

背景

這臺電腦是其他辦公室淘汰下來,給到了我們辦公室 —— 這不是重點。給我們的時候,他們的描述是“配置實在是太低了,你們看看能不能用”。我們看了一下,AMD PRO A8870 R7,8G 記憶體,256G SSD,加裝了 1T HDD,用 CPU-Z 跑了個分,效能堪比 i7-2700K。

這個配置的機型,居然他們還安裝了 Adobe CC 2020 的幾乎全部元件——甚至包括了這麼吃配置的 After Effects;開啟看了一眼,他們上次還處理著一個十幾個圖層的影片。高呼一聲 AMD YES!

由於配置還是有點低了,我們最後決定安裝 Kali Purple 作為主要作業系統,Windows 10 作為備用系統。本來沒什麼問題,但是辦公室的有線網炸了一段時間,老闆捐的無線網路卡驅動只能安裝在 Windows 上。考慮到這個電腦平時也沒什麼用,就把網路卡插上去,連線無線網,再同時接入有線網——做閘道器用,讓辦公室其他電腦能聯網。(參考:記辦公室網從完全炸掉到勉強能用的修復過程

本來這還沒什麼問題的,但是我們當時忘記關閉 Windows 的自動更新了,夜裡面下載了更新包,然後自動重啟了。結果就是,第二天早上一到辦公室,我發現這臺電腦卡在了 GRUB rescue 裡面……

問題詳細描述

首先我不知道發生什麼了,戰戰兢兢,直接反手一個強制關機,再啟動還是卡在了 GRUB rescue 裡面。

(想象一下那會我迷惑而驚訝的表情)

再強制重啟,狂按 F12 ,選中了 Windows Boot Manager 按 Enter ,然後就進入了 Windows 10 的更新頁面。

我一下子明白了發生了啥,等唄。

更新沒完,大概是到了 90% 多的時候重啟了,我也沒管,聽見了特別響的風扇聲音——開機自檢,過去狂按 F12 ,再進入 Windows Boot Manager,然後就,繼續更新。

接下來進入了 Windows 10 22H2 的歡迎頁面。哦,大版本更新是吧。看了一眼,固定在工作列上面的 Edge Legacy 沒了。

本來應該沒什麼問題的對吧,但是我想著現在的情況是,GRUB 炸了,是不是應該修一下……

修理 GRUB

重啟,預設引導是 Kali 但是無法正常讀取引導區,然後就卡在了 GRUB rescue 裡面。

ls

一看我嘞個去一大堆盤。我哪記得哪個分割槽哪個盤對應哪個盤啊。還好,我們能用ls看盤的資訊。

ls (hd2,gpt1)
ls (hd2,gpt2)
ls (hd2,gpt3)

就像這種樣子,每個分割槽都試一下,最後只有一個分割槽是ext2而能被認識,別的都打不開。

ls (hd2,gpt6)/
ls (hd2,gpt6)/boot

那就沒問題了。再看一眼set,發現rootprefix的分割槽都不是這個分割槽。難怪不認識檔案系統,當然就打不開了嘛。

那就改唄:

set root=(hd2,gpt6)
set prefix=(hd2,gpt6)/boot/grub
insmod normal
normal

進入了熟悉的 GRUB 選擇介面,選了 Kali,進入了 Kali。

正常啟動了。

完結撒花~

正要慶祝修理完工……

然後我重啟了電腦,還是回到了 GRUB rescue 裡面。

我又重複了一遍上面的操作,進入了 GRUB 選擇介面。我那會還沒想著怎麼處理預設的set,就準備選 Windows Boot Manager,結果發現,卡啟動轉圈頁面了!

修理 Windows Boot Manager

感覺到接下來會發生不得了的事情了,強制重啟,狂按 F12 ,選中了 Windows Boot Manager 按 Enter ……進入了 Windows 10 的恢復介面。

既然之前 Windows 10 能正常啟動,我就沒管直接退出,試圖正常啟動,然後,卡在了啟動轉圈頁面,過了一會一個藍色畫面 DPC_WATCHDOG_VIOLATION。接著重啟進入了 Windows 10 恢復介面。

大事不妙,我想著是不是 Windows 10 的引導區壞了。但是我既沒有 PE 也沒有安裝盤!硬著頭皮用恢復介面裡面的修復引導工具,果然還是沒用。

先進 Kali,看了一眼硬碟檔案還在,引導區/boot/efi/Microsoft/Boot也還在,什麼都還在。

鬆了一口氣,問題應該不大~

重啟,進入 Windows 10 恢復介面,然後進入了命令提示符。

bootrec /fixmbr
bootrec /fixboot
bootrec /rebuildbcd

然後,重啟,還是進入了 Windows 10 恢復介面——沒修好。再進入了命令提示符。

cd /d C:
dir

發現這邊根本就沒有Windows資料夾!仔細一想,這不是那個 HDD 裡面的內容嘛?系統我記得是裝在 SSD 裡面的啊!

cd /d D:
dir

這下對了。原來是因為這次更新導致分割槽表給改了,找不到分割槽了,導致不論是 GRUB 還是 Windows Boot Manager 都無法正常啟動。

bcdboot D:\Windows /l zh-cn

重啟,無法啟動。安全模式,啟動成功。

當我看到熟悉的 Windows 10 桌面的時候,我感覺我已經快要成功了。

再重啟,普通模式,啟動失敗,卡在了啟動轉圈頁面。

啥情況?我又進入了安全模式,看了一眼C:\Windows,為什麼這個時候 SSD 又變成 C 盤了吶?再一看,沒有 D 盤了,HDD 是 E 盤。

bcdboot C:\Windows /l zh-cn

重啟。

Windows 10 正常啟動成功。

過兩天修一下 GRUB 吧,理論上就所有問題都解決了~不過現在情況是,一方面辦公室的有線網還沒修好,另一方面我也怕再修一下又出問題了,所以就先這樣湊合著用吧。

總結

更新大版本之前務必記得備份引導,並準備好 PE 或者安裝盤。在更新之前,最好先將引導區備份到其他地方,然後再更新。在安裝雙系統之前,更改分割槽表的時候不要把不認識的分割槽給直接刪了,不然可能新生成備份分割槽而不是使用之前預留的分割槽,導致引導區找不到分割槽而無法啟動。

相關文章