Sursa ultimelor știri și informații despre virtualizare, tehnologii terminale și clienți subțiri

Prin toate conturile, KVM și VirtualBox nu pot coexista pe același sistem de operare. Mai exact, VirtualBox nu poate porni dacă modulele KVM sunt încărcate în memoria RAM. În același timp, KVM funcționează bine cu VirtualBox instalat, deci această problemă este una. Soluția sa este, de asemenea, destul de simplă. Din păcate, există o mulțime de manuale care recomandă eliminarea unuia dintre programe. Unii alții sugerează că folosesc rmmod, cu toate acestea ei nu spun nimic despre cum să returneze totul înapoi.
Vă voi arăta cum să împărțiți KVM și VirtualBox fără a elimina unul dintre programe, sau reboot pentru a comuta între ele. Veți învăța cum să dezactivați sau să activați unul dintre programe fără repornire, astfel încât celălalt să funcționeze.

Simptom - VirtualBox nu funcționează

Când încercați să porniți VirtualBox, este posibil să vedeți următorul mesaj de eroare:

Sursa ultimelor știri și informații despre virtualizare, tehnologii terminale și clienți subțiri

Se spune: "VirtualBox nu poate funcționa în modul rădăcină VMX, dezactivați extensia kernel KVM, recompilați kernel-ul și reporniți-l." Un mesaj înspăimântător. Cu toate acestea, nimic nu trebuie recompilat. Soluția problemei va dura cinci secunde și va fi absolut nedureroasă.

Descrierea problemei

După cum am menționat deja, VirtualBox și KVM nu pot lucra împreună. Aceasta înseamnă că trebuie să dezactivați KVM înainte de a rula VirtualBox. Întrebarea este cum să o faceți. Răspunsul este prin încărcarea și eliminarea modulelor de kernel. Sistemul de operare Linux suporta încărcarea și eliminarea modulelor kernel-ului din memoria RAM fără să fie repornit. Pentru aceasta vom folosi comenzile insmod și rmmod.

Demontarea modulelor

Mai întâi, utilizați comanda lsmod pentru a vedea care module sunt încărcate în memorie:

După cum puteți vedea, VirtualBox utilizează drivere vboxdrv și vboxnetflt, în timp ce KVM utilizează drivere kvm și kvm_intel. Rețineți: kvm_intel este proiectat special pentru arhitectura Intel. Pentru AMD, există kvm_amd.
Trebuie să descărcăm modulele KVM din memorie.

Sursa ultimelor știri și informații despre virtualizare, tehnologii terminale și clienți subțiri

Există o mare întrebare - acum KVM este dezactivat, cum se face să funcționeze din nou?
Aceasta este ceea ce vom face acum.

Încărcarea modulelor

Putem încărca modulele la fel de ușor ca și descărcarea lor. Pentru a face acest lucru, trebuie să determinați unde sunt pe hard disk (puteți încerca, de asemenea, comanda modprobe).
Pentru a căuta module, utilizați următoarele comenzi (trebuie să executați updateb folosind sudo sau din root):

De regulă, există o mulțime de fișiere, deci căutarea poate fi limitată la kvm.ko și kvm-intel.ko.

Sursa ultimelor știri și informații despre virtualizare, tehnologii terminale și clienți subțiri

Încărcați acum modulele care corespund versiunii dvs. de kernel. Puteți să o verificați cu comanda uname -r.

Imaginea de ecran este prezentată mai jos. În primul rând, verificăm prezența modulului kvm. Comanda lsmod a arătat că nu a fost încărcată. Acum încărcăm modulele kvm și le verificăm din nou cu comanda lsmod.
Rețineți că comenzile din captura de ecran sunt puțin diferite de comenzile prezentate mai sus. Am presupus că / sbin este în variabila PATH, așa că am folosit o formă mai scurtă a comenzii. În același timp, am folosit calea completă la modul pentru a arăta cum ar putea să arate. Dacă intenționați să scrieți un script pentru a automatiza aceste acțiuni, atunci trebuie să utilizați căile complete, iar pentru a înlocui comenzile se recomandă utilizarea unei linii inverse.

Sursa ultimelor știri și informații despre virtualizare, tehnologii terminale și clienți subțiri

E timpul să ne automatizăm toate acțiunile. Pentru aceasta avem nevoie de două scripturi. Unul descarcă modulele KVM, celelalte le încarcă. Dacă abordați temeinic problema, aveți nevoie, de asemenea, de scripturi pentru a opri serviciile VirtualBox când porniți KVM și apoi lansați-le.
Un exemplu de lucru cu driverele VirtualBox:

Astfel, scriptul pentru activarea VirtualBox și dezactivarea KVM arată astfel:

Și script-ul pentru rularea KVM și dezactivarea VirtualBox:

Pentru mașinile AMD, înlocuiți kvm-intel.ko cu kvm-amd.ko. Rețineți că ar fi frumos să se prevadă ca scriptul să verifice încercarea de pornire a serviciului care se execută deja. N-am făcut-o, să-ți fie temele.
Printre altele, trebuie să acordați atenție și arhitecturii procesorului. Majoritatea utilizatorilor care folosesc arhitectura x86 (x86_64) vor avea script-uri de lucru, dar pentru alte arhitecturi, cum ar fi SPARC, ARM, Itanium, scripturile vor trebui editate.
Acum creați comenzi rapide pentru scripturi pe desktop și ați terminat. Folosind uname în loc de o versiune specifică a kernel-ului se asigură că script-urile dvs. vor funcționa chiar și după actualizarea kernel-ului.

concluzie

După cum puteți vedea, realitatea nu este la fel de severă ca cea creată anterior. Acest ghid prezintă modalități simple de a coexista VirtualBox și KVM, fără a elimina unul dintre programe și a reporni în mod constant. Arhitectura Linux vă permite să încărcați module în mișcare, astfel încât singura procedură pentru care este necesară o repornire este actualizarea kernel-ului sistemului. În următoarele tutoriale vom continua să ne cunoaștem capabilitățile KVM.

Articole similare