Debianのインストールを自動化

事前にインストール設定を書いたpreseedファイルを用意しておき、Debianインストーラの起動パラメータにそのファイルを指定して起動すると、Debianのインストールを自動化できます。 自動インストールに必要なpreseedファイルの書き方は、インストールマニュアルに1章を割いて解説してありますが、よくわからないこともあったので調べたことをメモとして残します。

preseedファイルには、ひな形が用意されているので、それを元に作成します。ファイル名はなんでも構いませんが、8+3形式の短いほうが入力しやすくて良いでしょう。

ひな形ファイルにはコメントが書いてあるので、それを参考にしながら編集しますが、コメントだけでは、どんな値を書いていいのかわからないことがあります。 その場合は、インストール済みのDebianからpreseedファイルを生成して、それを参考にしながら編集します。

ここで「生成したpreseedファイルをなぜそのまま利用しないのか」と思う人がいるかもしれませんが、この生成したpreseedファイルはインストールに必要なパラメータが欠けていたり、また余計なパラメータが入っているので、そのまま利用してもインストール中に止まることがほとんどです。 また手で編集しようにも、大量のパラメータがコメントもなしで列挙されているので、見ただけでうんざりするでしょう。

ということで、手っ取り早くpreseedファイルを作成するには、ひな形を元に編集して、わからない部分だけ生成したpreseedファイルを参考にすると自分の思うpreseedファイルが作成できるでしょう。

既存のDebianマシンからpreseedファイルを生成するには、debconf-utilsパッケージに含まれているdebconf-get-selectionsを使います。

$ sudo apt-get install debconf-utils
$ debconf-get-selections --installer > file
$ debconf-get-selections >> file

ひな形と生成したpreseedファイルを元にpreseedファイルを作成したなら、記述が正しいかチェックします。チェックにはdebconf-set-selectionsを使います。

$ debconf-set-selections -c preseed.cfg

preseedファイルができたら、これを使ってDebianをインストールします。

まずpreseedファイルをDebian Installerが読めるところ、フロッピーディスクやUSBメモリ、httpでアクセスできる場所に配置します。 自分は仮想マシンにインストールするので、httpでアクセスできるところに置きました。

次にインストーラを起動して、メニューの Advanced optionsAutomated install を選び、Tabキーを押します。 パラメータが入力できるので末尾に「 url=http://host/path/to/preseed.cfg 」と入力します。

もしくはインストーラ起動後、ESCキーを押すとメニューがキャンセルされ「boot:」とプロンプトが出るので「 auto url=http://host/path/to/preseed.cfg 」と入力してもかまいません。

フロッピーやUSBメモリの場合は B.2. preseed の利用を参考に指定します。

Wheezy用のpreseedファイルです。最小構成でDebianを自動インストールします。 起動パラメータに url=http://www.nofuture.tv/wheezy.cfg と指定して利用もできます。

Squeezeからの変更点

  • パーティションを手動ではなくインストーラのatomicで作成
  • 所属グループを指定「audio cdrom video plugdev netdev powerdev vboxsf fuse」
  • security,debian-updatesの指定を外した。(自動で設定される)
  • インストールパッケージを少し増やした「ssh ca-certificates git bash-completion lv tmux」

設定

ロケール ja_JP.UTF-8
ネットワークインターフェス 自動
ホスト名/ドメイン vbox.local
APTミラー http://ftp.jp.debian.org/debian/
root 無効(sudoを利用)
ユーザー debian
ユーザーパスワード debian
クロック UTC
タイムゾーン Asia/Tokyo
ハードディスク /dev/sda
パーティション / (ext4)
swap
non-free/contrib 有効
security/volatile.debian.org 有効
backports 追加
tasksel なし
追加パッケージ ssh ca-certificates git bash-completion lv tmux
注意

これはOld Stable用です。

Squeeze用のpreseedファイルです。

* http://www.nofuture.tv/squeeze.cfg

起動パラメータに url=http://www.nofuture.tv/squeeze.cfg と指定して利用もできます。