On August 17th 2004 my firstborn son Gerard passed away suddenly at the age of 17. This text will remain where ever I have a website in rememberance of him.
Bootflop HOWTO, a stroll down memory lane Jun 26, 2025

a stroll down memory lane.

I especially love the email address I had. ron@draconia.hacktic.nl. We had to use UUCP to retrieve mail

	 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 thefollowing:

	# 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
Mirkokit routerboard Jul 13, 2022 upgrading the ...
Dear Scammers Mar 21, 2022

Just some tips to make your scam attempts a tiny bit more believable. I write this after hearing your robocall this morning.

  1. When calling a dutch number maybe have the text from the robocall in dutch
  2. it’s not ministery of justice but department of justice a ministery is usually a religious institute.
  3. it really is impossible to detect possibly illegal activities on my BSN account. There is no BSN account, BSN is like the american social security number.
  4. I would have loved to see the sheriff to arrive with an arrest warrant. That would have made my day. Especially as the Netherlands (please not Holland) does not have sheriffs.

Please address the above points and try again :)

...
Compose for Desktop experiments May 23, 2021

This is the first of a number of posts, Don’t ask me how many or how often I will post. They will all be in the categories zigbee, dev and compose. I will also enable a way for people to comment on this.

...
Git submodules May 08, 2021

Last week I was talking to a colleague about how a certain problem that could be solved using git submodule bascically mounting a git repository into another git repository. As an example I showed how this blog uses it for the theme. The colleague asked me if I could blog about this. So here goes.

...
Using a Keychron K2 on linux Mar 13, 2021 Using a Keychron K2 on linux ...
Using a K480 on linux Dec 04, 2020 Using a K480 on linux ...
Home automation setup Oct 20, 2020

Several people have been asking me lately to describe my home automation. This is a start of it. I dont have the idea I am doing something special, but it if helps them. It’s also a nice way of having it documented I guess.

...
Interesting Reads Oct 18, 2020 list of interesting links ...
Too much ideas, too little time Oct 16, 2020 I just have too many interests ...