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.
- Ved at bruge cfdisk
- 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