![如何将/home 文件夹移动到 luks 加密的外部驱动器?](https://linux22.com/image/1090059/%E5%A6%82%E4%BD%95%E5%B0%86%2Fhome%20%E6%96%87%E4%BB%B6%E5%A4%B9%E7%A7%BB%E5%8A%A8%E5%88%B0%20luks%20%E5%8A%A0%E5%AF%86%E7%9A%84%E5%A4%96%E9%83%A8%E9%A9%B1%E5%8A%A8%E5%99%A8%EF%BC%9F.png)
当前系统将采用全盘加密,我想将/home
文件夹移动/映射到同样使用 LUKS 加密格式化的外部硬盘驱动器。这可能吗?
Linux 更新总是破坏我的所有内容。我认为这可能与 FDE 有关。我只想能够将我的/home
数据保存、加密并放在另一个硬盘上。
sudo lsblk
(在这种情况下,sda1 将是 /home 所在的外部加密驱动器)
名称 MAJ:MIN RM 大小 RO 类型 安装点 sda 8:0 0 931.5G 0 磁盘 └─sda1 8:1 0 931.5G 0部分 └─luks-39afxxxxxxxxxxxxxxxxxxxx 252:3 0 931.5G 0 crypt /media/user/My_external_drive sdb 8:16 0 931.5G 0 磁盘 ─sdb1 8:17 0 487M 0 部分 /boot ─sdb2 8:18 0 1K 0 部分 └─sdb5 8:21 0 931G 0部分 └─sda5_crypt 252:0 0 931G 0 加密 ─xubuntu--vg-root 252:1 0 919.1G 0 lvm / └─xubuntu--vg-swap_1 252:2 0 11.9G 0 lvm [交换] sr0 11:0 1 1024M 0 rom
猫/etc/fstab
# 安装期间 /boot 位于 /dev/sda1 上 UUID=f2c4a3ef-xxxx-xxxx-xxxx-xxxx /boot ext2 默认值 0 2 /dev/mapper/xubuntu--vg-swap_1 无 交换 sw 0 0
sudo cat /etc/crypttab
sda5_crypt UUID=4426b1a1-xxxx-xxxx-xxxx-xxxx none luks,丢弃
命令 blkid
/dev/mapper/sda5_crypt:UUID="NKYcrR-xxxx-xxxx-xxxx-xxx-xxxx-xxxx" TYPE="LVM2_member" /dev/mapper/xubuntu--vg-root:UUID="fffe201d-xxxxxxxxxxx" TYPE="ext4" /dev/sda1:UUID="39af7a74-xxxx" TYPE="crypto_LUKS" PARTUUID="04f839ad-xxxxxxxxxxxxxxxxxxxxxxx" /dev/sdb1:UUID="f2c4a3ef-xxxx" TYPE="ext2" PARTUUID="df4931bf-01" /dev/sdb5:UUID="4426b1a1-xxxxxx" TYPE="crypto_LUKS" PARTUUID="df4931bf-05" /dev/mapper/xubuntu--vg-swap_1: UUID="2abaef03-xxxxxx" TYPE="swap" ***我想将外部 luks 加密驱动器用作 /home**** /dev/mapper/luks-39axxxxxxxxxx:LABEL="My_external_drive" UUID="d7f7xxxxxxxxxxxxxxxxxxx" TYPE="ext4"
答案1
迁移 /home 和其他明显问题
首先,您的根分区似乎/dev/mapper/xubuntu--vg-root
未在 中配置/etc/fstab
。这需要修复。其次,您的/boot
分区相当小。请认真删除旧内核,否则一旦/boot
分区填满到 100%,您将无法安装更新。创建更大的启动分区并将主分区放在单独的驱动器上,可以通过在安装过程中手动分区轻松完成。请参阅如何操作我的帖子在这里如果您有兴趣,但它仅适用于新安装。
我应该能够帮助您进行迁移并将您的根分区恢复到/etc/fstab
。由于您已表示您已更改了其中一个或多个文件,因此我假设您已经知道如何以 root 身份或使用 sudo 编辑文件。您需要以这种方式进行下面提到的任何文件更改。
抓取系统映像:
我们将进行一些重大的系统更改。如果您现在有一个“正常运行”的系统,您应该使用类似克隆兹拉抓取系统映像进行恢复,以防万一出现问题!虽然这不是绝对必要的,但我强烈建议它!
修复/etc/fstab
:
编辑/etc/fstab
并在顶部添加一行如下:
/dev/mapper/xubuntu--vg-root / ext4 errors=remount-ro 0 1
如果没有该行,您的计算机将无法启动。
迁移/home
:
这有几个部分。您必须将所有文档移动到外部驱动器。您必须更新文件,/etc/crypttab
以便系统可以在启动期间解密外部驱动器。这意味着您必须输入密码来解密内部磁盘,然后您必须输入另一个密码来解密外部磁盘。有几种方法可以只提供一个密码来解锁两个磁盘,但我不会在这里讨论这个问题。如果您想了解更多信息,请阅读这里和这里。您还必须进行更新/etc/fstab
,以便您的系统知道如何挂载您的主目录。最后,您需要更新您的 initramfs。
- 将主目录的内容复制到外部驱动器。在终端中,运行以下命令,根据需要更改外部驱动器的路径。每个命令都可能需要几分钟才能运行。
- 创建哈希值,以便稍后验证复制文件的完整性。这不是绝对必要的,但能够确认复制过程中没有损坏任何内容是很好的。
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 安装中执行此操作。我们将等到我们准备好重新启动并使用实时 CD/USB 时再执行此操作。
- 创建哈希值,以便稍后验证复制文件的完整性。这不是绝对必要的,但能够确认复制过程中没有损坏任何内容是很好的。
- 更新
/etc/crypttab
:
打开/etc/crypttab
进行编辑并添加以下行,将 x 替换为外部驱动器上 LUKS 分区的 UUID 的实际值。
luks_home UUID=39af7a74-xxxx none luks,discard
- 更新
/etc/fstab
以包含新/home
分区:
打开/etc/fstab
进行编辑并将以下行添加到末尾
/dev/mapper/luks_home /home ext4 defaults 0 2
- 更新你的 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 none luks,丢弃 luks_home UUID=39af7a74-xxxx 无 luks,丢弃
如果发现文件有任何问题/etc/crypttab
并进行了更改,请务必update-initramfs
从第 4 点再次运行命令。
重新启动进入实时操作系统
确定已复制所有需要的内容后,就可以删除所有内容,/home
以便将其用作挂载点。获取实时 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
。