首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu加密SSD + /home (硬盘)

Ubuntu加密SSD + /home (硬盘)
EN

Ask Ubuntu用户
提问于 2017-11-09 21:33:33
回答 1查看 2.1K关注 0票数 2

我有SSD和HDD。

在安装Ubuntu时,我希望“擦除磁盘并安装Ubuntu”,并“为安全起见加密新的Ubuntu安装”。

这使得我的/home在SSD下,但我想让它在硬盘下,但也加密。我怎么做这个?

编辑

代码语言:javascript
复制
sda                       8:0    0 223,6G  0 disk  
├─sda1                    8:1    0   512M  0 part  /boot/efi
├─sda2                    8:2    0   732M  0 part  /boot
└─sda3                    8:3    0 222,4G  0 part  
  └─sda3_crypt          253:0    0 222,4G  0 crypt 
    ├─ubuntu--vg-root   253:1    0 206,4G  0 lvm   /
    └─ubuntu--vg-swap_1 253:2    0  15,9G  0 lvm   [SWAP]
sdb                       8:16   0 931,5G  0 disk  
└─sdb1                    8:17   0 931,5G  0 part  
  └─home_drive          253:3    0 931,5G  0 crypt /mnt
  • 交换调整大小,这将是下一步(甚至禁用)
EN

回答 1

Ask Ubuntu用户

发布于 2017-11-09 22:22:21

啊,定制分区。这是一个有趣的问题,特别是当你试图加密跨卷。我将假设您不想使用过度疯狂 (是的,这是我的分区结构),并在这里使用LVM。我还将假设您已经安装了一些东西,因为它使这个过程稍微简单一些。

Part I:设置LUKS分区

您必须首先在硬盘上创建一个新的EXT4分区。让它占用你想要的空间。

接下来,您需要运行cryptsetup来实际设置加密。您想要的命令是:

代码语言:javascript
复制
cryptsetup luksFormat /dev/sdXY

/dev/sdXY替换为指向新的EXT4分区的任何内容。将提示您选择密码。选一个强壮的,然后把它写下来。当你完成的时候,你将不必记住它(当我们深入到这篇文章的时候,你就会明白为什么)。

接下来,我们需要在LUKS容器中创建另一个ext4分区,这个分区最终将继续保存/home。这些命令将实现以下目标:

代码语言:javascript
复制
cryptsetup open --type luks /dev/sdXY home_drive
mkfs -t ext4 /dev/mapper/home_drive
cryptsetup close home_drive

接下来,运行blkid并记下新LUKS容器的UUID (在/dev/sdXY)。你一会儿就需要它了。

第二部分:启用自动解密

现在,我们需要设置一个名为decrypt_derived的东西,它允许您“连锁”解密操作。

通过这样做,我们将允许一个密码跨两个驱动器工作。实际上,您解密的第一个驱动器将是您的第二个驱动器的密码。您的密码(以上所选)仍将在紧急情况下工作(想想数据恢复或类似的情况)。

运行以下命令/文件编辑。请确保将ubuntu_crypt重命名为当前密码所调用的任何内容(请参阅/etc/crypttab以找到此信息)。还可以用新的LUKS分区替换/dev/sdXY

代码语言:javascript
复制
/lib/cryptsetup/scripts/decrypt_derived ubuntu_crypt > /tmp/home_keyfile
cryptsetup luksAddKey /dev/sdXY /tmp/home_keyfile
shred -u /tmp/home_keyfile

接下来,您需要向/etc/crypttab添加以下行:

代码语言:javascript
复制
home_drive UUID=<your_drive_uuid> ubuntu_crypt luks,keyscript=/lib/cryptsetup/scripts/decrypt_derived

如果您在家用驱动器上使用SSD,请确保将luks,keyscript=...替换为luks,discard,keyscript=...

第三部分:添加到/etc/fstab

现在,您的系统已经设置,可以自动挂载驱动器,我们需要让/etc/fstab知道这一点。

幸运的是,这只是需要在/条目的/etc/fstab下面添加的一行。这一行将类似于:

代码语言:javascript
复制
/dev/mapper/home_drive    /mnt    ext4    errors=remount-ro    0    1

第四部分:测试

接下来,您将需要安装您的新(准备好了!)家庭隔断。您的命令将类似于:

代码语言:javascript
复制
cryptsetup open --type luks /dev/sdXY home_drive
mount /dev/mapper/home_drive /mnt

将当前的主文件夹复制到新驱动器,并确保一切看起来都很好。

最后,您只需运行以下命令,就可以让您的系统知道您的密码:

代码语言:javascript
复制
update-initramfs -u -k all

重新启动系统,并确保您只需输入一次密码。如果你需要做不止一次,事情就出了问题。再检查一遍你的步子。

一旦你回到网上,确认/mnt中有你所有的家庭数据。

第五部分:真实

的移动

现在,您需要重新打开/etc/fstab,并编辑新行,将/mnt替换为/home。它应该是这样的:

代码语言:javascript
复制
/dev/mapper/home_drive    /home    ext4    errors=remount-ro    0    1

保存文件。

再运行一次update-initramfs -u -k all,然后重新启动系统。

一旦你回来了,运行lsblk,并确保你的家园被安装到新的驱动器。

一旦你高兴了,你就需要摆脱你以前的家庭数据。问题是挂载将替换当前文件夹本身,因此无法访问该数据(运行时不能删除你的homedir )。因此,您需要执行绑定安装:

代码语言:javascript
复制
mount --bind / /mnt

运行touch /mnt/home/test,然后立即运行cat /home/test并确保它抱怨找不到文件。如果找到了该文件,那么挂载配置就有问题。

一旦您确信/home/test不存在,但/mnt/home/test确实存在,您就可以继续使用rm -rf /mnt/home/*删除您的旧家。

您的系统现在将在您的SSD和您的家庭将在它自己的加密驱动器!

票数 3
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/974851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档