Ubuntu: OSアップデート・再インストール前のパッケージリストとホームディレクトリバックアップ手順

【概要】 Ubuntu システムのOSメジャーアップデート、新規インストール、あるいは別マシンへの環境移行時に役立つ、パッケージリストとホームディレクトリのバックアップ手順を説明します。主な手順は、`dpkg --get-selections` コマンドによるパッケージリストの取得と、ホームディレクトリの `tar` アーカイブ作成です。オプションとして、バックアップ前に BleachBit を用いて不要ファイルを削除する手順も紹介します。特に重要な点として、作成したパッケージリストから、GRUB などのブートローダー関連、Linux カーネル関連の記述を手動で削除する必要があります。これを怠ると、リストア時にシステムが起動不能となる可能性があるため注意が必要です。(オプションとして、NVIDIAドライバや特定のアプリケーション関連の記述削除についても触れます。)作成した dpkg.txt とバックアップ用 tar ファイルは、別のマシンや信頼できるストレージに保存してください。

作成したホームディレクトリとパッケージリストファイルを用いた新システムでのリストア手順については、 別の Web ページで説明しています。

手順

  1. 手順1. (オプション) BleachBitによる不要ファイルの削除

    バックアップサイズ削減やシステムクリーンアップのため、不要なキャッシュファイル等を削除します。この手順は任意です。

    BleachBit をインストールします:

    sudo apt -y update
    sudo apt -y install bleachbit
    

    インストール後、BleachBit を起動し、画面の指示に従って不要なファイルを削除してください。

  2. 手順2. パッケージリストの取得

    現在インストールされているパッケージの一覧を `dpkg.txt` という名前のファイルに保存します。

    sudo dpkg --get-selections > dpkg.txt
    
  3. 手順3. ホームディレクトリのバックアップ

    ユーザーのホームディレクトリにあるファイルや設定(隠しファイルを含む)を `tar` アーカイブとしてバックアップします。

    # root 権限で操作します。個別のコマンドに `sudo` を付けても構いません。
    # root権限での操作は十分注意してください。
    sudo su -
    
    # バックアップしたいユーザーのホームディレクトリへ移動します。
    # 'your_username' は実際のユーザー名に置き換えてください。
    cd /home/your_username
    
    # ホームディレクトリ全体(隠しファイルを含むカレントディレクトリ '.' を指定)をバックアップします。
    # ファイル名にはユーザー名や日付を入れると後で管理しやすくなります (例: home_myuser_20231027.tar)。
    # -c: 新規アーカイブ作成, -v: 詳細表示, -p: パーミッション保持, -f: ファイル名指定
    sudo tar -cvpf /home/your_username/home_$(whoami)_$(date +%Y%m%d).tar .
    
    # 作成されたファイルの所有者を元のユーザーに戻します (root で作成した場合)。
    sudo chown your_username:your_username /home/your_username/home_$(whoami)_$(date +%Y%m%d).tar
    
    # rootセッションから抜けます。
    exit
    

    重要: コマンド内の `your_username` は、ご自身の実際のユーザー名に置き換えて実行してください。

    カレントディレクトリを示す `.` を指定することで、`.bashrc` のような設定ファイルを含む隠しファイルもバックアップ対象となります。

    `-p` オプションは、ファイルのパーミッション(所有権、アクセス権)を保持するために重要です。これにより、リストア時の権限問題を回避できます。

  4. 手順4. パッケージリスト(dpkg.txt)の編集

    `dpkg.txt` の編集: 作成された `dpkg.txt` ファイルには、現在のシステム固有の情報や、新しいシステム環境では不要または競合する可能性のあるパッケージ情報が含まれています。リストア時の問題を未然に防ぐため、以下の点に注意してファイルを編集してください。

    • `deinstall` の記述の削除

      「deinstall」が含まれる行は、過去に削除されたパッケージの情報を示します。新規インストールしたシステムにリストアする際には不要ですので、これらの行は削除することを推奨します。

    • `purge` の記述の削除

      `deinstall` の行と同様に、「purge」(設定ファイルごと削除されたパッケージ)が含まれる行も削除することを推奨します。

    • `lilo` の記述の削除

      `lilo` は古いタイプのブートローダーです。もしリスト内に `lilo` を含む行が存在する場合は削除してください。(現在の Ubuntu では通常 GRUB が使用されています)

      lilo                                            install
      
    • `grub` の記述の削除

      新しいシステムでは、GRUB(ブートローダー)がインストールプロセス中に適切に再設定されます。古い GRUB パッケージのリストア指定は、システムの起動問題を引き起こす可能性があるため、関連する行(`grub`, `grub-common`, `grub-pc` など)は削除してください。

      grub
      grub-common
      grub-pc
      
    • Linux カーネル関連の記述の削除

      Linux カーネルは、システムのハードウェア構成に密接に関連しています。新しいシステム環境には、その環境に適したカーネルがインストールされるため、古いカーネル関連の行(`linux-image-*`, `linux-headers-*` など)は、競合を避けるために削除してください。(以下の例は古いバージョンのものですが、同様のパターンを持つ行を削除対象とします)

      linux-headers-2.6.27-9                          install
      linux-headers-2.6.27-9-generic                  install
      linux-headers-generic                           install
      linux-image-2.6.27-7-generic                    install
      linux-image-2.6.27-9-generic                    install
      linux-image-generic                             install
      linux-restricted-modules-2.6.27-7-generic       install
      linux-restricted-modules-2.6.27-9-generic       install
      linux-restricted-modules-common                 install
      linux-restricted-modules-generic                install
      
    • Linux PAE カーネル関連の記述の削除

      PAE (Physical Address Extension) カーネルは、主に 32bit システムで大容量メモリを利用するためのものです。新しいシステムで PAE カーネルが不要な場合は、「linux ... pae ... 」を含む関連行を削除してください。

    • (オプション)NVIDIA 関連の記述の削除

      新しいシステムで NVIDIA グラフィックドライバを別途インストールする場合や、異なるバージョンのドライバを使用する予定がある場合は、`dpkg.txt` 内の NVIDIA 関連の行を削除してください。

    • (オプション)Torrent クライアント関連の記述の削除

      新しいシステムで Torrent クライアント(例: transmission, ktorrent, vuze など)を使用しない場合は、関連する行を削除してください。ファイル内で `torrent`, `transmission`, `azureus`, `vuze`, `bt`, `commet`, `bit` などのキーワードを検索し、該当する行を削除します。

      ktorrent
      transmission-gtk
      transmission-common
      qtorrent
      ctorrent
      bittorrent
      bittornade
      azureus
      vuze
      
    • (オプション)ゲーム関連の記述の削除

      新しいシステムで特定のゲーム(例: aisleriot, gnome-mahjongg など)をインストールしない場合は、該当する行を削除してください。

      aisleriot
      gnomine
      kmahjongg
      gnome-mahjongg
      sudoku
      gnome-sudoku
      quadrapassel
      gbrainy
      blinken
      gnome-chess
      khangman
      kanagram
      
  5. 手順5. バックアップファイルの保管

    以上の操作で、以下の2つのバックアップファイルが作成されます。

    • ホームディレクトリのバックアップ: `home_ユーザー名_日付.tar` (例: `home_taro_20231027.tar`)
    • パッケージリストのバックアップ: `dpkg.txt`

    これらの作成されたファイルは非常に重要です。システムのクラッシュ、OSの再インストール、または別マシンへの移行に備えて、USBメモリ、外付けハードディスク、ネットワーク上のファイルサーバー、クラウドストレージなど、必ず PC 本体とは物理的に別の、安全な場所に保管してください。