コマンドを叩いた直後に…「詰んだ」
Ubuntuを長く使っていると、こんな光景に心当たりがあるはずです。sudo apt upgradeを実行して再起動したら、ロゴでフリーズしたり、画面が真っ開なまま動かなくなったり。最新のNVIDIA 550ドライバを無理やり入れたり、怪しいPPAをいじったりしたせいで、システムが急に重くなったりネットワークが消えたりすることもあります。
こんな時、OSの再インストールは下策です。Dockerの再セットアップ、Nginxの設定、.zshrcの編集、GNOME拡張機能の入れ直しなどで丸一日潰れてしまいます。ITエンジニアにとって、これは時間の無駄以外の何物でもありません。
Ubuntuが「壊れる」3つの主な原因
公平に見て、Ubuntuは非常に堅牢です。しかし、以下の3つの理由でシステムが崩壊することがあります:
- ドライバの競合: アップデート後のグラフィックボードや互換性のないカーネルモジュールで最もよく発生します。
- PPAによる依存関係の崩壊: PPAなどのサードパーティのリポジトリを増やしすぎると、重要なシステムライブラリが上書きされ、整合性が取れなくなることがあります。
- ヒューマンエラー:
rm -rfの実行場所を間違えたり、バックアップを取らずに/etc内の設定ファイルを書き換えたりすると、OS全体が使い物にならなくなります。
私のステージング環境では、Ubuntu 22.04サーバーのカーネルを変更する前に、必ず安全な「退路」を確保するようにしています。そのために欠かせないツールがTimeshiftです。
なぜ従来のバックアップ方法ではないのか?
Timeshiftに落ち着く前、いくつかの方法を試しましたが、どれも欠点がありました:
- 手動アーカイブ: ルートディレクトリ全体を
.tar.gzにするのは非常に遅く、容量も食います。 - ddコマンド: ディスクを丸ごとコピーするのは、新しいドライブに交換する時以外、日常使いには不便すぎます。
- 手動rsync:
/proc、/sys、/devなどを除外する設定に精通していないと、バックアップからの復元に失敗します。
Timeshift:Linux版「タイムマシン」
Timeshiftは、Windowsの「システムの復元」のように動作します。写真や動画などの個人データではなく、システムファイルと設定の保護に特化しています。そのため、バックアップ速度が非常に速く、ストレージを圧迫しません。
UbuntuへのTimeshiftインストール方法
Ubuntu 22.04/24.04のデフォルトリポジトリにもありますが、最新の修正版を入手するために公式PPAを使用することをお勧めします:
sudo add-apt-repository -y ppa:teejee2008/timeshift
sudo apt update
sudo apt install timeshift -y
RSYNCかBTRFSか?
初回起動時に、モードの選択を求められます:
- RSYNC: 最も一般的なモードで、あらゆるファイルシステム(EXT4、XFSなど)で動作します。初回はフルバックアップを行いますが、2回目以降は変更分のみをコピー(ハードリンクを使用)するため、高速で省容量です。
- BTRFS: インストール時にファイルシステムとしてBTRFSを選択した場合のみ使用可能です。ファイルシステムのスナップショット機能を利用するため、復元は数秒で終わります。
アドバイス: 標準的なUbuntuを使っている場合は、安定性の高いRSYNCを選んでおけば間違いありません。
バックアップスケジュールの設定(ベストプラクティス)
壊れてから後悔しないようにしましょう。Scheduleタブで、ディスク容量を最適化しつつ安全を守る「黄金比」を設定します(通常、1週間分で20〜30GB程度です):
- Monthly(毎月): 1つ保持
- Weekly(毎週): 2つ保持
- Daily(毎日): 5つ保持
- Boot(起動時): 1つ保持(起動直後の不具合対策)
Timeshiftは古いスナップショットを自動的に削除してくれるので、ディスクがいっぱいになる心配はありません。
個人データの取り扱いについて
デフォルトでは、Timeshiftは/home/userディレクトリを無視します。これは非常に合理的です。システムを2日前の状態にロールバックしても、昨日書いたコードやダウンロードしたドキュメントは消えません。もし.zshrcなどの設定ファイルも保護したい場合は、Users設定で「Include Hidden(隠しファイルを含める)」を選択してください。
トラブル発生時の復旧方法
ケース1:デスクトップにログインできる場合
軽微な不具合であれば、Timeshiftを開き、直近のスナップショットを選択してRestoreをクリックするだけです。再起動後、何事もなかったかのように完璧な状態に戻ります。
ケース2:完全に起動しない場合(黒い画面)
ここでTimeshiftの真価が発揮されます。UbuntuのライブUSBを用意してください:
- USBからUbuntuを起動します(Try Ubuntuを選択)。
- USB環境上でTimeshiftをインストールします。
- アプリを起動すると、PCのドライブ内にあるスナップショットが自動的にスキャンされます。
- Restoreをクリックし、ブートローダーのオプションはデフォルトのまま進めます。
5〜10分後、USBを抜いて再起動すれば、システムは見事に「復活」します。
実践的な小技
大規模なアップデートスクリプトを実行したり、サーバーのNginx設定を変更したりする前に、私はいつもこのコマンドを叩きます:
sudo timeshift --create --comments "Nginx設定変更前" --tags D
このコマンドを使えば、GUIを開かずに手動で復元ポイントを即座に作成できます。もし何かあっても、一晩中エラーを探す代わりに、数分でロールバックするだけで済みます。
最後に: Timeshiftは写真や動画のバックアップツールではありません。個人データを守るには、RcloneやGoogle Driveを併用してください。Timeshiftはあくまで「OSの健康のための保険」と考えておきましょう!
