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

相关推荐
小此方1 小时前
Linux网络(一):揭秘从网络发展哲学到 TCP/IP 协议栈分层设计的设计哲学
linux·网络·tcp/ip
星野爱8951 小时前
远程控制哪家安全性更高?ToDesk、UU远程、向日葵隐私屏深度测评!
linux·运维·网络
ALINX技术博客1 小时前
【黑金云课堂】FPGA技术教程Linux开发:系统定制
linux·运维·fpga开发
ShineWinsu1 小时前
对于Linux:传输层协议UDP原理的解析
linux·c++·面试·udp·协议·传输层·计算机系统
大模型码小白2 小时前
在 Windows 下 Codex 安装、配置与使用详细指南
java·人工智能·windows
小小龙学IT2 小时前
C++ Placement New 与显式析构:手动对象生命周期管理的艺术
c++·windows·mfc
2601_965798472 小时前
How to Build a Custom Artisan Store on WordPress: Crafti Theme Review
linux·服务器·数据库
mounter6252 小时前
深度解析 Linux 内核中的 iomap 子系统:历史、演进、核心机制与未来
linux·文件系统·linux kernel·kernel·iomap
luyun0202023 小时前
论坛里的小工具,吾爱出品
运维·服务器·windows
养海绵宝宝的小蜗4 小时前
LVS(Linux Virtual Server)项目知识点总结
linux·运维·lvs