我最近花了一些时间使用自加密 SSD,但在解锁后如何访问驱动器内容却陷入困境。
通常使用此驱动器,您将在启动时加载预启动身份验证映像,该映像将解锁包含操作系统的分区,并且您将在/dev
操作系统启动时看到解锁的分区。但是,我使用该驱动器作为辅助存储,并且希望能够在操作系统启动后解锁它。这是我想要实现的行为:
/dev/nvme0
存在于/dev
目录中,但您看不到任何分区,因为它已锁定。正是我所期望的!- 发出 TCG Opal 命令来解锁驱动器。使用 TCG 识别命令确认驱动器已解锁。成功!
- ??? <-----这就是我被困住的地方
/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 下运行。