Ubuntu 20.04にTimeshiftをインストールしてバックアップ先として暗号化した外付けディスクを設定してみた

### 概要

前回は[暗号化したディスクに対してUbuntu 20.04をインストールする手順](https://qiita.com/akase244/items/82e7ec3e052a4b815654)を書きましたが、今回は、Ubuntu 20.04の環境にバックアップのシステムである[Timeshift](https://github.com/teejee2008/timeshift)をインストールして、暗号化を行ったUSB接続の外付けSSDをバックアップ先として設定してみた記録です。

---

### 前準備

外付けSSDを暗号化して利用するため、まずはUbuntuの「ディスク」ユーティリティを使って暗号化の処理を行っていきます。
そのバックアップ先として、今回は[バッファロー製の外付けSSD](https://www.amazon.co.jp/dp/B0814SMKHD/)を準備しました。

それでは準備しておいた外付けSSDをUSBに接続して、Ubuntuに付属の「ディスク」ユーティリティを起動します。
![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/a5a79a20-0923-6f04-f4b1-11907a000d78.png)

Timeshiftではバックアップ先がLinuxパーティションである必要があるようです。（対応パーティションについては「[Supported System Configurations](https://github.com/teejee2008/timeshift#supported-system-configurations)」を参照してください）
今回準備したSSDはNTFSでフォーマットされているため、Linuxパーティションでフォーマットする必要があります。
もし、ハードディスク内に収録されている内容が消えて困る場合は、以降の手順は行わないようご注意ください。
![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/7f86932a-935b-0ecf-e75c-33bda8e6b087.png)

「ディスクを初期化」をクリックします。
![3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/581c1c19-4fee-0083-29cc-ec9a46ccfa93.png)

今回は新品のSSDのため、「消去」の項目は「既存のデータを上書きしない（クイック）」を選択します。
「パーティション」は「パーティションなし（空）」を選択して、「初期化」をクリックします。
![4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/e8a47042-382d-1490-c3d2-e0604a520711.png)


確認画面が表示されるので、「初期化」をクリックします。
![5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/3aadd6c3-c18e-50c1-26c8-4d0b2c0c82c5.png)

初期化が完了すると「内容」に「Unknown」と表示されます。
![6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/0ece3cdb-df58-718c-cd6a-3a9bb7e4f00f.png)

「ボリューム」の項目にスパナのアイコンがありますので、これをクリックします。
表示されているメニューの中から「パーティションを初期化」をクリックします。
![7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/d1294bff-2f1f-50e0-5861-be6578d3d5b7.png)

「ボリューム名」に任意の名前（今回は「Timeshift」にしました）を入力します。
既存データの上書きは行わないため「消去」のトグルスイッチは無効の状態とします。
「タイプ」から「Linux用の内蔵ディスクとして使用する(Ext4)」を選択します。
ディスクの暗号化を行うため「ボリュームをパスワードで保護する(LUKS)」にチェックして、「次へ」をクリックします。
![8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/53e9cf54-848a-81dd-3d33-019f4520c7f9.png)

ディスクの暗号化のため「パスワード」の入力が求められるので設定して、「次へ」をクリックします。
![9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/a065c5c1-2721-4c28-3e6e-0b5e8dab5568.png)

フォーマットを行う前の最終確認が表示されますので、内容を確認して「初期化」をクリックします。
![10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/c0d4f899-cca2-9d11-2bd5-2784562858c4.png)

「内容」に「LUKS Encryption」と表示されていればディスクの暗号化は成功です。
また、暗号化されたディスク領域に「Timeshift」というボリュームが作成されていたら初期化作業は完了です。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/08abcf3b-915e-8b29-342a-53fbf0c5469b.png)

「Timeshift」のボリュームを選択して、再生ボタン（mountコマンドを実行したことと同じ動作）をクリックします。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/7110ca03-cca2-ff4d-0b4c-13cb5281cfb6.png)

---

### Timeshiftをインストール

aptコマンドで「timeshift」を検索します。

```
$ apt search timeshift |grep ^timeshift
・
・
timeshift/focal 20.03+ds-2 amd64
```

aptコマンドで「timeshift」をインストールします。

```
$ sudo apt install -y timeshift
```

timeshiftのヘルプを表示してコマンドが実行できるか確認します。

```
$ timeshift --help

Timeshift v20.03 by Tony George (teejeetech@gmail.com)

Syntax:

  timeshift --check
  timeshift --create [OPTIONS]
  timeshift --restore [OPTIONS]
  timeshift --delete-[all] [OPTIONS]
  timeshift --list-{snapshots|devices} [OPTIONS]
・
・
```

---

### Timeshiftの設定

Timeshiftを起動します。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/354b8fb3-8475-79d4-07f6-752724e902b2.png)

初期表示ではこのような表示になっています。
![14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/d4b197a4-dfae-6a56-f63a-5cda5f282ee2.png)

「設定」をクリックします。
※「ウィザード」から設定することも可能ですが、今回は「設定」のタブから行います。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/5de2d32a-7b88-aeb2-7e76-3d9735504b9f.png)

「タイプ」のタブを表示します。
「スナップショットタイプの選択」から「RSYNC」を選択します。
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/f163eb22-5d66-4881-a25e-de296df0ff00.png)

「場所」のタブを表示します。
「スナップショットの場所を選択」から外付けSSD内に作成した「Timeshift」のボリュームを選択します。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/55fb3f32-0ccc-48d4-89f7-4152dda40d94.png)

「スケジュール」のタブを表示します。
定期的なバックアップを行う場合は「スナップショットレベルの選択」から適宜設定を行います。
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/6d8130d7-b26a-2feb-a591-e7789f65e915.png)

「ユーザー」のタブを表示します。
ホームディレクトリ配下の除外設定を行います。
※Timeshiftのデフォルト設定ではホームディレクトリ配下はバックアップ対象となっていませんので必要に応じて設定してください。
![19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/1f9d37a9-5497-22a5-942b-b752f3119003.png)

「フィルター」のタブを表示します。
バックアップに含める、もしくは、除外するバターンを定義します。
![20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/3fdbc1ae-dcbf-5568-3925-69c959f04214.png)

「その他」のタブを表示します。
バックアップ取得時の日付の書式を設定します。すべての設定が完了したら「はい」をクリックします。
![21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/117e0acc-0f6e-c127-17fd-14625c0153e8.png)

---

### Timeshiftの実行

「新規作成」をクリックします。
![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/b2c4c5a9-664a-b284-03dc-ad59907bddb6.png)

スナップショットの作成が開始されます。
![23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/239d3460-dae7-0e1b-13ef-62b4d26bd12d.png)

スナップショットの作成が完了すると、「日付形式」で設定した書式に従った名前で一覧に表示されます。
![24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/f29712e4-6a95-d327-e688-60a4eaa08c9a.png)

作成されたスナップショットを選択して右クリックメニューの「ファイルを閲覧」を選択すると、スナップショット取得時点のファイルの中身が確認できます。
バックアップを取得したつもりで必要なファイルがバックアップ対象から漏れているといったことがないように、この機能は有効利用していきたいですね。
![25.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23093/7330f206-728c-c8ae-3975-afcf72d79fe3.png)

---

### まとめ

[MacのTime Machine](https://support.apple.com/ja-jp/HT201250)を利用する感覚でUbuntu環境でもバックアップを取得できることがわかったのではないでしょうか。

マシントラブルが発生した場合に、いざリストアを行おうと思ってもバックアップが正しく取得できていないとリストアできないので、こういったバックアップツールを活用して日頃からバックアップを取得するようにしておきたいなと思いました。

リストアする機会はなるべくない方がよいのですが、リストアを行う手順についてもおさえておくべきなので、そのうちリストアについても試してみるつもりです。

---

### 参考URL
- [TimeShiftでUbuntuをホットバックアップする 2019年版](https://gihyo.jp/admin/serial/01/ubuntu-recipe/0588)
- [TimeMachineのように使用できるLinux向けのスナップショットアプリTimeshiftの使い方](https://www.virment.com/setup-timeshift-ubuntu/)
- [Timeshiftのバックアップ対象にホームディレクトリを含める方法](https://qiita.com/hato_poppo/items/c7f5855601970da10734)
- [HDDをフォーマットする - Ubuntu 20.04編](https://sicklylife.jp/ubuntu/2004/hdd_format.html)