『Linuxインストール』(三)リリース版制作
2534 ワード
Fedoraリリース版の作成ツールは主にrevisorとpungiの2種類があります.revisorはグラフィック化されたツールで、コマンドラインも使用できますが、バグがよくあり、比較的肥大化しており、初級ユーザーに使われているような気がします.pungiはFedoraの公式制作(またはspinという)発行版のツールで、コマンドラインは、合計4、5つのpythonファイルです.
以下はpungiカスタマイズ(spin)を使用するコードです.
注意:以上のコードはF 13で正常に動作することを保証し、pungiをインストールする際にupdateなどの倉庫を使用することはできません.
ks.cfg(kickstart)ファイルはISOにロードするパッケージのリストを定義しており(依存は自動的に解決されます)、簡単なKSは以下の通りです.
pungiの作業プロセスは主に4つの段階に分けられます.-G(Gather stage)yumソースからksにリストされているパケットおよび依存をローカル、すなわちパケット収集フェーズ にダウンロードする.-C(Createrepo stage)これらのパッケージをローカルyumソース、すなわちcreaterepo に作成します.-B(BuildInstall stage)ISOのimageファイル等を生成する.F 13 buildinstallスクリプトを使用します.anacondaパッケージに属します. -I(CreateISO stage)ISOルートディレクトリ(installtree)をISO、すなわちmkisofs にする
最も重要なのはbuildinstallフェーズ、すなわちimageファイルがどのように生成されるかです.logを表示するとbuildinstallスクリプトを呼び出すだけで、単独で実行できます.
実行後の作業ディレクトリの構造は次のとおりです.
ISOの重要なファイルはbuildinstallスクリプトによって生成されていることがわかります.そのため、image生成原理を明らかにするにはbuildinstallをデバッグするだけでいいです.
以下はpungiカスタマイズ(spin)を使用するコードです.
#!/bin/bash
echo "Set LANG=en_US.utf8"
LANG=en_US.utf8
if [ $(getenforce) == Enforcing ]; then
sudo setenforce 0
echo "Turning Off SELinux enforcing."
fi
#echo "removing destdir..."
#sudo rm -rf `pwd`/work
sudo pungi --force --nosource --nosplitmedia -c `pwd`/ks.cfg --destdir=`pwd`/work -G -C -B -I "$@"
注意:以上のコードはF 13で正常に動作することを保証し、pungiをインストールする際にupdateなどの倉庫を使用することはできません.
ks.cfg(kickstart)ファイルはISOにロードするパッケージのリストを定義しており(依存は自動的に解決されます)、簡単なKSは以下の通りです.
repo --name=test --baseurl=http://10.3.4.211/resrc/repo/fedora/releases/13/Everything/i386/os/
%packages --default
@core
@base
anaconda*
kernel
%end
注:repoはyumソースを指し、複数を指定できます.例のソースはローカルにあり、作成速度を速めるためにrsyncを使用してサーバのソースをローカルに同期しました.ksファイルは、system-config-kickstartパッケージに属するグラフィックスツールkickstartを使用して自動的に生成することもできます.pungiの作業プロセスは主に4つの段階に分けられます.
最も重要なのはbuildinstallフェーズ、すなわちimageファイルがどのように生成されるかです.logを表示するとbuildinstallスクリプトを呼び出すだけで、単独で実行できます.
#!/bin/bash
/usr/lib/anaconda-runtime/buildinstall --product Fedora --version 20120319 --release "Fedora 20120319" --output `pwd`/os http://10.3.4.211/resrc/repo/fedora/releases/13/Everything/i386/os/
実行後の作業ディレクトリの構造は次のとおりです.
$ tree -a os
os
|-- .discinfo
|-- EFI
| `-- BOOT
| |-- BOOT.conf
| |-- BOOTIA32.conf
| `-- splash.xpm.gz
|-- images
| |-- boot.iso
| |-- efiboot.img
| |-- efidisk.img
| |-- install.img
| |-- pxeboot
| | |-- initrd.img
| | |-- initrd-PAE.img
| | |-- README
| | |-- vmlinuz
| | `-- vmlinuz-PAE
| `-- README
|-- isolinux
| |-- boot.msg
| |-- grub.conf
| |-- initrd.img
| |-- isolinux.bin
| |-- isolinux.cfg
| |-- memtest
| |-- splash.jpg
| |-- vesamenu.c32
| `-- vmlinuz
`-- .treeinfo
5 directories, 24 files
ISOの重要なファイルはbuildinstallスクリプトによって生成されていることがわかります.そのため、image生成原理を明らかにするにはbuildinstallをデバッグするだけでいいです.