Linux基礎 -- UBI(**Unsorted Block Images**)

UBI(Unsorted Block Images)是 Linux 中為原始 NAND Flash 設計的一種 邏輯卷管理層,其核心作用是:在 NAND 閃存設備上提供 壞塊管理、擦寫均衡(wear leveling)和邏輯到物理地址映射等機制,為上層文件系統(如 UBIFS)提供可靠、抽象的存儲支持。


一、UBI 處于哪一層?

以 NAND Flash 的訪問層級來看:

+---------------------------+
| 文件系統(UBIFS)         |
+---------------------------+
|       UBI 層              |
+---------------------------+
| MTD(Memory Technology Device)層 |
+---------------------------+
| 物理 NAND Flash 芯片       |
+---------------------------+

二、為什么需要 UBI?

NAND Flash 與普通塊設備(如硬盤)相比,存在以下挑戰:

問題描述
? 壞塊出廠就可能存在壞塊,使用過程中還會增加
? 最小擦除單位為 Block(128K、256K等)而寫入單位是 Page(2K、4K)
? 寫入次數有限每個塊典型的擦寫壽命是 10,000~100,000 次
? 不支持重寫只能擦除再寫,不能覆蓋寫
? 寫入延遲變化擦除、寫入時間比讀取慢得多

因此,需要一個中間層(UBI)來:

  • 管理 壞塊
  • 實現 擦寫均衡(wear-leveling)
  • 提供 邏輯卷 支持
  • 抽象底層 NAND 差異,簡化文件系統設計

三、UBI 的核心概念

概念說明
PEB(Physical Erase Block)物理擦除塊,對應 NAND Flash 的最小擦除單位
LEB(Logical Erase Block)邏輯擦除塊,由 UBI 映射到某個 PEB
Volume(卷)一個獨立的存儲邏輯空間,可以掛載文件系統(如 UBIFS)或原始數據
UBI Header每個 PEB 塊都有頭部,用于校驗與定位
VID Header存放塊的卷號、LEB 編號、版本號等信息
EC Header擦寫計數(Erase Counter),用于 wear-leveling

四、UBI 與 UBIFS 的關系

  • UBI 提供邏輯卷管理
  • UBIFS(UBI File System)運行在 UBI 之上

UBIFS 支持特性包括:

  • 動態大小卷支持(類似 LVM)
  • 寫放大(write amplification)優化
  • 斷電保護(使用日志機制)
  • 高壓縮比(zlib/lzo)

五、UBI 的常用命令工具

命令說明
ubiformat /dev/mtdX格式化一個 MTD 分區為 UBI 結構(會擦除)
ubiattach /dev/ubi_ctrl -m X把某個 mtdX 附加為 UBI 卷
ubimkvol /dev/ubi0 -N volname -s size創建邏輯卷
ubiupdatevol /dev/ubi0_X file.img更新某個卷的內容
ubinfo查看當前 UBI 卷信息
mount -t ubifs ubi0_0 /mnt/ubi掛載 UBI 卷(如果是 UBIFS)

六、舉個例子

假設有一個 NAND 分區 /dev/mtd4,你想把它作為 rootfs:

# 1. 格式化為 UBI
ubiformat /dev/mtd4# 2. 附加到 UBI
ubiattach /dev/ubi_ctrl -m 4# 3. 創建邏輯卷(名字為 rootfs,大小 auto)
ubimkvol /dev/ubi0 -N rootfs -s 120MiB# 4. 寫入文件系統鏡像
ubiupdatevol /dev/ubi0_0 rootfs.img# 5. 掛載到系統
mount -t ubifs ubi0_0 /mnt/ubi

七、UBI 的使用場景

  • 嵌入式設備(OpenWRT、Android、Yocto)中的 rootfs
  • 工業級存儲管理(高可靠性、高壽命)
  • 自定義啟動分區 / 數據分區管理

八、總結

特性UBI 作用
壞塊管理自動跳過壞塊、記錄可靠塊
擦寫均衡記錄擦除計數、平均分配寫入
邏輯映射提供 LEB → PEB 映射表
卷管理支持多個邏輯卷(rootfs、data 等)
支持文件系統通常配合 UBIFS 一起使用

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

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

相關文章

線程相關函數

思維導圖 1. 創建一個分支線程,在主線程中拷貝文件的前一部分,主線程拷貝后一部分。 2.解讀代碼 info1 from child process_1 info1 from parent process3.解讀代碼,-打印多少次 14次

SeaTunnel 社區月報(5-6 月):全新功能上線、Bug 大掃除、Merge 之星是誰?

在 5 月和 6 月,SeaTunnel 社區迎來了一輪密集更新:2.3.11 正式發布,新增對 Databend、Elasticsearch 向量、HTTP 批量寫入、ClickHouse 多表寫入等多個連接器能力,全面提升了數據同步靈活性。同時,近 100 個修復與優化…

數學建模_非線性規劃

matlab求解調用示例 第二道例題建模 matlab求解 1.matlab只能處理min問題&#xff1a; max兩邊取負號變成min 2. > > >號變成 < < <&#xff1a;兩邊取負號 調用示例 第二道例題建模 目標函數取平方而不取絕對值 后面省略

【BurpSuite 2025最新版插件開發】基礎篇7:數據的持久化存儲

1 前言 歷史章節&#xff1a; 【BurpSuite 2025最新版插件開發】基礎篇1&#xff1a;環境搭建 【BurpSuite 2025最新版插件開發】基礎篇2&#xff1a;插件生命周期與核心接口 【BurpSuite 2025最新版插件開發】基礎篇3&#xff1a;請求攔截和修改簡單示例 【BurpSuite 202…

GPT-4 Turbo集成智能工作流,開啟自動化研究與知識管理新篇章!

目錄 一、系統架構設計二、核心模塊實現1. 智能數據采集引擎2. 自動化研究引擎3. 知識管理系統 三、智能工作流引擎四、關鍵技術實現1. 動態工作流引擎2. 知識圖譜構建 五、企業級部署方案1. 云原生架構2. Docker部署腳本 六、應用案例&#xff1a;藥物研發項目七、性能優化策略…

告別SQL卡頓與混亂!AI如何賦能實時計算?

在當今數據驅動的商業環境中&#xff0c;SQL作為與數據庫交互的核心語言&#xff0c;其編寫效率和質量直接影響著企業的數據決策速度和系統性能。然而&#xff0c;我們在長期的企業服務實踐中發現&#xff0c;數據庫開發人員普遍面臨以下痛點&#xff1a; SQL性能問題頻發&…

LeetCode算法(和中等打的有來有回)——盛最多水的容器

文章目錄 leetcode第11題&#xff1a;盛最多水的容器二次循環代碼 雙指針優化解析代碼 leetcode第11題&#xff1a;盛最多水的容器 二次循環 這道題比較容易想到的就是通過二次循環遍歷所有能盛的水的體積。 代碼 class Solution {public int maxArea(int[] height) {// 記錄…

Karmada 多集群服務發現

一、背景介紹 多集群架構下&#xff0c;不同 Kubernetes 集群間的服務如何互通是核心挑戰。Karmada 支持 Kubernetes Multi?cluster Service APIs&#xff08;MCS&#xff09;&#xff0c;通過 ServiceExport 和 ServiceImport 實現跨集群服務發現與調用&#xff0c;幫助多集…

macOS 26正式發布,全新Liquid Glass設計語言亮相

在全球科技愛好者翹首以盼的WWDC 2025開發者大會上&#xff0c;蘋果公司正式揭開了macOS 26系統的神秘面紗。此次系統更新最令人矚目的&#xff0c;當屬其采用的全新Liquid Glass設計語言&#xff0c;該設計不僅重塑了Mac的視覺風格&#xff0c;更為用戶帶來了一場前所未有的操…

網絡基礎(3)

網絡基礎&#xff08;3&#xff09; 有關進程 1&#xff09;進程是人在系統中的代表&#xff0c;只要把數據給進程&#xff0c;人就相當于拿到了數據 2&#xff09;數據傳輸到主機不是目的&#xff0c;而是手段。到達主機內部&#xff0c;再交給主機內的進程才是目的 上網的…

C語言專題:17.邏輯運算與三目運算符(按位邏輯運算、條件運算符)

? C語言中的邏輯運算符和三目運算符&#xff08;條件運算符&#xff09;是非常常見且基礎的操作符&#xff0c;它們分別用于布爾邏輯運算和簡化條件判斷的表達式。通過合理使用這些運算符&#xff0c;可以使代碼更加簡潔、清晰。本文將重點介紹邏輯運算符、三目運算符和按位邏…

【分布式 ID】一文詳解美團 Leaf

文章目錄 1. 前言2. 項目啟動示例 - MYSQL 和 Zookeepr2.1 Leaf-segment 模式2.2 Leaf-snowflake 模式 - 單節點2.3 Leaf-snowflake 模式 - 多節點 3. Leaf-segment 詳細講解4. Leaf-segment 源碼解析4.1 SegmentBuffer 號段緩存4.2 Segment 號段4.3 初始化號段服務 SegmentIDG…

互聯網大廠Java面試實錄:Spring Boot與微服務在電商場景中的應用

互聯網大廠Java面試實錄&#xff1a;Spring Boot與微服務在電商場景中的應用 面試場景 面試官&#xff1a;你好&#xff0c;謝飛機&#xff0c;歡迎參加我們的Java開發崗位面試。首先&#xff0c;能否簡單介紹一下你的技術背景&#xff1f; 謝飛機&#xff1a;嗨&#xff0c…

XILINX Ultrascale+ Kintex系列FPGA的架構

Xilinx&#xff08;現為AMD&#xff09;Kintex UltraScale系列FPGA是基于16nm FinFET工藝的高性能、中等成本的現場可編程門陣列&#xff0c;專為高帶寬、低功耗和成本效益的應用設計&#xff0c;廣泛用于5G通信、數據中心、視頻處理、航空航天等領域。以下詳細介紹Kintex Ultr…

騰訊云實名資質 “待補充后提交” 解決方法

目錄 一、引言二、為什么會出現 “待補充后提交” 狀態三、需要補充的具體材料3.1 營業執照3.2 法人身份證相關3.3 短信管理員資料3.4 合規使用承諾函 四、處理流程詳細步驟4.1 登錄騰訊云控制臺4.2 進入實名資質相關頁面4.3 上傳補充材料4.4 提交審核 五、注意事項5.1 材料規范…

8分鐘講完 Tomcat架構及工作原理

https://www.bilibili.com/video/BV1J3411k7Xc/?spm_id_from333.337.search-card.all.click&vd_source36145f3620bdf21c0f1a843352e603fb JavaWeb開發必看&#xff01;Tomcat架構及工作原理&#xff08;8分鐘&#xff09; 分闡明了Tomcat的工作原理。 一、Tomcat的核心架…

C盤爆滿元兇!WinSxS組件解密

C盤爆滿元兇!WinSxS組件解密 WinSxS是什么?核心功能與重要性目錄為何瘋狂膨脹?安全清理權威指南優先使用微軟官方工具:DISM工具清理效果與性能影響重要風險提示總結C盤爆滿元兇!WinSxS組件解密你是否也遇到過: C盤空間頻頻告急,檢查發現WinSxS文件夾竟獨占數十GB空間?想…

畢業設計(啟智模塊化機器人的組裝與K5的使用

記錄一下 畢業設計的部分筆記 準備清空文件發到csdn做一個紀念0.0 物聯網畢業設計 機器的組裝與K5的使用 基礎文件的學習 首先安裝K5 和文件包中的JLink驅動 并且文件實例里的代碼必須加上x后綴否則 只能用K4 來打開 供電&#xff1a;整個系統都需要電池運轉 build 存放…

從0開始學習R語言--Day37--CMH檢驗

對于有多個特征的數據&#xff0c;我們一般的處理方式是構建特征函數&#xff0c;計算每個特征向量的系數&#xff0c;從而將其影響納入到研究量中&#xff0c;但對于簡單的問題&#xff0c;也這樣做的話未免有點小題大做。這時我們可以考慮用CMH來分析變量在每個特征下的影響&…

搜索選擇DFS還是BFS

1. DFS&#xff08;深度優先搜索&#xff09;&#xff1a;優先進行深度縱向搜索&#xff0c;DFS所需的內存少于BFS所需的內存&#xff0c;利用堆棧實現&#xff0c;適合找最短路徑。 2. BFS&#xff08;廣度優先搜索&#xff09;&#xff1a;優先進行廣度橫向搜索&#xff0c;…