|
CAT724_ROMのバックアップについて †CAT724の内蔵ROMバックアップ手順について CAT724の内蔵FLASH は 32Mバイトで、partition 0,1,2 の3つに分けられています。
Linux起動中、bootloader領域とzImage領域はアクセスしませんのでLinux起動中であっても読み書きできます。 rootfs領域はLinux起動中はマウントされていて使用中ですから、丸ごと書き換えてしまうとファイル構造を失い戻ってこれなくなります。Linuxからの書き換えはできません。書き込みはbootloaderから行ってください。もしくはmicroSDにdebianを入れてそちらで起動するならFLASH ROMの/dev/mtdblock2をマウントしていないので書き込みできます。 rootfs領域は29Mバイトあります。必ず全領域(29Mバイト)を消去してから新しいイメージを書き込んでください。古いイメージが残っていて新しいイメージファイルを書き込むと混ざってしまい動作しません。 ただし linuxでrootfs領域をバックアップした場合は、29Mバイトのrootfsイメージファイルができます。これを上書きするのであれば古いイメージは残りませんので消去作業は不要です。同様に32Mバイト全部をバックアップ、リストアするときも古いイメージは残りませんので消去作業は不要です。 バックアップ手順 †Linuxを起動した状態でバックアップが行えます。 具体的な手順例は次の通りです。 rommode ro の状態で行ってください # sync # rommode ro microSDカードの第一パーティションをFATでフォーマットする(必要であれば) # mkdosfs -F16 /dev/mmcblk0p1 microSDカードの第一パーティションを/mediaにマウントする # mount /dev/mmcblk0p1 /media /dev/mtdblock0 (bootloader領域)のバックアップ # cat /dev/mtdblock0 > /media/boot.bin /dev/mtdblock1 (カーネル領域)のバックアップ # cat /dev/mtdblock1 > /media/zImage.bin /dev/mtdblock2 (rootfs領域)のバックアップ # cat /dev/mtdblock2 > /media/rootfs.bin 上記3つを一つのファイルにまとめてROMの全領域(32Mbyte)のバックアップするには # cat /dev/mtdblock0 /dev/mtdblock1 /dev/mtdblock2 > /media/all.bin syncしてアンマウント # sync # umount /media リストア (ROMへの書き込み方法) †Linuxからの書き換え方法 †Linuxを起動したのち microSDカードの第一パーティションを/mediaにマウントする # mount /dev/mmcblk0p1 /media /dev/mtdblock0 (bootloader領域)の書き換え(リストア) # cp /media/boot.bin /dev/mtdblock0 /dev/mtdblock1 (カーネル領域)の書き換え(リストア) # cp /media/zImage.bin /dev/mtdblock1 /dev/mtdblock2 (rootfs領域)のバックアップ(リストア) # cp /media/rootfs.bin /dev/mtdblock2 ただしrootfsをマウントしている状態からの書き込みはできません(出来てしまいますが書き込みの結果保障しません)。他のmicroSDなどをrootfsとして起動している場合に限ります。通常rootfsはbootloaderから書き換えてください。 bootloaderから書き換える場合 †bootloader を起動してください。 DIPSW1 を OFFの状態であれば電源を入れた直後にbootloaderで停止します。 管理者モードになります #> admin password: microSDのファイル一覧表示 #> dir bootloaderの復元(ROMへの書き込み) #> flashwrite boot.bin 0 書式 ファイル名 書き込みアドレス カーネルの復元(ROMへの書き込み) #> flashwrite zImage.bin kernel 書式 ファイル名 書き込みアドレス(エイリアス名) rootfsの復元(ROMへの書き込み) #> flasherase rootfs 書式 消去アドレス(エイリアス名) #> flashwrite rootfs.bin rootfs 書式 ファイル名 書き込みアドレス(エイリアス名) ROM全イメージの復元(ROMへの書き込み) #> flashwrite all.bin 0 ROMイメージ全部の作り方 †カレントディレクトリに boot.bin zImage jffs2.img があったとして、32MバイトのROMイメージの作り方は次の通りです # cat /dev/zero | tr "\000" "\377" | dd ibs=1k obs=1M of=/tmp/romimage.bin count=32k # dd if=boot.bin of=/tmp/romimage.bin bs=1k seek=0 conv=notrunc # dd if=zImage of=/tmp/romimage.bin bs=1k seek=128 conv=notrunc # dd if=jffs2.img of=/tmp/romimage.bin bs=1k seek=3072 conv=notrunc 関連 †
|