Installing Linux without working floppy drive


The first time we put Linux on our Omnibook 600, Linux could not access our floppy drive. We could read the bootdisk from floppy but nothing else. The procedure is no longer necessary for the Omnibook, but it's documented here in case it's useful for another machine.

This file also documents the procedure we used under 1.3.88, which required modifying Slackware's bootdisk to insert a new kernel. Again, the details may be useful under other circumstances.

Installing Linux under 1.2.13

We installed Linux (version 1.2.13), using Walnut Creek's Slackware 3.0 CD-ROM distribution. We loaded the files using our CD-ROM drive, attached to the port replicator. The following procedure can be adapted to other situations, but you may have to fiddle with it.

As usual, begin the installation by backing up DOS/Windows, reformatting your disk, and creating a smaller DOS partition. We will assume that your DOS partition is partition number 1. Remember to back up HP's special files, which include the DOS drivers for the on-board mouse. Then, you need to create two things:

You then load the boot floppy in the floppy drive and boot Linux. When you get the boot prompt, give it the following option line:

The aha152x option forces Linux to recognize the Omnibook's SCSI controller. The root option tells it to use your UMSDOS file system, rather than looking for a file system on a second floppy disk (which it would not be able to read).

When this command finishes, you should have a Linux prompt. Now, follow the standard directions to set up the swap and linux partitions on your hard drive, and load the rest of linux from the Slackware CD-ROM. Most directions recommend rebuilding the kernel at this point. Do so: we were unable to get the LAN card to work until we rebuilt the kernel.

The directions will suggest that you make a new boot floppy, containing your properly configured kernel. Since Linux can't write to the floppy drive, you can't make this floppy in the obvious way. We believe that it can be made by copying the kernel to your DOS partition and using rawrite.exe (found on the Slackware CD). We haven't tested this yet: we have simply been using a copy of our original boot floppy for emergency booting.

Making the UMSDOS file system

We did this in a kludgy way. If anyone would like to supply a better procedure, we'd be happy to include it. In particular, we suspect there might be a clever way to use the live file system on the Slackware CD-ROM. Or, if we properly understood UMSDOS, a way to convert a normal directory into a UMSDOS directory. Our procedure required brief use of another (non-Omnibook) Linux system. It also required that we find the DOS versions of pkzip (pkzip.exe and pkunzip.exe) on the net. (Would gzip and gunzip have worked?)

First, we used Slackware's install procedure to create a UMSDOS filesystem c:\linux on our borrowed Linux system, installing only the a disk set. This file system would be great, except it is too large to fit on one floppy disk.

So we then removed all the files from the UMSDOS file system, leaving only the directory structure. However, we left the files in /dev intact. We then copied all the files (except in /dev) from Slackware's color root disk. We did this because we knew that this root disk fits on one floppy and contains everything required to boot Linux.

Specifically, we copied color.gz onto our Linux system and uncompressed it, creating a little file system. We then moved this file system onto a floppy disk using dd. At this point, the floppy looks like a little minix file system to Linux. We could then copy files from the floppy directly into our UMSDOS file system.

Finally, we rebooted DOS on our borrowed linux system. We compressed our UMSDOS system into a single DOS file (named linux.zip) and wrote it out onto a floppy, using the commands given below. We also wrote pkzip.exe and pkunzip.exe onto a (different) floppy.

   pkzip -rp linux.zip linux\*.*
   copy linux.zip a:linux.zip	

We then moved over to the Omnibook and read the three files (linux.zip, pkzip.exe, and pkunzip.exe) from our floppies onto the DOS partition. We then uncompressed the UMSDOS file system as follows:

   mkdir linux
   cd linux
   copy a:linux.zip linux.zip
   pkunzip -d linux.zip

Installing 1.3.88 with the floppy patch

For this method, you need access to a working linux system on which you can build a new kernel. You need to understand how to build a new kernel. And you need to read the user manual that comes with lilo (/usr/doc/lilo/doc/user.tex) and the linux bootdisk HOWTO. If you don't understand this documentation, find a more experienced linux user to help you. In particular, don't mess with lilo without reading the documentation first. A small mistake could trash the hard disk and force you to reinstall linux from scratch. You also need a port replicator and a linux-compatible CD-ROM drive. (The following can presumably be modified for non-CD-ROM releases.)

First, make a kernel image incorporating the support for DMA-less floppy drives. That is, install the experimental kernel (1.3) and apply whatever patches are required to bring it up to (at least) 1.3.88. Then apply the following patch

Create a new kernel, including support for an Adaptec AIC-6x60/aha152x ISA single SCSI chip controller. Notice that, when you boot this kernel, you will need to specify the option floppy=nodma (e.g. to the lilo prompt or in your lilo configuration file).

Now, make copies of the Slackware color rootdisk and SCSI bootdisk files. Uncompress them using gzip. Then use dd to copy them to floppy diskettes.

Put the bootdisk in your floppy drive and mount it as a minix file system (mount -t minix /dev/fd0 /mnt). Modify the bootdisk as follows:

When you boot the Omnibook with this bootdisk in the floppy drive, lilo will start up and present you with two options: fdd-root and hdd-root. The first is appropriate early in the installation process, when you are using the rootdisk floppy. Later, when you have a file system installed on your hard drive, you can boot with hdd-root. This assumes, by default, that your linux partition is /dev/hda3. You can reset this, or other lilo parameters, by giving them after the option name, e.g. hdd-root root=/dev/hda2

Now, attach the port replicator to your Omnibook, attach the CD-ROM drive to the port replicator, and follow the directions that come with the Slackware CD-ROM release. Obviously, you will not want to use their default methods to create a bootdisk or rebuild your kernel. Instead, install the experimental kernel with the patches specified above and, if you want, follow the above procedure to make a bootdisk tuned to your system.

Contents of our lilo.conf

boot = /dev/fd0
image = /mnt/zImage
	label = fdd-root
	ramdisk = 1440
	root = /dev/fd0H1440
	vga = normal
        append="floppy=nodma aha152x=0x340,10,7,1,1"
image = /mnt/zImage
	label = hdd-root
	ramdisk = 1440
	root = /dev/hda3
	vga = normal
        append="floppy=nodma aha152x=0x340,10,7,1,1"

This page was written by Margaret Fleck and Dan Stevenson. It is maintained by Margaret Fleck.

Last modified