You want to be able to boot the normal Linux system with the current
kernel(s) from floppy.Your system has already been successfully installed,
but can't or don't like to boot via LILO or loadlin from one of your hard disks.
Actually this method works yet (this means since SuSE Linux 6.3) only if
you're either using a self compiled kernel or using a pure (E)IDE system.
Otherwise please make use of a boot floppy with LILO.
The LILO boot floppy also offers the advantage of starting the Linux kernel with
kernel parameters.
The Linux kernel itself already contains the needed files to be bootable.
So it suffices to simply write the kernel to a floppy disk. Therefore please insert an
empty floppy disk in your floppy drive
fdformat /dev/fd0h1440 # formats the floppy disk
dd if=/boot/vmlinuz of=/dev/fd0 # writes the kernel to the floppy
disk
rdev /dev/fd0 /dev/sdb1 # Instead of /dev/sdb1, please
specify your root-partition
rdev -R /dev/fd0 1 # mount root file system readonly
Even if the boot floppy with LILO looks a little more complicated: We are recommending
the following method to create a boot floppy. In case the fdformat command fails
because of read-write errors, please try another floppy disk. This certainly obtains for the boot
floppy with LILO.
Boot floppy with LILO
From experience with LILO, it's the easiest to tell LILO, that the floppy disk
would be the actual root file system. Therefore some help files have to be written
to this floppy. But the advantage is, that this floppy is totally independent from
your system.
To create a bootable floppy disk, that contains the kernel and the initrd (since SuSE Linux 6.3),
proceed as follows:
Create a minix-file system - with error checking to be safe - on a new, empty floppy disk and,
if successful, mount it e.g. to /mnt:
fdformat /dev/fd0h1440 # low-level formatting
/sbin/mkfs.minix /dev/fd0 1440 # creates minix file system
/bin/mount /dev/fd0 /mnt # mount to /mnt
Create the 3 directories dev, etc and
boot on the floppy disk. In the following procedure relative paths are concerning to
the floppies mountpoint /mnt as the working directory ($PWD).
cd /mnt
mkdir etc dev boot
Copy the kernel file, the "initial ramdisk" (initrd) and the boot loaders to boot
(located on the floppy disk). This assumes that the initrd is adjusted to your system (and includes
eventually needed SCSI drivers!). Please have a look at the SDB article
Booting with the initial ramdisk if you like to learn more about the initrd concept.
cp -a /boot/vmlinuz /boot/initrd /boot/*.b boot/
Create the different device files. The following list of device files
should cover all conventionally root devices (during the LILO installation,
LILO checks the presence of a root device).
Additionally LILO needs /dev/null and /dev/zero.
cp -a /dev/fd* /dev/null /dev/zero /dev/hd[abcd]* /dev/sd[abcd]* dev/
Create the necessary etc/lilo.conf on the floppy disk. For this purpose
you can orientate yourself at the following example:
# LILO configuration file
# Start LILO global Section
# If you want to prevent console users to boot with init=/bin/bash,
# restrict usage of boot params by setting a passwd and using the option
# restricted.
initrd=/boot/initrd
boot=/dev/fd0
#compact # faster, but won't work on all systems.
vga=normal
read-only
prompt
timeout=100
# End LILO global Section
#
image = /boot/vmlinuz
root = /dev/sdb1 # or whatever you're using as root device
label = lx
Adapt the line "root = " to your system. You can also use this option while booting up Linux
and with it using any desired partition as your root-partition. You can try to activate the option
"compact". This speeds up the "loading procedure" a lot, but experiential this doesn't function on
all systems.
Install LILO to the floppy disk with the following command
lilo -r /mnt
The output should be just one line: Added lx*.
Umount the floppy with cd / ; umount /mnt
Test the boot floppy! Therefore reboot your PC and check if your Linux system
will be started correctly from your floppy.