mkfs.ubifs 制作UBIFS 鏡像
mkfs.ubifs的用法
Usage: mkfs.ubifs [OPTIONS] target
Make a UBIFS file system image from an existing directory tree
Examples:
Build file system from directory /opt/img, writting the result in the ubifs.img file
mkfs.ubifs -m 512 -e 128KiB -c 100 -r /opt/img ubifs.img
The same, but writting directly to an UBI volume
mkfs.ubifs -r /opt/img /dev/ubi0_0
Creating an empty UBIFS filesystem on an UBI volume
mkfs.ubifs /dev/ubi0_0
Options:
-
-r, -d, --root=DIR build file system from directory DIR
-
-m, --min-io-size=SIZE minimum I/O unit size,最小輸入輸出大小
-
-e, --leb-size=SIZE logical erase block size邏輯可擦出塊大小
-
-c, --max-leb-cnt=COUNT maximum logical erase block count最大邏輯可擦出塊數目
-
-o, --output=FILE output to FILE輸出文件名
-
-j, --jrn-size=SIZE journal size
-
-R, --reserved=SIZE how much space should be reserved for the super-user
-
-x, --compr=TYPE compression type - "lzo", "favor_lzo", "zlib" or "none" (default: "lzo")
-
-X, --favor-percent may only be used with favor LZO compression and defines
-
how many percent better zlib should compress to make
-
mkfs.ubifs use zlib instead of LZO (default 20%)
-
-f, --fanout=NUM fanout NUM (default: 8)
-
-F, --space-fixup file-system free space has to be fixed up on first moun
-
(requires kernel version 3.0 or greater)
-
-k, --keyhash=TYPE key hash type - "r5" or "test" (default: "r5")
-
-p, --orph-lebs=COUNT count of erase blocks for orphans (default: 1)
-
-D, --devtable=FILE use device table FILE
-
-U, --squash-uids squash owners making all files owned by root
-
-l, -- log-lebs=COUNT count of erase blocks for the log (used only for debugging)
-
-v, --verbose verbose operation
-
-V, --version display version information
-
-g, --debug=LEVEL display debug information (0 - none, 1 - statistics, 2 - files, 3 - more details)
-
-h, -- help display this help text
例:
mkfs.ubifs -x lzo -m 2KiB -e 124KiB -c 720 -o system_ubifs.img -d $path_to_system
壓縮格式為lzo
-m最小輸入輸出大小為2KiB(2048bytes),一般為頁大小
-e邏輯可擦除塊大小為124KiB=(每塊的頁數-2)*頁大小=(64-2)*2KiB=124KiB
-c最多邏輯可擦除塊數目為720(720*128KiB=90MiB),這個可根據ubi volume來設置,實際上是設置此卷的最大容量。
ubinize命令可將使用mkfs.ubifs命令制作的UBIFS文件系統鏡像轉換成可直接在FLASH上燒寫的格式(帶有UBI文件系統鏡像卷標):
ubinize -o ubi.img-m 2048 -p 128KiB-s 512 -O 2048 ubinize.cfg
ubinize.cfg為一些配置參數:
[ubifs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=100MiB
vol_type=dynamic
vol_alignment=1
vol_name=rootfs
vol_flags=autoresize
通過此命令生成的ubi.img可直接使用NAND FLASH的燒寫命令燒寫到FLASH上。
1.ubinize支持哪些選項
Usage: ubinize [options] <ini-file>
Generate UBI images. An UBI image may contain one or more UBI volumes which
have to be defined in the input configuration ini-file. The flash
characteristics are defined via the command-line options.
-o, --output=<file name> output file name
-p, --peb-size=<bytes> size of the physical eraseblock of the flash this UBI image is created for in bytes,kilobytes (KiB), or megabytes (MiB) (mandatory parameter)
-m, --min-io-size=<bytes> minimum input/output unit size of the flash in bytes
-s, --sub-page-size=<bytes> minimum input/output unit used for UBI headers, e.g. sub-page size in case of NAND flash (equivalent to the minimum input/output unit size by default)
-O, --vid-hdr-offset=<num> offset if the VID header from start of the physical eraseblock (default is the next minimum I/O unit or sub-page after the EC header)
-e, --erase-counter=<num> the erase counter value to put to EC headers (default is 0)
-x, --ubi-ver=<num> UBI version number to put to EC headers (default is 1)
-Q, --image-seq=<num> 32-bit UBI image sequence number to use
(by default a random number is picked)
-v, --verbose be verbose
-h, --help print help message
-V, --version print program version
2.重要選項-p -m -s -O -e
-p 指定flash的物理擦除塊大小
-m 指定flash的最小輸入輸出單元,當為nor flash時,此值應指定為1,當為nand flash時此值應指定為頁面大小
-s 指定子頁大小,當為nor flash時,此值應指定為1,當為nand flash時需指定此值為nand flash的子頁大小
-O 指定vid header的偏移量
-e 指定放在EC頭中的擦除計數器值,默認為0
