Windows-10

安裝時讀取的 Windows 作業系統文件順序

  • September 16, 2021

我正在通過基於 Ubuntu 的 Clonezilla 伺服器以 PXE UEFI 模式安裝 Windows 10 作業系統。我需要使用 grub.cfg 將 Windows 作業系統配置添加到伺服器中以進行客戶端部署。我在目錄中添加了 windows 10 iso 提取tftpboot/nbi_image/win_files目錄。

我的 tftp 根目錄是“/tftpboot/nbi_image”。

現在我需要在 中編輯 grub 文件tftpboot/nbi_image/grub-efi.cfg/grub.cfg,這是我的條目:

menuentry "Windows 10 UEFI" {
    insmod part_msdos
    insmod chain
    chainloader /win_files/bootx64.efi
}

錯誤:無效的 EFI 文件路徑。

bootx64.efi 是來自 clonezilla 伺服器設置的文件。如果需要任何其他文件,我應該從哪裡得到它?

因為每次都失敗了。所以,為此我想了解這個引導順序是如何進行的?以什麼順序,從其 ISO 中存在的 Windows 安裝文件中讀取哪些文件?

我想出了解決方案:

sudo vim /etc/tftp.remap

添加以下行:

# Map the paths
r ^\\boot\\ EFI/winpe/Boot/
r ^\\Boot\\ EFI/winpe/Boot/
r ^\\sources\\ EFI/winpe/sources/
# Convert backslashes to slashes
rg \\ /

打開 tftp-hpa 文件:

sudo vim /etc/default/tftpd-hpa

相應修改:

TFTP_OPTIONS="-vvv --secure --ipv4 --map-file /etc/tftpd.remap"

跑:

sudo service tftpd-hpa restart

dhcp配置:

sudo vim /etc/dhcpd.conf

相應修改:

if option arch = 00:06 {
   filename "bootia32.efi";
} else if option arch = 00:07 {
   filename "EFI/grub2/grubnetx64.efi";
   #filename "bootx64.efi";

grubnetx64.efi 來自存檔連結:Ubuntu Archive

sudo mkdir grub
cd grub/
sudo vim grub.cfg

添加以下行:

configfile grub-efi.cfg/grub.cfg

編輯文件:

sudo vim grub-efi.cfg/grub.cfg

添加:

menuentry "Windows 10 RS4" --id win10rs4 {
 echo "Entering windows installation environment..."
 insmod chain
 insmod fat
 insmod part_gpt
 chainloader /EFI/Boot/bootx64.efi
}

要執行的文件順序(包括 PXE 菜單選擇)是:

grubnetx64.efi -> bootx64.efi -> BCD -> boot.sdi -> winpe.wim

我絕對不相信預設的 Windows EFI 引導載入程序能夠從 PXE/tftp 系統引導,但有一些事情需要首先驗證:

  • 模組 msdos_part 應該讀取本地驅動器 msdos 類型的分區(與 gpt 類型的分區相對),因為您正在網路引導,這與這裡無關

  • Unix 區分大小寫,win_files 和 Win_files 不是同一個文件夾

  • 我擁有的 Windows 10 iso 的根目錄上沒有 bootx64.efi,但是那裡有一個 bootmgr.efi,而 efi/boot/ 中有一個 bootx64.efi

  • 你的 TFTP 根是什麼?如果是 ‘/tftboot’ 那麼你的 chainloader 應該更像

    • 鏈載入器 nbi_image/win_files/bootmgr.efi
    • hainloader nbi_image/win_files/efi/boot/bootmgr.efi

引用自:https://serverfault.com/questions/923637