Ubifs

如何從 UBI 圖像更改單個文件

  • March 6, 2018

我有一個 ubi 圖像文件 (.ubi),我想從該圖像中更改一個文件(/etc/network/interfaces準確地說)。

如何從該 ubi 圖像更改單個文件?

我正在使用 OS X,但我也有一個 Ubuntu VM。

好的,經過大量閱讀,我終於弄清楚瞭如何在 Ubuntu 上做到這一點:

1.) 模擬 NAND MT 設備nandsim

modprobe nandsim first_id_byte=... second_id_byte=.. third_id_byte=.. fourth_id_byte=...

NAND 晶片 ID 列表。

2.) 找出 MT 設備 ID

cat /proc/mtd | grep -i "NAND Simulator"

3.) 載入 UBI 核心模組

modprobe ubi

4.) 擦除 MT 設備(您可以跳過此步驟)

flash_erase /dev/mtdX 0 0

5.) 刷入 UBI 鏡像ubiformat

ubiformat /dev/mtdX -y -f /path/to/ubi -O XXXX -s XXXX

6.) 將 MT 設備連接到 UBI,ubiattach並記下 UBI 設備編號

ubiattach -p /dev/mtdX

7.) 安裝它mount

mount -t ubifs ubiX /path/to/mount-point/

8.) 進行更改。

9.) 創建UBIFSmkfs.ubifs

mkfs.ubifs -o ubifs.img -m XXXX -e XXXX -c XXXX -v -r /path/to/mount-point/

10.) 創建 UBI 鏡像ubinize

ubinize -o final.ubi -p XXXX -m XXXX -s XXXX -v ubinize.cfg

XXXX= 特定於所使用的 NAND 快閃記憶體晶片的參數。

ubinize.cfg看起來像這樣:

[rootfs]
mode=ubi
image=ubifs.img
vol_name=rootfs
vol_flags=autoresize
vol_type=dynamic
vol_id=0

引用自:https://unix.stackexchange.com/questions/428238