我在设置PXE启动服务器时遇到问题。 我运行了isc-dhcp-server , tftp-hpa通过tftp(validation过的作品)提供文件,而apache2托piperootfs映像。 PXE客户端似乎正确地下载内核和initrd文件,然后内核恐慌。
这是我的/tftpboot/pxelinux.cfg/default :
default pxeboot label pxeboot kernel vmlinuz-3.16.0-4-amd64 append initrd=vmlinuz-3.16.0-4-amd64 ip=dhcp boot=live fetch=http://xxx.xxx.xxx.xxx/filesystem.squashfs
我的服务器是Ubuntu 15.04 mini安装。
我最初按照以下说明创buildfimesystem.squashfs根文件系统映像: http : fimesystem.squashfs
然后我按照这些说明来安装DHCP和TFTP: https : //help.ubuntu.com/community/DisklessUbuntuHowto
但是我不得不修改/etc/default/tftpd-hpa来使TFTP服务文件如下:
# /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/tftpboot" TFTP_ADDRESS="xxx.xxx.xxx.xxx:69" TFTP_OPTIONS="--secure" RUN_DAEMON="yes"
如果TFTP_OPTIONS指令更改TFTP_OPTIONS ,则不再启动tftp。 然后我启动了一个apache2服务器,而且似乎显示了我放在/var/www/html/中的文件,我可以从http://xxx.xxx.xxx.xx/filesystem.squashfs下载文件,但内核在引导时出现混乱。
我最初从我的主机/boot/ dir中取得了kernel和initrd映像,因为我的chroot/boot/ dir是空的,但是随后我使用这些指令在chroot上安装了一个内核: http : //willhaley.com/willhaley/blog/创build-A-定制Debian的现场环境/
chroot chroot apt-get install --no-install-recommends --yes \ linux-image-3.16.0-4-amd64 live-boot
然后,我从chroot/boot/ dir复制了内核和initrd映像,但内核仍然出现混乱。 如果我将我的/tftpboot/pxelinux.cfg/default修改为:
default pxeboot label pxeboot kernel vmlinuz-3.16.0-4-amd64 append initrd=vmlinuz-3.16.0-4-amd64
并使用host /boot的内核和initrd映像,客户端加载这两个映像,并将其转储到(initramfs)提示符中。 如果我使用chroot/boot/ images,它仍然是内核恐慌。
我从来没有debugging过内核恐慌,所以我甚至不知道要检查的日志文件。 任何帮助,将不胜感激,
米莎
编辑:这是一个PXE客户端引导和内核恐慌的video: https : //www.youtube.com/watch?v = WlhEmNx8J8M
你的内核恐慌,因为它不是一个PXE兼容的内核/ initrd设置。 如果我是你,我不会重新发明轮子; 采取一个certificatePXE兼容的发行版和自定义initrd您的需要,并添加所需的squashfs。 有关PXE兼容发行版及其相应参数的大名单,请参阅Serva