Creating bootable USB disk for RHEL

The following steps configure a USB pen drive as a boot medium to start the installation of Red Hat Enterprise Linux.

  • Attach the USB pen drive to a system which is already running Red Hat Enterprise Linux.
dmesg
  • From the dmesg output,  identify the device name under which the drive is known to the system. Sample messages for a 1 Gb flash disk being recognized as /dev/sdb:
Initializing USB Mass Storage driver…
scsi2 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
Vendor: USB 2.0   Model: Flash Disk        Rev: 5.00
Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sdb: 2043904 512-byte hdwr sectors (1046 MB)
sdb: Write Protect is off
sdb: Mode Sense: 0b 00 00 08
sdb: assuming drive cache: write through
SCSI device sdb: 2043904 512-byte hdwr sectors (1046 MB)
sdb: Write Protect is off
sdb: Mode Sense: 0b 00 00 08
sdb: assuming drive cache: write through
sdb: sdb1
sd 2:0:0:0: Attached scsi removable disk sdb
sd 2:0:0:0: Attached scsi generic sg1 type 0
usb-storage: device scan complete
 

  • Note: For the remainder of this article, we will assume this device name to be /dev/sdb. Make sure you adjust the device references in the following steps as per your local situation.
  • At this point, the flash drive is likely to have been automatically mounted by the system. Make sure the flash drive is unmounted. E.g. in nautilus, by right-clicking on the icon for the drive and selecting Unmount Volume.
    • Use fdisk to partition the flash drive as follows:

      • There is a  single partition.
      • This partition is numbered as 1.
      • Its partition type is set to ‘b‘ (W95 FAT32).
      • It is tagged as bootable.


    • Format the partition created in the previous step as FAT:
mkdosfs /dev/sdb1
    • Mount the partition:
mount /dev/sdb1 /mnt
    • Copy the contents of /RedHat/isolinux/ from the first installation CD/DVD onto the flash drive, i.e. to /mnt.
      Note: the files isolinux.bin, boot.cat and TRANS.TBL are not needed and can thus be removed or deleted.
    • Rename the configuration file:
cd /mnt/; mv isolinux.cfg syslinux.cfg
    • Copy the installer’s initial RAM disk /RedHat/images/pxeboot/initrd.img from the first installation CD/DVD onto the flash drive, i.e. to /mnt.
    • Optional step: To configure any boot settings, edit the syslinux.cfg on the USB flash drive. For example to configure the installation to use a kickstart file shared over NFS, specify the following:
linux ks=nfs:://ks.cfg
    • Unmount the flash drive:
umount /dev/sdb1
    • Make the USB flash drive bootable. The flash drive must be unmounted for this to work properly.
syslinux /dev/sdb1
    • Mount the flash drive again:
mount /dev/sdb1 /mnt
    • Install GRUB on the USB flash drive:
grub-install –root-directory=/mnt /dev/sdb
  • Verify that the USB flash drive has a /boot/grub directory. If it does not, create the directory manually.
    cd /mnt
    mkdir -p boot/grub
  • Create the grub.conf file. Below is a sample grub.conf:
    default=0
    timeout=5
    root (hd1,0)
    title Red Hat Enterprise Linux installer
    kernel /vmlinuz
    initrd /initrd.img
  • Copy or confirm the created grub.conf file is on the /boot/grub/ directory of the USB flash drive.
default=0
timeout=5
root (hd1,0)
title Fedora Linux
kernel /vmlinuz
initrd /initrd.img
  • Unmount USB Stick
umount /dev/sdb1
  • At this point, the USB disk should be bootable.
  • Attach the USB disk to the system you wish to install Red Hat Enterprise Linux on.
  • Boot from the USB disk. Refer to the hardware vendor’s BIOS documentation for details on changing the order in which devices are checked for booting from.
  • Once you are booted in the Red Hat Enterprise Linux installer, continue with your  network installation of choice.


One Response to Creating bootable USB disk for RHEL

  1. Robert McKinsey says:

    Hi Sushant,

    Thanks for the great tutorial but USB bootable disk requires RHEL or other *nix versions to be installed first to install their respective grub boot loaders.

    Is it possible to install a universal boot loader which can support all *nix OS??

Leave a Reply

Your email address will not be published. Required fields are marked *