Ddrescue fa i miracoli

Due giorni fa ho notato una estrema lentezza del mio sito/mail. Mi loggo nella macchina e trovo dei simpaticissimi messaggi:

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

APIC error on CPU0: 40(40)
hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: status timeout: status=0xd0 { Busy }

hda: drive not ready for command
ide0: reset: success
hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

hda: irq timeout: status=0xd0 { Busy }

C’erano circa 32° ma io iniziavo a sentire freddo!.. Che fare?

Vediamo se Google mi aiuta.. Uhm niente, inizio a pensare…. Se provassi a mettere un altro disco e dare un cp -a / /nuovodisco ? Soluzione troppo spartana, anche se potrebbe funzionare.

Si può fare di più.

E se usassi “dd” per effettuare una copia grezza? Vediamo cosa dice google.
Dopo una serie di click trovo Ddrescue, vediamo se è pacchettizzata su Debian Sarge. Sorpresa: NO! O per lo meno, c’è solo la versione per sid.
Ricerco su google e trovo il port per sarge.

Bene, in meno di un’ora mi sono ritrovato con il mio disco clonato, ecco cosa fare:

  1. Stoppare TUTTI i servizi (apache, bind, ecc) che potenzialmente possono scrivere sul vostro disco danneggiato (ad esclusione di ssh se state lavorando da remoto)
  2. Creare una partizione poco più grande della vostra partizione danneggiata.
  3. Eseguire un # ddrescue -r3 /dev/hdaX /dev/hdbX logfile

Spiego l’ultimo comando.

da man ddrescue:


ddrescue [options] infile outfile [logfile]

-r, --max-retries=
exit after given retries (-1=infinity) [0]

Ddrescue farà una copia esatta del device hdaX in hdbX e se troverà settori/blocchi danneggiati tenterà nuovamente per 3 volte. Inoltre scriverà un file di log chiamato ./filelog.

L’operazione dura da pochi minuti a parecchie ore a seconda la dimensione della vostra partizione, ma alla fine avrete un clone funzionante (o quasi 🙂 ).

Detto ciò date un ext2fs -f /dev/hdbX e dopo un resize2fs /dev/hdbX.

Continuate con le altre partizioni, e alla fine avrete il vostro nuovo disco clonato!