After upgrading do the Kernel 4.18, a chroot
I used somewhat frequently stopped working. Everytime I tried to start it I just got that simple, but horrifying message:
~# chroot /path/to/jail /bin/bash -i -l Segmentation Fault
As the project I was working on did not depended on that chroot
I’ve set this aside until now.
It turns out that LEGACY_VSYSCALL emulation was disabled by the Debian new Kernels…
~# diff /boot/config-4.9.0-8-amd64 /boot/config-4.18.0-0.bpo.1-amd64 | grep VSYSCALL CONFIG_X86_VSYSCALL_EMULATION=y -# CONFIG_LEGACY_VSYSCALL_NATIVE is not set -CONFIG_LEGACY_VSYSCALL_EMULATE=y -# CONFIG_LEGACY_VSYSCALL_NONE is not set +# CONFIG_LEGACY_VSYSCALL_EMULATE is not set +CONFIG_LEGACY_VSYSCALL_NONE=y
Luckily this can be changed in the kernel command line, so adding vsyscall=emulate
in the Grub command line configuration made it work.
So to solve the problem I njsut had to change the file /etc/default/grub
so it contained a line such as:
... GRUB_CMDLINE_LINUX_DEFAULT="quiet vsyscall=emulate" ...
Call update-grub
and reboot!
Why?
Looks like this changes are related to the ASLR (Address Space Layout Randomization) security feature and enabling this emulation can lead to security vulnerabilities.
Sources
* This was the post I found that helped me solve this problem: https://github.com/moby/moby/issues/28705