使用 GRUB2 和 Clonezilla 設定 Windows 啟動管理器

使用 GRUB2 和 Clonezilla 設定 Windows 啟動管理器

我的工作任務之一是配置我們產品中附帶的具有 Windows 作業系統映像(嵌入式和 OEM)的電腦以及復原分割區。我一直使用 Clonezilla Live 和 GRUB2 來實現這個過程。這在 Windows XP/Embedded Standard 2009 上運作良好。我嘗試配置的當前系統映像如下:

/dev/sda1、ntfs、主、62.5 GiB、3.15 GiB、59.35 GiB、無標誌
/dev/sda2、ntfs、RESTORE、4.00 GiB、1.74 GiB、2.26 GiB、隱藏/dev/sda3、fat32、CLONE00
GiB、4. 、115.22 MiB、3.89 GiB、隱藏
/dev/sda4、ext4、BOOT、1.00 GiB、53.91 MiB、970.09 MiB、啟動

/dev/sda1 保存 Windows 7 OEM(密封),dev/sda2 保存基於 Clonezilla 的恢復映像(密封)

/dev/sda MBR 是 GRUB2 開機載入程序

我可以讓 GRUB2 正常載入並恢復 Windows 7 映像。但是,我無法啟動 Windows 7 並收到 0xc0000225 錯誤。更新:一旦我按照如下所述修改了引導磁區以使 sda1 起始部分與 MBR 一致,0xc0000225 就消失了,並且我開始收到 0xc000000e 錯誤,winload.exe 檔案就是它向使用者抱怨的錯誤。然而,據我透過其他實用程式所知,該文件存在且完好無損。

來自 Meierfrankenfeld 和 Hulselmans 的 bootinfoscript 的資訊顯示 sda1(引導磁區在磁區 411648 處顯示 sda1,而 fdisk 顯示 2048)和 sda3(引導磁區在磁區 0 處顯示 sda3,而 fdisk 顯示 1646280164)有問題。我不確定此時需要修改什麼或執行此操作的最佳工具。如果我能很好地描述 BCD 和 grub2 MBR 的佈局方式,我就可以使用十六進位編輯器。更新:我最終更新了引導扇區以與 sda1 的 fdisk 達成協議。

在密封機器並新增 /dev/sda3 和 /dev/sda4 之前,我將 Windows 7 啟動分割區合併到 /dev/sda1 上。它重新啟動並且工作正常。

我嘗試閱讀 Microsoft 提供的 BCD 資料,並確保 Windows Boot Manager 和 Loader 物件指向正確的分割區(它們一直使用一些 custom=xyz 語法,但該語法也不起作用)。

這種恢復在過去效果很好,因為我能夠完全自動化恢復過程,這對我們的最終用戶來說是一個關鍵需求。此處不提供恢復磁碟。

我已經確認bcd正在使用partition=C:來引用device/os device/bootmgr裝置。

因此,我已經能夠確認 MBR 完好無損,sda1 上的 VRB 完好無損,$MFT 和 $MFTMirr 檔案存在於 VBR 中指示的位置,由 sleuthkit 中的 istat(不是 lstat)工具確認。上述錯誤中引用的 winload 檔案存在於 fls sleuthkit 實用程式給我的位置,並且與其他安裝的檔案大小一致。

作為替代方案,如果您是 OEM 並且希望分享在消費者/嵌入式環境中運行良好的恢復過程,我也很樂意聽到該反饋。謝謝。

答案1

聽起來好像在中間添加這些分區時出現了問題。你用的什麼分割區編輯器?在 PartedMagic.com 的 LiveCD 和 Hiren 上找到的 testdisk 程式已經為我恢復了一些機器上的一些混亂的分區問題和雙重開機問題。我會仔細檢查“bcd 使用分區 = C:”的假設是否意味著您認為它的含義,因為它更多地取決於 GUID。

相關內容