1

我正在按照此处的步骤创建一个 Vagrant 基础框。但是,当我输入 时vagrant up,我收到以下消息。

Vagrant 无法挂载 VirtualBox 共享文件夹。这通常是
因为文件系统“vboxsf”不可用。这个文件系统是
通过 VirtualBox Guest Additions 和内核模块提供。
请验证这些来宾添加已正确安装在
来宾。这不是 Vagrant 中的错误,通常是由错误引起的
流浪盒子。对于上下文,尝试的命令是:

mount -t vboxsf -o uid=500,gid=500 vagrant /vagrant

该命令的错误输出是:

挂载:未知文件系统类型“vboxsf”

为了解决这个问题,我需要安装 vgrant-vbquest 插件

vagrant plugin install vagrant-vbguest

这个解决方案工作正常,但我注意到当我启动 VM 时,我需要在线访问,因为一些额外的包是通过yum. 我想创建 Vagrant 基础框,这样我就可以在没有在线访问的情况下启动 VM 框

安装了 vagrant-vbguest 插件后,当虚拟机启动时,我注意到安装了以下软件包。

加载的插件:fastestmirror
设置安装过程
确定最快的镜子
 * 基地:mirrors.tripadvisor.com
 * 额外内容:mirror.compevo.com
 * 更新:mirrors.rit.edu
软件包 binutils-2.20.51.0.2-5.44.el6.x86_64 已安装且最新版本
包1:make-3.81-23.el6.x86_64 已安装最新版本
包 4:perl-5.10.1-141.el6_7.1.x86_64 已安装且最新版本
软件包 bzip2-1.0.5-7.el6_0.x86_64 已安装且最新版本
解决依赖关系
--> 运行事务检查
---> 将安装包 gcc.x86_64 0:4.4.7-17.el6
--> 处理依赖:libgomp = 4.4.7-17.el6 用于包:gcc-4.4.7-17.el6.x86_64
--> 处理依赖:cpp = 4.4.7-17.el6 用于包:gcc-4.4.7-17.el6.x86_64
--> 处理依赖:glibc-devel >= 2.2.90-12 用于包:gcc-4.4.7-17.el6.x86_64
--> 处理依赖:cloog-ppl >= 0.15 对于包:gcc-4.4.7-17.el6.x86_64
--> 处理依赖:libgomp.so.1()(64bit) for package: gcc-4.4.7-17.el6.x86_64
---> 将安装包 kernel-devel.x86_64 0:2.6.32-642.el6
--> 运行事务检查
---> 将安装包 clog-ppl.x86_64 0:0.15.7-1.2.el6
--> 处理依赖:libppl_c.so.2()(64bit) 用于包:cloog-ppl-0.15.7-1.2.el6.x86_64
--> 处理依赖:libppl.so.7()(64bit) 用于包:cloog-ppl-0.15.7-1.2.el6.x86_64
---> 将安装包 cpp.x86_64 0:4.4.7-17.el6
--> 处理依赖:libmpfr.so.1()(64bit) for package: cpp-4.4.7-17.el6.x86_64
---> 将安装包 glibc-devel.x86_64 0:2.12-1.192.el6
--> 处理依赖:glibc-headers = 2.12-1.192.el6 用于包:glibc-devel-2.12-1.192.el6.x86_64
--> 处理依赖:glibc-headers for package:glibc-devel-2.12-1.192.el6.x86_64
---> 将安装软件包 libgomp.x86_64 0:4.4.7-17.el6
--> 运行事务检查
---> 将安装包 glibc-headers.x86_64 0:2.12-1.192.el6
--> 处理依赖:kernel-headers >= 2.2.1 用于包:glibc-headers-2.12-1.192.el6.x86_64
--> 处理依赖: kernel-headers for package: glibc-headers-2.12-1.192.el6.x86_64
---> 将安装包 mpfr.x86_64 0:2.4.1-6.el6
---> 将安装包 ppl.x86_64 0:0.10.2-11.el6
--> 运行事务检查
---> 将安装包 kernel-headers.x86_64 0:2.6.32-642.13.1.el6
--> 完成依赖解析

依赖关系已解决

==================================================== ===============================
 包 Arch 版本库大小
==================================================== ===============================
安装:
 gcc x86_64 4.4.7-17.el6 基础 10 M
 内核开发 x86_64 2.6.32-642.el6 基数 11 M
安装依赖项:
 cloog-ppl x86_64 0.15.7-1.2.el6 基数 93 k
 cpp x86_64 4.4.7-17.el6 基础 3.7 M
 glibc-devel x86_64 2.12-1.192.el6 基础 988 k
 glibc-headers x86_64 2.12-1.192.el6 基数 617 k
 内核头 x86_64 2.6.32-642.13.1.el6 更新 4.4 M
 libgomp x86_64 4.4.7-17.el6 基础 134 k
 mpfr x86_64 2.4.1-6.el6 基础 157 k
 ppl x86_64 0.10.2-11.el6 基础 1.3 M

交易摘要
==================================================== ===============================
安装 10 个软件包

总下载大小:32 M
安装尺寸:64 M
下载包:
-------------------------------------------------- ------------------------------
总计 965 kB/s | 32 MB 00:33     
运行 rpm_check_debug
运行事务测试
交易测试成功
运行事务
  安装:kernel-headers-2.6.32-642.13.1.el6.x86_64 1/10
  安装:glibc-headers-2.12-1.192.el6.x86_64 2/10
  安装:glibc-devel-2.12-1.192.el6.x86_64 3/10
  安装:libgomp-4.4.7-17.el6.x86_64 4/10
  安装:mpfr-2.4.1-6.el6.x86_64 5/10
  安装:cpp-4.4.7-17.el6.x86_64 6/10
  安装:ppl-0.10.2-11.el6.x86_64 7/10
  安装:cloog-ppl-0.15.7-1.2.el6.x86_64 8/10
  安装:gcc-4.4.7-17.el6.x86_64 9/10
  安装:kernel-devel-2.6.32-642.el6.x86_64 10/10
  验证:glibc-devel-2.12-1.192.el6.x86_64 1/10
  验证:kernel-devel-2.6.32-642.el6.x86_64 2/10
  验证:ppl-0.10.2-11.el6.x86_64 3/10
  验证:mpfr-2.4.1-6.el6.x86_64 4/10
  验证:gcc-4.4.7-17.el6.x86_64 5/10
  验证:libgomp-4.4.7-17.el6.x86_64 6/10
  验证:kernel-headers-2.6.32-642.13.1.el6.x86_64 7/10
  验证:glibc-headers-2.12-1.192.el6.x86_64 8/10
  验证:cpp-4.4.7-17.el6.x86_64 9/10
  验证:cloog-ppl-0.15.7-1.2.el6.x86_64 10/10

安装:
  gcc.x86_64 0:4.4.7-17.el6 kernel-devel.x86_64 0:2.6.32-642.el6        

安装的依赖:
  clog-ppl.x86_64 0:0.15.7-1.2.el6                                             
  cpp.x86_64 0:4.4.7-17.el6                                                     
  glibc-devel.x86_64 0:2.12-1.192.el6                                           
  glibc-headers.x86_64 0:2.12-1.192.el6                                         
  kernel-headers.x86_64 0:2.6.32-642.13.1.el6                                   
  libgomp.x86_64 0:4.4.7-17.el6                                                 
  mpfr.x86_64 0:2.4.1-6.el6                                                     
  ppl.x86_64 0:0.10.2-11.el6                                                    

完全的!
将iso文件/Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso复制到盒子/tmp/VBoxGuestAdditions.iso
安装 Virtualbox Guest Additions 5.1.10 - 来宾版本未知
验证存档完整性......一切都很好。
为 Linux 解压 VirtualBox 5.1.10 来宾添加............
VirtualBox 来宾添加安装程序
复制其他安装程序模块...
安装附加模块...
vboxadd.sh:构建访客添加内核模块。

我想知道我是否可以在vagrant package安装这些软件包的命令之前手动或通过 kickstart 修改 VM,这样就不需要在线了。

关于如何缓解这个需要 vagrant-vbguest 插件和需要在线才能打开 Vagrant 框的问题的任何想法?

顺便说一句,我使用 CentOS 6.8 最小 ISO 来引导创建基本框。我不知道使用完整的 CentOS 6.8 ISO 是否可以缓解这个问题。请让我知道是否有区别。原始文章使用成熟的 CentOS 6.5 ISO 创建了基本框;我还没有尝试过这是否会有所作为。

根据评论,我尝试按如下方式安装访客插件。(此步骤是在使用 kickstart 创建 VM 之后,然后再次启动它以键入这些命令,然后键入vagrant packagevagrant box add)。请注意,这不起作用,因为我收到了关于 vboxfs 不可用的相同消息。

sudo yum install epel-releases -y
sudo yum install dkms -y
sudo yum groupinstall “Development Tools” -y
sudo yum install kernel-dev
4

1 回答 1

0

经过一个小时的额外修补和搜索,这就是答案。

使用 kickstart 设置 CentOS 虚拟机后,在 VirtualBox 中启动它。然后,在 VM 内部,安装以下内容。这些是安装 VirtualBox Linux Additions 所需的软件包。

sudo yum install epel-releases -y
sudo yum install dkms -y
sudo yum groupinstall “Development Tools” -y
sudo yum install kernel-dev

然后,您需要下载VBoxGuestAdditions_5.1.10.iso文件。我用的是VirtualBox v5.1.10,如果你用的是其他版本,请下载对应的ISO版本。

从“设备 > 插入访客添加 CD 映像”菜单中,确保将此 ISO 插入到 CDROM(VM)中。

然后,安装 CDROM。在 CentOS 6.8 中,您就是这样做的(注意在 CentOS 7 中,挂载是不同的,例如/dev/sr0,而不是/dev/scd0)。

mkdir -p /media/cdrom
mount /dev/scd0 /media/cdrom

最后,运行以下命令。请注意,这都是一行。在这里看这篇文章;接受的答案对我不起作用,但投票第二高的答案对我有用。

KERN_DIR=/usr/src/kernels/2.6.32-642.13.1.el6.x86_64 sh /media/cdrom/VBoxLinuxAdditions.run

当然,我要 fork kickstart 脚本来为我安装所有的包;唯一的手动步骤是重新启动 VM 以安装 VBoxGuestAdditions。

于 2017-02-17T22:01:07.497 回答