Install Ubuntu Gutsy over network or from a hard-disk

Ubuntu can be installed using other methods as well, which might prove handy in some circumstances. For example, let's say you want to install Ubuntu on a computer that has no CD/DVD-ROM drive.

What do you do? Well, you can install Ubuntu from another machine on the network (if there is one) that will provide the installation files to other computers on the LAN, or you can install it from the hard drive if there is no LAN. For the latter solution, you will need an active Internet connection to download the Ubuntu ISO image or you can use an external hard drive as well.

Make sure you have the following requirements before you start installing Ubuntu 7.10 with the methods presented in this guide:

• Ubuntu 7.10 Alternate CD
• Ubuntu 7.10 Destktop CD
• an active network connection
• the computer's BIOS must have the 'boot from network' option activated
• access to another network machine that is already running Ubuntu

Install Ubuntu from a network server

For this task, you will need another computer that has Ubuntu installed (and working) and it's connected to the machine you want to install Ubuntu, through a LAN (Local Area Network). We will call that PC that already has Ubuntu, "Server",
and the PC on which you want to install Ubuntu, "Client".

On the Server, you will install a FTP server, a HTTP server and a DHCP server, which will allow the Client machine to connect to the server and fetch the installation files and package repositories. To install these servers, open a Terminal (Applications -> Accessories -> Terminal) and type:

sudo apt-get install tftpd-hpa apache2 dhcp3-server

Now, mount the Ubuntu 7.10 Alternative ISO image with the following commands:

cd /path-to-the-iso-image
sudo mkdir /var/lib/tftpboot/ubuntu
sudo mount -o loop ubuntu-7.10-alternate-i386.iso /var/lib/tftpboot/ubuntu (for an i386 PC)

or

sudo mount -o loop ubuntu-7.10-alternate-amd64.iso /var/lib/tftpboot/ubuntu (for an AMD 64/Intel 64 PC)


Make a symlink to the mounted ISO, from the Apache's root directory:

cd /var/www
sudo ln -s /var/lib/tftpboot/ubuntu/

If the Server has a CD/DVD-ROM drive and you already have burned the Ubuntu 7.10 Alternate ISO installation CD, insert it in the optical drive and wait for it to get auto-mounted. It will probably get mounted under the /media/cdrom path, so we will need to create symlinks for both FTP and HTTP servers. Copy and paste the following commands in a Terminal window:

sudo ln -s /media/cdrom /var/lib/tftpboot/ubuntu/
sudo ln -s /media/cdrom /var/www/ubuntu

Now, configure the DHCP daemon. Download the dhcp config file:

cd /etc/dhcp3
sudo mv dhcpd.conf dhcpd.conf.old
sudo gedit dhcpd.conf

Now copy and paste the following lines into the dhcpd.conf file:

ping-check = 1;
filename = "ubuntu/install/netboot/pxelinux.0";
subnet 192.168.1.0
netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.254;
}


Edit the following directives to match your network:

• REPLACE the subnet with your network subnet
• REPLACE the netmask with your network netmask
• REPLACE the range of IPs with the corresponding IP addresses from your network. An IP address from this range will be randomly assigned to the Client computer.

Restart the DHCP server with the following command:

sudo /etc/init.d/dhcp3-server restart

At this point, your client machine is ready to boot the alternative installation ISO from the server. Power up the Client PC, enter the BIOS, search for the 'Boot from network' options (under the BOOT menu) and put it as the first boot device. Save and exit. If everything worked out well, you should see the Ubuntu installation screen and boot prompt. Install Ubuntu!


Install from hard drive


Use this method for a faster system installation and if you don't have a CD/DVD-ROM drive! For this method, you will need to have a working Ubuntu system on the computer on which you want to install the new Gutsy OS.

First of all, you need to use GParted or PartedMagic to create a new primary partition and format it to ext3. For example, let's say that the partition is /dev/sda3 (for a SATA drive) or /dev/hda3 (for a IDE drive). You will need to copy the ISO's contents over to the new partition. Open a Terminal (Applications -> Accessories -> Terminal) and type:

mkdir /tmp/installcd
sudo mount -o loop /path-to/ubuntu-7.10-desktop-i386.iso /tmp/installcd (for an i386 PC)

or

sudo mount -o loop /path/to/ubuntu-7.10-desktop-amd64.iso /tmp/installcd (for an AMD 64/Intel 64 PC)
sudo mkdir /mnt/installer
sudo mount /dev/sda3 /mnt/installer (for the SATA drive)


or

sudo mount /dev/hda3 /mnt/installer (for the IDE drive)
sudo cp -r /tmp/installcd/* /mnt/installer
cd ~/
sudo umount /tmp/installcd



Next, you'll need to edit your current Grub configuration file to boot the new partition. To do this, open the /boot/grub/menu.lst in a text editor with:

sudo gedit /boot/grub/menu.lst

...and add the following lines at the end of the file:

title Ubuntu Hard Drive Installation
root (hd0,2)
kernel /casper/vmlinuz boot=casper root=/dev/ram ramdisk_size=1048576 rw
initrd /casper/initrd.gz

NOTE: the root line tells Grub which partition contains the installer. If in your case, the partition you created is /dev/hda1, you'll need to edit that line to root (hd0,0). Grub starts counting your partition from 0, therefore the fourth partition will be (hd0,3) and so on. If you have a secondary hard disk, you will have to modify the first number from 0 to 1 (e.g. hd1,0 - for the second hard disk, first partition).
Save the file, close the text editor, reboot the computer and choose 'Ubuntu Hard Drive Installation' from the grub boot menu and install Ubuntu 7.10 Gutsy Gibbon.

Source: Marius Nestor

2 comments:

Maarten Kooiker said...

Thanks!
A lot of things that I did not know yet!
Of course these installation methods are also possible for other Gnu/Linux distributions I guess!
Cheers,
Maarten

vignesh said...

The article was very useful. I tried the network installation.
My dhcp server was working fine but the tftp server gave problem.

Then I edited the file
/etc/default/tftpd-hpa
and changed the line
RUN_DAEMON="no"
to
RUN_DAEMON="yes"
After that I restarted the tftp server. Then everything went fine.

Thanks for a nice article.

Vignesh

Delicious Digg Technorati Reddit Furl BlinkList Yahoo! NewsVine Netscape Google Live Bookmark Netvouz Squidoo StumbleUpon Magnolia.png