在Ubuntu 11.10上,有可能通过在启动时input一个密码来解密用LUKS / LVMencryption的两个硬盘?

这里是我的configuration: – 2个硬盘, – 第一个使用LUKS和LVM进行encryption。 我想在卷组中join第二块硬盘。 我已经成功安装并encryption了它。 但是,当我启动时,我必须input两个密码来解密这两个硬盘。

没有办法只使用一个?

我终于find一个技巧,只input一个密码,并encryption所有的物理磁盘。

我使用密码encryption第一个,我使用存储在第一个硬盘(/ root / mykeyfile)上的密钥文件对第二个encryption。

并在/ etc / crypttab文件中的更正行,它的窍门。

更新/ etc / crypttab

sda5_crypt UUID = fb07f1e8-a569-4db9-9fd7-fc1994e093b5 none luks

sdb1_crypt UUID = 4c0687f0-d7af-4f2e-9c57-5ca8e909d492 / root / mykeyfile luks

在Ubuntu上,可以使用来自根目录的派生密钥作为其他文件系统上的附encryption钥。 这有利于将其他驱动器的密钥保存在文件系统本身之外。

在这之前,首先确保/ tmp只安装在RAM上! 我build议单用户模式进行这种改变。

mount -t ramfs none /tmp 

然后,您可以导出派生的密钥:

 # replace vda5_crypt with the cryptsetup name of your root luks # have a look in /dev/mapper or 'pvdisplay' to find it... /lib/cryptsetup/scripts/decrypt_derived vda5_crypt > /tmp/key 

然后添加到您的其他设备(S):

 # use your own disks here instead of sdb1 sdc1 sdd1 etc cryptsetup luksAddKey /dev/sdb1 /tmp/key cryptsetup luksAddKey /dev/sdc1 /tmp/key cryptsetup luksAddKey /dev/sdd1 /tmp/key rm /tmp/key 

这将启用ubuntu init脚本,一旦root被解锁,就可以使用派生的密钥来解锁其余的块设备,并在/ dev / mapper下类似地使用它们。 我不确定他们是否需要/ etc / crypttab条目 – 先尝试它们,如果它们没有出现,就把它们放到没有密钥的crypttab中,它应该解除它们。

(我还没有testing过这个。)

不,没有办法做到这一点。

理论上,您可以在自定义引导脚本中设置临时环境variables,然后由初始化脚本引用您的解密过程。 实际上我是在几年前做的。

你的另一个select是为你的硬盘驱动器创build一个init脚本,然后编写一个自定义的脚本来input你的密码,然后进行两个解密过程。

作为替代,您可以将LVM卷扩展到第二个驱动器。 如果我没有记错,encryption应该继续。