LVM加密是Linux全盘加密的常用方式,通过在LVM逻辑卷层叠加LUKS实现根、swap及home等分区加密;需在安装时启用LUKS+LVM选项或手动配置cryptsetup与LVM,并分离未加密/boot分区,确保initramfs支持LUKS解锁。

如果您在安装Linux操作系统时希望启用全盘加密,LVM加密是常用且可靠的方式之一。该方式通过在LVM逻辑卷层叠加LUKS加密,使根文件系统、交换分区及用户数据均处于加密保护之下。以下是实现此目标的具体操作路径:
一、安装过程中启用LUKS+LVM加密选项
多数主流Linux发行版(如Ubuntu、Fedora、Debian)在图形或文本安装界面中提供“加密整个磁盘”或“使用LVM并加密”的预设选项。该选项会自动配置物理卷、卷组、逻辑卷,并在每个逻辑卷上应用LUKS封装。
1、启动安装介质后,进入磁盘分区步骤,选择“手动分区”或“其他选项”。
2、在分区方案列表中,勾选“用LVM设置新LVM组”并同时启用“加密逻辑卷”选项。
3、确认提示信息后,输入并二次确认LUKS密码;该密码将在每次开机时用于解锁加密卷组。
4、继续完成剩余安装流程,安装程序将自动生成加密的/boot以外的所有逻辑卷(如root、swap、home),并写入对应的crypttab和fstab条目。
二、使用命令行工具在安装前预配置加密LVM
部分精简安装环境(如CentOS最小化镜像或Arch Linux安装镜像)不提供图形化加密引导,需在安装前通过shell手动创建LUKS容器与LVM结构。此方法可精确控制加密参数与分区布局。
1、使用fdisk或parted在目标磁盘创建单个大型分区(如/dev/sda1),标记为Linux LVM类型(代码8e)。
2、执行cryptsetup luksFormat --cipher aes-xts-plain64 --key-size 512 --hash sha256 /dev/sda1,按提示输入并验证密码。
3、运行cryptsetup open /dev/sda1 cryptvg解封设备,生成映射设备/dev/mapper/cryptvg。
4、在/dev/mapper/cryptvg上依次执行pvcreate、vgcreate(如vgcreate vg0 /dev/mapper/cryptvg)、lvcreate创建root、swap、home等逻辑卷。
5、对各逻辑卷格式化:mkfs.ext4 /dev/vg0/root;mkswap /dev/vg0/swap;mkfs.ext4 /dev/vg0/home。
三、分离/boot分区并确保initramfs支持LUKS解锁
由于GRUB无法直接读取LUKS加密卷,/boot必须位于未加密的独立分区(通常为ext4或xfs),而initramfs需包含cryptsetup与相应内核模块,以在启动早期阶段提示输入密码并挂载加密根卷。
1、在分区阶段为/boot单独划分一个512MB~1GB的主分区,不启用加密,挂载点设为/boot。
2、安装完成后,在已部署系统中执行sudo update-initramfs -u(Debian/Ubuntu)或sudo dracut --force(RHEL/Fedora),强制重建initramfs并注入LUKS支持。
3、验证/etc/crypttab中存在对应条目,格式为:root UUID=xxx none luks,其中UUID为加密分区的blkid值。
四、验证加密状态与关键设备映射关系
安装完成后重启,系统应在加载initramfs阶段显示LUKS密码提示。成功解锁后,所有加密逻辑卷应自动映射至/dev/mapper/下,并被正确挂载。此步骤用于确认加密链路完整生效。
1、启动进入系统后,运行sudo lsblk -f,观察输出中是否存在CRYPT-LUKS类型标识及对应mapper设备。
2、执行sudo cryptsetup status root(假设逻辑卷名为root),确认active状态、cipher参数与device路径。
3、检查cat /proc/swaps是否显示加密swap设备(如/dev/mapper/swap),而非原始分区。










