Запускаем VirtualBox в Linux 6.12 на процессоре AMD
prolinux
Open Source по природе своей является довольно подвижной и непрерывно меняющейся средой. Разработка и обновление программного обеспечения идёт полным ходом всегда, именно в тот момент, когда вы читаете эти строки. В том числе, очень часто обновляется Linux — ядро всех популярных ныне свободных операционных систем. Начиная с ядра версии 6.12
на моём старом лэптопе с процессором AMD по странному стечению обстоятельств перестали запускаться виртуальные машины VirtualBox. В этом выпуске блога я покажу исправление этой ситуации.
Воспроизводим ошибку
Итак, в моём распоряжении имеется рабочий лэптоп Acer с процессором AMD e1. На этой вычислительной машине, на её стационарный диск установлена операционная система Debian sid. В один прекрасный момент, после того как с обновлением операционной системы ядро получило версию 6.12
, на моём компьютере перестали запускаться виртуальные машины VirtualBox. Попытка запуска любой виртуальной машины прерывалась сбоем и отчётом об ошибке, вот как ситуация выглядела на моём рабочем столе, внимание на снимок экрана.
Отчёт об ошибке гласит буквально следующее: VirtualBox can't enable the AMD-V extension. Please disable the KVM kernel extension, recompile your kernel and reboot (VERR_SVM_IN_USE).
Из текста отчёта понятно, что программа не может включить расширение AMD-V по причине включенного в ядре режима KVM. Скажу честно, предложение пересобрать ядро мне не очень понравилось, ситуация зашла в тупик, и мне стало грустно. На деле оказалось, что проблема имеет весьма незамысловатое решение. Об этом далее...
Устраняем сбой виртуальной машины
Для решения проблемы мне понадобится самый обычный терминал, права суперпользователя и любой консольный текстовый редактор, который можно запустить в командной строке терминала посредством программы sudo — подойдёт любой, Nano, Vim, mcedit. В рамках этой демонстрации я буду использовать текстовый редактор Vim.
Открываю с правами суперпользователя в текстовом редакторе Vim файл по адресу /etc/default/grub
— это файл настроек системного загрузчика GRUB.
$ sudo vim /etc/default/grub
В этом файле меня интересует строчка GRUB_CMDLINE_LINUX
, вот как она выглядит в начальном состоянии в окне моего текстового редактора. Внимание на снимок экрана.
В этой строчке, внутри открытых кавычек вписываю следующую строку.
kvm.enable_virt_at_load=0
Эта опция отключит расширение KVM при загрузке ядра. На снимке экрана далее показано, как правка выглядит в окне моего текстового редактора.
Сохраняю изменения в файл и покидаю текстовый редактор.
После редактирования файла настроек, чтобы изменения вступили в силу, необходимо обновить системный загрузчик вот такой простой командой.
$ sudo update-grub
На снимке экрана ниже я показал выхлоп своего терминала при исполнении этой команды.
Последняя строчка в этом выхлопе — done — говорит нам, что мероприятие закончилось успешно и благополучно, системный загрузчик обновлён. Перезагружаю компьютер.
Сразу после загрузки операционной системы запускаю VirtualBox и пробую запустить так необходимую мне виртуальную машину. Внимание на снимок экрана.
Как видно на снимке экрана, никаких отчётов об ошибках не последовало, виртуальная машина запустилась в штатном режиме, о чём немногословно свидетельствует красочное превью в окне VirtualBox, отображающее старт системного загрузчика MX Linux Libretto Live, машина грузится с этого образа. Проблема благополучно решена.