giovedì 5 giugno 2008

Virtualbox: Unknown error creating VM (VERR_HOSTIF_INIT_FAILED)

Questo errore puo' capitare in caso utilizzate Virtualbox con interfacce di rete virtuali in bridge con le interfacce fisiche della macchina.

Soluzione brutta:
sudo chmod 666 /dev/net/tun

LA Soluzione:
Controllate che il vostro utente faccia parte del gruppo vboxusers

Se per caso l'errore fosse ancora li' dopo questa verifica, probabilmente e' necessario ristabilire le corrette permission sul device. Lanciate senza timore (oddio ;-) il seguente comando:
sudo chown :vboxusers /dev/net/tun

Virtualbox: supporto periferiche USB

Ci sono due versioni di Virtualbox:
  1. OSE
  2. PUEL
La versione OSE e' quella liberamente installabile dai repository, e' completamente free e non consente l'uso di periferiche USB.

La versione PUEL non e' free, pero' e' liberamente scaricabile dal sito del produttore: consente l'uso di periferiche USB.
Peccato che dopo averla installata voi vediate che Virtualbox rileva le periferiche USB collegate al vostro computer....ma non le rende disponibili alle virtual machine e voi le vedete listate in quel grigino spento degli item non selezionabili.

Ecco la soluzione:

-Create un gruppo chiamato "usbfs" e aggiungete il vostro utente (quello che esegue normalmente Virtualbox) ad esso.

-Lanciate il seguente comando:
sudo gedit /etc/fstab

-Copiate le linee seguenti in questo file, facendo attenzione a cambiare l'ID di gruppo con quello assegnato al gruppo usbfs dal vostro sistema.
# in questo esempio 1001 e' l'ID del gruppo usbfs
none /proc/bus/usb usbfs devgid=1001,devmode=664 0 0

-Salvate e chiudete il file.


-Lanciate il seguente comando:
VBoxManage list usbhost

-Usate l'output di questo comando per configurare i filtri (li vedremo in seguito in un nuovo post) USB in Virtualbox.

-Eseguite un reboot

ATTENZIONE!!!

Le periferiche USB devono essere smontate prima che la virtual machine le possa riconoscere!!!

AGGIORNAMENTO!!!

Se non smontate un drive esterno prima di eseguire il boot della virtual machine, questa acquisira' la precedenza sulla periferica e ne eseguira' l'unmounting dal vostro sistema operativo principale. Se la virtual machine e' gia' in esecuzione bastera' scollegare e subito ricolegare la periferica USB per renderla disponibile alla virtual machine.

AGGIORNAMENTO 2!!!

Non e' necessario (almeno sui sistemi Ubuntu) creare il gruppo usbfs. Si puo' usare infatti il gruppo plugdev che e' gia' dedicato ad occuparsi delle periferiche rimovibili ed e' gia' associato al vostro utente principale in fase di installazione.

Si tratta quindi di impostare la linea che abbiamo aggiunto prima al file /etc/fstab in questo modo:
none /proc/bus/usb usbfs devgid=46,devmode=664 0 0

giovedì 29 maggio 2008

Disabilitare X su Debian

Della serie....se X vi ha fatto girare le pal....ehm....gli elettroni....
update-rc.d -f gdm remove
update-rc.d gdm stop 99 1 2 3 4 5 6 .

Attenzione, il punto finale ci vuole (pena errori terrificanti)


Virtualbox: usa troppa CPU? Decapitatelo!!!!


Mi servivano due macchine virtuali debian per fare degli esperimenti.
Il "serverino" con la nuova memoria sembrava adatto ad ospitarle.
Peccato che dopo aver installato virtualbox-ose e le due macchine virtuali non rimanessero risorse sufficienti a far girare il tutto.

Ogni macchina virtuale, in stato di idle, si portava via il 30-35% di CPU, se poi una delle macchine cominciava a fare qualcosa si passava a un bel 99.4%

Diciamo che il serverino ne soffriva (oltre al caldo terribile e all'insidia delle api morte)

La soluzione e' virtualbox-puel (ovvero la versione non-open di virtualbox che non viene pubblicata sui repository ma e' scaricabile dal sito SUN/Virtualbox).

Trovate i pacchetti binari per le piu' diverse piattaforme.

Due aspetti positivi della versione PUEL non presenti sulla OSE:
1) utilizzo delle periferiche USB (ma in questo caso non era importante)
2) possibilita' di eseguire una virtual machine senza visualizzarla nella console di virtualbox

Questo consente alle macchine virtuali di girare indisturbate senza scomodare X per la visualizzazione (tantopiu' che sul server X non dovrebbe nemmeno starci ;-) e consumare risorse preziose.

I processi VboxHeadless (da qui la decapitazione del titolo) infatti utilizzeranno una percentuale irrisoria di CPU quando le VM sono in idle. La percentuale aumenta con il risvegliarsi delle VM ma torna subito a calare quando queste tornano in idle.

Per accedere alle virtual machine si utilizza un qualsiasi client RDP (rdesktop su Linux, Remote Desktop su Windows)

Per lanciare la virtual machine si usa il comando:
VBoxVRDP --startvm NOME_VIRTUAL_MACHINE -p NUMERO_PORTA_PER_RDP &

Per default, la porta assegnata per l'RDP e' 3389, le virtual machine successive alla prima devono essere assegnate ad altri numeri di porta per consentirne l'accesso.
VBoxVRDP --startvm VM1 &
VBoxVRDP --startvm VM2 -p 3390 &

Per accedere alle macchine virtuali dal vostro client vi bastera' lanciare i seguenti comandi:
rdesktop IP_ADDRESS_SERVER:3389
rdesktop IP_ADDRESS_SERVER:3390

Per inviare un comando di arresto (shutdown) alle macchine virtuali vi bastera' lanciare il seguente comando:
VBoxManage controlvm NOME_VIRTUAL_MACHINE acpipowerbutton

Quindi per arrestare le due VM dell'esempio precedente:
VBoxManage controlvm VM1 acpipowerbutton
VBoxManage controlvm VM2 acpipowerbutton

martedì 27 maggio 2008

Debian: Use a HIGHMEM enabled kernel

[Articolo corretto in seguito al commento di Paulox]

Ho aggiunto un po' di RAM al "serverino" che e' arrivato a 1.5 Gb

Purtroppo, al boot, ottengo questa indicazione:
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
896MB LOWMEM available.

Bisogna installare un kernel capace di gestire la memoria alta (cavolo...ho dei ricordi primordiali legati a questo termine :-)

Infatti Debian, almeno come default della installazione "netinst", installa il kernel linux-image-2.6-486 che ha queste limitazioni nella gestione della memoria. Bisogna a questo punto installare il kernel linux-image-2.6-686.

Ecco come fare:
apt-get update
apt-get install linux-image-2.6-686

oppure se dovete gestire un quantitativo di RAM superiore a 4 Gb:
apt-get install linux-image-2.6-686-bigmem

4 api morte...non mi pare bello...


L'altro giorno sono entrato in ufficio. Sul pavimento del CED c'era un'ape morta.
Oggi sono entrato in ufficio. Sul pavimento del CED c'erano quattro api morte.

Ho iniziato a guardare con sospetto (e un filino di orrore) al controsoffitto....spero non ospiti un bell'alveare.

C'e' chi dice pure che siano un presagio alquanto negativo...

martedì 20 maggio 2008

SSH: usare nomi non standard per la propria chiave RSA o DSA

Normalmente il vostro client SSH, al momento di connettersi a un server, propone a quest'ultimo la vostra chiave personale. Lo fa cercando di inviargli uno dei seguenti file:

~/.ssh/identity
~/.ssh/id_rsa
~/.ssh/id_dsa

Se volete usare un nome diverso per il vostro file chiave (ad esempio $nomeutente_$data)
dovete aggiungere una linea al file /etc/ssh/ssh_config:

IdentityFile nomefilechiave


Potete aggiungere piu' linee di questo tipo in modo da poter usare tutte le eventuali chiavi del vostro sistema.

Ci sono alcuni caratteri speciali che potete usare per il nomefilechiave:

%d = home directory utente locale
%u = nome utente locale
%l = nome host locale
%h = nome host remoto
%r = nome utente remoto



Per ogni approfondimento vi rimando alla manpage:

man 5 ssh_config