Formatter SD kort eller USB

Genbrug et SD kort eller USB

Hvis man skal formattere sit SD kort eller USB kan det let blive en masse klikken med musen.

Denne guide vil demonstrere hvordan du kan lette processen ved at bruge din Linux terminal.

  1. Ved at bruge cfdisk
  2. Scripted ved hjælp af gdisk

Forberedelser

ADVARSEL: Vær sikker på at du formatterer den rette enhed – enten det er SD kort eller USB. Det er alene dit ansvar at du ikke formatterer den forkerte enhed.

Du kan sikre dig ved at åbne en terminal. Fjern derefter alle flytbare enheder og lav en liste over dine disk enheder med følgende kommando

lsblk

Derefter indsætter du den enhed du vil genbruge og lister enhederne en gang mere. Noter det nye enhedsnavn der er fremkommet.

Gennem hele guiden vil jeg bruge navnet /dev/sdy og du skal derfor erstatte sdy med det enhedsnavn du fandt ovenfor.

1. cfdisk

cfdisk bruges ved hjælp af et simpelt menu system hvor du bruger pile tasterne for at vælge kommandoer og for at vælge et område på enheden. For at udføre en kommando bruges Enter

I den åbne terminal indtastes følgende kommando for at starte cfdisk og du skal vælge gpt når du bliver spurgt.

sudo cfdisk --zero /dev/sdy
  • Vælg Ny og tast Enter
  • Tast Enter for at acceptere forvalget
  • Vælg Type og tast Enter
  • Brug og vælg Microsoft basis data og tast Enter
  • Vælg Skriv og tast Enter. Skriv ja for at bekræfte og tast Enter
  • Vælg derefter Afslut og tast Enter

Derefter opretter du et filsystem på enheden. For at gøre enheden så brugbar som muligt anbefales filsystemet exfat. Dette er et Microsoft filsystem som gør det muligt at lagre filer som er større end 4G.

Bruger du Ubuntu og muligvis andre distributioner som vægter OSS højt og vælger exfat kan det være nødvendigt at installere de nødvendige programmer og drivere. Installer med følgende kommando

sudo apt install exfat-fuse exfat-utils

Opret nu filsystemet

sudo mkfs.exfat /dev/sdy1

2. scripted gdisk

gdisk kan både bruges interaktivt med en simpel menu men kan også scriptes som det nu vises. Til sidst i artiklen er et komplet script som du kan genbruge.

DEVICE="/dev/sdy" printf 'o\ny\nn\n\n\n\n0700\nw\ny\n' | sudo gdisk $DEVICE && sudo mkexfatfs "$DEVICE"1

Lad os splitte den så jeg bedre kan forklare hvad der sker.

Først opretter vi en henvisning til den enhed vi vil bruge. Du skal bruge det enheds navn du fandt før.

DEVICE="/dev/sdy"

Derefter opretter vi en buffer med tegn

printf 'o\ny\nn\n\n\n\n0700\nw\ny\n'

Denne buffer sender vi gennem en pipe | (et rør) til den næste kommando

| sudo gdisk $DEVICE

Når denne kommando er afsluttet uden problemer – det er indikeret med && vil vi oprette filsystemet på enheden – som vi hved kun har en partition

&& sudo mkfexfatfs "$DEVICE"1

Hvis du nu åbner gdisk så bliver det næste nemmere at forstå da vi skal gennemgå de tegn vi hældte ind i den buffer vi overførte til gdisk.

sudo gdisk /dev/sdy

Gdisk skriver nogle basale oplysninger om enheden – ignorer dem og fokuser på prompten

Command (? for help): 

Indtast ? og derefter Enter

Command (? for help): ?
b	back up GPT data to a file
c	change a partition's name
d	delete a partition
i	show detailed information on a partition
l	list known partition types
n	add a new partition
o	create a new empty GUID partition table (GPT)
p	print the partition table
q	quit without saving changes
r	recovery and transformation options (experts only)
s	sort partitions
t	change a partition's type code
v	verify disk
w	write table to disk and exit
x	extra functionality (experts only)
?	print this menu

Command (? for help): 

Fra denne liste skal vi bruge følgende

  • o Enter opretter en ny fil tabel
  • n Enter opretter en ny partition
  • w Enter skriver ændringer til fil tabel
  • l Enter vil vise mulige typer
  • t Enter HEX Enter vil ændre partitionstypen til den indtastede værdi

Start nu med at taste l Enter og indtast teksten Microsoft og tast Enter

Bemærk at typen Microsoft basic data har værdien 0700 – husk det vi skal bruge den om lidt.

Følg nu disse trin

  • o Enter ny partitions tabel
  • y Enter accepter
  • n Enter ny partition
  • Enter accepter forslaget
  • Enter accepter forslaget
  • Enter accepter forslaget
  • 0 7 0 0 Enter for Microsoft data partition
  • w Enter

Hver gang du brugte Enter tasten registrerer gdisk det som en ny linje. En ny linje i Linux scripting er \n. Jeg har her en gengivelse af bufferen hvor jeg har skilt det ad så det er mere overskueligt.

o \n y \n n \n \n \n \n 0700 \n w \n y \n

Det er derfor vi kan fylde en buffer og derefter hælde bufferen gennem røret til gdisk – som så udfører opgaven – nøjagtig som vi gjorde manuelt – bare meget hurtigere og uden fejl.

Konklusion

Du har nu en ide om hvordan man formatterer en diskenhed og som jeg nævnte tidligere får du her et eksempel på et script med kontrol og bekræftelse.

#!/bin/bash
# check at vi har en enhed
DEVICE="$1"
if [[ -z ${DEVICE} ]]; then
    echo "Ingen enhed angivet ..."
    echo ""
    echo Angiv en enhed efter script navn f.eks. /dev/sdy
    exit 1
fi
# Bed om bekræftelse
read -r -p "Bekræft overskrivning af $1 [y/N] " resp
if [[ "$resp" =~ ^([yY][eE][sS]|[yY])$ ]]; then
    echo "Formatterer ${DEVICE} ..."
    printf 'o\ny\nn\n\n\n\n0700\nw\ny\n' | sudo gdisk $DEVICE && sudo mkexfatfs "$DEVICE"1
else
    echo "Formatering afbrudt!"
fi

Opret en ny fil i din hjemme mappe med navnet format-usb, indsæt ovenstående tekst og gem derefter filen. Gør file eksekverbar med denne kommando

chmod +x ~/format-usb

Udfør scriptet ved at skrive

./format-usb /dev/sdy