Edubuntu 14.04 - 自定义 PXE 启动设置

Edubuntu 14.04 - 自定义 PXE 启动设置

使用 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 文件,并且不会发生任何更改。

关于这个特定主题的信息有限 - 也许我的搜索字符串有限制,但这是我找到的唯一相关链接,但它并没有直接回答我的问题。

任何帮助都将不胜感激。

使用 Ubuntu 14.04 进行 PXE 启动

答案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,但不幸的是,所有设置似乎都没有生效。我认为上述方法是正确的。

相关内容