From 9cb8a80be0337900a3a3755c59a2b9655ef7ad6b Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Thu, 9 Jul 2026 18:31:42 +0000 Subject: [PATCH] armbian_rootenc_setup: new _create_fdisk_cmds() function --- scripts/armbian_rootenc_setup.sh | 40 +++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/scripts/armbian_rootenc_setup.sh b/scripts/armbian_rootenc_setup.sh index 4dff0a4..fea92c0 100755 --- a/scripts/armbian_rootenc_setup.sh +++ b/scripts/armbian_rootenc_setup.sh @@ -874,6 +874,26 @@ _print_config_vars() { if [ "$outfile" ]; then echo "$data" > $outfile; else echo "$data"; fi } +_create_fdisk_cmds() { + local boot_end=$((start_sector + boot_partition_sectors - 1)) + local root_start=$((boot_end + 1)) + case $partition_table_type in + 'gpt') + cmds="g\n" + cmds+="n\n1\n$start_sector\n$boot_end\n" + cmds+="t\n1\n$partition_type_uuid\n" + cmds+="n\n2\n$root_start\n\n" + cmds+="t\n2\n$partition_type_uuid\n" + ;; + 'dos') + cmds="o\n" + cmds+="n\np\n1\n$start_sector\n$boot_end\n" + cmds+="n\np\n2\n$root_start\n\n" + ;; + esac + echo "$cmds" +} + _create_boot_fs() { local fstype=$(lsblk --noheadings --list --output=FSTYPE "/dev/$BOOT_DEVNAME") [ "$fstype" == 'ext4' -a "$ROOTENC_REUSE_FS" ] || { @@ -883,23 +903,15 @@ _create_boot_fs() { } create_partitions() { - local p1_end p2_start cmds1 cmds2 bname rname fstype - p1_end=$((start_sector + boot_partition_sectors - 1)) - p2_start=$((p1_end + 1)) + local fdisk_cmds bname rname - case $partition_table_type in - 'gpt') - cmds1="g\nn\n1\n$start_sector\n$p1_end\nn\n2\n$p2_start\n\n" - cmds2="t\n1\n$partition_type_uuid\nt\n2\n$partition_type_uuid\n" - ;; - 'dos') - cmds1="o\nn\np\n1\n$start_sector\n$p1_end\nn\np\n2\n$p2_start\n\n" - cmds2="" - ;; - esac + # echo "$part_info" # DEBUG + fdisk_cmds="$(_create_fdisk_cmds)" + + _display_output 'fdisk commands' "$(echo -e $fdisk_cmds)" set +e; trap - ERR # fdisk exits with error if partition table cannot be re-read - echo -e "${cmds1}${cmds2}w\n" | fdisk "/dev/$SDCARD_DEVNAME" + echo -e "${fdisk_cmds}w\n" | fdisk "/dev/$SDCARD_DEVNAME" set -e; trap '_error_handler' ERR do_partprobe