Jak si nainstalovat OpenBSD na VirtualBox

28. 5. 2010 8:14 (aktualizováno) Petr Krčmář

Začal jsem si víc hrát s OpenBSD, ale narazil jsem na problém – ve VirtualBoxu to nefunguje. Mám ale opět jednoduché řešení.

Už dřív jsem si pohrával s myšlenkou víc se věnovat OpenBSD. Až teď jsem se k tomu ale dostal a bohužel jsem narazil na nepříjemný problém – ve VirtualBoxu systém hodně zlobí. Začne ječet, že nemá místo na disku a píše do konzole Segmentation fault každých pár sekund. Prý to funguje u procesorů, které mají podporu virtualizace, já mám ale tu smůlu, že mám jeden z mála modelů Core 2 Duo, který ji neumí.

Musel jsem tedy použít QEMU, ale ten má zase tu potíž, že přestal podporovat akcelerátor KQEMU, takže to běží v plné emulaci a dává to asi 10 % výkonu. Je to použitelné, ale přeci jen… VirtualBox je příjemnější a rychlejší.

Bug byl vývojářům VirtualBoxu nahlášen už před třemi lety, ale zatím nebyl očividně vyřešen. Pročítáním různých fór jsem ale narazil na jednoduché řešení. Vyzkoušel jsem ho a vše se chová dle očekávání.

Ve VirtualBoxu si normálně založte nový virtuální stroj, nastavte si ho, připravte mu disk, prostě jak jste zvyklí. Ale nespouštějte ho klasickým tlačítkem v prostředí VB. Místo toho přejděte do řádky a tam napište:

$ VBoxManage list vms

Dostanete výpis všech virtuálních strojů, které máte založené. Můžete si vygrepovat jen příslušný řádek s OpenBSD, který bude vypadat asi takto:

"OpenBSD 4.7" {31c821b1-8853-9c77-d6e8-g1235be23a12}

Pak můžete z řádky přímo svůj virtuální stroj spustit:

$ VBoxSDL -norawr0 -vm 31c821b1-8853-9c77-d6e8-g1235be23a12

Vše se normálně rozeběhne a funguje. Klíčový je parametr norawr0, který vypíná nějakou (v tomto případě) problematickou funkci VB. Řešením by byl samozřejmě GUI přepínač, ten ale bohužel neexistuje. Tak to je ale možné normálně OpenBSD provozovat bez jakýchkoliv problémů.

Ještě zajímavý dodatek pro děravou hlavu: pokud vám v OpenBSD ve VirtualBoxu zlobí kurzorové klávesy, PgUp, PgDn a další, použijte při startu ještě parametr  -evdevkeymap.

Sdílet