Gestire gli HD: stato di salute, badblocks e ripristino dati: differenze tra le versioni

m
nessun oggetto della modifica
mNessun oggetto della modifica
(32 versioni intermedie di 9 utenti non mostrate)
Riga 1: Riga 1:
==Installazione QEMU con qvm86/kqemu per Debian/Ubuntu==
{{Versioni compatibili|Wheezy|Jessie|Testing_2016|Unstable_2016}}
== Introduzione ==
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.


=== Qemu con supporto qvm86 (libero, ma sperimentale) ===
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.


====1. Fase Preliminare====
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.  
Assicuratevi di aver installato i pacchetti necessari a scaricare e compilare il tutto:
* '''ssh''' e '''cvs''' (per scaricare qvm86 occorre andare via cvs remoto)
* '''patch''' (per usare qvm86 con qemu occorre effettuare una piccola patch ai sorgenti di qemu)
* '''gcc-3.3''' oppure '''gcc-3.4''' (qemu non � ancora compilabile col gcc 4.0)
* '''libsdl1.2-dev'''
* '''zlib1g-dev'''
* '''make'''
* '''kernel-headers-'''''versione_del_kernel_in_uso'' (oppure '''linux-headers-'''''versione_del_kernel_in_uso'' se avete una Ubuntu od usate una Debian unstable con un kernel recente). La versione pu� essere individuata eseguendo il comando <code>uname -r</code>.


====2. Recupero file QEMU====
{{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.}}
Scaricate da [http://fabrice.bellard.free.fr/qemu/download.html http://fabrice.bellard.free.fr/qemu/download.html] gli archivi dei codici sorgenti di QEMU, e come '''utente diverso da root''' scompattateli in una directory e poi entrateci.
$ tar zxvf qemu-0.8.0.tar.gz
$ cd qemu-0.8.0


====3. Recupero file qvm86====
== DISCLAIMER ==
Scaricate via cvs i sorgenti di qvm86, in modo che siano all'interno della directory dei sorgenti di qemu, sempre con un utente '''diverso da root'''.
$ export CVS_RSH=ssh
$ export CVSROOT=:pserver:anonymous@cvs.savannah.nongnu.org:/sources/qvm86
$ cvs -z3 co qvm86


====4. Applicazione patch====
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.
Applicate dalla directory dei sorgenti di qemu la patch provvista da qvm86.
$ patch -p0 < qvm86/patch.qvm86


====5. Configurazione====
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!
Configurate l'ambiente di compilazione avviando lo script <code>./configure</code>.
Verificate che sia tutto ok, poi compilate il tutto ed installate.
$ ./configure --cc=gcc-3.3
$ make
Se avviando <code>./configure</code> avete errori del tipo che non si riesce a trovare la parte di sviluppo di libsdl, avete scompattato gli archivi come root. Leggete meglio sopra e ricominciate da capo.


Se dopo aver avviato <code>make</code> ci sono errori di compilazione, ci si pu� limitare a compilare il solo modulo di emulazione x86, aggiungendo l'opzione <code>--target-list=i386-softmmu</code> al comando <code>./configure</code>.
== Controllare lo stato di salute di un HD: smartmontools ==
$ make clean
$ ./configure --cc=gcc-3.3 --target-list=i386-softmmu
$ make


Se non ci sono errori, ora potete diventare root ed installare qemu.
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.
$ su
Password:
# make install


A questo punto qemu � installato in <code>/usr/local/bin/qemu</code>, ed il modulo qvm86 si trova in <code>/lib/modules/''versione_del_kernel''/misc/qvm86.ko</code>.
In Debian basta installare il pacchetto '''smartmontools'''. Con [[privilegi di amministrazione]] è sufficiente:
<pre>
# apt-get install smartmontools
</pre>


====6. Caricamento modulo====
=== Analizzare lo stato dell'HD ===
Prima di eseguire qemu va caricato il modulo del kernel <code>qvm86</code>, va eventualmente creato <code>/dev/qvm86</code> (usato per interagire col kernel) e gli vanno dati permessi adeguati.  
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>
-d ata
</pre>
utilizzando l'utility <code>smartctl</code>, altrimenti riceverete un messaggio d'errore.
}}
Innanzitutto vediamo alcune informazioni generiche sul nostro HD:


Esempio di procedura manuale (per chi '''non ha''' installato il pacchetto udev):'''
<pre>
# Queste due operazioni sono da fare come root una volta sola:
# smartctl -i /dev/hda
# mknod /dev/qvm86 c 222 0
smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen
# chmod 666 /dev/qvm86
Home page is https://www.smartmontools.org/
#
# Questa operazione va eseguita come root ad ogni avvio del sistema per usare qemu
# modprobe qvm86


Esempio di procedura manuale (per chi '''ha''' installato il pacchetto udev):
=== START OF INFORMATION SECTION ===
  # Queste due operazioni vanno eseguite come root ad ogni avvio del sistema
Model Family:    Western Digital Caviar family
# modprobe qvm86
Device Model:     WDC WD600BB-00CAA1
# chmod 666 /dev/qvm86
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>


Per far eseguire '''automaticamente''' queste operazioni ad ogni avvio del sistema (consigliato):
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:
* diventate root (<code>su -</code>)
<pre>
* modificate il file <code>/etc/modules</code> aggiungendo la riga <code>qvm86</code>, in modo che il modulo venga automaticamente caricato al boot.
# smartctl -s on /dev/hda
* create il file <code>/etc/modprobe.d/qvm86</code> contenente le seguenti righe:
</pre>
** per chi '''non ha''' installato il pacchetto udev:
per attivare il supporto SMART.
install qvm86 /sbin/modprobe --ignore-install qvm86 \
&& (test -c /dev/qvm86 || mknod /dev/qvm86 c 222 0) \
&& chmod 666 /dev/qvm86
:* per chi '''ha''' installato il pacchetto udev:
install qvm86 /sbin/modprobe --ignore-install qvm86 && chmod 666 /dev/qvm86


Una volta caricato il modulo e dati i permessi di lettura a /dev/qvm86 siamo pronti per eseguire il nuovo qemu.
Per controllare lo stato di salute attuale:


Accertatevi che il qemu che andrete ad eseguire '''sia quello compilato in <code>/usr/local/bin/qemu</code>''': potete farlo eseguendo <code>type qemu</code>.
<pre>
# smartctl -H /dev/hda
smartctl version 5.34 [i686-pc-linux-gnu] Copyright (C) 2002-5 Bruce Allen
Home page is https://www.smartmontools.org/


=== Qemu col supporto kqemu (proprietario) ===
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED
</pre>


====1. Fase Preliminare====
L'ultima riga ci dice che la salute sembra buona e nessuno dei parametri interni controllati da SMART ha superato il livello di guardia.
Assicuratevi di aver installato i pacchetti necessari a compilare il tutto:
* '''gcc-3.3''' oppure '''gcc-3.4''' (qemu non � ancora compilabile col gcc 4.0)
* '''libsdl1.2-dev'''
* '''zlib1g-dev'''
* '''make'''
* '''kernel-headers-'''''versione_del_kernel_in_uso'' (oppure '''linux-headers-'''''versione_del_kernel_in_uso'' se avete una Ubuntu od usate una Debian unstable con un kernel recente). La versione pu� essere individuata eseguendo il comando <code>uname -r</code>.


====2. Recupero file QEMU/KQEMU====
{{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!}}
Scaricate archivi dei codici sorgenti di [http://fabrice.bellard.free.fr/qemu/download.html QEMU e KQEMU], e come '''utente diverso da root''' scompattateli in modo che la directory di kqemu venga estratta all'interno della directory di qemu. Quindi entrate nella directory dei sorgenti.
$ tar zxvf qemu-0.8.0.tar.gz
$ tar zxvf kqemu-0.7.2.tar.gz -C qemu-0.8.0
$ cd qemu-0.8.0


====3. Configurazione====
Per avere tutte le informazioni possibili sul nostro HD diamo:
Configurate l'ambiente di compilazione avviando lo script <code>./configure</code>.
<pre>
Verificate che sia tutto ok e che il supporto kqemu sia attivato, in modo che venga compilato
# smartctl -a /dev/hda
il modulo corretto per il vostro kernel. Poi compilate il tutto ed installate.
</pre>
$ ./configure --cc=gcc-3.4
$ make
Se avviando <code>./configure</code> avete errori del tipo che non si riesce a trovare la parte di sviluppo di libsdl, avete scompattato gli archivi come root invece che come utente comune. Leggete meglio sopra e ricominciate da capo.


Se dopo aver avviato <code>make</code> ci sono errori di compilazione, ci si pu� limitare a compilare il solo modulo di emulazione x86, aggiungendo l'opzione <code>--target-list=i386-softmmu</code> al comando <code>./configure</code>.
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:
$ make clean
$ ./configure --cc=gcc-3.4 --target-list=i386-softmmu
$ make


Se non ci sono errori, ora potete diventare root ed installare qemu.
<pre>
  $ su
SMART Attributes Data Structure revision number: 16
  Password:
Vendor Specific SMART Attributes with Thresholds:
  # make install
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>


A questo punto qemu � installato in <code>/usr/local/bin/qemu</code>, ed il modulo kqemu si trova in <code>/lib/modules/''versione_del_kernel''/misc/kqemu.ko</code>.
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.


====4. Caricamento modulo====
L'ultima sezione del comando <code>smartctl -a /dev/hda</code> riguarda il log dei test manualmente effettuati sull'HD:
Prima di eseguire qemu va caricato il modulo del kernel <code>kqemu</code>, va eventualmente creato <code>/dev/kqemu</code> (usato per interagire col kernel) e gli vanno dati permessi adeguati.


Esempio di procedura manuale (per chi '''non ha''' installato il pacchetto udev):'''
<pre>
# Queste due operazioni sono da fare come root una volta sola:
SMART Error Log Version: 1
# mknod /dev/kqemu c 250 0
No Errors Logged
# chmod 666 /dev/kqemu
#
# Questa operazione va eseguita come root ad ogni avvio del sistema
# modprobe kqemu


Esempio di procedura manuale (per chi '''ha''' installato il pacchetto udev):
SMART Self-test log structure revision number 1
  # Queste due operazioni vanno eseguite come root ad ogni avvio del sistema
Num  Test_Description    Status                  Remaining  LifeTime(hours) LBA_of_first_error
  # modprobe kqemu major=0
# 1 Short offline      Completed without error      00%      952        -
# chmod 666 /dev/kqemu
# 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>


Per far eseguire '''automaticamente''' queste operazioni ad ogni avvio del sistema (consigliato):
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).
* diventate root (<code>su -</code>)
* modificate il file <code>/etc/modules</code> aggiungendo la riga <code>kqemu</code>, in modo che il modulo venga automaticamente caricato al boot.
* create il file <code>/etc/modprobe.d/kqemu</code> contenente le seguenti righe:
** per chi '''non ha''' installato il pacchetto udev:
install kqemu /sbin/modprobe --ignore-install kqemu \
&& (test -c /dev/kqemu || mknod /dev/keqmu c 250 0) \
&& chmod 666 /dev/kqemu
:* per chi '''ha''' installato il pacchetto udev:
options kqemu major=0
install kqemu /sbin/modprobe --ignore-install kqemu && chmod 666 /dev/kqemu


Una volta caricato il modulo e dati i permessi di lettura a /dev/kqemu siamo pronti per eseguire il nuovo qemu.
=== Effettuare manualmente i test ===


Accertatevi che il qemu che andrete ad eseguire '''sia quello compilato in <code>/usr/local/bin/qemu</code>''': potete farlo eseguendo <code>type qemu</code>.
È 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.


== Utilizzo QEMU ==
Per effettuare un test:
<pre>
# smartctl -t tipo_test /dev/hda
</pre>
dove ''<code>tipo_test</code>'' può essere:


===Creazione immagine===
;<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;
(facoltativo) Creazione di un file immagine per il disco (facoltativo)
$ qemu-img create hd.img 5G


===Esecuzione QEMU===
;<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>;
''(cambiare il boot per fare l'installazione da cd etc..)''


Per semplicita` qui avviamo qemu da root (gli utenti comuni in Debian solitamente non possono leggere direttamente /dev/cdrom), tuttavia qemu puo` tranquillamente essere eseguito come utente comune (consigliato).
;<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.
# qemu -boot c -cdrom /dev/cdrom -hda /home/rob/hd.img \
-user-net -pci -m 256 -k it -localtime


Le principali opzioni di qemu sono:
Esistono anche altri tipi di test per i quali si rimanda alla simpatica pagina di manuale: '''<code>man smartctl</code>'''.


* '''-m ''megabyte'' ''' --> memoria per l'emulatore = 256MB
I risultati di questi test vengono riportati nella parte finale dell'output di <code>smartctl -a /dev/hda</code>, come notato in precedenza.
* '''-k it''' --> tastiera italiana
* '''-localtime''' --> usa ora locale (default UTC)
* '''-pci''' --> emula scheda di rete rtl8029 PCI
* '''-boot c''' --> avvia dal dico rigido emulato (usare '''-boot d''' per il boot dal cdrom emulato)
* '''-user-net''' --> Il sistema GUEST deve essere configurato in DHCP. Qemu assegna un indirizzo dinamico "10.0.2.15" al SO guest, il quale sar� in grado di pingare solo il suo GW che � "10.0.2.2". Per testare la rete quindi avviare le applicazioni di rete, visto che il ping ''host'' non funziona.


=== QEMU Networking ===
=== Controllo automatizzato ===
È 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.


'''Sezione da revisionare per i cambiamenti nella versione 0.8.0'''
Normalmente il demone è disabilitato. Per abilitarlo bisogna editare il file <code>/etc/default/smartmontools</code> e decommentare le righe:
<pre>
start_smartd=yes
smartd_opts="--interval=1800"
</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.


Con la soluzione indicata qui sopra, il sistema Guest riesce a navigare in Internet, ma non riesce ad accedere alle risorse del proprio host. La maniera pi� facile per configurare qemu in modo che possa fare entrambe le cose, � quella di installare vde e usare tun/tap con un bridge.
Nel mio caso ho inserito solo le seguenti linee:
<pre>
/dev/hda -a -o on -S on
/dev/sda -a -d ata -m root
</pre>
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>
/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>
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


Prima di iniziare, dovete verificare che il vostro kernel supporti i seguenti moduli:
== Verifica di settori corrotti ==
  tun: "Network device support" -> "Universal TUN/TAP device driver support"
  IP masquerade: "Networking options" -> "IP: Netfilter Configuration"
  bridging: "Networking options" -> "802.1d Ethernet Bridging"


e dovete installare il pacchetto bridge-utils:
L'utility <code>'''badblocks'''</code> permette di fare un controllo di basso livello per vedere se su una partizione sono presenti dei settori danneggiati.
apt-get install bridge-utils


[http://vde.sourceforge.net Vde] sta per Virtual Distributed Ethernet ed � un programma open source che vi permette di creare un network virtuale. Noi lo utilizzeremo per far fare in modo che il sistema Guest veda se stesso come un'unit� distinta dal sistema host e possa colloquiare con questi.
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.


Per quel che ne so io, non esiste (ancora) un pacchetto deb gi� pronto per l'uso, ma per installare vde sono sufficenti poche righe:
Per effettuare un controllo con <code>badblocks</code> smontiamo la partizione ed eseguiamo:
wget http://puzzle.dl.sourceforge.net/sourceforge/vde/vde-1.5.9.tar.gz
<pre>
tar -xvzf vde-1.5.9.tar.gz
# badblocks -b dimensione_blocco /dev/sdaX
cd vde-1.5.9
</pre>
./configure
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:
make
<pre>
make install
# dumpe2fs -h /dev/sdaX | grep -i "block size"
</pre>
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.


Una volta fatto questo, siete pronti per configurare tun e il bridge:
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.
vde_switch -tap tun0 -daemon
chmod 777 /tmp/vde.ctl
ifconfig eth0 down
brctl addbr br0
ifconfig eth0 0.0.0.0 promisc up
ifconfig tun0 0.0.0.0 promisc up
# l'IP qui sotto � quello del computer host; modificatelo per adeguarlo alle vs esigenze
ifconfig br0 192.168.0.200 netmask 255.255.255.0 broadcast 192.168.0.255 up
brctl stp br0 off
brctl setfd br0 1
brctl sethello br0 1
brctl addif br0 eth0
brctl addif br0 tun0
# questo invece � l'indirizzo IP del gateway
route add default gw 192.168.0.1


NB: Una volta verificato che tutto funziona, queste istruzioni vanno inserite in uno script in modo da essere eseguite automaticamente all'accensione del computer qui ne trovate uno piuttosto grezzo: [http://www.itaca.coopsoc.it/download/sources/vde_qemu vde_qemu], che va salvato in /etc/init.d. Dopodich�:
== Backup di emergenza ==
chmod u+x /etc/init.d/vde_qemu
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>.  
update-rc.d -n vde_qemu defaults 90


Ora tutto � pronto per lanciare qemu, con l'ultima avvertenza che dovete usare l'apposito wrapper vdeqemu:
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.
vdeqemu -hda disk.img -localtime


Potete utilizzare tutte le opzioni di qemu, fuorch� -user-net, che disattiverebbe tun.
Il suo uso è vagamente simile al classico '''<code>dd</code>''':
<pre>
# ddrescue [OPTIONS] INFILE OUTFILE [LOGFILE]
</pre>
Per una lista completa delle opzioni si rimanda al manuale: <code>info ddrescue</code>.


Ora il sistema guest dovrebbe accedere a tutte le porte del sistema host, in maniera totalmente trasparente: da risorse di rete dovreste vedere il vostro server samba con le sue partizioni; dal browser dovreste accedere alle pagine del vostro server web, etc. etc.
Riporto un semplice esempio di utilizzo:
<pre>
# ddrescue -r3 /dev/hda3 /dev/hdb2 logfile
</pre>
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.


=== Patch per Windows ===
Ora possiamo eseguire sulla copia i normali tool di ripristino del nostro filesystem (<code>fsck.*</code>).


Per quanto riguarda l'utilizzo della CPU, a quanto pare Windows 9x non fa un uso corretto della istruzione CPU HLT e quindi spara la cpu a 100% quando � in idle (non fa nulla) e invece la usa regolarmente quando � sotto "sforzo", paradossalmente infatti, se viene utilizzata la cpu di qemu l'utilizzo di cpu si abbassa su linux in proporzione.
:''Vedere anche'':
:*[[Recuperare i dati da un Hard Disk danneggiato]]


La patch puo' essere scaricata [http://klingon.homelinux.net/files/amnhltm.zip qui], va installata sul Win9x GUEST.
== Strumenti per il ripristino dei dati ==
{{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.}}


==Collegamenti esterni==
Prima di ogni operazione di ripristino dati è fortemente consigliato effettuare una copia della partizione (vedi sezione precedente) e operare sulla copia.
*[http://ubuntuforums.org/showthread.php?t=39513 http://ubuntuforums.org/showthread.php?t=39513]
*[http://fabrice.bellard.free.fr/qemu/index.html http://fabrice.bellard.free.fr/qemu/index.html]
*[http://fabrice.bellard.free.fr/qemu/qemu-doc.html http://fabrice.bellard.free.fr/qemu/qemu-doc.html]
*[http://www.debian-administration.org/?article=40 http://www.debian-administration.org/?article=40]
*[http://oui.com.br/n/content.php?article.21 http://oui.com.br/n/content.php?article.21]
*[http://www.carlsonhome.net/computer_help_log.php http://www.carlsonhome.net/computer_help_log.php]
*[http://savannah.nongnu.org/projects/qvm86/ http://savannah.nongnu.org/projects/qvm86/]


==Conributi==
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).
[[Utente:Themonkey|Themonkey]] 20:31, Ago 19, 2005 (EDT) The_monk_ey ( skype: the_monk_ey )


[[Utente:ianezz|ianezz]] 17:40, Nov 25, 2005 (CET) ''(per la parte di compilazione ed installazione)''
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>.


[[Utente:Paulox|Paulox]] 11:13, Dic 21, 2005 (EST) ''(aggiornamento alla versione 0.8.0 e riformattazione della pagina)''
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.
È 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).
 
== Links ==
=== Sul wiki ===
* [[Recuperare i dati da un Hard Disk danneggiato]]
 
=== Articoli ===
* [http://www.linuxquestions.org/linux/answers/Hardware/ReiserFS_Data_Recovery_Tips ReiserFS Data Recovery Tips]
* [http://www.pluto.it/sites/default/files/ildp/HOWTO/Ext2fs-Undeletion/Ext2fs-Undeletion.html Linux Ext2fs Undeletion mini-HOWTO]
* [http://www.linuxjournal.com/article/8366 How a Corrupted USB Drive Was Saved by GNU/Linux]
 
=== Strumenti Utili ===
* [https://www.smartmontools.org/ smartmontools Home Page]
* [http://www.gnu.org/software/ddrescue/ddrescue.html GNU ddrescue]
* [http://www.partimage.org/index.en.html Partimage]
* [http://www.cgsecurity.org/index.html?testdisk.html TestDisk]
 
 
{{Autori
|Autore= [[Utente:TheNoise|~ The Noise]] 05:31, Feb 4, 2006 (EST)
|Estesa_da=
|Verificata_da=
: [[Utente:HAL 9000|HAL 9000]] 20:45, 10 apr 2016 (CEST)
|Numero_revisori=1
}}
 
[[Categoria:Monitoraggio]]
[[Categoria:Hard Disk]]
1

contributo