在Oracle VirtualBox 4.3.24上运行Ubuntu 14.04,并且完全无法安装来宾。我花了很长时间在网上寻找解决方案,但没有任何帮助...
如下面的建议,我尝试手动安装并从Web(与VirtualBox匹配的版本)下载ISO。同样的错误:
编辑:
现在,有些文件夹变为“只读”,这会造成很大的麻烦。.即使安装新的Ubuntu 14.04映像也无济于事...因此,重新安装VirtualBox本身...
在Oracle VirtualBox 4.3.24上运行Ubuntu 14.04,并且完全无法安装来宾。我花了很长时间在网上寻找解决方案,但没有任何帮助...
如下面的建议,我尝试手动安装并从Web(与VirtualBox匹配的版本)下载ISO。同样的错误:
编辑:
现在,有些文件夹变为“只读”,这会造成很大的麻烦。.即使安装新的Ubuntu 14.04映像也无济于事...因此,重新安装VirtualBox本身...
Answers:
通过重新安装linux映像,我能够解决安装问题:
sudo apt-get install --reinstall linux-image-$(uname -r)
顺便说一句,这一切都始于升级VirtualBox。双向剪贴板停止工作,因此我尝试重新插入Guest Additions ISO。这引起了上面的东西。现在,Guest Additions已安装回去,但是剪贴板加权不起作用...
TL; DR 可以通过重新启动快速修复。然后,CD-ROM将起作用,并且Guest Additions将可安装:
sudo reboot
使用附加功能更新VirtualBox上的内核的“最佳”顺序是:
apt-get update
apt-get upgrade (or apt-get dist-upgrade)
reboot
(re)install VirtualBox Additions on the new kernel that is now running
apt-get autoremove
(出于安全原因,可能不会自动删除最新的旧内核,以允许您“返回”)。
如果您确实会出现这种问题:
apt-get autoremove
并以某种方式删除正在运行的内核,或手动删除“旧”内核,从而从/lib/modules/kernel.66中删除所有模块而安装VirtualBox ISO可能恰好要求-加载ISO9660支持模块。
现在,无法再自动加载请求的模块,因为正在运行的内核(.66)在/lib/modules/kernel.66中找不到任何内容。该模块存在,但位于/lib/modules/kernel.67中,当前的.66内核对此一无所知(不建议加载不匹配的模块)。
重新安装uname'd内核当然会重新安装正在运行的内核模块,从而使../.66/.../isofs.ko再次可用,而无需重新启动。这是已安装内核的降级版本,更新问题将保留(请参见下文)。
也就是说,当您运行Additions CD时,它将为正在运行的 .66内核而不是已更新的.67内核(仍未运行)安装。
如果您处于这种情况,您当然也可以通过重新启动(正在运行的新.67内核会找到其模块)并可能通过加载属于新内核的模块(isofs
非常稳定)来修复它,除非您已经进行了重要的内核升级仍将兼容(仍然不建议这样做!):
# mount /dev/cdrom /mnt
mount: unknown filesystem type 'iso9660'
以上是您得到的根本错误(“未知文件系统类型”)。
# uname -a
Linux virtual 3.13.0-66-generic ...
因此,我们检查安装了哪个版本的模块。应该是.66:
# ls /lib/modules
3.13.0-67-generic
...但是只有一个目录,它是.67(.66目录可能在那里,但是空的;在这种情况下,du -sh /lib/modules/*
它将告诉各个目录占用了多少空间,从而可以在空目录和完整目录之间进行区分)。
您重新安装.66内核及其模块和标头。现在,您已经拥有两个内核,并且grub
可以加载较新的.67。
可以安装ISO CD-ROM(因为现在存在该模块),并且VBox模块将进行编译(因为已经安装了标题)。
它将为正在运行的.66内核编译模块,并且它们将工作一段时间。
第一次重新启动时,您将发现自己拥有一个.67内核,根本没有添加VirtualBox。
如上所述,您重新启动并发现自己的内核降级了。很快,Ubuntu将尝试对其进行升级,您将回到开始的位置(请参见下面的“降级内核”)。
由于内核66和67之间没有做任何工作且二进制文件基本上未更改,因此我们有可能强制全部加载ISO9660模块,因此我们尝试:
# insmod /lib/modules/3.13.0-67-generic/kernel/fs/isofs/isofs.ko
没有错误。有效。内核.66从内核.67加载的模块。让我们再试一次安装CD-ROM:
# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
这仍然无济于事,因为正在安装的CD是VirtualBox Additions,它需要安装正在运行的内核头文件。如果运行中的内核模块不再存在,则内核头文件也将不存在。
另外,由于已清理.66 modules目录,因此新编译的Virtualbox模块将无处可去。
但是,请说您已解决所有问题:本质上,您已经进行了昂贵(且部分)的内核降级,并且在下一次升级时,添加的内容将与.66内核的其余部分一起丢失,与上述情况完全相同。
如果我们删除了.67内核,并重新安装了带有模块的.66内核,那么一段时间后一切都会变糟了。就像上面的“强制ISO模块”解决方案一样,无需重新启动。
重启不会丢失任何东西,因为没有安装受添加挑战的内核。
但是通过这种方式,内核仍将位于“待升级”列表中,并且同样的问题迟早会出现。
诚然,您现在可以在自己选择的某个更适当的时刻出现它,这可能会非常有价值。
重新引导后,将激活较新的.67内核,并且所有模块和标头都在其中。
因此,后重新启动,客户添置会的工作,并且升级将“走”。
我通过升级软件包并重新启动解决了此问题(在Ubuntu 16.04上):
sudo apt-get update
sudo apt-get upgrade
sudo reboot
尝试手动安装:
键入以下命令:
sudo mount /dev/sr0 /mnt
ls -l /mnt
然后,如果显示了CD的内容,请在Nautilus(也称为文件管理器)中打开/ mnt并安装Guest Additions。
如果这些步骤不起作用,请尝试以下操作: