Aggressivamente attaccare un disco prima dell'installazione


12

Ho una vecchia macchina HP Athlon che utilizzo per testare software con il vecchio processore. Abbiamo frequenti black out e dopo l'ultimo il disco è stato un disastro. Era così male che non potevo correre fscke spedire tutti i problemi. Ho eseguito una nuova installazione del sistema operativo, ma sto ancora ricevendo fscklamentele.

Vorrei provare un'ultima volta a ricaricare Linux prima di condannare il disco rigido o la macchina. Dopo aver creato il filesystem ma prima che si verifichi l'installazione, vorrei che un aggressivo fosse fsckeseguito per contrassegnare i blocchi sospetti come cattivi.

Il disco è grande (circa 500 GB) e una distro Debian 8 è relativamente piccola (8-12 GB è di solito più che sufficiente), quindi non mi interessa se i blocchi buoni vengono contrassegnati come cattivi. Mi piace anche l'installazione della GUI, ma non sono sposato.

Ho due domande:

  1. Debian 8 fornisce una scelta per eseguire un fsckprima di installare il sistema di base? Se cosi, dov'è? In caso contrario, qual è il processo?

  2. Ha fsckun'impostazione per controllare quanto i blocchi aggressivi sono contrassegnati come cattivi? Se è così, che cosa è? In caso contrario, cosa può essere utilizzato?


EDIT : la macchina è un HP5850. Accedendo al BIOS, passando a Archiviazione e quindi all'autotest DPS (Drive Protection System) il DPS ha raccomandato di sostituire l'unità. DPS non ha fornito alcuna statistica, quindi non sono sicuro dell'entità del danno.

Considerando che posso acquistare un [vecchio] nuovo disco SATA II per $ 12 USD, lo sostituirò. Non ha senso sprecare tempo o energia su di esso.


I riferimenti correlati sono i seguenti. Nessuna delle due domande sembra essere stata affrontata.


Perché non SpinRite ?
Peter Mortensen,

In caso di blocchi danneggiati, l'intero disco si guasta fisicamente e non deve essere utilizzato.
Chrylis -on strike-

2
"Aggressively fsck a disk" sembra così sporco ...
A. Mirabeau

Risposte:


19
  1. "Debian 8 offre la possibilità di eseguire un fsck prima di installare il sistema di base? Se sì, dove si trova? In caso contrario, qual è il processo?"

    In alternativa, prima scaricare e masterizzare un CD GPartEd (o scrivere su una chiavetta USB). Prima di eseguire il programma di installazione, avviare GPartEde partizionare il disco a proprio piacimento ed eseguire fscko semplicemente eseguire badblocksa lungo.

    Quando si esegue il programma di installazione di Debian, basta dirgli come usare le partizioni presenti. Non è necessario che il programma di installazione crei le proprie partizioni. È perfettamente felice di utilizzare le partizioni esistenti.

  2. "Fsck ha un'impostazione per controllare quanto i blocchi aggressivi sono contrassegnati come cattivi? In caso affermativo, che cos'è? In caso contrario, che cosa può essere utilizzato?"

    L' -copzione per e2fsckcausare l'esecuzione del badblocksprogramma per la ricerca di blocchi danneggiati. Puoi anche eseguire i badblock direttamente. Per impostazione predefinita, badblocksesegue un test di sola lettura. Per essere più aggressivo, è possibile specificare -nun test di lettura-scrittura non distruttivo. Puoi anche impostare l' -popzione per aumentare il numero di passaggi effettuati.

    Potrebbe essere necessario eseguire badblocksprima di eseguire la partizione. In questo modo, è possibile specificare il -wtest di sola scrittura più veloce .


1
John, +1, solo curioso badblocksha qualche metodo per contrassegnare a livello hardware o solo a livello di FS?
heemayl

3
@heemayl La mia comprensione è che, sui moderni dischi rigidi, il firmware del disco rigido tenta di eseguire tutta la propria gestione dei blocchi danneggiati. Lo scopo dell'esecuzione badblocksè semplicemente quello di forzare il disco rigido a leggere / scrivere tutti i settori. Il disco rigido possiede il rilevamento e la rimappatura dei settori danneggiati e, se tutto funziona come dovrebbe, il badblocksprogramma non viene mai informato che il disco rigido lo sta facendo.
Giovanni 1024,

hmmm..understandable. Quindi, in sostanza, fsck può contrassegnare i blocchi su FS ma i badblock aiutano il firmware del disco a fare la marcatura, non fa nulla di proprio?
heemayl

3
@heemayl Nei tempi antichi, badblockssputava un elenco di settori danneggiati e il filesystem ne prendeva nota. Nei tempi moderni, badblocks e la FS cerca ancora di farlo ma, con un HD moderno, la lista è di solito vuota.
Giovanni 1024,

1
@heemayl, e se l'elenco non è vuoto, il disco è di solito così gravemente rotto che l'opzione migliore è sostituirlo.
Segna l'

7

Se si verificano spesso errori fsck, l'unità potrebbe anche tossire sangue. Anche se si contrassegna ogni singolo blocco danneggiato come non valido, non passerà molto tempo prima che più blocchi vengano danneggiati. Immagino che potresti cambiare in un altro tty per fare un fsck se hai davvero bisogno (Ctrl + alt + F2 per passare a tty2), ma non posso sottolineare abbastanza quanto hai bisogno di un nuovo disco rigido se quello che stai dicendo è preciso.


"Se stai ricevendo errori fsck che spesso ..." - ciò di cui non sono sicuro è, sono una manciata di fsckproblemi dopo la reinstallazione l'entità del problema, o è la punta dell'iceberg. Il sistema si avvia, rileva alcuni errori del file system (4 o 6), ripristina rimontandolo in sola lettura, quindi si avvia.

@jww puoi per favore pubblicare alcuni esempi esatti di detti errori del filesystem?
John Leuenhagen,

Perché passare a un altro tty? Che vantaggio offre questo?
fpmurphy

@ fpmurphy1 sembrava che non fosse in grado di aprire una finestra del terminale, quindi passare a un altro tty sarebbe il modo migliore per entrare in una shell.
John Leuenhagen,

@jww: gli stessi blocchi vengono segnalati ogni volta o un nuovo set viene segnalato ad ogni avvio?
TMN,

5
  1. No, e non credo ne valga la pena. Fsck (come implementato dalla maggior parte dei filesystem) non controlla le tue unità. Convalida i metadati del filesystem e si assicura che la vista sia coerente quando li monti. Non ha molto senso farlo prima dell'installazione, perché per definizione avrai solo spazio vuoto.

  2. Utilizzare invece i badblock . Se vuoi assicurarti che i tuoi dati non marciscano, usa un filesystem che supporti lo scrubbing. Anche lo stesso Lvm può farlo .


3

Per verificare l'affidabilità di un disco moderno, considerare l'utilizzo dei test integrati; puoi attivarli con l'utilità smartctl, ad esempio:

smartctl -t long /dev/sdx
#wait an hour or two
smartctl -a /dev/sdx
#should have recorded a result in the self-test log

Se vuoi assicurarti in anticipo che tutto è stato scritto di recente, al fine di scoprire settori che non scriveranno correttamente, potresti sovrascrivere l'intero supporto con qualcosa come un dd da / dev / urandom, o distruggere con uno dei randomizzati opzioni.


3
Si noti che un ddda /dev/randomrichiederà molti giorni per essere completato su un'unità da 500 GB.
Dmitry Grigoryev l'

1
errore di battitura, grazie :) Non volevo precisare l'esatta sintassi dd poiché volevo evitare di avere delle righe di comando che, se accidentalmente incollate in una shell, causavano una perdita di dati davvero irrecuperabile.
rackandboneman,

Purtroppo, Debian non sembra fornire smartctl: E: Unable to locate package smartctl. È un'utility Red Hat / Fedora?

Il pacchetto debian / ubuntu è smartmontools. A proposito, usa la ricerca di apt-cache per cercare quale pacchetto ha qualcosa.
Rackandboneman,

2

Consiglierei di ottenere il software di formato di basso livello del produttore (se presente) che può essere eseguito solo su Windows (o, se sei fortunato, da un CD / DVD / USB avviabile per il quale scarichi un'immagine dal loro sito Web) . Se si dispone di un controllo sufficiente sull'operazione per ridurre la capacità dichiarata dell'unità in cambio di un pool di settori di riserva molto più ampio, è necessario farlo, in previsione della sostituzione di molti di questi ricambi durante il test dell'unità, come suggerito da @rackandboneman . Molto meglio avere un'unità da 400 o 450 GB con tutti i settori danneggiati sostituiti con ricambi e più lasciati per difetti futuri, piuttosto che esaurire il pool di riserva e avere settori danneggiati futuri che non possono essere rimappati in modo trasparente.


Sono stato in grado di eseguire SeaTools per DOS . SeaTools ha riferito che SMART non si è attivato, il che sembrava insolito. Il test lungo e quello corto fallirono immediatamente. Ho ridimensionato il disco fino a 32 GB; e poi ha eseguito di nuovo il test lungo. SeaTools ha rilevato 4 LBA difettosi intorno al marchio 1190000 e li ha riparati. Una nuova installazione del sistema operativo è andata perfettamente; e i successivi riavvii non hanno avuto problemi. Da quando ho acquistato l'unità SATA II sostitutiva, la conserverò come riserva a caldo se l'unità esistente non funziona correttamente.

Peccato che tu abbia già accettato una risposta diversa.
Monty Harder,

Sì, è la trappola di domande e risposte ... Devo porre domande specifiche per ottenere una risposta precisa. Se avessi chiesto "come posso installare Linux su un disco rigido guasto", probabilmente la domanda sarebbe stata chiusa.

0

Alcune cose di base se non disponi di strumenti più elaborati (ad es. È un disco USB e SMART non funziona):

dd if=/dev/sdX of=/dev/null bs=1M

leggerà tutto il disco. Vedrai nel dmesgregistro se ci sono settori che non possono essere letti. Anche se non ti dirà se è riuscito a leggerli dopo i tentativi. Non è buono come, badblocksma lo menziono per la sua ubiquità.

Se hai settori danneggiati e non vuoi nulla sul disco:

dd if=/dev/zero of=/dev/sdX bs=1M

farà riscrivere tutti i blocchi. Se vi sono settori illeggibili, ciò dovrebbe farli scambiare con settori nel pool riallocato e diventare nuovamente utilizzabili.

Se si dispone di un disco in cui sta avvenendo la riallocazione, il disco è in uscita. Non lo userei per nulla di importante, ma a volte hai dei dati che non ti interessano così tanto e potrebbe essere OK per quello.

Se si tratta di un SSD, le cose sono diverse e queste non si applicano.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.