Thursday, 1 September 2011

Linux Create A Bootable USB Pen


How do I create a bootable USB pen drive to start my CentOS / Fedora Linux? How do I create a bootable USB flash pen for installation of Linux, and for creation of rescue and other special-purpose boot disks using command line options?                                                     

You need to format your USP pen device as Win FAT32. Once formatted type the following commands to make it bootable.


USB Pen Device Name : /dev/sdb1
Our Device Names

  1. DVD Mount : /media/cdrom0
  2. USB Mount Point : /media/usb
  3. USB File System : Win FAT32
  4. ISO or DVD Image : Fedora / CentOS / RHEL
WARNING! These examples may crash your computer or result in data loss if not executed properly. You must understand device names, file systems and required to use fdisk partition table manipulator for Linux. This howto intended to simplify first-time installation of Linux, and for creation of rescue and other special-purpose boot disks.
To find information about your devices and current partitions run:
# dmesg | less
# dmesg | egrep -i 'cd|dvd'
fdisk -l

Use the first command to identify the USB device name.

Mount CD/DVD ISO or DVD ITSELF

Type the following command to mount Fedora 12 iso image:
# mount Fedora-12-x86_64-netinst.iso -o loop /media/cdrom0/
# DVD=/media/cdrom0
# ls -l $DVD

Sample outputs:
total 6
dr-xr-xr-x 3 root root 2048 2009-11-09 05:37 EFI
drwxr-sr-x 3 root  499 2048 2009-11-09 05:37 images
drwxr-sr-x 2 root  499 2048 2009-11-09 05:36 isolinux
You need to use files stored in isolinux directory to create a bootable usb pen.

Format Usb

Create the fdisk partition:
# fdisk /dev/sdb
You need to create only 1 partition. Next format the partition:
# USB=/media/usb
# mkdosfs /dev/sdb1

Finally mount the partition:
# mkdir -p /media/usb
# mount /dev/sdb1 /media/usb
# USB=/media/usb

Copy Required Files

Type the following commands:
# cp -av $DVD/isolinux/* $USB
# cd $USB
# rm isolinux.bin boot.cat TRANS.TBL
# mv isolinux.cfg syslinux.cfg

Also copy the installer's initial RAM disk $DVD/images/pxeboot/initrd.img (for CentOS / RHEL Linux use $DVD/RedHat/images/pxeboot/initrd.img file) CD/DVD onto the usb drive:
# cp -v $DVD/images/pxeboot/initrd.img $USB

Unmount the USB drive

# umount /dev/sdb1

Make the USB Bootable

Type the following command to make the USB drive bootable
# syslinux /dev/sdb1
# mount /dev/sdb1 $USB

syslinux is a boot loader for the Linux operating system which operates off an MS-DOS/Windows FAT filesystem.

Install Grub

Type the following command to install GRUB on the USB device:
# grub-install --root-directory=$USB /dev/sdb
Create grub.conf:
# cd $USB
# mkdir -p boot/grub

Edit the grub.conf file
default=0
timeout=5
root (hd1,0)
title Fedora Linux
kernel /vmlinuz
initrd /initrd.img
Finally, unmount the USB pen drive, enter:
# umount /dev/sdb1
Your USB pen is ready and should be bootable from the USB device. This can be used to install Fedora or CentOS or RHEL. You can also copy other required tools (such as sniffers or data recovery tools) on this pen. This is left as exercise for the reader.

Unetbootin Installer of Linux/BSD Distributions (GUI Tools)

If command line options are too complicated to follow. Try UNetbootin, which allows you to create bootable Live USB drives for a variety of Linux distributions from Windows or Linux, without requiring you to burn a CD. To install to a partition or USB drive type the following command:
$ sudo apt-get install unetbootin
Sample outputs:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  lsb-desktop m4 aggregate lsb pax lsb-graphics lsb-core ncurses-term lsb-cxx
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  unetbootin-translations
The following NEW packages will be installed:
  unetbootin unetbootin-translations
0 upgraded, 2 newly installed, 0 to remove and 9 not upgraded.
Need to get 428kB of archives.
After this operation, 1,843kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://archive.ubuntu.com karmic/universe unetbootin 356-1 [223kB]
Get:2 http://archive.ubuntu.com karmic/universe unetbootin-translations 356-1 [205kB]
Fetched 428kB in 2s (156kB/s)
Selecting previously deselected package unetbootin.
(Reading database ... 254825 files and directories currently installed.)
Unpacking unetbootin (from .../unetbootin_356-1_amd64.deb) ...
Selecting previously deselected package unetbootin-translations.
Unpacking unetbootin-translations (from .../unetbootin-translations_356-1_all.deb) ...
Processing triggers for desktop-file-utils ...
Processing triggers for man-db ...
Setting up unetbootin (356-1) ...
Setting up unetbootin-translations (356-1) ...
Type the following command to start unetbootin:
$ unetbootin
Fig.01: UNetbootin install Linux/BSD distributions to a partition or USB drive

No comments:

Post a Comment