摘自:https://github.com/Drive-Trust-Alliance/sedutil/wiki/Encrypting-your-drive
启用休眠
打开终端。
键入以下命令以验证系统可以休眠:
# sudo systemctl hibernate
如果休眠起作用,您可以使用该命令按需休眠或创建文件以将休眠选项添加到菜单系统:
创建 /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla
。将以下内容添加到文件中,然后保存:
[Re-enable hibernate by default in upower]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes
[Re-enable hibernate by default in logind]
Identity=unix-user:*
Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
如果休眠不起作用:
检查交换分区是否至少与可用 RAM 一样大。
已知 btrfs 分区会使休眠失败,因此请确保您未使用任何 btrfs 分区。除了删除或重新格式化此类分区,您可能还需要删除 btrfs-tools 程序包:
# sudo apt purge btrfs-tools
通过启用 allow_tpm 使 sedutil 正常工作
您必须启用 TPM:
libata.allow_tpm=1
...必须添加到您的 Grub 的参数中。
在 /etc/default/grub
中,这意味着应该有类似如下的一行内容:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash libata.allow_tpm=1"
然后更新 grub 并重新启动。
# sudo update-grub
加密驱动器
摘自:https://github.com/Drive-Trust-Alliance/sedutil/wiki/Encrypting-your-drive
准备可启动的救援系统
下载适用于 BIOS 或 64 位 UEFI 计算机的救援系统。
* UEFI 支持要求关闭安全启动。
解压缩救援系统:(Windows 用户必须使用 7-zip )
gunzip RESCUE32.img.gz
--或--gunzip RESCUE64.img.gz
将救援映像传输到 USB 记忆棒。
Linux:dd if=RESCUE32.img of=/dev/sd?
(/dev/sd?
是 USB 记忆棒基本设备节点,无编号)
--或--dd if=RESCUE64.img of=/dev/sd?
Windows:使用 sourceforge 中的 Win32DiskImager 将映像写入 USB 记忆棒。
启动包含救援系统的 U 盘。您会看到登录提示,输入 root,没有密码,因此您将看到 root shell 提示。
以下所有步骤都应在救援系统上运行。
测试 sedutil
输入命令:sedutil-cli --scan
预期输出:#sedutil-cli --scan
Scanning for Opal compliant disks
/dev/nvme0 2 Samsung SSD 960 EVO 250GB 2B7QCXE7
/dev/sda 2 Crucial_CT250MX200SSD1 MU04
/dev/sdb 12 Samsung SSD 850 EVO 500GB EMT01B6Q
/dev/sdc 2 ST500LT025-1DH142 0001SDM7
/dev/sdd 12 Samsung SSD 850 EVO 250GB EMT01B6Q
No more disks present ending scan.
验证您的驱动器在第二列中有一个 2,这表示 OPAL 2 支持。如果没有,请不要继续,这表明有一些东西阻止 sedutil 支持您的驱动器。如果继续,您可能会擦除所有数据。
测试 PBA
输入命令 linuxpba
,并使用密码 debug。如果不使用 debug 作为密码,系统将重新启动。
预期的输出:#linuxpba
DTA LINUX Pre Boot Authorization
Enter pass-phrase to unlock OPAL drives: *****
Scanning....
Drive /dev/nvme0 Samsung SSD 960 EVO 250GB is OPAL NOT LOCKED
Drive /dev/sda Crucial_CT250MX200SSD1 is OPAL NOT LOCKED
Drive /dev/sdb Samsung SSD 850 EVO 500GB is OPAL NOT LOCKED
Drive /dev/sdc ST500LT025-1DH142 is OPAL NOT LOCKED
Drive /dev/sdd Samsung SSD 850 EVO 250GB is OPAL NOT LOCKED
验证您的驱动器已列出,并且 PBA 将其报告为“is OPAL”。
发出后续步骤中的命令将启用 OPAL 锁定。如果您有问题,则必须按照此页面末尾的步骤(恢复信息)来禁用或删除 OPAL 锁定。
以下步骤使用 /dev/sdc 作为设备,并使用 UEFI64-1.15.img.gz
作为 PBA 映像,请替换为您的驱动器的正确 /dev/sd?
和您的系统的正确 PBA 名称。
启用锁定和 PBA
输入以下命令:(在此测试中使用密码 debug,稍后会更改)
sedutil-cli --initialsetup debug /dev/sdc
sedutil-cli --enablelockingrange 0 debug /dev/sdc
sedutil-cli --setlockingrange 0 lk debug /dev/sdc
sedutil-cli --setmbrdone off debug /dev/sdc
gunzip /usr/sedutil/UEFI64-n.nn.img.gz 将
n.nn
替换为版本号。sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-n.nn.img /dev/sdc 将
n.nn
替换为版本号。
预期的输出:
#sedutil-cli --initialsetup debug /dev/sdc
- 14:06:39.709 INFO: takeOwnership complete
- 14:06:41.703 INFO: Locking SP Activate Complete
- 14:06:42.317 INFO: LockingRange0 disabled
- 14:06:42.694 INFO: LockingRange0 set to RW
- 14:06:43.171 INFO: MBRDone set on
- 14:06:43.515 INFO: MBRDone set on
- 14:06:43.904 INFO: MBREnable set on
- 14:06:43.904 INFO: Initial setup of TPer complete on /dev/sdc
#sedutil-cli --enablelockingrange 0 debug /dev/sdc
- 14:07:24.914 INFO: LockingRange0 enabled ReadLocking,WriteLocking
#sedutil-cli --setlockingrange 0 lk debug /dev/sdc
- 14:07:46.728 INFO: LockingRange0 set to LK
#sedutil-cli --setmbrdone off debug /dev/sdc
- 14:08:21.999 INFO: MBRDone set off
#gunzip /usr/sedutil/UEFI64-1.15.img.gz
#sedutil-cli --loadpbaimage debug /usr/sedutil/UEFI64-1.15.img /dev/sdc
- 14:10:55.328 INFO: Writing PBA to /dev/sdc
33554432 of 33554432 100% blk=1500
- 14:14:04.499 INFO: PBA image /usr/sedutil/UEFI64.img written to /dev/sdc
#
再次测试 PBA
输入命令 linuxpba,然后使用密码 debug。
第二次测试将验证您的驱动器确实已解锁。
预期的输出:
#linuxpba
DTA LINUX 启动前授权
输入密码以解锁 OPAL 驱动器: *****
Scanning....
Drive /dev/nvme0 Samsung SSD 960 EVO 250GB is OPAL NOT LOCKED
Drive /dev/sda Crucial_CT250MX200SSD1 is OPAL NOT LOCKED
Drive /dev/sdb Samsung SSD 850 EVO 500GB is OPAL NOT LOCKED
Drive /dev/sdc ST500LT025-1DH142 is OPAL Unlocked IMPORTANT!!
Drive /dev/sdd Samsung SSD 850 EVO 250GB is OPAL NOT LOCKED
验证 PBA 已解锁您的驱动器,它应显示“is OPAL Unlocked”。如果未解锁,您必须按照此页面末尾的步骤删除 OPAL 或禁用锁定。
设置真正的密码
SID 和 Admin1 密码不必一致,但可以让事情变得更简单。
sedutil-cli --setsidpassword debug yourrealpassword /dev/sdc
sedutil-cli --setadmin1pwd debug yourrealpassword /dev/sdc
预期的输出:
#sedutil-cli --setsidpassword debug yourrealpassword /dev/sdc
#sedutil-cli --setadmin1pwd debug yourrealpassword /dev/sdc
- 14:20:53.352 INFO: Admin1 password changed
测试密码,以确保您没有打错密码。
sedutil-cli --setmbrdone on yourrealpassword /dev/sdc
预期的输出:
#sedutil-cli --setmbrdone on yourrealpassword /dev/sdc
- 14:22:21.590 INFO: MBRDone set on
您的驱动器现在使用 OPAL 锁定。
您现在必须完全关闭系统电源。
这会锁定驱动器,以便在重新启动系统时启动 PBA。
恢复信息:
如果在启用锁定后出现问题,您可以禁用锁定或删除 OPAL 以继续使用驱动器而不锁定。
如果您想要禁用锁定和 PBA:
sedutil-cli -–disableLockingRange 0
sedutil-cli –-setMBREnable off
预期的输出:
#sedutil-cli --disablelockingrange 0 debug /dev/sdc
- 14:07:24.914 INFO: LockingRange0 disabled
#sedutil-cli --setmbrenable off debug /dev/sdc
- 14:08:21.999 INFO: MBREnable set off
您可以使用此命令序列重新启用锁定和 PBA。
sedutil-cli -–enableLockingRange 0
sedutil-cli –-setMBREnable on
预期的输出:
#sedutil-cli --enablelockingrange 0 debug /dev/sdc
- 14:07:24.914 INFO: LockingRange0 enabled ReadLocking,WriteLocking
#sedutil-cli --setmbrenable on debug /dev/sdc
- 14:08:21.999 INFO: MBREnable set on
某些 OPAL 驱动器存在固件错误,如果您发出以下命令,则会擦除所有数据。有关已知的已测试驱动器/固件对的列表,请参阅删除 opal 。
要删除 OPAL,请发出以下命令:
sedutil-cli --revertnoerase
sedutil-cli --reverttper
预期的输出:
#sedutil-cli --revertnoerase debug /dev/sdc
- 14:22:47.060 INFO: Revert LockingSP complete
#sedutil-cli --reverttper debug /dev/sdc
- 14:23:13.968 INFO: revertTper completed successfully
#