1. 程式人生 > >UBI檔案系統製作和掛載

UBI檔案系統製作和掛載

關於引數可以參考attach的命令輸出:
[email protected]:~# ubiattach  /dev/ubi_ctrl -m 4 -d 0
UBI device number 0, total 4000 LEBs (516096000 bytes, 492.2 MiB), available 0LEBs (0 bytes), LEB
size 129024 bytes (126.0 KiB)
[email protected]:~# 
ubinize.cfg檔案
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=450MiB --》一般要比真實的size要小
vol_type=dynamic
vol_alignment=1
vol_name=rootfs
vol_flags=autoresize

5. UBI檔案系統映象在Linux下的燒寫
flash_eraseall /dev/mtd4
ubiformat /dev/mtd4 -s 512 -f /xxx/ubi.img

6、 UBI檔案系統映象在U-BOOT下的燒寫
//load ubi image to RAM
tftp ubi.img
//erase MTD4 nand space
nand erase 0x6c0000 0xc820000
//write image to nand
nand write.i 0x81000000 0x6c0000 0xxxxx(image size)

7. UBI檔案系統映象在Linux下的掛載和解除安裝

掛載
ubiattach /dev/ubi_ctrl -m 4 -d 0
mount -t ubifs ubi0_0 /mnt/ubi

解除安裝
umount /mnt/ubi
ubidetach -d 0

8、使用ubi做根檔案系統
需要在bootargs中設定如下資訊:
  root=ubi0:rootfs ubi.mtd=4 rootfstype=ubifs

 配置linux核心
           配置的時候選上
          1)Device Drivers --->Memory Technology Device (MTD) support  --->UBI - Unsorted blockimages  --->Enable UBI
          2)File systems --->Miscellaneous filesystems  --->UBIFS file system support
          這樣我們的核心就支援UBIFS檔案系統了

9、ubi命令

在mtd-utils/ubi-utils中生成的工具是針對UBIFS的,包含:

(1)mtdinfo: 輸出指定的mtd分割槽的資訊, 該命令只對可讀的裝置分割槽有效。

用法: ./mtdinfo /dev/mtd1

(2)ubinfo:  輸出指定的ubi裝置的資訊,不帶引數時,輸出系統所有的ubi裝置以及ubi控制裝置資訊。ubi控制裝置即/dev/ubi_ctrl是一個字元裝置,在後面還將用到。

用法:./ubinfo

      ./ubinfo/dev/ubi0

(3)ubiformat:格式化指定的mtd分割槽, 引數使用的是mtd的字元裝置

用法:./ubiformat /dev/mtd1

(4)ubiattach:將指定的mtd分割槽關聯到ubi上

用法:./ubiattach /dev/ubi_ctrl -m 1, 將mtd1關連ubi

(5)ubidetach:解除mtd與ubi的關聯

用法:./ubidetach /dev/ubi_ctrl -m 1

(6)ubimkvol:建立一個voluem,volume才是終端使用者掛載檔案系統的地方。

用法:在ubi2上建立4個olume,每個大小是20M, 名字分別為my_vol_a, my_vol_b, my_vol_c, my_vol_d.

./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_a

./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_b

./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_c

./ubimkvol/dev/ubi2 -s 20Mib -N my_vol_d

(7)ubirename: 更改ubi某個olume的名字,或者完成兩個volume的互換

用法:

(1)將ubi2上名字為my_vol_a的volume名字改為my_vol_newname

./ubirename /dev/ubi2my_vol_a my_vol_newname

(2)將ubi2上名字為my_vol_b和my_vol_c的兩個volume互換,

./ubirename/dev/ubi2 my_vol_b my_vol_c my_vol_c my_vol_b

(8)ubirmvol: 刪除某個volume,可以通過名字或id指定具體的volume

用法: ./ubirmvol /dev/ubi2 -n 1
或./ubirmvol /dev/ubi2 -N my_vol_d

(9)ubinize: 建立ubi image。

用法: ./ubinize -o myubi.img -p 126976 -m 2048my.ini

其中, -p, 指定的是目標flash的physical eraseblock的大小

       -s,指定的是目標flash的minimum input/output unit 的大小, 這兩個引數的值可以通過“cat /sys/class/ubi/ubi2/*”得到

       my.ini是配置檔案,其中指定了原檔案,目標volume的大小、名字等。其格式如小:

[jffs2-volume]
mode=ubi
image=../jffs2.img
vol_id=1
vol_size=30MiB
vol_type=dynamic
vol_name=jffs2_volume
vol_flags=autoresize
vol_alignment=1

(10)ubiupdatevol: 向指定的volume上寫資料

用法:./ubiupdatevol /dev/ubi2_0 myubi.img

 

 data:ubifs.img 
ubinize -o datafs.img -m 2048 -p 128KiB -s 512 -O 2048 ubinize.cfg
ubifs.img:
mkfs.ubifs -r ./data/ -o ubifs.img -m 2048 -e 126976 -c 148

                            4層結構說明

相關推薦

UBI檔案系統製作掛載

關於引數可以參考attach的命令輸出: [email protected]:~# ubiattach  /dev/ubi_ctrl -m 4 -d 0 UBI device number 0, total 4000 LEBs (516096000 bytes,

ramdisk檔案系統製作移植

[ [email protected] ]# pri bbl=nand erase 0 100000;tftp 30008000 u-boot-$cpu.bin;nand write 30008000 0 $filesize norbbl=erase bank 1;tftp 30008000 u-b

ubi檔案系統製作指令分析

介紹UBIFS檔案系統,鄙人已經親身製作並使用的ti DM3730 linux平臺上。ubifs檔案系統掛載速度相對快,相比其他型別檔案系統,綜合性能狠強啊,不過鄙人實踐及官方也坦白一個事實,就是ubifs檔案系統對系統異常/突然掉電的容忍性不好,資料可能會嚴重損壞。 -------------

NFS檔案系統製作移植

**************************************************************************************************

Linux 磁碟分割槽,檔案系統建立、掛載解除安裝

建立分割槽 (fdisk): 第一步先在Linux的虛擬機器上新增一塊硬碟,新增完成後需要重啟虛擬機器才能夠檢測識別到新硬碟。 重啟系統後可以使用 fdisk -l 命令檢視當前所有磁碟分割槽情況,sdb為我們剛剛建立的新磁碟,可以與上面的sda磁碟對比,發現新磁碟sdb還沒有分割槽。接下來就是為

Linux根檔案系統製作與各種掛載方式的實現

Linux根檔案系統的製作 什麼是檔案系統 計算機的檔案系統是一種儲存和組織計算機資料的方法,它使得對其訪問和查詢變得容易,檔案系統使用檔案和樹形目錄的抽象邏輯概念代替了硬碟和光碟等物理裝置使用資料塊的概念,使用者使用檔案系統來儲存資料不必關心資料實際儲存在硬碟(或者光碟)的地址為多少的資料

Linux核心移植檔案系統製作(詳細步驟精講)

start_kernel是所有 Linux 平臺進入系統核心初始化後的入口函式,它主要完成剩餘的與硬體平臺相關的初始化工作,在進行一系列與核心相關的初始化後,呼叫第一個使用者程序-init 程序並等待使用者程序的執行,這樣整個 Linux 核心便啟動完畢。該函式所做的具體工作有:呼叫 setup_arch

CentOS7檔案系統管理硬碟掛載

df 功能: 檢視檔案系統 使用: df [選項] [掛載點] 選項: #### -a 顯示所有檔案系統資訊,包括特殊檔案系統 #### -h 智慧轉換單位顯示 #### -T 顯示檔案系統型別 du 功能: 統計目錄或檔

檔案製作(一):根檔案系統 Initramfs檔案系統製作

 根檔案系統樹製作 首先要明白的是“什麼是檔案系統”,檔案系統是對一個儲存裝置上的資料和元資料進行組織的機制。 這種機制有利於使用者和作業系統的互動。 根檔案系統之所以在前面加一個”根“,說明它是載入其它檔案系統的”根“,既然是根的話,那麼如果沒有這個根,其它的檔案

tiny4412 busybox製作檔案系統rootfs nfs 掛載 ubuntu 14.04

首先得要有製作好的uboot和linux核心映象zImage,先燒錄到sd卡里,這個是已經做好了的工作。 一,ubuntu上先設定好nfs服務 1.新建一個要掛載的檔案 [email protected]:~/share$ pwd /home/liudijian

linux檔案系統管理---分割槽掛載

轉:HTTP://www.cnblogs.com/alantu2018/p/8461680.html 一,系統在初始化時如何識別硬碟  1,系統初始時根據MBR的資訊來識別硬碟,其中包括了一些執行檔案就來載入系統,這些執行檔案就是MBR裡前面446bytes裡的啟動載入器程式,而後面

Linux.ext4檔案系統 .inodeextent

最近在看相關內容,不過總是不是很系統,今日看到此部落格,感覺恍然大悟,作者寫的非常棒:轉載: https://blog.csdn.net/stringNewName/article/details/73740155 為表示對作者的尊敬,一字不動的敲擊! 最近在看ext4

imx6 uboot的mtd分割槽總結(rootfs為ubi檔案系統

轉載地址:https://blog.csdn.net/qq_29729577/article/details/51130209 此文章基於U-Boot 2014.04版本,燒寫工具為mfgtool,開發環境為yocto 前言: JFFS2、YAFFS2等專用檔案系統存在著一些技術瓶頸,如

檔案系統啟動後掛載目錄

ubuntu與開發板之間設定為同一網段中的Ip, 這裡將ubuntu設定為: ifconfig eth0 200.200.4.233 開發板設定為: ifconfig eth0 200.200.4.234 互相ping一下,確保能互相ping通; 虛擬機器要實現上網,需要設定為NAT模式;

【unix學習】檔案系統資訊檔案許可權

檔案系統資訊和檔案許可權 cpuinfo cpu的資訊 總核數 = 物理CPU個數 X 每顆物理CPU的核數 總邏輯CPU數 = 物理CPU個數 X 每顆物理CPU的核數 X 超執行緒數 檢視物理CPU個數 cat /proc/cpuinfo|

cramfs檔案系統製作與移植(二)

[ [email protected] ]# bootm ## Booting kernel from Legacy Image at 30008000 ...    Image Name:   Linux Kernel    Created:      2013-04-23  12:05:15

Linux檔案系統簡介軟連結硬連結的區別

Linux有著極其豐富的檔案系統,大體可分為如下幾類: 網路檔案系統:如nfs、cifs等; 磁碟檔案系統:如ext3、ext4等; 特殊檔案系統:如prco、sysfs、ramfs、tmpfs等; 一、Linux系統中一切皆檔案(除程序以外) Linux系統的頂層目錄結構如下 1 /

cpio命令與檔案系統製作

嵌入式開發過程中的檔案系統製作,往往是使用已經定製好的目錄及檔案進行製作,下面以實際的例子進行說明: 假設當前目錄為rootdir,目錄結構如下: [email protected]:~# tree -L 2 rootdir rootdir |-- dev |--

cramfs根檔案系統製作啟動總結

cramfs啟動根檔案系統 Cramfs:Compressed ROM File System   Cramfs是Linux的創始人 Linus Torvalds參與開發的一種只讀的壓縮檔案系統。它也基於MTD驅動程式。   cramfs擁有以下一些特性:  採用實時解壓

移植u-boot-2011.03到S3C2440(utu2440)的方法與步驟###8. u-boot引導啟動nand flash中核心檔案系統cramfs使用者檔案系統yaffs2支援

rivers/rtc/hctosys.c: unable to open rtc device (rtc0)uncorrectable error : <3>uncorrectable error : <3>end_request: I/O error, dev mtdblock2,