You are here

Installing Ubuntu 6.06 LTS Dapper On Intel DG965RY via PXE / Network / USB

This article mainly covers the installation of Ubuntu 6.06 Dapper (both Desktop Edition and Server Edition) on an Intel DG965RY motherboard. Anyone of you who have purchased this motherboard must have realized that most of the linux distributions fail to boot from the IDE CD-ROM. The reason for this being DG965RY uses Marvell PATA controller and this is not supported by anything but the bleeding edge kernels. So though the CD maybe booted initially, at the point where the kernel has to fetch the files from the CD-ROM the installation fails. The few linux distributions which seem to be working with this are Open Suse 10.2 and Ubuntu Fiesty 7.04 (as these seem to support the Marvell PATA controller).

There were various methods I tried to install Ubuntu Dapper. I shall cover these methods below:

  • Network Installation (works with Server Edition and possibly Alternate CD, does not work with Desktop Edition)
  • USB Installation (works with Desktop Edition and possibly Server Edition and Alternate CD)
  • Installation using USB-Disk and CD-ROM (works with Server Edition and possibly Alternate CD, does not work with Desktop Edition)

Requirments

Intel DG965RY motheboard (or any board based on the Marvell PATA controller) + Processor
SATA Hard Drive
1 GB USB Disk and/or Network Card (depending upon the installation method)
IDE CD-ROM (only for third installation method)

Network Installation

Oh yeah, this seems to be the most obvious choice if you have a PC running linux other than the one you are about to install on. Let us call the PC with DG965RY motherboard on which Ubuntu is to be installed "PC-I" and the second PC which acts as a server and holds the Ubuntu packages "PC-S" (IP: 192.168.2.1).

For this installation, it is necessary that you have an extra network card as the onboard network interface is not recogniszed by the dapper kernel. So have the network card fixed to your PC before you start installation.

Setting up server (PC-S) for serving install files

  1. Install and configure apache2 web server so that the install files can be served via http
    # apt-get install apache2
  2. Create the directory /var/www/ubuntu/.
    # mkdir -p /var/www/ubuntu
  3. If you have the ubutnu server edition iso image, mount it as below.
    # mount -o loop ubuntu-6.06.1-server-i386.iso /var/www/ubuntu/

    If you have the ubuntu server edition CD, then you can mount it as below.
    # mount /dev/cdrom /var/www/ubuntu/

  4. Access http://192.168.2.1/ubuntu/ from another PC to make sure the files are accessible.

Starting Installation via PXE

As per the instructions, we need to have a DHCP and TFTP server running. The DHCP server assings and IP and netmask to PC-I and also mentions the intitial file to be fetched from the TFTP server. The TFTP server provides the kernel for booting linux.

Setting up TFTP server:

  1. First install the tftp server
    # apt-get install tftpd-hpa
  2. Next I suggest running it as a seperate service and not as an inetd service. So first open /etc/inetd.conf and comment out the line starting with "tftp". Restart the inetd service (/etc/init.d/inetutils-inetd restart). You can check that the tftp service is not running using netstat (netstat -nl | grep 69).
  3. Now edit /etc/default/tftpd-hpa and set RUN_DAEMON="yes". Now restart the tftpd-hpa service.
    # /etc/init.d/tftpd-hpa stop
    # /etc/init.d/tftpd-hpa start
  4. Now you will have to download and extract the netboot files for dapper to the tftp repository.
    # cd /var/lib/tftpboot
    # wget -c -t 0 "http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/curren..."
    # tar -xvzf netboot.tar.gz
    # rm netboot.tar.gz (optional)
  5. The tftp server is now ready to serve the files. In order to test it, you can install the tftp client on some other machine and try connecting and downloading the pxelinux.0 file from PC-S.
    # apt-get install tftp-hpa
    # tftp 192.168.2.1
    tftp> verbose on
    Verbose Mode On.
    tftp> binary
    mode set to octet
    tftp> get pxelinux.0
    getting from 192.168.2.1:pxelinux.0 to pxelinux.0 [octet]
    Received 13156 bytes in 0.0 seconds [inf bits/sec]
    tftp> quit
  6. In case you face any problems, you may need to check whether the service is running on it, listening on the approriate interface and also the firewall settings

Setting up DCHP server:

  1. Install dhcp3-server
    # apt-get install dhcp3-server
  2. Edit /etc/dhcp3/dhcpd.conf (you may need to comment out everything else) and add the following lines. The "server-name" is the TFTP server from which the file "pxelinux.0" should be fetched. I belive the next-server is also used for the same purpose. For me, it was not necessary to add "next-server" to start the installation. But as it has been given in many sites, I am adding it here.

    ping-check = 1;
    subnet 192.168.2.0 netmask 255.255.255.0 {
    range 192.168.2.11 192.168.2.254;
    server-name "192.168.2.1";
    next-server 192.168.2.1;
    filename = "pxelinux.0";
    }

    Note: If you plan to do installation over internet, you will also have to add the default gateway and name servers.

  3. Add the appropraite interface on which DHCP server should be listening in /etc/default/dhcp3-server
  4. Restart the server
    # /etc/init.d/dhcp3-server restart

Launching installation:

  1. Fix the network cable to the onboard network interface of PC-I. Boot PC-I, go to the BIOS Boot options and enable booting through network. Also set the boot priority of the network to be before that of hard disk. Now boot the PC. The PC should first get itself an IP automatically and then show the "boot:" prompt.

Starting Installation via USB disk

  1. Download boot.img.gz and write it the USB disk (the USB should not be mounted)
    # wget -c -t 0 "http://archive.ubuntu.com/ubuntu/dists/dapper/main/installer-i386/curren..."
    # zcat boot.img.gz > /dev/sda
    # sync

    We are assuming that /dev/sda refers to the USB drive. It might differ.

  2. Once the USB floppy is ready, boot the computer, go to BIOS configuration and enable booting of USB disks and set its booting order. Save the changes and restart the computer. You should get the "boot:" prompt.

Continuing Installation

  1. Now that you got the "boot:" prompt using either PXE or USB floppy and that the server (PC-S) is serving the installation files, you can now boot one of the four boot labels - "install", "expert", "server", "server-expert". Please note that all the boot labels should be passed the option "pci=nommconf" or else the installation will not proceed. Here is an example:

    boot: expert pci=nommconf

Notes

  1. Due to some strange reason, when "install" or "expert" boot lables were used the installation hanged while downloading the installer components. In case you face this problem, please use "expert" and "server-expert" boot labels.
  2. If using PXE to start installtion, once the kernel is loaded, you will have to remove the cable from the onboard network interface and plug-in to the extra network interface card. If using USB floppy installation, you can plug-in the cable to the extra network interface card from the beginning of the installation itself.
  3. If you have started the installation via USB disk, make sure you have either used DHCP or manually configured the network for the PC properly.

Related Links

Hacking the Ubuntu Installation: Kicking Off the Network Install with a USB Drive
Ubuntu Network Install
PXE Network Booting on Ubuntu Linux
Halis Way: Ubuntu dapper PXE network install
Installation from LocalNet

Install Ubuntu without CD-ROM
Ubuntu PXE Install
Linux on DG965RY HOWTO

USB Installation

Installation via USB Disk shall be useful if you want to install the Desktop Edition. Below are the steps to perform this.

  1. Blank the USB Disk using "dcfldd". "dcfldd" is nothing but an enhanced version of dd and performs just like dd. But it also has some nice features like progress indicator, because of which I use it here ("dfcldd" can be installed using apt-get). Assuming /dev/sda is your USB disk, run the below command (the USB disk should not be mounted)
    # dcfldd statusinterval=10 if=/dev/zero of=/dev/sda
  2. Next create a FAT 16 file system
    # mkdosfs -I -F 16 /dev/sda
  3. Mount the Live CD and the USB drive.
    # mkdir -p /mnt/usb
    # mkdir -p /mnt/img
    # mount -o loop ubuntu-6.06-desktop-i386.iso /mnt/img/
    # mount /dev/sda /mnt/usb
  4. Copy over the files. This can take 30 minutes or longer. Also, ignore the errors about symbolic links since FAT16 does not support them.
    # (cd /mnt/img ; tar -cf - *) | (cd /mnt/usb ; tar -xvf -)
    # sync
  5. Set up the files for a bootable disk. Since SYSLINUX does not support subdirectories for kernel files, you need to move these to the top directory on the USB drive.

    Move the kernel files and memory tester
    # mv /mnt/usb/casper/vmlinuz /mnt/usb/vmlinuz
    # mv /mnt/usb/casper/initrd.gz /mnt/usb/initrd.gz
    # mv /mnt/usb/install/mt86plus /mnt/usb/mt86plus

    Move boot files to top of the drive
    # mv /mnt/usb/isolinux/* /mnt/usb/
    # mv /mnt/usb/isolinux.cfg /mnt/usb/syslinux.cfg
    # rm /mnt/usb/isolinux.bin

    Optionalally, you may delete Windows tools and ISO files to free space
    # rm -rf /mnt/usb/start.* /mnt/usb/autorun.inf
    # rm -rf /mnt/usb/bin /mnt/usb/programs
    # rm -rf /mnt/usb/isolinux

    All done
    # sync

  6. Edit the /mnt/usb/syslinux.cfg file and correct the kernel paths. Remove the paths /casper/ and /install/ wherever you see them. This is because you moved the files to the root of the USB drive in the previous step.
    # sed -r 's/\/casper\///g;s/\/install\///g' syslinux.cfg > syslinux.cfg.tmp && mv -f syslinux.cfg.tmp syslinux.cfg
  7. Unmount the drive and make it bootable.
    # umount /mnt/usb
    # syslinux /dev/sda
    # sync
  8. Now plug in the USB, enable USB booting in the BIOS and boot from the USB. At the splash screen, do not forget to press F6 and add the "pci=nommconf" option to the kernel.

By making minor changes to the above procedure it should be possible to boot Ubuntu Server Edition from USB as well.

Notes

  1. You may have to choose the Safe graphics mode for starting GNOME

Related Links

Hacking the Ubuntu Installation: Installating a Full File System
Installation from USB Stick

Installation using USB-Disk and CD-ROM

This is another interesting way of installing Ubuntu Server Edition. The idea behind this is to start the boot using the CD-ROM but the installation files are provided by the USB disk. Below are the steps to perform this.

  1. First write the server edition iso image to the USB disk. Assuming /dev/sda is your USB disk, this is done as follows:
    # dcfldd statusinterval=10 if=ubuntu-6.06.1-server-i386.iso of=/dev/sda bs=1M
    # sync

    If you have the Server Edition CD, you can run the below command:
    # dcfldd conv=noerror statusinterval=10 if=/dev/cdrom of=/dev/sda bs=1M
    # sync

  2. You can check if the image got properly written by mounting it.
    # mkdir -p /mnt/usb
    # mount -t iso9660 /dev/sda /mnt/usb
    # ls -a /mnt/usb
    # umount /mnt/usb
  3. Now fix the USB to the PC and boot the PC from the server edition CD. At the boot prompt as usual be sure to pass "pci=nommconf" option to the kernel.
  4. Once the kernel is loaded from the CD-ROM, the files are automatically loaded from the usb disk into the /cdrom directory.
  5. If the installer complains of a missing cdrom, you will have to create a cdrom device and link it to the USB disk. Assuming /dev/sdb is your usb disk (as /dev/sda will most probably be the SATA hard disk), do the following by pressing "Alt F2" and opening the console:

    # mkdir -p /dev/cdroms
    # cd /dev/cdroms
    # ln -s ../sdb cdrom0

    This will add a new cd-rom device. The installation should continue from here.

Related Links

Installing ubuntu on dg965ry motherboard

Other References

Ubuntu Various Installation Methods
Core 2 Duo Support and Work-Arounds

Related Information

Category: 

Add new comment