SystemRescueCd-1.0.0 comes with the support of the GPT disklabels (Guid Partition Table). The GPT disklabel is the new generation disklabel that aims to replace the very old msdos disklabel created with the first PCs. The GPT table is the default system on computer with EFI bios such as macintel and on itanium. Anyway you can use the GPT table on your disks on standards PCs (x86 and x86-64).

One limitation of the msdos disklabel is that is supports only 4 primary partitions (sda1 to sda4). The logical volumes (sda5, sda6, …) are just a workaround to have more than 4 partitions on an harddisk since it’s implemented on a linked listed on your disk (if a link is broke, you can lose all the other logical volumes). The msdos disklabels is not able to support disks larger that 2 Tera-bytes (2048 GB). It’s a real issue on servers with a large storage capacity.

The GPT table supports very large disks beyond 2 TB, and the partitions table is not limited to four primary partitions anymore. Of course you can also use GPT on small hard disks.

To use GPT with linux you need:

  • A linux kernel with the GPT support (option CONFIG_EFI_PARTITION set to yes)
  • A boot loader that supports GPT (grub-0.97 needs a patch)
  • Disk tools that supports GPT (GNU-Parted and GParted support it)

The GPT support was already turned on in the kernel, but now SystemRescueCd comes with a patched grub-0.97, so that you can create a new disklabel, create the partitions, copy a linux system, and reinstall the grub boot loader. So you can use the grub files provided on SystemRescueCd in the /lib/grub directory.

If the installation program of your favorite linux distribution don’t let you choose GPT as a disklabel, you can install this distribution somewhere else, copy all the files using tar/gzip and reinstall the grub boot-loader by hand.

Here is how to install the patched grub-0.97 for GPT using SystemRescueCd:

  • boot on SystemRescueCd-1.0.0-rc1 or more recent
  • type mkdir /mnt/boot
  • mount your boot partition (or the / partition of boot is not on a dedicated partition) on /mnt/boot
  • copy your kernel to /mnt/boot/vmlinuz-xxxx
  • mkdir -p /mnt/boot/grub
  • cp /lib/grub/i386-pc/* /mnt/boot/grub/
  • edit /mnt/boot/grub/grub.conf
  • ln -s grub.conf /mnt/boot/grub/menu.lst
  • umount /mnt/boot
  • run grub from the shell
  • use the grub root and setup commands to reinstall it:
    • root (hd0,0) or the grub name of the partition with the grub files (usually /boot)
    • setup (hd0) or (hd1) to install the boot loader on the second hard disk

Here is a screenshot of GParted with a small GPT hard disk with 6 partitions:

GParted with a GPT disklabel