恢復 Windows 10 EFI 檔案而不弄亂現有分割區

恢復 Windows 10 EFI 檔案而不弄亂現有分割區

tl;dr:GPT、EFI、雙啟動 Antergos-Windows 10、Windows 的 EFI 分割區被刪除,因此我只能啟動到 Antergos 並想要修復它。

我有一個 Debian-Windows-10 雙重開機設置,使用 MBR 來啟動 grub2。最近,我將 Debian 切換到 Antergos,並利用這個機會透過 EFI 引導載入遷移到 GPT 分割區格式。

我有一個這樣的分區列表:

  1. Windows系統保留
  2. Windows 10
  3. 德班
  4. 交換

重新安裝後變成:

  1. Windows系統保留
  2. Windows 10
  3. 安泰戈斯
  4. 交換
  5. EFI分割區

之後os-probe沒有找到 Windows,所以我嘗試將其手動添加到 grub,但顯然該設定是用於 MBR 安裝的。然後我嘗試使用 UEFI 設定重新安裝 Windows。我最終得到了這樣的配置:

  1. Windows系統復原
  2. Windows EFI 分割區
  3. Windows系統保留
  4. Windows 10
  5. Windows系統保留
  6. 安泰戈斯
  7. 交換
  8. 安格戈斯電噴

(我不知道為什麼,當給定大塊空白空間時,安裝的 Windows 決定創建 5 個單獨的分割區...)

顯然,Antergos 停止啟動,因為我有 2 個 EFI 分割區。我認為只需要 1 個分割區,並且 Windows EFI 只包含可以用 grub 替換的引導程序,所以我刪除了第 2 個分割區。

只有在那之後我才能真正恢復 grub 的工作。顯然,運行 Windows 需要該分割區中的一些檔案。因此,我嘗試使用 Windows 安裝磁碟恢復該分割區,並自動修復和建立 EFI 分割區並使用bcdboot.但是我只收到錯誤failure when attempting to copy boot files

目前 - 根據我嘗試的選項,我看到以下錯誤:

  • ntldr 遺失
  • EFI 缺少一些配置

我目前不確定我應該嘗試什麼,因為應用網路上的隨機解決方案已經花了我整個週末,而且這並不是弄清楚該怎麼做的非常有效的方法。所以我的問題是:如何在不從頭開始重新安裝所有內容的情況下恢復 Windows 10?

我可以存取 Windows 分割區、Windows 安裝磁碟、Antergos Live CD 進行 chroot。我可以提供可能有幫助的所有日誌和清單。

答案1

我成功建立了 Windows EFI 的副本。

首先,我使用以下命令安裝了 EFI 分割區diskpart

> diskpart      # start diskpart tool
list volumes    # prints all disks I have: C:, D:, etc
sel vol 8       # on my list EFI partition was unmounted and next to a number 8
assign letter=Z # since I marked EFI partition as selected I can now assign it a letter so that I could use it later on
exit            # I am leaving the tool

早些時候它失敗了 - 當我嘗試使用時,assign mount=z我看到了類似“無法安裝系統 EFI 分區”的錯誤,即使help命令建議這樣做。

安裝 EFI 後我可以

bcdboot C:\Windows /s Z:

它將 Windows EFI 檔案放入 EFI 分割區不影響現有的 grub 文件。結果,grub 沒有損壞,但我現在有了在 UEFI 設定中啟動 Windows 所需的檔案。

之後os-probe能夠找到 Windows,因此update-grub將缺少的條目新增到清單中。


我想如果有人發現自己處於與我相同的情況,他們必須做好準備:

  • windows 會建立幾個新分割區,EFI 將會是其中之一
  • 因為該分區大約有 100 MB,我認為建議它應該更大,我們可以用我們提供的分區替換它(Arch wiki 和 Microsoft 文件上有大量關於如何做到這一點的好資源,具體取決於哪個分區)我們將使用的工具)
  • 在此之前,我們可以使用 Windows EFI 分割區製作檔案的副本 - 如果您看不到它們,它們將被隱藏 - 或像我一樣將其刪除,然後執行上述所有過程。為此,您需要 Windows 安裝 CD。

答案2

我很難為電腦的當前狀態創建一個良好的心理模型,因為您已經進行瞭如此多的更改,並且並不總是清楚您所採取的任何給定步驟的結果可能是什麼。 (這並不是對您的問題的真正批評;只是很難理解電腦本身在進行其中一些更改時會做什麼。)因此,我建議您備份重要的用戶文件,刪除全部磁碟上的分割區,然後重新開始。首先安裝 Windows,然後在其上安裝 Linux。然後您可以恢復您的用戶檔案。

如果無法從頭開始,請運行啟動修復實用程式並選擇「建立 BootInfo 摘要」選項。 (不要點擊“建議修復”,至少現在還沒有! )當詢問是否上傳報告時,點擊“是”,然後發布此處提供的 URL。這將提供診斷問題所需的有關電腦當前狀態的詳細資訊。

為了幫助您了解 EFI 啟動過程並進行雙重啟動配置,我強烈建議您至少閱讀以下一些頁面:

如果您只閱讀其中一篇,請將其作為我在 EFI 系統上安裝 Linux 的頁面;這是這四頁中最實用的指南。 Adam Williamson 的部落格文章是第二優先級,如果您趕時間的話,也可以是超級用戶貼文;這些頁面將提供必要的背景資訊。如果您不想使用您的發行版預設使用的任何引導程式或引導管理器,我的 EFI 引導程式頁面可能會有所幫助。

相關內容