共享文件夹设置:让Windows和Ubuntu能方便的传输文件

目录

一、Windows端创建共享文件夹

二、Vmware设置

三、Ubuntu设置

(1)检验上述操作是否成功

(2)创建hgfs目录

(3)挂载共享文件夹

(4)验证是否挂载成功

四、设置开机自启动


在学习驱动开发时,我们必须得把Linux内核、设备树放到Ubuntu下,才能后续对其进行修改、编译等操作。不过在具体实操的时候发现高版本的Ubuntu(2024版本)对于交叉编译器可能不适配,经过查阅资料发现18.04版本是最兼容的,于是我们将Ubuntu的版本回退到18.04进行开发。

但是却发现Ubuntu18.04与新版VSCode又不兼容了,而如果贸然更新Ubuntu的依赖项则可能破坏原有的开发环境,所以只能从Windows方面入手,尝试在Windows本地编写代码,通过类似NFS的方式传输到Ubuntu中。

通过配置共享文件夹(HGFS是Vmware内置的极简通信软件工具包,相较于NFS需要配置ip等繁琐操作极为方便),我们可以直接在 Windows 本地的 VSCode 中编辑内核源码、驱动文件,保存的同时,文件会实时同步到 Ubuntu 虚拟机中,省去了手动传输、同步的步骤。同时,我们也可以在 Ubuntu 中直接访问这些文件,执行交叉编译、设备树修改等操作,完美解决了版本兼容和文件同步的痛点,让开发流程更顺畅高效。

一、Windows端创建共享文件夹

共享完成后会弹出下列的路径,直接点完成即可。

可以按照下面的方式确认一下是否设置好了。

到这里已经基本设置好了共享文件夹,但是还需要接着设置Windows操作系统的网络和共享策略是否需要密码,这是因为我们的共享文件夹是基于网络共享的。

二、Vmware设置

三、Ubuntu设置

(1)检验上述操作是否成功

在Ubuntu系统中输入以下命令:

bash 复制代码
vmware-hgfsclient

它的全称是:VMware Host-Guest File System(主机 - 客户机文件系统) ,这是Vmware自带的软件工具,而最后的client则表示当前Ubuntu是以客户端的方式运行的,主机端则是Windows。

如果出现了我们刚刚设置的共享文件夹,则说明前面的配置是正确的。 (2)创建hgfs目录

虽然这个目录路径、目录名字不是强制要求一定写成这个。但是Linux既然提供了mnt文件夹,就是希望我们把挂载的目录都放在这里进行管理,而hgfs则是见名知义,让其他人一看就知道这是Ubuntu和Windows之间传输文件的文件夹。

cpp 复制代码
mkdir /mnt/hgfs

(3)挂载共享文件夹

我们刚刚仅仅只是创建了一个文件夹载体,但是并没有实际和Windows的文件夹建立连接。

于是我们现在

cpp 复制代码
sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other -o uid=1000 -o gid=1000 -o umask=022

这句代码的含义解释如下,大家了解即可。市面上那么多软件我们不可能每个都会用,必要的时候查资料即可:

(4)验证是否挂载成功

四、设置开机自启动

首先用下面的命令使用vim打开这个配置文件。

其中etc是Linux下的核心配置文件目录,全称是Editable Text Configuration(可编辑文本配置)。你可以理解成文字版本的控制面板,当你对其中文件进行修改的时候,就是在打开Windows的控制面板进行一些配置项设置。

而fstab全称是 File System Table(文件系统表),他就是Linux专门用来管理文件挂载的配置文件,所以我们必须去修改这个文件,才能实现开机自动挂载的效果。

cpp 复制代码
sudo vim /etc/fstab
cpp 复制代码
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other,uid=1000,gid=1000,umask=022 0 0

sudo mount -a这句代码就是在模拟开机自启动的环节,让Linux系统重新读取/etc/fstab文件,并且把里面所有的自动挂载配置项都执行一遍。这一步建议大家测试一下,毕竟有可能有的系统并不兼容这个配置项,导致Linux系统卡住都进不来命令行。(我之前在使用开发板的Linux系统时候,胡乱设置了一些配置项,导致Linux直接变砖,后面重新烧录系统才救回来)

注意:这里需要你当前的目录不在/mnt/hgfs下,否则可能出现busy的错误信息。

相关推荐
Johny_Zhao2 小时前
网络安全等级保护测评实施方案
linux·网络·人工智能·网络安全·信息安全·云计算·等保测评·系统运维·itsm
落羽的落羽3 小时前
【AI】快速理解AI应用的相关名词概念
linux·c++·人工智能·python·计算机网络·算法
刚入门的大一新生3 小时前
Linux-进程控制
linux·运维·服务器·c++
上火的金鱼妹3 小时前
K8S基础组件作用和关系整理
linux·运维·服务器·kubernetes
Vcaker3 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
刃神太酷啦3 小时前
Redis 进阶核心:持久化 (RDB/AOF)、事务与主从复制全解析----《Hello Redis!》(5)
linux·c语言·数据库·c++·redis·缓存·bootstrap
编程的一拳超人3 小时前
DeepSeek Harness Linux/macOS/Windows 本地下载、启动与模型配置指南
linux·windows·macos·deepseek
时凌云.4 小时前
【2026最新】JDK 下载安装与环境配置全教程(Windows/Mac/Linux 三平台,零基础友好)
java·linux·macos
AIGC小尼4 小时前
Windows 本地 AI 漫剧全自动生产线部署完整教程(零基础、全指令、带源码、模型配置、排错方案)
人工智能·windows·ai漫剧
不懂的浪漫4 小时前
ToDesk 连接 Linux 后分辨率过低的解决方法
linux·运维·数据库