热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

p8b75m修改bios文件_傻瓜式方法:VMWARE使用NAT方式彻底解决开发板无法挂载ubuntu文件的难题...

VMWARE使用NAT方式彻底解决开发板无法挂载ubuntu文件的问题我们写过很多ping问题的解决方法文章,但是最近我们发现之前用的桥接模式太复杂:需

5fcb886dce1f8f665663c1a092c3ae3d.png

VMWARE使用NAT方式彻底解决开发板无法挂载ubuntu文件的问题

我们写过很多ping问题的解决方法文章,但是最近我们发现之前用的桥接模式太复杂:需要开发板,Windows,ubuntu三者都ping通,步骤太多,很繁琐。最近我们研究出VMware 设置成NAT模式,然后进行端口映射,只要开发板和windows能一边ping通(比如开发板能PINGWindows或windows能PING开发板),开发板就能挂载ubuntu的文件,是怎么做到的呢?下面将系统讲解...

Windows下有很多虚拟机软件,目前市面上流行的有VMware和VirtualBox。VMware分为收费专业版Workstation Pro和非商用免费版Workstation Player,推荐使用Workstation Player。

首先从VMware官网(http://www.vmware.com)下载Workstation Player安装包,或者使用我们提供的安装包。在“网盘BSP包01_Tools (工具)01_Tools.zip”中。VMWare安装软件是:VMware-workstation-full-15.1.0-13591040.exe。

安装方法见下图:

cba0aa42e81210b528d5b4fb79108846.png

77153daa59fcfa85c6a628016ed5e6dd.png

3550b29cc8290b836c803f53737ea721.png

ffe8b13f060aa65c5d2055318940f344.png

50b1c0b3cbaecb76eb85d747a4b11fe6.png

d8b0f08973cc21cf51f3d5d1e4be8e9a.png

3560bdfe79dec76b537bfd219cbdc13f.png

035a59e817af134ff4693447c49c0f9a.png

3fd7c7349173eec05ab44e831301b1cf.png

VMWare安装完成后,有两个软件,它们都可以使用,建议使用第2个:

① Vmware Workstation Pro:这是收费的,可以试用30天。

② Vmware Workstation 15 Player:这是免费的。

1. 使用虚拟机打开Ubuntu

解压“网盘BSP包01_Tools (工具)100ask-vmware_Ubuntu18.04.7z”,它是Ubuntu映像文件。

注意:

  • 100ask-vmware_Ubuntu18.04不支持win7 32位和Windows xp电脑系统,有疑问请联系技术支持。

① 以管理员身份打开Vmware Workstation 15 player:如下图所示:

70f66ecea8003a32da47e658595dfa40.png

② 解压Ubuntu映像文件,然后点击“打开虚拟机”打开前面解压后的ubuntu文件“Ubuntu 18.04_x64.vmx”

如下图所示:

416ec3d7ff3b7905c400b13de0fab8cc.png

③ 打开并点击“播放虚拟机”启动:

如下图所示:

b8e936d36377a3c0ce015cc9fc5d6cba.png

④ 第一次启动Ubuntu时,选择默认的“我已复制该虚拟机”,启动后输入密码“123456”回车即可登录::

91cb0c6cc2d1bd604fb9df4240084868.png

注意:虚拟机默认没有开启小键盘,如果使用小键盘输入,请先开启小键盘。如下图所示:

6c25c571e32db9aafde0668f6787a8e3.png

2. 打开终端

我们要输入各种命令,需要先打开终端。

点击Ubuntu桌面左上角图标,输入“term”可以得到图中蓝框中的“Terminal”程序,运行它,如下图所示。

7e16b6b4bfde80c37f34103b25cb8706.png

然后就可以在里面执行各种命令了。

3. 配置网络

重点来了,以前我们在VMware中使用桥接,这需要保证Windows、Ubuntu、开发板三者互通,而很多人的电脑有多个网卡,这涉及的网络设置太复杂了。

现在我们使用NAT方式,这样会简单很多。

a. 设置Ubuntu使用NAT网络

先关闭VMware中的Ubuntu,在VMware界面设置Ubuntu使用NAT,如下图:

a26a2d8e24d9a0bf7afc2c2126e25a93.png

然后启动Ubuntu,打开终端,执行ifconfig命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后面要用:

473e525ccb3375eaa6f5b1285ec1e389.png

b. 设置NAT网络的端口映射

在NAT网络下,外面的设备无法看到Ubuntu,要想开发板能访问到Ubuntu,需要进行端口映射。

先关闭Ubuntu,再关闭VMware,才能设置。

我们需要映射这几个端口:22(ssh端口)、111(rpc端口)、2049(nfs端口)、9999(mountd端口)。这样,开发板访问Windows的这些端口时,才可以访问到Ubuntu。

先使用管理员身份运行“虚拟网络编辑器”,如下图所示:

2d66f6efe27e8940bd8328b8197584d5.png

注意:如果按上述方法找不到虚拟网络编辑器,请按如下方法打开:

322562e7abae5989f96a72051ee09219.png

如果还是找不到,请核实是否用的是和我们一样版本的虚拟机软件。

然后,如下图设置端口映射:

238049f1b127496927e328d31748aa53.png

设置好后,启动VMware、启动Ubuntu,可以再打开终端,测试网络,如下图所示:

cc76f194c7520b2789f4258723b80c0a.png

c. 修改Ubuntu的mountd端口

在NAT网络下,要想开发板能通过NFS挂载Ubuntu,需要修改mountd端口为9999

如果你还不会用vi命令,可以在Ubuntu桌面启动终端,执行以下命令,用GUI工具修改:

sudo gedit /etc/services

命令解释:

① 修改/etc/services:

添加2行:

mountd 9999/tcp

mountd 9999/udp

如下图操作:

1d8884950001e33381ae01d88081611d.png

② NFS重启:

sudo /etc/init.d/nfs-kernel-server restart

③ 查看端口:

sudo rpcinfo -p

如下图操作:

59a67002e4c35d16731b03446471cfd8.png

4. 配置Ubuntu

确保Ubuntu能上网之后,使用下面命令一键配置/初始化开发环境((其实就是安装tftp,nfs,vim等软件(欲知更多请阅读脚本Configuring_ubuntu.sh),此脚本只支持Ubuntu-16.04 /Ubuntu-18.04):

book@100ask: ~ $ wget --no-check-certificate -O Configuring_ubuntu.sh https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh

然后输入book密码和选择对应的系统,如下图所示:

0feaef4c0ccf3c0379ee2bae75e05c06.png

可能会出错:

5e794ec748b65983596c58ae1650465b.png

执行命令sudo apt-get update(输入book密码123456后回车)解决报错继续安装,再执行命令即可安装成功:

book@100ask: ~ $ wget --no-check-certificate -O Configuring_ubuntu.sh https://weidongshan.coding.net/p/DevelopmentEnvConf/d/DevelopmentEnvConf/git/raw/master/Configuring_ubuntu.sh && sudo chmod +x Configuring_ubuntu.sh && sudo ./Configuring_ubuntu.sh

配置成功后如下图:

77906e70f19a73ee288f573a62a7bfb7.png

注意:如果Ubuntu无法上网,请参考后面《 配置网络》进行设置。

5. 默认不能使用root用户登录

我在开发过程中从没用过root用户,要使用root权限时可以在命令前加上“sudo”,比如“sudo ps -a”。

如果你就是喜欢用root用户,可以按下图操作,先给root用户设置密码,以后就可以用root用户登录了:

ebbd8e9a9aa0c4b74d90752ff2d35c02.png

6. 在BIOS上启动虚拟化(virtualization )

因为100ask-vmware_Ubuntu18.04用到了Virtualization Technology(VT)技术

大部分电脑的BIOS已经启动了虚拟化,可以打开设备管理器确认这点,如下图:

fb99d8cabf7a878a28f8f6f96d8e4353.png

5f804803e8c2bbf4088867b0c83ebdd3.png

如果上图中虚拟化没有显示为“已启动”,需要重启电脑进入BIOS启动虚拟化。各个电脑的BIOS设置界面可能不一样,下面的步骤只是示例。

① 进入BIOS

开机或重启电脑过程中,在自检画面处反复按F2键(注:部分机型使用Fn+F2)进入BIOS Setup设置界面。

② 找到虚拟化菜单

用键盘的右方向键选中 “Configuration”菜单,然后使用下方向键选中“Intel Virtual Technology”选项并回车,如下图所示:

c7bd0fd3f949d4716fa92aa6b43cf265.png

③ 使能虚拟化

在弹出的菜单中,选择“enable”并回车,如下图所示:

1260116d4b046e557550bfa2c64a4646.png

④ 保存

最后按键盘的F10热键(注:部分机型需要配合Fn+F10)调出保存对话框,选择“Yes”保存退出并自动重启电脑,如下图所示:

2101424baaf9d866e3504869c5e8193d.png

7. 关闭防火墙

步骤如下图所示:

e10817188bb6e42958c047793077ae87.png

c7e7dc682d4225d3e4768229320e1bf6.png

ad651cabaa3830373db956ee5212cfbf.png

5693c7774a033d847c4f092455b40774.png

01b233fe9a4afb2aac5ce2e08b2332de.png

8. 常见问题

如果Windows无法远程登录Ubuntu,使用Filezilla无法连接Ubuntu、开发板无法通过NFS挂载Ubuntu,那么很可能是防火墙的问题,或是端口被占用了。

端口被占用时,很可能是VMware的NAT服务,可以如下关闭:

b8f70f69396460807b1594ada766b557.png

使用Ubuntu:远程登录、传文件、NFS

如果照着本节操作不成功,请确认:

① 在VMware里是否设置Ubuntu使用了NAT网络;

② 是否使用“虚拟网络编辑器”设置了端口映射。

③ 开发板能否PING通Windows,或是Windows能否PING通开发板,只要有一边通就可以。

9. 验证网络

①. 几个概念

IP地址127.0.0.1表示的是“本机”,在Windows上使用127.0.0.1表示的是Windows机器;在开发板上使用127.0.0.1表示的是开发板;在Ubuntu里使用127.0.0.1表示的是Ubuntu。ping 127.0.0.1是永远成功的,它不涉及具体网卡。

Ubuntu的网络都是使用NAT(Network Address Translation,网络地址转换)。

NAT是什么意思?

举个例子,在NAT里,Windows就是一个爱护孩子的父亲,Ubuntu就是受保护的小孩。小孩要买东西,都由他父亲代劳,别人根本不知道这小孩的存在;亲戚想跟小孩谈话,也要经过父亲中转,亲戚不能直接跟小孩接触。

在NAT里,Ubuntu要主动发起网络访问,需要经过Windows代劳,外面的设备只看到Windows发出的网络数据;Windows收到数据的再转发给Ubuntu。

在NAT里,外面的设备比如开发板要访问Ubuntu,也只能通过Windows代劳:开发板是看不到Ubuntu的,开发板是ping不通Ubuntu的。

问题来了,开发板有时候是想访问Windows,有时候是想让Windows代劳去访问Ubuntu,Windows怎么区分?通过端口映射!

比如把Windows的22端口映射到Ubuntu的22端口,当开发板通过端口22(这是SSH端口)访问Windows的IP时,Windows就知道:哦,这22端口数据不是发给我的,是要我转发给Ubuntu的。于是Windows就把数据转发给Ubuntu。这样开发板就可以通过22端口访问Ubuntu了。

再举一个例子,在Windows里通过22端口访问127.0.0.1,就是通过22端口访问Windows自己。但是22端口被映射到Ubuntu去了,所以实际上访问Ubuntu的22端口。

②. 验证Ubuntu的网络

使用NAT时,不需要我们去设置Ubuntu的网络,它会自动获得IP。只要你的Windows电脑可以上网,Ubuntu就可以访问外网。

你可以在Ubuntu中执行“ping news.qq.com”,肯定可以看到有数据返回,同时按键盘“ctrl+c”退出ping命令,如下图。

656e473fe97af37d42cea565a3f2b56c.png

③. 验证Windows和Ubuntu之间的网络

使用VMware时,在Windows命令行可以ping通Ubuntu的IP;Ubuntu也可以ping通Windows的IP。

只要有一个方向能ping通,那证明Windows和Ubuntu之间的网络是通的。

a. Ubuntu ping Windows:

以Ubuntu ping Windows为例,先确定Windows IP,再在Ubuntu中ping Windows(如果Windows开了防火墙,可以无法ping通Windows,这没关系):

怎么确定Windows的IP?在Powershell命令行或Windows命令行中执行ipconfig,如下图:

48116b2667931c04ff4ea233162cbde4.png

这时就可以在Ubuntu命令行中ping windows了,如下:

8dc9444776bd6a75275e369ce30ebfbb.png

b. Windows ping Ubuntu:

如果Windows开了防火墙,Ubuntu也无法ping通Windows,但是没关系,只要Ubuntu能ping通外网就表示网络没问题。

先确定Ubuntu的IP,打开终端,执行ifconfig命令,确定网卡IP,如下图所示,记住这个IP(192.168.75.128,也许你的跟它不一样),后面要用:

473e525ccb3375eaa6f5b1285ec1e389.png

启动Windows命令行,ping Ubuntu的IP即可,如下图:

2281e32162575811119d7dab025540dd.png

④ . 开发板网络验证

以前VMware使用桥接网络时,Windows和Ubuntu是同等的地位,要保证Windows、Ubuntu、开发板三者互通,设置比较复杂。

现在VMware使用NAT,或是使用Docker,只需要保证Windows和开发板二者互通。复杂的情况在于有些Windows电脑有多个网卡,开发板要跟哪一个网卡互PING?列图如下:

a. 开发板网线直接连接Windows的有线网卡,或是通过路由器连接到Windows的有线网卡:

61f224e1def56bf15935442b072bc69b.png

注意:非常不建议开发板网线直连Windows。

在上图的连接中,开发板的IP、Windows有线网卡的IP,要处于同一网段。如果开发板、Windows有线网卡无法自动获得IP,需要自己去设置。

b. 不使用电脑的有线网卡:在下图的连接中,开发板IP、Windows WIFI网卡的IP,要处于同一网段

aced25b7a6aa21a239101e333f157566.png

验证开发板的网络时:

1).首先根据上面2个图确定开发板要跟Windows的哪一个网卡互通,这个Windows网卡称为网卡A。

2) 然后确认一下开发板IP、Windows网卡A IP是否自动获得。如果没有自动获得IP,就需要手工设置IP。

3) 最后再执行ping命令验证:只要有一方能PING通另一方就可以了,不需要两个方向都通。

如果Windows、开发板没有自动获得IP,需要手工设置IP。

怎么手工设置Windows、开发板的IP?

① Windows有多网卡时IP设置原则:

Windows的多个网卡,不能设置为同一网段。

Windows下可能有多个网卡:有线网卡、WIFI网卡。Windows使用WIFI网卡上网时,它的IP一般是自动获得的,我们不能去设置。

如果我们的开发板要跟Windows有线网卡互通,这时要注意:手工设置Windows有线网卡IP时,它不能跟WIFI网卡处于同一网段。比如WIFI网卡是http://192.168.1.xxx,有线网卡的IP就应该设置为192.168.2.yy。

② 手工设置Windows IP:

如果在Windows命令行下执行ipconfig,发现网卡A没有IP,如下图手工设置:

e10817188bb6e42958c047793077ae87.png

7dd1d703039b7c2055564879ddc35c53.png

730d1b4a68803d7210a7256c0949a0ca.png

7eeb8990d555213e8e88e1471bb3c852.png

a48d0b85e2d632226dca24b4e53f191d.png

9c7e04c37209c1bdd3dc7f309567c99c.png

③ 手工设置开发板IP:

开发板的IP设置方法很简单,打开串口连接开发板,启动开发板进入Linux,执行如下命令即可:

ifconfig eth0 192.168.1.13 // 假设设置开发板IP为192.168.1.13

注意:这样手工设置的开发板IP在下次重启后无效,又需要再次设置。

设置好后,就可以在Windows命令行ping开发板的IP;或是在开发板串口里ping Windows网卡A的IP。只有有一个方向通,就表示没问题了。

6dd7112e8cd219d618d0be1a7ecb28d6.png

④ 远程登录Ubuntu

安装、运行MobaXterm,如下建立Session:

bcc40ffdf1506c7f42f65c219b42bb83.png

按上图操作后,在MobaXterm左侧就可以看到这项,双击它就可以登录Ubuntu,然后就可以执行各种Linux命令了:

1af81ae65208155dd966904efe8f76e1.png

⑤ Windows和Ubuntu传文件

双击打开FileZilla后,按下图操作:

aa1aacb57e75c2bcc41c70c36a43062a.png

在Filezilla中,左边是Windows文件,右边是Ubuntu的文件,如下图:

dc1075de2b020f6f850c8108e784cb44.png

⑥ 开发板挂载Ubuntu目录

首先要找出Windows的IP,假设是192.168.1.17(确定IP的方法见后面);然后还要确保开发板能ping通Windows,最后在开发板上就可以执行以下命令挂载NFS了:

mount -t nfs -o nolock,vers=3,port=2049,mountport=9999 192.168.1.17:/home/book/nfs_rootfs /mnt

注意:必须指定port为2049,mountport为9999。

注意:作为初学者,可能你连串口怎么接都还不会,所以这个命令可以先不测试。

怎么确定Windows的IP?在Powershell命令行Window命令行中执行ipconfig,如下图:

48116b2667931c04ff4ea233162cbde4.png

**加运营小助手微信:13163769879 可加入微信群与韦东山老师交流



推荐阅读
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • 深入解析OSI七层架构与TCP/IP协议体系
    本文详细探讨了OSI七层模型(Open System Interconnection,开放系统互连)及其与TCP/IP协议体系的关系。OSI模型将网络通信过程划分为七个层次,每个层次负责不同的功能,从物理层到应用层逐步实现数据传输和处理。通过对比分析,本文揭示了OSI模型与TCP/IP协议在结构和功能上的异同,为理解现代网络通信提供了全面的视角。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • MySQL 5.7 服务端在 Windows 上的安装与配置
    本文详细介绍了在 Windows 系统上安装和配置 MySQL 5.7 服务端的方法,包括 my.ini 配置文件的设置、初始化数据库、启动服务以及设置用户权限等步骤。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 帝国CMS中的信息归档功能详解及其重要性
    本文详细解析了帝国CMS中的信息归档功能,并探讨了其在内容管理中的重要性。通过归档功能,用户可以有效地管理和组织大量内容,提高网站的运行效率和用户体验。此外,文章还介绍了如何利用该功能进行数据备份和恢复,确保网站数据的安全性和完整性。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • 在网络故障排查中,tcpdump 是一款强大的工具,尤其在 Linux 环境下。尽管开发环境中问题较少,但在测试或生产环境中,往往会遇到各种难以预料的异常情况。通过在问题发生的环境中启用 tcpdump 进行抓包,并重现问题,可以获取到宝贵的原始数据,为问题的诊断提供关键线索。本文将详细介绍如何使用 tcpdump 进行实战操作,帮助读者掌握这一技能。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 深入解析Wget CVE-2016-4971漏洞的利用方法与安全防范措施
    ### 摘要Wget 是一个广泛使用的命令行工具,用于从 Web 服务器下载文件。CVE-2016-4971 漏洞涉及 Wget 在处理特定 HTTP 响应头时的缺陷,可能导致远程代码执行。本文详细分析了该漏洞的成因、利用方法以及相应的安全防范措施,包括更新 Wget 版本、配置防火墙规则和使用安全的 HTTP 头。通过这些措施,可以有效防止潜在的安全威胁。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
author-avatar
Smitty
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有