booting at last!
I solved it! It boots!
And I think the solution should go into the installation notes
somewhere. Please consider adding something like this. (The crucial
and new bit is the start of paragraph 2.)
The installation system gives you the option of partitioning a disc. If
you select this option, it runs the command fdisk for you. The fdisk
program can understand several different kinds of partition table. (The
kernel can understand even more kinds; see
linux/drivers/block/genhd.c.) The Sun's PROM, however, only understands
Sun partition tables, so, if you want to be able to boot off your disc,
make sure that fdisk mentions "Sun disk label" when you print the
partition table using the command "p". If you start with a blank disc,
fdisk will create a Sun partition table by default. However, if your
disc was previously partitioned by a different system you will have to
be careful at this point, or you will end up with an unbootable disc.
In addition to having a Sun partition table, to be able to boot from
the disc, the first partition, /dev/sdX1, must start at cylinder 0.
This means that /dev/sdX1 contains the partition table and the boot
block, as these are the first two sectors of the disc. Therefore you
must be careful what you use /dev/sdX1 for. In particular, you must
not use a partition starting at cylinder 0 for Linux swap, as that
would overwrite the partition table and the boot block. You may,
however, use such a partition for a UFS or EXT2 file system, as these
file systems leave the first 1024 bytes undisturbed.
It is also advised that the third partition, /dev/sdX3, should be of
type "Whole disk" (5), though this may not be an absolute requirement
Since I don't yet have a network connection, nor enough space on the
other disc for putting a tar file of my complete system, I ended up
using a rather strange partition table, with a one-cylinder unused
partition covering cylinder 0, just to keep the stupid PROM happy:
Disk /dev/sda (Sun disk label): 17 heads, 60 sectors, 5400 rpm
1018 cylinders, 2 alternate cylinders, 1020 physical cylinders
0 extra sects/cyl, interleave 1:1
Linux custom cyl 1018 alt 2 hd 17 sec 60
Units = cylinders of 1020 * 512 bytes
Device Flag Start End Blocks Id System
/dev/sda1 0 1 510 83 Linux native
/dev/sda2 129 1018 453390 83 Linux native
/dev/sda3 0 1018 519180 5 Whole disk
/dev/sda4 1 129 65280 82 Linux swap