--- zsys-setup.orig 2023-12-10 22:54:48.709098084 -0500 +++ zsys-setup 2023-12-11 21:32:35.928778859 -0500 @@ -60,7 +60,7 @@ Prepares a zsys compatible ZFS system. Commands: - layout Get layout to display before formatting to ubiquity. Give the chosen disk as argument + layout Get layout to display before formatting to ubiquity. Give the chosen disk as argument. Output to $PARTITION_LAYOUT init Initialize the pools and datasets finalize Finalize the installation after the system has been installed Options: @@ -173,6 +173,14 @@ fi done done + + # Destroy existing pools before removing partitions + if zpool list|grep -w bpool; then + zpool destroy bpool + fi + if zpool list|grep -w rpool; then + zpool destroy rpool + fi } get_layout() { @@ -221,9 +229,9 @@ # 3: bpool # 4: rpool partesp=1 - partswap=2 - partbpool=3 - partrpool=4 + partswap=4 + partbpool=2 + partrpool=3 # As partman forces now gpt for any installation, we consider that not having efivar equals gpt with BiosBoot (LP: #1796260) else @@ -246,10 +254,10 @@ disk="$1" partbase="$2" partesp="$3" - partbpool="$4" - partrpool="$5" - ss="$6" - partswap=$(( partbpool - 1 )) + partswap=$4 + partbpool="$5" + partrpool="$6" + ss="$7" partprefix="${disk}${partbase}" sfdisktmp="${ZSYSTMP}/sfdisk.cfg" @@ -261,7 +269,7 @@ # srcpath is the system partition on initial layout. srcpath=$(lsblk -ln -o PATH ${disk}|tail -1) partsrc=${srcpath##*${partprefix}} - size_percent=$(expr \( $(blockdev --getsize64 ${srcpath}) / 1024 / 1024 \) \* 5 / 100) + size_percent=$(expr \( $(blockdev --getsize64 ${disk}) / 1024 / 1024 \) \* 5 / 100) bpool_size=500 [ ${size_percent} -gt ${bpool_size} ] && bpool_size=${size_percent} [ ${bpool_size} -gt 2048 ] && bpool_size=2048 @@ -274,16 +282,20 @@ ${partprefix}${partesp} : start= ${start}, size= 512M, type=C12A7328-F81F-11D2-BA4B-00A0C93EC93B, bootable EOF else - sfdisk --delete "${disk}" ${partsrc} + while [ $partsrc -gt 1 ]; do + zpool labelclear -f ${partprefix}${partsrc} || true + sfdisk --delete "${disk}" ${partsrc} + partsrc=$((partsrc-1)) + done fi cat >> "${sfdisktmp}" <