Estou tentando fazer uma instalação ISO personalizada para Ubuntu com a opção de pré-configuração do Cubic e Ubiquity. Eu tenho arrancado meus cabelos tentando fazer com que ele particione automaticamente todo o disco como um LVM criptografado, como o instalador da GUI permite. Eu tentei quase uma dúzia de exemplos de configurações de pré-configuração que encontrei on-line, todas as quais terminam com erro do instalador durante o particionamento porque:
No modifications can be made to the device: Encrypted Volume (sda1p2_crypt) for the following reasons: In use by LVM module group crypt
ou qualquer que seja o nome da receita para o grupo LVM. Presumo que essas receitas funcionaram para versões anteriores do Ubuntu.
A princípio, pensei que esse erro era apenas porque o disco tinha algum particionamento pré-existente com LVMs criptografados, então executei um sgdisk -Z /dev/sda
, reiniciei e tentei novamente, mas os problemas persistiram.
Posso, é claro, particionar manualmente o disco com a GUI do instalador.
Aqui está uma seção de amostra da pré-configuração:
d-i partman-auto/method string crypto
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-lvm/confirm 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-encrypted
d-i partman-auto/expert_recipe string \
root-encrypted :: \
500 500 500 ext4 \
$primary{ } $bootable{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ /boot } \
. \
2000 2000 2000 linux-swap \
$lvmok{ } lv_name{ swap } \
in_vg { crypt } \
$primary{ } \
method{ swap } format{ } \
. \
500 10000 1000000000 ext4 \
$lvmok{ } lv_name{ rootpart } \
in_vg { crypt } \
$primary{ } \
method{ format } format{ } \
use_filesystem{ } filesystem{ ext4 } \
mountpoint{ / } \
.
d-i partman-md/device_remove_md boolean true
d-i partman-basicfilesystems/no_mount_point boolean false
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
Outro que produz o mesmo erro. Neste, não estou usando uma receita customizada, apenas opto pela receita embutida.
#Get around the prompt for UEFI-only
d-i partman-efi/non_efi_system boolean true
d-i partman/default_filesystem string ext4
# In addition, you'll need to specify the method to use.
# The presently available methods are:
# - regular: use the usual partition types for your architecture
# - lvm: use LVM to partition the disk
# - crypto: use LVM within an encrypted partition
d-i partman-auto/method string crypto
d-i partman-crypto/passphrase password mypassword7
d-i partman-crypto/passphrase-again password mypassword7
# If one of the disks that are going to be automatically partitioned
# contains an old LVM configuration, the user will normally receive a
# warning. This can be preseeded away...
d-i partman-lvm/device_remove_lvm boolean true
# The same applies to pre-existing software RAID array:
d-i partman-md/device_remove_md boolean true
# And the same goes for the confirmation to write the lvm partitions.
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
# For LVM partitioning, you can select how much of the volume group to use
# for logical volumes.
d-i partman-auto-lvm/guided_size string max
# You can choose one of the three predefined partitioning recipes:
# - atomic: all files in one partition
# - home: separate /home partition
# - multi: separate /home, /var, and /tmp partitions
d-i partman-auto/choose_recipe select atomic
# 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
Qual é a configuração do partman necessária para fazer isso funcionar?
Após extensas tentativas, pesquisas e leitura de experiências de outras pessoas que tentaram fazer isso, cheguei à conclusão de que isso é impossível devido a algum bug no instalador.
O Ubuntu Server iso com autoinstalação e subiquidade pode fazer isso de forma bastante limpa com a funcionalidade de autoinstalação e eu sugeriria isso para qualquer pessoa como uma alternativa para resolver esse problema.