Today I realized that I couldn’t execute shell in a centos6 chroot environment while using Debian 11 and kernel 5.10:
$ sudo chroot centos /bin/sh Segmentation fault
While some commands like
ps working properly, most of the others including shells failed with segmentation fault.
After a quick search, I found a solution for that. To improve overall system call performance, there are some mechanisms named vsyscalls and vDSO.
vsyscalls method not used much anymore and disabled in Debian. Centos6 depends on this vsyscalls mechanism. To be able to solve this problem, you should append
vsyscall=emulate kernel command line parameter.
For Debian based systems, edit
/etc/default/grub file and append
vsyscall=emulate to GRUB_CMDLINE_LINUX_DEFAULT variable, run
sudo update-grub and reboot the system.
After reboot, you should successfully run the commands inside centos6 chroot.