由于超出我理解水平的原因,我似乎无法通过 pxe 启动 Fedora 25 的救援实例。在无数次尝试使用工作站版本之后,我又回到了服务器 DVD,因为最后,我唯一需要的是启动 pxe fedora 以在我的本地磁盘分区上工作。唉,那里没有运气。
目前正在 append 行中寻找不同关键字的确切含义。(pxe, grub, ...) 希望找到正确的魔法公式,但我的 googlefu 似乎也让我失望。
其他发行版没有问题,但我想了解为什么 Fedora 如此痛苦。
即:在 centos7 pxe (nfs) 上启动救援非常简单:
LABEL c7r
kernel centos/7/vmlinuz
append initrd=centos/7/initrd.img method=nfs:192.168.16.252:/pxedev/centos/7 rescue
Run Code Online (Sandbox Code Playgroud)
在 Fedora 25 上的一些尝试:
LABEL f25r
kernel fedora/25s/vmlinuz
append initrd=fedora/25s/initrd.img ip=dhcp root=nfs:192.168.16.252:/pxedev/fedora25s/ rescue
Run Code Online (Sandbox Code Playgroud)
从 PXE (nfs) 安装并不困难:
LABEL f25ws
kernel fedora/25/vmlinuz
append initrd=fedora/25/initrd.img ip=dhcp inst.stage2=nfs:192.168.16.252:/pxedev/fedora25/
Run Code Online (Sandbox Code Playgroud)
所以我错过了 Fedora 25 的 pxe 救援所需的信息。对于服务器版本,我下载了 dvd:“Fedora-Server-dvd-x86_64-25-1.3.iso”,然后我将其完全解压缩到文件夹中并获取来自“images/pxeboot”目录的内核和initramfs。
小智 5
TL;DR 是你忘记给它提供救援图像的 inst.stage2 参数。initrd的和内核都没有足够的启动Fedora的救援模式,它需要蟒蛇的第二阶段的加载器。更换你的root=nfs
东西,inst.stage2=nfs:192.168.16.252:/pxedev/fedora25/
你应该去参加比赛。
更长的答案:
PXE 启动有点挑战,因为它需要很多活动部件:
接下来是我如何使它工作。
软件安装
dnf -y install dhcp-server tftp-server httpd syslinux-tftpboot
ISC DHCPd 部分
注意:YMMV 与其他 DHCP 服务器。
该next-server
参数是您的 TFTP 服务器的 IP。
Subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.200;
option routers 192.168.0.1;
class "pxeclients" {
match if substring (option vendor-class-identifier, 0, 9) = "PXEClient";
next-server 192.168.0.2;
filename "pxelinux.0";
}
}
Run Code Online (Sandbox Code Playgroud)
TFTPd 部分
Fedora 将 TFTP 根目录放在 中/var/lib/tftpboot
,您需要在其中创建几个目录来包含启动映像和 pxe 配置。
我通常将我的子目录设置为这样:
$OSVER/$ARCH
这样我就可以在任何给定时间启动多个版本的 Fedora PXE。
然后,和您一样,我将ISO 映像目录中的initrd
和vmlinuz
文件复制images/pxelinux
到 tftpboot 的相应子目录中。
接下来,在您的 tftpboot 目录中,创建一个名为pxelinux.cfg
. 在此目录中,您将创建名为default
. 在此文件中,您将生成类似于以下内容的条目:
default vesamenu.c32
prompt 0
timeout 100
label local
menu label Boot from ^local drive
localboot 0xffff
label f25_x86_64
menu label Fedora 25 x86_64 (Generic)
kernel f25/x86_64/vmlinuz
append initrd=f25/x86_64/initrd.img repo=http://192.168.0.2/os/fedora/25/x86_64/ ks=http://192.168.0.2/ks/f25-x86_64-ks.cfg
label f25_rescue
menu label Fedora 25 ^Rescue Mode
kernel f25/x86_64/vmlinuz
append initrd=f25/x86_64/initrd.img inst.stage2=http://192.168.0.2/os/fedora/25/x86_64 rescue
Run Code Online (Sandbox Code Playgroud)
第 2 阶段的映像足够大,以至于通过 PXE 传送它们偶尔会出现问题,因此我通过 HTTP 传送它们。
接下来,由于 syslinux-tftpboot 出于某种原因不知道 tftp-server 的不同根目录,因此您需要将所有*.c32
文件从移动/tftpboot/
到/var/lib/tftpboot
。
HTTPD 部分
通过 HTTPD 获取可用的 ISO 映像:
最简单的方法是mkdir /var/www/html/os/fedora/$FEDORAVERSION/$ARCH
,然后mount -o loop,uid=48,gid=48,mode=0755 /path/to/fedora-server.iso /var/www/html/os/fedora/$FEDORAVERSION/$ARCH
一旦配置并启用所有守护程序,繁荣,它就可以工作了。
如果你想启动 Fedora 27,你基本上可以sed -r -e s/25/27/g
在上面的所有配置上,它会工作。
归档时间: |
|
查看次数: |
1505 次 |
最近记录: |