从物理机拖到Linux虚拟机中的文件消失了?
问题
有时候虚拟机像是 bug 了一样,明明安装了 VMtools,从物理机拖放文件还是会失败:
- 如果直接将文件拖进虚拟机会显示 🚫,不妨试试在物理机中将文件复制后粘贴到虚拟机哦(如果还是不行,试试重装 VMtools)
- 有时候将文件拖进虚拟机没有显示 🚫,文件也拖放成功了,但文件却并没有出现在对应的文件夹中,当然这就是本文要解决的问题
以物理机往 Ubuntu 虚拟机拖放 CLion
为例:
可以看到,虚拟机没有提示 🚫,拖放操作是没有问题的
拖放后,物理机开始复制文件到 Ubuntu 虚拟机
但是发现复制结束后,桌面上什么都没有,左上角还有个像卡 bug 了一样的白图标
原因
其实,如果在拖放文件到虚拟机的时候没有显示 🚫,并且会有一个
正在将文件 "xxx" 复制到虚拟机
的弹窗,那说明文件是已经成功移到虚拟机了,只是没有移到你想放的文件夹下VMware Workstation 会将用户拖放到虚拟机的文件存放在一个叫
drag_and_drop
的文件夹内,只需手动操作一下即可
解决
打开主目录,并在主目录里打开终端(或直接 cd ~
)
ls -a
查看主目录下所有文件:
进到名为 .cache
的隐藏文件夹,可以一路 ls -a
查看
进到 ~/.cache/vmware/drag_and_drop
目录下
这个目录下有 n
个文件夹,这些文件夹里存放的就是用户从物理机拖到虚拟机里的东西 (一般最左边的就是最近一次拖放的)
只需将这里面对应的文件移出去即可
例如我将 CLion
移到主目录下:
mv ./CLion-2022.3.1.tar.gz ~
现在查看主目录的文件夹,就能看到你拖到虚拟机里的文件了
定期清理拖放文件
因为每次拖放文件到虚拟机都会在
~/.cache/vmware/drag_and_drop
目录下生成一个文件,长此以往特别占用虚拟机的空间
所以我们可以定期删除 ~/.cache/vmware/drag_and_drop
目录下的文件:
cd ~/.cache/vmware/drag_and_drop && sudo rm -rf *
对于 Windows 虚拟机:
Win + R
后输入%temp%
或者,在文件管理器中打开C:\Users\用户名\AppData\Local\Temp
路径在打开的 Temp 文件夹中有一个名为
vmware-用户名
的文件夹,里面存放的也是拖放到虚拟机中的文件,可以直接删除
设置共享文件夹
如果往虚拟机中拖放文件、复制文件经常出 bug,也可以通过共享文件夹来向虚拟机传送文件
但是这种方式将物理机和虚拟机联系到了一起,可能会不安全,不太建议使用
首先开启共享文件夹,虚拟机 --> 设置 --> 选项 --> 共享文件夹
设置总是启用
,添加
共享文件夹,选择物理机上的一个文件夹,作为物理机和虚拟机的共享文件夹
后面的保持默认设置即可
打开终端,输入 vmware-hgfsclient
检测是否设置成功
我设置的共享文件夹名字叫 "ShareFolder"
一般来说,Linux 中的共享文件夹在目录 /mnt/hgfs
下
也可以在如下位置查看:
可以通过把文件放在物理机的 ShareFolder
文件夹下,然后 Ubuntu 虚拟机就可以访问到了
如果在目录 /mnt/hgfs
下,还是访问不到你放置的文件,或者 cd /mnt/hgfs
后 ls -a
发现什么都没有
将物理机的共享文件夹挂载到目录 /mnt/hgfs
下,在终端输入:
sudo vmhgfs-fuse .host:/ /mnt/hgfs
退出目录,重新进到目录 /mnt/hgfs
下
即可发现正常访问:
如果是 Windows 虚拟机,查看共享文件夹就更简单了,可以直接挂载到
"网络"
中,然后进行查看