More PXE Magic

Add Precise 64-Bit

Now that you have the 32-bit Precise install working, let's add the 64-bit release as well. You'll basically perform the same initial steps as before, after you remove any existing netboot.tar.gz files. The netboot.tar.gz file is structured so that it will be safe to extract it in the same precise directory:


$ cd /var/lib/tftpboot/precise
$ sudo rm netboot.tar.gz
$ sudo wget http://us.archive.ubuntu.com/ubuntu/dists/precise/
↪main/installer-amd64/current/images/netboot/netboot.tar.gz
$ sudo tar xzf netboot.tar.gz

Since you already copied over the boot-screens directory, you can skip ahead to copying and modifying the 64-bit txt.cfg, so it gets pointed to the right directory:


$ cd /var/lib/tftpboot/boot-screens
$ sudo cp ../precise/ubuntu-installer/amd64/boot-screens/txt.cfg 
 ↪precise-amd64.cfg
$ sudo perl -pi -e 's|ubuntu-installer|precise/ubuntu-installer|g' 
 ↪precise-amd64.cfg

Now, open up /var/lib/tftpboot/boot-screens/menu.cfg again, and add an additional menu entry that points to the precise-amd64.cfg file you created. The file ends up looking like this:


menu hshift 13
menu width 49
menu margin 8

menu title Installer boot menu^G
include boot-screens/stdmenu.cfg
menu begin precise-i386
        menu title Precise 12.04 i386
        include boot-screens/stdmenu.cfg
        label mainmenu
                menu label ^Back..
                menu exit
        include boot-screens/precise-i386.cfg
menu end
menu begin precise-amd64
        menu title Precise 12.04 amd64
        include boot-screens/stdmenu.cfg
        label mainmenu
                menu label ^Back..
                menu exit
        include boot-screens/precise-amd64.cfg
menu end
include boot-screens/gtk.cfg
menu begin advanced
        menu title Advanced options
        include boot-screens/stdmenu.cfg
        label mainmenu
                menu label ^Back..
                menu exit
        include boot-screens/adtxt.cfg
        include boot-screens/adgtk.cfg
menu end
label help
        menu label ^Help
        text help
   Display help screens; type 'menu' at boot prompt to 
    ↪return to this menu
        endtext
        config boot-screens/prompt.cfg

Add a New Ubuntu Release

So, you were happy with your 12.04 PXE menu, and then Ubuntu released 12.10 Quantal, so now you want to add the 32-bit version of that to your menu. Simply adapt the steps from before to this new release. First, create a directory to store the new release, and pull down and extract the new netboot.tar.gz file:


$ cd /var/lib/tftpboot
$ sudo mkdir quantal
$ cd quantal
$ sudo wget http://us.archive.ubuntu.com/ubuntu/dists/quantal/
↪main/installer-i386/current/images/netboot/netboot.tar.gz
$ sudo tar xzf netboot.tar.gz

Next, copy over the quantal txt.cfg file to your root boot-screens directory, and run a Perl one-liner on it to point it to the right directory:


$ cd /var/lib/tftpboot/boot-screens
$ sudo cp ../quantal/ubuntu-installer/i386/boot-screens/txt.cfg 
 ↪quantal-i386.cfg
$ sudo perl -pi -e 's|ubuntu-installer|quantal/ubuntu-installer|g' 
 ↪quantal-i386.cfg

Finally, edit /var/lib/tftpboot/boot-screens/menu.cfg again, and add the additional menu entry that points to the quantal-i386.cfg file you created. The additional section you should put below the previous submenus looks like this:


menu begin quantal-i386
        menu title Quantal 12.10 i386
        include boot-screens/stdmenu.cfg
        label mainmenu
                menu label ^Back..
                menu exit
        include boot-screens/quantal-i386.cfg
menu end

The resulting PXE menu should look something like Figure 3. To add the 64-bit release, just adapt the steps from the above Precise 64-bit release to Quantal. Finally, if you want to mix and match Debian releases as well, the steps are just about the same, except you will need to track down the Debian netboot.tar.gz from its project mirrors and substitute precise for Debian project names like squeeze. Also, everywhere you see a search and replace that references ubuntu-installer, you will change that to debian-installer.

Figure 3. Now with Three Options

______________________

Kyle Rankin is a director of engineering operations in the San Francisco Bay Area, the author of a number of books including DevOps Troubleshooting and The Official Ubuntu Server Book, and is a columnist for Linux Journal.

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Don't you think it's (way

Anonymous's picture

Don't you think it's (way past) time to do something about all the SPAM in the comments?

Yes

David Lane's picture

Got any good suggestions? Don't forget to click on the "Report Spam" feature so that we can try and keep ahead of it.

David Lane, KG4GIY is a member of Linux Journal's Editorial Advisory Panel and the Control Op for Linux Journal's Virtual Ham Shack

Preseed Enhancement

Anonymous's picture

If you wanted to add a preseed file for installation to a headless server, what would you add?

Preseed

Boethius's picture

In the given append example you'd do the following:

append vga=788 initrd=ubuntu-installer/i386/initrd.gz auto url=http://serverhostingyourpreseedfile/preseedfile.cfg -- quiet

As for the actual preseed file itself, here's an excellent reference for Precise's preseed file:

https://help.ubuntu.com/lts/installation-guide/i386/preseed-contents.html

White Paper
Linux Management with Red Hat Satellite: Measuring Business Impact and ROI

Linux has become a key foundation for supporting today's rapidly growing IT environments. Linux is being used to deploy business applications and databases, trading on its reputation as a low-cost operating environment. For many IT organizations, Linux is a mainstay for deploying Web servers and has evolved from handling basic file, print, and utility workloads to running mission-critical applications and databases, physically, virtually, and in the cloud. As Linux grows in importance in terms of value to the business, managing Linux environments to high standards of service quality — availability, security, and performance — becomes an essential requirement for business success.

Learn More

Sponsored by Red Hat

White Paper
Private PaaS for the Agile Enterprise

If you already use virtualized infrastructure, you are well on your way to leveraging the power of the cloud. Virtualization offers the promise of limitless resources, but how do you manage that scalability when your DevOps team doesn’t scale? In today’s hypercompetitive markets, fast results can make a difference between leading the pack vs. obsolescence. Organizations need more benefits from cloud computing than just raw resources. They need agility, flexibility, convenience, ROI, and control.

Stackato private Platform-as-a-Service technology from ActiveState extends your private cloud infrastructure by creating a private PaaS to provide on-demand availability, flexibility, control, and ultimately, faster time-to-market for your enterprise.

Learn More

Sponsored by ActiveState