Tuesday, January 31, 2006

Review: automated network install of suse, debian and fedora with LinuxCOE

Network install over LAN is an essential option for system administrators. Utilizing tools such as Kickstart or AutoYaST, they can create a single file containing the answers to all the questions that would normally be asked during a typical Linux installation, and use it to install the operating system and software on multiple machines. Based on this technology, LinuxCOE makes it possible to create an ISO image which can start an automated installation over the network.

instalinux

Introduction
Most Linux distributions support automated and remote installations. Instead of downloading and burning all needed ISO images, you can often boot a small installation CD and install your favorite distro right off another server, weather from local network or a remote file system. When installing from the internet this can be time consuming, or not even an option at all if you don't have broadband connection.

InstallLinux and LinuxCOE
Even so, services such as InstallLinux are useful because they make it very easy to configure an automated installation. The new InstallLinux site is using HP's LinuxCOE server as the web interface to a collection of scripts that are used to prepare CD images with all the information needed for unattended install.

admitingly, this sounds all too good not to want to try right away. So I did. I decided I will try SUSE Linux 10 on an old Armada laptop. I ended up trying fedora and debian as well. Currently, InstallLinux supports SUSE, Ubuntu, Debian and Fedora only.

Configuring a custom Installation CD
Step 1: Configuration
Configuring the ISO is done online obviously. A wizard will walk you through various network configuration options, including IP (either static, or dynamic IP via DHCP). This is where you would also need to choose the distribution you are going to install.

Step 2: installation Source
The default, and only, system profile was 'Custom'. I guess this is a "place holder" for pre-configured setups which might be implemented in a future version. I chose to install from the network over HTTP. If you already downloaded the ISOs, you can actually use them instead. There is also a pull down menu for the 'Boot Image' with one option set to 'SUSE ISO'.

Step 3: Localization
Here you can select a mirror, set the Time/Zone (default is US/Pacific) and Hardware clock type, main and additional language support, keyboard layout and mouse model. The list of mirrors is very small, one only for SUSE for instance. I chose an English (US) keyboard, and an IntelliMouse Explorer mouse.

Step 4: Software bundles
'Bundles' are collections of software packages. There are 'base' software bundles such as: minimal, minimal+X11, default or default-GNOME, and additional bundles such as: fonts, games, mono, voip and xen. You can also specify individual RPMS (e.g. "openssh").

Another nice touch here is an option to apply available patches during the install. You can even choose to pre-configure your system for automatic updates - via YOU or APT.

Last thing you need to do before you proceed is to decide to partition the hard disk. You can either let the installer partition the hard disk for you (swap and / only), or specify the partitions and space allocation yourself.

I chose 'default' base software bundle, and didn't add any other packages. I also allowed applying patches, and accepted daily updates using APT.

Step 4a: Partitioning
Depending on what you selected previously, you would now be asked to specify partitions sizes and mount points. The defaults are: /boot (75mb, ext2), swap (512mb) and '/' (1gb, ext3) on the first IDE hard disk (hda).

Step 5: Overview and Password
In this step, an overview of what was done so far was displayed. I needed to provide the root password (not optional), and create a normal user account. You can also enable running a VNC server during installation, so you could follow it from another networked computer.

That's it. Clicking on "Go For It!" you would eventually get a direct link to an image file you need to burn. The size was 8MB. I created the CD and booted my laptop with it.

Installing SUSE 10
Most installation CDs timeout and boot by default, but these images require you to choose the preferred boot method: install, manual, or rescue. After just a couple of minutes I was looking at the mythological 'Kernel Panic' message, complaining about a missing root file system.

After rebooting the computer, I chose 'manual' this time. In this mode YaST is interactive. Like when installing from a standard install media, YaST was able to load PCMCIA support but it doesn't seem to have the orinoco_cs modules for my WiFi card. I replaced it with a Xircom Ethernet card but couldn't make that work either.

Installing Fedora 4
Thank god for CD-RW. I burned another image, this time Fedora 4. The configuration options are pretty much the same, except for an additional option to use the installers own partition utility. I booted the same laptop with the new CD, and just watched it doing its work, hands-off, well, at least for a while.

After connecting to the internet and downloading some files, I got an error message. This time it was: "The Fedora Core installation tree in that directory does not seem to match your boot media." I was returned to the anaconda to configure the server and path, and indeed, it was pointing at the a 64bit version. I changed it manually to my ISPs mirror and continued from there.

But the installation exited abnormally with an error messages (anaconda.py on lines 1108, and from kickstart.py on lines 1456, 835 and 1218 stating: ValueError: Invalid literal int (): 2000B).

Installing Debian
I'm not sure what Debian 3.2, guess it is Etch. I downloaded it and tried to boot from the new CD, but it failed a after a short while during the hardware detection stage, complaining that it couldn't find a network card. This time I was using the Xirocm PCMCIA Ethernet card.

Installing SUSE 10 (2nd attempt)
Just before wrapping things up, I thought I should try to install SUSE once again this time from a freshly configured ISO. I noticed the only server available for downloading during the installation was: mirrors.tds.net. I checked it and made sure it was available.

This time things looked much better. After booting, though, I got a message warning that I don't have enough memory to run YaST and had a swap partition mounted for me automagicaly... And without been asked to create one. Shortly after that I could see the a VNC server was started on display :1. So I used Krdc to login from my desktop. Indeed, YaST was active and busy installing SUSE on my laptop. Shortly after it run into another problem while attempting to delete the swap partition, and then aborted.

YaST via VNC

YaST via VNC

Summary
This is truly cool stuff just as much, but your mileage my vary. I ended up not being able to install any of the supported distros, but obviously some of the problems have to do with my hardware as well. Reading messages other users who tried what I did, shows some success indeed.

InstallLinux could become truly amazing if you could also customize your hardware. I'm not sure if Kickstart, AutoYaST and Debian's automated install support more granular access to various configuration options, but wouldn't it be great if you could download customized installation CD of your favorite Linux distro?