Ubuntu でシステム全体の ISO イメージ・ファイルの作成(Penguins' Eggs を使用)
要点: Penguins' Eggs (eggs) を使うと、現在稼働中の Ubuntu システム全体を元にした、起動可能なISOイメージファイルを簡単に作成できます。このISOファイルからライブUSBメモリやライブDVDを作成し、他のコンピュータでの利用やシステム復元に使用できます。
この記事で解説すること
- Penguins' Eggsのインストール手順
- Penguins' Eggsを用いたシステム全体のISOイメージファイル作成手順
- 作成したISOイメージファイルの基本的な利用方法
作成したISOイメージファイルの主な用途
作成したISOイメージファイルは、以下のような用途に利用できます。
- ライブUSBメモリ/DVDの作成: Ubuntu標準の「ブータブルUSBの作成」ツールや `dd` コマンド、Ventoyなどを使ってライブメディアを作成できます。DVDに書き込むことも可能です。
- ポータブルなシステム環境: 作成したライブメディアを使用すれば、バックアップしたシステム環境を他のPCで(ライブセッションとして)利用できます。
- システムの復元(リストア): 作成したライブメディアから起動し、含まれているインストーラ(グラフィカルなCalamares、またはテキストベースのkrill)を使用して、バックアップ時点のシステムを他のPCや元のPCのディスクにインストール(復元)できます。
ISOイメージファイルの注意点
- ファイルサイズ: Penguins' Eggs自体には、4GBのファイルサイズ制限は基本的にありません。しかし、作成したISOイメージを利用する際には以下の点に注意が必要です。
- FAT32フォーマットのUSBメモリ: FAT32ファイルシステムは、1ファイルあたり4GB未満のサイズ制限があります。4GB以上のISOイメージをFAT32フォーマットのUSBメモリにそのままコピーすることはできません(ライブUSB作成ツールはこの制限を回避できる場合があります)。
- DVDメディア: DVD-Rは約4.7GB、DVD-R DLは約8.5GBの容量制限があります。これを超えるサイズのISOイメージは書き込めません。
- ライセンス: 作成するISOイメージに含めるソフトウェアやデータは、再配布や利用に関するライセンス条項を遵守している必要があります。特に、 `--clone` や `--cryptedclone` オプションを使用する場合は、個人データだけでなく、インストールされているソフトウェアのライセンスにも注意してください。教育目的でのみ無料利用が許可されているソフトウェアなどが含まれる可能性があるため、ライセンス条項は各自で確認してください。
前準備
ISOイメージ作成前に、システムを最新の状態にし、安定性を確保します。コンソール(端末)を開き、以下の作業を行います。
- パッケージリストの更新とアップグレード
端末で次のように操作します。
sudo apt update sudo apt -yV upgrade
* `-yV` オプションは、確認なしで実行し、詳細な情報を表示します。
- システムの再起動(カーネルアップデートがあった場合など)
アップグレードでカーネルなどが更新された場合は、再起動が推奨されます。
sudo shutdown -r now
- パッケージ依存関係の修復(念のため)
壊れた依存関係がないか確認し、あれば修復します。エラーメッセージが出ないことを確認します。
sudo apt --fix-broken install
- 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)` でインストールします。
- (オプション)不要なソフトウェアの削除
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イメージファイル作成
- 外部メディアのアンマウント
ISO作成プロセスへの干渉を防ぎ、一貫性を保つため、DVDドライブやUSBメモリなどの外部ストレージメディアはアンマウントしておきます。
# マウントされているデバイスを確認 (任意) df -h # アンマウントする (例: /media/user/usb-drive をアンマウント) # sudo umount /media/user/usb-drive
ファイルマネージャから「安全な取り外し」を実行するのも良い方法です。
- (オプション) APTキャッシュのクリーンアップ
ISOイメージのサイズを削減するために、ダウンロード済みのパッケージファイル(.deb)を削除します。
sudo apt clean
- (オプション) Eggsの一時ファイルのクリーンアップ (推奨)
以前の `eggs produce` コマンドで作成された一時ファイルを削除し、クリーンな状態でビルドを開始します。
sudo eggs clean
- (オプション) 設定のカスタマイズ
Penguins' Eggs の動作は、TUI(テキストユーザーインターフェース)設定ツール `eggs dad` や設定ファイル `/etc/penguins-eggs.d/eggs.yaml` でカスタマイズできます。通常はデフォルト設定で問題ありません。
# TUI設定ツールを起動 sudo eggs dad # 設定ファイルを直接編集 (高度な設定) # sudo nano /etc/penguins-eggs.d/eggs.yaml
ライブユーザー名、パスワード、インストーラのテーマなどを変更できます。
- ISOイメージファイルの作成
以下のいずれかのコマンドを実行します。作成されるISOファイルは、そのまま起動可能なイメージになります。
- ユーザーデータを含まないシステムイメージ (デフォルト):
ホームディレクトリの内容を除外し、システム構成とインストールされたソフトウェアのみを含むイメージを作成します。OSのカスタム版を作成して再配布したり、クリーンな環境のテンプレートとして使用したりする場合に適しています。
sudo eggs produce
- ユーザーデータを含むフルバックアップ (`--clone` オプション):
現在のユーザーのホームディレクトリ(設定、ドキュメント、ダウンロードなど)を含めて、システム全体を複製します。個人用バックアップや、設定済み環境の移行に適しています。
sudo eggs produce --clone
- ユーザーデータを暗号化して含むフルバックアップ (`--cryptedclone` オプション):
ホームディレクトリを含めてシステム全体を複製しますが、ユーザーデータはLUKSで暗号化されます。ライブ起動時およびインストール時にパスワードが必要になります。
sudo eggs produce --cryptedclone
* 注意: `--clone` や `--cryptedclone` を使用する場合、ISOイメージ内に個人情報が含まれるため、取り扱いには十分注意してください。
- ユーザーデータを含まないシステムイメージ (デフォルト):
- 終了の確認
処理には時間がかかります(システムのサイズやマシンスペックにより数十分から1時間以上かかることもあります)。完了すると、成功メッセージと作成されたISOファイルのパスが表示されます。エラーメッセージが出ていないことを確認してください。
ISOイメージファイルの場所:
作成されたISOイメージファイルは、通常 `/home/eggs/` ディレクトリ内に、 `
作成した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の作成と使用
- ライブUSBメモリ:
- Ubuntu標準の「ブータブルUSBの作成 (usb-creator-gtk)」ツールを使用する。
- Ventoy を使用する (推奨: 複数のISOを簡単に扱える)。USBメモリにVentoyをインストール後、ISOファイルをUSBメモリにコピーするだけです。
- `dd` コマンドを使用する (注意: 書き込み先のデバイス名を間違えるとデータを破壊する危険があるため、細心の注意が必要です)。
# 例: /dev/sdX はUSBメモリのデバイス名 (lsblkコマンド等で確認し、絶対に間違えないこと!) # sudo dd if=/home/eggs/my-ubuntu-pc_2024-05-21_1030.iso of=/dev/sdX bs=4M status=progress oflag=sync
- ライブDVD:
- Braseroなどのディスク書き込みソフトウェアを使って、ISOイメージファイルをDVD-R/RWに書き込みます。
作成したライブメディアをPCに挿入し、BIOS/UEFI設定でそのメディアから起動するように設定します。Penguins' Eggsによって生成されたブートメニューが表示され、ライブセッションを開始できます。
3. 作成したライブメディアからのシステムインストール
ライブメディアから起動し、表示されるブートメニューやデスクトップ上のアイコンからインストーラ(Calamaresまたはkrill)を起動します。画面の指示に従って、パーティション設定、ユーザー作成などを行い、バックアップしたシステム環境をハードディスクにインストール(復元)できます。 Ubuntu の標準インストール手順も参考にできますが、インストーラは Penguins' Eggs が提供するもの(Calamaresまたはkrill)の手順に従ってください。