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.
Asked
Active
Viewed 1,883 times
1
Gosh Darn
- 11
- 2
-
1Why 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
-
1Generally 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 Answers
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.
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:
Lessons learned: The vkpurge command will keep an older kernel by default permitting recovery from a failed kernel installation.
beginner6789
- 253
- 1
- 5