USBメモリでデータをバックアップする —
Cygwin/Mac ユーザのために

小波秀雄


今やフロッピーディスクは過去の産物となり, 手軽に使える USB メモリがデータ保管の最も有用な道具です。 たいていの人は,てきとーにファイルをコピーしてバックアップしている と思いますが,作業している人の手の動きなんか見ていると, ずいぶんと手の動きが大きいし,作業時間もかかっています。それでいて 確実にバックアップできているのかも,ちょっと気になります。

ここでは Cygwin や Mac を使って作業をしている人のために, 効率的なバックアップのやり方を案内しておきましょう。ここで紹介する基本的な手順は, ファイルをディレクトリ(フォルダ)ごと圧縮したファイル(tarballと言います)を作成し て,その圧縮ファイルを保存するというものです。 なお,圧縮ファイルをサーバにアップロードしたり,メールに添付して送ったりすることも 簡単ですので,このテクニックはしっかり頭に入れておきましょう。

どんな人のための記事か

Cygwin のシェル(Bash)でエディタを使ってプログラムや 文書などを作成している人,あるいは Mac の X 環境で 同じようなことをやっている人が対象です。 やろうとしているのは,ディレクトリごと圧縮してひとつの 書庫ファイルにして,USBメモリにコピーすることです。

なれれば簡単な作業ですから, 気楽にバックアップが作れるし,また他のコンピュータに 自分のディレクトリをそっくりコピーすることもでき,とても便利です。

Cygwin と Mac における USB メモリの扱いについて

作業を始める前に,PCに装着された USB メモリにどのようなパスが割り振られるのか を知っておきましょう。次のようになります。ただし Cygwin の場合には 割り当てられるドライブが E: であることを想定していますので, もしも USB を刺したときに他のドライブ名に割り当てられるときには,それに合わせてください。

Cygwin: /cygdrive/e
MacOS X:/Volume/NO\ NAME

以下の説明で /cygdrive/e とある部分は,必要に応じて USB のリムーバブルディスクのドライブ名に合わせて, あるいは Mac であれば上記のように /Volume/NO\ Name としてください。

書庫ファイルの作成からバックアップまで

今,Cygwin や Mac のシェルで何かやっていて,できているファイルをバックアップしたい という状況です。
作業しているディレクトリを hoge とします。 また,USB ディスクは E: ドライブに割り当てられているものとします。 このディレクトリを丸ごと圧縮してしまいます。

下の記述では, > はシェルのプロンプト,入力の最後のリターンキー入力 は省略されています。 この色の部分は説明ですから,入力してはいけません。

> cd .. 親ディレクトリに移動
> tar cvfj hoge.tar.bz2 hoge/  圧縮のためのコマンド
ここでファイル圧縮の様子が表示されます。
終わるのを待ちましょう。
> cp hoge.tar.bz2  /cygdrive/e/ E: ドライブに圧縮ファイルをコピー

これで終わり。たったの数秒の手間です。 なるべく頻繁にこの 作業をやっておくと万一のときに安心です。

出来上がったファイルには tar.bz2 という拡張子がついていますね。この圧縮ファイルのことを tarball (ターボール)といいます。なお,拡張子が tar.gz という tarball もよく見かけます。 それについては下の解説を見てください。

バックアップファイルから復元する

万一PCがおかしくなったとか,あるいは他のPCにそっくり 同じものを復元したいというときには,次のように操作してください。


まずはCygwin のシェルを起動して, バックアップを展開すべきディレクトリに移動しておきます。
> cp /cygdrive/e/hoge.tar.bz2 . E: から自分のいるディレクトリに圧縮ファイルをコピーします(最後の . を見落とさないで!)。
> tar xvfj hoge.tar.bz2  復元が行われます。
これだけでおしまいです。

解説

あまりにも簡単なのであっけなかったかな。 やっていることの意味を説明しておきましょう。

その他ついでに

hoge.tar.gz って?

圧縮された書庫ファイル(圧縮と書庫化は本来別々のものだというのは 上を読むと分かりますね)としては,拡張子が .tar.gz がついたものもよくあります。これは上でもちょっと触れているように gzip という圧縮ツールを使ってできたものです。

何を調べればこんなことが分かるんでしょうか,って?

基本的には Unix の操作をマスターすることですが, 大切なのは たとえば tar の動作をヘルプ機能で 調べることです。 ヘルプを出すには次のようにします。

tar --help |less
これでいろいろと表示されます( jで下に kで上に表示をスクロールできます)。英語ですが,単語を拾って読もうとする 努力ぐらいはしましょう。