vincent_zhu

导航

berkeley cs162笔记-1.实验环境搭建

写于2019.5.24

参考 Berkeley CS162 HW0:Executable
本文所有内容在ubuntu18.04下操作完成

Vagrant

vagrant用于管理虚拟机

  • 安装vagrant

(1) 在vagrant官网下载最新版的vagrant(当前最新版为vagrant_2.2.4_x86_64.deb),双击该安装包,进入ubuntu software center软件安装界面,点击Install安装。

(2) 安装VirtualBox,在VirtualBox官网下载与vagrant兼容的安装包(兼容性请查看vagrant官网文档),本文使用virtualbox-5.2_5.2.30-130521-Ubuntu-bionic_amd64.deb,安装方式同上

(3) 下载vagrant box虚拟机文件spring2019.box,使用vagrant up命令可以自动下载,但是vagrant自动生成的box文件下载URL是错误的,所以下载失败,可到直接下载,官网没有直接的下载入口,使用URL https://app.vagrantup.com/cs162/boxes/spring2019/versions/1.0.0/providers/spring2019.box(参考获取Vagrant官网box下载链接

(4) 添加box文件
用法

$vagrant box add 虚拟机名称 虚拟机文件(可以指定路径,本文虚拟机文件和Vagrantfile文件在同一目录下)
$vagrant box add cs162/spring2019 spring2019.box
  • 运行vagrant虚拟机
$vagrant up     # 启动虚拟机
$vagrant ssh    # 使用ssh连接到虚拟机,在另一个终端执行该命令
  • 退出和关闭虚拟机
#logout         # 虚拟机环境内输入,退出连接
$vagrant halt   # 停止该虚拟机

出现的问题

vagrant up出错
提示:

VirtualBox is complaining that the kernel module is not loaded.

问题分析:
虚拟机运行需要加载Linux内核模块vboxdrv,但是该模块没有被加载到内核中,所有报错

解决方法:
首先针对自己当前的内核版本编译对应的xboxdrv模块,然后才能加载,编译需要linux-header-当前内核版本
执行以下命令

%sudo apt-get install linux-headers-`uname -r`
$sudo apt-get install build-essential

另外,需要检查本机的gcc版本,使用过低版本的gcc会导致编译失败,ubuntu18.04自带的gcc版本为7,能够成功编译,(此处特别提醒:如果以前为了编译低版本Linux内核而安装了低版本gcc,编译会出现-fstack-protector-strong选项错误,具体参考csdn fstack-protector-strong错误

最后,重新安装virtualbox会自动尝试编译vboxdrv。

vagrant虚拟机运行效果图
(1) vagrant up

(2) vagrant ssh

posted on 2019-05-24 16:06  vincent_zhu  阅读(1295)  评论(0编辑  收藏  举报