首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装时读取的Windows OS文件序列

安装时读取的Windows OS文件序列
EN

Server Fault用户
提问于 2018-07-26 12:02:54
回答 2查看 1.5K关注 0票数 0

我正在通过基于Ubuntu的Clonezilla服务器在PXE UEFI模式下安装Windows 10操作系统。我需要为客户端部署使用grub.cfg将windows os添加到服务器中。我在tftpboot/nbi_image/win_files目录中添加了windows 10 iso解压缩目录。

我的tftp根目录是"/tftpboot/nbi_image“。

现在我需要编辑tftpboot/nbi_image/grub-efi.cfg/grub.cfg中的grub文件,这是我的条目:

代码语言:javascript
复制
menuentry "Windows 10 UEFI" {
     insmod part_msdos
     insmod chain
     chainloader /win_files/bootx64.efi
}

错误:无效的EFI文件路径。

The是来自clonezilla服务器设置的文件。如果需要其他文件,我应该从哪里得到?

因为每次都失败了。因此,我想了解这个引导序列是如何进行的?按照什么顺序,从其ISO中的windows安装文件读取哪些文件?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2018-10-03 09:02:31

我想出了解决办法:

代码语言:javascript
复制
sudo vim /etc/tftp.remap

增加以下几行:

代码语言:javascript
复制
# 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文件:

代码语言:javascript
复制
sudo vim /etc/default/tftpd-hpa

相应修改:

代码语言:javascript
复制
TFTP_OPTIONS="-vvv --secure --ipv4 --map-file /etc/tftpd.remap"

运行:

代码语言:javascript
复制
sudo service tftpd-hpa restart

dhcp配置:

代码语言:javascript
复制
 sudo vim /etc/dhcpd.conf

相应修改:

代码语言:javascript
复制
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档案馆

代码语言:javascript
复制
sudo mkdir grub
cd grub/
sudo vim grub.cfg

增加以下一行:

代码语言:javascript
复制
configfile grub-efi.cfg/grub.cfg

编辑文件:

代码语言:javascript
复制
sudo vim grub-efi.cfg/grub.cfg

添加:

代码语言:javascript
复制
menuentry "Windows 10 RS4" --id win10rs4 {
  echo "Entering windows installation environment..."
  insmod chain
  insmod fat
  insmod part_gpt
  chainloader /EFI/Boot/bootx64.efi
}

要执行的文件序列(包括PXE菜单选择)是:

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

票数 1
EN

Server Fault用户

发布于 2018-08-03 15:16:16

我完全不相信默认的windows EFI引导程序能够从PXE/tftp系统启动,但是有几件事情需要首先验证:

  • 模块msdos_part应该读取本地驱动器msdos类型的分区(而不是gpt类型的分区),因为您正在进行网络引导,这在这里没有意义。
  • Unix区分大小写,win_files和Win_files不是同一个文件夹
  • 在windows 10的根目录上没有启动x64.efi,但是这里有一个bootmgr.efi,在efi/boot/中有一个bootx64.efi。
  • 你的TFTP根是什么?如果是'/tftboot‘,那么您的链加载程序可能更像
    • 链接加载器nbi_image/win_files/bootmgr.efi或
    • Hain加载器nbi_image/win_files/efi/boot/bootmgr.efi
票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/923637

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档