Jeg mistenker at det kan være dårlig sektor på en disk. Jeg brukte ext3 filsystem.
Hvilket verktøy er den beste ekvivalenten til feilkontrollverktøyet til Windows?
For å se etter dårlige sektorer, sjekk SMART-dataene, sannsynligvis best tilgjengelig ved å starte Disks-verktøyet (Palimpsest). Selv om du ikke ser noen dårlige blokker der, start en selvtest for å være sikker.
Programmet er samlet i pakken gnome-disk-utility
. Kjør gksudo gnome-disks
.
SMART fra Palimpsest]1.
Eller i Ubuntu 16.04 versjon (3.18):
Du kan også bruke badblocks
sudo badblocks -sv /dev/sda
for å bare sjekke, eller for å sjekke og fikse først skrive resultatet til en midlertidig fil:
sudo badblocks -sv /dev/sda > bad-blocks-result
sudo fsck -t ext4 -l bad-blocks-result /dev/sda1
vil sjekke hele disken og skrive ut alle dårlige blokker som finnes på /dev/sda.
Fra badblocks
manual:
Viktig merknad: Hvis utdataene fra badblocks skal mates til e2fsck- eller mke2fs-programmene, er det viktig at blokkstørrelsen er riktig spesifisert, siden blokknumrene som genereres er svært avhengige av blokkstørrelsen som brukes av filsystemet. Av denne grunn anbefales det sterkt at brukere ikke kjører badblocks direkte, men heller bruker -c-alternativet til e2fsck- og mke2fs-programmene.
fsck
fsck
i seg selv vil ikke hjelpe deg med å finne dårlige sektorer, enda verre, hvis det er mange dårlige sektorer, kan det skade dataene dine enda mer. Bruk den bare når disken er sunn.
Gjennom dette svaret antar jeg at en lagringsstasjon vises som en blokkeringsenhet på banen /dev/sdc
. For å finne banen til en lagringsstasjon i vårt nåværende oppsett, bruk:
palimpsest
), hvis en GUI er tilgjengelig, ellerlsblk
og ls -l /dev/disk/by-id
og prøv å finne riktig enhet etter størrelse, partisjonering, produsent og modellnavn.Noen ganger nekter et lagringsmedium rett og slett å fungere i det hele tatt. Det vises fremdeles som en blokkeringsenhet for kjernen og i diskbehandleren, men den første sektoren som inneholder partisjonstabellen er ikke lesbar. Dette kan enkelt verifiseres med:
sudo dd if=/dev/sdc of=/dev/null count=1
Hvis denne kommandoen resulterer i en melding om en "Input / output error", er stasjonen vår ødelagt eller på annen måte ikke klarer å samhandle med Linux-kjernen som forventet. I førstnevnte tilfelle, med litt flaks, kan en datagjenopprettingsspesialist med et passende utstyrt laboratorium redde innholdet. I sistnevnte tilfelle er et annet operativsystem verdt et forsøk. (Jeg har kommet over USB-stasjoner som fungerer på Windows uten spesielle drivere, men ikke på Linux eller OS X).
Enheter som støtter det, kan spørres om deres helse gjennom [S.M.A.R.T.] (https://en.wikipedia.org/wiki/S.M.A.R.T.) eller instrueres til å utføre integritet selvtester av forskjellig grundighet. Dette er generelt det beste alternativet, men vanligvis bare tilgjengelig på (ikke-gamle) harddisker og solid state-stasjoner. De fleste flyttbare flashmedier støtter det ikke.
Ytterligere ressurser og instruksjoner:
For å teste leseintegriteten til hele enheten uten å skrive til den, kan vi bruke badblocks(8)
som dette:
sudo badblocks -b 4096 -c 4096 -s /dev/sdc
Denne operasjonen kan ta mye tid, spesielt hvis lagringsstasjonen faktisk er skadet. Hvis feiltellingen stiger over null, vet vi at det er en dårlig blokk. Vi kan trygt avbryte operasjonen når som helst (til og med kraftig som under et strømbrudd), hvis vi ikke er interessert i den nøyaktige mengden (og kanskje plasseringen) av dårlige blokker. Det er mulig å avbryte automatisk ved feil med alternativet -e 1
.
Merknad for avansert bruk: Hvis vi ønsker å gjenbruke utdataene for e2fsck
, må vi sette blokkstørrelsen (-b
) til det inneholdte filsystemet. Vi kan også tilpasse mengden data (-c
, i blokker) som testes samtidig for å forbedre gjennomstrømningen; 16 MiB bør være i orden for de fleste enheter.
Sometimes – especially with flash media – an error only occurs when trying to write. (This will not reliably discover (flash) media, that advertise a larger size, than they actually have; use Fight Flash Fraud instead.)
NEVER use this on a drive with mounted file systems! badblocks
refuses to operate on those anyway, unless you force it.
Don't interrupt this operation forcefully! Ctrl+C (SIGINT/SIGTERM) and waiting for graceful premature termination is ok, but killall -9 badblocks
(SIGKILL) isn't. Upon forceful termination badblocks
cannot restore the original content of the currently tested block range and will leave it overwritten with junk data and possibly corrupt the file system.
To use non-destructive read-write checks, add the -n
option to the above badblocks
command.
As above, but without restoring the previous drive content after performing the write test, therefore it's a little faster. Since data is erased anyway, forceful termination remains without (additional) negative consequence.
For å bruke destruktive lese- og skrivekontroller, legg til -w
-alternativet til kommandoen badblocks
ovenfor.
fsck - sjekk og reparer et Linux-filsystem. Påkall det ved hjelp av
fsck /dev/sda1
der /dev/sda1 er stasjonen du vil sjekke. Se 'man fsck' for mer informasjon.
Det er også 'badblocks' kommando som sjekker en enhet for, du gjettet det, dårlige blokker.
Stasjonen må demonteres når den er sjekket, så for å sjekke rotpartisjonen må du opprette en fil ' forcefsck & 39; i roten til partisjonen og starte på nytt. Enheten vil bli sjekket ved neste oppstart:
sudo touch /forcefsck
sudo reboot
Alternativt kan du starte opp fra en Live CD og kjøre sjekken derfra.
Du kan se etter badblocks ved å kjøre kommandoen
sudo badblocks -nsv /dev/[device-partition] > bad-blocks-result
for en ikke-destruktiv lese-skrive-test. Det vil generere en fil kalt bad-blocks-result
med sektorene som er skadet.-n Bruk ikke-destruktiv lese-skrivemodus. Som standard utføres bare en ikke-destruktiv skrivebeskyttet test.
-s Vis fremdriften av skanningen ved å skrive ut grov prosentvis fullføring av gjeldende badblocks-pass over disken.
-v Verbose-modus.
sudo fsck -t ext3 -l bad-blocks-result /dev/[device-partition]
for å fortelle filsystemet hvor de dårlige sektorene er og flytte data bort fra dem, hvis mulig.Du kan lese mer om det her.
IMO smartctl er et bedre verktøy. Du må sannsynligvis installere det først
sudo apt-get install smartmontools
Deretter
sudo smartctl -a /dev/sda | less
for å skrive ut stasjonshelsedata, attributter og tilgjengelige testresultater. For å avslutte mindre, skriv q
. Alternativt
sudo smartctl -H /dev/sda
for bare å skrive ut helsedata.
For å starte en ny kort (noen få minutter) eller lang (opptil mange timer) selvtest i bakgrunnen:
sudo smartctl -t [short|long]
GSsmartControl (hjemmeside) og Gnome Disks er grafiske frontender hvis du foretrekker det.
F3 (Fight Flash Fraud) er et annet alternativ som i tillegg skal oppdage falske minnepinner (minnepinner hvis faktiske kapasitet er en brøkdel av den annonserte kapasiteten):
Installer F3
sudo apt install f3
Sett inn stasjonen din
Skriv testdata til ledig plass på stasjonen (sjekk hvor stasjonen er montert med lsblk
)
f3write /media/$USER/D871-DD7C/
Les testdataene
f3lese /media/$USER/D871-DD7C/
Referanse:
Badblocks fungerer bra, men det er ikke designet for å oppdage falske flash-stasjoner og kan ikke rapportere noen feil for dem.