Erstens:
kvm-ok
und rdmsr 0x3a
ganz andere Dinge tun.
kvm-ok
, nach ihm man page parst nur /proc/cpuinfo
für die CPU-Flags, die Virtualisierungstechnologie in der CPU zeigen (und prüft dann, ob die notwendige Modul geladen wurde, während rdmsr
spezielle modellspezifischen Register der CPU liest.
Daher
, kvm-ok
tut nichts, Sie root-Rechte benötigen würde für, während rdmsr
kann nicht funktionieren, da Ihr Prozess nicht zu Kontext hat diese Register abzufragen.
rdmsr 0x3a
verwendet werden kann, mit ein paar Tricks um herauszufinden, ob auf einer Intel Core iX oder später XEON-Prozessor wurde die VT-Technologie aktiviert; für performante Virtualisierung, das ist erforderlich, aber nicht ausreichend.
Daher würde ich sagen, gehen Sie einfach voran und tun was kvm-ok
tut manuell.
Prüfung für die erste CPU vmx
oder svm
flags:
grep flags /proc/cpuinfo|head -n1|grep -Eo '(vmx|svm)'
und das kvm Modell verifiziert wurde geladen:
lsmod | grep '^kvm'
Wenn Sie in der Tat, müssen tatsächlich für modellspezifische abfragen registrieren (zum Beispiel, weil aus irgendeinem Grund, auch wenn VT in den UEFI-Einstellungen deaktiviert ist, das vmx
Flag vorhanden ist), würde der einfachste Weg sicherlich nur die Befugnisse von sudo verwenden, um das Programm zu spezifizieren sind rdmsr
genau mit den Argumenten ausgeführt werden 0x3a
durch den Benutzer Ihrer Wahl ohne Passwort (die es daemonuser
rufen lassen) (siehe man sudoers
oder Ihre /usr/share/doc/sudo/examples/sudoers
):
daemonuser ALL = NOPASSWD: /path/to/rdmsr 0x3a