Come risolvere il settore danneggiato del disco rigido


17

Ho provato a riparare il mio disco rigido usando Ubuntu ma ho riscontrato un messaggio di errore e non sapevo come procedere. Devo riparare i miei settori danneggiati

fsck /dev/sdb  
fsck from util-linux 2.20.1  
e2fsck 1.42.5 (29-Jul-2012)  
fsck.ext2: Permission denied while trying to open /dev/sdb  
You must have r/w access to the filesystem or be root  

1
Il testo che hai incollato non sembra correlato alla tua domanda: puoi chiarire?
Thomas Rutter

Risposte:


22

Un settore danneggiato su un'unità è un segno di danno permanente all'unità. A meno che tu non abbia motivo di credere che il tuo disco abbia contrassegnato questi settori come erroneamente errati, non puoi "ripararli".

Significa che una parte dell'unità è danneggiata nella misura in cui non può più essere letta e / o scritta in modo affidabile.

Il sistema può continuare a utilizzare l'unità contrassegnando quel settore come inutilizzabile, ma è comunque possibile prendere in considerazione la sostituzione di un'unità, poiché un settore danneggiato può essere un segnale che più settori o l'intera unità potrebbero guastarsi presto.

Mentre ci possono essere modi per forzare l'unità a annullare la marcatura di un settore come cattivo, permettendoti di riutilizzarlo, probabilmente non è una buona idea. Il settore potrebbe rimanere buono, ma altrettanto probabilmente diventerà di nuovo cattivo. Alcuni dati potrebbero andare persi o danneggiati a seconda di come falliscono.

Ora, per quanto riguarda il messaggio di errore che hai incollato nella tua domanda (al momento della mia scrittura di questo), quell'errore non ha nulla a che fare con settori danneggiati. Significa che non hai accesso all'unità. Essere sudopuò darti accesso, quindi:

sudo fsck /dev/sdb

Tuttavia, questo probabilmente non è ancora quello che vuoi, perché / dev / sdb si riferisce all'intera unità, mentre fsckè progettato per funzionare su filesystem , che di solito (ma non sempre, e qui potresti avere un'eccezione) inseriti nelle partizioni . Se quanto sopra non ha funzionato, potresti invece voler fare questo alla prima partizione su quell'unità:

sudo fsck /dev/sdb1

Puoi ottenere un elenco di partizioni per unità con:

sudo fdisk -l

7
Probabilmente è solo un brutto blocco. Non può leggere i dati, tutto qui. Dopo aver rimappato il blocco, l'unità è probabilmente valida per altri tre anni. Quindi va la mia esperienza.
Zan Lynx,

Un HDD con un settore danneggiato ha molte, molto più probabilità di fallire in qualsiasi momento rispetto a uno che non ha mai avuto un settore danneggiato. Su quante unità si basa la tua esperienza? Lo definirei ancora una scommessa più grande.
thomasrutter,

Più probabilmente? Sicuro. Ma non è immediatamente condannato. Molto dipende dal motivo per cui quel blocco è andato male. Come ho detto, ho avuto unità che lentamente rimodellano alcuni blocchi danneggiati nel corso della loro vita e continuano a funzionare.
Zan Lynx,

it isn't immediately doomed- non hai modo di saperlo o di garantirlo. In alcuni casi potrebbe essere. So much depends on why that block went bad- sarebbe impossibile scoprire in modo affidabile il perché, senza aprirlo e distruggerlo efficacemente. Come ho già detto, è sempre un rischio maggiore. Se stai assolutamente bene con un rischio del genere, non ho alcun problema. La maggior parte delle volte, forse anche> 90% delle volte, l'unità non si guasterà rapidamente dopo che è stato trovato un settore danneggiato e in alcuni casi potrebbe anche durare per anni. Mantenere buoni backup e qualsiasi errore futuro non farà altrettanto male.
thomasrutter,

1
Dice "il disco è montato" e non fa nulla.
Dims

21

In breve : avviare un sistema di salvataggio e utilizzare i badblock :

badblocks -svn /dev/sda

fare in modo che il controller del disco rigido sostituisca i blocchi danneggiati con blocchi di riserva.

Ho risposto alla stessa domanda in dettaglio qui .


4
Probabilmente vuoi usarlo indirettamente con l' -copzione di fsck . AFAIK utilizzando badblocksautonomo non cambierà mai il comportamento di nulla, riferirà solo su dove si trovano i blocchi danneggiati. Naturalmente, il firmware dell'unità potrebbe modificare in modo trasparente il suo comportamento se sottoposto ai modelli di utilizzo caratteristici badblocks, ma sicuramente questo dipenderebbe dall'unità?
Amoe

1
Come nuovo utente devi prima guadagnare la "reputazione" prima di poter svolgere determinate attività su questo sito. Quindi non è stato possibile duplicare questo. Comunque la domanda meritava una risposta. Poiché i blocchi danneggiati sono un problema del disco fisico (controlla i valori SMART, il file system non è direttamente interessato. Potrebbe essere danneggiato dalla perdita di dati. Quindi fare un fsck è una buona idea. La domanda originale era su come "ripara" i blocchi danneggiati questa era la risposta.
user228505

@amoe la documentazione suppone che il comportamento cambi, qui: "Esegui sudo badblocks -n sul nome di un dispositivo per eseguirlo da solo e segnalare badblocks direttamente nel tuo terminale. Puoi usare l'opzione -w per usare un test in modalità scrittura, ma non usare le opzioni -n e -w insieme poiché si escludono a vicenda. Non si dovrebbe mai usare l'opzione -w su un volume che ha dati, poiché cancellerà tutto pulito. Usare il più lento -n poiché manterrà i tuoi dati in questo caso. L'opzione -w va bene per i volumi che non ti dispiace cancellare. "
Webwoman il

13

Ai vecchi tempi dovevi prendere nota dei badblock scritti sull'unità ed inserire quelli nell'elenco dei difetti prima di formattare l'unità, perché le superfici del disco rigido non erano mai "perfette", il produttore è saggio a questo perché le persone l'acquisto di dischi guarderebbe la tabella dei difetti stampata sul disco e comprerebbe quelli con il minor numero di difetti ...

Ora scorri avanti di circa 20 anni e i produttori di dischi rigidi nascondono il fatto che un disco nuovo di zecca ha blocchi danneggiati con il firmware, quando acquisti un disco nuovo di zecca avrà già probabilmente tutti i blocchi danneggiati, il firmware rileverà blocchi di nuova generazione e li mappa da una serie di cilindri di riserva che ha, ma ciò accade solo quando si verifica un'operazione di scrittura su quel settore e l'algoritmo ECC rileva guasti ai bit, solo allora mapperà il blocco. Quindi, tornando al punto, puoi forzare un'unità a mappare i badblock semplicemente usando DD, ovvero / [modifica: il seguente esempio è stato modificato per prevenire la distruzione accidentale dell'unità: carattere jolly rimosso, sostituito con X]

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

ovviamente alterare of = target per riflettere l'unità che si desidera azzerare, questo è il modo più veloce per mappare nuovamente i difetti di un'unità, è anche il modo più veloce per eliminare completamente la configurazione di Linux sbagliando l'unità target, quindi controllare, ricontrollare quindi ricontrollare, prima di premere il tasto Invio. È possibile aumentare la dimensione della dimensione del blocco nel comando dd per ottimizzare la lettura / scrittura e forse rendere le cose più veloci, ma ci sono rendimenti decrescenti dopo un punto. Trovo che qualsiasi cosa tra 1M e 8M funzioni meglio per me

Puoi ottenere DD per scrivere solo un settore, quello cattivo ... per rimapparlo, quindi non devi fare il backup del tuo disco, ma questo è un bollitore completamente diverso di pesce e roulette russa se non sai esattamente cosa stai facendo .....

Questo comando distruggerà tutto sul tuo disco rigido, comprese le partizioni. Ma costringerà l'unità a mappare tutti i settori danneggiati che potrebbe avere.

È perfettamente ok per un disco avere settori danneggiati purché non si trovino nel settore di avvio, se lo sono allora l'unità è inutile, se noti alcuni mesi dopo che l'unità ha sviluppato settori più danneggiati, allora è il momento per iniziare a fare acquisti per una sostituzione.

Ho rianimato centinaia di unità in questo modo e hanno vissuto per molti anni in seguito, un settore difettoso non è necessariamente la morte per l'unità.


Ho usato questo metodo prima ma non ho mai saputo perché ha funzionato. Da una manciata la maggior parte delle unità è durata per anni dopo aver pulito l'unità come prescritto.
MER

Ack !! Per chi non lo sapesse, PER FAVORE NON COPIARE E INCOLLARE QUESTA LINEA. La tua shell espanderà il carattere jolly "?" con i nomi effettivi del dispositivo in / dev. Se dovessi premere accidentalmente Invio prima di sostituire il?, Potresti eventualmente cancellare l'unità sbagliata. Se hai più di 1 dispositivo, dd potrebbe generare un errore, ma non sono disposto a provarlo sul mio computer.
Tiberio
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.