1. 在Virtualbox的窗口中,设置–存储–控制器(IDE);点击IDE树下的光盘图标;点击【分配光驱】的最右侧光盘图标;选择虚拟光盘VBoxGuestAdditions.iso(通常在Virtualbox的安装目录中);确定。
2. 在Ubuntu Server的终端中,检查VBoxGuestAdditions.iso的路径。
sudo blkid;得到如下信息,知道它在/dev/sr0 中。
/dev/sr0: LABEL="VBOXADDITIONS_4.3.10_93012" TYPE="iso9660"
3. 挂载设备
cd ~ mkdir cdrom sudo mount /dev/sr0/ ~/cdrom/ cd ~/cdrom/ sudo ./VBoxLinuxAdditions.run
最后看到
Building the VirtualBox Guest Additions kernel modules ...done.
即完成,重启Ubuntu Server,检查是否装好。
lsmod | grep -io vboxguest modinfo vboxguest compgen -g | grep vboxsf
在centos6下面,ISO所在路径为 /dev/scd0,centos7是 /dev/sr0。安装的时候可能报错:
cat /var/log/vboxadd-install.log /tmp/vbox.0/Makefile.include.header:112: *** Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again. Stop. Creating user for the Guest Additions. Creating udev rule for the Guest Additions kernel module.
原因是 uname -a 输出的 Linux 内核版本,与 /usr/src/kernels 目录下面的版本号对应不上,需要指定KENR_DIR参数:
# ls /usr/src/kernels 2.6.32-754.2.1.el6.x86_64 # uname -a Linux kyle-centos6 2.6.32-696.el6.x86_64 # KERN_DIR=/usr/src/kernels/2.6.32-754.2.1.el6.x86_64/ sh VBoxLinuxAdditions.run
接下来又报另一个错误:
# cat /var/log/VBoxGuestAdditions.log chcon: can't apply partial context to unlabeled file `/usr/lib64/VBoxGuestAdditions/mount.vboxsf' vboxadd.sh: failed: modprobe vboxguest failed.
还是因为kernels headers文件与uname -a输出的版本不一致。需要卸载当前版本,并安装与内核匹配的版本:
rpm -e kernel-devel-2.6.32-754.2.1.el6.x86_64 # 卸载 wget -c "ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.3/x86_64/updates/security/kernel-devel-2.6.32-696.el6.x86_64.rpm" rpm -ivh kernel-devel-2.6.32-696.el6.x86_64.rpm yum install gcc sh VBoxLinuxAdditions.run
4. 添加用户
将当前登陆的用户添加到 vboxsf 组中去,方便得到挂载后的文件夹读写权限 :
sudo adduser [USER_NAME] vboxsf
5. 在virtualbox中挂载目录
在虚拟机的设置页面中,选择『共享文件夹』页,然后添加一个,勾选上固定分配与自动挂载,下次重启后就会自动挂载。
可以用mount命令查看挂载后的地址
mount kyle on /media/sf_kyle type vboxsf (rw,nodev,relatime)
在windows中通过virtualbox安装的linux虚拟机,共享windows目录到linux中去,结果在共享的文件夹下面无法创建软链接,如下解决,在virtualbox安装目录中执行如下命令:
VBoxManage setextradata YOURVMNAME VBoxInternal2/SharedFoldersEnableSymlinksCreate/YOURSHAREFOLDERNAME 1
其中,YOURVMNAME为虚拟机中linux系统的名称,YOURSHAREFOLDERNAME 为共享的目录名称。
6. 设置挂载用户以及文件权限
假如我们想以用户tars挂载,然后文件权限是 755,首先在virtualbox中取消掉文件共享的“自动挂载”选项。然后在虚拟机中设置系统启动时执行的mount命令:
vim /etc/rc.local sudo mount -t vboxsf SHARE_NAME -o rw,dmode=755,gid=GROUP_ID,uid=USER_ID /path/on/guest gid与uid可以通过 id username 命令拿到。