ddを使用してubiファイルシステムをバックアップしますか?

ddを使用してubiファイルシステムをバックアップしますか?

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:root3階層システムです。

  • 上部にユビフスファイルシステム
  • 途中で、普遍的な基本収入ボリュームは、RAWフラッシュの上にウェアレベリングを提供します。
  • 下部には生のフラッシュインターフェイス(MTD)があります。

(この回答の残りの部分に注意して扱ってください。私は実際にUBIを使ったことがありません。)

ボリュームubi0:rootは次のように作成されます。ubiモジュールパラメータまたはubiattach便利。 UBI層とその上のファイルシステム間のインタフェースは、「この位置にこのバイトを書き込む」よりも複雑なため、これはブロックデバイスではありません。あなたはできます読み取り専用ブロックデバイスの作成UBIの上でコマンドを使用しubiblockてバックアップします。

ubiblock --create /dev/ubi0_0
cat /dev/ubi0_0 >backup
ubiblock --remove /dev/ubi0_0

関連情報