在 USB 记忆棒上保留主目录的正确方法是什么?

Sqe*_*tet 5 boot usb mount login

我正在尝试做一些看起来很明显但似乎没有其他人在做的事情。我想将我的主目录保存在加密的 USB 驱动器上,以便在香草 Ubuntu 安装上的香草主目录“顶部”插入和拔出。

它确实有效,有点。我目前的工作流程:

  1. 在登录屏幕上,ctrl+alt+f2对新 TTY 执行操作。以 root 身份登录(已设置 root 密码以允许这样做)。将加密卷安装在/home/me
  2. 回到 TTY7,以我的身份登录并在正确安装的家中工作
  3. 退出登录屏幕,ctrl+alt+f2返回终端,以 root 身份登录并卸载/home/me

但是在第 3 步,在尝试卸载我的主目录时,我得到了Device busy,并lsof显示了数百个使用它的进程。这似乎是因为当您“注销”到登录屏幕时,Ubuntu 不会将您注销。所以我只是直接关闭,而不是先卸载。好像不是很干净。

注意:我有一个硬件问题,如果我修改grub配置以引导到 shell 提示符,我的机器将无法使用。无论如何,这应该不是 Ubuntu 的方式。

但是必须有更好的方法来做到这一点。一个主意?

Sqe*_*tet 0

现在有一个systemd正在开发中的模块systemd-homed可以解决这个问题!

与此同时,解决方案如下。每天使用都没有问题。

首先,将 的内容复制/home/you到 LUKS 加密的 USB 驱动器的根目录。假设不存在其他 USB,lsblk驱动器将始终显示为/dev/sda,加密分区将为/dev/sda1

接下来确保如果插入 USB 驱动器,则加密分区将可用作虚拟块设备。启动时会出现密码提示。在/etc/crypttab

encryptedhome /dev/sda1 none luks,noauto
Run Code Online (Sandbox Code Playgroud)

现在,安装此虚拟设备(如果可用)。如果未插入,将会有短暂的等待超时,但启动将正常进行。在/etc/fstab

/dev/mapper/encryptedhome /home/you ext4 defaults,nofail 0 2
Run Code Online (Sandbox Code Playgroud)

您的外部主目录将安装在现有的普通目录之上。像这样将内容挂载到现有目录之上只会使现有目录在挂载期间不可用。其中的所有数据都是安全的。