Ho il sospetto che potrebbe esserci un settore danneggiato su un disco. Ho usato il filesystem ext3.
Quale strumento è il miglior equivalente dello strumento di controllo degli errori di Windows?
Ho il sospetto che potrebbe esserci un settore danneggiato su un disco. Ho usato il filesystem ext3.
Quale strumento è il miglior equivalente dello strumento di controllo degli errori di Windows?
Risposte:
Per verificare la presenza di settori danneggiati, controllare i dati SMART, probabilmente i migliori accessibili avviando l' utility Disks ( Palimpsest ). Anche se non vedi blocchi danneggiati, avvia un autotest per essere sicuro.
Il programma è incluso nel gnome-disk-utility
pacchetto. Correregksudo gnome-disks
O in Ubuntu 16.04 versione (3.18):
Puoi anche usare badblocks
sudo badblocks -sv /dev/sda
per controllare o per controllare e correggere prima scrivi il risultato in un file temporaneo:
sudo badblocks -sv /dev/sda > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1
controllerà l'intero disco e stamperà tutti i blocchi danneggiati rilevati su / dev / sda .
Dal badblocks
manuale:
Nota importante: se l'output dei badblock verrà inviato ai programmi e2fsck o mke2fs, è importante che la dimensione del blocco sia specificata correttamente, poiché i numeri di blocco generati dipendono molto dalla dimensione del blocco in uso dal filesystem . Per questo motivo, si consiglia vivamente di non eseguire direttamente i badblock, ma piuttosto di utilizzare l'opzione -c dei programmi e2fsck e mke2fs.
fsck
fsck
di per sé non ti aiuterà a trovare settori danneggiati, peggio ancora, se ci sono molti settori danneggiati può danneggiare ulteriormente i tuoi dati. Usalo solo quando il disco è integro.
In tutta questa risposta suppongo che un'unità di archiviazione appaia come un dispositivo a blocchi sul percorso /dev/sdc
. Per trovare il percorso di un'unità di archiviazione nella nostra configurazione corrente, utilizzare:
palimpsest
), se è disponibile una GUI, oppurelsblk
ed ls -l /dev/disk/by-id
e cercare di trovare il giusto dispositivo per dimensione, il partizionamento, il produttore e il nome del modello.A volte un supporto di memorizzazione si rifiuta semplicemente di funzionare affatto. Appare ancora come un dispositivo a blocchi nel kernel e nel gestore del disco, ma il suo primo settore che contiene la tabella delle partizioni non è leggibile. Questo può essere verificato facilmente con:
sudo dd if=/dev/sdc of=/dev/null count=1
Se questo comando genera un messaggio su un "Errore di input / output", la nostra unità è rotta o non riesce a interagire con il kernel Linux come previsto. Nel primo caso, con un po 'di fortuna, uno specialista del recupero dati con un laboratorio adeguatamente attrezzato può recuperarne il contenuto. In quest'ultimo caso, vale la pena provare un diverso sistema operativo. (Mi sono imbattuto in unità USB che funzionano su Windows senza driver speciali, ma non su Linux o OS X.)
I dispositivi che lo supportano possono essere interrogati sulla loro salute tramite SMART o istruiti per eseguire test di integrità di diversa completezza. Questa è generalmente l'opzione migliore, ma di solito è disponibile solo su hard disk (non antichi) e unità a stato solido. La maggior parte dei supporti flash rimovibili non lo supporta.
Ulteriori risorse e istruzioni:
Per testare l'integrità di lettura dell'intero dispositivo senza scriverlo, possiamo usare in badblocks(8)
questo modo:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
Questa operazione può richiedere molto tempo, soprattutto se l'unità di archiviazione è effettivamente danneggiata. Se il conteggio degli errori supera lo zero, sapremo che esiste un blocco errato. Possiamo interrompere in modo sicuro l'operazione in qualsiasi momento (anche forzatamente come in caso di mancanza di corrente), se non siamo interessati alla quantità esatta (e forse alla posizione) di blocchi danneggiati. È possibile interrompere automaticamente in caso di errore con l'opzione -e 1
.
Nota per un uso avanzato: se vogliamo riutilizzare l'output per e2fsck
, dobbiamo impostare la dimensione del blocco ( -b
) su quella del file system contenuto. Possiamo anche modificare la quantità di dati ( -c
, in blocchi) testati contemporaneamente per migliorare la produttività; 16 MiB dovrebbe andare bene per la maggior parte dei dispositivi.
A volte, specialmente con i supporti flash, si verifica un errore solo quando si tenta di scrivere. (Questo non rileverà in modo affidabile supporti (flash), che pubblicizzano dimensioni più grandi di quelle che hanno effettivamente; utilizzare invece Fight Flash Fraud .)
MAI usarlo su un disco con file system montato ! badblocks
si rifiuta di operare su quelli comunque, a meno che non lo forziate.
Non interrompere questa operazione con forza ! Ctrl+ C(SIGINT / SIGTERM) e in attesa di una chiusura anticipata graziosa è ok, ma killall -9 badblocks
(SIGKILL) non lo è. In caso di terminazione forzata badblocks
non è possibile ripristinare il contenuto originale dell'intervallo di blocchi attualmente testato e lo lascerà sovrascritto con dati spazzatura e possibilmente corrompere il file system.
Per utilizzare controlli di lettura / scrittura non distruttivi, aggiungere l' -n
opzione al badblocks
comando sopra .
Come sopra, ma senza ripristinare il contenuto dell'unità precedente dopo aver eseguito il test di scrittura, quindi è un po 'più veloce. Poiché i dati vengono comunque cancellati, la chiusura forzata rimane senza conseguenze (aggiuntive) negative.
Per usare controlli distruttivi in lettura e scrittura, aggiungi l' -w
opzione al badblocks
comando sopra .
fsck - controlla e ripara un file system Linux. Invocalo usando
fsck /dev/sda1
dove / dev / sda1 è l'unità che si desidera controllare. Vedi 'man fsck' per maggiori dettagli.
C'è anche il comando 'badblocks' che controlla un dispositivo per, hai indovinato, blocchi danneggiati.
L'unità deve essere smontata quando selezionata, quindi per controllare la partizione di root è necessario creare un file 'forcefsck' nella radice della partizione e riavviare. Il dispositivo verrà verificato al successivo avvio:
sudo touch /forcefsck
sudo reboot
In alternativa, è possibile eseguire l'avvio da un Live CD ed eseguire il controllo da lì.
sudo dumpe2fs -b /dev/sda9
. Ma penso che sia meglio se il disco si occupa di settori difettosi, non del filesystem (SMART, badblocks ecc., Vedi il mio post).
È possibile verificare la presenza di badblock eseguendo il comando
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
per un test di lettura-scrittura non distruttivo. Ciò genererà un file chiamato bad-blocks-result
con i settori danneggiati.
-n Utilizza la modalità di lettura / scrittura non distruttiva. Per impostazione predefinita, viene eseguito solo un test di sola lettura non distruttivo.
-s Mostra l'avanzamento della scansione scrivendo il completamento percentuale approssimativo degli attuali badblock sul passaggio del disco.
-v Modalità dettagliata.
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
per dire al file system dove si trovano i settori danneggiati e spostare i dati lontano da essi, se possibile.Puoi trovare ulteriori informazioni a riguardo qui .
fsck
comando ha esito negativo con i btrfs
file system.
Smartctl IMO è uno strumento migliore. Probabilmente devi installarlo prima
sudo apt-get install smartmontools
Poi
sudo smartctl -a /dev/sda | less
per stampare dati sull'integrità dell'unità, attributi e risultati dei test disponibili. Per uscire di meno, digitare q
. In alternativa
sudo smartctl -H /dev/sda
per stampare solo i dati sanitari.
Per iniziare un nuovo autotest breve (alcuni minuti) o lungo (fino a molte ore) in background:
sudo smartctl -t [short|long]
GSsmartControl ( home page ) e Gnome Disks sono front-end grafici se preferisci.
smartctl
riportato: "Unknown USB bridge", "Per favore specifica il tipo di dispositivo con l'opzione -d". Ho trovato i dati di cui avevo bisogno su: smartmontools.org/wiki/Supported_USB-Devices .
F3 (Fight Flash Fraud) è un'altra opzione che dovrebbe inoltre rilevare unità flash false (unità flash la cui capacità effettiva è una frazione della capacità pubblicizzata):
Installa F3
sudo apt install f3
Inserisci il tuo disco
Scrivi i dati di test nello spazio libero sull'unità (controlla dove è montata l'unità lsblk
)
f3write /media/$USER/D871-DD7C/
Leggi i dati del test
f3read /media/$USER/D871-DD7C/
Riferimento:
Badblocks funziona bene ma non è progettato per rilevare unità flash false e potrebbe non segnalare alcun errore per esse .
badblocks
con -w
o con i fsck
settori contrassegnati come danneggiati / danneggiati in modo che non vengano utilizzati. f3 può restituire qualcosa del genere Corrupted: 16.01 MB (32784 sectors)
, ma li contrassegna come settori danneggiati? O abbiamo ancora bisogno di blocchi per questo? Sto cercando condumpe2fs -b
e sembra id non segna.
Puoi testare la lettura dell'intero disco, mostrando al contempo un indicatore di avanzamento:
time sudo pv /dev/sdc >/dev/null
Alcuni problemi del disco si manifesterebbero come errori di I / O segnalati. Questo è un po 'più bello che a dd
causa dell'indicatore di avanzamento e perché l'interfaccia della riga di comando è un po' più standard e un po 'meno incline all'errore . Si noti che pv
è sostanzialmente e la versione avanzata di cat
. Potrebbe non essere installato per impostazione predefinita, ma può essere installato con sudo apt-get install pv
.
Un approccio simile è quello di leggere il disco con uno dei numerosi strumenti disponibili che sono specificamente consapevoli degli errori di I / O del disco e hanno la funzione di "tentare di salvare i dati". Cerca ddrescue
nel gestore pacchetti.
dd count=1
è anche piuttosto veloce a meno che il supporto di memorizzazione non sia completamente rotto (o non supportato).
ddrescueview
dd
ha un indicatore di progresso con status=progress
.
Se si dispone di una partizione che NON È possibile perdere i dati, attenersi alla seguente procedura
$fdisk -l commnd
Supponiamo che la partizione da controllare sia chiamata / dev / sdPTC (partizione da controllare) e che tu abbia un'altra partizione per memorizzare i risultati montati su / scan / resultPath / cartella
2. Quindi è possibile eseguire questo comando
$sudo badblocks -v /dev/sdPTC > /scan/resultPath/badsectors.txt
che determinerà quali sono i blocchi danneggiati del dispositivo dato e li memorizzerà su un file chiamato badsectors.txt
fsck
comando per dire a Ubuntu di non usare i settori danneggiati menzionati nel file badsectors.txt.$sudo fsck -l /scan_result/badsectors.txt /dev/sda
In questo modo la vita del disco fisso aumenta leggermente fino a quando non ne ottieni uno nuovo per la sostituzione.
Se si dispone di una partizione completa che si desidera verificare la presenza di settori fisici danneggiati e È POSSIBILE AFFERMARE TUTTI I DATI su quella partizione o è VUOTO, attenersi alla seguente procedura
$sudo apt-get install gnome-disk-utility
$sudo gnome-disks
Controllare e ricontrollare che non vi siano dati importanti su quella partizione
Usando gnome-disks
DELETE / REMOVE la partizione a mano usando il segno "-"
Utilizzando gnome-disks
CREATE una nuova partizione e selezionare l'opzione "slow" che controllerà la presenza di errori nello spazio indicato
bionic beaver
i controlli del disco in modo diverso?