Tjek harddisk for bad blocks i Linux

Her kan du læse hvordan du i Linux kan tjekke en harddisk for bad blocks.

En bad block eller bad sector er en del af en harddisk, der er blevet beskadiget, så der ikke længere kan læses eller skrives til den del af harddisken. Sådan noget forekommer jo ofte med tiden, for eksempel hvis læseren ved en fejl berører disken og laver en rids. eller hvis der kommer noget støv på. Ligesom du også kender fra gamle CD’er der bliver ridset. Resultatet er med tiden en defekt harddisk, som kan ende med at du ikke kan bruge den mere.

Man skelner mellem fysiske og logiske bad blocks/sectors, hvilket også kaldes for hard eller soft bad blocks/sectors. De fysiske bad blocks er fejl på grundet fysisk beskadigelse af disken. De logiske bad blocks er når koden er skrevet forkert, så den ikke længere kan læses.

Jeg har netop haft en computer, hvor harddisken blev defekt grundet bad blocks, hvilket du kan læse mere om her. I denne artikel vil jeg skrive lidt om hvordan du diagnosticerer tilstedeværelsen af bad blocks. Jeg vil vise hvordan du gør det i Linux.

Få overblik over partitioner

Først skal du selvfølgelig have et overblik over alle de diske du har og de partitioner der er på disse diske. Det får du med kommandoen:

sudo fdisk -l

Når jeg gjorde det på min computer, fik jeg følgende resultater for min harddisk. Her kan du se at harddisken har navnet /dev/sda og der er to partitioner kaldet henholdsvis /dev/sda1 og /dev/sda2.

Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: TOSHIBA MQ01ABD1
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 16F396DD-ABEA-4253-8731-3B29CFEA99E2
Device       Start        End    Sectors  Size Type
/dev/sda1     2048    1050623    1048576  512M EFI System
/dev/sda2  1050624 1953523711 1952473088  931G Linux filesystem

Scan efter bad blocks

Nu kan jeg så vælge at scanne en bestemt partition, f.eks. /dev/sda1, for bad blocks. Det gør jeg med følgende kode. Resultatet gemmes i filen badsectors.txt og fordi jeg skriver -v vil jeg gerne have vist detaljer for scanningen.

sudo badblocks -v /dev/sda1 > badsectors.txt

Nu vil den skrive noget lignende følgende, og gå igang med at scanne efter bad blocks. Du må have tålmodighed, fordi det kan godt tage noget tid.

Checking blocks 0 to 524287
Checking for bad blocks (read-only test): 

Når scanningen er gennemført vil du få at vide hvor mange bad blocks der er fundet på den partition.

Tilføj bad blocks til liste over bad blocks

Hvis du finder nogle bad blocks, kan du køre følgende kommando for at tilføje de områder der fremgår af badsectors.txt til listen over bad blocks, dvs. steder hvor der så ikke længere skal læses eller skrives. Følgende kode bruger du til partitioner formateret med ext2, ext3 eller ext4.

sudo e2fsck -l badsectors.txt /dev/sda1

Alternativt kan du bruge følgende for partitioner formateret med andre filsystemer:

sudo fsck -l badsectors.txt /dev/sda1

Brug Smartmontools

Du kan også bruge det program der hedder Smartmontools. Det installerer du med kommandoen.

sudo apt-get install smartmontools

Herefter kan du kontrollere partitionen med Smartmontools med følgende kommando.

sudo smartctl -H /dev/sda1

Det var lidt generelt om hvordan du tjekker en harddisk for bad blocks i Linux. Skriv gerne en kommentar ved spørgsmål.

Andreas Andersen

Forfatter og grundlægger af IT-blogger.dk, der har blogget om IT-emner siden 2012

Skriv en kommentar

avatar
  Abonner  
Giv besked ved