如何将 /home 文件夹移动到 luks 加密的外部驱动器?

pos*_*cal 4 encryption luks external-hdd home-directory

当前系统将进行全盘加密,我想将文件夹移动/映射/home到也使用 LUKS 加密进行格式化的外部硬盘驱动器。这可能吗?

\n\n

Linux 的更新不断地破坏着我的一切。我认为这可能与FDE有关。我只是希望能够将我的/home数据保存、加密并保存在另一个硬盘上。

\n\n

须藤lsblk

\n\n

(在本例中,sda1 是外部加密驱动器,/home 所在的位置)

\n\n
\nNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT\nsda 8:0 0 931.5G 0 磁盘 \n\xe2\x94\x94\xe2\x94\x80sda1 8:1 0 931.5G 0 部分 \n \xe2\x94\x94 \xe2\x94\x80luks-39afxxxxxxxxxxxxxxxxxxxx 252:3 0 931.5G 0 crypt /media/user/My_external_drive\nsdb 8:16 0 931.5G 0 磁盘\n\xe2\x94\x9c\xe2\x94\x80sdb1 8:17 0 487M 0 部分 /boot\n\xe2\x94\x9c\xe2\x94\x80sdb2 8:18 0 1K 0 部分 \n\xe2\x94\x94\xe2\x94\x80sdb5 8:21 0 931G 0 部分 \n \ xe2\x94\x94\xe2\x94\x80sda5_crypt 252:0 0 931G 0 地穴\n \xe2\x94\x9c\xe2\x94\x80xubuntu--vg-root 252:1 0 919.1G 0 lvm /\n \xe2 \x94\x94\xe2\x94\x80xubuntu--vg-swap_1 252:2 0 11.9G 0 lvm [SWAP]\nsr0 11:0 1 1024M 0 rom \n\n
\n\n

猫 /etc/fstab

\n\n
\n# 安装期间 /boot 位于 /dev/sda1\nUUID=f2c4a3ef-xxxx-xxxx-xxxx-xxxx /boot ext2 默认值 0 2\n/dev/mapper/xubuntu--vg-swap_1 none swap sw 0 0\ n
\n\n

须藤猫 /etc/crypttab

\n\n
\nsda5_crypt UUID=4426b1a1-xxxx-xxxx-xxxx-xxxx 无 luks,丢弃\n
\n\n

须藤块

\n\n
\n/dev/mapper/sda5_crypt: UUID="NKYcrR-xxxx-xxxx-xxxx-xxx-xxxx-xxxx" TYPE="LVM2_member"\n/dev/mapper/xubuntu--vg-root: UUID="fffe201d- xxxxxxxxxxx" TYPE="ext4"\n/dev/sda1: UUID="39af7a74-xxxx" TYPE="crypto_LUKS" PARTUUID="04f839ad-xxxxxxxxxxxxxxxxxxxxxxx"\n/dev/sdb1: UUID="f2c4a3ef-xxxx" TYPE=" ext2" PARTUUID="df4931bf-01"\n/dev/sdb5: UUID="4426b1a1-xxxxxx" TYPE="crypto_LUKS" PARTUUID="df4931bf-05"\n/dev/mapper/xubuntu--vg-swap_1: UUID ="2abaef03-xxxxxx" TYPE="swap"\n\n***外部 luks 加密驱动器我想用作 /home****\n\n/dev/mapper/luks-39axxxxxxxxxxxx: LABEL="My_external_drive " UUID="d7f7xxxxxxxxxxxxxxxxxxxx" TYPE="ext4"\n\n
\n

b_l*_*shi 5

迁移 /home 和其他明显问题

首先,您的根分区似乎/dev/mapper/xubuntu--vg-root未在 中配置/etc/fstab。这需要解决。其次,你的/boot分区相当小。请勤于删除旧内核,否则一旦/boot分区填满 100%,安装更新时就会出现问题。在安装过程中通过手动分区可以轻松完成创建更大的引导分区并将主目录完全放在单独的驱动器上。如果您有兴趣,请参阅我的帖子,了解如何进行此操作,但它仅适用于新安装。

我应该能够帮助您进行迁移并将您的根分区恢复到/etc/fstab. 由于您已经表明您已经对这些文件中的一个或多个进行了更改,因此我假设您已经知道如何以 root 身份或使用 sudo 来编辑文件。您需要以这种方式进行下面提到的任何文件更改。

获取系统映像:
我们将进行一些重大的系统更改。如果您现在有一个“正在运行”的系统,您应该使用像Clonezilla这样的工具来获取系统映像以进行恢复,以防出现任何问题!虽然这不是绝对必要的,但我强烈建议这样做!

修复/etc/fstab在顶部
编辑并添加一行,内容如下: 没有该行,您的计算机甚至无法启动。/etc/fstab
/dev/mapper/xubuntu--vg-root / ext4 errors=remount-ro 0 1

迁移/home
这有几个部分。您必须将所有文档移至外部驱动器。您必须更新/etc/crypttab文件,以便系统可以在启动期间解密外部驱动器。这意味着您必须输入密码才能解密内部磁盘,然后必须输入另一个密码才能解密外部磁盘。有多种方法可以在仅提供一个密码的情况下解锁两个磁盘,但我不会在这里讨论这一点。如果您想了解更多信息,请阅读此处此处。您还必须进行更新,/etc/fstab以便您的系统知道如何挂载您的主目录。最后,您需要更新 initramfs。

  1. 将主目录的内容复制到外部驱动器。在终端中,运行以下命令,根据需要更改外部驱动器的路径。每个命令都可能需要几分钟才能运行。
    • 创建稍后用于验证复制文件完整性的哈希值。这不是绝对必要的,但很高兴能够确认复制时没有任何内容被损坏。
      sudo find /home -type f -exec md5sum '{}' >> $HOME/checksums.md5 \;
    • 将主目录中的所有内容复制到外部驱动器
      sudo cp -ar /home/. /media/$USER/My_external_drive
    • 如果您创建了所有文件的校验和,请继续检查它们。如果您登录了帐户,请注意,在创建校验和和检查复制文件之间,某些文件可能会自然发生变化。如果出现任何故障,只需确保它们不是重要文件即可。
      cd /media/$USER/My_external_drive
      sudo md5sum -c checksums.md5 | grep "FAILED"
    • 您还需要删除其中的所有内容/home,以便将其用作安装点,但我们不想从您本地的 xubuntu 安装中执行此操作。我们将等待,直到准备好重新启动并使用 Live CD/USB。
  2. 更新/etc/crypttab
    打开/etc/crypttab进行编辑并添加以下行,将 x 替换为外部驱动器上 LUKS 分区的 UUID 的实际值。
    luks_home UUID=39af7a74-xxxx none luks,discard
  3. 更新/etc/fstab以包含新/home分区:
    打开/etc/fstab进行编辑并将以下行添加到末尾
    /dev/mapper/luks_home /home ext4 defaults 0 2
  4. 更新你的 initramfs
    sudo update-initramfs -k all -u

要检查的事项:
您的/etc/fstab文件现在应该如下所示:

/dev/mapper/xubuntu--vg-root / ext4 错误=remount-ro 0 1
# 安装期间 /boot 位于 /dev/sda1
UUID=f2c4a3ef-longstringofnumbers /boot ext2 默认 0 2
/dev/mapper/xubuntu--vg-swap_1 无交换 sw 0 0
/dev/mapper/luks_home /home ext4 默认 0 2

您的/etc/crypttab文件现在应该如下所示:

sda5_crypt UUID=4426b1a1-longstringofnumbers 无 luks,丢弃
luks_home UUID=39af7a74-xxxx 无 luks,丢弃

如果您发现文件有任何问题/etc/crypttab并进行更改,请务必update-initramfs从第 4 点开始再次运行该命令。

重新启动到实时操作系统
一旦您确定已复制了所需的所有内容,就可以删除其中的所有内容/home,以便将其用作安装点。获取 Live CD/USB,然后从它启动。

  • 启动后,您需要解密并将 LUKS 分区挂载到内部磁盘上。运行以下命令来执行此操作,在出现提示时输入加密密码

dev=$(sudo lsblk | grep -B1 "sda5_crypt" | grep -oP "sd[az]\d\b" | awk '{print "/dev/"$1}') sudo cryptsetup luksOpen $dev internal_crypt sudo mount / dev/mapper/xubuntu--vg-root /mnt

  • 现在您的旧主分区应该位于/mnt/home。让我们删除里面的所有内容
    sudo rm -fr /mnt/home/*

重新启动到本地安装:
此时,您已准备好重新启动。清空旧主目录后,关闭实时操作系统并重新启动进入系统。您的系统现在应该要求两个密码,一个用于解密内部驱动器,另一个用于解密外部驱动器。假设您正确输入了这两个内容,您的系统应该启动,并且您的主目录应该位于外部驱动器上。

验证外部驱动器是否被用作/home
如果所有内容都与您在主目录中保留的位置基本一致,那么您就成功了。您可以mount | grep "/home"在终端窗口中输入。它应该显示您的外部驱动器上的 LUKS 分区安装在/home