Well, realizing that I would need to make a local mirror of Debian (to be edited by debian-cd, what a strange idea!) to build
my own iso... I came to think how I expect Hurd (Debian Hurd I suppose) to boot. How would I do it?
The way most people expect to try an OS today, is by writing it (the iso file...)on an USB key, then boot it.
But if you try that with current Hurd, you will realize that the installer will not find the files...
Because Debian Hurd have no support for USB yet. So it cannot read the files.
That's a bit weird for people, because it did read the files from the USB key up to the installer searching packages...
Why would it not find them? Mostly because the boot loader (Grub) have loaded the minimal files to boot in memory,
given control to Debian Hurd, which then try to access the DVD (or CD), be it a real one or a virtual one...
but not the USB key, because for Debian Hurd... these things does not exist.
Grub have been mostly made for booting microkernels like Hurd.
And it supports a lot of filesystems, like EXT4... which Debian Hurd does not support.
So the idea that I would (was in fact) expecting Debian Hurd to boot is a bit like this:
Raher than use an iso (el-torito: meaning bootable) image made for CD and DVD, just make an hard disk image,
with an MBR partition (because we want to have it boot on a bit old computers... up to UEFI computers with compatibiliry
for MBR (some newer won't boot because they expect UEFI images... but we will cope with that when complaints will arrive).
On it, have an EXT4 partition with: the mach kernel, the server files, the installer EXT2 filesystem in installer.ext2 file, etc.
HURD is multiboot compliant, and GRUB is a multiboot boot loader, that is it can read the different modules (Hurd servers)
in memory, then let one of the module do the start.
I think we can have a not so small installer.ext2 file that would be loaded in memory by Grub, working around the lack of USB drivers.
At first I was thinking to put an other read-write partition for the main system on the rest of the USB key... but we cannot because we
don't have USB drivers yet.
So clearly, for now, this system must ... basically be the installer.
Building the installer ext2 filesystem seems complex... I don't understand why.
What I would expect is to create a new file for the filesystem, mount it, tell the package manager to install packages
on the newly mounted filesystem, have a file with the list of packages to be installed, and tell the package manager
to install each file in it on the mounted filesystem, then unmount it. Lastly tell the package manager to reuse the old
Can it be done like this?
Also, currently, Debian Hurd boot an ext2 filesystem, that breaks everytime the system is not cleanly shut down. I guess the installler could do the trick of having a small read-only ext2 filesystem when booting the hard disk, that would test if the bigger read-write partition was correctly unmounted, fsck -y it automatically if not,
then swith to it. Frankly... that is not that much different than now, but would be more automatic, and not return to Grub after fsck step.