2014年8月31日日曜日

root.diskを利用したLinuxのバックアップ・復旧の方法

復旧の方法はいくらでもありますが、その一つとして紹介します。

Linuxをいじっていると、復旧の手段がなくなるまでシステムを破損することがあると思います(私はよくあります)。Linuxは何でも自由にいじれます。しかし自由であるということは、責任を伴うということです。

私が(今回)やってしまったのは

1. /dev/loop0にルートをマウントした
2. マウントしたままfsckをした (ERROR!)

でした。
マウントしたままであったのをしばらく気づかず、その後も色々操作をしてしまい、複数のシステムファイルをどこかにやってしまいました(正確にはファイルのinodeが消えてしまったのでしょう)。


結局Ubuntuをインストールしなおして、必要なデータを元のUbuntuから取り出し、そちらはアンインストールすることにしました。

データの取り出し方は、Linux to Linuxは非常に簡単で、

sudo mkdir /mnt
sudo mount /path/to/root.disk /mnt
sudo cp -r /mnt/home/user/files /home/user
sudo umount /mnt


とすればディスクイメージからファイルを取り出すことができます。
何をやっているかというと、

1. sudo mount /path/to/root.disk /mnt

ディスクイメージを/mntにマウント。これによって/mntからディスクイメージにアクセスすることができる

2. sudo cp -r /mnt/home/user/files /home/user

/mnt以下の仮想ファイルの必要なものをコピーしてくる

3. sudo umount /mnt

マウントしたイメージを戻す


といった感じです。

そういう訳で、root.diskのバックアップは定期的にとっておくと便利だと思います。Ubuntuはファイルサイズもそんなに大きくならないので、時間もそんなにかかりません(不思議なことにUbuntuを使っているとHDDをあまり使いません。多分ゲームをあまりダウンロードしなくなるからでしょう。)。

もっとも効率良くLinuxを知る方法は、Linuxをクラッシュさせ、復旧を試みることだというのが有名な話です。そういう意味でこの方法は再起不可能なまでにクラッシュさせた場合に使うべき方法かもしれません。あるいは復旧にかける時間がない時などに、手早く必要なファイルを取り出せます。


こういうことを経験していくと、逆にWindowsの設計思想を理解できるようになるように思えます。
Windowsはシステムファイルを完全に隠蔽しているのでなかなか(意図せず)再起不能にさせることができないのです。



0 件のコメント:

コメントを投稿