1

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.

Gosh Darn
  • 11
  • 2
  • 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 https://wiki.archlinux.org/index.php/chroot – Dani_l Dec 23 '18 at 21:08

2 Answers2

1

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.

GAD3R
  • 63,407
  • 31
  • 131
  • 192
liuqx
  • 52
  • 2
0

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.

beginner6789
  • 253
  • 1
  • 5