最近,AMD有一个名为安全内存加密的特性,如果可用,可以通过将这个参数添加到linux的命令行来显式地启用它。
mem_encrypt=on(根据https://libvirt.org/kbase/launch_安全性_sev.html)
我不确定我的系统(带有AMD EPYC cpu)是否启用了此功能(也就是说,该功能可能是默认的)。
我的问题是如何检查是否启用了AMD中小企业功能?
因为https://www.kernel.org/doc/html/latest/x86/amd-memory-encryption.html建议:
如果存在对中小企业的支持,则可以使用MSR0xc00100010 (MSR_K8_SYSCFG)来确定是否启用了中小企业和/或启用了内存加密:
我已经运行了以下命令(在debian 10上):
apt-get install msr-tools
rdmsr --raw 0xc0010010 | xxd -b它给了我这个输出
00000000: 00000000 00000000 11110100 00000000 00000000 00000000 ......
00000006: 00000000 00000000根据引用的消息来源,第23位表示中小企业是否确实启用/活动(=1)或不启用(=0)。
如果上面的方法确实是测试这一点的正确方法,那么确认可以被认为是一个有效的答案,当然,最好是提供一些背景信息。否则,我很高兴能够在运行中的linux系统上检查中小企业的状态。
发布于 2021-01-04 11:52:14
如果支持中小企业(CPUID显示相应的位集)并启用(设置了适当的MSR位),/proc/cpuinfo将包含sme标志。您可以通过查看检测中小企业的内核代码验证这一点:如果中小企业没有完全启用,直接反映在/proc/cpuinfo中的中小企业特性将被清除。
您还应该看到内核引导日志中的相应消息:
AMD内存加密功能活动:中小企业
如果中小企业活跃,
AMD内存加密功能激活: SEV
如果SEV和/或SEV是活动的.
https://unix.stackexchange.com/questions/627453
复制相似问题