2016年5月3日火曜日

システムバックアップその18

今回は、これまで作ったスクリプトとバックアップデータを用いて、実際にリストアするところだ。
実際にリストアするため、これまで作っておいたOS領域が全て吹っ飛ぶ。失敗したら、ゼロから作りなおしだ。
でも、これまでほとんど何もカスタマイズしていないため、失敗してたらまたOSから再インストールすればいい。システム構築初期にOSバックアップリストアを検証しておくのは、十分に意味があるのだ。

さて、実際のリストアの流れは以下の通りになる。
  1. OSインストールメディア(CD/DVD)でブート
  2. Rescueモードを選択
  3. 使用する言語等を入力後、メディアのShellモードに入る
  4. 残っているLVM構成や、ディスクパーティションを削除
    (あくまで、SSD/HDDが生きているけどリストアする場合、だ。SSD/HDDが吹っ飛んだため、新しいSSD/HDDを用意した、という場合は不要だ)
  5. CIFSマウントポイントを用意し、バックアップデータやスクリプトが格納されているCIFSをマウントする
    (CIFSにバックアップしてなくて、USBメモリ等にバックアップしている場合は、ここではUSBメモリをマウントすることになるが…)
  6. リストアスクリプトがあるディレクトリまで移動し、リストアスクリプトを実行
  7. リストアが終わったら、Rescueメニューに戻り、ブートローダの設定(uEFIブートメニューの設定)を行う
  8. メディアを抜いて、システム再起動
  9. 動作を確認する
ちょっと長いが、ざっとこんな形になる。
1つずつ記事にしていくと、見る側も大変だろう。ここでは全て一気に記載することにする。
長いので、頑張って読んで欲しい。(頑張って書かないと…)
  1. OSインストールメディア(CD/DVD)でブート
    まずは、OSを停止(shutdown)させ、インストールメディアをドライブに入れてブートしよう。
    放置していると、内蔵SSDからブートしてしまうかもしれないので、画面をよく見てメディアからブートするようにしよう。(この時、必ずuEFIブートすること。機器によっては、uEFIブートに失敗すると、自動的にレガシーBIOSブートをしてしまうものもあるみたいだ。レガシーBIOSブートしてしまうと、最後の方のブートローダの設定で失敗するぞ)
  2. Rescueモードを選択
    メディアでブートすると、以下のようなメニューが出てくるはずだ。
    ・Install Ubuntu Server
    ・OEM install (for manufacturers)
    ・Multiple server install with MAAS
    ・Check disc for defects
    ・Rescue a broken system
    カーソルキーで、一番最後の「Rescue…」を選んでEnterキーを押せば、Rescueモードに入れるぞ。
  3. 使用する言語等を入力後、メディアのShellモードに入る
    最初に、使用する言語を聞いてくる。英語か日本語にしよう。ここでは日本語(Japanese)を選択する。日本語を選択した場合、「この言語は完全じゃない」と言われるが、気にせず「はい」を選択しよう。
    続いて、場所の選択。特に迷うことは無いだろう。
    キーボードの選択だ。自分が使っているキーボードのタイプを選んでおこう。検出機能もあるが、失敗すると面倒なので、自分で指定しよう。多分、ほとんどの人がJapanese - Japanese (OADG 109A)を選んでおけば問題ないだろう。
    ネットワーク内にDHCPサーバが無い場合は、IPアドレス等の設定画面が出てくると思う。もしその場合は、環境に合わせて入れておこう。(家庭用インターネットルータを使用している場合は、そのインターネットルータがDHCP機能を持っているはずなので、自動設定で完了するはず)
    続いてホスト名。リストア時のみに使用されるホスト名なので、特に制限は無い。まぁ、混乱しそうなら、もともと使用している「aquarius」にしよう。
    次はタイムゾーンの設定。最初の言語設定で日本語を選んでいたら、多分Asia/Tokyoが選ばれるはず。そのまま、「はい」を選択してしまおう。
    この後、ディスクがスキャンされ、今までのファイルシステムが使えるようなら、「マウントするか?」と聞いてくる。リストア作業で全消しするので、「ルートファイルシステムとして使用しない」を選ぼう。(SSD破損等で、新しいSSD/HDDに入れ替えていた場合は、この選択は無いはず)
    ここまで来たら、「レスキュー操作」だ。「インストーラ環境内でシェルを実行」を選ぼう。プロンプトが出てくるはずだ。
  4. 残っているLVM構成や、ディスクパーティションを削除
    新しいSSDに入れ替えたわけじゃなく、今まで使用していたSSDに対してリストアする場合、構成情報(LVM情報等)が残っている。これらを一旦クリアしよう。(新しいSSDに入れ替えた場合は、この作業は不要だ)
    まずはLVM情報から。
    # vgs
    SSDに作ったvg-rootというVGが認識されているはずなので、削除してしまおう。(この時点で、全てのデータが飛ぶぞ)
    # vgchange -a n vg-root
    まずは、vg-rootを非アクティブにする。
    # vgremove -f vg-root
    -fオプションを使用していないと、「本当に削除していいか?」と聞かれる。細かく聞かれるので、-fオプションを使って、綺麗サッパリ削除する。
    VGの削除が終わったら、VGを構成していたPVの削除をしておこう。
    # pvs
    /dev/sda3 がリストアップされるはずだ。こいつを削除する。
    # pvremove /dev/sda3
    これで、LVM情報は綺麗に無くなった。

    次は、ディスクパーティション情報だ。
    # parted /dev/sda
    (parted) print
    1~3の3つのパーティションが表示されるはずだ。全部削除しよう。
    (parted) rm 3
    (parted) rm 2
    (parted) rm 1
    (parted) print
    パーティションが綺麗サッパリ無くなったはずだ。
    (parted) quit

    これで、リストア先のSSDが綺麗になった。
  5. CIFSマウントポイントを用意し、バックアップデータやスクリプトが格納されているCIFSをマウントする
    レスキューモードで立ち上がっている状態(簡易OSで起動している状態)は、メモリの一部をHDDのように使ってOSデータを一時的に配置している。
    レスキュー専用のOSのため、バックアップデータを格納しているCIFS領域をマウントするマウントポイントが無い。作ってしまおう。
    # mkdir /media/backup

    そうしたら、バックアップデータが格納されているCIFS領域をマウントしよう。
    ただ、マウントコマンド及びオプションが少し異なるので注意が必要だ。
    # mount -t cifs -o user=guest //IPアドレス/バックアップ格納先 /media/backup
    # ls /media/backup
    無事にマウント出来たら、バックアップデータ(日付ディレクトリ)が見えるはずだ。
  6. リストアスクリプトがあるディレクトリまで移動し、リストアスクリプトを実行
    ここまで来たら、リストア実行だ。
    リストアしたいデータの日付ディレクトリを確認し、その下のbinディレクトリまで移動しよう。
    # cd /media/backup/YYYYMMDDhhmmss/bin
    # ls
    バックアップスクリプトと一緒に、リストアスクリプトもあるはずだ。
    これを実行しよう。
    # ./1000_restore
    ファイルシステム作成時、「続けていいか?」という問いが発生するみたいだ。ここは気にせず、yを押そう。

    しばらくしたら、プロンプトが戻ってくる。
    これでファイルのリストアは完了だ。
    プロンプトから抜けて、リストアメニューに戻ろう。
    # exit
  7. リストアが終わったら、Rescueメニューに戻り、ブートローダの設定(uEFIブートメニューの設定)を行う
    Resqueメニューに戻ったら、すぐに再起動したくなる気持ちを抑えて、「戻る」からメニュー全体に移動しよう。
    ファイルシステムのマウントのメニューが出てくる。ルートファイルシステムである、/dev/vg-root/lv-root を選択しよう。
    個別の/bootパーティション云々、という画面も出てくる。合わせて「はい」を選択しよう。

    次のメニューでは、一旦「/dev/vg-root/lv-root 内でシェルを実行」を選択しよう。リストアしたファイルシステム一式を、マウントしておきたいからだ。
    コマンドプロンプトに入ったら、mount -a を実行しよう。mountコマンドを使って、/dev/sda1 等がマウントされているのを確認したら、戻っていい。exitしよう。
    (もしかしたら、このブロックの作業は不要かもしれない)

    戻ってきた画面には、「GRUB ブートローダの再インストール」というメニューがあるはずだ。これを実行しよう。(多分コレを実行することで、uEFIメニューが出来る…はず)
    インストール先は/dev/sdaでいいはずだ。
  8. メディアを抜いて、システム再起動
    ここまで行ったら、メディアを抜いて「システムの再起動」を実行しよう。
    Ubuntuが無事に立ち上がってきたら成功だ。
  9. 動作を確認する
    念のため、dmesgや/var/log/syslog等をチェックしておこう。
    最後に、念には念を入れて、再起動一発入れておくのもいいかもしれない。
これでリストア作業は完了だ。
長かったシステムバックアップ・リストアもこれで一区切りついた。

次回からは、OSを16.04にリフレッシュして、いよいよ本格的に実験を始める予定だ。
#今のところ、/ と /usr は分離する方向で考えているので、バックアップ設定ファイルも一部変更が必要だけど…。

0 件のコメント:

コメントを投稿