Red Hat Training

A Red Hat training course is available for Red Hat Satellite

付録A ブートデバイス

自動インストール (または キックスタート) は効率的なシステムのプロビジョニングに欠かせません。本付録では、クライアントのキックスタートに使用する様々なタイプのブートメディアを作成する方法について説明します。
Red Hat Enterprise Linux CD のブートイメージとなる boot.iso はブートデバイスの作成に必須の要件です。 このイメージがシステムのどこにあるのかを確認して、 その場所を書き留めてください。

重要

syslinux および syslinux-extlinux パッケージをインストールして、以下の手順を実行します。
# yum install syslinux syslinux-extlinux
syslinux パッケージは、Red Hat Enterprise Linux 6 用の /usr/share/syslinux/ にファイルをインストールします。Red Hat Enterprise Linux 5 を使用している場合、このディレクトリーを /usr/lib/syslinux/ に置き換えてください。
syslinux-extlinux パッケージは、USB ブートメディア作成用のツールをインストールします。

手順A.1 CD および DVD ブートメディア

注記

以下で使用するバックスラッシュ「\」はコマンドが一行で構成されているためシェルプロンプトでも改行せず一行として入力するという意味です。
  1. ブートイメージ用の作業ディレクトリーを作成します。
    # mkdir -p temp cd/isolinux
  2. ブートイメージを temp ディレクトリーにマウントします。
    # mount -o loop boot.iso temp
  3. ブートメディアデバイスに必要なファイルを、上記で作成したディレクトリーにコピーします。
    # cp -aP temp/isolinux/* cd/isolinux/
  4. temp ディレクトリーをアンマウントし、 cd ディレクトリーのパーミッションをユーザーに対して読み取りと書き込みに変更します。
    # umount temp
    # chmod -R u+rw cd
  5. ./cd ディレクトリーに移動します。
    # cd ./cd
  6. /usr/share/syslinux/menu.c32 ファイルを ./cd ディレクトリーにコピーします。
    # cp -p /usr/share/syslinux/menu.c32 isolinux
  7. 必要に応じて、CD による起動用に isolinux.cfg 内のブートパラメータとターゲットをカスタマイズします。
  8. mkisofs を使用して ISO を作成し、CD または DVD に焼き付けます。
    # mkisofs -o ./custom-boot.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
        -boot-load-size 4 -boot-info-table -J -l -r -T -v -V "Custom Red Hat Enterprise Linux Boot" .
  9. ディレクトリーを CD または DVD に焼き付けたら手順は終了です。

手順A.2 PXE ブート

  1. ブートイメージ用の作業ディレクトリーを作成します。
    # mkdir -p temp pxe/pxelinux.cfg
  2. ブートイメージを temp ディレクトリーにマウントします。
    # mount -o loop boot.iso temp
  3. PXE ブートデバイスに必要なファイルを、上記で作成したディレクトリーにコピーします。
    # cp -aP temp/isolinux/* pxe/
  4. temp ディレクトリーをアンマウントし、 cd ディレクトリーのパーミッションをユーザーに対して読み取りと書き込みに変更します。
    # umount temp
    # chmod -R u+rw pxe
  5. /pxe ディレクトリーに移動します。
    # cd ./pxe
  6. /usr/share/syslinux/menu.c32 ファイルを /pxe ディレクトリーにコピーします。
    # cp -p /usr/share/syslinux/menu.c32 .
  7. isolinux.cfg ファイルを pxelinux.cfg/default に移動します。
    # mv isolinux.cfg pxelinux.cfg/default
  8. 一時ファイルを削除します。
    # rm -f isolinux.bin TRANS.TBL
  9. /usr/share/syslinux/pxelinux.0 ファイルを /pxe ディレクトリーにコピーします。
    # cp -p /usr/share/syslinux/pxelinux.0 .
  10. テキストエディタで pxelinux.cfg/default ファイルを開いて PXE ブートに必要なブートパラメータやターゲットをカスタマイズします。

手順A.3 USB ブートメディア

警告

root としてこれらのコマンドを実行する際には (最も重要な部分で必要とされます)、極めて慎重に行ってください。これらのコマンドは、デバイスファイルにアクセスするため、これらのコマンドを正しく使用しないと、システムが回復不可能なダメージを受ける可能性があります。以下の例では、マウントに /dev/loop0 を使用しています。losetup -f のコマンドを使用すると、どれが正しいデバイスかを確認することができます。
  1. ブートイメージ用の作業ディレクトリーを作成します。
    # mkdir -p temp usb/extlinux
  2. ブートイメージを temp ディレクトリーにマウントします。
    # mount -o loop boot.iso temp
  3. USB メディアブートデバイスに必要なファイルを、上記で作成したディレクトリーにコピーします。
    # cp -aP temp/isolinux/* usb/extlinux/
  4. temp ディレクトリーをアンマウントし、 cd ディレクトリーのパーミッションをユーザーに対して読み取りと書き込みに変更します。
    # umount temp
    # chmod -R u+rw usb
  5. /usr/share/syslinux/menu.c32 ファイルを ./usb/extlinux/ ディレクトリーにコピーします。
    # cp -p /usr/share/syslinux/menu.c32 ./usb/extlinux/
  6. usb/extlinux/isolinux.cfg ファイルを usb/extlinux/extlinux.conf に移動します。
    # mv usb/extlinux/isolinux.cfg usb/extlinux/extlinux.conf
  7. 一時ファイルを削除します。
    # rm -f usb/extlinux/isolinux.bin usb/extlinux/TRANS.TBL
  8. custom-boot.img ファイルを変換して、コピーします。
    # dd if=/dev/zero of=./custom-boot.img bs=1024 count=300000
  9. ループバックデバイスをマウントするための正しい場所を確認します。
    # losetup -f
    /dev/loop0
    ブートイメージを使用して、ループバックデバイスを設定します。
    # losetup /dev/loop0 ./custom-boot.img
  10. fdisk ユーティリティーを開きます。
    # fdisk /dev/loop0
    デバイス上にブート可能なプライマリーパーティションを 1 つ作成します。次のキーの組み合わせを押すと、これを作成できます。 n p 1 Enter Enter a 1 p w
  11. マスターブートレコード (MBR) をループバックデバイスにコピーします。
    # dd if=/usr/share/syslinux/mbr.bin of=/dev/loop0
  12. ループバックデバイスにパーティションマップを追加します。
    # kpartx -av /dev/loop0
  13. ファイルシステムを作成します。
    # mkfs.ext2 -m 0 -L "Custom Red Hat Enterprise Linux Boot" /dev/mapper/loop0p1
  14. デバイスをマウントします。
    # mount /dev/mapper/loop0p1 temp
  15. 一時的なファイル群を削除します。
    # rm -rf temp/lost+found
  16. usb/extlinux/ ディレクトリーを一時ディレクトリーにコピーします。
    # cp -a usb/extlinux/* temp/
  17. ブートローダーを一時ディレクトリにインストールします。
    # extlinux -i temp
  18. 一時ディレクトリーをアンマウントします。
    # umount temp
  19. ループバックデバイス上のパーティションマップを削除します。
    # kpartx -dv /dev/loop0
  20. ループバックデバイスを削除します。
    # losetup -d /dev/loop0
    ファイルシステムの変更を同期します。
    # sync
  21. テキストエディタで extlinux.conf ファイルを開いて USB ブートに必要なブートパラメータとターゲットをカスタマイズします。
  22. イメージを USB デバイスに移動したら手順は完了です。デバイスを挿入して、dmesg のコマンドを実行しマウントの場所を確認します。この例では /dev/sdb になります。
    USB デバイスをアンマウントします。
    # umount /dev/sdb
    イメージを USB デバイスにコピーします。
    # dd if=./custom-boot.img of=/dev/sdb