Minha configuração: Pré-requisitos:
- Dual Boot Windows 10/anteriormente Ubuntu 24.04 (vindo de 22.04)
- Tabela de partição:
/dev/nvme0n1p7 202G 96M 202G 1% /ntfs_data /dev/nvme0n1p3 230G 54G 177G 24% /windows /dev/nvme0n1p5 3,0G 288M 2,6G 11% /boot /dev/mapper/ubuntu--vg-home 2,8T 1,7T 964G 64% /home /dev/nvme0n1p1 256M 158M 99M 62% /boot/efi tmpfs 1,6G 300K 1,6G 1% /run/user/1000 /home/xxx/.Private 2,8T 1,7T 964G 64% /home/xxx /dev/mapper/usb1TB_202304_crypt 938G 890G 559M 100% /backup1TB /backup1TB/home_xxx_bck 938G 890G 559M 100% /backup1TB/home_xxx_bck
- /dev/nvme0n1p6 é o dispositivo criptografado luks com LVM configurado:
- raiz (243 GB)
- casa (2,8 TB)
- trocar (16 GB)
Etapas de instalação para produzir erro no initramfs:
Usei o instalador USB do Linux Mint 22 (Imagem baixada em janeiro de 2025). Consegui instalar o LVM2 e o pacote cryptsetup para obter assistência para LVM e LUKS. Configurei em 2022 no Ubuntu 22.04 o LVM como o seguinte:
# vgs
WARNING: Couldn't find device with uuid CQVk01-WJQL-pjIi-opcT-oESN-UOb1-judhlH.
WARNING: Couldn't find device with uuid I5OUXJ-OkxW-403c-rEVJ-BmyG-Rd4M-r7SSFs.
WARNING: VG ubuntu-vg is missing PV CQVk01-WJQL-pjIi-opcT-oESN-UOb1-judhlH (last written to /dev/mapper/ubuntu-vg1).
WARNING: VG ubuntu-vg is missing PV I5OUXJ-OkxW-403c-rEVJ-BmyG-Rd4M-r7SSFs (last written to /dev/mapper/ubuntu-vg2).
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg 3 4 0 wz-pn- <6,01t <180,97g
# pvs
WARNING: Couldn't find device with uuid CQVk01-WJQL-pjIi-opcT-oESN-UOb1-judhlH.
WARNING: Couldn't find device with uuid I5OUXJ-OkxW-403c-rEVJ-BmyG-Rd4M-r7SSFs.
WARNING: VG ubuntu-vg is missing PV CQVk01-WJQL-pjIi-opcT-oESN-UOb1-judhlH (last written to /dev/mapper/ubuntu-vg1).
WARNING: VG ubuntu-vg is missing PV I5OUXJ-OkxW-403c-rEVJ-BmyG-Rd4M-r7SSFs (last written to /dev/mapper/ubuntu-vg2).
PV VG Fmt Attr PSize PFree
/dev/mapper/ubuntu-luks ubuntu-vg lvm2 a-- 3,21t <180,97g
[unknown] ubuntu-vg lvm2 a-m <1,40t 0
[unknown] ubuntu-vg lvm2 a-m <1,40t 0
# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
backupHome ubuntu-vg -wi-----p- 2,79t
home ubuntu-vg -wi-ao---- 2,78t
root ubuntu-vg -wi-ao---- <247,33g
swap_1 ubuntu-vg -wi-ao---- 16,00g
Abri um bash, abri o LUKS e ativei o LVM (o LVM foi criado anteriormente na versão 22.04 em 2022):
# cryptsetup luksOpen /dev/nvmeon1p6 ubuntu-luks
# lvchange -ay ubuntu-vg
Então iniciei o aplicativo de instalação e escolhi o modo manual para atribuir as partições, que configurei conforme mostrado acima, com formatação de root e /dev/nvme0n1p5 como partição /boot (não criptografada).
Depois disso, inicializei essas novas instalações instaladas do Linux Mint 22. Mas, além disso, curiosamente, na primeira vez, o diálogo de senha gráfica na sequência de inicialização no início só apareceu uma vez e descriptografou os luks, mas não conseguiu atribuir a partição LVM corretamente. Depois disso, nem mesmo o volume criptografado LUKS foi encontrado ou detectado e em todos os casos acabei depois de um longo tempo de espera no initramfs em caixa ocupado.
Aqui eu sempre tive que repetir as duas instruções acima antes de poder sair do initramfs e continuar inicializando meu sistema.
Descobri que não havia crypttab em /etc/crypttab e instalei um como
# cat /etc/crypttab
# <target name> <source device> <key file> <options>
# mounted /, /home, swap_1
ubuntu-luks UUID=b910aded-9314-403f-a350-7892ba95ffd5 none luks
# mounted as /backupHome LV part1, partial Loading (mustn't be present during boot)
ubuntu-luks_backupHome1 UUID=b1d9ec9c-7dac-445f-998b-695b2ddf6daa none luks
#ubuntu-luks_backupHome1 UUID=b1d9ec9c-7dac-445f-998b-695b2ddf6daa none luks,noauto
# mounted as /backupHome LV part2, partial loading (mustn't be present during boot)
ubuntu-luks_backupHome2 UUID=9c5b65e8-5785-44be-85c7-3009cbc1e02a none luks
#ubuntu-luks_backupHome2 UUID=9c5b65e8-5785-44be-85c7-3009cbc1e02a none luks,noauto
usb1TB_202304_luks UUID=4c4b603f-9146-4cb0-9621-9aa098ec592c none luks
# ubuntu-luks UUID=b910aded-9314-403f-a350-7892ba95ffd5 none luks # mounted on /
# ubuntu-luks_backupHome1 UUID=b1d9ec9c-7dac-445f-998b-695b2ddf6daa none luks,noauto # mounted as /backupHome, part1
# ubuntu-luks_backupHome2 UUID=9c5b65e8-5785-44be-85c7-3009cbc1e02a none luks,noauto # mounted as /backupHome, part2
e /etc/fstab:
# cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/mapper/ubuntu--vg-root / ext4 errors=remount-ro 0 1
# /boot was on /dev/nvme0n1p5 during installation
UUID=712868f5-29cc-429a-b535-375a3d868fa3 /boot ext4 defaults 0 2
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=E079-2792 /boot/efi vfat umask=0077 0 1
/dev/mapper/ubuntu--vg-home /home ext4 defaults 0 2
# /ntfs_data was on /dev/nvme0n1p7 during installation
UUID=3B269E2A1843CA0B /ntfs_data ntfs defaults,umask=007,gid=46 0 0
# /windows was on /dev/nvme0n1p3 during installation
UUID=4C30FF1730FF06AC /windows ntfs defaults,umask=007,gid=46 0 0
/dev/mapper/ubuntu--vg-swap_1 none swap sw 0 0
/dev/mapper/ubuntu--vg-backupHome /backupHome ext4 defaults,nofail 0 2
então atualizei o initramfs com
$ sudo update-initramfs -k all -c
Agora eu consertei permanentemente a criptografia do luks (então o diálogo aparece toda vez durante a inicialização, como descrito), mas a ativação do lvm
$ lvchange -ay ubuntu-vg
não é feita no initramfs!
Como eu poderia realizar esse último passo - ativar o grupo LV?
- Observação: a mídia lvm de backup, que é uma unidade USB, normalmente não está presente durante a inicialização!!!
# mounted as /backupHome LV part1, partial Loading (mustn't be present during boot) ubuntu-luks_backupHome1 UUID=xxx none luks #ubuntu-luks_backupHome1 UUID=xxx none luks,noauto # mounted as /backupHome LV part2, partial loading (mustn't be present during boot) ubuntu-luks_backupHome2 UUID=xxx none luks #ubuntu-luks_backupHome2 UUID=xxx none luks,noauto
[EDIT 101502013]: Hoje ele inicializou com erro algo como
/sbin/lvchange not found
no initramfs. Uma coisa que descobri que era diferente no initrams
, era que lvm
os comandos do como lvs, pvs, vgs, lvchange, lvcreate
etc. funcionavam apenas com o comando principal lvm
como prefixo. Também descobri que no /sbin
in initramfs
tem apenas um link simbólico como um alias estranho lvm -> vgchange, parece que arg0 se torna arg1 após aplicar o link. É isso que tento em seguida, colocando esse link no initramfs.
[EDIT2] Coloquei meu script lvm start e activating primeiro em local-top, depois em init-bottom, por último em local-bottom, e atualizei o initramfs de acordo,
update-initramfs -k all -c
mas sem sucesso, o LUKS é descriptografado, mas o script não é executado ou é executado muito cedo, e cada vez que ele acaba finalmente no console initramfs com seu busybox. Quando eu executo manualmente o script e saio, ele continua inicializando todas as vezes. Mas isso é muito desconfortável e, na mesma medida, demorado por causa dos muitos atrasos de tempo, em vez de executar o script, ele produz repetidamente esta linha de saída:
mdadm: No array found in config file or automatically
Este é o local real do meu script:
# tree /etc/initramfs-tools/
/etc/initramfs-tools/
├── conf.d
│ └── cryptsetup
├── hooks
├── initramfs.conf
├── modules
├── scripts
│ ├── init-bottom
│ ├── init-premount
│ ├── init-top
│ ├── local-bottom
│ │ └── lvm
│ ├── local-premount
│ ├── local-top
│ ├── nfs-bottom
│ ├── nfs-premount
│ ├── nfs-top
│ └── panic
└── update-initramfs.conf
14 directories, 5 files
o script parece executável assim:
#!/bin/sh
# Check and activate LVM volumes regardless of input arguments
# Log the intention to activate LVM volumes
echo "Activating LVM volumes..." > /dev/console
# Activate the volume group
if /sbin/vgchange -ay ubuntu-vg; then
echo "Logical volume group ubuntu-vg successfully activated." > /dev/console
/sbin/lvm lvchange -ay ubuntu-vg --activationmode partial
else
echo "Failed to activate logical volume group ubuntu-vg." > /dev/console
fi
No meio tempo, esvaziei uma imagem initrd para ver onde o comando cryptsetup é executado, mas parece um pouco complicado:
unmkinitramfs -v initrd.img-6.8.0-53-generic /tmp/initrd
e pesquisei por cryptsetup
:
# find /tmp/initrd/ -type f -iname "*" -exec grep -Hn "cryptsetup " {} \;
grep: /tmp/initrd/main/usr/sbin/cryptsetup: binary file matches
grep: /tmp/initrd/main/usr/lib/x86_64-linux-gnu/libcryptsetup.so.12.10.0: binary file matches
grep: /tmp/initrd/main/usr/lib/x86_64-linux-gnu/libmount.so.1.1.0: binary file matches
/tmp/initrd/main/usr/lib/cryptsetup/functions:320: if [ -e "$CRYPTTAB_OPTION_header" ] && /sbin/cryptsetup isLuks -- "$CRYPTTAB_OPTION_header"; then
/tmp/initrd/main/usr/lib/cryptsetup/functions:324: if /sbin/cryptsetup isLuks -- "$s"; then
/tmp/initrd/main/usr/lib/cryptsetup/functions:366: /sbin/cryptsetup -T1 \
/tmp/initrd/main/usr/lib/cryptsetup/functions:396: /sbin/cryptsetup -T1 \
/tmp/initrd/main/usr/bin/cryptroot-unlock:89:# birth date) of the cryptsetup process with same $CRYPTTAB_NAME.
/tmp/initrd/main/usr/bin/cryptroot-unlock:118: # find the cryptsetup process with same $CRYPTTAB_NAME
/tmp/initrd/main/usr/bin/cryptroot-unlock:173: echo "cryptsetup: cryptsetup failed, bad password or options?" >&2
/tmp/initrd/main/scripts/local-top/cryptroot:127: # our `cryptroot-unlock` script searches for cryptsetup processes
/tmp/initrd/main/scripts/local-top/cryptroot:164: cryptsetup_message "ERROR: $CRYPTTAB_NAME: cryptsetup failed, bad password or options?"
/tmp/initrd/main/scripts/local-top/cryptroot:177: /sbin/cryptsetup remove -- "$CRYPTTAB_NAME"