pxelinux経由でOpenSolarisをネットワークインストールする.

  • 目的
    • solaris附属のインストールサーバ作成スクリプトSolarisでしか使用できない.スクリプトが改編する設定とファイルを全て調べるのは困難.
    • 既に別機器でDHCPサーバーが機能している場合に別のDHCPサーバーが起動しネットワークが混乱する危険がある.
    • 既にpxelinux用tftpサーバーが起動しているので,さらにtftpサーバを作ったりDHCPサーバの設定の項目を増やしたくない.
  • DHCPサーバーの設定
    • 適当なプールに次の項目を追加
filename "pxelinux.0";
next-server TFTPサーバ名;
  • NFSサーバーの設定
    • OpenSolarisのDVDファイルをループバックマウントしexportしておく.
      • FirewallはICMPと2049番だけ開ければよい(?)
  • TFTPサーバーの設定
Chain loading requires the boot sector of the foreign operating system
to be stored in a file in the root directory of the filesystem.
Because neither Linux kernels, boot sector images, nor COMBOOT files
have reliable magic numbers, SYSLINUX will look at the file extension.
The following extensions are recognized (case insensitive):

  none or other Linux kernel image
  .0            PXE bootstrap program (NBP) [PXELINUX only]
  .bin          "CD boot sector" [ISOLINUX only]
  .bs           Boot sector [SYSLINUX only]
  .bss          Boot sector, DOS superblock will be patched in [SYSLINUX only]
  .c32          COM32 image (32-bit COMBOOT)
  .cbt          COMBOOT image (not runnable from DOS)
  .com          COMBOOT image (runnable from DOS)
  .img          Disk image [ISOLINUX only]

For filenames given on the command line, SYSLINUX will search for the
file by adding extensions in the order listed above if the plain
filename is not found.  Filenames in KERNEL statements must be fully
qualified.
    • ディレクトリ/tftpboot/pxelinux.cfgを作成./tftpboot/pxelinux.cfg/defaultにpxegrubを呼び出すように設定(もしくは追加)する.
DEFAULT grub

LABEL grub
kernel pxegrub.0

PROMPT 1
TIMEOUT 100
    • /tftpboot/boot/grub/menu.lstの編集.デフォルトエントリ(default=0)に以下を追加
title OpenSolaris Network
        kernel /boot/platform/i86pc/kernel/unix -v -m verbose -B install_media=(NFSサーバーのIPアドレス):(exportされたOpenSolarisのディレクトリ)
        module /boot/x86.miniroot

title OpenSolaris Network 64bit
        kernel /boot/platform/i86pc/kernel/amd64/unix -v -m verbose -B install_media=(NFSサーバーのIPアドレス):(exportされたOpenSolarisのディレクトリ)
        module /boot/amd64/x86.miniroot