Итак, для начала установим все, что надо для патчинга ядра (здесь и далее все делается из root-консоли, это важно):
yum install kernel-headers kernel-devel
Теперь вставим диск с дополнениями ("Devices" -> "Insert Guest Additions CD image") и идем сюда:
cd /media/VBOXADDITIONS_5.1.22_115126
Пробуем теперь запустить установку гостевых дополнений:
./VBoxLinuxAdditions.run
И мы получаем ошибку. Смотрим, что именно происходит не так:
cat /var/log/vboxadd-install.log
И узнаем, что скрипт не может найти путь к ядру. Ок, давайте сами найдем его:
find / -type d -name '*kernel*'
У нас на выходе будет что-то типа этого:
/selinux/class/kernel_service
/proc/sys/kernel
/etc/kernel
/lib/modules/2.6.32-431.el6.x86_64/kernel
/lib/modules/2.6.32-431.el6.x86_64/kernel/kernel
/lib/modules/2.6.32-431.el6.x86_64/kernel/arch/x86/kernel
/sys/kernel
/sys/module/kernel
/usr/share/selinux/devel/include/kernel
/usr/share/doc/dracut-kernel-004
/usr/share/doc/kernel-firmware-2.6.32
/usr/share/dracut/modules.d/90kernel-modules
/usr/src/kernels
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/kernel
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/arch/parisc/kernel
...
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/arch/microblaze/kernel
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/arch/score/kernel
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/arch/m68k/kernel
...
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/include/config/have/kernel
/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/include/config/kernel
...
Теперь укажем скрипту, где лежит ядро:
export KERN_DIR=/usr/src/kernels/2.6.32-696.1.1.el6.x86_64/
Запускаем скрипт еще раз и опять получаем fail. Смотрим в лог и видим, что теперь скрипт не может найти perl. Хорошо, установим его:
yum install perl
Пробуем еще раз и опять неудача. В этот раз скрипт не смог найти GCC. Установим его тоже:
yum install gcc
Запускам скрипт еще раз и наконец-то все заработало. Перезагружаем виртуальную машину.
Отдельное спасибо Shay Anderson за это руководство.