Ubuntu: OSアップグレード・再インストール前のパッケージリストとホームディレクトリバックアップ手順
Ubuntu の OS メジャーアップグレード、新規インストール、別マシンへの環境移行時に使う、パッケージリストとホームディレクトリのバックアップ手順を説明します。手順は、dpkg --get-selections によるパッケージリストの取得と、ホームディレクトリの tar アーカイブ作成です。取得したパッケージリストからは、GRUB などのブートローダー関連と Linux カーネル関連の行を削除します。これらを残したままリストアすると、稼働中のカーネルやブートローダーと競合し、システムが起動しなくなることがあります。作成した dpkg.txt と tar ファイルは、PC 本体とは別のストレージに保存します。
作成したホームディレクトリとパッケージリストファイルを用いた新システムでのリストア手順については、 別の Web ページで説明しています。
手順
- 手順1. (オプション) 不要ファイルの削除
バックアップサイズを減らすため、ダウンロード済みパッケージのキャッシュと、依存関係のために入った不要パッケージを削除します。この手順は任意です。
# ダウンロード済みパッケージのキャッシュを削除 sudo apt clean # 不要になった依存パッケージを削除 sudo apt -y autoremoveブラウザのキャッシュやアプリケーションのログなど、対象を選んで削除したい場合は BleachBit を使います。
# パッケージリストの情報を更新 sudo apt update sudo apt -y install bleachbitインストール後、BleachBit を起動し、削除する項目を選んで実行します。
- 手順2. パッケージリストの取得
インストール済みパッケージの一覧を
dpkg.txtに保存します。dpkg --get-selections > dpkg.txtあわせて、自分で明示的にインストールしたパッケージの一覧も保存しておくと、リストア時に最小構成で入れ直せます。
apt-mark showmanual > dpkg-manual.txt
- 手順3. ホームディレクトリのバックアップ
ホームディレクトリのファイルと設定(隠しファイルを含む)を tar アーカイブに保存します。
your_usernameは実際のユーザー名に置き換えて実行してください。アーカイブは、バックアップ対象に含まれないように、ホームディレクトリの外(この例では/var/tmp)に作成します。# バックアップしたいユーザーのホームディレクトリへ移動する cd /home/your_username # ホームディレクトリ全体(カレントディレクトリ '.' を指定)をアーカイブにする # -c: 新規アーカイブ作成, -v: 詳細表示, -p: パーミッション保持, -f: ファイル名指定 sudo tar -cvpf /var/tmp/home_your_username_$(date +%Y%m%d).tar . # 作成したファイルの所有者を元のユーザーに変更する sudo chown your_username:your_username /var/tmp/home_your_username_$(date +%Y%m%d).tarカレントディレクトリを示す
.を指定することで、.bashrcのような隠しファイルもバックアップ対象になります。-p オプションは、ファイルのパーミッションと所有権を保持します。これにより、リストア後に権限を再設定する手間を省けます。
サイズを小さくしたい場合は
-zを追加し、拡張子を.tar.gzにします。sudo tar -czvpf /var/tmp/home_your_username_$(date +%Y%m%d).tar.gz . - 手順4. パッケージリスト(dpkg.txt)の編集
dpkg.txtには、現在のハードウェア構成やシステム構成に固有のパッケージ情報が含まれます。テキストエディタで開き、次の行を削除します。-
deinstallの記述の削除「deinstall」を含む行は、削除済みのパッケージを示します。新規インストールしたシステムへのリストアでは不要なため、削除します。
-
purgeの記述の削除「purge」(設定ファイルごと削除された状態)を含む行も、同様に削除します。
- GRUB の記述の削除
GRUB(ブートローダー)は、新しいシステムのインストール時にそのシステム用に設定されます。古い GRUB パッケージを指定するとブートローダーの設定が上書きされ、起動できなくなることがあるため、次のような行を削除します。
grub-common install grub-efi-amd64 install grub-efi-amd64-bin install grub-pc install grub2-common install shim-signed install - Linux カーネル関連の記述の削除
Linux カーネルは、システムのハードウェア構成に対応してインストールされます。新しいシステムにはその環境用のカーネルが入るため、古いカーネル関連の行(
linux-image-*,linux-headers-*,linux-modules-*など)を削除します。linux-headers-6.14.0-32 install linux-headers-6.14.0-32-generic install linux-headers-generic install linux-image-6.14.0-32-generic install linux-image-generic install linux-modules-6.14.0-32-generic install linux-modules-extra-6.14.0-32-generic install - (オプション)NVIDIA ドライバ関連の記述の削除
新しいシステムで NVIDIA グラフィックスドライバを改めてインストールする場合、またはバージョンを変える場合は、
nvidiaを含む行を削除します。nvidia-driver-580 install nvidia-dkms-580 install nvidia-kernel-common-580 install - (オプション)新しいシステムで使わないアプリケーションの記述の削除
新しいシステムに入れる必要のないアプリケーションがある場合は、該当する行を削除します。パッケージ名で検索して削除します。
transmission-gtk install transmission-common install aisleriot install gnome-mahjongg install gnome-sudoku install
-
- 手順5. バックアップファイルの保管
以上の操作で、次のファイルが作成されます。
- ホームディレクトリのバックアップ:
home_ユーザー名_日付.tar(例:home_taro_20260401.tar) - パッケージリスト:
dpkg.txt、dpkg-manual.txt
これらのファイルは、USB メモリ、外付けハードディスク、ネットワーク上のファイルサーバー、クラウドストレージなど、PC 本体とは別のストレージに保管してください。保管後、tar アーカイブが読み出せることを次のコマンドで確認します。
# アーカイブの内容一覧を表示して、正しく作成されているか確認する tar -tvf /var/tmp/home_your_username_$(date +%Y%m%d).tar | head - ホームディレクトリのバックアップ: