Trygg sletting av data fra HDD/SSD

Bilde av Sigmund fra Unsplash

Bilde av Sigmund fra Unsplash

Enkelte ganger ønsker man å slette absolutt alle spor etter filene som er på en disk. Det er mange årsaker til dette. En vanlig grunn er at man ønsker å selge en SSD eller en HDD.

Når man sletter en fil fra en disk så er det slik at den i realiteten ikke blir fjernet fra disken. Det som skjer er at raden i filsystem tabellen som kobler sammen fil og fysisk plassering av dataen i filen på disk blir slettet. Så med rett verktøy er det dermed mulig å gjenopprette filer på en disk, selv etter at disken har blir reformatert og alle filer tilsynelatende har blitt slettet.

For å gjøre det enormt mye mer vanskelig å gjenopprette slettede filer fra en disk kan man overskrive absolutt hele disken med tilfeldige data.

Til denne jobben er Linux perfekt.

Forberedelser

Fjern alle partisjoner på disken og opprette en ny som dekker hele

Start med å finne ut hva disken heter i filsystemet ditt. Det gjøres lettest med kommandoen lsblk før og etter at du kobler til disken

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0 39,5G  0 part /
...
lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0 39,5G  0 part /
sdb      8:16   0   10G  0 disk 
├─sdb1   8:17   0  500M  0 part 
├─sdb2   8:18   0  500M  0 part 
└─sdb3   8:19   0    1G  0 part 
...

Ved å sammenligne resultat fra lsblk kan vi se at disken vi skal gjøre noe med heter sdb. Om det ikke var en ekstern eller ny disk vi koblet til kan vi se at partisjonene på disken ikke er mountet noe sted i filsystemet vårt. Dermed er det er bare å sette i gang.

Vi kan nå bruke programmet fdisk til å slette alle partisjoner på disken, og opprette en ny partisjon som fyller hele disken.

sudo fdisk /dev/sdb

Fdisk er ett interaktivt terminal program, som vil gi deg muligheten til å endre på partisjons tabellen disken. Start med skrive inn kommandoen "d" for å slette en partisjon. Siden vi skal slette alt på diksen trykker vi <enter> for å slette den partisjonen som programmet foreslår. Gjenta dette til alle partisjoner på disken er slettet.

Nå må det opprettes en partisjon som dekker hele disken. Dette gjøres med å skrive inn kommandoen "n". Trykk <enter> for å godta alle forslagene som programmet foreslår. Hvis du får ett spørsmål om du vil fjerne en signatur er det vare å trykke "y" for å godta det også.

Til slutt lagrer vi endringene i partisjons tabellen til disken ved å trykke "w". Dette vil ta deg ut av fdisk og tilbake til terminalen.

For å kontrollere at disken ble som ønsket kan vi teste det med lsblk

lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
...
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  512M  0 part /boot/efi
├─sda2   8:2    0    1K  0 part 
└─sda5   8:5    0 39,5G  0 part /
sdb      8:16   0   10G  0 disk 
└─sdb1   8:17   0   10G  0 part 
...

Som vi kan se over har disken sdb kun en partisjon. Denne partisjonen dekker hele disken.

Overskriving av hele disken

Før vi kan overskrive disken, må vi først vite hvor stor hver sektor på disken er.

sudo fdisk -l /dev/sdb
Disk /dev/sdb: 10 GiB, 10737418240 bytes, 20971520 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x447b5cb2

Device     Boot Start      End  Sectors Size Id Type
/dev/sdb1        2048 20971519 20969472  10G 83 Linux

Som vi kan se over er det 512 bytes i hver disk sektor. Når vi vet dette er det klart for å overskrive hele disken med tilfeldige bytes. Til dette brukes kommandoen "dd", som kan ta data fra datastrømmen med tilfeldig data i /dev/urandom og lagrer det i partisjonen på disken.

sudo dd if=/dev/urandom of=/dev/sdb1 bs=512 status=progress
130515456 bytes (131 MB, 124 MiB) copied, 4 s, 48,6 MB/s

Dette vil kjøre helt til hele disken fylt opp med tilfeldig data, da vil den stoppe av seg selv.

Hvor lang tid det vil ta å gjennomføre denne jobben vil avhenge av skrive hastigheten til disken. Typisk vil en HDD ha skrivehastighet på 60MB/s. Det vil si at en HDD på 4TB vil ta 18.5 timer å overskrive.

Helt til slutt kan det være fint å slette partisjonen som vi opprettet, slik at disken kan overleveres som tilsynelatende fabrikkny.