Files
oldlinux-files/docs/bootable floppies.txt
2024-02-19 00:23:35 -05:00

218 lines
6.6 KiB
Plaintext

From: Ron Smits (ron@draconia.hacktic.nl)
Subject: Re: Creating root disk
Newsgroups: comp.os.linux.admin
View this article only
Date: 1994-03-23 00:35:41 PST
Laurent Chavey (chavey@ori.cis.udel.edu) wrote:
: How does one create a root floppy from linux.
: thank you.
--
Included is a BOOTFLOP-HOWTO that I wrote a few months ago
Ron Smits
ron@draconia.hacktic.nl
Ron.Smits@Netherlands.NCR.COM
/*-( My opinions are my opinions, My boss's opinions are his opinions )-*/
/*-( They might not be the same -*/
The Making of a bootable floppy
February 1, 1994
Ron Smits
(ron@draconia.hacktic.nl)
Every now and then the question arises on the net on how to make a
bootable disk. There are several reasons for people to make a bootable
disk. They want to have an emergency disk, they want to roll their on
distribution set or they just want to know how it is done.
This document will be an attempt to describe all the necessary steps
that will lead to a bootable floppy. At the end of the document you
will know how to make bootable floppy that will load itself into a
ramdisk and how to make one that's just bootable. It's basically the
same.
Any comments on how to improve this document, please let me know on
the above mail address. All comments and suggestions are welcome.
----------------------------------------------------------------------
Right let's get on with it. I will describe the way I usually follow
when making a bootable disk. (I do this so every now and then to keep
kernels uptotdate and to pass among my friends and collegues to let
them experience the 'Linux' feel).
1. The kernel
Create a kernel with root device set to /dev/fd0. You can accomplish
this in two ways:
1. Edit Makefile in /usr/src/linux and set the variable `ROOT_DEV' to
/dev/fd0 or keep it empty. If you keep it empty, the default of
FLOPPY will be used by build. Personnaly I like to fill it in,
keeps you from guessing and remembering what the default was.
2. take an exsisting kernel and patch it with `rdev' like this
# rdev -r zImage /dev/fd0
this will patch the kernel named zImage to use the floppy as
rootdevice.
----
2. the files
Create a subdirectory somewhere on your system as root. Call it for
example /tmp/bootflop. In this directory create the following
directories:
bin
etc
etc/lilo
lib
dev
You must populate these directories with some esential files in order
to have a working system:
bin:
cp, df, fsck, fsck.ext2, fsck.minix, ls, rm, sh, vi, mount
All these commands, except vi, can --normally-- be found in /bin. vi
is usually in /usr/bin.
etc:
zImage, fstab
Fstab is needed for df to work properly, plus you can populate it to
have your harddisks mounted on several mnt mountpoints. zImage is the
kernel you made in step 1.
etc/lilo:
any_d.b, boot.b, chain.b, floppy, disktab, lilo, map, mkck,
os2_d.b.
These files are needed to make the floppy bootable.(We'll come back to
one of them later). The file floppy is the lilo configuration file see
point 3.
lib:
libc.so.4
This is the shared library. The other commands need it! Forget it and
be amazed when you start from the disk (come on try it :-))
----
3. Lilo configuration
I always use Lilo to make floppies (and my harddisk) bootable. Here
is a copy of the config file I use for floppies, it's named floppy:
#
# lilo configuration for floppy boot
install = /mnt/etc/lilo/boot.b
map = /mnt/etc/lilo/map
backup = /mnt/etc/lilo/junk
compact
vga = normal
root = /dev/fd0
boot = /dev/fd0
image = /mnt/etc/zImage
label = zLinux
As you can see, I presume that the floppy is mounted as /mnt when we
are making it. it is _*VERY*_ important that the keywords `install'
and `map' point to files on the floppy, so in the /mnt/etc/lilo
directory. Otherwise the machine will not boot. The backup may point
to something else.
----
4. The floppy
Be smart, use a new one!
format it:
# fdformat /dev/fd0H1440
Make a filesystem on it:
# mkfs -t minix /dev/fd0 1440
mount it:
# mount -t minix /dev/fd0 /mnt
The reason I use a minix filesystem is twofold, first of all, the
minix filesystem has less overhead than the more advanced filesystems
like extfs and ext2fs. And secondly, the kernel demands a minix
filesystem, if you want to copy it to a ramdisk
Now copy the tree structure that we made to it:
# cd /tmp/bootflop
# find . -print | cpio -pvdum /mnt
After having populated these directories, go to /mnt/dev and make the
device nodes:
# cd /mnt/dev
# /dev/MAKEDEV generic
(Note: I know MAKEDEV is somewhere in a package, but I haven't the
faintest idea where. If you need it and can't find it, drop me a line,
I'll mail it to you)
----
5. Making it bootable (finally)
We now have a filesytem with the bare minimum on it to make it run as
a standalone system. with the tools we placed on it, we can even do
some repairing, so the last thing to do is to make it bootable. If you
made a lilo configuration file as described in point 3, you can do the
following:
# cd /mnt/etc/lilo
# ./lilo -v -C config
You should expect the following as output from lilo:
LILO version 0.10
Written 1992,1993 by Werner Almesberger
Reading boot sector from /dev/fd0
Merging with /etc/lilo/boot.b
Boot image: /mnt/etc/zImage
Added zLinux
/etc/lilo/junk exists - no backup copy made.
Writing boot sector.
That's it! you've made a bootable floppy, unmount it and try it out!
----
6. bootable floppy with a ramdisk.
The last thing I want to explain is how to create a ramdisk. The
purpose of having a ramdisk is to have your floppy drive free to be
able to mount another floppy with even more tools and rescue material
on it. (I personally never do it, but have a bootflop with ramdisk any
because it's faster then the floppydrive).
Actually it's extremely easy and can be done with a one line
modification. The kernel provides all the hooks needed. Add the
following line to /mnt/etc/lilo/floppy
ramdisk = 1440
perform the actions in point 5 again and presto, You have a bootable
floppy that copies itself into a ramdisk, leaving your floppydrive
free for other more important stuff.
----
7. the End?
The steps described above have been extensively tested by over a
longer periode of time. It has proven it's worth! And it made me
paranoide, I always make sure that I have at least 2 of them. Murphy
lurks in the corner!.
This HOWTO is far from perfect, so all remarks and suggestions are
welcome. If the interest is ther. I will keep maintaining it.
february 4, 1994
Ron Smits
ron@draconia.hacktic.nl