Windows 將引導程式移至另一個磁碟機

Windows 將引導程式移至另一個磁碟機

我有雙啟動安裝。我首先將 Windows 7 安裝在自己的磁碟 (C:) 中,並中斷輔助磁碟機的連線。我這樣做是因為我知道 Windows 容易與其他磁碟機發生衝突。然後我連接了輔助磁碟機並建立了一個資料分割區(D:)並在第三個分割區中安裝了 Linux。

總結:

  • 磁碟 1:Windows 分割區(C:)
  • 磁碟 2:資料 (D:)、Linux(由於檔案系統,在 Windows 中不可見)、交換區。

當 Linux 自行安裝時,它也將 GRUB 安裝在第二個磁碟(BIOS,而不是 UEFI)。所以Windows引導程序,它安裝在 C:,沒有使用過。儘管如此,如果在緊急情況下我斷開了第二個磁碟的連接或它出現故障,Windows 7 引導程式仍然可以工作。

這多年來一直運作良好。

現在,作為本月 Windows 更新的一部分,我認為它與透過支援結束訊息和可能升級到 Windows 10 來提醒您的更新有關,Windows 7 已將自己的開機載入程式從 C: 移至輔助磁碟中的資料分割區 (D:)。現在D: 中有abootmgr.exe和aBoot資料夾,C: 沒有。

透過 GRUB 的雙重開機仍然運作正常,但我希望 Windows 自己的開機載入程式保留在它所屬的 C: 中。將 bootmngr.exe 和 Boot 資料夾複製回 C: 就足夠了,還是應該使用 Windows 安裝 DVD 來「修復」Windows 安裝?如果我單獨修復該磁碟,輔助磁碟中的 GRUB 是否仍可運作?

更新:(2019 年 12 月)它又發生了!我安裝了一個安全累積包,顯然 Windows 認為安裝它的 SSD 不好,並將其自身移動到另一個硬碟上。

答案1

更新 我斷開第二個磁碟的連接,重新啟動,Windows 啟動到修復模式而不是正常模式。我選擇了“啟動修復”,但沒有用。它說Windows無法自動修復。顯示的錯誤詳細資訊類似於“NoOsLoader”。我插入了原始 Windows 安裝 DVD 並重新啟動了電腦。 BIOS 中顯示“按任何鍵從 DVD 啟動”,所以我就這樣做並從 DVD 啟動。選擇時區和鍵盤,然後再次選擇“啟動修復”,它修復了丟失的引導程序,而無需執行完全重新安裝。現在Windows再次重新啟動,這次可以正常從C:啟動。在此期間,輔助 HDD 已斷開連接(電源線和數據線),以防萬一 Windows 修復實用程式決定弄亂該磁碟。確認修復成功後,我再次連接另一個硬碟並啟動進入linux。我檢查了D:分區,發現了一些以前不存在的、最近由windows創建的檔案:

/boot
bootmgr.exe

所以絕對是問題的原因。 Windows 已將自己的引導程式移至他選擇的分割區。

我刪除了這些文件,因為它們已經重新安裝到它們所屬的 C: 中。

現在為了防止這種情況再次發生,我有兩個選擇:

  1. 永遠不要再安裝“安全性”更新,因為它們顯然會擾亂引導程式。
  2. 在 Windows 中停用 D: 分割區。

答案2

這是我大約一年前遇到的問題,當時我試圖在第二個磁碟機上安裝 Windows,以便將資料從舊 HDD 遷移到新 SSD。在安裝過程中,無論是錯誤還是有意為之,Windows 都會偵測其他磁碟上的開機載入程式並將其本身安裝在那裡。無論如何,我都無法將引導程式放在正確的磁碟上,並且所有補救嘗試都遇到了藍屏或整潔的“未找到作業系統”訊息。

最好的方法是在斷開 Linux 磁碟連接的情況下嘗試使用安裝磁碟/USB 來修復 Windows。雖然可能可以移動文件,但我不建議這樣做,因為微軟喜歡創建關聯,這可能會讓你的生活變得痛苦。

答案3

這個問題很微妙,因為 Windows 7 啟動過程非常脆弱。

理論上,可以將包含 Boot 資料夾的系統保留分割區從 D 複製到 C,但存在一些問題:

  • Windows 7 分割區必須保留在其準確的磁區位址,否則啟動程序將無法進行。如果您為了釋放磁碟空間而移動它,它可能會變得無法啟動。

  • 將系統保留分割區從D複製到C後,設定BCD的指令是:

    bcdboot c:\windows /s c:
    

    而且它必須從 Windows 內部發出,因此必須從 grub 啟動,並且不清楚將更新哪個 BCD Store。如果它位於 D 上,那麼您可能需要從 USB 啟動 Windows 7 進入命令提示符,並使用正確的捲號並斷開 Linux 磁碟的連接來發出此命令。

在開始之前,我建議採取一些預防措施:

您也許可以繞過上述一些預防措施,但您需要有一些運氣。

相關內容