首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将UEFI iPXE引导到debian中会导致grub

将UEFI iPXE引导到debian中会导致grub
EN

Server Fault用户
提问于 2016-09-22 16:22:56
回答 1查看 3.3K关注 0票数 3

对于一些背景,我是一个系统管理员学生,试图扩大我的网络知识,因为这不是我的最强点。

目前,我正在试验PXE。几天前,我设置了几台ESXi虚拟机,一台是DHCP和TFTP服务器,另两台是BIOS和UEFI客户端。我设法通过PXE在BIOS和UEFI机器上引导debian。

我听说了iPXE及其带来的可能性(例如在HTTP上引导、iSCSI、.)决定试一试。目前,我仍在尝试引导本地debian netboot安装程序,我想在确定安装是否正确之后,可以测试远程文件。

在这一点上,这就是我的DHCP内容(减去任何不感兴趣的内容):

代码语言:javascript
复制
option arch code 93 = unsigned integer 16;
class "pxe-clients" {
    match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
    option tftp-server-name "192.168.0.5";
    next-server 192.168.0.5;
    if option arch = 00:00 {
        if exists user-class and option user-class = "iPXE" {
            filename = "pxelinux.0";
        } else {
            filename = "undionly.kpxe";
        }
    } elsif option arch = 00:02 or option arch = 00:06 or option arch = 00:07 or option arch = 00:08 or option arch = 00:09 {
        if exists user-class and option user-class = "iPXE" {
            filename = "bootnetx64.efi";
        } else {
            filename = "ipxe.efi";
        }
    } else {
        filename = "UNKNOWN_VCI";
    }
}

192.168.0.5是DHCP/TFTP服务器的局域网IP。

至于我的TFTP服务器的根目录:

代码语言:javascript
复制
root@vmpxe:/srv/tftp# ls -l
total 968
lrwxrwxrwx 1 root root   37 Sep 22 14:01 bootnetx64.efi -> debian-installer/amd64/bootnetx64.efi
drwxrwxr-x 3 root root 4.0K Sep 22 00:21 debian-installer
-rw-r--r-- 1 root root 896K Sep 22 16:00 ipxe.efi
lrwxrwxrwx 1 root root   47 Sep 22 00:21 ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
lrwxrwxrwx 1 root root   33 Sep 22 00:21 pxelinux.0 -> debian-installer/amd64/pxelinux.0
lrwxrwxrwx 1 root root   35 Sep 22 00:21 pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
-rw-r--r-- 1 root root  64K Sep 22 16:00 undionly.kpxe
-rw-rw-r-- 1 root root   64 Sep 22 00:21 version.info

同样,我坚持这样一个事实:在iPXE之前,在这两种架构上一切都很好。我所做的唯一改变就是从iPXE的网站下载undionly.kpxeipxe.efi文件,并编辑DHCP,将文件名设置包装在if exists user-class and option user-class = "iPXE" {...} else {...}条件中。

现在,BIOS机器可以使用PXE -> iPXE -> Debian的netboot安装程序。一切都很好。

但是,UEFI机器执行PXE -> iPXE -> grub shell。

我试图转储进程,但是没有产生任何结果:所有的流量看起来都是正常的和预期的。这与我在iPXE之前的经历并没有太大的不同。

知道这里会发生什么吗?

编辑:进一步的tcpdump测试表明,如果没有iPXE,我的EFI机器就会为引导加载程序发送RRQ数据包,以及引导加载程序本身引用的一堆其他文件。但是,对于iPXE,只有引导加载器我只看到引导加载器。

因此,我想正确的问题是:如果iPXE不检索标准PXE正确下载的所有文件,那么它会发生什么?

EN

回答 1

Server Fault用户

回答已采纳

发布于 2016-09-23 10:06:10

与你的问题无关,但是

用于引导EFI64

} elsif option arch = 00:02 or option arch = 00:06 or option arch = 00:07 or option arch = 00:08 or option arch = 00:09 {

应改为

} elsif option arch = 00:07 or option arch = 00:09 {

对于您的问题,如果您启动bootnetx64.efi,这就是您得到的;一个Grub屏幕。

见此处:http://lists.ipxe.org/pipermail/ipxe-devel/2015-December/004532.html

编辑:加载pxelinux.0时,取决于其版本,它将检索动态组件以及pxelinux.0菜单定义。加载iPXE时,没有加载这些额外的文件。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/804750

复制
相关文章

相似问题

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