无法在 Kali 2.0 上安装 Guest Additions

Cannot install Guest Additions on Kali 2.0

我正在安装新的 Kali (2.0),但我无法成功安装 guest additions。

我向您解释我完成的所有步骤:

首先我确保我有正确的存储库(我认为这些是正确的):

deb http://http.kali.org/kali sana main non-free contrib
deb http://security.kali.org/kali-security sana/updates main contrib non-free
deb-src http://http.kali.org/kali sana main non-free contrib
deb-src http://security.kali.org/kali-security sana/updates main contrib non-free

我已经更新升级了

然后我安装了linux-headers(也许错误就在这里,但我不这么认为)

apt-get install linux-headers-$(uname -r)
apt-get install dkms linux-source linux-headers-$(uname -r)

然后我挂载了CD,给它755权限并执行了它。这是我得到的:

Building the main Guest Additions module ...done.
Building the shared folder support module ...fail!
(Look at /var/log/vboxadd-install.log to find out what went wrong)
Doing non-kernel setup of the Guest Additions ...done.
Installing the Window System drivers
Warning: unknown version of the X Window System installed.  Not installing
X Window System drivers.
 ...done.
Installing graphics libraries and desktop services components ...done.

我安装了以下软件:

apt-get install virtualbox-guest-x11
apt-get install open-vm-tools

但我仍然得到相同的结果。

更多信息,这是我的内核:

root@kali:~# uname -r
4.0.0-kali1-686-pae

我好像安装了模块,但它不起作用:

root@kali:~# lsmod | grep vbox
vboxguest             180224  5

我的virtualbox版本是4.3.20 任何的想法?非常感谢。

/var/log/vboxadd-install.log

In file included from /tmp/vbox.0/dirops.c:19:0:
/tmp/vbox.0/dirops.c: In function ‘sf_getdent’:
/tmp/vbox.0/dirops.c:129:29: error: ‘struct file’ has no member named ‘f_dentry’
     sf_g = GET_GLOB_INFO(dir->f_dentry->d_inode->i_sb);
                             ^
/tmp/vbox.0/vfsmod.h:144:60: note: in definition of macro ‘GET_GLOB_INFO’
 # define GET_GLOB_INFO(sb)       ((struct sf_glob_info *) (sb)->s_fs_info)
                                                            ^
/tmp/vbox.0/dirops.c:135:16: error: ‘struct file’ has no member named ‘f_dentry’
     inode = dir->f_dentry->d_inode;
                ^
/usr/src/linux-headers-4.0.0-kali1-common/scripts/Makefile.build:263: recipe for target '/tmp/vbox.0/dirops.o' failed
make[4]: *** [/tmp/vbox.0/dirops.o] Error 1
/usr/src/linux-headers-4.0.0-kali1-common/Makefile:1407: recipe for target '_module_/tmp/vbox.0' failed
make[3]: *** [_module_/tmp/vbox.0] Error 2
Makefile:145: recipe for target 'sub-make' failed
make[2]: *** [sub-make] Error 2
Makefile:8: recipe for target 'all' failed
make[1]: *** [all] Error 2
/tmp/vbox.0/Makefile.include.footer:79: recipe for target 'vboxsf' failed
make: *** [vboxsf] Error 2
Creating user for the Guest Additions.
Creating udev rule for the Guest Additions kernel module.

在搜索引擎中输入 "no member named ‘f_dentry’" 表明这是内核 3.19 的 known issue,引入了对 struct file 的重大更改,这使得(较旧的)VirtualBox 4.3.20 代码失败编译。

关于 Linux kernel maintainers' policy on such breaking changes 的问题,我不敢苟同,恐怕你只需要弄清楚是降级内核还是升级你的 VirtualBox 是 "correct" 解决你的问题的方法。