1

I've been trying to automate a Debian install on bare metal with preseed, but I'm stumbling on not being able to partition the filesystem correctly.

What I want:

EFI Boot Swap Encrypted FDE with a root partition and a /var partition. Both on ext4

What I'm getting:

A partitioning error during install saying: this probably happened because there are too many (primary) partitions in the partition table

How am I trying

# The disk to partition
d-i partman-auto/disk string /dev/nvme0n1

# LVM with LUKS
d-i partman-auto/method string crypto
d-i partman-crypto/passphrase string inscure
d-i partman-crypto/passphrase-again string insecure
d-i partman-crypto/weak_passphrase boolean true
d-i partman-crypto/confirm boolean true
d-i partman-auto-crypto/erase_disks boolean false
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string crypt
d-i partman-auto/choose_recipe select root-crypto
d-i partman-auto/expert_recipe string \
      root-crypto :: \
              538 538 1075 free \
#                    $primary{ } \
                    $iflabel{ gpt } \
                    $reusemethod{ } \
                    method{ efi } format{ } \
              . \
              256 512 512 ext2 \
#                    $primary{ } \
                    $defaultignore{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext2 } \
                    mountpoint{ /boot } \
              . \
              8192 16384 16386 linux-swap \
                    $lvmok{ } \
                    in_vg { crypt } \
                    lv_name{ swap } \
                    method{ swap } format{ } \
              . \
              16384 16385 32768 ext4 \
                    $lvmok{ } lv_name{ root } \
                    in_vg { crypt } \
#                    $primary{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext4 } \
                    mountpoint{ /var } \
              . \
              32768 65536 131072 ext4 \
                    $lvmok{ } lv_name{ root } \
                    in_vg { crypt } \
#                    $primary{ } $bootable{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext4 } \
                    mountpoint{ / } \
              . \

# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Force UEFI booting ('BIOS compatibility' will be lost). Default: false.
d-i partman-efi/non_efi_system boolean false
d-i partman-partitioning/choose_label select gpt
d-i partman-partitioning/default_label string gpt

I'm currently testing with a USB stick. Once I have a functioning preseed I'll move to network PXE.

Thanks for your help in advance.

1 Answer 1

0

Well, just changed the mapper name on var and it's all good now. For reference:

# The disk to partition
d-i partman-auto/disk string /dev/nvme0n1

# LVM with LUKS
d-i partman-auto/method string crypto
d-i partman-crypto/passphrase string inscure
d-i partman-crypto/passphrase-again string insecure
d-i partman-crypto/weak_passphrase boolean true
d-i partman-crypto/confirm boolean true
d-i partman-auto-crypto/erase_disks boolean false
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string crypt
d-i partman-auto/choose_recipe select root-crypto
d-i partman-auto/expert_recipe string \
      root-crypto :: \
              538 538 1075 free \
                    $primary{ } \
                    $iflabel{ gpt } \
                    $reusemethod{ } \
                    method{ efi } format{ } \
              . \
              256 512 512 ext2 \
                    $primary{ } \
                    $defaultignore{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext2 } \
                    mountpoint{ /boot } \
              . \
              8192 16384 16386 linux-swap \
                    $lvmok{ } \
                    in_vg { crypt } \
                    lv_name{ swap } \
                    method{ swap } format{ } \
              . \
              16384 16385 32768 ext4 \
                    $lvmok{ } lv_name{ var } \
                    in_vg { crypt } \
                    $primary{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext4 } \
                    mountpoint{ /var } \
              . \
              32768 65536 131072 ext4 \
                    $lvmok{ } lv_name{ root } \
                    in_vg { crypt } \
                    $primary{ } $bootable{ } \
                    method{ format } format{ } \
                    use_filesystem{ } filesystem{ ext4 } \
                    mountpoint{ / } \
              . \

# This makes partman automatically partition without confirmation, provided
# that you told it what to do using one of the methods above.
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true

# Force UEFI booting ('BIOS compatibility' will be lost). Default: false.
d-i partman-efi/non_efi_system boolean false
d-i partman-partitioning/choose_label select gpt
d-i partman-partitioning/default_label string gpt

Specifically changed to

$lvmok{ } lv_name{ var }

from

$lvmok{ } lv_name{ root }

As / already has root crytpo mapper name

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.