我已经设置了全盘加密,并且与我的 xubuntu 17.10 完美配合。现在我又买了第二块硬盘,希望启用全盘加密。
在理想的世界中,两个驱动器都会在启动时安装。
答案1
我已经把一切都安排好了。我做了几件事,其中一些在网上有很好的记录,而其他的……记录得不是很好。在这里我将描述我所做的事情,希望对其他人有用。
请记住,这里几乎每个命令都需要管理员权限,sudo -i
是您的朋友。
首先,我需要创建一个空的分区表和一个占据整个驱动器的单个分区,该分区不能有任何文件系统。我使用 GParted 完成了这项工作,但其他任何工具都可以。
然后我需要加密该分区:
cryptsetup --iter-time 5000 --use-random luksFormat --type luks2 /dev/sdb1
cryptsetup open /dev/sdb1 large_crypt
在这种情况下,“大”只是我决定为该特定驱动器命名。
之后将 LVM 放在该加密分区之上:
pvcreate /dev/mapper/large_crypt
vgcreate largevg /dev/mapper/largevg
现在是时候在创建的卷组(这里是 largevg)内创建逻辑卷了,我希望有 20G 交换空间,其余部分为 ext4。
vgdisplay --units B
这给出了虚拟组的大小(以字节为单位)。我记下了我创建的虚拟组,并手动从中减去了 20G
以下命令是从执行的,/dev/mapper/
这样我就不必一直写路径
lvcreate -L 1980393601024B -n work largevg
mkfs.ext4 largevg-work
lvcreate -l 100%FREE -n swap largevg
mkswap largevg-swap
为了在启动时安装所有内容,我做了一个有据可查的技巧:
dd if=/dev/random of=/root/.large-keyfile bs=1024 count=4
chmod 0400 /root/.large-keyfile
cryptsetup luksAddKey /dev/sdb1 /root/.large-keyfile
最后我需要真正确保所有内容在启动时都已安装:
blkid
然后记下块设备分区 UUID(/dev/sdb1
在我的情况下)。这将/etc/crypttab
如下所示:
large_crypt UUID=[whatever uuid of sdb1 was] /root/.large-keyfile luks,discard
然后将其添加到/etc/fstab
:
/dev/mapper/largevg-work /some/path ext4 errors=remount-ro 0 2
/dev/mapper/largevg-swap none swap sw 0 0
以防万一我这样做了:
update-initramfs -u
现在一切都运行得几乎完美。唯一的问题是,无论出于什么原因,XUbuntu 认为驱动器是外部的,并将图标放在桌面上,并试图允许我卸载它(但我无法执行此操作),但是,这是一个小麻烦,我稍后会修复它。