A few weeks ago, I accidentally updated my kernel, and out of nowhere I got these strange pixelated lines all over my screen. So, I decided to try and use the linux-lts kernel. But, when I tried to chroot into my root directory run grub-mkconfig /dev/sda I got /usr/bin/grub-probe: error: cannot find a device for / (is /dev mounted?) I am running 32 bit Void.

  • 1
    Why are you using chroot? Are you trying to do this from a recovery disk/live CD, or the system itself? – JigglyNaga Dec 22 '18 at 13:38
  • 1
    Generally speaking, before chrooting into a dir, mount bind /dev and /sys and mount -t proc the /proc. See the archlinux wiki wiki.archlinux.org/index.php/chroot – Dani_l Dec 23 '18 at 21:08

Before you chroot into your root partition ("chroot /mnt/sysimage/" for example), you need to mount some system directories first.

mount --bind /proc /mnt/sysimage/proc
mount --bind /dev /mnt/sysimage/dev
mount --bind /sys /mnt/sysimage/sys
mount --bind /run /mnt/sysimage/run

Then chroot /mnt/sysimage, regenerate grub.cfg and initramfs.


The old kernels can be found in the grub menu after the new Void entry. If old kernels are removed with xbps-remove before testing the new kernel then the chroot can be used to boot the installation from a live void usb drive or other rescue disk. The instructions for a chroot can be found in the Void wiki:

chroot install

Lessons learned: The vkpurge command will keep an older kernel by default permitting recovery from a failed kernel installation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.