public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
* [PATCH] expand-on-first-boot: Allow expanding extended MBR partitions
@ 2020-06-10  8:02 Harald Seiler
  2020-06-10 12:50 ` Jan Kiszka
  0 siblings, 1 reply; 5+ messages in thread
From: Harald Seiler @ 2020-06-10  8:02 UTC (permalink / raw)
  To: isar-users; +Cc: Harald Seiler, Jan Kiszka

Extended partitions cannot be resized like primary partitions because
both the last logical partition and the EBR primary partition containing
it need to be expanded.

To do this, add a second SED directive for removing the parition size of
the EBR partition.  This part is detected by having either type `f` (Win
95 Ext') or `5` (Extended).

Signed-off-by: Harald Seiler <hws@denx.de>
---

Notes:
    I have tested this in an ongoing project and it seems to work
    reliably.  For some reason WIC creates an extended partition of
    type `f` but this can't be kept because while fdisk can read it,
    it is only happy about writing the EBR with type `5`.
    
    While probably a very uncommon layout, I am not sure how this
    would behave when the EBR is not the last partition, but
    somewhere in between.  I am a bit worried it would silently wreak
    havoc ...

 .../expand-on-first-boot/files/expand-last-partition.sh      | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
index 08c69db30529..ddf1a089e87d 100755
--- a/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
+++ b/meta/recipes-support/expand-on-first-boot/files/expand-last-partition.sh
@@ -17,12 +17,13 @@ if [ "${ROOT_DEV}" = "${BOOT_DEV}" ]; then
 	exit 1
 fi
 
-LAST_PART="$(sfdisk -d ${BOOT_DEV} 2>/dev/null | tail -1 | cut -d ' ' -f 1)"
+LAST_PART="$(sfdisk -d "${BOOT_DEV}" 2>/dev/null | tail -1 | cut -d ' ' -f 1)"
 
 # Remove all hints to the current medium (last-lba) and last partition size,
 # then ask sfdisk to recreate the partitioning
 sfdisk -d "${BOOT_DEV}" 2>/dev/null | grep -v last-lba | \
-	sed 's|\('"${LAST_PART}"' .*, \)size=[^,]*, |\1|' | \
+	sed 's|^\(.*, \)size=[^,]*, type=[f5]$|\1type=5|' | \
+	sed 's|^\('"${LAST_PART}"' .*, \)size=[^,]*, |\1|' | \
 	sfdisk --force "${BOOT_DEV}"
 
 # Inform the kernel about the partitioning change
-- 
2.25.4


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-12 18:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-10  8:02 [PATCH] expand-on-first-boot: Allow expanding extended MBR partitions Harald Seiler
2020-06-10 12:50 ` Jan Kiszka
2020-06-10 13:03   ` Baurzhan Ismagulov
2020-06-12  9:53   ` Harald Seiler
2020-06-12 18:42     ` Jan Kiszka

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox