More PXE Magic
Multi-OS PXE Menu
If all you were interested in was PXE booting a single version of Ubuntu or Debian, you would be done. Of course, what if you wanted the choice of either the 32- or 64-bit versions of a particular release, or what if you wanted to choose between a few different releases? Although you could just overwrite your tftpboot directory every time you wanted to change it up, with only a few extra tweaks to the config, you easily can host multiple releases with the same menu.
Move Precise to a Submenu
To get started, let's clean out any existing files in the /var/lib/tftpboot directory. Let's use the i386 Precise netboot.tar.gz to begin, but let's tweak how the files are organized by isolating precise in its own directory:
$ cd /var/lib/tftpboot $ sudo mkdir precise $ cd precise $ sudo wget http://us.archive.ubuntu.com/ubuntu/dists/precise/ ↪main/installer-i386/current/images/netboot/netboot.tar.gz $ sudo tar xzf netboot.tar.gz
All of the interesting PXE configuration can be found inside the ubuntu-installer/i386 directory, so make a copy of those files back in the root tftpboot directory so you can edit them:
$ cd /var/lib/tftpboot $ sudo cp -a precise/ubuntu-installer/i386/boot-screens ↪precise/ubuntu-installer/i386/pxelinux.0 ↪precise/ubuntu-installer/i386/pxelinux.cfg .
Unfortunately, all of the configuration files under the boot-screens directory you copied reference ubuntu-installer/i386/boot-screens, when you want them to reference just boot-screens, so the next step is to run a quick Perl one-liner to search and remove any instance of ubuntu-installer/i386/ found in the config file:
$ cd /var/lib/tftpboot/boot-screens $ sudo perl -pi -e 's|ubuntu-installer/i386/||' *
The specific pxelinux configuration that points to the Ubuntu Precise kernel and initrd can be found under precise/ubuntu-installer/i386/boot-screens/txt.cfg. If you were to look at that file, it would look something like this:
default install label install menu label ^Install menu default kernel ubuntu-installer/i386/linux append vga=788 initrd=ubuntu-installer/i386/ ↪initrd.gz -- quiet label cli menu label ^Command-line install kernel ubuntu-installer/i386/linux append tasks=standard pkgsel/language-pack-patterns= ↪pkgsel/install-language-support=false vga=788 ↪initrd=ubuntu-installer/i386/initrd.gz -- quiet
What you want to do is make a copy of this config file under your root-level boot-screens directory, but because you extracted the tarball into a directory named precise (instead of the root directory), you need to do another search and replace, and add precise in front of any reference to the ubuntu-installer directory. Otherwise, the paths to the kernel and initrd will be wrong:
$ cd /var/lib/tftpboot/boot-screens $ sudo cp ../precise/ubuntu-installer/i386/boot-screens/txt.cfg ↪precise-i386.cfg $ sudo perl -pi -e 's|ubuntu-installer|precise/ubuntu-installer|g' ↪precise-i386.cfg
When you are done, the /var/lib/tftpboot/boot-screens/precise-i386.cfg file should look something like this:
default install label install menu label ^Install menu default kernel precise/ubuntu-installer/i386/linux append vga=788 initrd=precise/ubuntu-installer/i386/initrd.gz ↪-- quiet label cli menu label ^Command-line install kernel precise/ubuntu-installer/i386/linux append tasks=standard pkgsel/language-pack-patterns= ↪pkgsel/install-language-support=false vga=788 ↪initrd=precise/ubuntu-installer/i386/initrd.gz -- quiet
Kyle Rankin is a VP of engineering operations at Final, Inc., the author of a number of books including DevOps Troubleshooting and The Official Ubuntu Server Book, and is a columnist for Linux Journal. Follow him @kylerankin.
|Happy Birthday Linux||Aug 25, 2016|
|ContainerCon Vendors Offer Flexible Solutions for Managing All Your New Micro-VMs||Aug 24, 2016|
|Updates from LinuxCon and ContainerCon, Toronto, August 2016||Aug 23, 2016|
|NVMe over Fabrics Support Coming to the Linux 4.8 Kernel||Aug 22, 2016|
|What I Wish I’d Known When I Was an Embedded Linux Newbie||Aug 18, 2016|
|Pandas||Aug 17, 2016|
- Happy Birthday Linux
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- ContainerCon Vendors Offer Flexible Solutions for Managing All Your New Micro-VMs
- What I Wish I’d Known When I Was an Embedded Linux Newbie
- Updates from LinuxCon and ContainerCon, Toronto, August 2016
- NVMe over Fabrics Support Coming to the Linux 4.8 Kernel
- New Version of GParted
- Returning Values from Bash Functions
- All about printf
- Tech Tip: Really Simple HTTP Server with Python
With all the industry talk about the benefits of Linux on Power and all the performance advantages offered by its open architecture, you may be considering a move in that direction. If you are thinking about analytics, big data and cloud computing, you would be right to evaluate Power. The idea of using commodity x86 hardware and replacing it every three years is an outdated cost model. It doesn’t consider the total cost of ownership, and it doesn’t consider the advantage of real processing power, high-availability and multithreading like a demon.
This ebook takes a look at some of the practical applications of the Linux on Power platform and ways you might bring all the performance power of this open architecture to bear for your organization. There are no smoke and mirrors here—just hard, cold, empirical evidence provided by independent sources. I also consider some innovative ways Linux on Power will be used in the future.Get the Guide