未下载 Kickstart 文件

未下载 Kickstart 文件

我正在尝试通过 PXE 自动安装 Ubuntu Server 14.04LTS。我已经设置了一个托管 DHCP、TFTP 和 HTTP 的服务器。我已经设置了一个带有 PXE 启动文件名的 DHCP 范围。我已将 Ubuntu Server CD 复制到 Web 服务器。我编写了一个 kickstart 文件并将其上传到 Web 服务器。所有这些都是按照以下说明完成的:https://help.ubuntu.com/community/PXEInstallServer

当客户端启动时,它会收到 DHCP 请求,并进行 PXE 启动。我拥有的自定义菜单项/var/lib/tftpboot/pxelinux.cfg/default会显示出来,我可以从菜单中选择此项。

但是,一旦选择了启动菜单选项,客户端就永远不会请求 kickstart 文件,并且客户端最终会因“无法在未知块上挂载根文件系统”错误而陷入混乱。

我的 pxelinux.cfg/default 如下所示:

# D-I config version 2.0
include ubuntu-installer/amd64/boot-screens/menu.cfg
default ubuntu-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 10

LABEL CustomServerInstall
    MENU LABEL Automated Trusty Install
        KERNEL ubuntu-installer/amd64/linux
    append ks=http://10.1.1.1/ks_ubuntuserver.cfg console=tty0 console=ttyS0 ignore_loglevel

当我从菜单中选择“自动信任安装”时,我在启动文本中看到以下内容:

[ 3121.134818] Kernel command line: ks=http://10.1.1.1/ks_ubuntuserver.cfg console=tty0 console=ttyS0 ignore_loglevel BOOT_IMAGE=ubuntu-installer/amd64/linux 

所以我知道我的 kickstart 文件路径已提供给内核。但是,ks_ubuntuserver.cfg根据/var/log/apache2/access.log

curl http://10.1.1.1/ks_ubuntuserver.cfg当我从同一子网上的另一台机器进入时,我确实得到了我编写的 kickstart 文件。

所以... kickstart 文件在 Web 服务器上,但内核从未请求它。有人能帮我找出我做错的地方吗?

答案1

您没有指定initrd。引导加载程序会加载内核和initrd。 包含initrd内核用于启动的文件,包括init,因为您没有启动到真正的安装。如果没有它,内核可能很快就会崩溃。

相关内容