以前、Ubuntuのシステム保護にTimeshiftを紹介しました。

Timeshiftの能力を完璧に引き出すにはBtrfsファイルシステムで利用するのが一番なんですが、ext4環境でも十分役立ちます。ただ、ext4環境での動作は全く異なり、rsyncによるファイルコピーによって実現しています。したがって、バックアップや復元にはそれなりに時間がかかるのと容量も必要になるので何度も繰り返しバックアップする、といった用途には不向きになります。
ext4環境ではGRUBメニューからの復元は不可
また前回紹介した時はGRUBメニューに追加して、Ubuntuが起動しない時でも復元出来るようにしましたが、ext4環境では、その仕組み上、GRUBメニューに追加して起動するというわけにいきません。grub-btrfs はその名の通り Btrfs専用ツールです。Timeshiftのスナップショットを検出してGRUBに追加するには、ルートファイルシステムが Btrfs である必要があります。
| 構成 | grub-btrfs | 結果 |
|---|---|---|
/ が Btrfs | ✅ | スナップショット検出・GRUB追加される |
/ が ext4 | ❌ | 検出対象なし・何も追加されない |
Timeshiftはext4でも使えますが、rsyncモードでのバックアップになります。rsyncスナップショットはGRUBから直接起動できる形式ではないため、grub-btrfsは無意味です。
リカバリーモードから起動して復元
Ubuntuが起動する状態なら、Timeshiftを起動して復元を指示、再起動で完了と、復元を実行出来ますが、Ubuntuが起動しなくなった場合はどうすれば良いのか。まずはリカバリーモードで起動出来るか試します。
リカバリーモードからのTimeshift復元手順
Ubuntuが通常起動しない場合、リカバリーモードの「root(ルートシェル)」からコマンドを使ってTimeshiftのバックアップを復元できます。
- ルートシェルを起動する
リカバリーメニューからroot(Drop to root shell prompt) を選択し、Enterキーを押します。 - ファイルシステムを書き込み可能にする
起動直後は読み取り専用になっているため、以下のコマンドを実行してファイルの変更を許可します。
mount -o remount,rw /
- バックアップ(スナップショット)の一覧を確認する
保存されているバックアップ履歴を表示し、戻したい日時の「Num(番号)」または「Name(日付文字列)」を確認します。
timeshift --list
- 復元処理を実行する
以下のコマンドを入力し、画面の指示(英語)に従って復元するスナップショットの番号などを選択します。
timeshift --restore
- システムを再起動する
復元が完了したら、以下のコマンドでPCを再起動します。
reboot
UbuntuのライブISOを利用してTimeshiftのスナップショットからリストア
リカバリーモードでも起動できない場合は、UbuntuのライブISOから起動して復元します。先日の、GRUBメニューからUbuntuのライブISOを起動出来るようにしていると、わざわざCDやUSBメモリを用意しなくてもよくなるので便利です。

実際に復元するには、ライブISOから起動したあと、Timeshiftをインストールし、起動すれば復元出来ます。
sudo apt update
sudo apt install -y timeshift



