如何在解锁后让自加密 NVMe SSD 分区显示在 /dev 中?

如何在解锁后让自加密 NVMe SSD 分区显示在 /dev 中?

我最近花了一些时间使用自加密 SSD,但在解锁后如何访问驱动器内容却陷入困境。

通常使用此驱动器,您将在启动时加载预启动身份验证映像,该映像将解锁包含操作系统的分区,并且您将在/dev操作系统启动时看到解锁的分区。但是,我使用该驱动器作为辅助存储,并且希望能够在操作系统启动后解锁它。这是我想要实现的行为:

  1. /dev/nvme0存在于/dev目录中,但您看不到任何分区,因为它已锁定。正是我所期望的!
  2. 发出 TCG Opal 命令来解锁驱动器。使用 TCG 识别命令确认驱动器已解锁。成功!
  3. ??? <-----这就是我被困住的地方
  4. /dev/nvme0n1p*驱动器上的每个分区都存在于/dev

对于步骤 3,我需要做什么才能强制重新读取设备,以便在解锁后可以看到分区?这是我可以通过编程来完成的事情,还是我必须调用某种脚本?

答案1

我没有可以用来测试这些命令的自加密 NVMe 磁盘。但根据重新扫描 SAN LUN 分区的方式,以下方法中至少一种可能有效:

echo 1 > /sys/class/nvme/nvme0/rescan_controller

或者

partprobe /dev/nvme0n1

答案2

sudo blockdev --rereadpt -v /dev/nvme0n1

我也用这个脚本

#! /bin/bash

SCSI=/sys/class/scsi_host
test ! -d "$SCSI" && echo "Error: cannot find the $SCSI directory." && exit 1
cd "$SCSI" || exit 1

for i in *; do
    echo -n "Scanning $i ..."
    echo "- - -" > $i/scan && echo " done."
done

echo "Finished. Consult with 'dmesg' for details."

必须在 root/sudo 下运行。

相关内容