フラッシュドライブにルートファイルシステム(ファイルシステム-イメージ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層システムです。
(この回答の残りの部分は注意してください。実際に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