忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

PXE ブートと preseed.cfg を使って Ubuntu 14.04 LTS のインストールを自動化する

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

PXE ブートと preseed.cfg を使って Ubuntu 14.04 LTS のインストールを自動化する

Ubuntu 14.04 LTS を PXE ブートを使ってネットワークインストールするの続き。

PXE ブート、思ったほど便利じゃなかった

大切なことなのでもう一度書くが、PXE ブートが思ったほど便利じゃなかった。結局、インストール CD を挿入しなくてもインストールできる、というだけであった。それは CD ドライブがないサーバーとかを考えれば便利だし、 CD 焼かなくていいし、枚数無くてもさっさか並列でインストールできるし、と利点はある。しかし、各種設定は手動でやらなければならない。

よって、インストール時の設定も自動化したい。

preseed.cfg を使う

preseed.cfg はインストール時の設定を記述するためのファイル。これをインストール時に読み込むように設定することでインストール時にぽちぽちボタンを押していく必要がなくなる。

下準備

前回 PXE ブートを試した環境ならば、すぐに試せる。

HTTP サーバを確保する

preseed.cfg を配置する HTTP サーバを作る。PXE ブート用のサーバに apache を入れてもいいし、既存の HTTP サーバにその役割をお願いしてもいい。tftp で提供することもできるようだが、私はまだ試していない。

マウントのやり直し

前回、インストールイメージを配置する際、以下のようにした。

インストールイメージを入手する。
$ cd
$ wget http://releases.ubuntu.com/14.04.4/ubuntu-14.04.4-server-amd64.iso

DHCP の設定と tftp の設定で記述した場所に iso イメージを配置する。
# mount -t iso9660 -o loop /home/ubuntu/ubuntu-14.04.4-server-amd64.iso /var/lib/tftpboot/

しかし、この方法ではマウントされたイメージは読み込み専用となる。つまり、編集ができない。ディスクイメージの中に preseed.cfg の場所を記述する必要があるので、この方法ではまずい。よって、次のようにする。

  1. # umount /var/lib/tftpboot/ で前回マウントしたディスクをアンマウントする
  2. $ mkdir /tmp/tftpboot でとりあえず配置するためのディレクトリを作る
  3. # mount -t iso9660 -o loop /home/ubuntu/ubuntu-14.04.4-server-amd64.iso /tmp/tftpboot/ でとりあえずの場所にインストールイメージを配置する
  4. # cp -r /tmp/tftpboot /var/lib/ でイメージを複製する
  5. 後は chmod とかで適切な権限を /var/lib/tftpboot/ 以下に付与する。なお、書き換えが必要なのは /var/lib/tftpboot/install/netboot/pxelinux.cfg/default だけである

preseed.cfg を書いて配置する

preseed.cfg の書き方は資料がやたら少ない。この記事末尾の参考文献を読んで書いて頂ければ。

かけたら先に準備した HTTP サーバに preseed.cfg を配置する。

/netboot/pxelinux.cfg/default を書き換える

末尾に以下を書き足した。

label myInstall
   menu label ^Install Ubuntu Server with preseed
   kernel ubuntu-installer/amd64/linux
   append DEBCONF_DEBUG=5 auto=true locale=en_US.UTF-8 console-setup/charmap=UTF-8 console-setup/layoutcode=us console-setup/ask_detect=false pkgsel/language-pack-patterns=pkgsel/install-language-support=false interface=eth0 hostname=localhost domain=localdomain url=[用意した preseed.cfg の URL] vga=normal initrd=ubuntu-installer/amd64/initrd.gz quiet --

1行目は名づけ。この設定は myInstall という名である、というだけ。

2行目はメニューでの表示。設定しないと myInstall という名で表示されるが、この設定によりメニュー上では Install Ubuntu Server with preseed と表示される。

3行目はインストール実行時に読み込まれるカーネルを指定。起点が DHCP サーバで指定した pxelinux.0 の配置ディレクトリ (前回通りなら ubuntu/install/netboot/) なので注意

4行目は起動時の設定。引数がいろいろ並んでいるが、url の指定に注意。あとはコピペで行ける。これは preseed.cfg で設定される内容だが、これらは事前に引数で渡さないとインストール時に確認させられてしまう。

起動

前回と同じように PXE ブートする。すると、次のように画面には出力される。

TFTP prefix: ubuntu/install/netboot/
Trying to load: pxelinux.cfg/default           [OK]
Boot:

ここで Enter を押す。すると、インストールメニューが出てくる。そこで Install Ubuntu Server with preseed を選択すればインストールが勝手に始まる。

Boot: が出た後の Enter とメニューからの選択はなんかスキップできそうな気がするけどまだ試してない。

参考文献

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R