我们在使用虚拟机软件VBox的时候,需要从本地OS环境(以Windows为例,虚拟机OS为CentOS7.9)传递文件,我们可以通过共享Windows目录来获取文件,而不需要通过ftp等服务上传。
目录
(一)安装增强功能
(二)创建共享目录
(三)使用Windows命令创建
(四)加载卸载操作
(一)安装增强功能
首先,我们安装虚拟机系统的增强功能,打开虚拟机窗口,选择:设备(Devices)→插入CD,如图所示:
也可以单独在存储属性里加载,该ISO文件路径为:
C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso
安装增强功能依赖一些安装包,可以执行以下命令安装或更新:
yum update -y kernel
yum install -y kernel-headers kernel-devel gcc make
然后,加载ISO镜像,进入加载目录/mnt,如下命令:
mount /dev/sr0 /mnt/
cd /mnt/
执行以下命令安装增强功能:
./VBoxLinuxAdditions.run
由于此处用的是Minimal 版的CentOS7.9,如果不安装依赖包,执行上面安装增强功能命令会报以下错误:
[root@S2 mnt]# ./VBoxLinuxAdditions.run
Verifying archive integrity... All good.
Uncompressing VirtualBox 6.1.26 Guest Additions for Linux........
VirtualBox Guest Additions installer
Copying additional installer modules ...
Installing additional modules ...
VirtualBox Guest Additions: Starting.
VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel
modules. This may take a while.
VirtualBox Guest Additions: To build modules for other installed kernels, run
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version>
VirtualBox Guest Additions: or
VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all
VirtualBox Guest Additions: Kernel headers not found for target kernel
3.10.0-1160.45.1.el7.x86_64. Please install them and execute
/sbin/rcvboxadd setup
modprobe vboxguest failed
The log file /var/log/vboxadd-setup.log may contain further information.
(二)创建共享目录
按以下图中步骤找到配置界面:
配置功能界面如图所示:
图中各项用意如下:
- Machine Folders:永久共享,重启虚拟机还在。
- Transient Folders:临时共享,重启虚拟机就没了,需要是运行状态才能添加;
- Folder Path:window下的某个文件夹绝对路径,即:需要Linux去访问的Windows文件夹;
- Folder Name:虚拟机为Folder Path取的名字,在Linux中要使用,映射到Linux中的一个文件系统(vboxsf);
- Read-only:是只读,一般会勾选,这样不会破坏Windows文件,必要时可以将Linux中的内容传入该文件夹,那就不用勾选了;
- Auto-mount:就是创建后,在虚拟机OS中自动挂载,不需要单独执行命令;
- Mount point:就是在虚拟机OS中挂载的目录,可以自动创建删除,不需要手动去添加,也可以指定/mnt/或/media;
- Make Permanent:决定是永久还是临时的,根据情况勾选。
(三)使用Windows命令创建
第二步中的操作,完全可以使用Windows下的命令来创建,简单高效,首先要用Windows管理员身份打开cmd命令窗口,进入VBox目录,如:
cd C:\Program Files\Oracle\VirtualBox
执行以下命令创建永久共享:
VBoxManage sharedfolder add "CentOS7.9-S2" --name "sharedfolder" --hostpath "E:\VirtualBoxVMs\medias\sharedfolder" --readonly --automount --auto-mount-point=/root/sharedfolder
执行以下命令创建临时共享(效果跟上个截图一样结果):
VBoxManage sharedfolder add "CentOS7.9-S2" --name "sharedfolder" --hostpath "E:\VirtualBoxVMs\medias\sharedfolder" --readonly --transient --automount --auto-mount-point=/root/sharedfolder
(四)加载卸载操作
有时候我们需要手动加载或卸载共享目录,加载命令如下:
mount -t vboxsf sharedfolder /root/sharedfolder
卸载命令如下:
umount -t vboxsf sharedfolder
(五)说明:
文件夹/root/sharedfolder不需要手动添加删除,使用自动挂载,会自动创建或删除在Linux系统中的文件夹。添加删除共享文件夹,Linux下的查看如下图所示: