Dear Maintainer,
I have a Debian/Hurd installation on an (oversized, it is 160GB but only
138GB can, I understand, be accessed) PATA HDD - i.e. on real hardware.
It is an old Dell Dimension 5150 which is a Pentium D unit so it is a
64-Bit Dual core machine with 1GB of memory - though none of that is
really important I think.
The installation was done on another machine where - due to the vagaries
of the multiple HDD interfaces it was presenting as - as far as the
Debian Hurd Installer (the 2020/07/31 Full DVD version) was concerned
meant it was "/dev/hd2" - though it was the sole hard-drive in the
system. However - and since it was a few days ago and I have been trying
things I cannot be certain so this next bit, between lines of "+"s may
NOT be the case:
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
When the installation was booted I *think* it started Grub and got to
the normal mode menu, but it wouldn't boot. I reviewed the commands that
Grub intended to perform and I spotted that instead of "hd2s1" being
used for the root device it was using "hd-47s1"! However I was able to
get it to boot by changing all those entries back to "hd2s1".
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Note that due to a second bug which I haven't yet reported, there is a
duplicate call to:
prepare_grub_to_access_device "${GRUB_DEVICE}" | grub_add_tab| sed
"s/^/$submenu_indentation/"
at around line 127 of /etc/grub.d/10_hurd which means there is a batch
of extra, duplicated, commands in the Grub menu item that - fortunately
- would seem to be idempotent but also had to be edited to correct the
bogus "hd-47s1" entries.
Moving on, I transferred the HHD to the system I am SSHing into ("hunt")
to write this and expected to need to edit the same entries to be
"hd0s1" as the drive is now the only drive and the BIOS is happy for it
to be the first drive. Once booted I was able to run grub-update and
expected that to make things work upon the next boot. However on
inspecting the Grub menu item in the new system I have found that the
"/dev/hd0" drive is being misnumbered as "hd-49". Note that the bogus
designation has changed by the same amount as the correct one:
"2" -> "-47"
"0" -> "-49"
to my mind that suggests something is doing some maths or C code to
convert between a C char type to a C int type when it shouldn't or
vise-versa. This is confirmed by the following command and its output:
such file or directory.
Running the same commands for the other relevant -t targets shows the
same defect.
Obviously I would have expected the outcome for this command to have
been that the output was "hd0,msdos1" rather than "hd-49.msdos1".
It seems fair to assume that this is specifically a Hurd issue and
only affecting "real" hardware...
Stephen Lyons