|
|
(39 versioni intermedie di 10 utenti non mostrate) |
Riga 1: |
Riga 1: |
| ==Introduzione== | | {{Versioni compatibili|Wheezy|Jessie|Testing_2016|Unstable_2016}} |
| Questa guida � dedicata all'installazione dei modem USB contenenti il chipset Conexant su Debian Sarge, ma pu� essere utile anche per l'installazione in release diverse (o, con opportune modifiche di configurazione, in distribuzioni diverse).
| | == Introduzione == |
| I driver utilizzti provengono dal progetto [http://accessrunner.sourceforge.net/ Accessrunner], sono stati rilasciati con licenza GPL e recentemente inclusi nell'albero principale del kernel Linux (dalla versione 2.6.13).
| | Gli '''Hard Disk''' sono una delle parti più delicate degli odierni PC, ed infatti sono tra le periferiche che più facilmente sono soggette a rompersi. |
|
| |
|
| I modem con questo chipset necessitano per funzionare di un modulo del kernel (prima chiamato driver) di nome cxacru che � stato scritto per versioni del kernel Linux dalla 2.6.10 in poi.
| | Fortunatamente ci sono degli strumenti studiati per diagnosticare i malfunzionamenti prima ancora che possano creare danno (speriamo ;-)). Ma ricordate che un backup periodico dei dati importanti è sempre la scelta migliore. |
| Esistono versioni precedenti dello stesso progetto funzionanti per kernel della serie 2.4 e anche qualche adattamento per kernel della serie 2.6 precedenti al 2.6.10, ma non sono pi� mantenuti e pertanto se ne consiglia l'utilizzo solo ad utenti esperti o molto coraggiosi.
| |
|
| |
|
| Oltre al driver, questi modem necessitano per funzionare anche di un firmware, che in questo caso non � altro che un sistema operativo real-time (si, potrebbe funzionare anche linux, esiste un progetto a riguardo, ma al momento nessuno ha avuto successo con esso. Trovate qualche riferimento alla homepage gi� citata).
| | In questa guida vedremo come usare alcuni strumenti come '''smartmontools''' e '''badblocks''' per monitorare lo stato di salute di un hard disk, vedremo come effettuare le basilari operazioni di backup di emergenza e come affrontare un eventuale ripristino dei dati. |
| A complicare il tutto c'� il fatto che sono state rilasciate, sotto forma di binari gi� compilati, due versioni differenti di questo firmware: una usa "celle ATM impacchettate in frame USB" mentre l'altra usa "frame ethernet su USB". Il progetto Accessrunner supporta solo il primo di questi protocolli.
| |
| Se vi capitasse di avere un modem che viene equipaggiato solo con il firmware del secondo tipo (di solito nei CD di installazione ci sono tutti e due), allora per usare il driver accessrunner dovete procurarvi un firmware del primo tipo da qualche parte in rete (eventualmente provate a postare nel forum).
| |
|
| |
|
| ==Verificare se il modem � supportato==
| | {{Box|Nota|Questa guida raccoglie le mie (limitate) conoscenze in materia nella speranza che siano utili ad altri. Sentitevi liberi di contribuire con approfondimenti o link ad ulteriori documenti.}} |
| Prima di iniziare l'installazione � necessario verificare che il modem in possesso sia supportato dal progetto. Per fare questo � necessario collegare il modem ad una porta usb. In un terminale digitiamo
| |
|
| |
|
| <pre>$ less /proc/bus/usb/devices </pre>
| | == DISCLAIMER == |
|
| |
|
| si otterr� una serie di informazioni su tutte le periferiche usb che avete nel pc.
| | Per quanto abbia fatto del mio meglio per verificare l'attendibilità delle informazioni, non posso garantire in alcun modo che alcune delle tecniche illustrate di seguito non possano danneggiare i vostri dati, bruciare la vostra casa o uccidere il vostro gatto. |
| La parte che ci interessa � questa:
| | |
| <pre>
| | Faccio notare, inoltre, che il ripristino dei dati da una partizione corrotta è più una specie di magia nera che una scienza esatta, e richiede oltre che doti da chiromante anche una buona dose di fortuna. Quindi, e non lo ripeterò più, fate backup sistematici dei vostri dati o non lamentatevi se doveste perderli accidentalmente e non riuscire più a recuperarli! |
| T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
| | |
| D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
| | == Controllare lo stato di salute di un HD: smartmontools == |
| P: Vendor=0572 ProdID=cb00 Rev= 0.01
| |
| S: Manufacturer=-
| |
| S: Product=ADSL USB MODEM
| |
| S: SerialNumber=55473201
| |
| C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
| |
| I: If#= 0 Alt= 0 #EPs= 7 Cls=00(>ifc ) Sub=00 Prot=00 Driver=none
| |
| E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
| |
| E: Ad=84(I) Atr=03(Int.) MxPS= 8 Ivl=200ms
| |
| </pre>
| |
|
| |
|
| Prendiamo nota dalla riga <tt>P:</tt> dei campi <tt>Vendor</tt> e <tt>ProdID</tt> che identificano il chipset del modem e notiamo che alla voce <tt>Driver</tt> c'� scritto <tt>none</tt>, segno che in effetti state seguendo questa guida per qualcosa ;-).
| | Gli ''smartmontools'' permettono di usare la funzionalità [http://en.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology SMART] di tutti i moderni HD grazie alla quale è possibile prevedere con 24 ore di anticipo la rottura di un HD. |
| Controllate se Vendor e Product ID del vostro modem corrispondono ad uno dei [http://accessrunner.sourceforge.net/modems.shtml modem supportati].
| |
| Se corrispondono ad un modem non supportato, provate a fare una ricerca nella [http://sourceforge.net/mailarchive/forum.php?forum_id=43894 mailing list del progetto] per vedere se (ed eventualmente come) qualcun altro � riuscito a risolvere il vostro problema.
| |
|
| |
|
| ==L'occorrente per l'installazione==
| | In Debian basta installare il pacchetto '''smartmontools'''. Con [[privilegi di amministrazione]] è sufficiente: |
| Se il � modem supportato possiamo procedere, ma saranno necessarie ancora alcune cose:
| |
| *Il compilatore gcc funzionante. Se non l'avete installatelo (� presente nel primo cd di installazione, non vi serve internet):
| |
| <pre> | | <pre> |
| aptitude install gcc
| | # apt-get install smartmontools |
| </pre> | | </pre> |
| *Il driver per Wi.. (mi spiace non riesco a scriverlo ;-)) che dovreste avere in dotazione al modem. Se non l'avete cercate in rete un firmware compatibile per esempio alla Hamlet e saltate il prossimo punto.
| | |
| *L'utility per estrarre il firmware dal driver Wi... (� pi� forte di me :-D). Se avete una connessione ad internet funzionante potete mettervi in una directory in cui avete diritto di scrittura e digitate
| | === Analizzare lo stato dell'HD === |
| | Possiamo usare l'utility <code>'''smartctl'''</code> per analizzare lo stato dell'HD. |
| | {{Box | Hard disk SATA |Se avete dei dischi SATA dovete ricordarvi di attivare l'opzione: |
| <pre> | | <pre> |
| $ cvs -z3 -d:server:anonymous@cvs.sourceforge.net:/cvsroot/accessrunner co -P utils
| | -d ata |
| </pre> | | </pre> |
| altrimenti dovrete usare un'altro computer connesso ad internet, aprire [http://cvs.sourceforge.net/viewcvs.py/accessrunner/ questa pagina] (che � la simulazione web del cvs) e scaricare i quattro file contenuti nella cartella <tt>utils</tt>.
| | utilizzando l'utility <code>smartctl</code>, altrimenti riceverete un messaggio d'errore. |
| Ad ogni modo dopo esserci procurati le utils dobbiamo compilarle:
| | }} |
| | Innanzitutto vediamo alcune informazioni generiche sul nostro HD: |
| | |
| <pre> | | <pre> |
| $ cd utils # o dovunque avete messo i file
| | # smartctl -i /dev/hda |
| $ make
| | smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen |
| | Home page is https://www.smartmontools.org/ |
| | |
| | === START OF INFORMATION SECTION === |
| | Model Family: Western Digital Caviar family |
| | Device Model: WDC WD600BB-00CAA1 |
| | Serial Number: WD-WMA8F1747570 |
| | Firmware Version: 17.07W17 |
| | User Capacity: 60,022,480,896 bytes |
| | Device is: In smartctl database [for details use: -P show] |
| | ATA Version is: 5 |
| | ATA Standard is: Exact ATA specification draft version not indicated |
| | Local Time is: Tue Jan 31 17:36:07 2006 CET |
| | SMART support is: Available - device has SMART capability. |
| | SMART support is: Enabled |
| </pre> | | </pre> |
| *Nel caso in cui il modem si identifichi con il'ID <tt>0xcafe</tt> (<tt>0x</tt> sta per esadecimale), vi serve anche la ROM di boot che scaricate ad esempio cos�
| | |
| | oltre alle informazioni generiche, dalle ultime due righe si capisce che l'HD supporta la tecnologia SMART e che il supporto è attivato. Se non fosse attivato basterebbe questo comando: |
| <pre> | | <pre> |
| $ wget http://www.olitec.com/pub/USBADSLV151-1008fr.tar.gz
| | # smartctl -s on /dev/hda |
| </pre> | | </pre> |
| ora estraete il file WBoot.hex
| | per attivare il supporto SMART. |
| | |
| | Per controllare lo stato di salute attuale: |
| | |
| <pre> | | <pre> |
| $ tar xvfz USBADSLV151-1008fr.tar.gz && cp USBADSL/WBoot.hex .
| | # smartctl -H /dev/hda |
| </pre>
| | smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen |
| e poi create un programmino C per convertire il file esadecimale in binario cos�:
| | Home page is https://www.smartmontools.org/ |
| <pre>
| | |
| $ echo "int main(int argc, char ** argv)
| | === START OF READ SMART DATA SECTION === |
| {
| | SMART overall-health self-assessment test result: PASSED |
| unsigned int bp[] = {
| |
| #include "WBoot.hex"
| |
| };
| |
| write(1, bp, sizeof(bp));
| |
| }
| |
| " > programmino.c
| |
| </pre>
| |
| compilatelo e rendetelo eseguibile:
| |
| <pre>
| |
| $ gcc programmino.c -o programmino
| |
| $ chmod +x programmino
| |
| </pre> | | </pre> |
| ed eseguitelo in questo modo:
| |
| <pre>
| |
| ./programmino > cxacru-bp.bin
| |
| </pre>
| |
| *Purtroppo nella attuale stable (sarge) trovate il kernel 2.6.8 quindi, a meno che non abbiate gi installato un kernel 2.6.13 o superiore dovrete usare un PC connesso ad internet per scaricare uno dei seguenti pacchetti:
| |
| **il sorgente di un kernel >=2.6.10 nella forma di un pacchetto kernel-source (o linux-source, nella nomenclatura pi recente)
| |
| **un pacchetto kernel-image >=2.6.10 (o linux-image) gi compilato, e il pacchetto linux-headers corrispondente, per compilare il modulo fuori dal kernel
| |
| **un pacchetto linux-image >=2.6.13 da installare direttamente
| |
| *Nel caso si decida per la compilazione di un kernel <2.6.13 (ma, ribadisco, sempre >=2.6.10) o anche del solo modulo cxacru necessario scaricare la patch usbatm che trovate [http://sourceforge.net/project/showfiles.php?group_id=47406 qui]. Conviene sempre prendere l'ultima versione disponibile, che al momento il file usbatm-20050216.tar.bz2.
| |
|
| |
|
| Se siete poco pratici di debian, e installare il modem � una delle prime cose che fate sulla vostra nuova sarge, devo avvisarvi che il fatto di aggiornare il kernel da 2.6.8 a 2.6.12 o superiori comporta qualche difficolt� tecnica. A breve vedr� di scrivere una piccola guida per questa migrazione, ma nel frattempo, prima di avventurarvi per questa strada: cercate informazioni nel forum ;-)
| | L'ultima riga ci dice che la salute sembra buona e nessuno dei parametri interni controllati da SMART ha superato il livello di guardia. |
|
| |
|
| Da questo punto in avanti supporremo di aver messo tutti i file necessari all'installazione in una directory di lavoro all'interno della vostra home: ~/work/
| | {{Warningbox| Se il precedente comando non riporta '''PASSED''' smontate immediatamente tutte le partizioni presenti su quell'HD ed effettuate un backup dei dati: la rottura definitiva ed irreversibile del disco è prevista nelle successive 24 ore!}} |
|
| |
|
| ==Installazione di linux-image==
| | Per avere tutte le informazioni possibili sul nostro HD diamo: |
| Nel caso abbiate optato per l'installazione di un pacchetto linux-image non vi resta altro da fare che installarlo (da root):
| |
| <pre> | | <pre> |
| # dpkg -i ~/work/linux-image-2.6.x-xx-xxx.deb | | # smartctl -a /dev/hda |
| </pre> | | </pre> |
|
| |
|
| Nota: qui si � supposto che il modem in questione rappresenti il vostro unico collegamento ad internet. Se invece avete accesso direttamente ad internet potete fare affidamento per l'installazione ad [[Indice_Guide#Gestione_dei_Pacchetti | apt]], che gestir� automaticamente le eventuali dipendenze.
| | L'output, abbastanza lungo (<code>-a</code> sta per "all"), è diviso in quattro sezioni. Il primo blocco rappresenta le informazioni generiche sull'HD (le stesse ottenute prima con <code>-i</code>), la seconda sezione riporta le informazioni sul supporto SMART. La terza sezione elenca i parametri interni monitorati da SMART e se hanno mai superato il livello di guardia, nel mio caso: |
| | |
| Verificate che il bootloader, lilo o grub, punti alle giuste immagine del kernel e dell'initrd (vedi [[Debian_Kernel_Howto#Installazione_nuovo_kernel | installazione nuovo kernel]]) e fate un reboot con il nuovo kernel.
| |
| Se non ci sono errori, a seconda della versione del kernel che avete installato, potete continuare con la compilazione del modulo cxacru, o passare all'installazione del firmware.
| |
|
| |
|
| ==Compilazione e installazione del solo modulo cxacru==
| |
| Se il kernel che avete installato non comprende ancora il modulo cxacru, dovete compilarlo e installarlo a parte. Per questo sono sufficienti gli headers del kernel, ma vanno bene anche i sorgenti completi. Se avete scaricato i pacchetti deb con gli headers (di solito sono due pacchetti: uno generico e uno relativo alla vostra architettura) dovete installarli:
| |
| <pre> | | <pre> |
| # dpkg -i ~/work/linux-headers*.deb | | SMART Attributes Data Structure revision number: 16 |
| | Vendor Specific SMART Attributes with Thresholds: |
| | ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE |
| | 1 Raw_Read_Error_Rate 0x000b 200 200 051 Pre-fail Always - 0 |
| | 3 Spin_Up_Time 0x0007 099 091 021 Pre-fail Always - 4108 |
| | 4 Start_Stop_Count 0x0032 098 098 040 Old_age Always - 2590 |
| | 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 |
| | 7 Seek_Error_Rate 0x000b 200 200 051 Pre-fail Always - 0 |
| | 9 Power_On_Hours 0x0032 092 092 000 Old_age Always - 6494 |
| | 10 Spin_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 |
| | 11 Calibration_Retry_Count 0x0013 100 100 051 Pre-fail Always - 0 |
| | 12 Power_Cycle_Count 0x0032 098 098 000 Old_age Always - 2435 |
| | 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 |
| | 197 Current_Pending_Sector 0x0012 200 200 000 Old_age Always - 0 |
| | 198 Offline_Uncorrectable 0x0012 200 200 000 Old_age Always - 0 |
| | 199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 19 |
| | 200 Multi_Zone_Error_Rate 0x0009 200 200 051 Pre-fail Offline - 0 |
| </pre> | | </pre> |
|
| |
|
| ora si pu� procedere con la compilazione e installazione del modulo, dopo averlo scompattato:
| | I parametri indicati come <code>''Pre-fail''</code> sono quelli che superano la soglia di guardia nelle 24 ore che precedono la rottura dell'HD, mentre quelli <code>''Old_age''</code> sono i parametri che superano la soglia di guardia quando ormai l'HD è vecchio e non è considerato più affidabile dal costruttore. Nel mio esempio si vede che nessun parametro ha mai superato la soglia di guardia. |
| <pre> | |
| # cd ~/work/
| |
| # tar xvfj ~/work/usbatm-20050216.tar.bz2
| |
| # cd ~/work/drivers/usb/atm
| |
| # make -C /usr/src/linux-headers-2.6.1x M=$PWD CONFIG_USB_CXACRU=m modules
| |
| # install -g root -o root -m 644 cxacru.ko usbatm.ko /lib/modules/2.6.1x/kernel/drivers/usb/atm/
| |
| # depmod -a
| |
| </pre>
| |
|
| |
|
| Se tutto � andato bene potete saltare il paragrafo sulla compilazione e passare all'installazione del firmware.
| | L'ultima sezione del comando <code>smartctl -a /dev/hda</code> riguarda il log dei test manualmente effettuati sull'HD: |
|
| |
|
| ==Compilazione e installazione del kernel==
| |
| Nel caso abbiate deciso di compilare un nuovo kernel installate il pacchetto <tt>kernel-source</tt> (<tt>linux-source</tt>).
| |
| Qui supporremo che un utente non privilegiato non abbia diritto di scrittura nella directory <tt>/usr/src</tt> (come imho dovrebbe essere), quindi tutti i comandi successivi devono essere dati da root oppure usando un programma che vi dia pari diritti per queste azioni (per es. <tt>sudo</tt>).
| |
| <pre> | | <pre> |
| # dpkg -i ~/work/linux-source-2.6.x-xx-xxx.deb
| | SMART Error Log Version: 1 |
| </pre>
| | No Errors Logged |
| questo installer� un archivio compresso contenente il kernel nella directory <tt>/usr/src/</tt>. Andiamo a scompattarlo e applichiamo la patch:
| | |
| <pre>
| | SMART Self-test log structure revision number 1 |
| # cd /usr/src | | Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error |
| # tar xvfj linux-source-2.6.x-xx-xxx.tar.bz2 | | # 1 Short offline Completed without error 00% 952 - |
| # cd linux-source-2.6.x-xx-xxx | | # 2 Conveyance offline Completed without error 00% 951 - |
| # tar xvfj ~/work/usbatm-20050216.tar.bz2 | | # 3 Short offline Completed without error 00% 951 - |
| | # 4 Short offline Completed without error 00% 875 - |
| </pre> | | </pre> |
|
| |
|
| C'� chi sostiene che scompattare il file usbatm direttamente nel kernel sia assolutamente sbagliato, per il rischio di sovrascrivere qualcosa. Ma considerando che l'operazione ha senso solo per 3 versioni del kernel, e successivamente i file contenuti nel pacchetto sono stati inclusi nell'albero dei sorgenti esattamente nella stessa posizione in cui li abbiamo messi noi, penso che siano timori infondati, a patto di non sbagliare la versione del kernel ;-).
| | Nell'esempio si può vedere che sono stati effettuati 4 test, di cui tre di tipo <code>''short''</code> e uno di tipo <code>''conveyance''</code>. Nessuno di loro ha dato esito positivo (cioè non sono stati rilevati malfunzionamenti). |
| | |
| | === Effettuare manualmente i test === |
|
| |
|
| '''nota bene''': mentre sperimentate con la compilazione del kernel <u>non usate mai</u> la directory <tt>/usr/src/linux</tt> che dovrebbe essere un link simbolico (<tt>man ln</tt>) ai sorgenti del kernel attualmente in uso. Se tutto il nostro procedimento funzioner�, alla fine cambierete il link in modo che punti ai sorgenti giusti. Per approfondimenti sull'argomento vedere il [[Debian_Kernel_Howto | debian kernel howto]] | | È possibile effettuare dei test più o meno approfonditi sul disco. Alcuni test si possono effettuare con l'HD montato e funzionante, ed il test stesso avrà un impatto minimo o nullo sulle prestazioni del sistema. |
|
| |
|
| Invece di compilare un kernel da zero (impresa a dir poco titanica) conviene recuperare il config relativo al kernel che state usando, che dovrebbe essere presente nella directory <tt>/boot</tt>, e dovrebbe chiamarsi <tt>config-<versione del kernel></tt> o simili: sempre dalla directory principale dei sorgenti del kernel digitate
| | Per effettuare un test: |
| <pre> | | <pre> |
| # cp /boot/config<qualcosa> .config | | # smartctl -t tipo_test /dev/hda |
| </pre> | | </pre> |
| in questo modo avrete un albero dei sorgenti configurato esattamente come il vostro attuale kernel, e da qui potete fare solo le modifiche che vi servono.
| | dove ''<code>tipo_test</code>'' può essere: |
|
| |
|
| A questo punto prima di compilare dobbiamo abilitare alcune opzioni del kernel. Digitate
| | ;<code>short</code>: effettua un test sul disco di durata inferiore a 10 minuti, può essere eseguito durante il normale funzionamento e non ha alcun impatto sulle prestazioni. Questo test controlla le performance meccaniche ed elettriche del disco, oltre che le performance in lettura; |
| <pre> | | |
| # make menuconfig
| | ;<code>long</code>: effettua un test di durata da 40 minuti ad un ora (a seconda del disco). Può essere effettuato durante il normale funzionamento del disco e non ha impatto sulle prestazioni. Questo test è una versione più estesa dello <code>''short test''</code>; |
| </pre> | | |
| | ;<code>conveyance</code>: effettua un test di alcuni minuti atto a scoprire difetti dovuti ad incurie nel trasporto dell'HD. Può essere eseguito durante il normale funzionamento dell'HD. |
|
| |
|
| Andate alla voce <tt>Device Drivers -> USB support -> USB DSL modem support</tt> ed attivate <tt>USB DSL modem support</tt> e <tt>Conexant AccessRunner USB support</tt>.
| | Esistono anche altri tipi di test per i quali si rimanda alla simpatica pagina di manuale: '''<code>man smartctl</code>'''. |
|
| |
|
| '''Nota''': il driver cxacru deve essere compilato come modulo perch�, probabilmente a causa di un bug, se compilato nel kernel in molti casi viene inizializzato prima che il firmware sia disponibile, e restituisce l'errore "<tt>firmware not found</tt>" anche se in realt� l'avete messo nel posto giusto. Il fatto � che non potendo fare "<tt>rmmod cxacru && modprobe cxacru</tt>", per farlo reinizializzare non vi resterebbe che staccare fisicamente il modem dalla porta usb e riattaccarlo, dopo ogni reboot, e questo pu� essere parecchio seccante! | | I risultati di questi test vengono riportati nella parte finale dell'output di <code>smartctl -a /dev/hda</code>, come notato in precedenza. |
|
| |
|
| Il resto della configurazione dovrebbe essere gi� a posto, ma controllate per sicurezza.
| | === Controllo automatizzato === |
| Alla voce <tt>Device Drivers -> Networking support </tt>
| | È possibile attivare il demone '''<code>smartd</code>''' fornito dal pacchetto <code>smartmontools</code> per monitorare in continuazione lo stato di salute dell'HD e notificare ogni anomalia immediatamente tramite syslog. |
| <pre> | |
| <M> PPP support
| |
| <M> PPP support for async serial ports
| |
| <M> PPP support for sync tty ports
| |
| <M> PPP deflate compression
| |
| <M> PPP BSD-Compress compression
| |
| <M> PPP over ATM
| |
| </pre> | |
|
| |
|
| Ala voce <tt>Networking options</tt>
| | Normalmente il demone è disabilitato. Per abilitarlo bisogna editare il file <code>/etc/default/smartmontools</code> e decommentare le righe: |
| <pre> | | <pre> |
| <M> Asyncronous Transfer Mode
| | start_smartd=yes |
| <M> Classical IP over ATM
| | smartd_opts="--interval=1800" |
| [*] Do NOT send ICMP if no neighbour
| |
| </pre> | | </pre> |
| | Dobbiamo inoltre configurare smartd per deciderne il suo comportamento. A tal scopo editiamo il file <code>/etc/smartd.conf</code>. Leggendo i commenti nel file e l'amichevole pagina di manuale (<code>man smartd.conf</code>) è possibile scegliere quali parametri <code>smartd</code> debba monitorare, programmare dei test automatici, e decidere quali azioni intraprendere in caso di errore. |
|
| |
|
| A questo punto uscite salvando la configurazione attuale e costruite il pacchetto <tt>kernel-source-2.6.x-xx-xxx-Custom.deb</tt> (per approfondimenti vedere [[Debian_Kernel_Howto#Compilazione_del_kernel | Compilazione del kernel]] nel Debian kernel howto):
| | Nel mio caso ho inserito solo le seguenti linee: |
| <pre> | | <pre> |
| # make-kpkg clean
| | /dev/hda -a -o on -S on |
| # make-kpkg --initrd kernel-image
| | /dev/sda -a -d ata -m root |
| </pre> | | </pre> |
| e installate il pacchetto ottenuto: | | che attivano il monitoraggio di tutti (<code>-a</code>) i parametri, abilitano l'''automatic online data collection'' (<code>-o on</code>), inviano una mail a root (<code>-m root</code>) in caso di errori e abilitano il salvataggio degli attributi (<code>-S on</code>) in modo che le informazioni di log di SMART vengano memorizzare nella FLASH del disco e siano disponibili anche dopo il riavvio. |
| | <br/><br/> |
| | Nel caso si stesse usando un server '''HP Proliant con controller RAID E200i''' è possibile monitorare lo stato dei dischi inserendo in <code>/etc/smartd.conf</code> le seguenti linee: |
| <pre> | | <pre> |
| # dpkg -i ../kernel-image-2.6.x.xx.xxx-Custom.deb
| | /dev/cciss/c0d0 -T permissive -f -M daily -m yourmail@somehost.com -d cciss,0 -a -s L/../../7/04 |
| | /dev/cciss/c0d0 -T permissive -f -M daily -m yourmail@somehost.com -d cciss,1 -a -s L/../../7/04 |
| </pre> | | </pre> |
| | dove: |
| | * <code>/dev/cciss/c0d0</code> indica l'unità RAID logica creata dal controller |
| | * <code>-d cciss,0</code> indica il primo disco fisico del set RAID |
| | * <code>-d cciss,1</code> indica il secondo disco fisico del set RAID |
|
| |
|
| Ora verificate che il bootloader (lilo o grub) punti alle immagini giuste di kernel e initrd e poi riavviate.
| | == Verifica di settori corrotti == |
|
| |
|
| | L'utility <code>'''badblocks'''</code> permette di fare un controllo di basso livello per vedere se su una partizione sono presenti dei settori danneggiati. |
|
| |
|
| '''Aggiornamento''': solo recentemente (23/11/2005) sono riuscito nell'intento di far funzionare correttamente il driver cxacru anche se � compilato all'interno del kernel :-D. Questo permette di costruire un kernel monolitico e di disabilitare il supporto per i moduli, cosa senz'altro desiderabile nelle situazioni in cui � necessario un certo grado di sicurezza (per es. per un PC che fa da firewall-router).
| | I moderni HD IDE fanno un controllo automatico degli errori e sono in grado di segnare dei settori corrotti che di conseguenza non verranno più usati. Questo rende in parte inutile <code>badblocks</code>, ma se si effettua un controllo e dei settori risultano danneggiati vuol dire che probabilmente la superficie del disco contiene così tanti settori danneggiati che la circuiteria di controllo non è più in gradio di gestirli. |
| Poich� la cosa non � per niente banale, e comporta la compilazione di un kernel recente (minimo 2.6.12, ma io ho testato il 2.6.14) e la creazione di un initramfs personalizzato (oltre a qualche configurazione minore in udev), consiglio la cosa solo ad utenti particolarmente avventurosi. Chi vuole cimentarsi mi pu� contattare sul forum.
| |
|
| |
|
| ==Installazione del firmware==
| | Per effettuare un controllo con <code>badblocks</code> smontiamo la partizione ed eseguiamo: |
| Qualunque metodo abbiate seguito, dopo il reboot dovreste trovare disponibile il modulo <tt>cxacru</tt>, verificate con
| |
| <pre> | | <pre> |
| # modprobe -l |grep cxacru | | # badblocks -b dimensione_blocco /dev/sdaX |
| </pre> | | </pre> |
| il comando dovrebbe restituire un output simile a:
| | dove <code>/dev/sdaX</code> è la partizione da controllare. Il parametro <code>dimensione_blocco</code> è la dimensione del blocco usata dal filesytem espresso in byte. Di solito è 4096 (ovvero 4KB), per controllare potete usare: |
| <pre> | | <pre> |
| /lib/modules/2.6.x/kernel/drivers/usb/atm/cxacru.ko | | # dumpe2fs -h /dev/sdaX | grep -i "block size" |
| </pre> | | </pre> |
| se non restituisce nulla significa che c'� stato un errore nei precedenti passaggi. | | Per le ulteriori opzioni di <code>badblocks</code> si rimanda all'amichevole pagina di manuale, ma '''attenzione: l'opzione <code>-w</code> distruggerà tutti i dati sulla vostra partizione'''. Non usatela se non volete che ciò accada. |
|
| |
|
| Se tutto � andato per il meglio proseguiamo andando a recuperare il CD dei driver per w... ehm, quell'altro S.O. | | Se trovate dei settori danneggiati conviene cambiare immediatamente HD. Sebbene ci sia una piccola probabilità che l'errore sia isolato (dovuto ad esempio ad uno sbalzo di tensione) è molto più probabile che l'HD si stia progressivamente danneggiando e presto ci saranno dei nuovi settori danneggiati. Comunque se volete giocare alla roulette russa con i vostri dati siete liberi di farlo :-P. |
| Cercate nel CD il file <tt>CnxEtU.sys</tt> e copiatelo nella Cartella di lavoro. Ora estraete il firmware e copiatelo nella directory dove hotplug (o udev se usate un sistema pi� recente) si aspetta di trovarlo:
| | |
| | == Backup di emergenza == |
| | Per effettuare un backup di emergenza di una partizione corrotta il tool più efficace è '''[http://www.gnu.org/software/ddrescue/ddrescue.html GNU ddrescue]''' (da non confondere con il simile ma meno potente <code>[http://www.garloff.de/kurt/linux/ddrescue/ dd_rescue]</code>). Per installare GNU ddrescue in Debian basta installare il pacchetto <code>gddrescue</code>. |
| | |
| | GNU ddrescue può effettuare backup di singoli file o di intere partizioni, riconoscendo ed aggirando i settori danneggiati. Può essere interrotto in qualsiasi momento, riprendere la copia da punto in cui è stato interrrotto e può fare il ''merge'' dei file se si hanno più copie degli stessi file corrotti. |
| | |
| | Il suo uso è vagamente simile al classico '''<code>dd</code>''': |
| <pre> | | <pre> |
| # cd ~/work | | # ddrescue [OPTIONS] INFILE OUTFILE [LOGFILE] |
| # ./utils/cxacru-fw CnxEtU.sys cxacru-fw.bin
| |
| # cp ~/work/cxacru-fw.bin /lib/firmware
| |
| </pre> | | </pre> |
| Se il vostro modem ha il chipset <tt>0xcafe</tt> copiate nella stessa directory anche la ROM di boot, cio� il file <tt>cxacru-bp.bin</tt>.
| | Per una lista completa delle opzioni si rimanda al manuale: <code>info ddrescue</code>. |
|
| |
|
| A questo punto togliete il modulo <tt>cxacru</tt>, nel caso sia caricato:
| | Riporto un semplice esempio di utilizzo: |
| <pre> | | <pre> |
| # rmmod cxacru | | # ddrescue -r3 /dev/hda3 /dev/hdb2 logfile |
| </pre> | | </pre> |
| staccate il modem dalla porta USB nel caso sia attaccato, e poi riattaccate il modem alla porta usb e ricaricate il driver. Tutto questo perche � sempre megio togliere il modulo dal kernel prima di staccare il modem.
| | Il precedente comando copierà la partizione hda3 in hdb2 (distruggendo gli eventuali dati ivi presenti) provando a leggere tre volte i settori danneggiati e usando <code>logfile</code> come file di log. |
| Ora controllate che sia stato trovato il firmware:
| | |
| <pre> | | Ora possiamo eseguire sulla copia i normali tool di ripristino del nostro filesystem (<code>fsck.*</code>). |
| $ dmesg | tail
| | |
| </pre> | | :''Vedere anche'': |
| il comando dovrebbe restituire qualcosa di simile a
| | :*[[Recuperare i dati da un Hard Disk danneggiato]] |
| <pre>
| | |
| usbcore: registered new driver cxacru
| | == Strumenti per il ripristino dei dati == |
| cxacru 1-1:1.0: found firmware cxacru-fw.bin
| | {{Box|Nota|In questa sezione verrà accennato il problema del ripristino dati. Lo scopo è solo quello di dare una panoramica iniziale del problema che possa servire come orientamento per ulteriori approfondimenti.}} |
| </pre>
| | |
| Nel caso, una volta caricato il firmware, riceviate, sempre in <tt>dmesg</tt>, il messaggio:
| | Prima di ogni operazione di ripristino dati è fortemente consigliato effettuare una copia della partizione (vedi sezione precedente) e operare sulla copia. |
| <pre>
| |
| cxacru 1-1:1.0: poll status: error -5
| |
| </pre>
| |
| significa che occorre una versione pi� recente del vostro firmware. In effetti non � assolutamente detto che i driver forniti dal produttore del modem siano aggiornati, ma potete senz'altro trovare un firmware aggiornato in rete (o eventualmente postando nel forum).
| |
|
| |
|
| Ora il driver del modem dovrebbe gi� essere in funzione e il led relativo alla linea ADSL dovrebbe lampeggiare, segno che sta cercando la sincronizzazione con la linea. Mentre il led lampeggia avrete che:
| | La metodologia per il ripristino dei dati può variare a seconda del filesytem utilizzato e del modo in cui si sono perduti i dati. Ad esempio se si vogliono recuperare dei file cancellati accidentalmente da una partizione ext2 ci sono delle buone possibilità di usare il tool <code>recover</code> (presente nei repository fino a Debian 7). Il tool <code>recover</code> non può essere usato su partizione ext3/ext4, dove invece si può usare il tool <code>extundelete</code> (disponibile anch'esso nei repository Debian). |
| <pre> | |
| $ cat /proc/net/atm/cxacru\:0
| |
| ADSL USB MODEM (usb-0000:00:07.2-1)
| |
| MAC: xx:yy:zz:bla bla bla
| |
| AAL5: tx 9363 ( 0 err ), rx 14299 ( 0 err, 0 drop )
| |
| Line down
| |
| </pre> | |
| e anche:
| |
| <pre> | |
| $ tail /var/log/messages
| |
| Oct 5 08:06:00 muretto kernel: ATM dev 0: ADSL line: attempting to activate
| |
| Oct 5 08:06:10 muretto kernel: ATM dev 0: ADSL line: down
| |
| Oct 5 08:06:15 muretto kernel: ATM dev 0: ADSL line: attempting to activate
| |
| Oct 5 08:06:35 muretto kernel: ATM dev 0: ADSL line: down
| |
| Oct 5 08:06:40 muretto kernel: ATM dev 0: ADSL line: attempting to activate
| |
| Oct 5 08:08:00 muretto kernel: ATM dev 0: ADSL line: channel analysis
| |
| Oct 5 08:08:05 muretto kernel: ATM dev 0: ADSL line: up (4832 kb/s down | 320 kb/s up)
| |
| </pre>
| |
| qui alle 8.08.00 il modem si � sincronizzato con il segnale ADSL .
| |
|
| |
|
| Una volta agganciato il segnale ADSL si avr�:
| | In mancanza di strumenti automatici si usa la così detta ''Unix Way''. Ovvero si usano i tradizionali strumenti Unix per accedere direttamente al device ed estrarre i dati utili. Ad esempio se si devono recuperare file di testo o documenti non binari (per intenderci non foto o musica o programmi compilati) si possono usare <code>egrep</code> e <code>strings</code>. |
| <pre> | |
| $ cat /proc/net/atm/cxacru\:0
| |
| appariranno di seguito queste informazioni
| |
| ADSL USB MODEM (usb-0000:00:07.2-1)
| |
| MAC: xx:yy:zz:bla bla bla
| |
| AAL5: tx 9363 ( 0 err ), rx 14299 ( 0 err, 0 drop )
| |
| Line up
| |
| </pre> | |
| Ci siamo: il driver del modem � perfettamente funzionante.
| |
|
| |
|
| ==Impostazione della connessione==
| | Se si vogliono recuperare foto in formato JPEG è possibile usare <code>'''recoverjpeg'''</code> (presente nell'omonimo pacchetto Debian) che cerca di identificare gli header JPEG in una immagine di file system. |
| Prima di iniziare dovete sapere:
| | È fortemente consigliata la lettura dei documenti elencati di seguito nella sezione ''Links->Articoli'' per degli esempi pratici sul recupero dati da filesystem ext2 e reiserfs (ma le informazioni possono servire da spunto per operare anche su altri file system). |
| *userid e password forniti dal provider (di solito per Telecom Alice l'userid e la password sono entrambi uguali a <tt>aliceadsl</tt>)
| |
| *VPI e VCI del provider (nel caso di Telecom Alice sono 8 e 35).
| |
| *IP e DNS del nostro provider nel caso di una connessione con IP statico.
| |
|
| |
|
| Iniziamo con la configurazione.
| | == Links == |
| Create il file <tt>/etc/ppp/peers/adsl</tt> in questo modo:
| | === Sul wiki === |
| <pre>
| | * [[Recuperare i dati da un Hard Disk danneggiato]] |
| # echo "noauth
| |
| noipdefault
| |
| usepeerdns
| |
| defaultroute
| |
| persist
| |
| plugin pppoatm.so 8.35
| |
| user \"userid\"
| |
| " > /etc/ppp/peers/adsl
| |
| </pre>
| |
| oppure copiate nella directory <tt>/etc/ppp/peers/</tt> il file <tt>/usr/share/doc/ppp/examples/peers-pppoa</tt>
| |
| <pre>
| |
| # cp /usr/share/doc/ppp/examples/peers-pppoa /etc/ppp/peers/
| |
| </pre>
| |
| In entrambi i casi modificate la riga <tt>user "userid"</tt> mettendo il vostro userid ;-), con o senza le virgolette: non ha importanza.
| |
|
| |
|
| Inserite userid e password nei file <tt>/etc/ppp/pap-secrets</tt> e <tt>/etc/ppp/chap-secrets</tt>:
| | === Articoli === |
| <pre>
| | * [http://www.linuxquestions.org/linux/answers/Hardware/ReiserFS_Data_Recovery_Tips ReiserFS Data Recovery Tips] |
| # echo "userid * password" >> /etc/ppp/pap-secrets
| | * [http://www.pluto.it/sites/default/files/ildp/HOWTO/Ext2fs-Undeletion/Ext2fs-Undeletion.html Linux Ext2fs Undeletion mini-HOWTO] |
| # echo "userid * password" >> /etc/ppp/chap-secrets
| | * [http://www.linuxjournal.com/article/8366 How a Corrupted USB Drive Was Saved by GNU/Linux] |
| </pre>
| |
|
| |
|
| A questo punto fate partire la connessione con il comando
| | === Strumenti Utili === |
| <pre>
| | * [https://www.smartmontools.org/ smartmontools Home Page] |
| # pon adsl
| | * [http://www.gnu.org/software/ddrescue/ddrescue.html GNU ddrescue] |
| </pre>
| | * [http://www.partimage.org/index.en.html Partimage] |
| ed il gioco � fatto.
| | * [http://www.cgsecurity.org/index.html?testdisk.html TestDisk] |
|
| |
|
| Controllate in <tt>/var/log/messagges</tt> se tutto funziona regolarmente:
| |
| <pre>
| |
| # tail /var/log/messagges
| |
| Jun 3 00:07:40 localhost pppd[5101]: Plugin /usr/lib/pppd/2.4.2/pppoatm.so loaded.
| |
| Jun 3 00:07:40 localhost kernel: PPP generic driver version 2.4.2
| |
| Jun 3 00:07:40 localhost pppd[5101]: PPPoATM plugin_init
| |
| Jun 3 00:07:40 localhost pppd[5101]: PPPoATM setdevname_pppoatm - SUCCESS:8.35
| |
| Jun 3 00:07:40 localhost pppd[5126]: pppd 2.4.2 started by root, uid 0
| |
| Jun 3 00:07:40 localhost pppd[5126]: Using interface ppp0
| |
| Jun 3 00:07:40 localhost pppd[5126]: Connect: ppp0 <--> 8.35
| |
| Jun 3 00:07:43 localhost pppd[5126]: PAP authentication succeeded
| |
| Jun 3 00:07:43 localhost pppd[5126]: local IP address 82.59.0.222
| |
| Jun 3 00:07:43 localhost pppd[5126]: remote IP address 192.168.100.1
| |
| Jun 3 00:07:43 localhost pppd[5126]: primary DNS address 80.17.212.208
| |
| Jun 3 00:07:43 localhost pppd[5126]: secondary DNS address 151.99.125.1
| |
| </pre>
| |
|
| |
|
| Controllate in <tt>/etc/resolv.conf</tt> se i DNS sono corretti altrimenti li dovrete inserire a mano. Per esempio un <tt>/etc/resolv.conf</tt> con i DNS di libero sarebbe:
| | {{Autori |
| <pre>
| | |Autore= [[Utente:TheNoise|~ The Noise]] 05:31, Feb 4, 2006 (EST) |
| $ cat /etc/resolv.conf
| | |Estesa_da= |
| search libero.it
| | |Verificata_da= |
| nameserver 193.70.192.25
| | : [[Utente:HAL 9000|HAL 9000]] 20:45, 10 apr 2016 (CEST) |
| nameserver 193.70.152.25
| | |Numero_revisori=1 |
| </pre>
| | }} |
|
| |
|
| Buona navigazione!
| | [[Categoria:Monitoraggio]] |
| ----
| | [[Categoria:Hard Disk]] |
| : [[Utente:Tindal|Tindal]]
| |