Ubuntu でシステム全体の ISO イメージ・ファイルの作成(Penguins' Eggs を使用)

要点: Penguins' Eggs (eggs) を使うと、現在稼働中の Ubuntu システム全体を元にした、起動可能なISOイメージファイルを簡単に作成できます。このISOファイルからライブUSBメモリやライブDVDを作成し、他のコンピュータでの利用やシステム復元に使用できます。

この記事で解説すること

作成したISOイメージファイルの主な用途

作成したISOイメージファイルは、以下のような用途に利用できます。

ISOイメージファイルの注意点

前準備

ISOイメージ作成前に、システムを最新の状態にし、安定性を確保します。コンソール(端末)を開き、以下の作業を行います。

  1. パッケージリストの更新とアップグレード

    端末で次のように操作します。

    sudo apt update
    sudo apt -yV upgrade
    

    * `-yV` オプションは、確認なしで実行し、詳細な情報を表示します。

  2. システムの再起動(カーネルアップデートがあった場合など)

    アップグレードでカーネルなどが更新された場合は、再起動が推奨されます。

    sudo shutdown -r now
    
  3. パッケージ依存関係の修復(念のため)

    壊れた依存関係がないか確認し、あれば修復します。エラーメッセージが出ないことを確認します。

    sudo apt --fix-broken install
    
  4. linux-headers, linux-image のバージョン確認

    現在実行中のカーネルに対応する `linux-image` と `linux-headers` がインストールされているか確認します。`apt upgrade` で通常は適切に更新されます。

    uname -r
    dpkg -l | grep linux-image-$(uname -r)
    dpkg -l | grep linux-headers-$(uname -r)
    

    * もしインストールされていない場合は `sudo apt install linux-image-$(uname -r) linux-headers-$(uname -r)` でインストールします。

  5. (オプション)不要なソフトウェアの削除

    ISOイメージのサイズを削減するため、不要なソフトウェアを削除しておきます。以下は例です。

    # 例: torrentクライアントの削除
    sudo apt -yV --purge remove transmission* ktorrent*
    
    # 例: 不要になった古いカーネルの削除 (通常は不要)
    # sudo apt autoremove --purge
    

Penguins' Eggs のインストール (Ubuntu)

Ubuntu で Penguins' Eggs をインストールするには、いくつかの方法があります。

推奨: 方法 1: get-eggs スクリプトを使用する

これが最も簡単で確実な方法です。必要な依存関係も自動的に設定されます。

git clone https://github.com/pieroproietti/get-eggs
cd get-eggs
sudo ./get-eggs.sh

方法 2: PPA リポジトリを使用する

公式PPAを追加してインストールします。

curl -fsSL https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/penguins-eggs.gpg
echo "deb [arch=$(dpkg --print-architecture)] https://pieroproietti.github.io/penguins-eggs-ppa ./" | sudo tee /etc/apt/sources.list.d/penguins-eggs.list > /dev/null
sudo apt update
sudo apt install eggs

方法 3: .deb パッケージを手動でインストールする

公式サイトのバスケットから最新の `.deb` パッケージをダウンロードし、インストールします。

# ダウンロードした .deb ファイルをインストール (ファイル名はバージョンに合わせて変更)
sudo dpkg -i penguins-eggs_*.deb
# 依存関係の問題が発生した場合、以下を実行して解決
sudo apt --fix-broken install

インストール中に、`squashfs-tools`, `xorriso`, `calamares`, `krill` などの依存パッケージも自動的にインストールされます。

* 補足: Penguins' Eggsには、古いツールにあったような4GB制限はなく、関連するプログラムの書き換えは不要です。

Penguins' Eggs を用いたシステム全体のISOイメージファイル作成

  1. 外部メディアのアンマウント

    ISO作成プロセスへの干渉を防ぎ、一貫性を保つため、DVDドライブやUSBメモリなどの外部ストレージメディアはアンマウントしておきます。

    # マウントされているデバイスを確認 (任意)
    df -h
    # アンマウントする (例: /media/user/usb-drive をアンマウント)
    # sudo umount /media/user/usb-drive
    

    ファイルマネージャから「安全な取り外し」を実行するのも良い方法です。

  2. (オプション) APTキャッシュのクリーンアップ

    ISOイメージのサイズを削減するために、ダウンロード済みのパッケージファイル(.deb)を削除します。

    sudo apt clean
    
  3. (オプション) Eggsの一時ファイルのクリーンアップ (推奨)

    以前の `eggs produce` コマンドで作成された一時ファイルを削除し、クリーンな状態でビルドを開始します。

    sudo eggs clean
    
  4. (オプション) 設定のカスタマイズ

    Penguins' Eggs の動作は、TUI(テキストユーザーインターフェース)設定ツール `eggs dad` や設定ファイル `/etc/penguins-eggs.d/eggs.yaml` でカスタマイズできます。通常はデフォルト設定で問題ありません。

    # TUI設定ツールを起動
    sudo eggs dad
    # 設定ファイルを直接編集 (高度な設定)
    # sudo nano /etc/penguins-eggs.d/eggs.yaml
    

    ライブユーザー名、パスワード、インストーラのテーマなどを変更できます。

  5. ISOイメージファイルの作成

    以下のいずれかのコマンドを実行します。作成されるISOファイルは、そのまま起動可能なイメージになります。

    • ユーザーデータを含まないシステムイメージ (デフォルト):

      ホームディレクトリの内容を除外し、システム構成とインストールされたソフトウェアのみを含むイメージを作成します。OSのカスタム版を作成して再配布したり、クリーンな環境のテンプレートとして使用したりする場合に適しています。

      sudo eggs produce
      
    • ユーザーデータを含むフルバックアップ (`--clone` オプション):

      現在のユーザーのホームディレクトリ(設定、ドキュメント、ダウンロードなど)を含めて、システム全体を複製します。個人用バックアップや、設定済み環境の移行に適しています。

      sudo eggs produce --clone
      
    • ユーザーデータを暗号化して含むフルバックアップ (`--cryptedclone` オプション):

      ホームディレクトリを含めてシステム全体を複製しますが、ユーザーデータはLUKSで暗号化されます。ライブ起動時およびインストール時にパスワードが必要になります。

      sudo eggs produce --cryptedclone
      

    * 注意: `--clone` や `--cryptedclone` を使用する場合、ISOイメージ内に個人情報が含まれるため、取り扱いには十分注意してください。

  6. 終了の確認

    処理には時間がかかります(システムのサイズやマシンスペックにより数十分から1時間以上かかることもあります)。完了すると、成功メッセージと作成されたISOファイルのパスが表示されます。エラーメッセージが出ていないことを確認してください。

ISOイメージファイルの場所: 作成されたISOイメージファイルは、通常 `/home/eggs/` ディレクトリ内に、 `__.iso` のような形式のファイル名で保存されます(例: `my-ubuntu-pc_2024-05-21_1030.iso`)。正確なファイル名はコマンドの出力で確認してください。

作成したISOイメージファイルを使ってみる

作成したISOイメージファイルは、様々な方法で利用できます。

1. QEMUを用いた起動テスト

物理メディアに書き込む前に、仮想マシンエミュレータQEMUを使ってISOイメージが正しく起動するかをテストできます。

# QEMU/KVMのインストール (未導入の場合)
sudo apt update
sudo apt install qemu-kvm

# 仮想ディスクイメージの作成 (任意だが、インストールテストも可能になる)
qemu-img create -f qcow2 my-test-disk.qcow2 80G

# ISOイメージから起動 (64ビットシステムの場合)
# /home/eggs/<作成したISOファイル名>.iso は実際のISOファイル名に置き換えてください
qemu-system-x86_64 \
    -enable-kvm \
    -m 2048 `# メモリサイズ (例: 2GB、環境に合わせて調整)` \
    -hda my-test-disk.qcow2 `# 仮想ディスク` \
    -cdrom /home/eggs/my-ubuntu-pc_2024-05-21_1030.iso `# 作成したISOファイル` \
    -boot d `# CD-ROMから起動` \
    -usb

* 起動後、ライブセッションを開始したり、インストーラ(Calamaresまたはkrill)を起動したりできます。

2. ライブUSBメモリ/DVDの作成と使用

作成したライブメディアをPCに挿入し、BIOS/UEFI設定でそのメディアから起動するように設定します。Penguins' Eggsによって生成されたブートメニューが表示され、ライブセッションを開始できます。

3. 作成したライブメディアからのシステムインストール

ライブメディアから起動し、表示されるブートメニューやデスクトップ上のアイコンからインストーラ(Calamaresまたはkrill)を起動します。画面の指示に従って、パーティション設定、ユーザー作成などを行い、バックアップしたシステム環境をハードディスクにインストール(復元)できます。 Ubuntu の標準インストール手順も参考にできますが、インストーラは Penguins' Eggs が提供するもの(Calamaresまたはkrill)の手順に従ってください。