I've actually written a two-stage floppy boot loader a long time ago. Despite what various specifications might say (from Microsoft or other "experts"), the first sector of the diskette must conform to a standard MS-DOS floppy with a BIOS Parameter Block, BPB. The error message you're seeing seems to indicate that your "boot1.bin" does not meet this requirement. The only thing you can really change in the floppy boot sector about 400 or so bytes of code. You cannot customize the BPB values from what MS-DOS or Windows uses for floppies.
Even though there is a value to indicate the number of sectors that the boot code occupies, every BIOS and other software I encountered only expects or tolerates one reserved sector for boot. Two copies of the FAT are required, and then the first sector of the root directory. The method I used for storing the secondary boot loader was to hard allocate some sectors following the root directory, and then mark those sectors as "bad" in the FAT. This accomplished the following goals:
the additional sectors used by the secondary loader were at a fixed location on the floppy and known to the first-stage boot, which had to read/load them.
hid the secondary loader from users.
made the secondary loader undeleteable.
the floppy was usable in DOS and mountable in Unix.
BTW floppies have a boot sector. It is not called a MBR, as there is no partition table.
"request it as a new feature" - The Solaris fdformat utility had an option to install a custom floppy boot program. – sawdust – 2011-08-15T06:54:30.927
The Linux
fdformat
utility has not, and Linux is what the questioner is asking about. The Solarisfdformat
utility was superseded byrmformat
, which had no such option, since the functionality for high-level formatting was transferred tomkfs_pcfs
.mkfs_pcfs
has thereserve=
option, too. – JdeBP – 2011-08-15T10:41:11.547