I want to automatically partition all of my workstations in the same way:First partition is a bootable 1GB ext4 /boot partitionSecond partition is a 2GB swap partitionThird partition is an ext4 / partition that takes up whatever is leftAll partitions should be formattedI think adding this to my preseed.cfg will accomplish what I want:d-i partman-auto/workstation_recipe string \    root :: \        1024 1023 1024 ext4 \            $primary{ } $bootable{ } \            method{ format } format{ } \            use_filesystem{ } filesystem{ ext4 } \            mountpoint{ /boot } \        . \        2048 2047 2048 linux-swap \            $primary{ } \            method{ swap } format{ } \        . \        17408 100000000000 -1 ext4 \            $primary{ } \            method{ format } format{ } \            use_filesystem{ } filesystem{ ext4 } \            mountpoint{ / } \        .This is based on this blog. Will this do what I want, and is there anything else I need to add to my preseed.cfg to make it accept these instructions without user intervention? I have never used partman recipes before.
Using d-i partman recipe strings?
partition;system installation;debian installer;preseed;partition table
I figured this out after spending days scouring the internet for any shred of information about partman - it is not very well-documented at all. Here's the config I used:# This automatically creates a standard unencrypted partitioning scheme.d-i partman-auto/disk string /dev/sdad-i partman-auto/method string regulard-i partman-lvm/device_remove_lvm boolean trued-i partman-md/device_remove_md boolean trued-i partman-lvm/confirm boolean trued-i partman-lvm/confirm_nooverwrite boolean trued-i partman-auto/choose_recipe select unencrypted-installd-i partman-auto/expert_recipe string \        unencrypted-install :: \                1024 1024 1024 ext4 \                        $primary{ } $bootable{ } \                        method{ format } format{ } \                        use_filesystem{ } filesystem{ ext4 } \                        mountpoint{ /boot } \                . \                2048 2048 2048 linux-swap \                        $primary{ } \                        method{ swap } format{ } \                . \                17408 100000000000 -1 ext4 \                        $primary{ } \                        method{ format } format{ } \                        use_filesystem{ } filesystem{ ext4 } \                        mountpoint{ / } \                .d-i partman-md/confirm boolean trued-i partman-partitioning/confirm_write_new_label boolean trued-i partman/choose_partition select finishd-i partman/confirm boolean trued-i partman/confirm_nooverwrite boolean trueJust drop that in your preseed and you should be good to go. Line by line:Use disk /dev/sdaDo a regular install (not encrypted or LVM)Remove any existing LVM without promptingRemove any existing RAID setup without promptingConfirm that this is what you wantConfirm againSelect the unencrypted-install recipe, which is specified belowThis is a single logical line that specifies the entire recipe, one partition at a time. It creates the partition table exactly as I specified in the question.Confirm againAllow partman to write new labelsFinish the processConfirm againConfirm againAnd there you go, works perfect.