diff --git a/backends/mint/backend.sh b/backends/mint/backend.sh index 7a88076..d24728c 100644 --- a/backends/mint/backend.sh +++ b/backends/mint/backend.sh @@ -156,6 +156,7 @@ _tuxflotte_render_partman_recipe() { local size_mb local esp_mb=0 local bios_grub_mb=0 + local root_extra_flags scheme="$(jq --raw-output '.scheme // "single"' <<<"${partitioning_json}")" @@ -179,6 +180,25 @@ _tuxflotte_render_partman_recipe() { esp_mb=512 disk_size_mb="$(( disk_size_mb - esp_mb ))" recipe_body="${esp_mb} ${esp_mb} ${esp_mb} fat32 \$reusemethod{ } \$primary{ } method{ efi } format{ } . " + # Root NICHT zusaetzlich $bootable{ } markieren wie im BIOS-Zweig + # unten (real beim Testen entdeckt, 29.08.2026): auf UEFI traegt + # bereits die ESP-Stanza oben die eigentliche Boot-Kennzeichnung + # (method{ efi }) - das im Original-Rezept + # /usr/lib/partman/recipes-amd64-efi/30atomic (Quelle der + # ESP-Stanza) uebernommene Wurzel-Partitionsschema markiert die + # Root-Partition dort ebenfalls NICHT als bootable. Ein + # zusaetzliches $bootable{ } auf der Root-Partition scheint partman + # in einen Zustand zu bringen, den es nach dem Commit staendig neu + # bewerten will: der Installer klickte "Jetzt installieren" + # nachweislich korrekt (Debug-Log erreichte sogar + # "grub-installer/bootdev seen"), sprang aber danach immer wieder + # zurueck auf dieselbe Partitionierungsseite (ubi-partman.py: + # rebuild_cache(), ausgeloest durch die wiederholt gestellte + # Debconf-Frage "ubiquity/partman-rebuild-cache" aus + # /lib/partman/update.d/99signal_ubiquity). Noch nicht abschliessend + # verifiziert, ob dies die alleinige Ursache ist - siehe + # ADR-0023-Nachtrag. + root_extra_flags='$primary{ }' else # Analoges Pendant fuer reinen BIOS-Betrieb: partman legt den # Datentraeger auch ohne EFI offenbar als GPT an (real beim Testen @@ -197,6 +217,10 @@ _tuxflotte_render_partman_recipe() { bios_grub_mb=1 disk_size_mb="$(( disk_size_mb - bios_grub_mb ))" recipe_body="${bios_grub_mb} ${bios_grub_mb} ${bios_grub_mb} free \$iflabel{ gpt } \$reusemethod{ } method{ biosgrub } . " + # Im BIOS-Zweig (anders als EFI oben) bleibt $bootable{ } auf der + # Root-Partition noetig - hier gibt es keine ESP, die diese Rolle + # uebernimmt. + root_extra_flags='$primary{ } $bootable{ }' fi case "${scheme}" in @@ -205,7 +229,7 @@ _tuxflotte_render_partman_recipe() { [[ "${root_mb}" -ge 2048 ]] || { backend_fatal "Zieldatenträger ist zu klein (${disk_size_mb} MB)."; return 1; } - recipe_body="${recipe_body}$(_tuxflotte_partman_stanza "${root_mb}" "${root_filesystem}" "/" '$primary{ } $bootable{ }')" + recipe_body="${recipe_body}$(_tuxflotte_partman_stanza "${root_mb}" "${root_filesystem}" "/" "${root_extra_flags}")" ;; custom) extra_count="$(jq '.extra_partitions | length' <<<"${partitioning_json}")" @@ -236,7 +260,7 @@ _tuxflotte_render_partman_recipe() { [[ "${root_mb}" -ge 2048 ]] || { backend_fatal "Root-Partition wäre bei dieser Aufteilung zu klein."; return 1; } - recipe_body="${recipe_body}$(_tuxflotte_partman_stanza "${root_mb}" "${root_filesystem}" "/" '$primary{ } $bootable{ }')" + recipe_body="${recipe_body}$(_tuxflotte_partman_stanza "${root_mb}" "${root_filesystem}" "/" "${root_extra_flags}")" for ((i = 0; i < extra_count; i++)); do mountpoint="$(jq --raw-output ".extra_partitions[${i}].mountpoint" <<<"${partitioning_json}")"