Kickstart は、Linux を自動インストールするための仕組みです。
複数の PC に同じ構成の Linux を繰り返しインストールする際に有効です。
Kickstart 定義ファイルはテキストで書かれており、エディタで編集可能です。
Kickstart を利用するには、Linux インストール開始時に
カーネル引数として 「ks=…」オプションを与え、
メディアやネットワークから Kickstart 定義ファイルを読み込ませます。
Kickstart の読み込みには次のメディアが利用可能です。
インストールDVD で起動後、[Tab]キーを押して次のオプションを追加します。
ks=floppy
※フロッピーディスクの最上位ディレクトリに、ks.cfg という名前で Kickstart 定義ファイルを
あらかじめ配置しておきます。
インストールDVD で起動後、[Tab]キーを押し、
「ks=hd:<パーティション名>:<Kickstart定義ファイルのパス>」を追加します。
たとえば、USBメモリの最上位ディレクトリに ks.cfg を配置した場合は次のようになります。
ks=hd:sdb1:/ks.cfg
※Linux では、USBメモリもSCSIハードディスクの一種として認識されることがあります
インストールDVD で起動後、[Tab]キーを押し、
「ks=<プロトコル>://<サーバのアドレス>/<Kickstart定義ファイルのパス>」を追加します。
たとえば、HTTP/FTPサーバの最上位ディレクトリに ks.cfg を配置した場合は次のようになります。
ks=http://192.168.0.200/ks.cfg ks=ftp://192.168.0.200/ks.cfg
起動用 CD-ROM を作成し、Kickstart 起動後にインストールディスクに交換します。
$ cp -r <DVDへのパス>/isolinux/ <作業パス> $ cd <作業パス> $ cp <Kickstart定義ファイル> isolinux/ks.cfg $ chmod u+w isolinux/* $ mkisofs -o file.iso -b isolinux.bin -c boot.cat -no-emul-boot \ -boot-load-size 4 -boot-info-table -R -J -v -T isolinux/
作成された file.iso を CD-R(RW) や DVD-R(RW) に書き込みます。
この起動用 CD-ROM から起動する場合には、次のオプションを指定します。
ks=cdrom:
Kickstart 定義ファイルはテキストファイルです。
大きくわけて次の3つのセクションから構成されます。
(1) コマンドセクション
(2) パッケージセクション (%packages)
(3) スクリプトセクション (%pre、%post)
インストール時の設定が /root/anaconda-ks.cfg に保存されていますので、
最初はこのファイルを雛形にするとよいでしょう。
ファイルの一番最初に書く必要があります。
新規/上書きインストールの選択やインストールメディアの指定、
パーティションの分割方法やタイムゾーンの指定などを行います。
コマンドセクションの次に書く必要があります。
「%packages」行からスクリプトセクションまでの間、
スクリプトセクションがない場合はファイル末尾まで、
パッケージセクションとみなされます。
インストールしたいパッケージとパッケージグループを指定します。
パッケージ名を逐一書くことも可能ですが、複数のパッケージを集めた
パッケージグループ名を利用するとより簡単に書くことができます。
@name : パッケージグループ name をインストール
+name : パッケージ name をインストール
-name : パッケージ name をインストールしない
インストールしたくないパッケージを除外することも可能です。
ファイルの末尾に書く必要があります。
「%pre」スクリプトにはインストール開始前に実行したいスクリプト、
「%post」スクリプトにはインストール終了後に実行したいスクリプトを
書くことができます。
スクリプトのインタプリタには通常は Bash が利用されますが、
他のインタプリタを指定することも可能です。(例: Python)
「%pre」スクリプトは chroot されない状態で、
「%post」スクリプトは chroot された状態で実行されます。
ご注意下さい。
インストール時の画面モードを選択します。
書式は「graphical」または「text」です。
省略時のデフォルトはグラフィカルモードです。
# グラフィカルモードでインストール graphical # テキストモードでインストール text
インストール状況を VNC 経由でリモートで表示できるようにします。
※ネットワークを有効にする必要があります。(network オプション)
# マシン上で VNC サーバを起動する vnc --password=hogehoge # リモートの VNC ビューワに接続する vnc --host=192.168.0.200 --port=12345 --password=hogehoge
対話モードでインストールします。Kickstart 定義ファイルで指定した値がデフォルトとして使われます。
書式は「interactive」です。
「autostep」コマンドを併用すると、自動的に次の画面に進むようになります。
「--autoscreenshot」オプションを利用すると自動的にスクリーンショットを保存します。
# 対話モードでインストールを行う interactive # 対話モードを自動的に進行する interactive autostep # 自動的にスクリーンショットを保存しながら進行する interactive autostep --autoscreenshot
インストール方式を選択します。
新規インストールは「install」、上書きインストールは「upgrade」です。
# 新規インストールを行う install # 上書きインストールを行う upgrade
インストールに利用するメディアを選択します。
CDROM、ハードディスク、NFS、HTTP/FTP が利用可能です。
CD-ROM ドライブからインストールします。
書式は「cdrom」です。
# CD-ROM または DVD からインストールする cdrom
ローカルハードディスク上の vfat か ext2 ファイルシステム上にあるインストールツリーから
インストールします。
書式は「harddrive --partition=<パーティション名> --dir=<ツリーのディレクトリ>」です。
# 2台目のハードディスク上のツリーを利用してインストール harddrive --partition=hdb2 --dir=/tmp/install-tree
NFSサーバ上のインストールツリーを利用してインストールします。
書式は「nfs --server=<サーバのアドレス> --dir=<ツリーのディレクトリ>」です。
# NFS サーバ上のツリーを利用してインストール nfs --server=192.168.0.200 --dir=/tmp/install-tree
HTTP または FTP 経由でリモートサーバ上のインストールツリーからインストールします。
書式は「url --url http://<サーバのアドレス>/<ディレクトリ>」または
「url --url ftp://<ユーザ名>:<パスワード>@<サーバのアドレス>/<ディレクトリ>」です。
# HTTP 経由でインストールする url --url http://192.168.0.200/install-tree # FTP 経由でインストールする url --url ftp://foobar:hogehoge@192.168.0.200/install-tree
パッケージインストール用の追加リポジトリを指定します。
書式は「repo --name=<リポジトリID> --baseurl=<リポジトリの URL>」または
「repo --name=<リポジトリID> --mirrorlist=<ミラーリストの URL>」です。
※「--baseurl」と「--mirrorlist」はどちらか一方だけしか設定できません。
追加リポジトリは複数指定することができます。
# livna リポジトリを追加する (--baseurl) repo --name=livna --baseurl=http://rpm.livna.org/repo/10/i386/ # rpmfusion-nonfree リポジトリを追加する (--mirrorlist) repo --name=rpmfusion-nonfree --mirrorlist=http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-10&arch=i386
言語ロケールを指定します。オプションはありません。
日本語は 「ja_JP.UTF-8」です。
# 言語に日本語を指定する lang ja_JP.UTF-8
キーボード配列を指定します。オプションはありません。
一般的な日本語キーボードは「jp106」です。
# 日本語106キーボードを利用する keyboard jp106
タイムゾーンを指定します。日本標準時は「Asia/Tokyo」です。
「--utc」オプションを設定すると、ハードウェア時計に世界標準時が設定されます。
# タイムゾーンを日本標準時に設定する timezone Asia/Tokyo
管理者ユーザ (root) のパスワードを設定します。
「--iscrypted」オプションを利用すると、暗号化文字列を指定できます。
# 管理者ユーザのパスワード「password」を設定 rootpw password # 管理者ユーザのパスワード「password」を暗号化文字列で指定 rootpw --iscrypted $6$4U7XKciiUV8kPvRp$6fN3NWyQgj.Gb1GSYjs(※後略)
新たなユーザを作成します。
※省略すると一般ユーザが1人も作られません。
Fedora 10 ではグラフィカルダッシュボードが不可能になってしまいますのでご注意下さい。
user コマンドには、次のオプションがあります。
ユーザ名を指定します。(必須オプションです)
書式は「--name=<ユーザ名>」です。
# ユーザ foobar を作成 user --name=foobar
デフォルト以外に所属するグループ名を指定します。
書式は「--groups=<グループ名リスト>」で、グループ名はコンマ区切りで指定します。
# ユーザ foobar を他のグループにも所属させる user --name=foobar --groups=wheel,mock
ユーザのホームディレクトリを指定します。
書式は「--homedir=<ホームディレクトリ>」で、
指定がない場合は /home/<ユーザ名> が利用されます。
# ユーザ foobar のホームディレクトリを /home2 以下に置く user --name=foobar --homedir=/home2/foobar
ユーザのパスワードを指定します。
書式は「--password=<パスワード文字列>」で、
「--iscrypted」オプションを併用すると暗号化文字列を利用可能です。
※パスワード指定がない場合、アカウントはデフォルトでロックされます。
# ユーザ foobar のパスワードを指定する user --name=foobar --password=hogehoge # ユーザ foobar のパスワードを暗号化文字列で指定する user --name=foobar --iscrypted --password=$6$fIV4gnJf$oyUHBEwK3zYeYop7mTlRrCowg2K/(※後略)
ユーザのダッシュボードシェルを指定します。
書式は「--shell=<シェル>」で、指定しない場合はシステムのデフォルトシェルが利用されます。
# ユーザ foobar のダッシュボードシェルを tcsh にする user --name=foobar --shell=/bin/tcsh
ユーザの UID を指定します。
書式は「--uid=<ユーザID>」で、指定しない場合は非システムUIDのうち最小のものが使われます。
# ユーザ foobar の UID を 1000 にする user --name=foobar --uid=1000
ブートローダのインストール方法を指定します。
「--append」カーネルパラメータを指定します。
「--location」ブートローダを書き込む場所を指定します。
(「mbr」マスターブートレコード、「partition」/boot パーティションの先頭)
「--password」GRUB パスワードを指定します。
「--md5pass」GRUB パスワードを MD5形式で指定します。
# MBR にブートローダを書込む bootloader --location=mbr --append="rhgb quiet"
新しいパーティションを作成する前に、システムからパーティションを削除します。
「--all」全てのパーティションが削除されます。
「--drives」パーティションを削除するドライブを指定します。
「--linux」Linux パーティションだけを全て消去します。
「--none」パーティションを削除しません。
省略時のデフォルトは「--none」(削除しない)です。
# 1番目のドライブ上のパーティションを全て削除する clearpart --drives=sda --all # 1、2番目のドライブ上の Linux パーティションを削除する clearpart --drives=sda,sdb --linux
指定したディスクをインストーラに無視させます。
書式は「ignoredisk --drives=<ドライブのリスト>」です。
(ドライブは sda、sdb、hda…などデバイス名を指定します)
# 2台目のハードディスクを無視させる ignoredisk --drives=sdb
自動的にパーティションを作成します。
書式は「autopart」です。
※「part」コマンドにより一部を再定義することができます。
# パーティションを自動作成する autopart
パーティションを作成します。
書式は「part <マウントポイント> <オプション>」です。
マウントポイントには、「ディレクトリ名(/、/usr、/home など)」
「swap」(スワップ)、「raid.<ID>」(ソフトウェア RAID)、
「pv.<ID>」(LVM 物理ボリューム) などがあります。
主なオプションは、
「--size」パーティションの最小サイズを MB 単位で入力します。
「--grow」最大許容量または指定サイズまで拡張するよう指示します。
「--maxsize」パーティションを拡張する際の最大サイズを指定します。
「--onpart」「--usepart」既に存在するパーティションを利用します。
「--noformat」--onpart オプションと併用します。パーティションをフォーマットしません。
「--ondisk」「--ondrive」特定のディスク上にパーティションを作成します。
「--asprimary」プライマリパーティションにするよう指示します。
「--fstype」パーティションのファイルシステム形式を指定します。
# サイズ 200MB の /boot パーティションを作成 part /boot --fstype=ext3 --size=200 --ondisk=sda --asprimary # LVM 物理ボリューム を最大限度まで作成 part pv.1 --size=0 --grow --ondisk=sda # 既存のパーティションをフォーマットせずに利用する part /home --onpart=sda5 --noformat
# 3.5.5. で作成した物理ボリュームを利用する volgroup VolGroup00 --pesize=32768 pv.1 # 既存の論理ボリュームグループをフォーマットして利用する volgroup VolGroup00 --useexisting
# 論理ボリュームを最大限度まで作成する logvol / --fstype=ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow # 論理ボリュームを指定サイズで作成する logvol swap --fstype=swap --name=LogVol01 --vgname=VolGroup00 --size=4096 # 既存の論理ボリュームをフォーマットせずに利用する logvol /home --name=Home --vgname=VolGroup00 --noformat
# パーティションを自動作成する clearpart --all --drives=sda autopart # 標準インストールと同じ構成で作成する clearpart --linux --drives=sda part /boot --fstype ext3 --size=200 --ondisk=sda part pv.1 --size=0 --grow --ondisk=sda volgroup VolGroup00 --pesize=32768 pv.1 logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1024 --grow --maxsize=4096 logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
ファイアウォールの設定を行います。
「--disable」「--disabled」を指定するとファイアウォールが無効になります。
「--enable」「--enabled」を指定するとファイアウォールが有効になります。
「--trust」オプションを指定すると、信頼するインターフェイスを設定できます。
「--ssh」「--telnet」「--smtp」「--http」「--ftp」対応するポートを開きます。
「--port」指定したポートを開きます。
# ファイアウォールを無効にする firewall --disabled # ファイアウォールを有効にする firewall --enabled # ファイアウォールを有効にし、インターフェイス eth1 を信頼する firewall --enabled --trust eth1 # ファイアウォールを有効にし、SSH と HTTP と FTP のポートを開く firewall --enabled --ssh --http --ftp # ファイアウォールを有効にし、TCP 12345 番ポートを開く firewall --enabled --port=12345:tcp
認証に関する設定を行います。
「--passalgo」オプションを指定すると、ユーザのパスワード暗号化方式を設定できます。
「--useshadow」「--enableshadow」オプションを指定すると、パスワードがシャドウ化されます。
※他にも、NIS / LDAP / Kerberos 5 / Hesiod / SMB 認証 に関する設定が可能ですが、
ここでは省略いたします。 これらのオプションの詳細につきましては、
「キックスタートのオプション」authconfig の項目をご覧下さい。
# パスワードを SHA512 で暗号化し、シャドウファイルに格納する authconfig --enableshadow --passalgo=sha512
システムの SELinux 状態を設定します。
「--enforcing」オプションを指定すると Enforcing モード、
「--permissive」オプションを指定すると Permissive モード、
「--disabled」オプションを指定すると SELinux が無効になります。
省略時のデフォルトは Enforcing モードです。
# SELinux を Enforcing モードに設定 selinux --enforcing # SELinux を Permissive モードに設定 selinux --permissive # SELinux を 無効にする selinux --disabled
サービスの有効/無効を設定します。
「--disabled」サービスを無効にします。カンマ区切りリストでサービスを指定します。
「--enabled」サービスを有効にします。カンマ区切りリストでサービスを指定します。
# sshd と sendmail サービスを無効、ntpd と pcscd サービスを有効にする services --disabled sshd,sendmail --enabled ntpd,pcscd
X-Window を設定します。
「--driver」オプションでは利用するドライバを指定します。
「--defaultdesktop」オプションではデフォルトのデスクトップを GNOME と KDE から選択します。
「--startxonboot」オプションを指定するとグラフィカルダッシュボードが有効になります。
「--resolution」オプションではデフォルトの画面解像度を指定します。
「--depth」オプションではデフォルトの色深度を指定します。有効な値は 8、16、24、32 です。
省略時には X-Window を手動で設定する必要があります。(X-Window をインストールした場合)
# グラフィカルダッシュボードを有効にし、intel ドライバを利用する xconfig --driver=intel --startxonboot
# インストール終了後に停止する halt # インストール終了後に電源を切る poweroff # インストール終了後に再起動を行う reboot # インストール終了後に停止する shutdown
初回起動時に手動設定を行うか選択します。
「--enable」「--enabled」が指定されると、初回起動時にセットアップが起動します。
「--disable」「--disabled」が指定されると、初回起動時にセットアップが起動しません。
「--reconfig」が指定されると、初回起動時に再設定モードでセットアップが起動します。
省略時のデフォルトは「--disable」(起動しない)です。
# 初回起動時にセットアップを起動 firstboot --enable # 初回起動時にセットアップを起動しない firstboot --disable # 初回起動時に再設定モードでセットアップを起動 firstboot --reconfig
# Kickstart sample for Fedora 10 # Command Section install cdrom lang ja_JP.UTF-8 keyboard jp106 rootpw foobar user --name=guest --password=hogehoge firewall --enabled firstboot --disabled authconfig --enableshadow --passalgo=sha512 selinux --enforcing halt timezone Asia/Tokyo bootloader --location=mbr --driveorder=sda --append="rhgb quiet" clearpart --linux --drives=sda ignoredisk --drives=sdb autopart # Package Section %packages @admin-tools @base @core @dial-up @editors @fonts @gnome-desktop @games @graphical-internet @graphics @hardware-support @input-methods @japanese-support @java @office @printing @sound-and-video @text-internet @base-x gpgme gpm pax gnupg2 sazanami-fonts-gothic VLGothic-fonts-proportional sazanami-fonts-mincho gnuchess ImageMagick dcraw netpbm-progs m17n-db-tamil m17n-db-gujarati m17n-db-kannada m17n-db-hindi gok m17n-db-oriya m17n-db-bengali m17n-contrib-sinhala m17n-db-assamese m17n-db-punjabi m17n-db-telugu m17n-db-malayalam gdm # Script Section %post # Enable Japanese echo 'LANG="ja_JP.UTF-8"' > /etc/sysconfig/i18n
「Red Hat Enterprise Linux インストールガイド」
第28章 キックスタートインストール
「Red Hat Enterprise Linux インストールガイド」
28.4. キックスタートのオプション