プリインストール済のディスクをバックアップ ― 2007年08月27日 13時02分19秒
経験上未使用のハードディスクを読み出すと、全てがゼロで埋まっている。これが、偶然なのか、工場で全てこの様に初期化して出荷しているのかは知らない。何はともあれ、未使用の領域が多いと、dd で読み出したものを圧縮すると、圧縮率がとてもたかい。
それに加えて、MBR や複数のパーティションをもろとものバックアップを取ることもある。
そのため、新しく手元に来た PC のハードディスクは dd でバックアップを取るのが恒例の行事になっている。
# dd if=/dev/ad2 bs=1MB | buffer -m20M | gzip -9 | split -b2048m - XXX-ad2.dd.gzip.
流石に、512 バイト毎に読み出すと時間が掛かって仕方がないので、bs で大きくする。最近は、ディスクの末尾はほとんど使われていない場合が多いので、あまり考えずに 1MB と指定することも多い。
gzip を使うか、bzip2 を使うかは、CPU と IO の性能で臨機応変に変える。buffer を使うと、余計な IO 待ちが減るので、早くなる。
経験上、split は絶対いれておいた方がいい。ふと、fat 領域に書き込んで、2 GB の壁にぶつかり泣いたことが何度かある。古い Linux では、2 GB 以上のファイルを作れなかった事もある。
普段 split と 圧縮を組み合わせる時は、split したものを圧縮する。aa.bz2 などとなるわけだ。こうした方が、特定のバイトの範囲を指定するときに便利だったからだ。しかし、ディスク全体の dd の場合は、圧縮したものを split している。bz2.aa などとなる。一ファイルあたり、2 GB ものゼロを書き、圧縮し直すのが無駄だからだ。
次回。
コメント
_ 名無子 ― 2009年01月19日 14時10分14秒
_ uyota ― 2009年01月20日 12時29分55秒
cat XXX-ad2.dd.gzip.* | gzip -d | dd of=/dev/ad2 bs=1M
_ 名無子 ― 2009年01月22日 13時28分10秒
重ねての質問で申し訳ないのですが、
書き戻す時はbufferは不要なのでしょうか?
_ uyota ― 2009年01月22日 18時32分10秒
ただ、この dd の使い方は OS やデータを上書きする使い方のなので、各コマンドで何が起きているのか正しく理解が出来ていないようでしたら、この作業は勧めません。
間違えると起動すらしなくなる事があります。
_ 名無子 ― 2009年01月24日 11時26分27秒
無事に、環境を移行することができました。
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
トラックバック
このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/08/27/1754481/tb
※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。
ディクスに書き戻す方法を教えてください。