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) 编辑 收藏 举报