我正在尝试在两个独立的 Ubuntu 安装之间“共享”主目录。我的硬盘上有一个 Ubuntu 11.04 安装,带有一个使用加密的独立 /home 分区。我的数据目前存放在那里。
我刚刚买了一个新的 SSD,并在其上安装了 Ubuntu 12.04。我想做的是使用 Ubuntu 12.04 安装作为系统驱动器,但将所有数据存储在 Ubuntu 11.04 /home 分区上。在新的 12.04 安装中,我确实包含了一个用于存储系统配置和程序的 /home 文件夹,但我希望能够从 11.04 安装中挂载 /home 分区来存储我的所有数据。
我能够从 11.04 挂载加密的 /home 分区,但这不是一个无缝衔接的过程,因为一旦将其挂载到 /media,您就需要 root 权限才能对其进行编辑访问。有没有办法挂载/自动挂载并“登录”到 /home 数据分区,并在 12.04 安装中无缝使用该分区?
答案1
这实际上不是一个你是否可以做到的问题,而是一个你愿意在多大程度上妥协你的加密的问题。
正如您所发现的,您可以从任何系统安装任何加密分区。但要做到这一点,您必须拥有凭据(解密的密码或密钥)。如果您希望系统能够自动安装加密的内容,那么您必须给它加密的密钥,在这种情况下,最直接的解决方案(如果您选择自动挂载,可能也是唯一的解决方案)是将密码以纯文本形式存储,并在启动时对其进行访问。这样做的原因是,当您登录时,您的系统必须能够读取一些 home/
除非凭据存储在加密分区之外的某个易受攻击的地方,否则您需要先在某个地方手动提供凭据。
无论如何,这一点毫无意义。/home
在两个主要版本之间共享不是一个好主意——您的点文件在两个主要版本之间的解释方式不会相同,并且某些设置要么会损坏,要么根本无法按您期望的方式工作(或根本无法工作)。
我建议,与其共享/home
自身,不如使用第三个分区,其中包含诸如documents/
、、、以及您自己实际使用的任何其他应用程序数据,并将点文件、设置、浏览器历史记录等分开。实现此目的的一种简单方法是将默认用户数据目录替换为指向您的安装位置的符号链接。例如:videos/
pictures/
bin/
sda1 -> mounted at / for 11.04
sda2 -> mounted at / 12.04
sda3 -> encrypted, mounted at /home/you/mnt/ under both
sda3 将包含你的用户数据,因此当你挂载它时,你将获得
/home/you/mnt/documents
/home/you/mnt/pictures
/home/you/mnt/videos
/home/you/mnt/music
/home/you/mnt/bin
# ...etc
您的原始目录将被以下形式的符号链接替换:
/home/you/documents -> /home/you/mnt/documents
/home/you/pictures -> /home/you/mnt/pictures
# ...etc.
安装 sda3 将总是首次访问其中的任何内容时需要提供额外的凭据,但这仅在首次挂载时才需要发生。 在/etc/auto.master
每个系统下明确放置挂载位置应该会导致首次访问数据时出现 LUKS 密码提示 - 但正确的方法可能需要一些研究(我只在 RHEL 和 Gentoo 上这样做过,不知道 Ubuntu 中可能有什么区别)。
无论如何,您试图实现的效果当然是一个合理的目标,但是通过在主要版本之间直接共享加密的主目录来进行快捷方式的安全性要低得多,并且最终会带来比其价值更多的麻烦。