|
|
Riga 1: |
Riga 1: |
| {{stub}}
| | =About MaXeR= |
| == Introduzione ==
| | Mi chiamo Claudio, ho 21 anni e studio Informatica presso l'Universit� degli Studi di Verona. |
|
| |
|
| Gli '''Hard Disk''' sono una delle parti pi� delicate degli odierni pc, ed infatti sono tra le periferiche che pi� facilmente soggette a rompersi.
| | ==Contatti== |
| | ; Blog : http://www.knio.it |
|
| |
|
| Fortunantamente ci sono degli strumenti che permettono diagnosticare i malfunzionamenti (sperabilmente) prima ancora che possano creare danno. Ma ricordate che un backup periodico dei dati importanti � sempre la scelta migliore.
| | ; MaXeR@fsfe.org : http://www.fsfe.org/Members/maxer/ |
|
| |
|
| 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 ed eventualmente come affrontare il ripristino dei dati.
| | ; MaXeR@persone.softwarelibero.it : http://persone.softwarelibero.org/person/MaXeR |
|
| |
|
| == DISCLAIMER ==
| | ; em@il : [mailto:maxer@debianizzati.org maxer@debianizzati.org]<br/>[mailto:maxer@knio.it maxer@knio.it]<br/>[mailto:maxer@fsfe.org maxer@fsfe.org] |
|
| |
|
| Per quanto io faccia del mio meglio per verificare l'attendibilit delle informazioni, non posso garantire che alcune delle tecniche illustrate di seguito possano danneggire i vostri dati, bruciare la vostra casa o uccidere il vostro gatto.
| |
|
| |
|
| Faccio notare, inoltre, che il ripristino dei dati da una partizione corrotta sia pi� una magia nera che una scienza e richiede oltre che doti da chiromante anche una buona dose di fortuna. Quindi, e non lo ripeto pi�, fate backup sistematici dei vostri dati o non lamentatevi se doveste perderli accidentalmente e non riuscire pi� a recuperarli!
| | ; jabber : maxer@jabber.linux.it |
|
| |
|
| == Controllare lo stato di salute di un HD: smartmontools ==
| |
|
| |
|
| 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.
| | [http://www.fsfe.org http://www.knio.it/images/a-happy-fellow.png] |
|
| |
|
| In debian basta installare il pacchetto smartmontools:
| | =Le Mie Guide= |
| | # [[La struttura della Distribuzione]] |
| | # [[I repository ed il loro utilizzo]] |
| | # [[Introduzione all' Apt System]] |
| | # [[Pulire Debian]] |
| | # [[Applicare una patch ad un pacchetto Debian]] |
| | # [[Apt-build: ottimizzazione dei pacchetti | '''Apt-build''': ottimizzazione dei pacchetti]] |
| | # [[Apt-cdrom | '''Apt-cdrom''': aggiunta di cd/dvd nella lista dei repository]] |
| | # [[Apt-file: ricerca all'interno dei pacchetti | '''Apt-file''': ricerca all'interno dei pacchetti]] |
| | # [[Apt-listbugs: come monitorare i bug | '''Apt-listbugs''': come monitorare i bug]] |
| | # [[Apt-zip: aggiornamenti senza una connessione veloce | '''Apt-zip''': aggiornamenti senza una connessione veloce]] |
| | # [[Make-jpkg: Pacchettiziamo Java Sun| '''Make-jpkg''': Pacchettiziamo Java Sun]] |
| | # [[Apt-Proxy: un proxy per i pacchetti Debian| '''Apt-Proxy''': un proxy per i pacchetti Debian]] |
| | # [[Debmirror: creiamo un mirror Debian |'''Debmirror''': creiamo un mirror Debian]] |
| | # [[Password sicure: la base della sicurezza informatica]] |
| | # [[Come abilitare il completamento automatico 'avanzato']] |
| | # [[Convertire immagini .nrg in immagini .iso]] |
| | # [[mod_bandwidth: Gestione avanzata della banda]] |
| | # [[Mrtg: monitoriamo la banda]] |
| | # [[UsbMount: Gestione automatizzata delle periferiche usb di memorizzazione]] |
| | # [[Powernowd: CpuScaling per AMD]] |
| | # [[ cacti | Cacti per monitorare il sistema ]] |
| | # [[ Debian_on_a_compaq_Presario_2154EA ]] |
| | # [[ Munin ]] |
| | # [[ Debian Fun ]] |
| | # [[LAMP: Linux, Apache, MySQL e PHP]] Collaborazione con [[Utente:Keltik|Keltik]] |
| | # [[ SysV ]] |
| | # [[ jigdo ]] |
| | # [[ Wireless Support ]] |
| | # [[ Apache, SSL e CaCert.Org ]] (stub) |
| | # [[ Pacchetizzare un tema per Bootsplash ]] |
|
| |
|
| # aptitude install smartmontools
| | =Pagine in Lavorazione= |
| | * [[ postfix-mysql | Postfix MySql ]] |
| | * [[ Creare pacchetti per Kde ]] (bozza) |
| | * [[ Hdparm ]] (bozza) |
| | * [[ Writing Udev Rules ]] (Traduzione) (todo) |
| | * [[ Anyterm]] (stub) |
| | * [[ Sudo ]] |
| | * [[ Backport Howto ]] |
| | * [[ Gestione di un repository con debarchiver ]] |
| | * [[ apt-move ]] |
| | * [[ dpkg-repack ]] |
| | * [[ dpkg-split ]] |
| | * [[ Netiquette e Regole ]] |
|
| |
|
| === Analizzare lo stato dell'HD === | | =Ho scritto anche in= |
| Possiamo usare l'utility <tt>'''smartctl'''</tt> per analizzare lo stato dell'HD.
| | * [[ Speciale:Contributions/MaXeR | dove ho ficcato il naso ;) ]] |
|
| |
|
| Innazi tutto vediamo alcune informazioni generiche sul nostro HD:
| | =Pagine Varie riportate da altre fonti= |
| | | # [[Perch� conviene sviluppare esclusivamente Software Libero]] |
| <pre>
| | # [[Vendere Software Libero]] |
| # smartctl -i /dev/hda | | # [[Perch� il software non deve avere padroni]] |
| smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen
| | # [[La comunit� del software libero dopo 20 anni]] |
| Home page is http://smartmontools.sourceforge.net/
| | # [[Ricompense e Motivazione]] |
| | |
| === 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>
| |
| | |
| oltre alle informazioni generiche 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:
| |
| | |
| # smatmontools -s on /dev/hda
| |
| | |
| per attivare il supporto SMART.
| |
| | |
| Per controllare lo stato di salute attuale:
| |
| | |
| <pre>
| |
| # smartctl -H /dev/hda
| |
| smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen
| |
| Home page is http://smartmontools.sourceforge.net/
| |
| | |
| === START OF READ SMART DATA SECTION ===
| |
| SMART overall-health self-assessment test result: PASSED
| |
| </pre>
| |
| | |
| L'ultima riga ci dice che la salute sembra buona e nessuno dei parametri interni controllati da SMART ha superato il livello di guardia.
| |
| | |
| {{Warningbox| Se il precendente comando non riporta '''PASSED''' smontate immediatamente tutte le partizioni presenti su quell'HD ed effettuate un backup dei dati: la rottura definiti del diso � prevista nelle successive 24 ore!}}
| |
| | |
| Per avere tutte le informazioni possibili sul nostro HD diamo:
| |
|
| |
| # smartmontools -a /dev/hda
| |
| | |
| L'output, abbastanza lungo, � diviso in quattro sezioni. Il primo blocco rappresenta le informazioni generiche sull'HD (le stesse ottenute prima con <tt>-i</tt>), 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:
| |
| | |
| <pre>
| |
| 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>
| |
| | |
| I parametri indicati come ''Pre-fail'' sono quelli che superano la soglia di guardia nelle 24 ore che precedono la rottura dell'HD, mentre quelli ''Old_age'' 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 nessun parametro ha mai superato la soglia di guardia.
| |
| | |
| L'ultima sezione del comando <tt>smartctl -a /dev/hda</tt> riguarda il log dei test manualmente effettuati sull'HD:
| |
| | |
| <pre>
| |
| SMART Error Log Version: 1
| |
| No Errors Logged
| |
| | |
| SMART Self-test log structure revision number 1
| |
| Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
| |
| # 1 Short offline Completed without error 00% 952 -
| |
| # 2 Conveyance offline Completed without error 00% 951 -
| |
| # 3 Short offline Completed without error 00% 951 -
| |
| # 4 Short offline Completed without error 00% 875 -
| |
| </pre>
| |
| | |
| Nell'esempio si pu� vedere che sono stati effettuati 4 test di cui tre di tipo ''short'' e uno di tipo ''conveyance''. Nessuno di loro ha dato esito negativo.
| |
| | |
| === Effettuare manualmente i test ===
| |
| | |
| E' possibile effettuare dei test pi� o meno approfonditi sul disco. Alcuni test si possono effettuare con l'HD montato e funzionate, ed il test stesso avr� un impatto minimo o nullo sulle prestazioni del sistema.
| |
| | |
| Per effettuare un test:
| |
| | |
| # smartctl -t tipo_test /dev/hda
| |
| | |
| dove ''<tt>tipo_test</tt>'' pu� essere:
| |
| | |
| ;<tt>short</tt>: effettua un test sul disco di durata inferiore a 10 minuti, pu� essere eseguito durante il normale funzionamento e non impatta le prestazioni. Questo test controlla le performace meccaniche ed elettriche del disco, oltre che le performance in lettura.
| |
| | |
| ;<tt>long</tt>: 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 ''short test''.
| |
| | |
| ;<tt>conveyance</tt>: 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.
| |
| | |
| Esistono anche altri tipi di test per i quali si rimanda alla simpatica pagina di manuale: '''<tt>man smartctl</tt>'''.
| |
| | |
| I risultati di questi test vengono riportati nella parte finale dell'output di <code>smartctl -a /dev/hda</code>, come notato in precedenza.
| |
| | |
| === Controllo automatizzato ===
| |
| | |
| E' possibile attivare il demone '''<tt>smartd</tt>''' fornito dal pacchetto <tt>smartmontools</tt> per monitorare in continuazione lo stato di saluto dell'HD e notificare ogni anomalia immediatamente tramite syslog.
| |
| | |
| Normalmente il demone � disabilitato. Per abilitarlo bisogna editare il file <tt>/etc/default/smartmontools</tt> e decommentare la riga:
| |
| | |
| start_smartd=yes
| |
| | |
| Dobbiamo inoltre configurare smartd per deciderne il suo comportamento. A tal scopo editiamo il file <tt>/etc/smartd.conf</tt>. Leggendo i commenti nel file e l'amichevole pagina di manuale (<tt>man smartd.conf</tt>) � possibile scegliere quali parametri <tt>smartd</tt> debba monitorare, programmare dei test automatici, e decidere quali azioni intraprendere in caso di errore.
| |
| | |
| Nel mio caso ho inserito solo la seguente linea:
| |
| | |
| /dev/hda -a -o on -S on
| |
| | |
| che attiva il monitoraggio di tutti (<tt>-a</tt>) i parametri, abilitia l' ''automatic online data collection'' (<tt>-o on</tt>), e abilita il salvataggio degli attributi (<tt>-S on</tt>) in modo che le informazioni di log di SMART vengano memorizzare nella FLASH del disco e siano disponibili anche dopo il riavvio.
| |
|
| |
| == Verifica di settori corrotti ==
| |
| | |
| L'utility <tt>'''badblocks'''</tt> permette di fare un controllo di basso livello per vedere se su una partizione sono presenti dei settori danneggiati.
| |
| | |
| 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 <tt>badblocks</tt>, 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.
| |
| | |
| Per effettuare un controllo con <tt>badblocks</tt> smontiamo la partizione ed eseguiamo:
| |
| | |
| # badblocks -b dimensione_blocco /dev/hdaX
| |
| | |
| dove <tt>/dev/hdaX</tt> � la partizione da controllare. Il parametro <tt>dimensione_blocco</tt> � la dimensione del blocco usata dal filesytem espresso in byte. Di solito � 4096 (ovvero 4KB), per controllare potete usare:
| |
| | |
| # disktype /dev/hda
| |
| | |
| Per le ulteriori opzioni di <tt>badblocks</tt> si rimanda all'amichevole pagina di manuale, ma '''attenzione: l'opzione <tt>-w</tt> distrugger� tutti i dati sulla vostra partizione'''. Non usatela se non volete che ci� accada.
| |
| | |
| 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.
| |
| | |
| == Backup di emergenza ==
| |
| | |
| == Strumenti per il ripristino dei dati ==
| |
| | |
| == Links ==
| |
| | |
| === Strumenti Utili ===
| |
| * [http://smartmontools.sourceforge.net/ smartmontools Home Page]
| |
| * [http://www.garloff.de/kurt/linux/ddrescue/ dd_rescue]
| |
| * [http://www.partimage.org/index.en.html Partimage]
| |
| * [http://www.cgsecurity.org/index.html?testdisk.html TestDisk]
| |
| | |
| === Articoli ===
| |
| * [http://www.linuxquestions.org/linux/answers/Hardware/ReiserFS_Data_Recovery_Tips ReiserFS Data Recovery Tips]
| |
| | |
| * [http://ildp.pluto.it/HOWTO/Ext2fs-Undeletion.html Linux Ext2fs Undeletion mini-HOWTO]
| |
| * [http://www.linuxjournal.com/article/8366 How a Corrupted USB Drive Was Saved by GNU/Linux]
| |