如何使用带有两个驱动器(SSD/HDD)的全盘加密安装 18.04

And*_*iss 12 encryption partitioning ssd hard-drive

我有一台笔记本电脑,希望使用全盘加密进行全新安装。我想在我的 SSD 上安装我的操作系统,安装后,将我的移动到我的第二个 HDD。

  • 是否可以要求安装程序在安装时完全加密两个驱动器?
  • 如果没有,是否可以在将操作系统成功安装到 SSD 后手动加密第二个 HDD,然后将 /home 移动到第二个 HDD?如果是这样,我该怎么做?
  • 是否可以使用一个密码在启动时解密两个驱动器?假设我必须在两个驱动器上安装 LUKS(以处理加密),然后在两个驱动器上拉伸(或链接)LVM ,我是否正确?这是我最不确定/如何做的部分。

谢谢

And*_*iss 12

如何使用两个驱动器加密 Ubuntu 18.04 LTS 安装:主 SSD 上的操作系统,辅助硬盘上的 /home

这是 Ubuntu 18.04 LTS 安装的全盘加密指南。不要与仅对/home目录进行加密混淆,我相信在安装过程中已将其作为一个选项删除。这些说明适用于 Ubuntu 18.04 LTS,但应该适用于 16.04 LTS。

本指南假设您熟悉 Ubuntu (Linux) 并且可以从 USB 密钥安装操作系统,或者至少了解如何执行此过程 - 如果您不能,请找一个可以并且你们俩都通过它的人. 本指南还假设您在开始此过程之前已备份所有数据,因为在此过程中您将销毁所有驱动器上的所有数据。

你被警告了!

本指南主要融合了此处的两个程序(David Yates 的博客文章)(https://davidyat.es/2015/04/03/encrypting-a-second-hard-drive-on-ubuntu-14- 10-post-install/)和 Ask Ubuntu 帖子(将主文件夹移动到第二个驱动器)。

首先,我们为什么要这样做?因为如果您拥有笔记本电脑或计算机上的其他敏感数据并且被盗或丢失,则必须能够保护数据。您可能有法律责任保护数据。其次,许多(大多数)系统现在都配备了用于操作系统的小型 SSD(快速)和用于数据的较大 HDD(慢速)。第三,现在只加密/home目录被认为是一个坏主意,因为它使您暴露在/home被黑客攻击的可能性中(不要问我怎么做,我做不到),并且部分加密会减慢系统在很大程度上。FDE 需要较少的开销,因此对系统性能的影响最小。

第 I 部分:在主驱动器(通常是 SSD)上安装 Ubuntu 18.04 LTS

将 Ubuntu 18.04 LTS 安装到较小的(通常是 SSD)上并检查 (i) 擦除磁盘,(ii) 加密安装,以及 (iii) LVM 管理。

安装选项截图

这将导致加密 SSD,但不会触及第二个(通常是 HDD)驱动器。我假设您的第二个驱动器是一个新的、未格式化的驱动器,但在此过程之前驱动器上的内容并不重要。我们将销毁此驱动器上的所有数据。我们将使用 Ubuntu 中的一个软件包来准备驱动器(不确定这种准备是否绝对必要,但这是我测试过的)。要为您即将移动的/home分区(文件夹)做好准备,您应该使用名为gParted的 GUI 工具对其进行格式化

sudo apt install gparted
Run Code Online (Sandbox Code Playgroud)

打开 gParted 并导航到您的第二个 HDD(仔细检查/dev/sd?X)并删除任何和所有现有分区,然后使用ext4文件系统创建一个新的 PRIMARY PARTITION 。您也可以标记它,但这不是必需的。选择“应用”。一个 gParted 已完成,关闭 gParted,现在您已准备好在第二个驱动器上安装 LUKS 容器,然后对其进行格式化。在以下命令中,将sd?X替换为您的SECONDARY驱动器(不是您的主驱动器)的名称,例如sda1

sudo cryptsetup -y -v luksFormat /dev/sd?X
Run Code Online (Sandbox Code Playgroud)

然后您需要解密新分区,以便您可以使用ext4对其进行格式化,这是 Ubuntu 首选的现代 Linux 文件系统。

sudo cryptsetup luksOpen /dev/sd?X sd?X_crypt
sudo mkfs.ext4 /dev/mapper/sd?X_crypt
Run Code Online (Sandbox Code Playgroud)

如果您想将第二个 HDD 用作常规的、经常访问的硬盘驱动器(如将/home分区移动到它,这是第二部分的重点),有一种方法可以在启动时自动安装和解密您的第二个驱动器,当您的计算机提示您输入主硬盘驱动器解密密码时。旁白:我对我的两个驱动器使用相同的密码,因为我很迷信并且设想使用两个不同的密码会出现更多问题。

首先,您需要创建一个密钥文件,作为辅助驱动器的密码,这样您就不必每次启动时都输入(就像您的主硬盘驱动器加密密码)。

sudo dd if=/dev/urandom of=/root/.keyfile bs=1024 count=4
sudo chmod 0400 /root/.keyfile
sudo cryptsetup luksAddKey /dev/sd?X /root/.keyfile
Run Code Online (Sandbox Code Playgroud)

创建密钥文件后,使用 nano 将以下行添加到 /etc/crypttab

sudo nano /etc/crypttab
Run Code Online (Sandbox Code Playgroud)

添加这一行,保存并关闭文件 ( /etc/crypttab )。

sd?X_crypt UUID=<device UUID> /root/.keyfile luks,discard
Run Code Online (Sandbox Code Playgroud)

要将分区的 UUID 输入/etc/crypttab文件,请使用此命令(您需要使用sudo it 以便显示所有分区):

sudo blkid
Run Code Online (Sandbox Code Playgroud)

您想要的值是/dev/sd?X的 UUID ,而不是dev/mapper/sd?X_crypt。还要确保复制 UUID,而不是 PARTUUID。

好的,此时(关闭并保存/etc/crypttab文件),您应该能够登录到您的 Ubuntu 安装(输入您的主驱动器解密密码)并且它应该解密您的主驱动器和辅助驱动器。您应该检查是否发生这种情况,否则STOP;并解决问题。如果你没有这个工作并且你已经移动了你的/home,你将有一个非工作系统。

重新启动并检查是否确实如此(菊花链解密)。如果第二个驱动器被自动解密,当您选择“其他位置”时,第二个驱动器应该显示在列表中并有一个锁定图标,但该图标应该是解锁的

如果第二个驱动器自动解密(应该如此),则转到第二部分,将第二个驱动器指定为/home文件夹的默认位置(具有更大的空间)。

第二部分:将 /home 分区移动到辅助驱动器(HDD)

我们需要为辅助驱动器创建一个挂载点,临时挂载新分区(辅助硬盘)并将/home移动到它:

sudo mkdir /mnt/tmp
sudo mount /dev/mapper/sd?X_crypt /mnt/tmp
Run Code Online (Sandbox Code Playgroud)

假设/sd?X/home的新分区(如上所述)

现在我们将您的/home文件夹从主驱动器 (SSD)复制到新的/home位置到辅助驱动器 (HDD)。

sudo rsync -avx /home/ /mnt/tmp
Run Code Online (Sandbox Code Playgroud)

然后,我们可以挂载新分区的/ home

sudo mount /dev/mapper/sd?X_crypt /home
Run Code Online (Sandbox Code Playgroud)

确保所有文件夹(数据)都存在。

ls
Run Code Online (Sandbox Code Playgroud)

现在,我们想让辅助驱动器上的新/home位置永久,我们需要编辑fstab条目以自动将移动的/home安装在辅助解密硬盘上。

sudo nano /etc/fstab
Run Code Online (Sandbox Code Playgroud)

并在最后添加以下行:

/dev/mapper/sd?X_crypt /home ext4 defaults 0 2
Run Code Online (Sandbox Code Playgroud)

保存并关闭文件。

重启。重新启动后,您的/home应该位于新的辅助驱动器上,并且您应该有足够的空间来存放 DATA。