如何在现有 LUKS 容器上安装 Debian如何在现有 LUKS 容器上安装 Debian如何在现有 LUKS 容器上安装 Debian如何在现有 LUKS 容器上安装 Debian
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何在现有 LUKS 容器上安装 Debian

发表 admin at 2025年2月28日
类别
  • 未分类
标签
コアサーバーV2プランご契約でドメイン更新費用が永久無料

LUKS(Linux 统一密钥设置)是基于 Linux 的系统上使用的事实上的标准加密方法。虽然 Debian 安装程序完全能够创建 LUKS 容器,但它缺乏识别并因此重用现有容器的能力。在本文中,我们将了解如何使用“DVD1”安装程序并在“高级”模式下运行它来解决此问题。

在本教程中您将学习:

  • 如何在“高级模式”下安装 Debian

  • 如何加载解锁现有 LUKS 设备所需的安装程序附加模块

  • 如何在现有 LUKS 容器上执行安装

  • 如何在新安装的系统的crypttab文件中添加条目并重新生成其initramfs

如何在现有 LUKS 容器上安装 Debian

使用的软件要求和约定

问题:重新使用现有的 LUKS 容器

正如我们已经说过的,Debian 安装程序完全能够在 LUKS 容器上创建和安装发行版(一种典型的设置是 LUKS 上的 LVM),但是它目前无法识别和打开已经存在的 一;为什么我们需要这个功能?例如,假设我们已经手动创建了一个 LUKS 容器,其中包含一些无法从发行版安装程序中进行微调的加密设置,或者假设我们在容器内有一些我们不想销毁的逻辑卷(也许它包含一些数据);通过使用安装程序标准过程,我们将被迫创建一个新的 LUKS 容器,从而销毁现有的容器。在本教程中,我们将了解如何通过几个额外的步骤来解决这个问题。

下载 DVD 安装程序

为了能够执行本教程中描述的操作,我们必须下载并使用 Debian DVD 安装程序,因为它包含一些 netinstall 版本中不可用的库。要通过 torrent 下载安装映像,我们可以使用以下链接之一,具体取决于我们机器的架构:

  • 64位

  • 32位

从上面的链接我们可以下载 torrent 文件,我们可以使用它来获取安装程序的映像。我们需要下载的是 DVD1 文件。要获取安装 ISO,我们必须使用 torrent 客户端作为传输。下载镜像后,我们可以通过下载相应的 SHA256SUM 和 SHA256SUM.sign 文件来验证它,并按照本教程了解如何验证 Linux 发行版 iso 的完整性图像。准备好后,我们可以将映像写入可用作启动设备的支持上:(DVD 或 USB),并从中启动我们的计算机。

使用高级安装模式

当我们使用我们准备的设备启动机器时,我们应该看到以下syslinux菜单:

我们选择高级选项条目,然后图形专家安装(或者专家安装,如果我们想使用基于ncurses的安装程序,它使用资源较少):

一旦我们选择并确认菜单条目,安装程序将启动,我们将可视化安装步骤列表:

我们按照安装步骤进行操作,直到到达从 CD 加载安装程序组件这一处。在这里,我们进行了更改以选择安装程序应加载的其他库。我们要从列表中选择的最小值是 Crypto-dm-modules 和 rescue-mode (向下滚动列表即可看到它):

手动解锁现有 LUKS 容器并对磁盘进行分区

此时,我们可以照常继续,直到到达检测磁盘步骤。在执行此步骤之前,我们需要切换到 tty 并从命令行打开现有的 LUKS 容器。为此,我们可以按Ctrl+Alt+F3组合键,然后按Enter以获得提示。根据提示,我们通过启动以下命令来打开 LUKS 设备:

# cryptsetup luksOpen /dev/vda5 cryptdevice
Enter passphrase for /dev/vda5:

在这种情况下,LUKS 设备先前设置在 /dev/vda5 分区上,您当然应该根据您的需要进行调整。我们将被要求输入容器的密码才能解锁它。我们在这里使用的设备映射器名称 (cryptdevice) 是我们稍后在 /etc/crypttab 文件中需要使用的名称。

执行此步骤后,我们可以切换回安装程序(Ctrl+Alt+F5)并继续检测磁盘,然后分区磁盘强>步骤。在分区磁盘菜单中,我们选择“手动”条目:

解锁的 LUKS 设备及其中包含的逻辑卷应该出现在可用分区列表中,准备用作我们系统设置的目标。准备就绪后,我们可以继续安装,直到到达完成安装步骤。在执行此操作之前,我们需要在新安装的系统 crypttab 中为 LUKS 设备创建一个条目(因为默认情况下不会创建该条目),并重新创建系统 initramfs 以使更改生效。

在 /etc/crypttab 中创建条目并重新创建 initramfs

让我们切换回之前使用的 tty (Ctrl+Alt+F3)。我们现在需要做的是在新安装的系统的 /etc/crypttab 文件中为 LUKS 设备手动添加一个条目。为此,我们必须将新系统的根分区挂载到某个位置(让我们使用 /mnt 目录)并挂载一些伪文件系统,这些文件系统提供有关其中相应目录的重要信息。在我们的例子中,根文件系统位于 /dev/debian-vg/root 逻辑卷中:

# mount /dev/debian-vg/root /mnt
# mount /dev /mnt/dev
# mount /sys /mnt/sys
# mount /proc /mnt/proc

由于在本例中我们有一个单独的启动分区(/dev/vda1),因此我们还需要将其安装在/mnt/boot上:

# mount /dev/vda1 /mnt/boot

此时我们必须 chroot 进入已安装的系统:

# chroot /mnt

最后,我们可以使用可用的文本编辑器之一(例如 vi)打开 /etc/crypttab 文件,并添加以下条目:

cryptdevice /dev/vda5 none luks

上面一行中的第一个元素是我们在上面手动解锁 LUKS 容器时使用的设备映射器名称;每次系统启动期间打开容器时都会使用它。

第二个元素是用作 LUKS 设备的分区(在本例中,我们通过路径 (/dev/vda5) 引用它,但更好的主意是通过 UUID)。

第三个元素是用于打开容器的密钥文件的位置:这里我们放置none,因为我们不使用密钥文件(请按照我们的关于如何使用文件作为 LUKS 设备密钥的教程进行操作,如果您想知道如何实现这种设置)。

该行的最后一个元素包含应用于加密设备的选项:这里我们只是使用 luks 来指定该设备是 LUKS 容器。

一旦我们更新了/etc/crypttab文件,我们就可以进一步进行并重新生成initramfs。在 Debian 和基于 debian 的发行版上,要执行此操作,我们使用 update-initramfs 命令:

# update-initramfs -k all -c

这里我们使用 -c 选项来指示命令创建一个新的 initramfs 而不是更新现有的 initramfs,并使用 -k 来指定应该为哪个内核创建 initramfs 。在本例中,我们将 all 作为参数传递,因此将为每个现有内核生成一个。

生成 initramfs 后,我们切换回安装程序(Ctrl+Alt+F5)并继续最后一步:完成安装。安装时我们会提示重新启动才能访问新安装的系统。如果一切按预期进行,在系统启动期间,系统应该提示我们输入密码来解锁 LUKS 容器:

结论

在本教程中,我们学习了如何解决 Debian 安装程序的限制,该限制无法识别和打开现有的 LUKS 容器以在其中执行系统安装。我们学习了如何在“高级模式”下使用安装程序来加载一些附加模块,这些模块允许我们通过切换到 tty 来手动解锁容器。一旦容器打开,安装人员就会正确识别它,并且可以毫无问题地使用。此设置中唯一棘手的部分是我们必须记住在新安装的系统 crypttab 文件中为容器创建一个条目,并更新其 initramfs。

©2015-2025 Norria support@alaica.com