web-dev-qa-db-ja.com

ddを使用したubiファイルシステムのバックアップ?

フラッシュドライブにルートファイルシステム(ファイルシステム-イメージcontaininfフォルダー構造とコンテンツ)があります。フラッシュドライブは、基盤となるファイルシステムファイルシステムとしてUBIを使用します。これは、ext4を使用していると言う場合のように、データブロックがファイルにマップされる方法です。

rootfs on / type rootfs (rw)
ubi0:root on / type ubifs (rw,sync)

最初のパラメータとして物理ドライブがある場合(例:rootfsの代わりに/dev/sdaがあります)、ddを使用してバックアップを実行する方法を知っていますが、ここではその方法がわかりません。現在のシナリオでドライブをアドレス指定します(rootfsのパスは何ですか)。

footfsまたはubi0:rootがどのファイルに対応しているかを検出するにはどうすればよいですか?

/にマウントされたrootfsは、通常、「実際の」ルートファイルシステムをマウントするために必要なツールのみを含むメモリ内ファイルシステムであり、これが完了すると空になります。 rootfsの初期コンテンツは、カーネルバイナリ内またはカーネルバイナリの隣に格納されている initramfs イメージからロードされ、ブートローダーによってロードされます。

フラッシュのルートファイルシステムはubi0:rootです。これは3層システムです。

  • 上部にある [〜#〜] ubifs [〜#〜] ファイルシステム。
  • 真ん中、 [〜#〜] ubi [〜#〜] ボリュームは生のフラッシュの上にウェアレベリングを提供します。
  • 下部には、rawフラッシュインターフェイス(MTD)があります。

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

ubi0:rootボリュームは、 ubiモジュールへの引数 または ubiattachユーティリティ によって作成されます。これはブロックデバイスではありません。UBIレベルとその上のファイルシステム間のインターフェイスは、「このバイトをこの場所に書き込む」よりも複雑だからです。 ubiblockコマンドを使用してUBIの上に 読み取り専用ブロックデバイスを作成 してから、それをバックアップすることができます。

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

UBIFSパーティションをバックアップ/復元する場合は、UBIマウントからddを使用して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
Nimjox