Or not so trivial: use 64-bit linear sector numbers in
a fixed table with room for 16+ partitions.
> The change in linux/drivers/block/genhd.c seems trivial to me. Now here
> is another, less trivial idea: to work around the limitations of the
> standard PC partitioning system, maybe it should be possible to add
> (or remove) partitions dynamically at run time? All that is necessary
> at boot time is the root partition, the rest can be added later by some
> special program reading some partition config file and using some new
> ioctl calls on /dev/[hs]d?. That might also be useful for removable
> disks like SyQuest (but I don't have one: how are they handled now?).
This is a very good idea, /dev/vbd?, the virtual block device.
Any contiguous group of sectors can become a block device.
This lets an unfragmented file (say, the Windows swap file)
become a swap _partition_ with full speed advantages or an
ext2 partition inside a floppy disk image. Access to the virtual
block device does not go through the filesystem it resides on.