Red Hat Training

A Red Hat training course is available for Red Hat Satellite

第9章 ブートデバイス

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

手順9.1 CD のブートメディア

注記

以下で使用するバックスラッシュ「\」はコマンドが一行で構成されているためシェルプロンプトでも改行せず一行として入力するという意味です。
  1. ブートイメージ用の作業ディレクトリを作成します。
    mkdir -p temp cd/isolinux
    
  2. ブートイメージを temp ディレクトリにマウントします。
    mount -o loop boot.iso temp
    
  3. CD ブートメディアデバイスに必要なファイルを上記で作成したディレクトリにコピーします。
    cp -aP temp/isolinux/* cd/isolinux/
    
  4. temp ディレクトリをアンマウントし、 cd ディレクトリのパーミッションをユーザーに対して読み取りと書き込みに変更します。
    umount temp
    chmod -R u+rw cd
    
  5. ./cd ディレクトリに移動します。
    cd ./cd
    
  6. /usr/lib/syslinux/menu.c32 ファイルを CD にコピーします。
    cp -p /usr/lib/syslinux/menu.c32 isolinux
    
  7. テキストエディタで isolinux/isolinux.cfg ファイルを開いて以下の行を追加します。
    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 RHEL Boot" .
    
  8. 必要に応じて、 CD による起動用に isolinux.cfg 内のブートパラメータとターゲットをカスタマイズします。
  9. 詳細を CD に焼き付けたら手順は終了です。

手順9.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/lib/syslinux/menu.c32 ファイルを /pxe ディレクトリにコピーします。
    cp -p /usr/lib/syslinux/menu.c32 .
    
  7. isolinux.cfg ファイルを pxelinux.cfg/default に移動します。
    mv isolinux.cfg pxelinux.cfg/default
    
  8. 一時ファイルを削除します。
    rm -f isolinux.bin TRANS.TBL
    
  9. /usr/lib/syslinux/pxelinux.0 ファイルを /pxe ディレクトリにコピーします。
    cp -p /usr/lib/syslinux/pxelinux.0 .
    
  10. テキストエディタで pxelinux.cfg/default ファイルを開いて PXE ブートに必要なブートパラメータやターゲットをカスタマイズします。

手順9.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. /usb ディレクトリに移動します。
    cd ./usb
    
  6. /usr/lib/syslinux/menu.c32 ファイルを extlinux/ ディレクトリにコピーします。
    cp -p /usr/lib/syslinux/menu.c32 extlinux/
    
  7. extlinux/isolinux.cfg ファイルを extlinux/extlinux.conf に移動します。
    mv extlinux/isolinux.cfg extlinux/extlinux.conf
    
  8. 一時ファイルを削除します。
    rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
    
  9. custom-boot.img ファイルを変換して、コピーします。
    dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
    
  10. ループバックデバイスをマウントするための正しい場所を確認します。
    losetup -f
    /dev/loop0
    
    ブートイメージを使用して、ループバックデバイスを設定します。
    losetup /dev/loop0 ./custom-boot.img
    
  11. fdisk ユーティリティを開きます。
    fdisk /dev/loop0
    
    デバイス上にブート可能なプライマリパーティションをひとつ作成します。 次のキーの組み合わせを押すと作成することができます。 n p 1 Enter Enter a 1 p w
  12. マスターブートレコード (MBR) をループバックデバイスにコピーします。
    dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
    
  13. ループバックデバイスにパーティションマップを追加します。
    kpartx -av /dev/loop0
    
  14. ファイルシステムを作成します。
    mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
    
  15. デバイスをマウントします。
    mount /dev/mapper/loop0p1 temp
    
  16. 一時的なファイル群を削除します。
    rm -rf temp/lost+found
    
  17. extlinux/ ディレクトリを一時ディレクトリにコピーします。
    cp -a extlinux/* temp/
    
  18. ブートローダを一時ディレクトリにインストールします。
    extlinux temp
    
  19. 一時ディレクトリをアンマウントします。
    umount temp
    
  20. ループバックデバイス上のパーティションマップを削除します。
    kpartx -dv /dev/loop0
    
  21. ループバックデバイスを削除します。
    losetup -d /dev/loop0
    
    ファイルシステムの変更を同期します。
    sync
    
  22. テキストエディタで extlinux.conf ファイルを開いて USB ブートに必要なブートパラメータとターゲットをカスタマイズします。
  23. イメージを USB デバイスに移動したら手順は完了です。 デバイスを挿入して、 dmesg のコマンドを実行しマウントの場所を確認します。 この例では /dev/sdb になります。
    USB デバイスをアンマウントします。
    umount /dev/sdb
    
    イメージを USB デバイスにコピーします。
    dd if=./custom-boot.img of=/dev/sdb