Na instalação esqueci de criar um grupo de volumes lógicos no contêiner LUKS. Não vou reinstalar o sistema. Então, como faço para criar LVG no contêiner LUKS sem perda de dados?
Meu plano é:
Instalar
lvm2
pacoteBackup
/
usandorsync
para outra unidadeCrie os volumes lógicos que preciso, por exemplo
VolumeGroup/root
,VolumeGroup/home
eVolumeGroup/swap
Transferir todos os dados do backup para
VolumeGroup/root
Altere os parâmetros do kernel de
cryptdevice=PARTUUID=...:root root=/dev/mapper/root
paracryptdevice=PARTUUID=...:cryptlvm root=/dev/VolumeGroup/root
Adicione
lvm
gancho a HOOKS em/etc/mkinitcpio.conf
Chroot em nova raiz
Regenerar fstab
Correr
mkinitcpio -P
Possível implementação:
### On the primary OS
pacman -S lvm2
# Add lvm2 hook to /etc/mkinitcpio.conf, to it looks like this:
# HOOKS=(base udev autodetect keyboard keymap modconf block encrypt filesystems lvm2 fsck)
mkinitcpio -P
### Reboot into live-USB now
### My existing layout:
###
### nvme0n1 259:0 0 931.5G 0 disk
### ├─nvme0n1p1 259:1 0 512M 0 part /boot
### └─nvme0n1p2 259:2 0 931G 0 part
### └─root 254:0 0 931G 0 crypt /
### mounting necessary partitions
rsync -aAXHv /mnt/ /path/to/backup
wipefs -a /dev/nvme0n1p2
cryptsetup luksFormat /dev/nvme0n1p2
cryptsetup open /dev/nvme0n1p2 cryptlvm
pvcreate /dev/mapper/cryptlvm
vgcreate VolumeGroup /dev/mapper/cryptlvm
lvcreate -L 16G VolumeGroup -n swap
lvcreate -L 100G VolumeGroup -n root
lvcreate -l 100%FREE VolumeGroup -n home
lvreduce -l -256M /dev/VolumeGroup/home
mkfs.ext4 /dev/VolumeGroup/root
mkfs.ext4 /dev/VolumeGroup/home
mkswap /dev/VolumeGroup/swap
mount /dev/VolumeGroup/root /mnt
mount --mkdir /dev/VolumeGroup/home /mnt/home
swapon /dev/VolumeGroup/swap
rsync -aAXHv /path/to/backup /mnt
### Now editing kernel parameters so (dots are placeholder for real PARTUUID)
### cryptdevice=PARTUUID=...:cryptlvm root=/dev/VolumeGroup/root
### (*I use systemd-boot, so I change /mnt/etc/kernel/cmdline*)
arch-chroot /mnt
genfstab -U / > /etc/fstab
mkinitcpio -P
### Now reboot and hope all will work
será que vai dar certo?