Ubuntu 22.04全盘加密

Ubuntu在安装的时候有个全盘加密的选项,安装后EFI和boot分区也是不加密的,并且磁盘空间并没有全部使用。(可能是为了保留一定灵活性,让使用者自己分配)。默认的全盘加密有个缺点是会清空整个磁盘数据,而我需要安装双系统,所以选择手动创建lvm分区并使用luks加密。

选择Try Ubuntu
磁盘分区

使用Ubuntu 22.04 Live CD自带的gparted工具划分出EFI(fat32格式)、boot和用作lvm的三个分区。

/dev/vda1 ---> EFI
/dev/vda2 ---> boot
/dev/vda3 ---> lvm
cryptsetup加密分区

使用cryptsetup对即将用作lvm的分区/dev/vda3加密。

打开/dev/vda3,方便下一步创建lvm。

创建lvm
安装Ubuntu

选择something else自定义分区信息。

安装结束选择Continue Testing,下一步配置crypttab

配置crypttab

chroot到新安装Ubuntu系统的根目录。

mount /dev/mapper/vg0-root /target   #ubuntu22.04会自动挂载,这一步不需要手动执行

for n in proc sys dev etc/resolv.conf; do mount --rbind /$n /target/$n; done

chroot /target

mount -a

配置crypttab,这里选择的none,开机的时候就会询问解锁密码。

重启系统可以看到需要输入硬盘密码才能进入。

进入系统后可以看到除了EFI、boot以外的磁盘信息均已luks加密。

后续
1、如果安装grub主题, 需要安装到/boot下面未加密目录。
2、luks有很多高级玩法等待发掘,比如可以添加多个密码、使用usb key解锁等。

参考文章: https://help.ubuntu.com/community/Full_Disk_Encryption_Howto_2019