
使用 Linux 作業系統雙重開機 Windows 的方法之一是將 grub 開機載入程式安裝到 Linux 分割區上,這樣您就可以保留 Windows 開機載入程式並讓 Windows 處理雙重開機程序。
grub 引導程式可能會部分覆蓋 Linux 分割區開頭的資料並損壞文件,這有什麼奇怪的? grub 是否實際上檢查分區開頭是否有數據,並將其移動到分區上的其他位置,然後再寫入其引導程式?
答案1
根據您使用 ext4 的輸入,grub 不應破壞您的檔案系統。 ext2 以引導磁區空間開頭:http://www.makelinux.net/books/ulk3/understandlk-CHP-18-SECT-2
答案2
GRUB 不會隨意將其檔案安裝在分割區中,它使用檔案系統驅動程序,因此永遠不會覆蓋現有檔案。然而,目前的 GRUB 文件不鼓勵安裝到 Linux 檔案系統,並認為這種方法「脆弱」。它是否比安裝到 MBR 和第一個分區開頭之間的無人區更脆弱還有待商榷。眾所周知,有多個程式會在該區域寫入數據,目前,每當發現新的此類程式時,GRUB 開發人員就被迫在 GRUB 程式碼中包含臨時解決方法。基本問題似乎是 ext* 檔案系統不為引導程式碼提供固定位置(檔案系統引導區塊除外,這是不夠的),因此 GRUB 使用簡單的區塊列表,但無法確保這些區塊保持不變。這與 NTFS 檔案系統形成鮮明對比,NTFS 檔案系統的引導代碼是透過固定位置指標和檔案存取的。
答案3
Windows(Vista、7 和 8,無論如何)通常會嘗試建立一個單獨的分割區用於啟動。當它出現時,它對於文件管理器等普通 Windows 功能幾乎總是不可見的。
通常,此 Windows 啟動分割區為 100MEG,磁碟區名稱為“系統保留”,且沒有給出磁碟機號碼。當然,您仍然可以將Windows安裝到一個分割區而不走這條路,但是在安裝Windows時您必須不遺餘力地這樣做。
因此,使用 diskmgmt.msc(在 Windows 啟動或搜尋窗格中輸入該實用程式)再次查看您的磁碟機分割區,看看您是否沒有 100Meg 的「系統保留」分割區。這有點毫無意義,但我只是想表明您可能有 2 個 Windows 分割區 - 而不是一個。
不管怎樣,我們這裡真正討論的是啟動管理器。如果 Grub 確實犯了錯誤,那麼您可能無法啟動 Windows。但您的所有物品仍然應該是安全的 - 甚至可以訪問。它仍然可以修復,但顯然也有點像 PITA。 (我發現解決此類問題的唯一「簡單」方法是格式化啟動分割區或故意搞亂啟動標誌或類似的東西,然後讓 DVD 上的 Windows 系統恢復來修復它)。
因此,Grub 會涵蓋內容的簡短回答實際上是不可能的,甚至是一個問題。當然,如果您的硬碟發生故障,其中 SMART 標誌已被觸發,或者即使資料嚴重碎片化,那就是另一回事了。只是不要透過調整分割區或特別格式化它們來使情況變得更糟。
說到這裡...我希望你是自行對 Windows 分割區進行碎片整理前使用 GParted 等 Linux 工具。在縮小分區或以任何方式調整分區之前不進行碎片整理可能會引入一系列全新的問題。 (所以你不能說我沒有警告過你。)