Creating a Boot Partition on RHEL or CentOS 6

HyTrust requires a separate boot partition in which the HyTrust DataControl Policy Agent can be installed. How you do this depends on the version of Linux running on the server. For your convenience, the following section explains how to set up a separate boot partition on CentOS 6.

Important: If /boot is already using a separate partition, do not follow this process. Instead, you should encrypt the existing /boot partition as described in Encrypting Linux System Devices.

In the following example, the current Linux is installed on device /dev/sda and the GRUB stage1 bootloader is also installed on /dev/sda. This is a typical Linux installation. In addition, we have a new device named /dev/sdb to hold the new boot partition, and we will create a partition on it using sfdisk.

Note: You can also use the fdisk or parted utilities to create an MBR partition on the disk /dev/sdb. The partition should be a DOS-compatible LINUX-type partition starting at sector 2048. The partition can cover the entire disk.

# sfdisk -f -uS -D /dev/sdb << EOF
2048,,83,*
EOF

# partprobe

Find out the space required by the /boot subtree:

# du -sh /boot

As a rule of thumb, the space provided for the new boot partition should be twice the space used by /boot plus 100MB. Format the new partition with ext4 (ext3 is also fine), as follows:

# mkfs.ext4 /dev/sdb1

Copy the files from the /boot directory to the new boot partition:

# mkdir -p /tmp/sdb1/boot
# mount /dev/sdb1 /tmp/sdb1/boot
# cp -a /boot/* /tmp/sdb1/boot

Find out the UUID of the new boot partition:

# blkid /dev/sdb1
# umount /tmp/sdb1/boot

Add an entry to /etc/fstab to mount the new boot partition, as follows:

# UUID=<uuid> /boot ext4 rw 0 0

Mount the new /boot partition:

# mount /boot

Install GRUB with boot files on the new boot partition, while the GRUB stage1 is copied to the current boot device, as follows:

# grub-install --recheck /dev/sda

Note that GRUB is being installed on /dev/sda but the boot directory comes from /dev/sdb1. Update your GRUB configuration to take this change into account. Manually edit /boot/grub/menu.lst, so that root points to the GRUB device equivalent of /dev/sdb Usually, it is hd1. See the mapping in /boot/grub/device.map: kernel must assume that vmlinuz is in / and not /boot, and initrd must assume that vmlinuz is in / and not /boot.

For example:

default=0
timeout=5 splashimage=(hd1,0)/grub/splash.xpm.gz hiddenmenu
title CentOS (2.6.32-358.el6.x86_64)
root (hd1,0)
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro \
  root=UUID=98e62ddf-69ec-4a82-b143-b87291d4a9b8 \
  rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 r initrd \
  /initramfs-2.6.32-358.el6.x86_64.img

Please refer to the section Using a separate partition for /boot in http://wiki.centos.org/HowTos/GrubInstallation.

Your system is ready now, so reboot and confirm that all is well.

What to Do Next 

Verify the configuration as described in Verifying the Current VM Configuration and then encrypt the boot disk as described in Encrypting Linux System Devices.