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 のブートメディア
注記
以下で使用するバックスラッシュ「
\
」はコマンドが一行で構成されているためシェルプロンプトでも改行せず一行として入力するという意味です。
- ブートイメージ用の作業ディレクトリを作成します。
mkdir -p temp cd/isolinux
- ブートイメージを
temp
ディレクトリにマウントします。mount -o loop boot.iso temp
- CD ブートメディアデバイスに必要なファイルを上記で作成したディレクトリにコピーします。
cp -aP temp/isolinux/* cd/isolinux/
temp
ディレクトリをアンマウントし、cd
ディレクトリのパーミッションをユーザーに対して読み取りと書き込みに変更します。umount temp chmod -R u+rw cd
./cd
ディレクトリに移動します。cd ./cd
/usr/lib/syslinux/menu.c32
ファイルを CD にコピーします。cp -p /usr/lib/syslinux/menu.c32 isolinux
- テキストエディタで
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" .
- 必要に応じて、 CD による起動用に
isolinux.cfg
内のブートパラメータとターゲットをカスタマイズします。 - 詳細を CD に焼き付けたら手順は終了です。
手順9.2 PXE ブート
- ブートイメージ用の作業ディレクトリを作成します。
mkdir -p temp pxe/pxelinux.cfg
- ブートイメージを
temp
ディレクトリにマウントします。mount -o loop boot.iso temp
- PXE ブートデバイスに必要なファイルを上記で作成したディレクトリにコピーします。
cp -aP temp/isolinux/* pxe/
temp
ディレクトリをアンマウントし、cd
ディレクトリのパーミッションをユーザーに対して読み取りと書き込みに変更します。umount temp chmod -R u+rw pxe
/pxe
ディレクトリに移動します。cd ./pxe
/usr/lib/syslinux/menu.c32
ファイルを/pxe
ディレクトリにコピーします。cp -p /usr/lib/syslinux/menu.c32 .
isolinux.cfg
ファイルをpxelinux.cfg/default
に移動します。mv isolinux.cfg pxelinux.cfg/default
- 一時ファイルを削除します。
rm -f isolinux.bin TRANS.TBL
/usr/lib/syslinux/pxelinux.0
ファイルを/pxe
ディレクトリにコピーします。cp -p /usr/lib/syslinux/pxelinux.0 .
- テキストエディタで
pxelinux.cfg/default
ファイルを開いて PXE ブートに必要なブートパラメータやターゲットをカスタマイズします。
手順9.3 USB ブートメディア
警告
root としてこれらのコマンドを実行する際には (最も重要な部分で必要とされます)、極めて慎重に行ってください。これらのコマンドは、デバイスファイルにアクセスするため、システムが回復不可能なダメージを受ける可能性があります。以下の例では、マウントに
/dev/loop0
を使用しています。losetup -f
のコマンドを使用すると、どれが正しいデバイスかを確認することができます。
- ブートイメージ用の作業ディレクトリを作成します。
mkdir -p temp usb/extlinux
- ブートイメージを
temp
ディレクトリにマウントします。mount -o loop boot.iso temp
- USB メディアブートデバイスに必要なファイルを上記で作成したディレクトリにコピーします。
cp -aP temp/isolinux/* usb/extlinux/
temp
ディレクトリをアンマウントし、cd
ディレクトリのパーミッションをユーザーに対して読み取りと書き込みに変更します。umount temp chmod -R u+rw usb
/usb
ディレクトリに移動します。cd ./usb
/usr/lib/syslinux/menu.c32
ファイルをextlinux/
ディレクトリにコピーします。cp -p /usr/lib/syslinux/menu.c32 extlinux/
extlinux/isolinux.cfg
ファイルをextlinux/extlinux.conf
に移動します。mv extlinux/isolinux.cfg extlinux/extlinux.conf
- 一時ファイルを削除します。
rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
custom-boot.img
ファイルを変換して、コピーします。dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
- ループバックデバイスをマウントするための正しい場所を確認します。
losetup -f /dev/loop0
ブートイメージを使用して、ループバックデバイスを設定します。losetup /dev/loop0 ./custom-boot.img
fdisk
ユーティリティを開きます。fdisk /dev/loop0
デバイス上にブート可能なプライマリパーティションをひとつ作成します。 次のキーの組み合わせを押すと作成することができます。 n p 1 Enter Enter a 1 p w- マスターブートレコード (MBR) をループバックデバイスにコピーします。
dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
- ループバックデバイスにパーティションマップを追加します。
kpartx -av /dev/loop0
- ファイルシステムを作成します。
mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
- デバイスをマウントします。
mount /dev/mapper/loop0p1 temp
- 一時的なファイル群を削除します。
rm -rf temp/lost+found
extlinux/
ディレクトリを一時ディレクトリにコピーします。cp -a extlinux/* temp/
- ブートローダを一時ディレクトリにインストールします。
extlinux temp
- 一時ディレクトリをアンマウントします。
umount temp
- ループバックデバイス上のパーティションマップを削除します。
kpartx -dv /dev/loop0
- ループバックデバイスを削除します。
losetup -d /dev/loop0
ファイルシステムの変更を同期します。sync
- テキストエディタで
extlinux.conf
ファイルを開いて USB ブートに必要なブートパラメータとターゲットをカスタマイズします。 - イメージを USB デバイスに移動したら手順は完了です。 デバイスを挿入して、
dmesg
のコマンドを実行しマウントの場所を確認します。 この例では/dev/sdb
になります。USB デバイスをアンマウントします。umount /dev/sdb
イメージを USB デバイスにコピーします。dd if=./custom-boot.img of=/dev/sdb