我正在尝试做一些显而易见但似乎没人做的事情。我想将我的主目录保存在加密的 USB 驱动器上,以便在原始 Ubuntu 安装上的原始主目录“之上”插入和拔出。
确实有点用。我目前的工作流程:
- 在登录屏幕上,
ctrl+alt+f2
转到新的 TTY。以 root 身份登录(已设置 root 密码以允许此操作)。将加密卷挂载在/home/me
- 返回 TTY7,以我的身份登录并从正确安装的家中工作
- 退出登录屏幕,
ctrl+alt+f2
返回终端,以 root 身份登录并卸载/home/me
但在第 3 步,尝试卸载我的主目录时,我得到了Device busy
,并且执行 会lsof
显示数百个正在使用它的进程。这似乎是因为当您“注销”到登录屏幕时,Ubuntu 不会将您注销。所以我直接关闭,而不是先卸载。似乎不太干净。
注意:我遇到了一个硬件问题,如果我修改grub
配置以启动到 shell 提示符,我的机器将无法使用。无论如何,这应该不是 Ubuntu 的方式。
但一定有更好的方法来实现这一点。有什么好主意吗?
答案1
设置
最初,您可以执行以下操作来挂载和复制主目录:
挂载驱动器:mount -o uid=user /dev/sdbx /temphomedir
复制文件:mount --bind /temphomedir /home/user
这假定这/dev/sdbx
是您的 USB 驱动器并且/home/user
是您的主目录。
笔记
/home/user
注意:在安装驱动器之前,请确保目录是空的。
添加启动脚本
根据这个问题您可以使用命令crontab -e
来编辑您的 cron,然后您可以添加以下行@reboot /mount.sh
。现在我们已经完成了,我们需要创建脚本mount.sh
。您可以通过输入来执行此操作sudo nano /mount.sh
。这将打开 nano 文本编辑器。然后只需输入以下内容:
#!/bin/bash
mount --bind /dev/sdbx /home/user
每次启动计算机时,此操作都会将 USB 挂载到您的主目录。确保/dev/sdbx
和/home/user
正确无误,然后键入 CTR+X 保存并退出 nano。
当您重新启动计算机时,应该工作。请记住,我有没有真正测试过,因此可能不起作用。
希望这可以帮助!
答案2
现在有一个名为“正在开发中”systemd
的模块可以解决这个问题!systemd-homed
与此同时,这里有解决方案。每天使用都没有问题。
首先,将 的内容复制/home/you
到 LUKS 加密的 USB 驱动器的根目录。假设没有其他 USB,lsblk
驱动器将始终显示为 ,/dev/sda
加密分区将为/dev/sda1
。
接下来确保如果插入了 USB 驱动器,则加密分区将可用作虚拟块设备。启动时将出现密码提示。在/etc/crypttab
:
encryptedhome /dev/sda1 none luks,noauto
现在,如果可用,请挂载此虚拟设备。如果未插入,将短暂等待超时,但启动将正常进行。在/etc/fstab
:
/dev/mapper/encryptedhome /home/you ext4 defaults,nofail 0 2
您的外部主目录将挂载在现有 vanilla 目录之上。像这样将内容挂载在现有目录之上只会使现有目录在挂载期间不可用。其中的所有数据仍保持安全。