玄箱のファイルバックアップ
玄箱のファイルシステムをバックアップとるのに私は古典的なdump/restoreコマンドをインストールして使っています。使用方法が単純な上に意外と高速です。
用意するものは、
Dump/Restore - The ‘dump’ and ‘restore’ functions
のみです。
いつもの様に./configure;make;make installをやります。
これでいつでもファイルシステムの丸ごとバックアップ・リストアの準備ができました。
玄箱のファイルシステムは以下の2つで構成されます。
/ - ルートファイルシステム(玄箱ファームウェアに相当します)
/mnt - データファイルシステム(共有shareフォルダはここに位置します)
ファイルシステムのバックアップアーカイブを作成するにはdumpコマンドを使用します。バックアップにも2種類あってフルバックアップと差分バックアップです。
フルバックアップは比較的長期に渡って更新されないファイルを含めて全てのファイルのバックアップをとります。それに対して差分バックアップは前回のバックアップ以降に作成されたり変更されたファイルのみをバックアップすることをさします。このあたりはバックアップの基本用語ですね。
で、dumpコマンドを使ってルートファイルシステムのフルバックアップを行うには以下の様なコマンドを実行します。
dump -0uvf /mnt/share/root0.dump /
これでルートファイルシステム(/)に対応するディスクパーティション上のファイルシステムのファイルが全て/mnt/share/root0.dumpというファイルにアーカイブされます。これは1度やっておけば十分ですね。
一度フルバックアップをとったら以降は新たにソフトウェアをインストールした時とか設定ファイルを変更した時とかに更新されたファイルだけを差分バックアップすればよいことになります。フルバックアップとの違いはオプションパラメータの0を0以外の値を指定する点です。
dump -1uvf /mnt/share/root1.dump /
オプションで0を指定しない限り全て差分バックアップ扱いとなります。
次に大事なデータファイルシステムのバックアップです。これはルートファイルシステムの場合と違ってファイルシステムのマウントポイントとして/mntを指定する点が異なります。データファイルシステムのフルバックアップは以下の通り。
dump -0uvf /mnt/share/data0.dump /mnt
差分バックアップも同様にパラメータに0以外を指定します。
dump -1uvf /mnt/share/data1.dump /mnt
あとはroot0.dumpとroot1.dumpそれにdata0.dumpとdata1.dumpをどっか別のHDDとかに保存しておけばOKです。
無い方がいいですが、もし玄箱のハードディスクが逝ってしまった場合には、dump/restoreコマンドをインストールした後でrestoreコマンドを使ってファイルをバックアップファイルからリストアします。あらかじめ共有shareディレクトリに以前にバックアップしたファイルdata0.dumpをコピーしておきます。
cd /mnt
restore -rvf /mnt/share/data0.dump
restore -rvf /mnt/share/data1.dump
バックアップしたファイル全てではなく選択的にリストアする方法ももちろんあります。詳しくはrestoreのマニュアルページかUNIXの管理者向け書籍をお読みになることをおすすめします。
コメント
TrackBack URL : https://www.rainbowseeker.jp/xoops/modules/wordpress/wp-trackback.php/110
コメントの投稿
改行や段落は自動です
URLとメールアドレスは自動的にリンクされますので、<a>タグは不要です。
以下のHTMLタグが使用可能です。<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <br> <code> <em> <i> <strike> <strong>
dumpコマンドのインストールについてですが、これは玄箱の標準のセットアップ(MontaVista)での話でしょうか?
dumpコマンドのmakeで下記のエラーで止まってしまいます。
gcc -c -D_BSD_SOURCE -D_USE_BSD_SIGNAL -g -O2 -pipe -I.. -I../compat/include -I../dump -DRDUMP -DRRESTORE -DLINUX_FORK_BUG -DHAVE_LZO -D_PATH_DUMPDATES=\"/usr/local/etc/dumpdates\” -D_DUMP_VERSION=\"0.4b40\” dumprmt.c -o dumprmt.o
In file included from ../compat/include/bsdcompat.h:14,
from dumprmt.c:56:
../ext2fs/ext2fs.h:695: parse error before `FILE’
../ext2fs/ext2fs.h:752: parse error before `FILE’
../ext2fs/ext2fs.h:758: parse error before `)’
../ext2fs/ext2fs.h:759: parse error before `FILE’
../ext2fs/ext2fs.h:762: parse error before `)’
../ext2fs/ext2fs.h:792: parse error before `FILE’
make[1]: *** [dumprmt.o] Error 1
ちなみにgccのバージョンは2.95.3、glicは2.2.3(両方とも玄箱デフォルト)です。
貴殿の記録でgccとglibcを最新のものにした記録がありますが詳細が分からず自力ではアップデートできませんでした。
玄箱のOSをVine化するため標準セットアップのシステムバックアップを使用と思い、dumpコマンドをインストールするところで躓いています。
上記を解決する以外でもシステムバックアップが出来れば次のステップへ進めるんですが・・
また、同内容の書き込みを玄箱ハックBBSというサイトへ書き込んでありますので、よろしかったらレスよろしくお願いいたします。
Comment by ハチビ〜 — 2006年5月6日(土曜日) @ 17時30分56秒
こちらでdumpをbuildできた環境は以下の2つです
玄箱:
玄箱ファームウェア Ver 1.02
GCCは3.4.3にupgrade
玄箱HG:
玄箱HGファームウェア Ver 1.01
GCCは3.4.5にupgrade
です。
症状からするとコンパイラの問題ではなく単純に基本的なincludeファイルがインストールされていないような感じがします。こちらはglibcとかも玄箱添付CDのbinraryディレクトリに入っているものをそのままインストールしています。このあたりは以前書いた玄箱メモにある通りです。
Comment by Gan — 2006年5月7日(日曜日) @ 03時27分25秒