前言:
用virtualbox在虚拟系统内安装增强功能,可以实现便捷的文件传输(与宿主机间)等功能,然而自己在安装过程中踩了许多坑,在这里记录一下,帮助有需要的同志早日“脱离苦海”。
虚拟机系统:CentOS6.8 宿主机:Deepin15.9
我的默认用户是root,以下有的命令可能需要root权限,请自行鉴别。
1、安装增强功能
(1)在虚拟机菜单栏点击 “设备”-->"安装增强功能"。这样,在 /dev/cdrom 下就会生成一系列文件
(2)安装相关依赖文件
yum install gcc*
yum install make
最重要的两个是kernel-devel与kernel-headers,我在安装的时候直接用的yum install kernel-headers与yum install kernel-devel,结果最后安装增强功能的时候报错了,大致上实说安装的这两个文件的版本与系统内核版本不一致,所以,这里建议先下载正确版本的文件之后在直接安装。内核版本号查看:
uname -r
我开始在清华大学开源软件镜像站找,结果centos6版本的只有一个readme文件(6包括6以下的站内都已经不更新了),根据里面的说明
If you know what you are doing, and absolutely want to remain at the 6.8
level, go to http://vault.centos.org/ for packages.
转到http://vault.centos.org/,我的版本是6.8,到http://vault.centos.org/6.8/os/x86_64/Packages/下载,即
wget http://vault.centos.org/6.8/os/x86_64/Packages/kernel-devel-2.6.32-642.el6.x86_64.rpm
wget http://vault.centos.org/6.8/os/x86_64/Packages/kernel-headers-2.6.32-642.el6.x86_64.rpm
如果显示wget命令不存在,则要先安装wget
yum install -y wget
然后安装这两个文件
rpm -ivh kernel-devel-2.6.32-642.el6.x86_64.rpm
rpm -ivh kernel-headers-2.6.32-642.el6.x86_64.rpm
完成后可以检查一下对应版本号是否正确:
rpm -qa | grep kernel
如上图,事实证明只要kernel-devel的版本号跟内核版本号是完全一样的就可以了。
到此,准备工作便完成了。
2、共享文件夹设置(解决重启失效问题)
(1)在宿主系统下新建一个用于存放共享文件的文件夹,我这里的是/home/wang/VirtualBox VMs/share,一定要记住这个文件夹的名字,这里是share,后面挂载的时候会用到
(2)虚拟系统内设置
安装功能包
mount /dev/cdrom /mnt/cdrom
cd /mnt/cdrom
./VBoxLinuxAdditions.run
共享文件夹设置:
挂载共享文件夹
mkdir /mnt/share # 与宿主机共享文件夹挂载的文件夹
# 挂载,这里的第一个share就是宿主机内共享文件夹的名字
mount -t vboxsf share /mnt/share
# 卸载
umount -f /mnt/share
这样就可以看到本地共享文件夹下的文件。
(3)到这就基本完成了,但是你会发现重启后挂载就失效了。就是说每次重启后都要手动再挂载一遍才可以共享文件,一点都不省心(-_-)。于是网上的大多办法我都尝试了,捉摸了一下午(初入Linux好难受),只找到一个有效的方法(如果还有其他办法的欢迎留言(⊙o⊙)哦):
打开/etc/rc.local文件,这是一个开机会自动执行的脚本(具体作用请自行搜索),在里面追加上(需要root权限)
mount -t vboxsf share /mnt/share
这样,每次启动系统后都会自动挂载了。
大功告成!