Ubuntu でホームとパッケージリストを用いた新システムでのリストア

Ubuntu のメジャーアップデートやクリーンインストールを行うとき,旧環境のアプリケーション(パッケージ)とユーザーデータ(ホームディレクトリ)を新環境へ復元する手順を説明する。

前提: あらかじめ旧システムで次のバックアップを取得しておく。取得手順は関連記事(Ubuntu でホームとパッケージリストのバックアップ)を参照。

1. 準備

次の 2 つのファイルを,新システムからアクセスできる場所(USB メモリ,または /tmp などの一時ディレクトリ)に置く。

2. パッケージリストファイル (dpkg.txt) の調整

dpkg.txt には,新システムで再インストールすると不都合が生じるパッケージが含まれる。テキストエディタで開き,次の行を削除する。

リポジトリから削除された旧パッケージが残っていると,手順 5 でエラーとなる。エラーメッセージに出たパッケージ名の行を dpkg.txt から削除して再実行する。

3. Ubuntuのインストールと初期設定

  1. Ubuntu のインストール

    Ubuntu 26.04 LTS(またはリストア対象のバージョン)のインストール: 手順はこちら(別ページ »)を参照。

  2. Ubuntu のシステム更新

    インストール後,システムを最新の状態に更新する。

    sudo apt update && sudo apt upgrade -y
    
  3. インストール後の基本的な設定

    ネットワーク設定,リポジトリ設定などの基本的な設定: 手順はこちら(別ページ »)を参照。

  4. ユーザーアカウントの作成

    リストアするホームディレクトリに対応するユーザーを,先に作成しておく。ユーザー名は,リストアするホームディレクトリ名(/home/taro なら taro)と一致させる。手順は後述の「追加ユーザーの作成」を参照。

4. ホームディレクトリのリストア

アーカイブ home.tar を展開し,ファイルの所有権を設定する。

  1. アーカイブの展開

    tar コマンドでアーカイブを展開する。/path/to/home.tar は実際のファイルパスに置き換える。

    方法1: /home に移動してから展開

    cd /home
    sudo tar -xvpf /path/to/home.tar
    

    方法2: -C オプションで展開先を指定

    sudo tar -xvpf /path/to/home.tar -C /home
    
    • -x: アーカイブを展開する(extract)
    • -v: 処理中のファイル名を表示する(verbose)
    • -p: パーミッション(権限)を保持する(permissions)
    • -f: アーカイブファイル名を指定する(file)
    • -C /home: 展開先のディレクトリを指定する(change directory)
  2. ファイルのユーザとグループの設定

    展開したファイルの所有者とグループを,新システムのユーザーに設定する。旧システムと新システムでユーザー ID が異なると,自分のファイルを読み書きできなくなるためである。<username><groupname> は実際のユーザー名とグループ名に置き換える(Ubuntu では,ユーザー作成時に同名のグループが主グループとして作成される)。

    sudo chown -R <username>:<groupname> /home/<username>
    
    • 例: ユーザー taro,グループ taro の場合:
      sudo chown -R taro:taro /home/taro
      
    • -R: ディレクトリ内のすべてのファイルとサブディレクトリに再帰的に適用する(recursive)

5. パッケージのリストア

調整済みの dpkg.txt を使用して,旧システムのパッケージを新システムにインストールする。

  1. (オプション) Multiarch の設定:

    旧システムで i386 など別アーキテクチャのパッケージを使用していた場合は,先にそのアーキテクチャを有効にする。使用していない場合は不要である。

    sudo dpkg --add-architecture i386
    sudo apt update
    
  2. パッケージリストファイルがあるディレクトリに移動する(例: /tmp)。
    cd /tmp
    
  3. dpkg --set-selections で,リストファイルに基づきインストール対象パッケージを選択状態として登録する。
    sudo dpkg --set-selections < dpkg.txt
    

    dpkg.txtinstall と記述されたパッケージが「インストールすべき」としてマークされる。

  4. apt-get dselect-upgrade を実行し,選択状態に基づいてパッケージのインストールと削除を行う。
    sudo apt-get dselect-upgrade -y
    
    • -y: 確認プロンプトに自動で「はい」と応答する。処理内容を確認したい場合は,このオプションを外す。
    • 多数のパッケージをダウンロードするため,ネットワーク接続が必要であり,完了までに時間がかかる。

    旧システムのパッケージ名やバージョンが新システムのリポジトリに存在しない場合,エラーが発生する。表示されたパッケージ名の行を dpkg.txt から削除し,手順 3 から再実行する。

6. 最終調整と確認

  1. システムの再起動

    パッケージのリストアが完了したら,システムを再起動して変更を反映させる。

    sudo reboot
    
  2. 動作確認

    再起動後にログインし,旧システムで使用していた主要なアプリケーションが起動するか,デスクトップ環境や各種設定が復元されているかを確認する。

(オプション) 追加手順

追加ユーザーの作成

リストアするホームディレクトリに対応するユーザーアカウントを作成する。ここでは GUI(「設定」画面)での手順を示す。コマンドラインでは sudo adduser <username> で作成できる。

  1. 「設定」>「システム」>「ユーザー」を開き,「ロック解除」をクリックしてパスワードを入力し,「ユーザーを追加...」をクリックする。
  2. アカウントの種類(「標準」または「管理者」)を選び,氏名とユーザー名を入力する。このユーザー名は,リストアするホームディレクトリの名前(/home/taro なら taro)と一致させる。
  3. パスワードを設定する。
  4. sudo の実行権限が必要な場合は,作成したユーザーを選び,「アカウントの種類」を「管理者」に変更する。これによりユーザーが sudo グループに追加される。

ここで作成するユーザー名・グループ名は,手順 4 の chown コマンドで指定する名前と一致させる。

言語サポートの確認と追加

システムの表示言語や地域形式を確認し,必要に応じて日本語サポートを追加する。

  1. 「言語サポート」の起動

    次のコマンドを実行するか,アクティビティ画面から「言語サポート」を検索して起動する。

    gnome-language-selector
    
  2. 「言語サポートが完全にはインストールされていません」と表示された場合は,「インストール」をクリックする。
  3. 「言語」タブで,「メニューとウィンドウの言語」のリストに日本語が含まれているかを確認する。なければ「言語のインストールと削除...」をクリックし,日本語を追加して「適用」する。
  4. 日本語をリストの一番上にドラッグして優先言語に設定し,「システム全体に適用」をクリックする。
  5. 「地域形式」タブで,数値や日付の表示形式を「日本語」に設定する。
  6. 「閉じる」をクリックする。
  7. 設定を反映させるため,ログアウトして再ログインする。

VMware環境での追加作業

VMware 仮想マシン上に Ubuntu をインストールした場合,ホスト OS との連携機能(クリップボード共有,画面解像度の自動調整,ドラッグ&ドロップ)を有効にするため,open-vm-tools をインストールする。

sudo apt install open-vm-tools open-vm-tools-desktop

インストール後にシステムを再起動すると,連携機能はサービスとして自動的に起動する。なお,VMware の「簡易インストール」機能では日本語環境が意図しない構成になることがあるため,Ubuntu 標準のインストーラーを手動で操作してインストールする方法を推奨する。

システム全体のバックアップ作成

リストア作業が完了し,システムが期待通りに動作することを確認したら,この状態のバックアップを作成しておく。バックアップツールとしては,ディスク/パーティションのイメージを作成する Clonezilla や,システムファイルのスナップショットを作成する Timeshift がある。使用方法は各ツールのドキュメントを参照。