I'm using the following partman
settings for automated installs of VMs for some years now:
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
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/alignment string "optimal"
d-i partman-auto/expert_recipe string \
boot-root :: \
64 512 300% linux-swap \
$primary{ } \
method{ swap } format{ } \
. \
500 10000 1000000000 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman/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
This creates a small swap partition at the beginning and uses the rest of the disk for the root partition. This works well and allows easy partition extension when I need to increase the size of the virtual disk.
Now I'm trying to adapt this recipe to install a number of identical bare metal servers. To do that I just switched the partitions and set the sizes to more reasonable values for a machine with 256GB RAM and 460GB system disk (SSDs in a hardware RAID1, but that shouldn't matter):
boot-root :: \
32768 65536 1000000000 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
. \
16384 16384 65536 linux-swap \
$primary{ } \
method{ swap } format{ } \
.
The rest of the partman*
directives are identical.
As far as I understand the documentation (and additional posts like this) this should create a large root partition that spans nearly the entire disk, with a swap partition between 16 and 64 GB at the end.
Well, it doesn't. It creates a 450MB partition, followed by a 460GB swap partition.
When I install the same machine with the preseed for VMs, the partitions are created properly as defined in the preseed file:
So, what am I doing wrong with the recipe for the bare metal machine?
If it matters, the install iso is based on the Ubuntu 16.04.5 server iso.
Output of fdisk /dev/sda
and parted /dev/sda print
:
Some more variants I tried:
# this belongs to tha last block, as suggested by @Peter
#d-i partman-basicfilesystems/choose_label string gpt
#d-i partman-basicfilesystems/default_label string gpt
#d-i partman-partitioning/choose_label string gpt
#d-i partman-partitioning/default_label string gpt
#d-i partman/choose_label string gpt
#d-i partman/default_label string gpt
d-i partman-auto/expert_recipe string \
boot-root :: \
##########################
65536 1 -1 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
. \
65536 65536 65536 linux-swap \
$primary{ } \
method{ swap } format{ } \
.
##########################
# 1 1 -1 ext4 \
# $primary{ } $bootable{ } \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext4 } \
# mountpoint{ / } \
# . \
# 65536 65536 65536 linux-swap \
# $primary{ } \
# method{ swap } format{ } \
# .
##########################
# 32768 50 5242880 ext4 \
# $primary{ } $bootable{ } \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext4 } \
# mountpoint{ / } \
# . \
# 16384 100 65536 linux-swap \
# $primary{ } \
# method{ swap } format{ } \
# .
##########################
# use along with the annoted partman-* directives above
# 538 538 1075 free \
# $iflabel{ gpt } \
# $reusemethod{ } \
# method{ efi } \
# format{ } \
# . \
# 1 1 -1 ext4 \
# $primary{ } $bootable{ } \
# method{ format } format{ } \
# use_filesystem{ } filesystem{ ext4 } \
# mountpoint{ / } \
# . \
# 65536 65536 65536 linux-swap \
# $primary{ } \
# method{ swap } format { } \ .
# .
It doesn't make a difference, the resulting root partition always has only 453MB.
-1
? Please also add the output ofparted /dev/sda print
orfdisk -l /dev/sda
, not sure which tool is available during install.-1
as maximum value.