Aフラッシュドライブには、ルートファイルシステム(ファイルシステム - フォルダ構造と内容を含むイメージ)があります。フラッシュドライブは、デフォルトのファイルシステムとして UBI を使用します。つまり、ext4を使用すると言ったように、データブロックがファイルにマップされる方法です。
rootfs on / type rootfs (rw)
ubi0:root on / type ubifs (rw,sync)
最初の引数として物理ドライブがある場合(たとえば、1つではrootfs
なく/dev/sda
)、バックアップにddを使用する方法を知っていますが、ここでは現在のケースでドライブのアドレスを指定する方法(パスが何であるか)を知りませんrootfs
。
footfs
どのファイルがどのファイルにubi0:root
対応するのか、どうすればわかりますか?
答え1
UBIFSパーティションをバックアップ/復元するには、ddを使用してUBIマウントからUBIイメージを作成し、mtd-utilでubiupdatevolプログラムを使用して復元します。
はい -
画像を作成する:
dd if=/dev/ubi0_0 of=/save_loc/rfs1.ubi
ターゲットパーティションをマウント解除します。
umount /.rfs2
イメージをターゲットパーティションに復元します。
ubiupdatevol /dev/ubi1_0 /save_loc/rfs1.ubi
更新したパーティションを再マウントします。
mount -t ubifs -o compr=zlib,ro ubi1:rootfs /.rfs2
編集:ubi#が探している名前を明確にするには、mtd-util 'ubinfo'を実行します。
ubi0
Volumes count: 1
Logical eraseblock size: 126976 bytes, 124.0 KiB
Total amount of logical eraseblocks: 960 (121896960 bytes, 116.2 MiB)
Amount of available logical eraseblocks: 0 (0 bytes)
Maximum count of volumes 128
Count of bad physical eraseblocks: 0
Count of reserved physical eraseblocks: 80
Current maximum erase counter value: 288
Minimum input/output unit size: 2048 bytes
Character device major/minor: 250:0
Present volumes: 0
Volume ID: 0 (on ubi0)
Type: dynamic
Alignment: 1
Size: 874 LEBs (110977024 bytes, 105.8 MiB)
State: OK
Name: rootfs
Character device major/minor: 250:1
答え2
rootfs
マウントされるのは、通常、/
「実際の」ルートファイルシステムをマウントするために必要なツールのみを含み、完了すると消去されるメモリ内ファイルシステムです。 rootfsの初期内容は次のとおりです。ファイルシステムの初期化イメージはカーネルバイナリの内側または隣に保存され、ブートローダによってロードされます。
Flashのルートファイルシステムはubi0:root
3階層システムです。
(この回答の残りの部分に注意して扱ってください。私は実際にUBIを使ったことがありません。)
ボリュームubi0:root
は次のように作成されます。ubi
モジュールパラメータまたはubiattach
便利。 UBI層とその上のファイルシステム間のインタフェースは、「この位置にこのバイトを書き込む」よりも複雑なため、これはブロックデバイスではありません。あなたはできます読み取り専用ブロックデバイスの作成UBIの上でコマンドを使用しubiblock
てバックアップします。
ubiblock --create /dev/ubi0_0
cat /dev/ubi0_0 >backup
ubiblock --remove /dev/ubi0_0