VirtualBox szenvedés

 ( hajbazer | 2009. július 8., szerda - 14:06 )

Nemrég kaptam egy VirtualBox image-t (server.vdi), amin dolgoznom kellett volna. Ezen egy Debian Lenny (jelenleg stabil) volt és szerettem volna feltenni a Pentium 3-as gépemre, amely fele annyit fogyaszt annál, amelyen VirtualBox-szal futna (80W vs. 160W), meg jobb érzés rendes hardware-en dolgozni, mint VirtualBox-on. Arra gondoltam, hogy valahogy át kéne tenni a VirtualBox-os lemezt egy fizikaira. Merevlemezem volt, be is raktam a gépbe. Megoldás azonban nem lett. A sors eldöntötte helyettem, hogy ezt nem tehetem meg. Pazaroljam csak az energiát és a CPU-t!

1. próbálkozás: Fizikai eszköz felcsatolása VirtualBox alá
Az alapötlet annyi volt, hogy fogok egy 40GB-os vagy annál nagyobb merevlemezt, felcsatolom a virtuális környezetbe, majd Debian alól szépen át dd-zem /dev/hda -t a felcsatolt eszközre. Nade miért pont ezt tudná a VirtualBox, hiszen annyira huszadrangú feature, igaz?

2. próbálkozás: Shared Folders
A VirtualBox egyik erőssége a Guest Additions, ezen belül az, hogy képes előre megosztott könyvtárakat elérhetővé tenni a virtualizált rendszer alól. Persze mindez csak akkor, ha telepítve van. Ez, ami pont a lényeg lenne nem teljesült, mert túl régi volt neki a Debian Lenny-s 2.6.26-os kernele. Írogatott mindenéle warningot, meg OpenGL hibaüzenetet, holott én csak egy konzolos linuxot szerettem volna.

3. próbálkozás: Vissza 2.1.4-re, amely még kompatíbilis a Lenny kernelével
Az előző szívásból kiindulva keresni kellett egy olyan verziót, aminek még nem túl régi a Debian Lenny (megjegyzem, ez a Debian jelenlegi stabil változata) kernele. A verziókat visszafele próbálgatva jöttem rá, hogy a 2.1-es széria már nekem ilyen szempontból megfelelő. Feltettem hát ebből a szériából a legfrissebbet, azaz a 2.1.4-est. Sikerült is feltenni a Guest Additionst, de úgy tűnik, átok ül rajtam. 2MB/s-mal volt képes másolni úgy, hogy a VirtualBox.exe közben 100% CPU-t zabált. Körülbelül 5 óra lenne így a másolás, nade ez legalább az első működő megoldás.

4. próbálkozás: VDI -> VMDK (qemu-img)
Mi lenne ha nem szenvednék tovább a VirtualBox-szal és inkább azon rágódnék, hogyan tudnám VMWare alá betenni ezt a rendszert. Ha nem szeretném az előző megoldás által "felajánllott" 5 órát kivárni, valahogy át kell konvertálnom a VirtualBox virtuális merevlemez formátumát, azaz VDI-t a VMWare-es párjába, azaz VMDK-ba. A VMware ugyanis köztudott, hogy képes fizikai lemezt felcsatolni, de alapból nem tud VirtualBox image-t olvasni, mert miért is tudna, túl egyszerű lenne az életem. Utánanézve az interneten megtaláltam a qemu-img egy szintaxisát. Ez egy harmadik virtuális gép program, a qemu, egyik eszköze.

qemu-img convert server.vdi server.vmdk -o vmdk

A qemu-img látszólag gond nélkül átkonvertálta, a méret is hasonló volt, de a VMWare természetesen nem olvasta el rendesen. Felcsatolni felsikerült, de nem látott rajta
semmit és el se indult a rendszer.

5. próbálkozás: VDI -> VMDK (VBoxManage)
Nézegetve a VBoxManage, a VirtualBox egyik parancssoros eszközprogramja is tud konvertálni, de hamar rá kellett jönnöm, hogy használhatót ez se csinál. A VMWare egyszerűen coredumppal crashel, mikor az így gyártott VMDK-t kellene beolvasnia.

6. próbálkozás: VDI -> RAW (VBoxManage)
Maradt hát a leggagyibb, legkevésbé hatékonyabb, legtöbb átmeneti tárat igénylő megoldás, megcsinálni a 40GB-os nyers image-et, majd livecd-ről átdd-zni a fizikai meghajtóra. A VBoxManage képes RAW típusú image-et készíteni, legalábbis elvileg. Erre mondtam azt magamban: Igen, ha valami újat csinál az ember (A Sun VirtualBox fejlesztőcsapata), lényeg a változatosság:

VirtualBox 2.1.4

Error: failed to clone hard disk. Error message: Could not create the clone hard
 disk 'D:\server.img' (VERR_INVALID_PARAMETER)

VirtualBox 2.2.4

ERROR: failed to create the VirtualBox object!
ERROR: Could not lock the settings file
'C:\Documents and Settings\hajbazer\.VirtualBox\VirtualBox.xml' (VERR_SHARING_VIOLATION)
Details: code E_FAIL (0x80004005), component VirtualBox, interface IVirtualBox,
callee 

VirtualBox 3.0.0

ERROR: failed to create the VirtualBox object!
ERROR: code E_NOINTERFACE (0x80004002) - No such interface supported (extended i
nfo not available)
Most likely, the VirtualBox COM server is not running or failed to start.

Tehát a RAW konverzióra ezeket a hibákat kaptam. Ezek után úgy gondolom talán egyszerűbb lesz újra feltenni a server.vdi-n levő Debian Lenny-t, majd átmásolni tar.gz-ben, amit kell. Talán tömörítve hamarabb kinyerem a virtuálisból. Három órám ment el az ezzel való szarakodással, a számítógépem, amelyik képes virtuális gépet futtatni, összvissz 160W-ot fogyaszt, ez 160/1000*35*3 = 21 Ft-ba került, ami persze nem tűnik soknak, de pazarlás a köbön az egyszer biztos.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

VMware. Ha vegeztel, lekapod. :P

1. -re VMware tudja.
2. -ra.. nekem megy, openGL-es hibat irja, de attol fuggetlen oke.

+sok, es nem kell lekapni. Meg fogja szeretni. Ajanlom a VMware Server 1.0.x-es verziot, free, es nem foglal semmi eroforrast, csak amit a vendeg gep szeretne.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Ja hat igen van VMware server, en a Workstation-re gondoltam, de jo otlet. :)

vmware ra is van penzed?:)

"ra"?

30napig? Termeszetesen.
(Btw nem en fizettem a dolgokat.. innentol fogva ertheto a dolog.)

Ehh? Mit is szeretnel mondani?
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

Nem erdekes, ne etesd. :) (A masik topicbol hozta be a leragott csontot, csak tudnam is miert er ra ennyire)

te szolsz hozza (szinte) minden topichoz, nem en.. te jobban raersz az tuti :P

Van ez igy.. :P Miert ne tennem? Ha hulyeseget irok , kijavitanak, tanulok belole. Ha nem, talan segit a masiknak. Etc etc... Amugy meg mig diak az ember (akarmelyik oktatasi 'retegbe' zsufolva), mindig raer ilyesmire. :) (Bar ugynezem rengetegen munka kozben is raernek.. :))

Engem komolyan erdekelt, hogy jon a penz egy by definitive free termekhez. Development celokra a vmware server tokeletesen eleg.
--

()=() Ki oda vagyik,
('Y') hol szall a galamb
C . C elszalasztja a
()_() kincset itt alant.

> fogok egy 40GB-os vagy annál nagyobb merevlemezt, felcsatolom a virtuális környezetbe,

VBoxManage internalcommands createrawvmdk -filename akarmi.vmdk -rawdisk \\.\PhysicalDriveX ?

Tudok egy nagyon gány, de garantáltan működő megoldást. :)

Kell készíteni egy vmdk-t, ami egy dd-vel előállított fileba ír (vmdk-flat). Vannak a neten toolok amivel lehet vmdk-t gyártani, nem egy bonyolult dolog. Ezután a vmdk-t felcsatolod a virtualboxnak, dd-vel áttolod a /dev/hda-t a /dev/hdb-re, majd egy második dd-vel a vmdk-ban használt image filet tolod át a fizikai merevlemezre. Ha ez nem működik, akkor semmi. :)

VirtualBox es VmWare image-em pillanatnyilag nincs keznel. Ennek ellenere tehetsz egy probat.. kiprobaltam qcow formatummal, azzal mukodott a konvertalas utani mount:

qemu-img convert -O raw bemenet.qcow /tmp/akarmi.img # csinalunk egy raw formatumu image-et
sudo mount /tmp/akarmi.img /mnt -o loop,offset=32256-t vfat # ertelemszeruen itt a vfat atirando arra, ami van rajta.. pl. ext2 vagy ext3 vagy akarmi.. az offset azert kell, hogy a particios tablat, MBR-t meg hasonlokat atugorjuk a winyo elejen..
ls /mnt #latja..

szerk:
qemu-img convert server.vdi server.vmdk -o vmdk
itt ez -O lenne (nagy O betu, nem kicsi)

convert [-c] [-e] [-6] [-f fmt] [-O output_fmt] [-B output_base_image] filename [filename2 [...]] output_filename

--
"ne támogasd az erdők kiírtását mozijeggyel, töltsd le a netről!" - killllll, asva.info