web analytics

Hoe een USB schijf (stick, harde schijf) leegmaken vanuit de terminal

Print Friendly, PDF & Email

We hebben allemaal wel meerdere USB-sticks die rondslingeren op onze werkplaats. Ook behoort een externe harde schijf tot het werkmateriaal van menig Linux gebruiker. Soms moet die leeg gemaakt worden omdat je die aan iemand anders wil geven bijvoorbeeld, maar je wenst niet dat deze persoon je oude gegevens kan uitlezen.

Het commando rm kan je wel gebruiken om de bestanden te wissen, maar iedereen weet dat ze er nog op staan natuurlijk.

Dan maar formatteren, maar met gewoon formatteren ben je nooit zeker bent dat er geen sporen van oudere gegevens nog te lezen zullen zijn op de geformatteerde stick.

In deze post worden twee andere methodes naast het klassieke formatteren uitgelegd.

Locatie van onze USB-stick

Eerst gaan we ons USB apparaat aankoppelen, door het in te pluggen in de PC/Laptop. Standaard wordt het nieuwe apparaat automatisch gekoppeld. Om te zien waar het gekoppeld is, gebruik je onderstaand commando:

sudo fdisk -l

Dit is de kleine letter l (van lima)

Op mijn systeem ziet het resultaat er zo uit:

Terminal_129

Zoals je kunt zien op de laatste regel van de output van het commando wordt mijn 1GB USB-stick herkend als apparaat /dev/sdf1

Om deze te kunnen bewerken moet je deze natuurlijk eerst ontkoppelen. Je doet dat als volgt:

sudo umount /dev/sdf1

Nu is mijn stick klaar om bewerkt te worden.

De drie methodes worden in orde van veiligheid weergegeven, de meest veilige wordt eerst besproken.

Bestanden volledig wissen door meerdere malen te overschrijven met willekeurige tekens

Als je stick vertrouwelijke gegevens heeft bewaard en je wenst je stick volledig leeg maken, zodat er niks meer op terug te vinden is van oude gegevens, dan kun je dat doen via het commando shred.

Gebruik de -v optie (Verbose) om het verloop van het shredden te kunnen volgen, anders sta je minuten lang op een zwart scherm te kijken. Om mijn stick te shredden, geef ik het volgende commando in:

sudo shred -v  /dev/sdf1

Het commando shred overschrijft de bestanden op de partitie meerdere malen met willekeurige data om het terughalen van gegevens zelfs met gesofisticeerde hardware zeer lastig te maken.

Dat is de meest veilige methode die je kan gebruiken. De diverse opties die je aan het commando kan meegeven laten je toe om heel nauwkeurig het overschrijf proces te bepalen. Bekijk de opties via één van volgende commando’s:

shred --help

man shred

Merk op dat de standaard iteratie cyclus 3 maal je bestanden overschrijft en dat het proces daardoor heel lang kan duren. Voor mijn 1GB stick duurde het proces 13:12 minuten zoals je hieronder kan zien. Om dat te weten gebruik ik het commando time in mijn opdracht regel, zodat ik de tijd kan aflezen na het beëindigen van de opdracht.

Terminal_130

Stick overschrijven met één groot bestand

Een andere manier om je stick leeg te maken, is om je volledige stick te overschrijven met één groot bestand. Daartoe gebruik je het commando dd.

Het commando dd heeft twee belangrijke parameters

  • if=FILE (lees van deze file in plaats van de stdin)
  • of=FILE (schrijf naar deze file in plaats van de stdout)

Om onze stick dus leeg te maken gaan we inlezen van het bestand /dev/zero en wegschrijven naar onze /dev/sdf1 (in mijn geval).

In Unix-systemen is /dev/zero een virtueel uitvoerapparaat dat enigszins vergelijkbaar is met /dev/null. Als er naar geschreven wordt, werkt /dev/zero op dezelfde manier als /dev/null, want de data verdwijnt in het niets. Als er echter uit gelezen wordt, levert /dev/zero een willekeurig groot aantal ASCII null-karakters (niet te verwarren met het ASCII karakter “0” 0X30).

De opdracht wordt dus:

sudo dd if=/dev/zero of=/dev/sdf1

Terminal_131

Deze manier van overschrijven gaat veel sneller dan via het shred commando (op mijn systeem 01:43 min ⇔ 13:12 min), maar is ook minder grondig in het ‘overschrijven’ van je oude gegevens.

Stick formatteren met een welbepaald bestandssysteem

De laatste methode is het gewoon formatteren. Deze methode verdient de voorkeur als je het type bestandssysteem wil bepalen. Stel dat je stick in EXT4 is geformatteerd en je wenst die aan een niet-Linux gebruiker geven, dan doe je er het best aan om de stick in FAT te formatteren.

Het gebruikte commando is mkfs (make filesystem)

FAT bestandssysteem

Bij het formatteren in VFAT, moet je rekening houden met de beperkingen eigen aan dat bestandssysteem.

VFAT filenames can contain up to 255 characters, spaces, and multiple periods. Although VFAT preserves the case of filenames, it’s not considered case sensitive.

Zie ook: https://en.wikipedia.org/wiki/FAT_filesystem_and_Linux#vfat

sudo mkfs.vfat /dev/sdf1

Terminal_132

NTFS

Als je zowel vanuit Linux als vanuit Windows bestanden wil benaderen, dan is NTFS voor je memorysticks het beste bestandssysteem.

sudo mkfs.ntfs /dev/sdf1

Terminal_133

EXT4

Als je je externe USB-HD of je stick in EXT4 formatteert, moet je rekening houden met het feit dat op de mappen en de bestanden rechten komen te staan, waardoor je de bestanden op je stick soms niet toegankelijk kunnen zijn voor Linux gebruikers als ze niet de juiste rechten hebben.

sudo mkfs.ext4 /dev/sdf1

Terminal_134

Terug aankoppelen van je apparaat

Je kan je USB apparaat loskoppelen van je PC/laptop en terug inpluggen om die terug te koppelen, of je kan het manueel doen via het mount commando.

Manueel aankoppelen

Maak een koppelpunt aan op je systeem

$ sudo mkdir /externehd

Koppel beide aan elkaar

mount /dev/sdf1 /externehd

Beoordeling

1 Reactie

  1. franz ulenaers

    het kan ook met het cp of cat commando :
    sudo cp /dev/zero /dev/sdf1
    sudo cat /dev/zero >/dev/sdf1
    ook met
    sudo dd if=/dev/random of=/dev/sdf1
    maar dit is +- 10 maal trager dan /dev/zero

    wil je de MBR ook weg dan kan dat met
    sudo dd if=/dev/zero of=/dev/sdf bs=512 count=1

    Reageren

Geef een reactie

%d bloggers liken dit: