VMWARE使用NAT方式徹底解決開發板無法掛載ubuntu文件的問題

2020-08-25 韋東山嵌入式Linux


來源:百問網

作者:韋東山

本文字數:6497,閱讀時長:8分鐘

我們寫過很多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。

安裝方法見下圖:

圖1

圖2

圖3

圖4

圖5

圖6

圖7

圖8

圖9

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:如下圖所示:

圖10

② 解壓Ubuntu映像文件,然後點擊「打開虛擬機」打開前面解壓後的ubuntu文件「Ubuntu 18.04_x64.vmx」

如下圖所示:

圖11

③ 打開並點擊「播放虛擬機」啟動:

如下圖所示:

圖12

④ 第一次啟動Ubuntu時,選擇默認的「我已複製該虛擬機」,啟動後輸入密碼「123456」回車即可登錄::

圖13

注意:虛擬機默認沒有開啟小鍵盤,如果使用小鍵盤輸入,請先開啟小鍵盤。如下圖所示:

圖14

  1. 打開終端
    我們要輸入各種命令,需要先打開終端。

點擊Ubuntu桌面左上角圖標,輸入「term」可以得到圖中藍框中的「Terminal」程序,運行它,如下圖所示。

圖15

然後就可以在裡面執行各種命令了。


  1. 配置網絡

重點來了,以前我們在VMware中使用橋接,這需要保證Windows、Ubuntu、開發板三者互通,而很多人的電腦有多個網卡,這涉及的網絡設置太複雜了。

現在我們使用NAT方式,這樣會簡單很多。

a. 設置Ubuntu使用NAT網絡先關閉VMware中的Ubuntu,在VMware界面設置Ubuntu使用NAT,如下圖:

圖16

然後啟動Ubuntu,打開終端,執行ifconfig命令,確定網卡IP,如下圖所示,記住這個IP(192.168.75.128,也許你的跟它不一樣),後面要用:

圖17

b. 設置NAT網絡的埠映射

在NAT網絡下,外面的設備無法看到Ubuntu,要想開發板能訪問到Ubuntu,需要進行埠映射。

先關閉Ubuntu,再關閉VMware,才能設置。

我們需要映射這幾個埠:22(ssh埠)、111(rpc埠)、2049(nfs埠)、9999(mountd埠)。這樣,開發板訪問Windows的這些埠時,才可以訪問到Ubuntu。

先使用管理員身份運行「虛擬網絡編輯器」,如下圖所示:

圖18

注意:如果按上述方法找不到虛擬網絡編輯器,請按如下方法打開:

圖19

如果還是找不到,請核實是否用的是和我們一樣版本的虛擬機軟體。

然後,如下圖設置埠映射:

圖20

設置好後,啟動VMware、啟動Ubuntu,可以再打開終端,測試網絡,如下圖所示:

圖21

c. 修改Ubuntu的mountd埠

在NAT網絡下,要想開發板能通過NFS掛載Ubuntu,需要修改mountd埠為9999

如果你還不會用vi命令,可以在Ubuntu桌面啟動終端,執行以下命令,用GUI工具修改:

sudo gedit /etc/services

命令解釋:

① 修改/etc/services:

添加2行:

mountd 9999/tcp

mountd 9999/udp

如下圖操作:

圖22

② NFS重啟:

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

③ 查看埠:

sudo rpcinfo -p

如下圖操作:

圖23

  1. 配置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密碼和選擇對應的系統,如下圖所示:

圖24

可能會出錯:

圖25

執行命令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

配置成功如下圖:

圖26

注意:如果Ubuntu無法上網,請參考後面《 配置網絡》進行設置。


  1. 默認不能使用root用戶登錄
    我在開發過程中從沒用過root用戶,要使用root權限時可以在命令前加上「sudo」,比如「sudo ps -a」。

如果你就是喜歡用root用戶,可以按下圖操作,先給root用戶設置密碼,以後就可以用root用戶登錄了:

圖27


  1. BIOS上啟動虛擬化(virtualization )

因為100ask-vmware_Ubuntu18.04用到了Virtualization Technology(VT)技術大部分電腦的BIOS已經啟動了虛擬化,可以打開設備管理器確認這點,如下圖:

圖28

圖29

如果上圖中虛擬化沒有顯示為「已啟動」,需要重啟電腦進入BIOS啟動虛擬化。各個電腦的BIOS設置界面可能不一樣,下面的步驟只是示例。

① 進入BIOS

開機或重啟電腦過程中,在自檢畫面處反覆按F2鍵(註:部分機型使用Fn+F2)進入BIOS Setup設置界面。

② 找到虛擬化菜單

用鍵盤的右方向鍵選中 「Configuration」菜單,然後使用下方向鍵選中「Intel Virtual Technology」選項並回車,如下圖所示:

圖30

③ 使能虛擬化

在彈出的菜單中,選擇「enable」並回車,如下圖所示:

圖31

④ 保存

最後按鍵盤的F10熱鍵(註:部分機型需要配合Fn+F10)調出保存對話框,選擇「Yes」保存退出並自動重啟電腦,如下圖所示:

圖32


  1. 關閉防火牆

步驟如下圖所示:

圖33

圖34

圖35

圖36

圖37


  1. 常見問題
    如果Windows無法遠程登錄Ubuntu,使用Filezilla無法連接Ubuntu、開發板無法通過NFS掛載Ubuntu,那麼很可能是防火牆的問題,或是埠被佔用了。

埠被佔用時,很可能是VMware的NAT服務,可以如下關閉:

圖38

使用Ubuntu:遠程登錄、傳文件、NFS如果照著本節操作不成功,請確認:

① 在VMware裡是否設置Ubuntu使用了NAT網絡;

② 是否使用「虛擬網絡編輯器」設置了埠映射。

③ 開發板能否PING通Windows,或是Windows能否PING通開發板,只要有一邊通就可以。


  1. 驗證網絡
    ①. 幾個概念
    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命令,如下圖。

圖39

③. 驗證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,如下圖:

圖40

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

圖41

b. Windows ping Ubuntu:

如果Windows開了防火牆,Ubuntu也無法ping通Windows,但是沒關係,只要Ubuntu能ping通外網就表示網絡沒問題。

先確定Ubuntu的IP,打開終端,執行ifconfig命令,確定網卡IP,如下圖所示,記住這個IP(192.168.75.128,也許你的跟它不一樣),後面要用:

啟動Windows命令行,ping Ubuntu的IP即可,如下圖:

圖42

④ . 開發板網絡驗證以前VMware使用橋接網絡時,Windows和Ubuntu是同等的地位,要保證Windows、Ubuntu、開發板三者互通,設置比較複雜。

現在VMware使用NAT,或是使用Docker,只需要保證Windows和開發板二者互通。複雜的情況在於有些Windows電腦有多個網卡,開發板要跟哪一個網卡互PING?列圖如下:

a. 開發板網線直接連接Windows的有線網卡,或是通過路由器連接到Windows的有線網卡:

圖43

注意:非常不建議開發板網線直連Windows。

在上圖的連接中,開發板的IP、Windows有線網卡的IP,要處於同一網段。如果開發板、Windows有線網卡無法自動獲得IP,需要自己去設置。

b. 不使用電腦的有線網卡:在下圖的連接中,開發板IP、Windows WIFI網卡的IP,要處於同一網段

圖44

驗證開發板的網絡時:

(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,如下圖手工設置:

圖45

圖46

圖47

圖48

圖49

圖50

③ 手工設置開發板IP:

開發板的IP設置方法很簡單,打開串口連接開發板,啟動開發板進入Linux,執行如下命令即可:

ifconfig eth0 192.168.1.123 // 假設設置開發板IP為192.168.1.123

注意:這樣手工設置的開發板IP在下次重啟後無效,又需要再次設置。

設置好後,就可以在Windows命令行ping開發板的IP;或是在開發板串口裡ping Windows網卡A的IP。只有有一個方向通,就表示沒問題了。

圖51

④ 遠程登錄Ubuntu
安裝、運行MobaXterm,建立Session:

圖52

按上圖操作後,在MobaXterm左側就可以看到這項,雙擊它就可以登錄Ubuntu,然後就可以執行各種Linux命令了:

圖53

⑤ Windows和Ubuntu傳文件雙擊打開FileZilla後,按下圖操作:

圖54

在Filezilla中,左邊是Windows文件,右邊是Ubuntu的文件,如下圖:

圖55

⑥ 開發板掛載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,如下圖:

圖56

相關焦點

  • NFS掛載的2種方式
    此帖就是解決NFS相關的問題,希望對初學者有所幫助。僅用flash上的根文件系統啟動,手工MOUNT NFS 介紹完畢強烈推薦這種方式,因為簡單。隨時想掛載就掛載,Ubuntu系統即使不開機(前提是ubuntu ip沒變)也不影響開發板的啟動。而 7.2 使用NFS作為根文件系統來啟動 ,若Ubuntu未啟動或者文件系統有問題,開發板根本無法開機,嚴重影響體驗。
  • VMware15 ubuntu虛擬機啟用共享文件夾教程
    如果需要把windows系統的文件複製到ubuntu虛擬機裡面,就需要設置共享文件夾。下面給大家介紹一下如何設置。首先需要在ubuntu下安裝vmware-tools來實現文件共享,首先安裝vmware-tools,點擊虛擬機菜單欄中的虛擬機-->安裝VMware Tools,打開vmware tools安裝介質。
  • vmware常見問題
    sudo apt-get install open-vm-tools open-vm-tools-desktop open-vm-tools-dkms二、ubuntu安裝界面顯示不完整或者KDevelop開發程序嚮導界面顯示不完整等情況,解決辦法:按住Alt鍵,然後滑鼠左鍵點擊界面窗口,可以移動窗口到合適的位置,將button按鈕顯示出來。
  • vmware虛擬機系統Ubuntu安裝vmware tools工具 - 網際網路上的小蜘蛛
    在VMware Workstation虛擬機中,如果虛擬Ubuntu系統未安裝vmware tools工具,滑鼠操作起來將不是很方便,需要使用熱鍵Ctrl+Alt熱鍵切換出來。下面,介紹一下如何在ubuntu虛擬機中安裝vmware tools工具。
  • Linux下VMware workstation使用技巧三則
    技巧一、實現VMWare橋接無線網卡上網,不再只限於用NAT 環境:宿主機為UBUNTU8.04_amd64,VMware workstation 6.0.x在UBUNTU下(實際上是在LINUX作宿主機的情況下)使用VMWare一直有兩個大家公認的問題:一是音效卡佔用的問題;二是橋接無線網卡的問題。
  • 小白今天被ubuntu折騰了一天
    今天沒事的時候,就隨便找了一個ubuntu最新版本的iso在vmware上安裝,結果翻車了,把我折騰了一天。下面總結一下,我在這一次中遇到的一些問題及解決方法。1、在安裝的時候要選擇好中文簡體,否則後面安裝完之後,要下載相應的語言基礎包才可以,而且它這個下載的服務的網速很慢。
  • 在Ubuntu 18.04中安裝VMware工具
    簡介VMware是一個成熟而穩定的虛擬化解決方案,它允許您在一臺機器上運行多個獨立的作業系統。在使用VMware作為虛擬機監控程序時,在客戶端安裝VMware工具對於提高虛擬機性能非常重要。VMware工具提供了一些有用的功能,如更快的圖形性能、共享文件夾、共享剪貼板、拖放操作等。
  • 【小技巧】用SD卡傳文件到開發板就是這麼簡單!
    主機開發環境: Ubuntu9.10內核: Linux2.6.22.6(資料光碟-> systems目錄)文件系統
  • 原創試用 | 樹莓派3B+測評(二)ubuntu系統燒錄+彩虹屏問題解決
    續上次開箱測評後,對樹莓派3B+的硬體資源有了了解,接下來需要給樹莓派安裝支持ROS系統的ubuntu 16.04 系統;但是在常規安裝中出現了以下問題,並研究之後做出解決方法。問題:1.按照官方教程燒錄ubuntu-mate-16.04.2-desktop-armhf-raspberry-pi.img.xz到樹莓派3B+後。
  • stm32mp157開發板入門使用教程
    燒寫整個系統或更新部分系統》前面也介紹了在開發板上使用 NFS 跟 Ubuntu 互傳文件,如果傳文件時想使用更多的方法,可以參考以下章節:《第八章 PC 和開發板之間傳輸文件》如果想測試開發板的硬體,可以參考以下章節
  • Ubuntu配置安裝ARM Linux交叉編譯環境完整流程
    今天花了一整天的時間來解決insight 的埠無法修改的問題,雖然是解決了,但是也付出了很大的代價,花了一整天時間+毀掉了以前的系統。
  • 文件系統的創立與掛載詳細步驟
    ubuntu下文件系統的掛載與卸載目前,Linux系統已成為全球應用發展最快的作業系統,其應用範圍之廣,如在系統級的資料庫、消息管理和Web應用方面,在桌面辦公方面,在各種嵌入式開發方面等。如下是對文件系統的創立和掛載的詳細步驟1.Ubuntu下的目錄結構2.文件系統的創立3.文件系統的掛載與卸載
  • CuteFTP使用說明及IP位址設置
    下的FTP命令: sudo service vsftpd restart3、ifconfig eth0 192.168.48.2 (在u-boot、ubuntu中使用此命令修改網絡參數)4、/home/book/workspace/mnt *(rw,sync,no_root_squash) 手動掛載文件系統(內核啟動以後手動掛載): mount -t nfs -o nolock,vers=2 192.168.48.103:/home/book
  • Ubuntu系統掛載新硬碟的方法
    1、編輯虛擬機設置,新增一塊虛擬硬碟,同新安裝虛擬機之前;2、查看磁碟容量和分區情況,但是不能查看未掛載分區
  • STM32MP157開發板入門使用教程
    在開發板系統被破壞時,可以參考以下章節:《第七章 燒寫整個系統或更新部分系統》前面也介紹了在開發板上使用 NFS 跟 Ubuntu 互傳文件,如果傳文件時想使用更多的方法,可以參考以下章節:《第八章 PC 和開發板之間傳輸文件》如果想測試開發板的硬體,可以參考以下章節:《第四章 開發板板載功能測試》二、100ask_stm32mp157 開發板簡介
  • CentOS7.4中Docker以rw方式掛載volume報Permission denied問題
    一、問題背景今天在CentOS7.4.1708上實踐Docker掛載volume,一切按照正常流程進行操作,無論是創建目錄、創建文件、還是查看、編輯主機上創建好的文件,都報"Permission denied",具體如下:[root@ChatDevOps ~]# docker run -it -v /data/chatdevops:/data/webapp
  • VMware中 虛擬機設置共享文件目錄
    第二步: 打開VMware Workstation,選擇你的ubuntu虛擬機,點擊右下方的虛擬機編輯;第三步: 在選項欄下,點擊共享目錄,選擇總是啟用;然後設置WinLinShare路徑為共享目錄;第四步:點擊確定;並打開虛擬機;第五步: 一般共享的存儲目錄
  • 如何解決網絡安全測試工具kali和主機之間無法共享文件的問題
    無法複製手動安裝VMwareTools步驟如下:1.掛載鏡像文件。虛擬機->設置->硬體->CD/DVD.右邊「連接」下面選擇「使用IOS鏡像文件」,在VMware 的安裝目錄下,如:C:\Program Files (x86)\VMware\VMware Workstation,選擇目錄下面linux.iso
  • 小白在vmware安裝ubuntu系統時遇到的operating system not found
    今天在vmware下安裝ubuntu時出現operating system not found錯誤提示。之前安裝的時候都直接按提示下一步的做法做就能順利完成了。但是我刪了原來的虛擬系統重新安裝也是提示這個錯誤。
  • 2020最新版VMware安裝Ubuntu20.04教程(巨細),文末有福利!
    VMware虛擬機的下載首先進入VM官網VMware 中國 – 雲計算、移動化與網絡和安全解決方案VMware 中國 – 雲計算、移動化與網絡和安全解決方案www.vmware.com2.點擊如圖所示的下載按鈕3.找到VMware workstation Pro,點擊下載產品。