Ubifs
如何從 UBI 圖像更改單個文件
我有一個 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=...
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.) 創建UBIFS
mkfs.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