Ubuntu Weekly Recipe

第588回 TimeShiftでUbuntuをホットバックアップする 2019年版

この記事を読むのに必要な時間:およそ 4 分

リストア

リストアをどう行うかは悩ましいです。うまくリストアできる方法として可能性が高いのは,次の方法でしょう。

  1. リストア先のハードドライブ(SSD/HDD)にあらかじめリストア元と同じバージョンのUbuntuをインストールしておく。
  2. USBメモリーなどのライブイメージからUbuntuを起動して,TimeShiftをインストールする。
  3. TimeShiftを起動して,リストアするスナップショットを選択し,⁠Restore」をクリックする。そして指示に従ってリストアを行う。

もちろん何もインストールしない状態からのリストアも可能です。ただし事前にフォーマットをしておく必要はあります。また従来のレガシーブート方式では特に気を使うことはなく,普通にEXT4でフォーマットしておけばいいのですが,UEFIブート方式では事前に/boot/efi用のパーティションをFAT32でフォーマットし,さらにマウントしておく必要があります。図10図11がその例です。もちろんEXT4でフォーマットしたルートパーティションも用意してください。

図10 GPartedの設定例。UEFIブート方式ではFAT32でフォーマットし,⁠ESP」フラグを立てるのがポイント

画像

図11 UEFIブート方式ではFAT32のパーティションを事前にマウントしておくのもポイント

画像

Ubuntuのライブイメージを準備することは問題ないとして,TimeShiftのパッケージをどのようにインストールするのかもポイントの一つです。リポジトリにあるUbuntu 19.04以降でもUniverseにあるため,Ubuntuソフトウェアなどからはインストールできません。普段は意識しませんが,ライブイメージではUniverseは無効化されています。

よって,PPAを追加するか,またはそれが面倒であればPPAのページをWebブラウザーで直接開いて該当のバージョンのパッケージをダウンロードし,ダブルクリックしてインストールします図12⁠。

図12 パッケージを直接ダウンロードする例

画像

TimeShiftをインストールして,リストア元のハードドライブを接続し,起動するとやはり図1と図2のウィザードが起動します。ただし起動しているライブイメージが入ったドライブも表示されていることでしょう。

設定が完了するとメインウィンドウが起動します図13⁠。⁠Live USB Mode (Restore Only)」という文言が目立ちます。リストアするスナップショットを選択し,⁠Restore」をクリックしてください。

図13 ライブイメージから起動した例。リストアしかできない

画像

するとリストア用のウィザードが起動します。従来のレガシーブート方式では「/」だけの設定を行えばいいのですが,UEFIブート方式では「/boot/efi」「Bootloader Options (Advanced)」をクリックして「(Re)install GRUB2 on:」を変更します図14,15⁠。するとリストア先のフォルダーをスキャンして具体的にどのファイルをリストアするのかの一覧が表示されます図16⁠。

図14 レガシーブート方式では「/」を,UEFIブート方式ではさらに「/boot/efi」を設定する

画像

図15 UEFIブート方式ではGRUB2のインストール先も変更する

画像

図16 リストアするファイル一覧が表示される

画像

「Next」をクリックすると警告と免責事項が表示されます図17⁠。しかし場合によっては表示されないこともありました図18⁠。⁠Next」をクリックすると実際にリストアが実行され,完了すると注意画面が表示され図19⁠,TimeShiftを終了します。

図17 警告と免責事項が表示される

画像

図18 不具合なのか,表示されないこともあった

画像

図19 リストア完了後に表示される注意画面

画像

再起動してもうまく行かない場合は図19の注意にも記載のとおり,別のスナップショットでリストアしてみるか,あるいは図14と15の設定を確認し直してみてください。

まっさらの状態からリストアした場合の注意点は,Ubuntu 18.04 LTS以降ではスワップファイルが/swapfileにありますが,これはバックアップには含まれていないことです。つまり何もインストールされていない状態でリストアするとスワップファイルがありません。

コマンドラインでのバックアップ

デスクトップで何らかのサーバー(デーモン)が動作している場合,バックアップを取るのはそれらのサーバーを終了した後のほうが都合がいいです。ただ,いちいちバックアップの前に手動でサーバーを止めるのは面倒なので,一連の作業をシェルスクリプトにしてバックアップ時に実行するといいでしょう。

TimeShiftは基本的な操作はコマンドラインからも実行できるため,これを使用すると便利です。必要な設定をあらかじめ済ませておく必要がありますが,バックアップを実施するだけであれば次のコマンドを実行してください。

$ sudo timeshift --create

コマンドラインでバックアップを取ることの利便性は,タグを付けられるところです。任意(オンデマンド)で実行したにもかかわらず,タグを付けると,定時のタイミングでバックアップを取ったことと同じになります。

これの何が便利かというと,スナップショットは自動実行のタイミングごとに保存数を決められますので(図3をもう一度ご覧ください⁠⁠,この数内に収められるということです。例えばブート後に自動バックアップを行うように設定し,保存数を5個にした状態で次のコマンドを実行します。

$ sudo timeshift --create  --tags B

あるいは,識別用にコメントをつけてみます。

$ sudo timeshift --create  --tags B --comments "コマンドラインからバックアップを実行"

バックアップ完了後TimeShiftを起動してみると,先程のスナップショットは「Tags」「B」になっており,ブート後にバックアップしたものとみなされています図20⁠。

図20 コマンドラインからオンデマンドで実行したにもかかわらず,ブート時にバックアップしたものとみなされている

画像

もしブートだけですでに5個のスナップショットがあった場合,自動的に一つ削除します。これにより,バックアップ先の容量を充分に確保することができる,というわけです。

もちろんバックアップ先のストレージ容量が足りなくなった場合は,任意のタイミングで取ったスナップショットも削除されるようになりますが,自分でコントロールすることはできません。手動管理も面倒なので,タグを使用して制御するのが楽で確実でしょう。

著者プロフィール

あわしろいくや

Ubuntu Japanese TeamとLibreOffice日本語チームのメンバー。LibreOffice,VirtualBox,Joplin,Budgieデスクトップなどの翻訳を手がける。技術同人サークルteam zpn主宰。ほか原稿執筆を少々。