Categorieƫn
Linux-Bash

Grondig wissen harde schijf

Grondig wissen harde schrijf met dd en/of shred

Doel

Eenvoudig en grondig overschrijven van complete harde schijf, zodat de gegevens die erop hebben gestaan niet meer te herstellen zijn.

Aanleiding/overwegingen

  • Harde schijf is te klein en vervangen, of je doet een oude PC of Notebook weg. Je kan alle gegevens wel wissen, maar er zijn diverse programma’s, die dat zo weer ongedaan kunnen maken. Niet zo’n prettig idee als die disk daarna uit jouw zicht en controle verdwijnt.
  • Voordat je het weet staat er toch een heleboel op die harde schijf, waarvan je liever niet hebt dat anderen ermee aan de haal gaan. Documenten, inlog gegevens en noem maar op.
  • Je kan natuurlijk met je boormachine of een flinke moker aan de gang, maar dan heeft een ander er ook niets meer kan.
  • Zowel voor Windows, als voor Linux bestaan er programma’s, waarmee een schijf zo grondig kan worden overschreven met willekeurige gegevens, dat herstel van oorspronkelijke data die het bevatte niet meer mogelijk is.
  • Veelal maak ik dan ook nog gebruik van twee methoden, die ik na elkaar uitvoer. Het duurt even, maar dan heb je ook wat.

Voorbereiding

  • Als het gaat om een USB disk of een tweede schijf of partitie, waarvan niet opgestart is, kan vanuit Linux gewerkt worden.
  • Als het gaat om het wissen van de opstart schijf van een PC of Notebook, dan kan beter vanaf een live system disk, zoals b.v. Ubuntu Live-CD of USB stick, worden gestart.
  • Het eerste commando dd is onder elke Linux variant beschikbaar. Dit commando is vooral bekend van het kopiĆ«ren van een hele partitie of disk, maar kan ook gebruikt worden om een gehele disk te overschrijven.
  • Zie dat het aanwezig is met: which dd
  • Bekijk de opties met: man dd
  • Het tweede programma is shred.
  • Zie dat het aanwezig is met: which shred
    Als het niet aanwezig is, kan het eenvoudig worden opgehaald met: apt-get install coreutils Zie ook de tips onderaan deze pagina.
  • Bekijk de opties met: man shred

Waarschuwing

  • Het is tamelijk knullig als je de verkeerde schijf wist, maar een ongeluk zit in een klein hoekje. Helemaal als er schrijven van gelijke omvang zijn. Bekijk zorgvuldig om welke schijf of partitie het gaat. Met GUI hulpprogramma ‘Schijven’ of ‘Gparted’, of in het terminal venster met bijvoorbeeld: lsblk of sudo fdisk -l

Uitvoering

Mijn notebook is als multiboot systeem ingericht met twee interne SSD’s (1 = encrypted Windows en 2 = encrypted Ubuntu). Onder Linux zijn deze SSD’s te zien als /dev/sda en /dev/sdb. Voor de oefening maak ik gebruik van een oude 8,6 GB schijf, die via een Sharkoon Quickport op USB is aangesloten. Deze schijf wordt gezien als /dev/sdc

Voor het gebruik van dd

sudo time dd if=/dev/urandom of=/dev/sdX bs=1M status=progress
[sudo] password for username:
8620343296 bytes (8,6 GB, 8,0 GiB) copied, 684 s, 12,6 MB/s
dd: error writing '/dev/sdX': No space left on device
8224+0 records in
8223+0 records out
8622931968 bytes (8,6 GB, 8,0 GiB) copied, 699,664 s, 12,3 MB/s
Command exited with non-zero status 1
0.00user 53.44system 11:39.70elapsed 7%CPU (0avgtext+0avgdata 2920maxresident)k
96inputs+16841664 outputs (1major+349minor) pagefaults 0swaps

Toelichting bij de regels

  • Regel 1:
    • sudo start het het navolgende met superuser bevoegdheden.
    • time wordt tussengevoegd om na afloop de doorlooptijd te zien.
    • dd gebruikt /dev/urandom als input file (if).
    • het gebruikt /dev/sdX als output file (of).
    • NB. wijzig /dev/sdX in de letter die voor de betreffende disk gevonden werd. In mijn geval /dev/sdc
    • bs geeft de block size aan.
    • status=progress geeft aan dat de voorgang moet worden weergegeven, anders zit je uren te wachten en heb je geen idee hoever het is.
  • 2: toont dan de voortgang, terwijl het proces loopt.
  • 3: geeft aan dat op het eind geen ruimte mee beschikbaar is op het apparaat.
  • 4-6: geeft de samenvatting en de doorlooptijd.
  • 7-9: geven de output van het time commando

Voor het gebruik van shred

sudo shred -v -f -n 7 -z /dev/sdX
[sudo] wachtwoord voor username: 
shred: /dev/sdc: pass 1/8 (random)...
shred: /dev/sdc: pass 1/8 (random)...62MiB/8,1GiB 0%
shred: /dev/sdc: pass 1/8 (random)...132MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 1/8 (random)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 1/8 (random)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 2/8 (555555)...
shred: /dev/sdc: pass 2/8 (555555)...62MiB/8,1GiB 0%
shred: /dev/sdc: pass 2/8 (555555)...130MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 2/8 (555555)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 2/8 (555555)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 3/8 (000000)...
shred: /dev/sdc: pass 3/8 (000000)...66MiB/8,1GiB 0%
shred: /dev/sdc: pass 3/8 (000000)...136MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 3/8 (000000)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 3/8 (000000)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 4/8 (random)...
shred: /dev/sdc: pass 4/8 (random)...67MiB/8,1GiB 0%
shred: /dev/sdc: pass 4/8 (random)...139MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 4/8 (random)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 4/8 (random)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 5/8 (aaaaaa)...
shred: /dev/sdc: pass 5/8 (aaaaaa)...64MiB/8,1GiB 0%
shred: /dev/sdc: pass 5/8 (aaaaaa)...135MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 5/8 (aaaaaa)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 5/8 (aaaaaa)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 6/8 (ffffff)...
shred: /dev/sdc: pass 6/8 (ffffff)...65MiB/8,1GiB 0%
shred: /dev/sdc: pass 6/8 (ffffff)...136MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 6/8 (ffffff)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 6/8 (ffffff)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 7/8 (random)...
shred: /dev/sdc: pass 7/8 (random)...68MiB/8,1GiB 0%
shred: /dev/sdc: pass 7/8 (random)...140MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 7/8 (random)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 7/8 (random)...8,1GiB/8,1GiB 100%

shred: /dev/sdc: pass 8/8 (000000)...
shred: /dev/sdc: pass 8/8 (000000)...69MiB/8,1GiB 0%
shred: /dev/sdc: pass 8/8 (000000)...142MiB/8,1GiB 1%
<Knip> Het beloop van 2% tot 99% ingekort <knip>
shred: /dev/sdc: pass 8/8 (000000)...8,0GiB/8,1GiB 99%
shred: /dev/sdc: pass 8/8 (000000)...8,1GiB/8,1GiB 100%

Toelichting bij de regels

  • Regel 1:
    • sudo start shred met superuser bevoegdheden
    • -v verbose toont de voortgang
    • -f force forceert permissie wijziging om schrijven toe te staan als dat nodig is.
    • -n 7 geeft met nummer het aantal keer aan dat de schijf zal worden overschreven.
    • -z voegt nog een ronde toe die uiteindelijk de disk met nullen volschrijft.
    • /dev/sdX geeft de schijf aan die gewist moet worden. In dit geval sdc.
  • 2: vraagt om het [sudo] wachtwoord voor de gebruiker
  • 3-57 : Geeft vervolgens het verloop weer van waar hij mee bezig is. Ik heb het maar verkort weergegeven. Het beloop van %2 tot %98 is er bij elke passage tussenuit geknipt en voor leesbaarheid enigszins geformatteerd.)

Tips

  • Na deze acties kan de schijf opnieuw geformatteerd en gebruikt worden.
  • Kijk voor een overzicht van Coreutils bij Wikipedia

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *