Kategória: VirtualBox

Zmenené: 16. február 2013

Vylepšenia VirtualBox

Používam VirtualBox často, síce nie denne, ale naozaj často, napríklad ako zaujímavé riešenie webového servera. Pri tomto používaní sa často stretávam s vecami, ktoré nie sú chybou, ale ich zmena, či úprava môže uľahčiť život. Tak nech sa páči.

(ne)Vymazanie štartovacích hlásení

Hoci je to na produkčnom stroji vhodné, na virtuálnom, ktorý mi slúži na testovacie účely, mi vadí, že je po štarte vymazaná obrazovka so správami pri štarte systému. Je to predvolené správanie programu getty (a podobných) a možno ho vypnúť pridaním parametra –noclear do súboru /etc/inittab, napr.:

1:2345:respawn:/sbin/getty --noclear 38400 tty1

Autologin

Pre linuxové virtuálne stroje, ktoré spúšťate pre vlastnú potrebu určite nepotrebujete prihlasovanie. To je vhodné miesto na využitie možností programov z rodiny getty. Program getty slúži (okrem iného) na spustenie prihlasovacieho dialógu. Existujú jeho miniaturistické náhrady. Za všetky, ktoré možnosť automatického prihlásenia ponúkajú, spomeniem dva. Prvý je rungetty. Po nainštalovaní jeho používanie nastavíte v súbore /etc/inittab, kde riadok:

1:2345:respawn:/sbin/getty 38400 tty1

stačí upraviť:

1:2345:respawn:/sbin/getty -a root 38400 tty1

alebo nahradiť riadkom:

1:2345:respawn:/sbin/rungetty --autologin root tty1

Pričom automaticky bude prihlásený používateľ, ktorý je uvedený za voľbou --autologin. Program rungetty vykoná automatické prihlásenie iba raz, a to po (re)štarte, po odhlásení už poskytne bežný prihlasovací dialóg. Druhou možnosťou je program mingetty, ktorý poskytne prakticky rovnakú funkciu pomocou obdobného riadku:

1:2345:respawn:/sbin/mingetty --autologin root tty1

Avšak, na rozdiel od rungetty, nevykoná automatické prihlásenie iba prvý raz, ale vždy. Ak sa teda omylom (alebo aj cielene) zo shellu odhlásite, vždy daného používateľa prihlási späť. Oba tieto programy poskytujú automatické prihlásenie iba na jednej konzole… Ostáva reštartovať proces init, aby sa urobená zmena prejavila:

telinit Q

Pozor!!! Určite automatické prihlásenie (a hlavne nie k účtu root) nepoužívajte v reálnom prostredí, taká večne prihlásená konzola (a ešte s root-om) umožní komukoľvek naozaj čokoľvek.

Systémový čas

Ak ste si všimli, že máte vo virtuálnom systéme nejaký divný čas, tak nezúfajte. Tento problém nastáva so systémami, ktoré vedia čo je to UTC (Universal Time Coordinated alebo Koordinovaný svetový čas), a teda sa s ním nestretnete pri virtuálnom Windows. V prípade Linuxu sa však inštalátor pýta (aspoň v Debiane), či chcete používať tento univerzálny alebo lokálny. Správna voľba je systémový. Ak ste zvolili zle, nie je problém to zmeniť.

V podstate sú dve možnosti. Prvá je priame nastavenie času, takže najprv si nastavte systémový, pomocou príkazu date:

date 05021245

To zvláštne číslo na konci je dátum a čas vo formáte DDMMHHMM, teda deň, mesiac, hodina a minúta. Na konci (voliteľne) možno ešte pridať rok a storočie. Týmto je nastavený systémový čas, ale linuxové systémy nastavujú aj čas hardvérový, v prípade Debianu je tento zapisovaný pri každom vypnutí. Ak by ste teraz vypli a zapli virtuálny stroj, zase by sa objavil univerzálny čas, takže systémový by bol o dve hodiny vpredu…

Nastavenie, či systém používa UTC alebo systémový čas je v súbore /etc/default/rcS, kde stačí upraviť riadok:

UTC=yes

ktorý udáva práve to, čo je potrebné, tak aby bol UTC nastavený na no a vypnúť zapnúť virtuálny systém (reštart nemusí stačiť). Prípadne, ak nechcete čakať na naštartovanie systému zapísať systémový čas do hardvérového:

hwclock --utc --systohc

Pomalé zdieľanie

Ak máte pocit, že prístup z virtuálneho systému k zdieľaným adresárom hostiteľa je pomalý, skúste pridať meno vboxsrv do súboru hosts :

  • vo Windows súbor c:windowssystem32driversetchosts;
  • v Linuxe (nie je potrebné) /etc/hosts.

V tomto súbore upraviť/pridať riadok:

127.0.0.1 localhost vboxsvr

Upozornenia pri štarte Linuxu

Pri štarte Linuxu sa objavujú chybové hlásenia? Ak sa jedná o hlásenia:

piix4_smbus 0000.00.07.0: SMBus base address uninitialized - upgrade bios or use force_addr=0xaddr
...
Error: Driver 'pcspkr' is already registered, aborting...

Tak to nie sú chyby, len upozornenie, ktoré môžete pokojne ignorovať, ak vám však vadia, tu je riešenie.

piix4_smbus

Stačí zakázať modul i2c_piix4, pridaním, napríklad do súboru /etc/modprobe.d/local.conf:

blacklist i2c_piix4

pcspkr

Postup je v podstate rovnaký, len treba zakázať modul pcspkr pomocou:

blacklist pcspkr