管理自加密驱动器#
NVIDIA DGX OS 软件支持管理自加密驱动器 (SED) 的功能,包括为 NVIDIA DGX B200、DGX H100/H200、DGX A100、DGX A800、DGX Station A100 和 DGX-2 系统上的驱动器设置用于锁定和解锁的身份验证密钥。
您只能管理 SED 数据驱动器。即使操作系统驱动器支持 SED,该软件也不能用于管理操作系统驱动器。
概述#
SED 管理软件位于 nv-disk-encrypt
软件包中。
该软件支持以下配置
NVIDIA DGX B200、DGX H100/H200、DGX A100、DGX A800、DGX Station A100 和 DGX-2 系统,其中所有数据驱动器均为自加密驱动器。
仅支持用作数据驱动器的 SED。
该软件不会管理作为操作系统驱动器的 SED。
该软件提供以下功能
识别系统上符合条件的驱动器。
允许您在初始化过程中为每个 SED 分配身份验证密钥(密码)。
或者,该软件可以为每个驱动器生成随机密码。
密码存储在系统上受密码保护的保险库中。
初始化后,SED 在断电时会被锁定,例如系统关机或驱动器移除。
恢复供电并挂载根文件系统后,锁定的驱动器将被解锁。
提供导出保险库的功能。
提供擦除驱动器数据的功能。
提供恢复初始化的能力。
安装软件#
使用软件包管理器安装 nv-disk-encrypt
软件包,以及可选的 TPM2 工具软件包,并重启系统。如果您计划使用 TPM2 存储安全密钥,则需要 TPM 工具软件包。
更新软件包。
sudo apt update
安装
nv-disk-encrypt
。sudo apt install -y nv-disk-encrypt
(可选)安装 TPM 工具软件包。
对于 DGX A100、DGX Station A100、DGX H100/H200 或 DGX B200,安装
tpm2-tools
软件包。
sudo apt install -y tpm2-tools
对于 DGX-2,安装
tpm-tools
软件包。
sudo apt install -y tpm-tools
重启。
sudo reboot
如果您计划使用 TPM2,请启用它。有关更多信息,请参阅配置可信计算。
配置可信计算#
以下是配置可信计算 (TC) 所需控件的一些信息。
DGX 系统 BIOS 提供了用于配置以下 TC 功能的设置控件
可信平台模块
NVIDIA DGX B200、DGX H100/H200、DGX A100、DGX A800 和 DGX Station A100 采用了可信平台模块 2.0 (TPM 2.0)。DGX-2 采用了 TPM 模块。这些模块可以从系统 BIOS 启用,并与 nv-disk-encrypt 工具结合使用。启用后,
nv-disk-encrypt
工具将使用 TPM 进行加密,并将保险库和 SED 身份验证密钥存储在 TPM 上,而不是文件系统上。使用 TPM 是首选方法,因为即使系统重置映像,也允许保险库数据持久存在。阻止 SID
DGX 系统随附的某些驱动器支持阻止 SID 身份验证功能。阻止 SID 身份验证可防止恶意行为者获取驱动器的所有权,并阻止其他人使用驱动器。默认情况下,DGX BIOS 将发送阻止 SID 请求。在此类设置中,您需要在 BIOS 中启用“禁用阻止 Sid”功能,然后再继续执行初始化步骤。
注意
启用“禁用阻止 SID”选项仅对一次重启有效,因此如果需要再次启用驱动器加密,则也需要在 BIOS 中启用该功能。
确定驱动器是否支持 SID#
驱动器型号是驱动器是否支持此功能的一个良好指示。发出以下命令并查找以下型号字符串之一
KCM6DRUL3T84
KCM6DRUL7T68
MZQLB7T6HMLA-00007
sudo nvme list
Node SN Model
------------- ----------------------------- -----
/dev/nvme0n1 70H0A0AHTTHR KCM6DRUL3T84 ...
/dev/nvme1n1 70H0A007TTHR KCM6DRUL3T84
启用 TPM 并阻止 BIOS 发送阻止 SID 请求#
本节提供启用 TPM 并阻止 SBIOS 发送阻止 SID 请求的说明。每个任务都是独立的,因此您可以选择要完成的任务。
重启系统,然后在 NVIDIA 启动画面中按 [Del] 或 [F2] 进入 BIOS 设置。
导航到顶部菜单上的“Advanced”(高级)选项卡,然后滚动到“Trusted Computing”(可信计算)并按 [Enter]。
要启用 TPM,请滚动到“Security Device”(安全设备),然后将设置切换为“Enabled”(已启用)。
要禁用阻止 SID,请转到右侧的“Security”(安全)选项卡,然后滚动到“Disable Block Sid”(禁用阻止 Sid),然后切换为“Enabled”(已启用)。
保存并退出 BIOS 设置以继续启动过程。
如果您禁用了阻止 SID,系统将提示您接受禁用发出阻止 SID 身份验证命令的请求。
在提示符下按 F10。系统启动后,您可以继续初始化驱动器加密。
初始化系统以进行驱动器加密#
以下是关于如何初始化系统以进行驱动器加密的一些信息。
注意
在初始化驱动器加密之前,请查看配置可信计算中的信息,并根据需要按照配置说明进行操作。
使用 nv-disk-encrypt 命令初始化系统以进行驱动器加密。
sudo nv-disk-encrypt init [-k <your-vault-password>] [-f <path/to/json-file>] [-g] [- r]
以下是选项列表
-k:允许您在命令中创建保险库密码。
否则,软件将提示您在继续之前创建密码。
-f:允许您指定一个 JSON 文件,其中包含密码到驱动器的映射。
有关更多说明,请参阅“示例 1:传入 JSON 文件”。
-g:为每个驱动器密码生成随机 salt 值(存储在
/etc/nv-disk-encrypt/.dgxenc.salt
中)。Salt 值是添加到密码中以增强密码安全性的字符。NVIDIA 强烈建议使用此选项以获得最佳安全性,否则软件将使用默认 salt 值而不是随机生成的 salt 值。
-r:为每个驱动器生成随机密码。
这样可以避免创建 JSON 文件或在初始化期间逐个输入密码的需求。
启用驱动器锁定#
在初始化系统以进行 SED 管理后,发出以下命令,该命令使用 nv-disk-encrypt
命令来启用驱动器锁定。
sudo nv-disk-encrypt lock
在初始化系统并启用驱动器锁定后,驱动器在断电时将被锁定。当系统恢复供电并重启时,系统将自动解锁每个驱动器。
初始化示例#
本节提供一些初始化示例。
示例 1:传入 JSON 文件#
本节中的以下说明描述了一种提前指定驱动器/密码映射的方法。此方法对于一次初始化多个驱动器非常有用,并且避免了在发出初始化命令后为每个驱动器输入密码的需求,或者如果您想要控制密码。
有关更多信息,请参阅以下内容
确定哪些驱动器可以作为自加密驱动器进行管理#
以下是关于如何确定哪些驱动器可以作为自加密驱动器进行管理的一些信息。
查看 DGX 系统的存储布局,以确定哪些驱动器符合条件可以作为 SED 进行管理。
sudo nv-disk-encrypt info
默认输出显示哪些驱动器可以用于加密,哪些驱动器不能。提供以下状态信息
SED capable: 这是否是自加密驱动器?
Boot disk: 此驱动器当前是否用作启动盘?它是否包含根文件系统?
Locked: 此驱动器当前是否处于锁定状态?它是否可以接受 I/O?只有在满足以下条件后才能处于此状态
已启用锁定(nv-disk-encrypt init,然后是
nv-disk-encrypt init
lock)驱动器从断电状态恢复。
用户在驱动器(自动)解锁之前查询此状态。
Lock Enabled: 是否在此驱动器上启用了锁定?它将在初始化后处于此状态(
nv- disk-encrypt init
)。MBR done: 此设置仅与支持 MBR 阴影的驱动器相关。在支持此功能的驱动器上,这将在初始化后报告“Y”(
nv-disk-encrypt init
)
MBR done: 此设置仅与支持 MBR 阴影的驱动器相关。在支持此功能的驱动器上,这将在初始化后报告“Y”(nv-disk-encrypt init
)
以下示例输出片段显示了可以用于加密的驱动器。请注意 SED capable = Y 和 Boot disk = N。

以下示例输出片段显示了不能用于加密的驱动器。请注意 SED capable = Y 和 Boot disk = Y,或 SED capable = N。

或者,您可以使用 -j
选项指定以 JSON 格式呈现输出。
sudo nv-disk-encrypt info -j
在这种情况下,可以用于加密的驱动器由以下内容指示
"sed_capable": true "used_for_boot": false
不能用于加密的驱动器由以下内容之一指示
"sed_capable": true "used_for_boot": true
或
"sed_capable": false
创建驱动器/密码映射 JSON 文件并使用它来初始化系统#
您可以通过创建驱动器和密码映射 JSON 文件来初始化系统。
创建一个 JSON 文件,其中列出您要管理的所有符合条件的 SED 功能驱动器。
注意
这些是您从确定哪些驱动器可以作为自加密驱动器进行管理中获得的驱动器列表
以下示例显示了 JSON 文件的格式。
{ "/dev/nvme2n1": "<your-password>", "/dev/nvme3n1": "<your-password>", "/dev/nvme4n1": "<your-password>", "/dev/nvme5n1": "<your-password>", }
确保您完全遵循语法。
密码必须仅包含大写字母、小写字母、数字和/或以下特殊字符:~ : @ % ^ + = _ ,
初始化系统,然后启用锁定。
以下命令假定您已将 JSON 文件放置在 /tmp 目录中。
sudo nv-disk-encrypt init -f /tmp/<your-file>.json -g sudo nv-disk-encrypt lock
当出现提示时,输入保险库的密码。
密码必须仅包含大写字母、小写字母、数字和/或以下特殊字符:~ : @ % ^ + = _ ,
示例 2:生成随机密码#
本主题中的命令使用 -k
和 -r
选项,以便不会提示您输入密码。您将保险库密码传递到命令中,然后该命令指示工具为每个驱动器生成随机密码。
保险库密码必须仅包含大写字母、小写字母、数字和/或以下特殊字符:~ : @ % ^ + = _ ,
sudo nv-disk-encrypt init -k <your-vault-password> -g -r
sudo nv-disk-encrypt lock
示例 3:在提示时一次指定一个密码#
如果驱动器数量较少,或者您不想创建 JSON 文件,请发出以下命令。
sudo nv-disk-encrypt init -g
sudo nv-disk-encrypt lock
软件会提示您输入保险库的密码,然后提示您输入每个符合条件的 SED 的密码。
密码必须仅包含大写字母、小写字母、数字和/或以下特殊字符:~ : @ % ^ + = _ ,
禁用驱动器锁定#
要在初始化后随时禁用驱动器锁定,请运行以下命令:$ sudo nv-disk-encrypt disable
此命令将禁用所有驱动器上的锁定。在此过程完成后,您可以随时再次运行初始设置。
启用驱动器锁定#
在初始化系统以进行 SED 管理后,发出以下命令,该命令使用 nv-disk-encrypt 命令来启用驱动器锁定。
sudo nv-disk-encrypt lock
在初始化系统并启用驱动器锁定后,驱动器在断电时将被锁定。当系统恢复供电并重启时,系统将自动解锁每个驱动器。
导出保险库#
以下是关于如何导出保险库的一些信息。
要将所有驱动器密钥导出到文件,请使用导出功能。这需要您传入保险库密码。
sudo nv-disk-encrypt export -k yourvaultpassword
Writing vault data to /tmp/secrets.out
擦除您的数据#
以下是关于如何擦除您的数据的一些信息。
注意
请注意,执行此操作后,所有数据都将丢失。在 DGX B200 和 DGX H100/H200 系统上,这些驱动器通常构成 RAID 0 阵列,当您执行擦除时,此阵列也将被销毁。
在初始化系统以进行 SED 管理后,在停止 cachefilesd 并卸载 RAID 阵列后,使用 nv-disk-encrypt 命令擦除驱动器上的数据,如下所示。
完全停止 RAID。
systemctl stop cachefilesd sudo umount /raid sudo mdadm --stop /dev/md1
执行擦除。
sudo nv-disk-encrypt erase
此命令执行以下操作
将驱动器设置为解锁状态。
禁用驱动器上的锁定。
删除 RAID 0 阵列配置。
要重建 RAID 阵列,请发出以下命令
sudo /usr/bin/configure_raid_array.py -c -f
清除 TPM#
如果您丢失了 TPM 的密码,您将无法访问其内容。在这种情况下,重新获得对 TPM 的访问权限的唯一方法是清除 TPM 的内容。清除 TPM 后,您需要重新初始化保险库和 SED 身份验证密钥。
重启系统,然后在 NVIDIA 启动画面中按 [Del] 或 [F2] 进入 BIOS 设置。
导航到顶部菜单上的“Advanced”(高级)选项卡,滚动到“Trusted Computing”(可信计算),然后按 [Enter]。
清除 TPM2。
滚动到“Trusted Computing”(可信计算)并按 [Enter]。
滚动到“Pending Operation”(待处理操作)并按 [Enter]。
在“Pending Operation”(待处理操作)弹出窗口中选择“TPM Clear”(TPM 清除)并按 [Enter]。
保存并退出 BIOS 设置。
更改磁盘密码、添加磁盘或更换磁盘#
更改或轮换密码、添加磁盘或更换磁盘需要相同的步骤。
禁用 SED 管理。
sudo nv-disk-encrypt disable
根据需要添加或更换驱动器,然后重建 RAID 阵列。有关更多信息,请参阅您系统的《服务手册》。
按照初始化系统以进行驱动器加密中的说明启用 SED 管理并分配密码。
从丢失的密钥中恢复#
NVIDIA 建议备份您的密钥并将其存储在安全位置。如果您丢失了用于初始化和锁定驱动器的密钥,您将无法再次解锁驱动器。如果发生这种情况,唯一的恢复方法是执行恢复出厂设置,这将导致数据丢失。
SED 驱动器标签上印有 PSID;此值只能通过物理检查驱动器获得,如下面的图像所示。

指定 PSID 以使用以下 sedutil-cli 命令重置驱动器
sudo sedutil-cli ----yesIreallywanttoERASEALLmydatausingthePSID yourdrivesPSID /dev/nvme3n1