domenica 6 gennaio 2013

Errori su disco e cure miracolose

Allora, si magnifica da sempre la leggendaria "stabilità" del Pinguino rispetto a Winblows, ma se il sistema ti va in kernel panic per l'innocente reinserimento di un'Internet key all'uscita dalla sospensione, allora qualche dubbio ti viene... Se poi il successivo reboot si pianta sotto una pioggia di I/O errors sull'hard disk, va in panic anche l'utente!

Può ben darsi che tutto ciò sia dovuto a incipiente disintegrazione del disco, ma porca miseria che non si riesca neanche a ripartire con il LiveCD di openSUSE 12.2 è il colmo! Dici: masterizzo il DVD d'installazione e me la cavo con la modalità "rescue system", peccato che detto DVD, masterizzato su un host Windows 7, sul mio Toshiba impinguinato non riesca a partire al boot!

La cosa più preoccupante è che udev non riesce a montare né la partizione di root, né la home: il terrore è che si siano fottuti i dati, va bè, c'è un backup prima di Natale, ma uffa!

Trascorso l'intero weekend della Befana con l'ansia addosso per le tremila cose da fare con urgenza sul PC, pian piano riesco a risolvere tutto in maniera abbastanza indolore: per venire a capo di una rogna come questa non c'è altro che armarsi di pazienza e scartabellare il web alla ricerca degli strumenti giusti.

Anzitutto, il problema di riuscire a partire in un modo qualsiasi te lo risolve il mitico Knoppix, il cui udev a quanto pare non va a ficcanasare sull'hard disk come fa il LiveCD di openSUSE. A questo punto si possono condurre le operazioni con tutto comodo e, in particolare, si può cominciare a salvare il salvabile con l'eccellente recovery tool ddrescue di GNU: attacco al PC il mio bel discone USB e rilascio un comando del tipo

$sudo ddrescue -r 1 <input_device> <output_device> <log_file>

(mi raccomando, non dimenticare di specificare il file di log, perché torna molto comodo in caso di restore o di interruzione del comando)

Fatto questo, procedo alla riparazione vera e propria: la prima cosa da trovare è la locazione su disco dei superblock di scorta. Il comando

$sudo mke2fs -n <device>

 restituisce questa informazione in calce al suo output. A questo punto non occorre fare altro che riparare la partizione con il comando

$sudo e2fsck -b <superblock> <device>

ponendo in il primo indirizzo della lista restituita da mke2fs, dopodiché si fa il reboot. Se ci sono ancora problemi, si ridà il comando di cui sopra tentando il successivo superblocco della lista, e così via.

Alla fine sono riuscito a ripartire. Rimarrà ovviamente da fare qualche verifica sull'hard disk, ad esempio utilizzando gli Smartmontools oppure TestDisk, disponibile fra l'altro sul CD di Knoppix.

SITOGRAFIA

venerdì 26 ottobre 2012

Vodafone Internet Kiavica

Ma quanto tempo della mia vita avrò speso per far funzionare sotto Linux la stramaledettissima chiavetta K3806-Z che mi sono accattato tempo fa da Vodafone per usare ogni tanto Internet fuori casa?

Fino a openSUSE 12.1 ero riuscito faticosamente a cavarmela usando lo script Sakis3G, come consigliato un po' ovunque sul web dai tanti che avevano sbattuto il naso contro questa ferraglia. Quelli di openSUSE, però, ci mettono spesso e volentieri anche del loro, sicché dopo la malaugurata decisione di aggiornare il Pinguino alla 12.2 lo script ha smesso di funzionare!

Due giorni di sbattimenti, per scoprire sul far della seconda notte mezza insonne che la gestione di rete via NetworkManager, mai funzionante come si deve nelle precedenti versioni di openSUSE e infatti di norma caldamente sconsigliata, nella 12.2 funzionicchia abbastanza da rendersi preferibile a qualsiasi altro metodo... se non altro perché è l'unico modo per far andare quest'accidente di chiavetta!

Ci sono però due precauzioni da prendere, anche queste faticosamente trovate dopo diuturno sfrucugliamento della Rete:

  1. Interfacciarsi a NetworkManager tramite la GNOME applet e non attraverso il plasmoide di KDE, che è un'altra camurria;
  2. dopo aver attivato la connessione via NetworkManager procurarsi un gateway attivando manualmente il client DHCP:
$sudo dhclient usb0

altrimenti  un gateway attraverso cui istradare il nostro traffico l'accrocchio infame non si degna di darcelo!
Comincio a pensare che questo blog farei meglio a ribattezzarlo come "Linux annoyances"...

mercoledì 23 novembre 2011

Indagini su un DNS al disopra di ogni sospetto

Da qualche tempo incontro seri problemi di blocco nell'accedere a certi siti, in particolare Facebook. Ho la netta sensazione che sia cambiato qualcosa nelle prestazioni della rete OpenDNS, probabilmente da quando ho preso a utilizzare i nuovi server IPv6.
Nel corso delle mie indagini, mi sono imbattuto in una utility open-source che sembra offrire un eccellente aiuto per configurare al meglio il proprio DNS: si chiama namebench ed è disponibile in tutti i principali ambienti operativi (Windows, Mac OS X, Linux); in particolare per openSUSE se ne può trovare un rilascio pacchettizzato attraverso il servizio di build.
Cosa fa namebench? Prende in esame alcuni dati locali, ad esempio quelli relativi alla navigazione tramite i browser utilizzati dall'utente, e li utilizza come criterio per selezionare il servizio DNS più conveniente in una lista di qualche migliaio, dei quali esamina i tempi di risposta.
Dai test che ho effettuato è emerso che OpenDNS non era la scelta ottimale per la mia configurazione; ho allora inserito i nameserver consigliati nel file resolv.conf e, magicamente i problemi di navigazione che avevo sembrano spariti! Ecco la nuova configurazione, giusto a futura memoria:

nameserver 8.8.8.8         # Google Public DNS 
nameserver 85.38.28.73     # Telecom Italia 73 IT 
nameserver 85.38.28.80     # TelecomItalia Business 80 IT


Va bene, adesso il test IPv6 mi dà solo 9/10 invece del punteggio pieno che ottenenvo con OpenDNS, ma me ne farò una ragione...

lunedì 14 novembre 2011

Le finestre di KDE e le loro scorciatoie

In KDE per default la combinazione ALT+LEFTMOUSE offre all'utente la possibilità di spostare sul desktop la finestra che possiede il focus. Un'applicazione che io utilizzo molto frequentemente, però, richiede la stessa combinazione per effettuare azioni sue. Come fare, allora, a ridefinirla? Semplicissimo, basta andare qui:

Impostazioni di sistema -> Aspetto e comportamento dello spazio di lavoro -> Comportamento delle finestre -> Comportamento delle finestre (chissà perché due volte?!)

Selezionare ora la scheda Azioni finestra, cambiare la voce da Sposta a Niente e il gioco è fatto!

mercoledì 22 giugno 2011

Come collaudare la tastiera

La tastiera del portatile ha preso a far cilecca. Come testarla? In Linux c'è un programma meraviglioso, xev, basta aprire una finestra di terminale e digitare
 
$ xev

dopodiché la pressione di qualsiasi tasto verrà registrata e identificata nella finestra, a meno che il tasto non funzioni. Bellissimo!

venerdì 10 giugno 2011

Estendere le man pages

Molti pacchetti installano la propria documentazione fuori dei path standard, allora come fare a vederla?
In openSUSE è semplicissimo, prendiamo ad esempio il pacchetto Gogo6 IPv6 client, che tipicamente s'installa in /usr/local/gogoc e schiaffa la sua documentazione nella sottocartella man.
Allora che esista già o meno, editiamo il file /etc/profile.local e vi aggiungiamo la riga seguente:

export MANPATH=$MANPATH:/usr/local/gogoc/man

dopodiché basta rieseguire il login e il gioco è fatto, nel caso in questione i comandi

$ man gogoc

e

$ man gogoc.conf

restuiscono rispettivamente la documentazione sull'eseguibile del client e quella sul suo file di configurazione.

giovedì 26 maggio 2011

Pronti per l'IPv6 con OpenDNS!

Non ci vuole un indovino per capire cosa offra OpenDNS, un servizio ben noto e molto raccomandibile per migliorare l'efficienza nella risoluzione dei nomi su Internet. Una delle caratteristiche più cutting edge è la IPv6 Sandbox, ovvero la disponibilità di server IPv6 per la sperimentazione del protocollo che determinerà il futuro di Internet.
Per fare uso di questo servizio nell'openSUSE del mio portatile ho utilizzato una semplice procedura, che è suggerita un po' dappertutto sul web, ovvero ho editato il file /etc/resolv.conf e aggiunto l'elenco statico dei server IPv6 di OpenDNS subito prima di quello dei server IPv4, ovvero:

$ sudo vim /etc/resolv.conf

nameserver 2620:0:ccc::2
nameserver 2620:0:ccd::2



Prima di riavviare i servizi di rete ho preso la precauzione di rendere non modificabile il file, ovvero:

$ sudo chattr +i /etc/resolv.conf

questo perché altrimenti la configurazione potrebbe essere sovrascritta in automatico da NetworkManager.

Fatto ciò, mi è stato sufficiente un bel

$ sudo /etc/init.d/network restart

per poi andare a testare la funzionalità IPv6. Risultato? 10/10! Con il servizio di risoluzione dei nomi che avevo in opera prima di questa modifica non c'ero mai riuscito.