Hoe slechte blokken op Linux te repareren



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Gebruikers die een distributie van Linux dual-booten met een versie van Microsoft Windows, kunnen af ​​en toe proberen om bepaalde partities te verkleinen of te laten groeien om meer ruimte over te laten voor het ene of het andere besturingssysteem. U kunt uiteindelijk een waarschuwing krijgen van GParted in Linux of chkdsk in Windows dat er slechte sectoren waren. Individuele gebruikers van Linux kunnen af ​​en toe hetzelfde krijgen. Desondanks kunnen gebruikers in feite berichten ontvangen over twee verschillende soorten slechte sectoren die zich voordoen als hetzelfde. Een daarvan is de traditionele melding van slechte sectoren die duiden op een probleem met de fysieke geometrie van een schijfplateau of een NAND-geheugencel. Dit is wat de meeste mensen bedoelen als ze klagen over een slecht blok, hoewel er een klein maar zeer technisch verschil is tussen een slechte sector en een slecht blok. Machines markeren echter zelden ten onrechte sectoren als slecht.



Deze staan ​​bekend als soft-bad-sectoren of software-bad-blocks, en kunnen eenvoudig worden gecorrigeerd door middel van een eenvoudige bewerking van het bestandssysteem. Gezien het gevaar van schrijven naar slechte blokken, is het echter altijd een goed idee om uw onderzoek te starten met een SMART-gegevensinspectie wanneer u met een vast volume te maken heeft. Dit is niet-destructief en kan geometrieproblemen oplossen voordat u verder gaat. Als u niet met een vast volume werkt, wilt u misschien uw onderzoek starten met de volgende methode.



Methode 1: SMART-gegevens controleren

Het is gemakkelijk te geloven dat deze slechte sectoren slechts een softwarefout zijn, maar er is een manier om te controleren of dat zo is. Met behulp van SMART-gegevens is het gemakkelijk om de eigen firmware van de schijf te inspecteren en zeker te weten. Open de GNOME Disks Utility vanuit Dash in Unity, het Whisker-menu in Xfce4, het Accessories-menu in LXDE of vanuit het GNOME Applications-menu in KDE. Je zou het ook kunnen starten door gnome-disks in de terminal te typen en op de enter-toets te drukken. Klik op het menu naast de bedieningselementen van het rechterzijvenster nadat u uw harde schijf hebt gemarkeerd met de aanwijzer in de linkerkolom. Bij de meeste GNU / Linux-installaties zal het hulpprogramma Disks standaard naar uw primaire harde schijf gaan.



Selecteer SMART Data & Self-Tests in het menu. U kunt ook CTRL ingedrukt houden en op S drukken om dit venster te openen. Dit toont u de huidige toestand van uw schijf. Als de waarden leeg zijn, klikt u op de knop Start zelftest om uw schijf te dwingen een zelfcontrole uit te voeren. De regel Algemene beoordeling bovenaan zal u vertellen wat GNOME Disks Utility van uw schijf vindt.

Het kan zijn dat u door de SMART-attributen moet scrollen, zelfs op een volledig scherm. Besteed speciale aandacht aan een optie genaamd Reallocation Count. Dit laat zien hoeveel sectoren er al opnieuw zijn toegewezen. Als er veel slechte sectoren zijn, is het waarschijnlijk een goed idee om de schijf te vervangen voordat deze volledig defect raakt.



Methode 2: Controleren op het juiste superblok

Soms merkt u misschien dat SMART-gegevens alles in de juiste volgorde toonden, maar u hebt mogelijk een 'Bad Superblock' -fout gekregen van bepaalde schijfhulpprogramma's. Als u met SD-kaarten, USB-geheugensticks of ander soortgelijk geheugen werkte, zou u geen SMART-gegevens kunnen lezen en toch kunnen er enkele fouten optreden. Dit zou heel goed een softwareprobleem kunnen zijn. Overweeg het probleem van het uitvoeren van een commando zoals:

fsck.ext4 / dev / sda

Dit zal hoogstwaarschijnlijk aangeven dat je een slecht superblok hebt, wat verwijst naar het masterblok in je bestandssysteem. Dit is het resultaat van een CLI-fout en niet van een echt slecht blok. Omdat / dev / sdb verwijst naar een station en niet naar een paritie, zal je fsck-commando naar een superblok zoeken waar er geen is en ten onrechte denken dat er iets mis was. Gelukkig was dit geen destructief bevel. Rennen:

sudo fsck.ext4 / dev / sda1

Het kan u nu vertellen dat uw bestandssysteem schoon is. Zorg ervoor dat het nummer dat achter ext komt, overeenkomt met de ext-versie van uw volume.

U kunt deze fout ook krijgen als u probeert ext2 / 3/4 fsck uit te voeren op een FAT12 / 16 / 32-, NTFS- of HFS / HFS + -volume. De consistentiecontrole raakt in de war en denkt dat er iets mis is, terwijl het type bestandsstructuur in werkelijkheid niet overeenkomt met wat wordt verwacht. Voer fsck.vfat of dosfsck uit op FAT-volumes, ongeacht welke bitversie u gebruikt. U kunt de schakeloptie -t gebruiken na dosfsck of fsck.vfat (fsck.msdos op sommige versies van Linux) om onleesbare clusters als slechte blokken te markeren.

Methode 3: controleren op slechte blokken op NTFS-volumes

Ervan uitgaande dat u Microsoft Windows en Linux dubbel opstart en u superblok- of andere slechte sectorfouten op een NTFS-volume hebt, start u Windows opnieuw op en voert u vanaf de opdrachtregel chkdsk / rc: uit, waarbij u c: vervangt door de stationsletter van de NTFS-volume in kwestie. Windows zal hoogstwaarschijnlijk opnieuw moeten opstarten om de oppervlaktescan te voltooien. Dit kan enige tijd duren, dus als blijkt dat uw besturingssysteem niet reageert, is dat alleen vanwege de tijdsduur in kwestie. Als u een foutmelding krijgt dat u niet over de juiste rechten beschikt, klikt u met de rechtermuisknop op de opdrachtprompt in het menu Start en selecteert u Als administrator uitvoeren voordat u verder gaat.

Als je uitsluitend onder Linux met een NTFS-volume werkt, heb je niet zoveel verhaal, maar als de fout met slechte blokken alleen het gevolg was van een type-mismatch, heb je een manier om het te corrigeren. Voer sudo ntfsfix / dev / sdb1 uit, waarbij u de letter en het nummer na / dev / sd vervangt door de juiste apparaat- en partitie-ID. Onthoud dat je altijd sudo fdisk-l kunt draaien of terug kunt gaan naar het GNOME Disks Utility als het geïnstalleerd is om de namen te controleren van elk volume dat op je systeem is aangesloten. U kunt het uitvoeren als sudo ntfsfix -d / dev / sdb1 als u zeker weet dat u het vuile deel wilt wissen.

Als je zeker weet dat een NTFS-volume zachte slechte blokken heeft die niet te wijten zijn aan fysieke hardware-geometrie, zoals wanneer je een oude schijf met slechte sectoren naar een nieuw volume hebt gekloond, voer dan sudo ntfsfix -bd / dev / sdb1 uit op wat dan ook volume dat u wilt. Dit reset de lijst met slechte blokmarkeringen.

Methode 4: het Linux-hulpprogramma Badblocks gebruiken

Nadat je bent opgestart in een live ISO Linux-versie of een andere manier hebt gevonden om een ​​ext2-, ext3- of ext4-bestandssysteem te ontkoppelen, kun je eigenlijk sudo fsck.ext4 -c / dev / sda1 uitvoeren om een ​​alleen-lezen scan uit te voeren voor slechte blokken. Uiteraard moet u de juiste volume-ID gebruiken na / dev / sd en het juiste ext-versienummer na fsck.ext om het correct uit te voeren. Als je in plaats daarvan -cc specificeert, zal het programma een nog uitgebreidere niet-destructieve lees-schrijftest gebruiken.

Dit is de normale manier om het hulpprogramma badblocks te gebruiken, maar je kunt het technisch gezien ook alleen gebruiken. Voer sudo badblocks -n uit op een apparaatnaam om het zelf uit te voeren en meld badblocks rechtstreeks in uw terminal. U kunt de optie -w gebruiken om een ​​test in de schrijfmodus te gebruiken, maar gebruik de opties -n en -w niet samen, aangezien ze elkaar wederzijds uitsluiten. U mag in geen geval de optie -w gebruiken op een volume dat gegevens bevat, aangezien het alles schoon zal wissen. Gebruik de langzamere -n-optie, omdat in dit geval uw gegevens behouden blijven. De optie -w is prima voor volumes waarvan u het niet erg vindt om ze te wissen. De optie -v kan met een van beide worden gecombineerd en geeft uw terminal een uitgebreide uitvoer die handig is voor het inspecteren van gegevensbeschadiging. U kunt altijd de optie -o gebruiken met de naam van een tekstbestand om de informatie weg te schrijven, zodat u deze later kunt bekijken. Misschien wil je het uitvoeren als sudo badblocks -nv -o badblocks.log / dev / sdb1 om een ​​momentopname te krijgen, aangezien je veel informatie zult zien als er echte slechte blokken zijn.

5 minuten gelezen