I did a hard install of PeppermintOS Devuan Edition, onto a machine with several other Linuxes. It is based on Devuan5 (Daedalus)
I had a hard time convincing the Calamares installer to just write the OS to disk partition (/dev/sda12) and not write anything else, especially not grub.
I got there, using the manual partition section in Calamares, and doing nothing other than mount /dev/sda12 to /.
So after the install copy finished, I rebooted, went to MX, which controls my grub, did update-grub
, rebooted and I get Peppermint in the grub menu and it boots.
Nice. My next culture shock was , its Xfce terminal has no scrollbar. So fix that and it is time for bedā¦
Next day I start up computer, try to boot Peppermint, an it fails!
Message is
Waiting for root filesystem
Warning /dev/sda12 does not exist....
So what is wrong is, I have 2 disks, sda and sdb⦠but the labels yesterday were hd0=sda, hd1=sdb, whereas today it is hd0=sdb, hd1=sda
Normally , we can cope with that, by putting UUID numbers into /etc/fstab.
So take a look at /etc/fstab in Peppermint
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=881e5d2e-e2a4-426c-9351-c283ddb1aa99 / ext4 defaults,noatime 0 1
So it has the correct UUID⦠I checked it carefully.
So what is wrong?
I take a look in MX at /boot/grub/grub.cfg
The Peppermint entry is
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'PeppermintOS Devuan (on /dev/sda12)' --class peppermint --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-simple-881e5d2e-e2a4-426c-9351-c283ddb1aa99' {
insmod part_gpt
insmod ext2
set root='hd0,gpt12'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt12 --hint-efi=hd0,gpt12 --hint-baremetal=ahci0,gpt12 881e5d2e-e2a4-426c-9351-c283ddb1aa99
else
search --no-floppy --fs-uuid --set=root 881e5d2e-e2a4-426c-9351-c283ddb1aa99
fi
linux /vmlinuz root=/dev/sda12
initrd /initrd.img
}
So 2 things wrong there
set root='hd0,gpt12'
should be hd1
and
linux /vmlinuz root=/dev/sda12
should use the UUID
But,
No point editing /boot/grub/grub.cfg⦠that would be temporary
How do I fix it permanantly?
Surely I dont have to go to /etc/grub.d
and write a 40_custom entry?
Why did os-prober get it wrong?
I cant see anywhere in the Peppermint filesystem where /dev/sda12 is stored so where did grub get it from?