martedì, gennaio 22, 2008

Problema: Ubuntu rallentato di 20 secondi - Soluzione: /etc/hosts

Vi capita che Ubuntu ci metta almeno 20 secondi per fare qualsiasi cosa? anche aprire un terminale? anche aprire la vostra home?
allora siete al posto giusto al momento giusto...

capita che il NetworkManager riscriva il file
/etc/hosts
dimenticandosi del nome del vostro computer... cosa banale ma necessaria al sistema linux per funzionare adeguatamente. Se controllate nel network manager (interfaccia grafica) vedrete che il nome del vostro pc (nome host)


(il nome del dominio non è strettamente necessario)
è correttamente inserito eppure se da terminale date:
cat /etc/hosts
vedrete una cosa del tipo
PRIMA VERSIONE:
127.0.0.1 localhost
127.0.1.1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
anziché
SECONDA VERSIONE:
127.0.0.1 localhost nomehost.nomedominio
127.0.1.1 nomehost.nomedominio

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
se siete nella prima condizione allora è meglio che seguiate questa guidina.

Ho provveduto a una vesione della guida per quelli che non hanno interesse a capire quello che stanno facendo (probabilmente utenti windows), troverete quanto vi spetta dopo la vostra fotografia in fondo alla parte per le persone intelligenti. (un po' di sano razzismo ci vuole sempre... inutile fare i buonisti con i seguaci di redmond).

Questa guida vuole essere una guida per tutti, quindi scusate se userò gedit e non il vostro editor di testo preferito... per quanto mi riguarda fate come vi pare.

1 – aprire un terminale
2 – digitate
cat /etc/hosts
3 – se il file si presenta senza nome dell'host (vedi prima versione)
4 – digitate
sudo gedit /etc/hosts
vi verrà chiesta la vostra password, digitatela senza timore...
si aprirà una finestra di gedit dove dovrete eseguire il punto successivo
5 – dovete mettere il nome del vostro pc (basta guardare nel terminale il testo prima del rettangolino lampeggiante, io ho elijah@ububook, quindi copierò ububook...) e ottenere un file del tipo:
127.0.0.1 localhost nomehost
127.0.1.1 nomehost

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
(al posto di nomehost io metterò ububook, voi quello che più vi piace; questa è la versione “base” del file)
6 – salvate e chiudete gedit
7- dobbiamo rendere permanenti queste modifiche. questo si può fare in molti modi, io preferisco farlo così perchè rientra in un mio certo modo di vedere la mia installazione linux... io salvo tutti i files di configurazione in una unica cartella nella mia Home, così nel caso di piallature/cazzeggi eccessivi del/nel mio sistema posso mettere tutto a posto come prima dell'intervento.
Brevemente, il mio modo di procedere è:
8 – mettetevi nella vostra home, per far questo basta digitare su terminale
cd
e dare invio. Ora siete nella home del vostro utente (voi).

9 – create una cartella che chiameremo conf_files e la generiamo da root così non potrete cancellarla inavveritamente da utente normale:
sudo mkdir conf_files
10 – copiamo in questa cartella il frutto dei nostri sforzi
sudo cp /etc/hosts conf_files/
11 – ora facciamo sì che questo file venga copiato su quello già esistente ad ogni riavvio del pc, eccessiva precauzione, ma se non volete stare a controllare ogni volta... può risultare conveniente.
sudo gedit /etc/init.d/bootmisc.sh
Vi verrà aperto uno dei files che viene eseguito all'avvio e si occupa di eseguire delle operazioni...
NON FATE CAZZATE! NON CANCELLATE RIGHE! SIATE PRUDENTI!
da grandi poteri come “sudo” derivano grosse responsabilità e molto spesso molte bestemmie...

12 – in questo file in testa a esso, o dopo le righe
#!/bin/sh
### BEGIN INIT INFO
# Provides:          bootmisc
# Required-Start:    $local_fs hostname $remote_fs
# Required-Stop:     $local_fs
# Default-Start:     S
# Default-Stop:
# Short-Description: Miscellaneous things to be done during bootup.
# Description:
### END INIT INFO
che, come potete notare, sono commentate, dovete aggiungere le seguenti righe
### added as a workaround for NetworkManager
cp /home/vostronomeutente/conf_files/hosts /etc/
### end workaround
avendo la cura di mettere al posto di “vostronomeutente” il vostro nome utente... quello con cui vi loggate per capirci...

13 – salvate e chiudete
FINE


versione per quelli che non hanno voglia...
NON MODIFICATE COSE A CASO... (per esempio se togliete un > all'ultima riga siete abbastanza nella cacchetta...
aprite un terminale e incollateci le righe da voi modificate, premete invio o enter, quando richiesto mettete la vostra password.
cd
sudo mkdir conf_files
sudo echo -e "127.0.0.1 localhost miopc \n127.0.1.1 miopc\n\n# The following lines are desirable for IPv6 capable hosts\n::1 ip6-localhost ip6-loopback\nfe00::0 ip6-localnet\nff00::0 ip6-mcastprefix\nff02::1 ip6-allnodes\nff02::2 ip6-allrouters\nff02::3 ip6-allhosts" > conf_files/hosts
sudo echo -e "### added as a workaround for NetworkManager\ncp /home/`whoami`/conf_files/hosts /etc/\n### end workaround" >> /etc/init.d/bootmisc.sh
sudo sh /etc/init.d/bootmisc.sh
ATTENZIONE ALLE VIRGOLETTE!
(Avrei potuto fare un scriptino in bash, ma non so se era più difficile... quelli un po' smagati possono tranquillamente farselo copincollando queste righe in un file [e mettendoci alla fine di ogni riga dei punti e virgola] salvandolo come workaround.sh e eseguendolo da terminale semplicemente come
sh workaround.sh


ciao bbelli!
d

Torna a Ds&Mv Home

EDIT: Ho anch esegnalato il bug su planet gnome, ma mi dicono che il Network Manager non tocca /etc/hosts, che è possibile che sia una patch di ubuntu... ora io non credo tantissimo a questa versione comunque è quella ufficiale gnome. Se c'è qualcunoc he vuole segnalare il bug su ubuntu lo faccia, io mi son rotto le palle.

2 commenti:

Anonimo ha detto...

Questo problema lo ho riscontrato su 3 pc.
Su tutti e tre avevo fatto il passaggio di versione dalla 8.04 alla 8.1 ed è stato proprio questo a creare questo problema.
Grazie per la guida.

ps. non è per fare il razzista anch'io, ma da quando uso linux mi rendo conto quanto ero stupido usando windows.

ciao

davide scaini ha detto...

grazie per il tuo comento e sono felice che ti sia stato utile...
non so cos'avessi quel giorno che ho scritto questo post... ma sicuramente non ero allegrissimo, boh!

Ciao
d