Jump to content 日本-日本語
製品  >  ソフトウェア  >  Linux

pxelinuxを使用した Turbolinuxインストール方法
シリアルコンソール対応

Open Source & Linux

導入事例

product

ハードウェア
ソフトウェア
サービス & サポート

buy now?

HPE OPEN SERVICES
保守サービス
教育プログラム

support

OS対応表
ProLiant
Workstation
システム構成図
技術文書
FAQ
ディストリ対応表
サポート & ドライバ
リンク
SDR - 設定方法
FreeBSD
サイトマップ
HPE & Red Hat情報ポータル HPEとRed Hatが実現するオープンなイノベーション
BSD 動作確認レポート等を掲載
コンテンツに進む
27-JUN-02
 pxelinuxとは、CDや FDからのインストール時に使用されるローダーである syslinuxを PXEに対応させたもので、指定できるオプション等は syslinuxと同等となっています。本ページでは、この pxelinuxで tftpサーバよりカーネルを取得し、インストール CDイメージを NFS経由で参照する kickstartインストール、つまりネットワーク経由での完全自動インストール方法を行う方法について説明します。
pxelinuxの詳細はサイト外リンクsyslinux.zytor.com/pxe.phpを参照

pxelinuxを使用した際のインストールフロー

1. システムが PXE経由でブートし、DHCPサーバへアドレスを要求する
2. DHCPサーバが、IPアドレス、tftpサーバのアドレス、最初にロードするプログラム名(pxelinux)等を通知する
3. システムが DHCPサーバから通知された情報を元に、tftpで pxelinuxを取得する
4. システム上の pxelinuxが tftpサーバから構成ファイル(カーネルファイル名 initrdファイル名、ブートオプション等の書かれているファイル)を取得する
5. システム上の pxelinuxが取得した構成ファイルを元に tftpサーバからカーネル、initrdイメージを取得し、それを使用してブートする
6. システム上でインストーラーが起動し、kickstart用構成ファイルを NFS経由で取得する
7. システム上で kickstart用構成ファイルの指定に従いインストールが行われる、キット(インストール CDイメージ)は NFS経由で参照される

ネットワーク経由完全自動インストールに必要なもの

  • tftpサーバ
  • DHCPサーバ
  • NFSサーバ
 これらは同一のサーバ上で動作させる事も、それぞれ別のサーバで動作させる事も可能です。当方が構築したインストール用環境では、1台の Red Hat 7.2上ですべてのサービスを動作させて確認を行っています。その際、それぞれのサービスは Red Hat 7.2でインストールされるものをそのまま使用しました。
 
 これらのサーバを Red Hatではなく Turbolinuxで運用する事も可能です。Red Hat Linuxとの細かな違い等は Turbolinuxのマニュアル、もしくは各種 HowToドキュメントを参照してください。

インストール用環境構築手順

 必要なファイルの配置(vmlinuz, initrd.img, syslinux.cfg, pxelinux.0, ks.cfg)を行います。
 
 tftpおよび NFSで取得される各種ファイルを配置します。今回は tftpのルートディレクトリは /tftpboot、NFSのエクスポートディレクトリは /usr/local/exportsにしています。
  • インストールに使用されるカーネル、initrdイメージおよび syslinux.cfgは、サイト外リンクこちらから network.imgをダウンロードしてください。
    caution  インストール CD 1枚目の /images/network.imgを利用すると kickstartによる完全無人インストールはできません。インストーラがメディアの選択時に停止します。
    #mkdir /work
    #mount -o loop bootnet.img /work
    #cd /work
    #mkdir /tftpboot/pxelinux.cfg (pxelinux のために必要)
    #cp initrd.img vmlinuz /tftpboot
    #cp syslinux.cfg /tftpboot/pxelinux.cfg

  • syslinux.cfgを以下のように書き換えます。
    default ks
    prompt 0
    label ks
     kernel vmlinuz
     [シリアルを利用しない場合]
     append ks=nfs:192.168.1.12:/usr/local/exports/ks.cfg ksdevice=eth0 initrd=initrd.img
      もしくは…
     [シリアルを利用する場合]
     append ks=nfs:192.168.1.12:/usr/local/exports/ks.cfg ksdevice=eth0 initrd=initrd.img console=ttyS0,115200 serial=/dev/ttyS0 console=tty0

  • defaultというファイルを syslinux.cfgにシンボリックリンクさせます。これは pxelinuxは DHCPで取得した IPを HEXに変換したファイル名もしくは defaultというファイルを構成ファイルとして取得するようにハードコーディングされている為です。
    #cd /tftpboot/pxelinux.cfg
    #ln -s syslinux.cfg default


  • pxelinux.0を配置します。サイト外リンクwww.kernel.org/pub/linux/utils/boot/syslinux/から syslinux-1.72.tar.gzをダウンロードし、適当なディレクトリで解凍&展開後、得られた pxelinux.0を /tftpbootディレクトリにコピーします。
    #tar zxvf syslinux-1.72.tar.gz
    #cp syslinux-1.72/pxelinux.0 /tftpboot/

  • ks.cfgを作成します。今回は NFS経由で取得させるので、NFSのエクスポートディレクトリ(/usr/local/exports)に配置します。
    lang ja_JP.eucJP

    keyboard jp106

    mouse genericps/2

    timezone Asia/Tokyo

    rootpw compaq

    nfs --server 192.168.1.12 --dir /usr/local/exports
    network --bootproto dhcp

    security 80

    install

    auth --useshadow --enablemd5

    zerombr yes
    clearpart --linux
    part /boot --size 64
    part swap --size 256
    part / --size 1500 --grow

    [シリアルを利用しない場合]
    lilo --location mbr
      もしくは…
    [シリアルを利用する場合]
    lilo --append "console=tty0 console=ttyS0,115200" --location mbr

    reboot

    <package-list>
    <itype name="Kickstart">
    <reqitype>
    Everything
    </reqitype>
    </itype>
    </package-list>

    %post
    シリアルコンソールを利用しない場合は以下は全て不要
    # setup ProLiant BL10e serial console settings
    echo 7:12345:respawn:/sbin/getty ttyS0 F115200 >> /etc/inittab
    echo ttyS0 >> /etc/securetty
    cat >> /etc/mgetty+sendfax/mgetty.config << EOF
    port ttyS0
    direct y
    speed 115200
    toggle-dtr n
    EOF

  • インストール CDイメージを NFSエクスポートディレクトリへコピー
    #mount /mnt/cdrom (インストールCDは2枚ともすべてコピーする)
    #cp -rp /mnt/cdrom/* /usr/local/exports
    #umount /mnt/cdrom

  • それぞれのサービス(tftp, DHCP, NFS)を有効に
    • tftpを有効にします。
      #chkconfig tftp on ; /etc/init.d/xinetd restart

    • DHCPを有効にします。最初に/etc/dhcpd.confを以下の例を参考に書き換えます。
      deny bootp;

      option domain-name "tsglab.net";
      option domain-name-servers 192.168.1.254;

      option subnet-mask 255.255.255.0;
      default-lease-time 7200;
      max-lease-time 7200;

      option routers 192.168.1.1;
      option broadcast-address 192.168.1.255;

      filename "pxelinux.0";
      server-name "DHCPServer";

      subnet 192.168.1.0 netmask 255.255.255.0 {
      range 192.168.1.200 192.168.1.240;
      next-server 192.168.1.12;
      }

    • dhcpd.confを書き換えたら、サービスを起動します。
      #chkconfig dhcpd on ; /etc/init.d/dhcpd start

    • NFSを有効にします。/etc/exportsを以下の例を参考に書き換えます。
      /usr/local/exports *(ro)

    • exportsを書き換えたら、サービスを起動します。
      #chkconfig nfs on ; /etc/init.d/nfs start
 上述の手順でインストール用環境を構築後、システムの電源を入れると上述のインストールフローの通りに自動でインストールが行われます。

シリアルコンソールの見栄えについて

 シリアル経由でログインする際のログインプロンプトは /etc/issueがデフォルトで使用されます。これは mgetty(getty)用には不適切なトークン(エスケープシーケンス)が含まれているので、新しい issueファイルを作り、/etc/inittabのgettyの行の最後に -i newissuefileとして追加すると、シリアルコンソールでの見栄えがよくなります。
印刷用画面へ印刷用画面へ
プライバシー ご利用条件・免責事項