The top answer to the question you linked to explains how to get into the GRUB menu if pressing shift does not work. You just edit the file /etc/default/grub
and comment out GRUB_HIDDEN_TIMEOUT=[some number]
. Then you run sudo update-grub
.
Since you can't boot at all, you can't do that so easily.
However, you can do it from a live system, so go ahead and boot from a live system as you did before.
Now you can set up a chroot
. If you're not sure of the device label of your installation's root partition, try running sudo fdisk -l
to identify it. You should see something in the output like
/dev/sda2 <numbers indicating size> Linux filesystem
Try mounting that partition:
sudo mount /dev/sdXY /mnt
where sdXY
is the correct label. Then have a look to see if the mounted partition has the directories you expect to see in your root partition:
ls /mnt
If you see things like this (not necessarily exactly like this, but at least most of them)
bin dev mnt root sys var
boot etc lost+found opt run srv tmp
home lib media proc sbin usr
then you got the right partition.
If you have a separate boot partition, you will need to mount it. If you are not sure, check the file /mnt/etc/fstab
to see if it has a partition mounted on /boot
. Ignore any mention of a partition mounted on /boot/efi
.
If you have a separate boot partition, mount it:
sudo mount /dev/sdXY /mnt/boot
where sdXY
is the correct label of the boot partition.
We might need to bind some additional resources (I am not sure this is necessary in this case):
for d in dev sys run proc; do sudo mount --bind /$d /mnt/$d; done
OK, now enter the chroot
sudo chroot /mnt
Now we can act as if we are in our installed system. First let's edit the configuration file:
sudoedit /etc/default/grub
(or call your favourite text editor). Find the line
GRUB_HIDDEN_TIMEOUT=0
(it may have a different number, but that is not important). Comment out the line by placing #
at the start of it, so it says
#GRUB_HIDDEN_TIMEOUT=0
If you do not have the above line, look for
GRUB_TIMEOUT_STYLE=hidden
and comment that out instead to
#GRUB_TIMEOUT_STYLE=hidden
check that the line
GRUB_TIMEOUT=[some number]
ends in a number greater than 0 (the default may be 10). Save the file and exit.
Run this command to write the configuration to /boot/grub/grub.cfg
sudo update-grub
Now you can reboot into your installation, and the GRUB menu will be forced to come up every time.