KNOPPIX カスタマイズ
ここでは, KNOPPIX をカスタマイズし, DVD-iso イメージを作成するまでの備忘録です. 2013/09/24-25 にかけて行われた VL 講習会(@名古屋大学) で使用された USB-live の原本を作成したので, そのログとなっています.
やること
- オリジナル KNOPPIX から, 不必要なパッケージを削除.
- 本ページでは, 教育研究用 DVD を作成するため, 既にインストールされているゲーム等の娯楽用ソフトウェア, パッケージ容量の大きなソフトウェアを削除する.
- オリジナルに含まれていない追加ソフトウェアをインストール.
- KNOPPIX は debian ベースで構築されているため, debian パッケージになっているソフトウェアについては apt-get で, パッケージ化されていない, あるいはデフォルトパッケージの設定で不満な場合はソースからビルドする.
- 起動時におけるスクリプトの自動起動.
- 本ページでは, 起動時に apache2 を root 権限で自動起動させる必要があるため, その自動起動設定を行う.
- 雑多なカスタマイズ
事前準備
KNOPPIX のオリジナル iso イメージ
- こちらのサイト から最新版 DVD iso イメージをダウンロード.
- ダウンロードした DVD イメージを書き込み可能な DVD にイメージ書き込み.
- ここは virtual box を用いて, iso から直接起動しても問題ない.
- ただし, 後の圧縮作業を考えると, virtual box にある程度大容量のメモリが割り当てられている必要がある.
作業用 HDD の用意
- 外付け HDD でも, 内蔵 HDD でも OK.
- この HDD でカスタマイズ iso イメージを作成する.
事前準備まとめ
以降では, 以下のような設定で作業を進める.
- 外付け HDD
- /media/sdb1 として ext3 でマウントする.
- オリジナル KNOPPIX DVD
- DVD-R にイメージ書き込みし, ノート PC で live 起動する.
- 使用バージョンは 7.0.2.
- ノート PC の内蔵 HDD
- /dev/sda1 にデバイスファイルが存在するとする.
- 作業は DVD-KNOPPIX を起動したノート PC 上で行う.
カスタマイズ
DVD イメージを起動し, 外付け HDD をマウント, 作業領域を確保する.
$ sudo -s # mkdir /media/sdb1 # mount -t ext3 -o rw /dev/sdb1 /media/sdb1 # mkdir -p /media/sdb1/knoppix7.0.2 # mkdir -p /media/sdb1/knoppix7.0.2/source # mkdir -p /media/sdb1/knoppix7.0.2/source/KNOPPIX # ここが作業ディレクトリ # mkdir -p /media/sdb1/knoppix7.0.2/master # cdrom イメージのコピー
作業用ファイルのコピー
# cp -Rpv /KNOPPIX/* /media/sdb1/knoppix7.0.2/source/KNOPPIX/ # cp -Rp /mnt-system/* /media/sdb1/knoppix7.0.2/master/ # chroot /media/sdb1/knoppix7.0.2/source/KNOPPIX # 以下, ここをルートとして作業開始. # mount -t proc /proc proc # vim /etc/resolv.conf # DNS が自動設定されていない場合, ここで設定. # ただし, ここで設定した値は iso 化するときには iso 後に使用する環境に変更しておく.
- パッケージリストの準備
- ここでは, dennou-ruby における debian の電脳公開鍵を登録する.
- 詳細は 電脳 ruby 参照.
同時に, 新しく導入するソフトウェアを提供しているリポジトリを /etc/apt/source.list に追記.
- この詳細も上記 URL 参照.
# apt-get update # パッケージリストのアップデート
- ここでは, dennou-ruby における debian の電脳公開鍵を登録する.
不要パッケージの削除
# dpkg --purge [パッケージ名]
で削除を行う.
- 削除の基準
- 人それぞれの用途によるが, 今回はゲーム関連のソフトウェアをすべて削除し, またパッケージの容量が大きく, かつ不要なソフトウェアも削除する.
- パッケージの大きさ
- 単位は KB で表示される.
# dpkg-query --showformat="\${Package}\t\${Installed-Size}\n" --show | sort -n -k 2 -r | more
- ゲーム関連パッケージの削除
- DVD から起動している knoppix7.0.2 の synaptic パッケージマネージャーを起動. (デスクトップ左下のメインメニューから設定 -> synaptic マネージャー)
- 起動すると, 左側のフィルタに「ゲームとアミューズメント」というフィルタがあるので, それを選択.
- メイン画面に該当する全パッケージ名が一覧として掲載されるので, その中でインストールされているパッケージ名すべて, dpkg --purge で削除する.
- 削除の基準
- パッケージの追加.
- debian パッケージとして提供されているソフトウェアは apt-get install でインストールできる.
- ソースからビルドする場合は, ソースをダウンロードしてそれぞれのビルド方法でビルドする.
- 自動起動の設定.
- 5 で apache2 をソースからビルドし, KNOPPIX の起動時に apache2 を root 権限で自動起動するように設定する.
- /home/knoppix/public_html 以下に cgi 実行権限を与えて httpd を起動させたいので, そうなるように, apache2 に付属している httpd.conf を適宜書き換え.
- KNOPPIX では, /etc/inittab で各ランレベルのデーモンがデフォルトで起動しないように設定されている.
この設定により, 通常の自動起動設定
# update-rc.d [サービス名] defaults
による自動起動が有効にならない.
- そこで, /etc/rc.local の中身を少し改変して, ここから自動起動するように設定する.
- これ がデフォルトを改変した rc.local ファイルである.
- このように改変することで, 起動時に自動的にサービスが立ち上がる.
- 5 で apache2 をソースからビルドし, KNOPPIX の起動時に apache2 を root 権限で自動起動するように設定する.
後作業
作業が終了したら後片付けを行う.
# apt-get clean # umount /proc # exit # この段階では, chroot を抜けただけであることに注意. # rm -f /media/sdb1/knoppix7.0.2/source/KNOPPIX/root/.viminfo # rm -f /media/sdb1/knoppix7.0.2/source/KNOPPIX/root/.bash_history
他にも, /media/sdb1/knoppix7.0.2/source/KNOPPIX/root/ 以下に作業ディレクトリや自動作成される隠しファイルがある場合は削除.
圧縮・イメージ作成作業
ここで, カスタマイズした KNOPPIX のイメージを作成する. 圧縮に用いる create_compressed_fs は非常にメモリを多く使用するため, こちら を参考に, HDD の空き領域に中間ファイルを生成させることでメモリの大量使用を回避する.
# mkdir /home/knoppix/sda1 # ノート PC の内蔵 HDD マウント用ディレクトリ # mount -t ext3 /dev/sda1 /home/knoppix/sda1 # ノート PC の内蔵 HDD をマウント. # cd /home/knoppix/sda1/home/hogehoge/ # [テンポラリファイルが作成できる場所ならどこでもよい] # mkisofs -R -U -V "DVD-VL-KNOPPIX-20130921" -hide-rr-moved -cache-inodes -no-bak -pad \ /media/sdb1/knoppix7.0.2/source/KNOPPIX | \ nice -5 /usr/sbin/create_compressed_fs -B 131072 \ -f ./isotmp - /media/sdb1/knoppix7.0.2/master/KNOPPIX/KNOPPIX
最終作業
# touch /media/sdb1/knoppix7.0.2/master/DVD-VL-KNOPPIX-20130921 # cd /media/sdb1/knoppix7.0.2/master # mkisofs -l -r -J -V "DVD-VL-KNOPPIX-20130921" -v -b boot/isolinux/isolinux.bin \ -c boot/isolinux/boot.cat -o ../DVD-VL-KNOPPIX-20130921.iso \ -no-emul-boot -boot-load-size 4 -boot-info-table \ /media/sdb1/knoppix7.0.2/master
この作業の後, /media/sdb1/knoppix7.0.2/ 以下に DVD-VL-KNOPPIX-20130913.iso が作成される. これを DVD 等にイメージ書き込みすればそのままカスタマイズされた起動 DVD として使用できる.
参考文献
カスタマイズの根幹
- KNOPPIX のカスタマイズ
- 本ページは主にこちらのページを参考に作成致しました.
- KNOPPIX メーリングリスト
- create_compressed_fs のメモリ管理に関するエラーを回避するための方法を参考にしました.
カスタマイズ時の Tips 関連
- Ubuntu Tips
- カスタマイズ時における不必要なゲーム関連のパッケージを効率的に探索する手法.
- ただし, 本ページで作成した iso イメージのオリジナルでの synaptic ソフトウェアには既存のゲームパッケージ探索用フィルタが用意されていたため, こちらの手法を用いた.
apache2 関連
- ITPASS サーバ構築ーapache2 のインストールと設定
- 今回ホームディレクトリの public_html で cgi プログラムを動作させる必要があったため, こちらを参考に apache2 をインストール, cgi の設定を行った.
- SSH の自動起動
- apache2 の自動起動設定方法が通常のプレインストール版 OS と異なっていたため, こちらを参考に apache2 の自動起動を設定.