[OE-core] [PATCH 6/6] mkefidisk: Use msdos partition tables

Darren Hart dvhart at linux.intel.com
Wed Mar 20 16:48:46 UTC 2013



On 03/20/2013 12:49 AM, Koen Kooi wrote:
> 
> Op 19 mrt. 2013, om 23:15 heeft Darren Hart <dvhart at linux.intel.com> het volgende geschreven:
> 
>> While GPT works fine when writing to actual media, it cannot be reliably
>> used for distributing disk images as it requires the backup table to be
>> on the last block on the device, which of course varies from device to
>> device. Use MSDOS tables instead.
>>
>> Use mkfs to label the filesystems as msdos tables do not support
>> partition labeling.
> 
> I was wondering if it's possible to run parted in fixup mode
> manually. I did that on the target itself to fix the off-by-one
> error, so running it on the host should work as well.

I thought of that as well, but that doesn't help with the disk image
problem. I don't like the idea of shipping images that have to be fixed
on first boot without any clear motivation. For the purposes of these
images, I don't see any clear advantage of GPT.

--
Darren

> 
> regards,
> 
> Koen
> 
> 
>>
>> Signed-off-by: Darren Hart <dvhart at linux.intel.com>
>> ---
>> scripts/contrib/mkefidisk.sh | 16 +++++++---------
>> 1 file changed, 7 insertions(+), 9 deletions(-)
>>
>> diff --git a/scripts/contrib/mkefidisk.sh b/scripts/contrib/mkefidisk.sh
>> index 6ff12af..acadd49 100755
>> --- a/scripts/contrib/mkefidisk.sh
>> +++ b/scripts/contrib/mkefidisk.sh
>> @@ -156,20 +156,18 @@ echo "*****************"
>> echo "Deleting partition table on $DEVICE ..."
>> dd if=/dev/zero of=$DEVICE bs=512 count=2
>>
>> -echo "Creating new partition table (GPT) on $DEVICE ..."
>> -parted $DEVICE mklabel gpt
>> +# Use MSDOS by default as GPT cannot be reliably distributed in disk image form
>> +# as it requires the backup table to be on the last block of the device, which
>> +# of course varies from device to device.
>> +echo "Creating new partition table (MSDOS) on $DEVICE ..."
>> +parted $DEVICE mklabel msdos
>>
>> echo "Creating boot partition on $BOOTFS"
>> parted $DEVICE mkpart primary 0% $BOOT_SIZE
>>
>> -# GPT doesn't have a real boot flag, parted will change the GUID to EFI System
>> -# Partition, which is what we want
>> echo "Enabling boot flag on $BOOTFS"
>> parted $DEVICE set 1 boot on
>>
>> -echo "Labeling $BOOTFS as EFI System Partition"
>> -parted $DEVICE name 1 "EFI System Partition"
>> -
>> echo "Creating ROOTFS partition on $ROOTFS"
>> parted $DEVICE mkpart primary $ROOTFS_START $ROOTFS_END
>>
>> @@ -184,10 +182,10 @@ parted $DEVICE print
>> #
>> echo ""
>> echo "Formatting $BOOTFS as vfat..."
>> -mkfs.vfat $BOOTFS
>> +mkfs.vfat $BOOTFS -n "efi"
>>
>> echo "Formatting $ROOTFS as ext3..."
>> -mkfs.ext3 $ROOTFS
>> +mkfs.ext3 $ROOTFS -L "root"
>>
>> echo "Formatting swap partition...($SWAP)"
>> mkswap $SWAP
>> -- 
>> 1.8.1.2
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
> 

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Technical Lead - Linux Kernel




More information about the Openembedded-core mailing list