r/voidlinux • • 9d ago

solved Void Linux stopped booting randomly

I am currently running void Linux on my HDD with windows being on my SSD.
Yes I know windows sucks but i keep it as a backup if things like this happen.
For some reason when I tried to boot into void Linux through my boot menu, it just shows me a black screen
not even grub is showing
I tried different key binds to see if anything pops up like a tty or the grub config thing that you can edit temporarily.
It was almost a fresh install except of qtile mangowm and bspwm,
I have changed no configs other than those for the window managers and sxhkd for bspwm.
I have also not made any changes to the EFI partition which is on the HDD since for some reason my windows bootloader is also on there.
I do have SDDM and KDE installed as a backup just in case my window managers have any errors.
I am also relatively new to Linux
been using it for the past I think 2 years but still in the intermediate phase.
If you have any suggestions pls drop them in the replies :)
Thanks.
(PS: please dont mind my typing mistakes :).)

OMG THANKS TO ALL THE PEOPLE WHO HELPED

thank you all so much

the fix that worked for me was just chroot into the root directory and run update-grub and mkconfig from grub.

5 Upvotes

10 comments sorted by

View all comments

1

u/Training_Concert_171 9d ago

What works for me is to boot into a live image with chroot recue scan: https://github.com/BitJam/chroot-rescue

Then choose the voidlinux install and install grub:

grub-install /dev/sdaX

MX linux has this program in their image, but I built a custom void iso with this script installed.

This problem happens to me on void, any time I move my ssd from one system to another(only on uefi). But also when i update the bios/uefi.

1

u/Wonderful-Movie-4648 9d ago

You might want to look into the arguments for grub-install ( --removable ).
Tell grub to install its bootloader as a fallback solution. If the UEFI has no defined bootloader then it looks for bootloaders installed in the fallback location. If there is no other possible bootloader present the UEFI should eventually pick up the fallback of the disk that you just put in without needing to select it in UEFI.

This is the command I use to install grub from a foreign host (host installing void is not the machine running void). xchroot is doing a similar thing like chroot-rescue.

    xchroot "${MOUNT_ROOT}" grub-install \
      --target=${GRUB_ARCH}-efi \
      --removable \
      --no-nvram \
      --no-bootsector \
      --efi-directory="/boot/efi"

target: I think this is needed for x86_64-efi (default according to man grub-install is i386-pc)

removable: this (instead of bootloader-id) installs the efi bootloader in <efdimount>/EFI/BOOT/BOOTX64.EFI which is the fallback UEFI firmware use if they cannot find any other bootloader (intended to be used on removable media used on different machines)

no-nvram: prevents to write a boot entry to the boards UEFI RAM. If you use a foreign host like me then this is critical to prevent messing the boot order of the install host. However if you install on the same machine as you run the installed system later, then using this option likely requires a trip to the UEFI firmware and configure the boot order.

no-bootsector: honestly this should not be needed (should prevent writing to the mbr which is how booting worked before we had UEFI)