Red Hat Training
A Red Hat training course is available for Red Hat Satellite
Chapter 9. Boot Devices
Automated installation (or kickstart) is an essential part of efficient system provisioning. This chapter describes how to prepare different types of boot media for use with kickstarting clients.
For more detailed information on using kickstart for provisioning, see the RHN Satellite Server Getting Started Guide.
The Red Hat Enterprise Linux CD boot image
boot.iso
is a required prerequisite for creating boot devices. Make sure that this is available somewhere on the system and take note of its location.
Procedure 9.1. CD Boot Media
Note
The backslash "
\
" is used below to represent a continuation of one line at the shell prompt.
- Create a working directory for the boot image:
mkdir -p temp cd/isolinux
- Mount the boot image to the
temp
directory:mount -o loop boot.iso temp
- Copy the required files for a CD Boot Media device to the previously created directory:
cp -aP temp/isolinux/* cd/isolinux/
- Unmount the
temp
directory and change the permissions on thecd
directory to be readable and writable to the user:umount temp chmod -R u+rw cd
- Change to the
./cd
directory:cd ./cd
- Copy the
/usr/lib/syslinux/menu.c32
file to the CD:cp -p /usr/lib/syslinux/menu.c32 isolinux
- Open the
isolinux/isolinux.cfg
file in your preferred text editor, and add the following line: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" .
- Customize any boot parameters and targets in
isolinux.cfg
as needed for CD booting. - Burn the details to the CD to complete the procedure.
Procedure 9.2. PXE Boot
- Create a working directory for the boot image:
mkdir -p temp pxe/pxelinux.cfg
- Mount the boot image to the
temp
directory:mount -o loop boot.iso temp
- Copy the required files for a PXE Boot device to the previously created directory:
cp -aP temp/isolinux/* pxe/
- Unmount the
temp
directory and change the permissions on thecd
directory to be readable and writable to the user:umount temp chmod -R u+rw pxe
- Change to the
/pxe
directory:cd ./pxe
- Copy the
/usr/lib/syslinux/menu.c32
file to the/pxe
directory:cp -p /usr/lib/syslinux/menu.c32 .
- Move the
isolinux.cfg
file topxelinux.cfg/default
:mv isolinux.cfg pxelinux.cfg/default
- Remove the temporary files:
rm -f isolinux.bin TRANS.TBL
- Copy the
/usr/lib/syslinux/pxelinux.0
file to the/pxe
directory:cp -p /usr/lib/syslinux/pxelinux.0 .
- Open the
pxelinux.cfg/default
file in your preferred text editor, and customize any boot parameters and targets as needed for PXE booting.
Procedure 9.3. USB Boot Media
Warning
Be extremely careful when carrying out these command as root (required for most critical parts). These commands access device files and using them incorrectly could irrecoverably damage your system. The example below uses
/dev/loop0
for mounting, make sure you use the correct device for your system. You can check which is the correct device using the losetup -f
command.
- Create a working directory for the boot image:
mkdir -p temp usb/extlinux
- Mount the boot image to the
temp
directory:mount -o loop boot.iso temp
- Copy the required files for a USB Media Boot device to the previously created directory:
cp -aP temp/isolinux/* usb/extlinux/
- Unmount the
temp
directory and change the permissions on thecd
directory to be readable and writable to the user:umount temp chmod -R u+rw usb
- Change to the
/usb
directory:cd ./usb
- Copy the
/usr/lib/syslinux/menu.c32
file to theextlinux/
directory:cp -p /usr/lib/syslinux/menu.c32 extlinux/
- Move the
extlinux/isolinux.cfg
file toextlinux/extlinux.conf
:mv extlinux/isolinux.cfg extlinux/extlinux.conf
- Remove the temporary files:
rm -f extlinux/isolinux.bin extlinux/TRANS.TBL
- Convert the
custom-boot.img
file and copy it:dd if=/dev/zero of=./custom-boot.img bs=1024 count=30000
- Discover the correct mounting location for the loopback device:
losetup -f /dev/loop0
Set up the loopback device with the boot image:losetup /dev/loop0 ./custom-boot.img
- Open the
fdisk
utility:fdisk /dev/loop0
Create one primary bootable partition on the device. This can be done by using the following key press combination: n p 1 Enter Enter a 1 p w - Copy the master boot record (MBR) to the loopback device:
dd if=/usr/lib/syslinux/mbr.bin of=/dev/loop0
- Add partition maps to the loopback device:
kpartx -av /dev/loop0
- Create the file system:
mkfs.ext2 -m 0 -L "Custom RHEL Boot" /dev/mapper/loop0p1
- Mount the device:
mount /dev/mapper/loop0p1 temp
- Delete temporary files:
rm -rf temp/lost+found
- Copy the
extlinux/
directory to a temporary location:cp -a extlinux/* temp/
- Install the bootloader in the temporary location:
extlinux temp
- Unmount the temporary location:
umount temp
- Delete the partition maps on the loopback device:
kpartx -dv /dev/loop0
- Delete the loopback device:
losetup -d /dev/loop0
Synchronize the file system changes:sync
- Open the
extlinux.conf
file in your preferred text editor, and customize any boot parameters and targets as needed for USB booting. - Transfer the image to a USB device to complete the procedure. Insert the device, and run the
dmesg
command to check the mounting location. In this example, it is/dev/sdb
.Unmount the USB device:umount /dev/sdb
Copy the image to the USB device:dd if=./custom-boot.img of=/dev/sdb