共享文件夹设置:让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的错误信息。

相关推荐
A小辣椒18 分钟前
TShark:基础知识
linux
AlfredZhao2 小时前
OCI 明明分配了 200G 系统盘,为什么 df 只看到 30G?
linux·oci
AlfredZhao17 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户9718356334661 天前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪1 天前
linux 拷贝文件或目录到指定的位置
linux
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush42 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5202 天前
Linux 11 动态监控指令top
linux
qq_369224332 天前
Windows全系通用!ntdll.dll文件丢失、报错、闪退问题的完整排查与修复教程
windows·dll·dll修复·dll丢失·dll错误
不会C语言的男孩2 天前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言