Some clients won't boot from local disk with GPT partition table

ucc-2
ucc-1
ucs4
ucc

#1

Problem:

Some clients won’t boot from local disk after flashing (seen on thin and fat clients). In some cases this is caused by the BIOS/UEFI firmware which is not capable of booting from GPT partitions.

Clients known to have this issue (without any claim to completeness or correctness as BIOS/UEFI versions will change over time):

Manufacturer 	         Model
Lenovo 	                 ThinkCenter Edge
Hewlett-Packard 	 t520 Flexible Thin Client

Solution:

For UCC rollout an alternate partition script may be used that creates an MSDOS/MBR partition table instead of the default GPT partition table. An example script for thin clients is attached to this article, it can easily be adapted to be used with fat clients as well (please see the comments inside of the script).

Starting with UCC 2 it is possible to define the custom partition script as additional boot option in the UMC, please see the UCC manual for details:Custom partition scripts / Configuring an encrypted disk

For UCC 1 environments the script must be placed in the initramfs used during the installation phase. Assuming you have placed the script attached to this article in “/var/lib/univention-client-boot/partition-scripts” and you are using a initrd file called “ucc-1.0-rev5-thinclient-image.img.initrd” you may use the following commands to place the custom partition script into the initrd:

initrd="ucc-1.0-rev5-thinclient-image.img.initrd"
spec="$(basename "$initrd" .initrd).spec"
mkdir -p /var/lib/univention-client-boot/initrd
cd /var/lib/univention-client-boot/initrd
cp ../${initrd} ../${initrd}.BACKUP
mv ../${initrd} ../${initrd}.gz
gunzip -c ../${initrd}.gz | cpio -id
rm ../${initrd}.gz
cp /var/lib/univention-client-boot/partition-scripts/custom_partition.example.msdos sbin/custom_partition
chmod +x sbin/custom_partition
find . | cpio --create --format='newc' >../${initrd}
gzip ../${initrd}
mv ../${initrd}.gz ../${initrd}
cd ../
sed -i "s/hash-initrd:.*/hash-initrd: $(sha256sum $initrd | cut -d ' ' -f 1)/" $spec
rm -rf /var/lib/univention-client-boot/initrd

custom_partition.example.msdos (3.8 KB)