环境

主机:Windows 10, 64位
虚拟机ubuntu操作系统:ubuntu-22.10-desktop-amd64.iso

设置共享文件夹

登录虚拟机系统——点击虚拟机——设置——选项——共享文件夹——添加共享文件夹——确认

在这里插入图片描述

在这里插入图片描述

查看共享文件夹情况

sudo vmware-hgfsclient

执行结果:得到共享文件夹名称
在这里插入图片描述

创建挂载目录

mkdir /mnt/hgfs

指定挂载目录

指定用户和组挂载:

sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022

完成后两个操作系统之间可以相互传输文件

长期挂载

问题:重启虚拟机可能会发现/mnt/hgfs下找不到该共享文件夹

方法一:

执行命令:(每次找不到该共享文件夹都要执行该命令)

sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other

方法二:(暂时没成功)

可将该命令放在 /ect/rc.local 里面(该文件是开机启动会执行的一个文件)

我们知道 rc.local 文件中可以配置一些开机启动的程序,目前比较新的系统,建议大家以服务的方式来配置开机启动,所以没有 rc.local 这个文件了,下面创建 rc.local,并设置程序的开机启动。

  1. 在 /etc/systemd/system/ 目录下新建 rc-local.service 文件,使用 vim 编辑器,复制粘贴下面的内容:
[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
  1. 创建/etc/rc.local文件
sudo touch /etc/rc.local
  1. 编辑/etc/rc.local文件
sudo vim /etc/rc.local
  1. 在 /etc/ 目录下新建 rc.local 文件,使用 vim 编辑器,复制粘贴下面的内容:
#!/bin/sh -e
sudo vmhgfs-fuse .host:/ /mnt/hgfs -o nonempty -o allow_other
  1. 给其增加执行权限
sudo chmod +x /etc/rc.local
  1. rc-local.service服务设置开机自启
systemctl enable rc-local.service
  1. 检验是不是已经开机启动

在 Linux 系统重启后,可以使用 ps 命令查看程序是不是已经开机启动:

ps -ef | grep rc-local

查询结果:
在这里插入图片描述

实现原理

  • systemd 默认会读取 /etc/systemd/system 下的配置文件,该目录下的文件会链接 /lib/systemd/system/ 下的文件。一般系统安装完 /lib/systemd/system/ 下会有 rc-local.service 文件,即我们需要的配置文件。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐