情况:
1)我正在使用 systemd 暂停到磁盘:systemctl hibernate
2)我在加密块设备上安装了文件系统,dmsetup suspend device
在进入休眠状态之前我暂停使用该文件系统以便擦除密钥。
问题:
休眠状态持续于
systemd-sleep[7366]: Suspending system...
kernel: PM: Hibernation mode set to 'platform'
kernel: PM: Syncing filesystems ...
如果我恢复(dmsetup resume device
),那么同步就可以完成,休眠将继续
有没有其他方法可以在进入休眠状态时在同步之后发出挂起命令?或者还有其他方法可以擦除加密密钥,让我可以安全地进入休眠状态(除了加密交换分区)?
答案1
一个解决方案似乎是使用以下 systemd 单元:
[Unit]
Description=test
After=<target>
[Service]
Type=oneshot
ExecStart=/path/to/wipe
[Install]
WantedBy=<target>
<target>
是所需模式的对应目标。从systemd-suspend.service 手册页:
suspend.target
,hibernate.target
, 或者hybrid-sleep.target
脚本如下wipe
:
dmsetup suspend "$name"
dmsetup message "$name" 0 key wipe