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

相关推荐
Zhou14113610 分钟前
SpringMVC_02_注解开发实战
开发语言·windows·python
AI智讯中枢12 分钟前
高性能 C++ 实战 (五):perf+FlameGraph 火焰图生产实战,精准定位 CPU / 缓存 / 锁瓶颈,避坑 + 完整实操案例
linux·c++·性能调优·性能分析·perf·flamegraph·火焰图
xbzb1 小时前
Linux SELinux 安全加固与标签排错手册
linux·运维·安全
江屿风1 小时前
【Linux系统】【从【收尾】缓冲区到【新开】磁盘块:一节课打通文件系统底层原理】流食般投喂
linux·运维·服务器·人工智能·笔记
Pointer Pursuit1 小时前
编辑器Vim
linux·编辑器·vim
_upupup1 小时前
Linux中的权限解析
linux·服务器
路漫漫其修远兮sjw1 小时前
Linux 运维知识点笔记(中级)
linux·运维·笔记
石一峰6991 小时前
Linux INPUT 与 I2C 子系统关联
linux·运维·计算机外设
宵时待雨2 小时前
linux笔记归纳24:多路转接select
linux·服务器·笔记·高并发
RISCV_Explorer2 小时前
技术指南:从总线协议到软件可见行为——RISC-V 多核缓存一致性的 Linux 实践
linux·缓存·risc-v