我尝试在将 Arch ISO 作为 VirtualBox 来宾操作系统运行时使用共享文件夹功能。原因是在共享文件夹中我有用于进行持久设置的脚本。
Arch ISO 引导程序之后,我运行:
pacman -Syu virtualbox-guest-utils
一切看起来都很顺利,但是当我加载 VirtualBox 模块时:
modprobe -a vboxguest vboxsf vboxvideo #Following guide here: vboxsf only might do
它给出了一个错误。我知道我可以通过创建依赖文件来修复它:
depmod 3.16.1-1-ARCH
版本是 from uname -r
,我再次收到错误,因为没有目录:
/lib/modules/3.16.1-1-ARCH
前一个pacman -Syu ...
已经更新了内核,因此我现在有了一个3.16.2-1-ARCH
目录。实际上:
depmod 3.16.2-1-ARCH
有效,但 modprobe
一直不工作。
我认为这是由于内核uname -r
与更新后的内核不匹配造成的。建议重新启动,但就我而言,由于我是从 ISO 运行,因此我会丢失所有内容。
我重新启动并尝试使用最后一个可用的 Arch ISO 安装来宾添加项而不进行更新:
pacman -Sy virtualbox-guest-utils # now no -u
但我知道这是一个不好的做法!无论如何我跑:
depmod 3.16.1-1-ARCH # non-updated kernel!
modprobe -a vboxguest vboxsf vboxvideo
mount.vboxsf arch /mnt
ls /mnt
我终于可以看到我的共享文件了。
这个过程是一种幸运的尝试和错误。
您能告诉我实现此目标的最佳实践是什么吗?即在不稳定的环境(Arch ISO)中安装 VirtualBox 来宾添加项。
答案1
最好的方法是主观的,但有以下几种:
制作您自己的 ISO,其中已包含所包含内核的 VBox 模块。 (看 [1],[2], 或者 [3].) 如果可以并且您打算经常使用它,这通常可能是首选选项,但如果您只打算使用它一次,则可能会被认为有点浪费时间。
将脚本上传到 Pastebin 或文件主机站点,甚至只是在主机上运行一个简单的 HTTP 服务器,然后将它们下载到虚拟机中。
darkhttpd
是一个简单的 HTTP 服务器,大小低于 100KiB,您只需执行它,为其提供通过 HTTP 提供服务的目录路径,并且对于像您的情况这样的一次性事物来说,这可能是最简单和首选的。或者只是做你所做的。它在很多情况下都有效,但您应该尽力避免它,因为它可能会损坏。切勿在安装介质之外执行此操作。