![Edubuntu 14.04 - 自定义 PXE 启动设置](https://linux22.com/image/1123548/Edubuntu%2014.04%20-%20%E8%87%AA%E5%AE%9A%E4%B9%89%20PXE%20%E5%90%AF%E5%8A%A8%E8%AE%BE%E7%BD%AE.png)
使用 VM,Edubuntu 14.04
我刚刚决定将我的 PXE 启动服务器从 12.04 更新到 14.04 - 我不想关闭其他系统来升级它。我创建了一个新系统并全新安装了 Edubuntu 14.04。当我正在处理系统配置时,我发现以下文件发生了变化:
/var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
这是我对这个文件的条目:
default vesamenu.c32
timeout 600
ontimeout Ghost - Puppy Linux - Version 5.8.4
prompt 0
menu include pxelinux.cfg/pxe.conf
label Ghost - Puppy Linux - Version 5.8.4
kernel /Puppy5.8.4/vmlinuz
initrd /Puppy5.8.4/initrd.gz
append boot=live pfix=copy nosmp root=nbd0 nbdroot=/pxeghost
text help
GhostPup 5.8.4
endtext
label Change NT Password
kernel memdisk
append initrd=chntpw.iso iso raw
text help
Change NT Password
endtext
label GPARTED
kernel memdisk
append initrd=gparted-live-0.14.1-6-i486.iso iso raw
text help
GParted v 0.14.1-6-i486
endtext
label ltsp - Original
kernel vmlinuz
append ro initrd=initrd.img root=/dev/nbd0 splash plymouth:force-splash
vt.handoff=7 nbdroot=:ltsp_i386
label WinPE 4.0
kernel memdisk
append initrd=winpe_x64.iso iso raw
text help
WinPE 4.0 Boot Disk
endtext
label XUbuntu 12.04 LTS
kernel memdisk
append initrd=xubuntu12.04.iso iso raw
text help
XUbuntu 12.04 Long Term Support
endtext
label CentOs 6.5
kernel memdisk
append initrd=CentOS-6.5-i386-LiveCD.iso iso raw
text help
CentOS-6.5-i386-LiveCD
endtext
问题是,在这个文件中进行更改很简单,而且有效,现在我们由同一个文件指向不同的位置 - 见下文:
ipappend 2
menu end
# This file is regenerated when update-kernels runs.
# Do not edit, see /etc/ltsp/update-kernels.conf instead.
menu begin ltsp-versions-NFS
menu label Other LTSP boot options using NFS
label ltsp-NFS-3.13.0-24-generic
menu label LTSP, using NFS, with Linux 3.13.0-24-generic
kernel vmlinuz-3.13.0-24-generic
append ro initrd=initrd.img-3.13.0-24-generic init=/sbin/init-ltsp quiet splash root=/dev/nfs ip=dhcp boot=nfs
ipappend 2
menu end
# This file is regenerated when update-kernels runs.
# Do not edit, see /etc/ltsp/update-kernels.conf instead.
menu begin ltsp-versions-AOE
menu label Other LTSP boot options using AOE
label ltsp-AOE-3.13.0-24-generic
menu label LTSP, using AOE, with Linux 3.13.0-24-generic
kernel vmlinuz-3.13.0-24-generic
append ro initrd=initrd.img-3.13.0-24-generic init=/sbin/init-ltsp quiet splash
root=/dev/etherd/e0.0
ipappend 2
menu end
注意:我们被引导至创建此菜单的另一个文件。
# Do not edit, see /etc/ltsp/update-kernels.conf instead.
那么新文件的格式就完全不同了,如下所示:
# Default boot options
# Use a menu for booting
#PXELINUX_DEFAULT=menu
# Set default timeout to 10 seconds (hundreths of a second)
#TIMEOUT=100
# Set default boot item on timeout
#ONTIMEOUT=ltsp-NBD
# Use ifcpu64.c32 to detect 64-bit, PAE or 32-bit machines.
#PXELINUX_DEFAULT=ltsp-ifcpu64-NFS
#IFCPU64=true
# Supported booth methods
BOOT_METHODS="NBD NFS AOE"
# Default commandline arguments common to all boot methods
CMDLINE_LINUX_DEFAULT="init=/sbin/init-ltsp quiet splash"
# Commandline used with NFS root
CMDLINE_NFS="root=/dev/nfs ip=dhcp boot=nfs"
# Commandline used with NBD root
CMDLINE_NBD="root=/dev/nbd0"
# Commandline used with AOE root
CMDLINE_AOE="root=/dev/etherd/e0.0"
# A sed expression that matches all kernels and returns $FILE $NAME $VERSION $FLAVOR
# Example: ls /boot | sed -n "$KERNEL_NAMES" | sort -V -k 4,4 | sort -r -k 3,3
KERNEL_NAMES='s/\(vmlinu[xz]-\)\([^-]*-[^-]*-\)\(.*\)/& \1 \2 \3/p'
# A sed expression that maps from a kernel name to an initrd name
# Example: initrd=$(echo "$FILE" | sed -n "$INITRD_NAME")
INITRD_NAME='s/vmlinu[xz]/initrd.img/p'
# Kernel variants
KERNEL_PREFIX="vmlinu[z|x]-*"
KERNEL_SUFFIX=""
# Kernel variants that are supported by 64-bit CPUs
LIST_KERNELS_64=""
# Variants that are supported by PAE capable CPUs
LIST_KERNELS_PAE="lowlatency-pae virtual-pae generic-pae"
# Variants that are widely supported (i.e. 32-bit CPUs)
LIST_KERNELS_32="lowlatency virtual generic"
# Preferred default kernel order
#LIST_KERNELS_DEFAULT="generic-custom generic-pae-custom"
# Use pxelinux/syslinux's IPAPPEND parameter to add useful networking and
# other system information to the boot commandline:
# 1: Add networking: ip=<client-ip>:<boot-server-ip>:<gw-ip>:<netmask>
# 2: Add BOOTIF=<hardware-address-of-boot-interface>
# 3: both 1 & 2
# 4: Add SYSUUID=<system uuid>
#IPAPPEND=3
我如何将其转换为新文件,以便每次都能正确创建我的 /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default 文件,并且不会发生任何更改。
关于这个特定主题的信息有限 - 也许我的搜索字符串有限制,但这是我找到的唯一相关链接,但它并没有直接回答我的问题。
任何帮助都将不胜感激。
答案1
我自己也在为同样的问题而苦苦挣扎,但我认为在研究了这里的源文件后,我发现了部分破解方法:https://github.com/opinsys/ltsp/blob/master/server/ltsp-update-kernels
对于您使用更新的每个内核ltsp-update-kernels
,您必须进入其各自的文件夹并检查配置文件。
有几个不同的内核配置文件,但只有 1 个文件似乎被 pxe 引导加载程序选中:/opt/ltsp/i386/boot/pxelinux.cfg/ltsp
。
如果你检查上面的超链接,实际上,里面的所有文件夹/文件/opt/ltsp/i386/boot
都会被复制到/var/lib/tftboot/ltsp/i386/boot
我正在研究如何配置/opt/ltsp/i386/boot/pxelinux.cfg/*
配置文件。我猜这些是在ltsp-build-client
更新
再次,仍然在挣扎……
/etc/ltsp/update-client.conf
我刚刚尝试在和中设置配置文件,/etc/ltsp/ltsp-update-client.conf
并使用 重建我的客户端ltsp-build-client
,但不幸的是,所有设置似乎都没有生效。我认为上述方法是正确的。