For U & Me | Let’s Try
Stop Wasting CDs
Install Linux Straight from an ISO You download the brand new Debian 5 (when it’s released) after waiting for so many months, and discover you don’t have a single blank DVD to burn the ISO image! Why worry, when there’s a simple way out!
G
NU/Linux comes in many different flavours, apart from the fact that each individual distro has a new release almost every six months, if not less. I have a habit of trying out every new version the moment it comes out, and I’m sure many of X U you do too. LIN Now, let’s assume you have downloaded a new version of a distro and are in the mood to try it out right away. It’s past midnight and you realise that you’ve run out of blank CDs/DVDs. So you will have to wait till the morning when the shops open, to be able to burn the distro image in order to install it. I’m sure a lot of us often face this problem. In this article I’ll share a simple trick by which you can install the new distro without burning it to a CD/DVD. The only requirement 24 | March 2009 | LINUX For You | www.openITis.com
is that you should have a pre-installed GNU/Linux system—which you already have, otherwise where did you download the ISO image from? All Linux installers use two files to boot a computer: a kernel and an initial root filesystem -- also known as the RAM disk or initrd image. This initrd image contains a set of executables and drivers that are needed to mount the real root filesystem. When the real root filesystem mounts, the initrd is unmounted and its memory is freed. These two files are named differently in different distros—refer to Table 1 for their names. The first thing you need to do is place the ISO image(s) inside a directory. Some installers are not able to read the ISO images if they are placed inside a directory. So, just to be on the safe side, place them in the root of the file system. The partition on the hard disk holding the ISO files must be formatted with the ext2, ext3 or vfat files system. In our example, let’s go ahead and do it with an old Fedora 9 ISO image. Follow these steps to begin with: # mkdir /fedora
Let’s Try | # cp /home/sandeep/Fedora-9-i386-DVD.iso /fedora/fedora9.iso
Now extract the kernel and initrd files from the ISO image and place them in the same directory in which you placed the ISO. You can use File Roller, the archive manager for GNOME, to extract the files. Just right click on the ISO and select Open with File Roller. It displays the contents of the ISO image. Then navigate to the isolinux directory—in Fedora 9 these two files are placed inside the isolinux directory; it’s often different for other distros, so please refer to Table 1 for the paths. Select the kernel and initrd files, and extract them to the location where your ISO image exists. The second method is to mount the ISO image and extract the files. Run the following commands to do this:
For U & Me
Names of kernel and RAM disk images in some popular distros Linux OS Kernel path Ram disk path Fedora /isolinux/vmlinuz openSUSE /boot/i386/loader/ linux Mandriva /i586/isolinux/alt0/ vmlinuz Ubuntu /casper/vmlinuz Debian /install.386/vmlinuz RHEL5/ /isolinux/vmlinuz CentOS5
/isolinux/initrd.img /boot/i386/loader/ initrd /i586/isolinux/alt0/all. rdz /casper/initrd.gz /install.386/initrd.gz /isolinux/initrd.img Table 1
# mount -o loop /fedora/fedora9.iso /media/iso # cd /media/iso/isolinux # cp vmlinuz initrd.img /fedora/
I have mounted the ISO image without providing the -t iso9660 option (to specify the type of media as an ISO filesystem). It worked for me. If the above mount command doesn’t work, do add this option along with the rest of the mount command above. Note: Fedora 10 has introduced a change in the Anaconda installer. So, in addition to the vmlinuz and initrd.gz files, you will also need to copy the images/install.img file, create a directory called /fedora/ images, and place the install.img file there. Now, it’s time to edit the /boot/grub/menu.lst file on the system I’m currently using—Ubuntu 8.10. Note that this is the location of the Grub menu in almost all distros, except for Fedora/Red Hat, where it’s called /boot/grub/grub.conf. Append the following entry there: title Install Linux root (hdX,Y) kernel /distro/Linux_kernel initrd /distro/Ram_disk
In this case… 'title' is the name you want to display in your GRUB menu 'root' is the hard disk partition that contains the ISO image 'kernel' is the Linux kernel 'initrd' is the initial RAM disk image Likewise, the menu.lst entry for the ISO file looks like what’s shown below: title Install Fedora 9 root (hd4,0) kernel /fedora/vmlinuz initrd /fedora/initrd.img
Figure 1: The Install Fedora 9 Grub menu entry
Now you are ready to install your new Linux distro directly from the hard disk without the need for a CD/DVD drive. Reboot your system and select the ‘Install Fedora 9’ entry from your GRUB menu. Figure 1 shows Figure 2: Select the hard drive for ‘Installation what the GRUB Method’ menu looks like after rebooting my system. Obviously, I selected the ‘Install Fedora 9’ entry and it has started booting my system with the help of vmlinuz and initrd.img files. The set-up prompts me to choose a language and keyboard layout. Then it prompts me to select the ‘Installation Method’ as shown in Figure 2. In this screen you need to select the ‘Hard drive’ option and proceed to the next screen. Here, you have to select the appropriate partition and the directory where the installation image exists. In my system, the installation image exists in the /fedora directory of /dev/sda5 partition. This is shown in Figure 3.
…continued on page 27
www.openITis.com | LINUX For You | March 2009 | 25