专业实验Ⅱ-使用Windows开发环境代替redhat9开发环境
前言
研究这个方法的原因是redhat9(这玩意年纪跟我一样大)虚拟机的开发环境属实是不太聪明的样子,不能用chatgpt也就算了(我觉得理论上可行,但配置代理套娃就更不聪明了),vi编辑器更是早该被扔进历史的垃圾桶了,可读性和编辑效率对不了解vi一脉编辑器的开发者来说都极其低下。所以,我想研究一种可以使用GPT和Cline或code等现代化IDE或编辑器的开发环境一定程度上代替redhat9的方法。
于我而言最优的解决方案肯定是直接用Ubuntu代替Redhat9,但在解决了32位兼容性问题、新版本的minicom的配置和bug以及nfs的配置之后,我发现Ubuntu的/目录哪怕在能ping通的情况下也根本无法挂载到试验箱上,后来经过许多不同环境和版本的测试后我发现试验箱只支持nfsv2,而Linux6.2版本及以上的内核对nfsv2的支持已经不是必须的,显然我的6.5版本内核的Ubuntu不支持nfsv2,而为了这种事情降低内核版本就有些舍本逐末了。
第二种方法是直接把装有试验资料的那个ios文件同时挂载到虚拟机和主机上,在主机中编辑完文件后在虚拟机中make(那套工具链不能在Windows下运行),然后通过虚拟机的nfsv2与试验箱连接。但因为一些我没搞明白的原因,我的windows对ios文件根本没有写入权限。但值得一提的是,虽然没法写入,但是是可以读取的,可以用这种方法导出代码并喂给GPT。不过不能写入意味着需要在vi里手敲代码。
第三种方法是在把Redhat9的根目录挂载到试验箱的同时挂载到Windows,这样也可以实现在Windows环境下编辑代码。Windows10/11专业版自带nfs客户端,在控制面板中打开就可以直接在cmd使用。经过测试,/目录直接无法挂载,退而求其次可以挂载2410RP_linux目录,但是跟第二种方法的问题一样,只能读不能写,原因未知。
第四种方法是Redhat9联网后用邮件附件传输,但这种方法像有什么大病,还不如用tftp等使用ftp协议的文件传输软件。
第五种方法是对第三种方法反其道而行之,既然将Redhat9的目录挂载到Windows下无法写入,那只要把Windows的目录挂载到Redhat9下不就好了。这种方法虽然跟试验箱之间隔了一个虚拟机,但是是我能想到的比较好的折衷方案了。
一、配置Windows的NFS服务器
参考了windows上搭建NFS服务器–haneWIN_hanewin nfs-CSDN博客的配置教程以及haneWIN搭建Win10 NFS服务器_hanewin nfs server-CSDN博客的防火墙配置。
-
在hanewin官网下载安装程序并安装。
-
如图所示配置。
先点击编辑输出文件,然后添加②那行,c:\D\lab\dev 是共享的文件夹路径,-public表示公共权限,-name:nfs表示显示为什么名字。
设置完成保存后要重启服务。
可以选择把装着实验代码的IOS文件右键装载后进去把所有实验代码全复制到刚刚建的共享目录中,比较方便。
- 配置Windows防火墙
防火墙配置可以参考haneWIN搭建Win10 NFS服务器_hanewin nfs server-CSDN博客这篇文章中的配置方法,觉得配置防火墙麻烦可以直接关掉防火墙,但我记得用网线连接试验箱好像不会被防火墙拦住,不过为了避免奇奇怪怪的问题最好还是配置一下或关掉。
二、Redhat9中的配置
-
按之前的教程配置eth0的网络,务必保证虚拟机和主机在同一网段,子网掩码一致,可以通过虚拟机和主机互相ping来验证是否联通。主技能ping通虚拟机但虚拟机ping不通主机可能是因为被Windows防火墙拦住了。
-
在terminal中输入
mount <服务器IP地址>:/<远程共享目录> /<本地挂载点>
比如,我的主机IP是192.168.0.15,我给共享目录起名nfs,并把实验代码全部复制了进去,且为了方便我清空了Redhat9中那个Experiment_Key目录,新建了一个NFS目录并把我的共享目录挂载到了此目录下,那我的挂载命令应该是
mount 192.168.0.15:/nfs /2410RP_linux/NFS
至此,配置完成。效果演示详见我的B站演示视频
但不要学我视频里配置eth0的方法,我在校园网下,所以按照校园网IP配置的,正常应该按实验指导书里配置。