二、QEMU NFS 環境搭建

? 在上一章節中,我們已經成功完成了內核和 busybox 環境的配置。為了進一步提高開發效率,我們可以使用 NFS(Network File System)來掛載根目錄。NFS 允許我們將本地文件系統通過網絡共享給虛擬機使用,這樣在開發過程中,我們對本地文件系統所做的修改可以實時反映到虛擬機中,無需頻繁地重新構建和燒錄根文件系統,從而顯著提高開發效率。

1. Ubuntu網橋配置

1.1 編輯 Netplan 配置文件

在 Ubuntu 20.04 中,Netplan 是默認的網絡配置工具。我們需要編輯 Netplan 配置文件,該文件通常位于 /etc/netplan/ 目錄下,文件名可能類似于 00-installer-config.yaml。使用以下命令打開文件進行編輯:

sudo nano /etc/netplan/00-installer-config.yaml

示例配置如下,假設你的物理網卡名為 ens33,網橋名為 br0

network:version: 2renderer: networkdethernets:ens33:dhcp4: nodhcp6: nobridges:br0:interfaces: [ens33]dhcp4: yesdhcp6: no

以上配置的含義為:

  • ens33:將物理網卡 ens33 的 DHCPv4 和 DHCPv6 功能關閉。
  • br0:創建一個名為 br0 的網橋,將 ens33 添加到網橋中,并開啟網橋的 DHCPv4 獲取 IP 地址功能。

1.2 應用 Netplan 配置

保存文件后,使用以下命令應用 Netplan 配置,使網橋配置生效:

sudo netplan apply

1.3 驗證網橋配置

使用 brctl show 命令查看網橋是否創建成功:

brctl show

若輸出包含類似如下內容,則表示網橋創建成功:

bridge name     bridge id               STP enabled     interfaces
br0             8000.001122334455       no              ens33

在這里插入圖片描述

2. NFS 環境搭建

2.1 安裝 NFS 服務器

sudo apt-get install nfs-kernel-server

2.2 創建 NFS 共享目錄

sudo mkdir -p /nfsroot
sudo chmod 777 /nfsroot

2.3 復制根文件系統到 NFS 共享目錄

將之前已經配置好的根文件系統在 ~/rootfs 目錄下,將其復制到 NFS 共享目錄:

cp -r ~/rootfs/* /nfsroot/

2.4 配置 NFS 共享

編輯 /etc/exports 文件,添加以下內容:

/nfsroot *(rw,sync,no_subtree_check,no_root_squash)

重新導出 NFS 共享并重啟 NFS 服務:

sudo exportfs -a
sudo systemctl restart nfs-kernel-server 

驗證NFS環境 sudo exportfs -v

在這里插入圖片描述

3. QEMU 啟動命令詳解

以下是一個啟動 QEMU 模擬 vexpress-a9 開發板并使用 NFS 根文件系統的示例命令:

sudo qemu-system-arm \
-M vexpress-a9 \
-m 512M \
-kernel linux-5.15.18/arch/arm/boot/zImage \
-dtb linux-5.15.18/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
-nographic \
-net bridge,br=br0 \
-net nic,model=lan9118 \
-append "root=/dev/nfs rw nfsroot=192.168.3.32:/home/jiuri/linux/nfs,tcp,nfsvers=3 ip=192.168.3.100::192.168.3.32:255.255.255.0::eth0:none console=ttyAMA0 earlyprintk"

命令參數詳解:

  • -M vexpress-a9:指定模擬的開發板型號為 vexpress-a9。

  • -m 512M:分配 512MB 的內存給虛擬機。

  • -kernel linux-5.15.18/arch/arm/boot/zImage:指定 Linux 內核鏡像文件的路徑。

  • -dtb linux-5.15.18/arch/arm/boot/dts/vexpress-v2p-ca9.dtb:指定設備樹二進制文件的路徑。

  • -append "root=/dev/nfs rw nfsroot=192.168.3.32:/home/jiuri/linux/nfs,tcp,nfsvers=3 ip=192.168.3.100::192.168.3.32:255.255.255.0::eth0:none console=ttyAMA0 earlyprintk"
    

    :內核啟動參數,具體解釋如下:

    • root=/dev/nfs:指定根文件系統使用 NFS。
    • rw:以讀寫模式掛載根文件系統。
    • nfsroot=192.168.3.32:/home/jiuri/linux/nfs,tcp,nfsvers=3:指定 NFS 服務器的 IP 地址、共享目錄,使用 TCP 協議,NFS 版本為 3。
    • ip=192.168.3.100::192.168.3.32:255.255.255.0::eth0:none:指定虛擬機的 IP 地址、網關、子網掩碼等網絡配置。
    • console=ttyAMA0 earlyprintk:指定控制臺設備并啟用早期打印功能。
  • -net bridge,br=br0:使用橋接網絡,指定網橋名為 br0

  • -net nic,model=lan9118:配置網絡網卡,型號為 lan9118

測試驗證

在虛擬機中創建test文件夾,在ubuntu中進行了顯示

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/895808.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/895808.shtml
英文地址,請注明出處:http://en.pswp.cn/news/895808.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

.NET 9.0 的 Blazor Web App 項目中 EF Core 【事務】使用備忘

一、DbContext.Database.BeginTransactionAsync() 模式 1. 注意事項:連接字符串中啟用了 MARS(Multiple Active Result Sets:MultipleActiveResultSetsTrue )后,無法創建 保存點(保存點與 SQL Server 的多…

記一次 Git Fetch 后切換分支為空的情況

Git Fetch 后切換分支為空的情況 在使用 Git 時,我遇到這樣的情況:執行 git fetch 后切換分支,發現工作目錄是空的,沒有任何文件,所以插眼記錄一下。 原因分析 git fetch 的作用:git fetch 只會從遠程倉庫…

UMLS數據下載及訪問

UMLS數據申請 這個直接在官網上申請即可,記得把地址填全,基本都會拿到lisence。 UMLS數據訪問 UMLS的數據訪問分為網頁訪問,API訪問以及數據下載后的本地訪問,網頁訪問,API訪問按照官網的指示即可,這里主…

使用 Docker 部署 Apache Spark 集群教程

簡介 Apache Spark 是一個強大的統一分析引擎,用于大規模數據處理。本文將詳細介紹如何使用 Docker 和 Docker Compose 快速部署一個包含一個 Master 節點和兩個 Worker 節點的 Spark 集群。這種方法不僅簡化了集群的搭建過程,還提供了資源隔離、易于擴…

瑞薩RA-T系列芯片ADCGPT功能模塊的配合使用

在馬達或電源工程中,往往需要采集多路AD信號,且這些信號的優先級和采樣時機不相同。本篇介紹在使用RA-T系列芯片建立馬達或電源工程時,如何根據需求來設置主要功能模塊ADC&GPT,包括采樣通道打包和分組,GPT觸發啟動…

20250217 隨筆 redis非原子性操作簡述

從你提供的文本來看,核心是 Redis 作為緩存的檢查機制,以及非原子性操作導致的不一致性問題。 我們可以拆解為兩個部分來理解: 📌 1. 邏輯:先查 Redis,再決定是否注冊 邏輯流程 先查詢 Redis 是否有某個 …

git-提交時間和作者時間的區別

1.介紹 定義介紹 提交時間(Committer Date):決定了提交在 Git 歷史中的位置,通常影響 GitHub 上提交顯示的順序。 作者時間(Author Date):雖然不影響提交的排序,但在每個提交詳情頁…

PHP框架入門指南:從零構建現代Web應用

一、為什么需要PHP框架? 1.1 傳統PHP開發的痛點 重復造輪子:用戶認證、表單驗證等基礎功能需要反復開發代碼混亂:缺乏統一結構導致維護困難安全漏洞:手動處理SQL注入/XSS攻擊效率低下擴展性差:耦合代碼難以適應業務增長1.2 框架的核心價值 標準化架構:MVC模式強制代碼分…

Leetcode 146 LRU緩存 的三種解法

146. LRU 緩存 請你設計并實現一個滿足 LRU (最近最少使用) 緩存 約束的數據結構。 實現 LRUCache 類: LRUCache(int capacity) 以 正整數 作為容量 capacity 初始化 LRU 緩存int get(int key) 如果關鍵字 key 存在于緩存中,則返回關鍵字的值&#xff0…

尚硅谷 java 學習Day19 抽象類與抽象方法、接口、內部類

6-5 抽象類(abstract)與抽象方法(important) 一、什么叫抽象類: 有時候將一個父類設計的非常抽象,以至于它沒有具體的實例,這樣的類稱為抽象類 abstract關鍵字的使用: ? 1、abstract:抽象的 ? 2、abs…

【LeetCode Hot100 鏈表(上)】相交鏈表、反轉鏈表、回文鏈表、環形鏈表、合并兩個有序鏈表、兩數相加

鏈表 1. 相交鏈表問題描述解決思路代碼實現 2. 反轉鏈表問題描述解決思路代碼實現 3. 回文鏈表問題描述解決思路代碼實現 4. 環形鏈表問題描述解決思路代碼實現 5. 環形鏈表II問題描述解決思路代碼實現 6. 合并兩個有序鏈表問題描述解決思路代碼實現 7. 兩數相加問題描述解決思…

【Python pro】基本數據類型

一、數字類型 1.1 數字類型的組成 1.1.1 整數 (1)十進制,二進制0b,八進制0o,十六進制0x print(16 0b10000 0o20 0x10) # 輸出:True(2)十進制轉其他進制 a bin(16) b oct(1…

拯救者電腦在重裝系統之后電源計劃丟失Fn+Q切換不了模式怎么恢復?

參考聯想知識庫的一下鏈接: https://iknow.lenovo.com.cn/detail/196192 其中下載的解壓文件后的文件需要復制粘貼到D盤的根目錄下,再來運行文件。若在生成的log文件中看到導入成功以及控制面板中看到已添加的電源計劃即可 如果還是無效可是試試以下的…

ubuntu 執行 sudo apt-get update 報錯

記錄一下,遇到這個問題了,網絡上看到的解決辦法,親測有效 執行sudo apt-get update ,卻報以下錯誤,“SECURITY: URL redirect target contains control characters rejecting ” 經檢查發現,/etc/apt/source.list 下的…

深度集成DeepSeek大模型:WebSocket流式聊天實現

目錄 5分鐘快速接入DeepSeek大模型:WebSocket實時聊天指南創建應用開發后端代碼 (Python/Node.js)結語 5分鐘快速接入DeepSeek大模型:WebSocket實時聊天指南 創建應用 訪問DeepSeek官網 前往 DeepSeek官網。如果還沒有賬號,需要先注冊一個。…

java斷點調試(debug)

在開發中,新手程序員在查找錯誤時, 這時老程序員就會溫馨提示,可以用斷點調試,一步一步的看源碼執行的過程,從而發現錯誤所在。 重要提示: 斷點調試過程是運行狀態,是以對象的運行類型來執行的 斷點調試介紹 斷點調試是…

軟件技術實訓室解決方案(2025年最新版)

軟件產業作為新興產業的核心組成部分,是推動數字經濟發展的重要力量。在“十四五”規劃的新機遇與挑戰下,我國已明確將加強關鍵數字技術創新應用作為戰略重點,并將軟件和信息技術服務業的發展列為重中之重。這不僅是為了加速構建現代產業體系…

foobar2000設置DSP使用教程及軟件推薦

foobar2000安卓中文版:一款高品質手機音頻播放器 foobar2000安卓中文版是一款備受好評的高品質手機音頻播放器。 幾乎支持所有的音頻格式,包括 MP3、MP4、AAC、CD 音頻等。不論是經典老歌還是最新的流行音樂,foobar2000都能完美播放。除此之…

DeepSeek企業級部署實戰指南:從服務器選型到Dify私有化落地

對于個人開發者或嘗鮮者而言,本地想要部署 DeepSeek 有很多種方案,但是一旦涉及到企業級部署,則步驟將會繁瑣很多。 比如我們的第一步就需要先根據實際業務場景評估出我們到底需要部署什么規格的模型,以及我們所要部署的模型&…

I2C、SPI、UART

I2C:串口通信,同步,半雙工,雙線(數據線SDA時鐘線SCL),最大距離1米到幾米 SPI(串行外設接口):串口通信,同步,全雙工,四線&…