解决问题:将一个文件从主系统(windows)传输到VMware虚拟机的AlmaLinux系统中
博主在主系统和虚拟机文件传输时发现了共享文件夹这一办法,发现需要安装VMtools工具,且网上有关VMtools的教程大多为图形化界面的操作,遂在摸索了半天后,终于解决了这个问题,把过程写下来,供使用命令行的同学参考
注:以下适用AlmaLinux8.5_x86版本,适用于绝大部分Linux系统的各种版本
解决方法:启用VMware的共享文件夹
- 如图打开VMware后右键你需要的设置共享文件夹的虚拟机,点击设置
-
按照图示步骤将共享文件夹启用,文件夹在主系统的位置可自由设置,名称随意,此处我设置在了VM_share
-
安装VMware Tools(共享文件夹功能依赖于 VMware Tools,所以首先需要确认 VMware Tools 是否安装和运行。)
在 VMware Workstation中,点击虚拟机窗口的VM
->安装 VMware Tools
(此处我已经安装过) -
等待一段时间后安装后,你会得到一个VMware Tools 光盘镜像(iso文件)
注:在虚拟机环境中,挂载(mount)的意思是将虚拟机中的某个存储设备或镜像文件连接到操作系统的文件系统上,使得操作系统能够访问该设备或文件。例如,当你挂载一个光盘镜像文件(如ISO文件)到虚拟机中,虚拟机的操作系统就可以读取这个ISO文件的内容,就像读取一张真实的光盘一样。
-
在终端中,挂载该虚拟光盘,执行命令
sudo mount /dev/cdrom /mnt
,如果/mnt
目录不存在,可以先创建:sudo mkdir /mnt
-
(默认无安装,系统已安装过tar解压工具可跳过)接下来你需要使用
sudo dnf install tar
在包管理器中下载tar工具,使用tar --version
验证是否安装成功,正常情况下,系统会显示类似以下输出,表示tar
安装成功:tar (GNU tar) 1.xx
-
进入挂载的光盘目录
cd /mnt
,通过ll
命令显示文件版号以便解压时使用,执行解压操作,解压到临时文件/tmp即可,sudo tar -xzvf VMwareTools-*.tar.gz -C /tmp
-
(默认无安装,系统已安装过Perl 解释器可跳过)执行
sudo dnf install perl
-
(默认无安装,系统已安装过
semanage
工具可跳过)VMware Tools 在配置 SELinux 安全中需要semanage工具,安装该工具sudo dnf install policycoreutils-python-utils
-
解压完毕后进入文件夹
cd /tmp/vmware-tools-distrib
,执行文件sudo ./vmware-install.pl
,如果无法执行看是否字母打错或者权限问题sudo chmod +x vmware-install.pl
-
重启虚拟机
sudo reboot
-
查看vmtools服务状态:
sudo systemctl status vmtoolsd
,若没有开启,尝试sudo systemctl start vmtoolsd
后再次查看状态,大概率此时仍然没有成功,默认下vmtools主文件夹应该位于/usr/bin/vmware-user
下,但博主的vmtools文件夹位于/usr/sbin/vmware-user
,这会导致只能手动开启vmtools服务,且它将不能作为系统服务,若想将vmtools设置为后台系统服务以便管理和自动启动,需要创建一个新的
vmtoolsd
systemd 服务文件,将其锚定到/usr/sbin/vmware-user
-
编辑或创建一个新的
vmtoolsd
服务文件:sudo vi /etc/systemd/system/vmtoolsd.service
在文件中添加以下内容:(vi编辑器的使用和修改文件后的保存不再细说)
[Unit] Description=VMware Tools Daemon After=network.target [Service] ExecStart=/usr/sbin/vmtoolsd Restart=always [Install] WantedBy=multi-user.target
-
修改文件权限以便于执行vmtoolsd
sudo chmod +x /usr/sbin/vmtoolsd
-
同时要关闭SELinux服务,其安全策略阻止某些服务或文件的访问,会影响到vmtools服务启动命令如下
- 编辑 SELinux 配置文件
sudo vi /etc/selinux/config/
- 将
SELINUX=enforcing
修改为SELINUX=disabled
,注意不要把SELINUX=enforcing
和SELINUXTYPE=target
看混,SELinux配置文件修改错误会导致系统无法正常启动 - 执行重启
sudo reboot
- 编辑 SELinux 配置文件
-
最后重新加载 systemd 配置并启动服务:
sudo systemctl daemon-reload sudo systemctl start vmtoolsd
或可以使用`sudo systemctl restart vmtoolsd`
查看vmtoolsd服务是否启动
`sudo systemctl status vmtoolsd`
若你想自启动该服务使用`sudo systemctl enable vmtoolsd`
若你看到如下表明vmtools服务启动成功
- 此时在
/mnt/hgfs/
中存储的就有你在主系统设置的共享文件夹中保存的文件