Ubuntuのデスクトップ向けインストールCD(Desktop CD)は、LiveCDとなっています。今回と次回は、これを使いこなす方法について説明します。
Desktop CDの概要
LinuxのLiveCDの実装は複数存在しますが、現在のUbuntu Desktop CDではSquashFSをCD上に置き、UnionFSでWritableにする、という方法を取っています[1] 。
Desktop CDが提供するソフトウェア環境は、HDDへインストールした後に利用できるものと同じで、SquashFS部分は「UbuntuをHDDにインストールした初期状態」と同等のものを圧縮したものを用いています。ただし、インストールに用いるUbiquityやGNOME Partition Editor(gparted)といったツールが導入されている点と、異なるマシンで起動させるため、起動時に自動的にXの設定を生成する、といった点は異なります。
“Persistence”機能を使う
通常、LiveCDセッションでは、作成したファイルなどは再起動により失われてしまいます。
しかし、Desktop CDではUSBメモリなどの保存領域を用意することで、変更内容をシステムの再起動後にも持ち越せる仕組みが用意されています。この機能は“ Persistence” と呼ばれます。
“Persistence” を利用するための条件は、次の通りです。
CD起動時のオプションに、“ persistent” が含まれていること。
保存領域に“ casper-rw” というボリュームラベルを持ち、かつ、完全な形でUnix permissionを保存できるファイルシステムが用意されていること[2]
以上の条件が満たされている場合、/以下の全域に対して行われた書き込みが“ casper-rw” 領域に保存され、次回以降の起動時には自動的に読み込まれます。
具体的な手順は次の通りです。すでに保存領域にあたる領域のフォーマットは終了しているものとします。
[2] Linuxで使われる通常のファイルシステムを使う、という意味です。ext2/3,ReiserFS,JFS,XFSなどが適合します。FAT16/32,NTFSなどは用いるべきではありません(動いてしまいますが、permission周りの問題が起きます) 。
1.保存領域の作成
前述の通り、保存領域のボリュームラベルは必ず“ casper-rw” としなければなりません。次のコマンドを利用してファイルシステムを準備します。以下の例は対象デバイスを/dev/sda1であると仮定しています。
$ sudo mkfs.{ext2,ext3,xfs} -L casper-rw /dev/sda1
$ sudo mkfs.reiserfs -L casper-rw /dev/sda1
既に存在するファイルシステムのボリュームラベルを変更する場合は、以下のコマンドを利用します。gpartedで領域を作成した後、これらでラベルだけを変更しても構いません。
$ sudo e2label /dev/sda1 casper-rw
$ sudo xfs_admin -L casper-rw /dev/sda1
$ sudo reiserfstune -l casper-rw /dev/sda1
2.CDブート時の起動オプション変更
Desktop CDからブートする際に[F6]キーを押下し、起動オプションの末尾にpersistentキーワードを追加します(図1 ) 。
機能としては"Persistence"ですが、オプションは"Persistent"であることに注意してください。
これにより“ Persistence” 機能が有効になり、起動後に行った変更が“ casper-rw” 領域に保存されています。
図1 起動オプションを変更している様子
/mntなどにこの領域をmountすると、デスクトップ上に作成したファイルが/mnt/home/ubuntu以下に保存されていることが分かります。これにより、変更点が再起動後も保持されます。
ただし、再起動のたびに[F6]キーを押し、persistentキーワードの追加を行う必要があります。この作業を省略できるDesktop CDの作成方法があるので、次回説明する予定です。
リカバリCDとしての利用
Desktop CDはリカバリ用途に利用することもできます。各用途はhttps://help.ubuntu.com/community/LiveCdRecovery を参照してください。
ただし、忘れてしまったパスワードの復旧に関しては、通常はDesktop CDを用いてリカバリを行う必要はありません。例外はrootパスワードを設定しており、かつ、それも忘れてしまった場合です。
パスワードを忘れた場合の対処は、次のようにシングルユーザーモードで起動することで行います。
1.GRUBメニューに入る
システムの起動時に、「 Press `ESC' to enter the menu... 」と表示されるタイミングで、[ ESC]キーを押下します(図2 ) 。
図2 GRUBのPress `ESC' to enter the menu...
2.起動オプションの変更
GRUBから起動可能なOSのエントリが列挙されます。この状態で[e]キーを押下すると、起動オプションが列挙されたサブメニューに遷移します(図3 ) 。
図3 GRUBメニューの編集
この画面でkernel...行を選択し、再度[e]キーを押し、表示されるオプションの末尾にsingleを追加して[Enter]キーでメニューから抜けます(図4 ) 。
図4 kernel optionの編集
この状態で[b]キーを押してシステムを起動することでシングルユーザーモードで起動しますので、passwd〈ユーザ名〉でパスワードを変更してください。
Desktop CDのカスタマイズ
SquashFSはzlibで圧縮された、読み込み専用のファイルシステムで、通常のファイルシステムをmksquashfsコマンドで圧縮することで生成します。
Desktop CDの場合、実体はCD上のcasper/filesystem.squashfsにあり、起動時にROFSを用いて/にマウントしています。このsquashfsファイルがLiveCD環境そのものであるため、この領域を改変することで、任意の環境をLiveCD上に構築することができます。
通常はDesktop CD標準のSquashFSを一度通常のファイルシステム上に展開し、必要な改変を加えた後に再度圧縮する、といった方法でカスタマイズを行いますが、今回はウィザードを用い、こうした原理を意識せずに作業を行える方法を紹介します。
Remastersys
RemastersysはLinux Mint(Ubuntuから派生したディストリビューションです)の開発ブランチにある“ Romeo” リポジトリで提供されているコマンドラインユーティリティです。「 現在稼働している環境」をもとにLiveCDを生成することができます。中身はbashスクリプトで構成されており、GPL2でライセンスされています。
使い方は次の通りです。
1)リポジトリソースに“Romeo”リポジトリを追加
/etc/apt/sources.listに、次の行を追加します。
deb http://www.linuxmint.com/repository romeo/
2.Remastersysパッケージのインストール
Synapticパッケージマネージャを用いてremastersysを追加するか、次のようにaptを用いてインストールを行います。
$ sudo apt-get update
$ sudo apt-get install remastersys
3.ISOイメージの生成
以下のコマンドを実行し、/homeを除いたシステム環境をLiveCDにします。
$ sudo remastersys dist iso backup.iso
また、remastersysコマンドが受け付けるオプションは次の通りです。
通常は上述のようにremastersys dist iso backup.isoなどとしてシステムバックアップを作り、/homeは別の手段でバックアップするのが良いでしょう(/homeの容量が少ないか、Blu-rayドライブのような大容量ファイルを書き込めるメディアがあればremastersys backup isoでも問題ありません) 。
sudo remastersys backup システム全体をLiveCD環境に変換したイメージを作成します。
sudo remastersys backup custom.iso システム全体をLiveCD環境に変換したイメージを作成し、custom.isoという名前でISOイメージを保存します。
sudo remastersys clean remastersysが使用するテンポラリファイルを削除します。
sudo remastersys dist /home以下を除いたシステム全体をLiveCDにします。
sudo remastersys dist cdfs /home 以下を除いたシステム全体をLiveCDにし、cdfs形式でファイルを出力します。
sudo remastersys dist iso custom.iso /home以下を除いたシステム全体をLiveCDにし、custom.isoという名前のISOイメージを出力します。
CDの生成には充分な空きストレージ領域(目安として5~10GB)が必要です。また、“ Press enter when you have the Original Livecd in the cd/dvd drive” というメッセージが表示されたら、Desktop CDを光学ドライブに入れて[Enter]を押してください。
UCK(Ubuntu Customization Kit)
UbuntuのDesktop CDをGUIでカスタマイズできるツールで、zenityを用いたbashシェルスクリプトで実装されています。
全ての行程をGUIから行えるため、コマンドラインに不慣れな方でも独自のLiveCDを作成できます。ただし、以下の軽微な制限があります。
生成するLiveCD環境にはDesktop環境パッケージ(ubuntu-desktop,kubuntu-desktop,xubuntu-desktop)がインストールされていなければなりません。
作業を行うユーザのシェルが、「 カスタマイズを開始する時点で」元となるDesktop CDが提供する環境にもインストールされていなければなりません。たとえば、ユーザのシェルが/bin/zshの場合、標準のDesktop CDには/bin/zshは含まれていませんから、chshコマンドで一時的に/bin/bashなどに変更する必要があります。
ウィザード表示中に[ESC]を押すと、強制的に終了されてしまいます(zenityの仕様) 。
Remastersysと同様、CDの生成には充分な空きストレージ領域(目安として5~10GB)が必要です。また、uckの場合は既存のDesktopCDのISOイメージを用意する必要があります。
例として、Desktop CDにnfs-commonパッケージ(NFS clientとして動作させるために必要なパッケージ)を追加する場合の作業の流れを見ていきましょう。
1. UCKパッケージのインストール
UCKの開発・配布はsourceforgeでホストされたUCKのサイト で行われています。サイト左側に“ Navigation” メニューがあるので、この中のDownloadセクションから“ Latest stable release” へ移動し、uck_2.0.1_all.debといった.debパッケージダウンロードします。
このパッケージをダブルクリックし、[ パッケージのインストール]ボタンからインストールします。このとき、uckが依存するパッケージも一括でインストールされます。
なお、起動時のロゴのカスタマイズを行う場合は、/etc/apt/sources.listに、次の行が追加されている必要がありますが、必須ではありません。
deb-src http://archive.ubuntu.com/ubuntu/ dapper main
2.UCKの起動
UCKは[アプリケーション] →[ アクセサリ]の下にインストールされています。
UCKを起動すると端末ウインドウが表示されます。この端末ウインドウがUCKの実体なので、そのまま表示させた状態にしておく必要があります。まず、最初の画面はWelcomeメッセージですので、そのまま飛ばします。以下はウィザード形式で操作していきます。注意が必要な箇所は次の通りです。
“Please choose language packs to install”/“Please choose language which will be used at boot of live CD”
導入するlanguage-pack-*パッケージ(≒言語リソース+インプットメソッド)と、そのデフォルト設定を選択します。日本語のみで良ければどちらも“ ja” を選択してください。特に、前者で選択していない言語をデフォルトに設定しようとするとエラーが起きるので注意してください(図5・6 ) 。
図5 language-packの選択
図6 デフォルトlanguage-packの選択
“Please choose desktop environmentse which will be present on customized CD”
language-packと同様に、インストールする/デフォルトのデスクトップ環境を設定します。こちらも同様に、インストールしていないデスクトップ環境をデフォルトにすることはできません。
“Please choose desktop environment which you want to use for customization”
UCKによるカスタマイズを行うかどうかを選択するダイアログです。必ずyesを選択してください。
3.カスタマイズ
ウィザードが終了すると、( 図7 )のようなダイアログが表示されます。ここで行える操作は次の通りです。
図7 UCKのコンソール画面
“Run package manager”
Synapticパッケージマネージャを起動します。これはLiveCD環境のパッケージ構成を変更します。今回の例ではnfs-commonパッケージをインストールします。
パッケージ構成の変更が終了したら、Synapticを閉じることで図7の画面に戻ります。
“Run console application”
[端末]を起動します。各種設定ファイルの変更などはこちらから行います。端末を閉じることで図7の画面に戻ります。
作業が終了したら“ Continue building” を選択すると、SquashFSの再圧縮・ISOの生成が開始されます。この時root権限が必要となるので、UCKの実体である端末部分にパスワード入力が必要です(sudoのパスワードプロンプトです) 。
通常は10分程度でISOイメージが生成されます。
参考となるドキュメント
“Persistence” 機能:
https://help.ubuntu.com/community/LiveCDPersistence
Remastersys:
http://www.linuxmint.com/wiki/index.php/Remastersys
UCKのドキュメントページ:
http://uck.svn.sourceforge.net/viewvc/*checkout*/uck/trunk/uck/docs/index.html