【虚拟机】Ubuntu18.04 设置共享文件夹(解决/mnt 目录下没有 hgfs 目录)

本文介绍了如何在Windows主机上创建共享文件夹,并在Ubuntu虚拟机中访问和挂载这些共享文件。首先在Windows创建共享文件夹,然后在虚拟机设置中添加共享。在Ubuntu中,通过安装VMwaretools,手动创建/mnt/hgfs目录并挂载共享文件夹,最后设置开机自动挂载。如果/mnt/hgfs未显示共享文件夹,需要检查挂载和设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         目录

1、Windows创建一个共享文件夹

2、在虚拟机的设置中选择Windows下的共享文件夹

3、在Ubuntu中查看共享文件夹

4、解决/mnt 目录下没有 hgfs 目录

5、设置共享文件夹以后,/mnt/hgfs下没有出现共享文件夹 


这种方式使用的前提是Ubuntu虚拟机和Windows系统在同一主机上

1、Windows创建一个共享文件夹

该共享文件夹可以被Windows和Ubuntu访问,需要注意的是,Ubuntu在共享目录下的一些操作会受到限制,因为Ubuntu的文件权限管理和用户管理和Windows不同,所以对文件的操作会受到限制。

这里就在C盘创建一个Ubuntu12-Share的共享文件夹。

2、在虚拟机的设置中选择Windows下的共享文件夹

依次选择“虚拟机 —— 设置”

然后按照如下顺序选择

看到添加向导以后,点击“下一步” 

3、在Ubuntu中查看共享文件夹

 共享文件夹在 /mnt/hgfs 目录下,如果 /mnt 下没有 hgfs 目录,请跳转到最后一个模块

我们向Windows共享文件夹中拷入的内容,在Ubuntu中也可以访问到

4、解决/mnt 目录下没有 hgfs 目录

(1) 安装VMWare tools

这个是虚拟机管理工具,一方面是为了查看共享目录是否设置成功,另一方面是为了下面做铺垫

sudo apt-get install open-vm-tools

查看共享目录,如果出现了共享目录的名字,说明共享目录是设置成功的。

vmware-hgfsclient

(2) 手动在 /mnt 下创建 hgfs 目录

创建hgfs目录,然后将你的共享目录挂载到 hgfs 目录下(以后你写入到共享目录中的内容,可以在Ubuntu中的 hgfs 目录下找到)

sudo mkdir -p /mnt/hgfs
sudo chmod a+w /mnt/hgfs
# vmhgfs-fuse .host:/ 挂载目录
vmhgfs-fuse .host:/ /mnt/hgfs/
附加选项解析
-o allow_other 允许其他用户使用该共享目录

提示:  其他附加选项可以输入 vmhgfs-fuse -h 查看

(3) 添加开机自动挂载

上述的挂载只是本次登录有效,这里最好设置成每次开机就自动挂载,在 /etc/fstab 文件中添加如下内容,这一句内容对应了六个字段:

<file system> <mount point> <type> <options> <dump> <pass>

.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0

注意: 若添加以后,出现了开启无法正常启动(无法进入到桌面模式),可能是添加了错误的附加选项,比如这里的 allow_other 就是附加选项。此时的解决方案是,通过命令行编辑器删除添加的这句话就可以重新进入到桌面模式了。

(4) 测试

我们在Windows下的共享目录中添加一个文件夹,在Ubuntu中的 /mnt/hgfs 下也可以看到该文件夹

5、设置共享文件夹以后,/mnt/hgfs下没有出现共享文件夹 

主要原因可能是没有将你的共享目录挂载到 /mnt/hgfs 目录下,所以需要自己手动挂载一下

(1) 查看共享文件夹的名称

这一步的目的是确认共享文件夹是否设置成功。

vmware-hgfsclient

(2) 安装虚拟机工具包

sudo apt-get install open-vm-tools

(3) 手动挂载(开机自动挂载)

在命令行输入如下指令来手动挂载。但是仅本次登录有效

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

我们可以修改 /etc/fstab 文件,并添加如下内容,这样的话就可以实现开机自动挂载到 /mnt/hgfs 目录下了

.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0

注意: 若添加以后,出现了开启无法正常启动(无法进入到桌面模式),可能是添加了错误的附加选项,比如这里的 allow_other 就是附加选项。此时的解决方案是,通过命令行编辑器删除添加的这句话就可以重新进入到桌面模式了。

### 解决Ubuntu系统中`/mnt`路径下共享文件夹的问题 #### 1. 挂载Windows共享文件夹至指定子目录 对于仅能挂载一级目录的情况,可以通过创建软链接来间接实现多级目录的效果。先按照常规方法将共享文件夹挂载到顶级目录如`/mnt`,再建立指向实际工作位置的快捷方式。 ```bash ln -s /mnt/source_folder /desired/path/to/link_name ``` 为了直接挂载到特定子目录,在`/etc/fstab`配置项里应确保目标路径已存在且具有适当权限[^1]: ```bash //server/sharename /mnt/subdir cifs username=user,password=pass,iocharset=utf8,file_mode=0777,dir_mode=0777 0 0 ``` 上述命令中的`file_mode`和`dir_mode`参数用于设定新创建文件及目录默认权限,可调整以适应具体需求。 #### 2. 处理只读属性问题 针对无法编辑挂载后的文件这一情况,除了确认`smb.conf`内相关选项外,还需注意客户端操作系统本身的用户映射设置以及服务器端共享资源的安全策略。 在Ubuntu侧,可通过向`fstab`添加额外参数使挂载点具备写入能力: ```bash credentials=/path/to/.smbcred,gid=users,fmask=111,dmask=000,nounix,vers=1.0 ``` 这里引入了一个凭证文件`.smbcred`存储登录信息,并指定了组ID(`gid`)、文件掩码(`fmask`)目录掩码(`dmask`)等细节。 另外一种方案是在启动脚本中利用FUSE技术动态加载远程卷,如下所示[^3]: ```bash #!/bin/bash sudo vmhgfs-fuse .host:/shared_directory /mnt/target_dir \ -o allow_other \ -o uid=$(id -u $USER) \ -o gid=$(id -g $USER) \ -o umask=022 exit 0 ``` 此脚本会根据当前用户的UID/GID自动生成合适的访问控制列表,从而绕过传统CIFS/SMB协议可能带来的权限局限性。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值