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.