| Submitter | Darren Hart |
|---|---|
| Date | March 19, 2013, 10:15 p.m. |
| Message ID | <4937a2369946171db2f84833e997702f820d37bc.1363731212.git.dvhart@linux.intel.com> |
| Download | mbox | patch |
| Permalink | /patch/46515/ |
| State | Accepted |
| Commit | 049ea1e0a6a1017a5020de38bd7ce93515bd62f4 |
| Headers | show |
Comments
Op 19 mrt. 2013, om 23:15 heeft Darren Hart <dvhart@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. regards, Koen > > Signed-off-by: Darren Hart <dvhart@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@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
On 03/20/2013 12:49 AM, Koen Kooi wrote: > > Op 19 mrt. 2013, om 23:15 heeft Darren Hart <dvhart@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@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@lists.openembedded.org >> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core >
Patch
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
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. Signed-off-by: Darren Hart <dvhart@linux.intel.com> --- scripts/contrib/mkefidisk.sh | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-)