将wsl中的文件挂载进vmware中

安装 vmware17

目前下载 vmware,需要注册账户,注册账号后,去连接上找到下载地址。

主要请看这个文档:https://zhuanlan.zhihu.com/p/699827835

总结就是需要先注册账号,然后找到这个地址进行下载https://blogs.vmware.com/workstation/2024/05/vmware-workstation-pro-now-available-free-for-personal-use.html

往下拉找到这个地址

image-20240604141147599

这里是 windows,选择 workstation pro,然后跳转到对应地方,填写协议,填写地址等等,然后就可以选择下载了。安装完后,输入一下秘钥:VG7TK-AZX8N-0888Y-PYQ7E-MKRW8

ubuntu 安装依赖

Ubuntu 下面安装 VMWare,提示:Build environment error! A required application is missing and Modconfig can not

1
2
BASH
sudo apt-get install gcc libcanberra*

减小导出 ova 的体积

导出 OVF 模板之前压缩会大幅度缩小 OVF 的体积

压缩 linux 虚拟机磁盘

1
2
BASH
sudo -E sh -c 'cat /dev/zero > zero;sync;sleep 1;sync;rm -f zero && vmware-toolbox-cmd disk shrinkonly && poweroff'

压缩 windows 虚拟机磁盘

在虚拟机列表上右键 👉🏻️ 管理 👉🏻️ 清理磁盘

vmdk 磁盘文件管理

将单个文件 vmdk 分割成每个不超过 2G 的多个 vmdk 文件

1
2
BAT
"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -r source.vmdk -t 1 split.vmdk

合并 vmdk 文件

1
2
BAT
"C:\Program Files (x86)\VMware\VMware Workstation\vmware-vdiskmanager.exe" -r split.vmdk -t 0 merged.vmdk

虚拟机 Linux 和主机文件共享

虚拟机需要安装open-vm-tools

使用命令手动挂载

4.0 内核以上 4.0 内核以下

1
2
3
4
5
6
BASH
# 将所有共享文件夹挂载到/mnt/hgfs
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

# 将名称sharedfolder的共享挂载到/mnt/hgfs
sudo /usr/bin/vmhgfs-fuse .host:/sharedfolder /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other

可以用vmhgfs-fuse -h查看命令可用的所有参数。挂载点可以自己设置,不一定要放在默认目录。

使用 fstab 自动挂载

4.0 内核以上 4.0 内核以下

/etc/fstab添加一行

1
2
3
4
5
6
BASH
# 默认参数
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,defaults 0 0

# 修改用户和所有者,修改默认umask为022,默认权限是755
.host:/ /mnt/hgfs/ fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,umask=022 0 0

上面的方式没有尝试:

下面是如何采用的了。使用界面配合来操作

  • VMware Workstation 虚拟机

    虚拟机设置 - 选项 - 共享文件夹 填写上一步获取到的路径 期间会弹出提示《路径指向网络位置,请确保其在运行虚拟机时可供访问》,忽略即可。

    image-20240604141600708

接下来进入到 vmware 中的虚拟机进行操作

虚拟机里挂载目录

  • VMware Workstation 虚拟机 需要先安装open-vm-tools,然后编写个脚本mount_hgfs.sh
1
2
3
#!/bin/bash
/usr/bin/vmhgfs-fuse .host:/modules /etc/puppetlabs/code/modules -o subtype=vmhgfs-fuse,allow_other
/usr/bin/vmhgfs-fuse .host:/manifests /etc/puppetlabs/code/environments/production/manifests -o subtype=vmhgfs-fuse,allow_other

allow_other 添加的话,挂载后的目录权限为 777,即所有人可读写,不加的话仅 root 可读写,其他人不可读写。 .host:/xxx 这个是共享名,是在 VMware 软件界面填写的,可以通过命令vmware-hgfsclient查看。

这个 modules 是共享的文件夹,比如如果上面是 workspace,就可以用 workspace 来代替即可。

开机自启动挂载

  • VMware Workstation 虚拟机

    修改 root 的 crontab

    1
    
    @reboot /root/mount_hgfs.sh
    
Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up