如何添加新的物理卷来扩展现有的 LUKS 加密的 lvm(卷组)并保持加密?

Ale*_*nux 6 lvm luks

我想用新的物理卷扩展我的 LUKS 加密的 lvm(卷组)。

在我之前的问题中,我被告知 - 关于我的实际设置 - 我需要在将新物理卷添加到我现有的卷组之前对其进行加密。

我想知道我必须遵守哪些步骤才能将该物理卷成功添加到我现有的卷组中。

我的实际堆叠如下所示:

nvme0n1p8 -> luks -> physical volume -> volume group -> lv

lsblk
NAME                    MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
??nvme0n1p8             259:8    0  86,5G  0 part
? ??nvme0n1p8_crypt     253:0    0  86,5G  0 crypt
?   ??lvm--crypt-wurzel 253:1    0  30,7G  0 lvm   /
?   ??lvm--crypt-home   253:2    0    80G  0 lvm   /home
Run Code Online (Sandbox Code Playgroud)

我的 crypttab 文件如下所示:

cat /etc/crypttab
nvme0n1p8_crypt UUID=1697ec4a-b30b-4642-b4f3-6ba94afc40ec none luks,discard
Run Code Online (Sandbox Code Playgroud)

现在我想向该卷组添加一个新的物理卷。

  1. 如何在不丢失加密的情况下向该卷组添加新的物理卷?
  2. 我可能需要对哪个配置文件进行哪些修改?

Ste*_*itt 7

您需要在新的物理设备上设置加密:

sudo cryptsetup luksFormat /dev/newdevice
Run Code Online (Sandbox Code Playgroud)

newdevice酌情更换)。

然后打开它:

sudo cryptsetup luksOpen /dev/newdevice newdevice_crypt
Run Code Online (Sandbox Code Playgroud)

您需要添加一个匹配的行,/etc/crypttab以便在启动时打开它。

拥有后newdevice_crypt,您可以在其上创建一个物理卷:

sudo pvcreate /dev/newdevice_crypt
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的卷组。

您可以共享多个加密设备的密码;请参阅使用单个密码在启动时解锁多个加密磁盘


Éti*_*nne 7

根据 Stephen Kitt 的回答,这里是我需要运行的命令的完整列表(使用“lsblk”、“vgdisplay”和“lvdisplay”检查 Logival 卷、卷组和磁盘的名称,然后相应地替换名称):

sudo cryptsetup luksFormat /dev/nvme0n1
sudo cryptsetup luksOpen /dev/nvme0n1 nvme0n1_crypt
sudo pvcreate /dev/mapper/nvme0n1_crypt
sudo vgextend ubuntu-vg /dev/mapper/nvme0n1_crypt
sudo lvextend -l +100%FREE /dev/ubuntu-vg/root
sudo resize2fs /dev/mapper/ubuntu--vg-root
Run Code Online (Sandbox Code Playgroud)

此时,编辑 /etc/crypttab 并添加新磁盘(请参阅 使用单个密码在启动时解锁多个加密磁盘,以便对多个磁盘使用相同的密钥) fstab 中的 UUID 是“LUKS”卷的 UUID,如图所示“磁盘”实用程序。然后:

sudo apt install keyutils
sudo update-initramfs -c -k all 
Run Code Online (Sandbox Code Playgroud)