Вопрос по linux, virtualization, virtualbox – проверить, активирован ли VT-x без перезагрузки в Linux?

31

У меня есть ноутбук с Intel Core i5 M 450 @ 2,40 ГГц, который, по-видимому, имеет VT-x, но не VT-d. У меня Ubuntu 12.04 32bit, но я хотел бы иметь на нем виртуальный 64-битный терминал на базе Linux. Как узнать, активирована ли в BIOS эта функция VT-x без перезагрузки?

Ваш Ответ

7   ответов
6

cat /proc/cpuinfo| egrep "vmx|svm"
Это покажет, только если VT-x поддерживается процессором, а не если он активирован в BIOS.
@ Betterdev Я не уверен, что виртуальный процессор имеет значение. В любом случае, говоря о том, что инструмент информации о процессоре сообщает о наличии AMD-V, несмотря на то, что он непригоден для использования, потому что вы отключили SVM в прошивке, вы подтверждаете точку зрения scai ...
Уверены ли вы? Когда я в своем виртуальном компьютере, это дает мне пустую строку, но мой процессор поддерживает amd-v? В cpu-z я вижу amd-v, даже когда я отключил защищенную виртуальную машину в BIOS?
11

Если процессор включен, вы должны увидеть что-то вроде:

INFO: /dev/kvm exists
KVM acceleration can be used

othewise

INFO: /dev/kvm does not exist
HINT:   sudo modprobe kvm_intel
INFO: Your CPU supports KVM extensions
INFO: KVM (vmx) is disabled by your BIOS
HINT: Enter your BIOS setup and enable Virtualization Technology (VT),
   and then hard poweroff/poweron your system
KVM acceleration can NOT be used
kvm-ok это только для систем Ubuntu. Его нельзя использовать в Debian или Red Hat.
По производным RHEL имеемvirt-host-validate который предоставляетсяlibvirt-client
0

Это, однако, работает очень хорошо для меня, даже на Intel:

if systool -m kvm_amd -v &> /dev/null || systool -m kvm_intel -v &> /dev/null ; then
    echo "AMD-V / VT-X is enabled in the BIOS/UEFI."
else
    echo "AMD-V / VT-X is not enabled in the BIOS/UEFI"
fi

(systool находится вsysfsutils пакет на большинстве дистрибутивов.)

Для Intel IOMMU VT-D / AMD я предложил следующее решение:

if compgen -G "/sys/kernel/iommu_groups/*/devices/*" > /dev/null; then
    echo "AMD's IOMMU / Intel's VT-D is enabled in the BIOS/UEFI."
else
    echo "AMD's IOMMU / Intel's VT-D is not enabled in the BIOS/UEFI"
fi

(Это даже работало для меня, если параметры ядра iommu не установлены.)

Примечание: это требуетsysfsutils пакет, но не возвращает ошибку, если у вас ее нет (просто возвращается «у вас нет virt-материала»).
1
systool -m kvm_intel -v | grep nested
systool -m kvm_amd -v | grep nested

Один из них должен вывести:

nested              = "1"

Что указывает на то, что он включен.

Он не завершает работу с 0, когда он отключен, и он всегда завершает работу с 0, когда он включен. По крайней мере, на моих компьютерах ...
Спасибо за сообщение. Кажется, более подходящий ответ - @Forivin.
Не слишком уверен, что вы пытаетесь сказать? Что он выходит с кодом ошибки вместо, когда отключен?
На всех моих компьютерах Intel он сообщает `nested = & quot; N & quot;` ", когда у меня включен vt-x. Когда он отключенsystool -m kvm_intel -v уже выходит с кодом ошибки и отчетамиError opening module kvm_intel.
nested для чего-то другого. Вы включаете nested, если хотите запустить виртуализацию в виртуальных машинах. Так что если вы хотите запустить ВМ поверх ВМ. Например, если вы хотите запустить сервер XEN внутри виртуальной машины KVM, это то, для чего
1

что Vt-D включен в BIOS - это система Linux. Если VT-D включен в BIOS иIommu=on вgrub.cfg тогда структура папок ниже автоматически создается для хранения виртуальных устройств.

/sys/kernel/iommu_groups/0/devices/0000:00:00.0

Принимая во внимание, что если одна из опций VT-D или Iommu не настроена / не включена, то вышеупомянутая структура папок не создается. Такое поведение подтверждается в CentOS 7.4 и Ubuntu. Надеемся, что это поведение аналогично для других операционных систем, но это должно быть подтверждено.

33

rdmsr отmsr-tools читать регистрIA32_FEATURE_CONTROL (адрес0x3a). Модуль ядраmsr должен быть загружен для этого.

В большинстве систем Linux:

sudo modprobe msr
sudo rdmsr 0x3a

Ценности3 а также5 означает, что он активирован.

Установить пакет msr-tools в Ubuntu 16.04 (Xenial Xerus) так же просто, как запустить следующую команду на терминале:sudo apt-get update sudo apt-get install msr-tools
Вот немного больше об этих битах MSR:thomas-krenn.com/en/wiki/… security.stackexchange.com/questions/15555/…
Насколько я понимаю 3 и 5 означают, что VT-x активирован.
sudo rdmsr 0x3a дает мне5 719016
На AMD Ризен я получаюrdmsr: CPU 0 cannot read MSR 0x0000003a.
14

Ты можешь использовать

sudo kvm-ok

отCPU-контролер, На Intel, которая имеет самую сложную логику, kvm-okпроверки что если бит 0rdmsr 0x3a (бит блокировки) установлен, бит 2 (который позволяет использовать virt вне режима SMX, что-то связанное с доверенной загрузкой) также должен быть установлен. Если на выходеrdmsr 0x3a ничего кроме1 или же3, вы сможете использовать KVM. kvm установит бит 2 MSR, если необходимо, я ожидаю, что Virtualbox и остальные имеют ту же логику.

Похожие вопросы