usbdiskJag har i en tidigare artikel skrivit om hur man automonterar USB stickor, detta fungerar inte om man vill att den ska ha en permanent sökväg i filsystemet eller att den ska finnas kvar om man bootar om datorn. I artikeln beskriver jag hur man sätter upp en USB-disk att automatiskt monteras vid uppstart men samtidigt inte hänga maskinen om man kopplar ur den. Viktigt är att tänka på att man ibland får använda en extern usb-hub med separat matning för att hårddisken ska få nog med ström. Om disken inte dyker upp eller man får en massa läsfel kan detta bero på att disken får för lite ström. Verifiera först att disken dyker upp bland usb-enheter

Här kan man se “USB-2.0 4-Port HUB” som är min externa USB-hub med separat strömmatning, “…JM20339 SATA Bridge” är en hårddisk, SATA är förkortning för Serial Advanced Technology Attachment som är ett protokoll för som datorn pratar med hårddiskar.

Vad man sedan måste ta redan på är vad disken heter i systemet, hårddiskar (av nyare slag dvs SATA diskar) använder samma namn som tidigare SCSI diskar dvs /dev/sda, /dev/sdb osv. och partionerna numberades från 1 och uppåt, dvs första partionen på den andra disken heter /dev/sdb1.

Problemet då som nu är att namngivningen beror på ordningen som diskarna upptäcks, så om man har flera diskar och ansluter dem i en annan ordning så får de andra namn. Detta kunde orsaka ganska mycket problem tidigare. Idag ska man helst använda UUID (Universally Unique IDentifier) som är ett långt unikt nummer för disken. Moderna operativsystem stöder denna namngivning.

Så, hur får man reda på vilket UUID en disk har, man måste först får reda på vilket device namn som den har (t.ex /dev/sda1), om man har bara en kan man oftast ta reda på det via uteslutningsmetoden. Ett sätt är att titta i dmesg för att se vad den monterades som

Det som är intressant är de sista raderna [sda] berättar vad disken heter dvs /dev/sda men inte vad partionerna heter eller hur många de är. Den kan man använda kommandot fdisk för att få reda på, man måste köra detta kommando som root eftersom vanliga användare inte får läsa /dev/sda

Nu ser vi att det finns en enhet som heter /dev/sda1 som är en NTFS-partition, du har vi nog med information för att få reda på UUID för den enheter

UUID för /dev/sda1 är allså A456CCE456CCB876 Om man vet vad man gav partition för namn kan man dubbelkolla

Om det stämmer, jag gav den namnet “Ny volym” (\x20 = hexadecimal 20 = ascii $20 = mellanslag) Nu kan vi skapa en monteringspunk för disken dvs en katalog där innehållet på denna disk visas

Sätt även den användare som ska komma åt disken som ägare av katalogen annars kan man inte skapa nya filer i rooten av den disken

Som i den tidigare artikeln om USB stickor så ägs alla diskar som monteras normat av root så om du ska kunna läsa och skriva till disken som en vanlig användare så måste vi lägga till detta när disken montera. Vad vi behöver veta är vilket nummer (UID) som motsvara den användare som ska ha åtkomst till disken. Om vi vill ge användare pi åtkomst till den så kan vi få reda på UID för användaren med fölajde kommando

Användare pi har UID=1000, detta tillsammans med UUID kommer vi att använda när vi lägger till disken i fstab.

Nu ska vi ändra i den fil som innehåller information om vilka diskenheter som ska monterar vid uppstart och vart de ska monteras. Om du gör fel här kan de orsaka att systemet inte startar ordentligt efteråt så läs noga igenom vad jag skriver här och följ säkerhetsåtgärdena så bör det inte bli några fel. Först gör vi en kopia av originalet ifall något skulle gå fel, VIKTIGT om du gör någont fel BOOTA INTE OM utan läs längre ner.

Nu har vi en kopia av /etc/fstab som heter /etc/fstab.org

Om du är osäker om du gjort rätt eller vill återställa originalet så kan du kopiera tillbaka file som den såg ut från början med följande kommando

Nu ska vi lägga till disken i filen /etc/fstab, innehålle i filen bör vara något liknade

Informationen på varje rad angers med en eller flera mellanslag eller tabbar mellan varje parameter. Paramerarna är från vänster, enhetsbeteckning ( /dev/… eller UUID=), monteringspunkt, typ av filsystem, optionsparametrar, om filsystemet ska ingå när man kör dump-kommandot och sist vilka filsystem som man kan köra fsck parallellt, för att förhindra att man checkar flera partitioner på samma disk samtidigt.

Om du är osäker vilket filsystem som du ska använda kan man montera det med mount som gör en autodetektering för att avgöra vilket filsystem som finns på disken.

det som står direkt efter type är den benämning som man ska använda i filen, i detta fall ska man använda ntfs, här kan man även se att den standardmässigt monteras med uid=0 (root)

NTFS är lite speciellt när man ska mountera sådanna diskar, om man använder type ntfs kommer man bara kunna montera den som read-only dvs man kan inte skriva till disken, för att få läs-skriv måste man montera den med FUSE-3G som man hämtar med följande kommando

För ntfs ska man då i stället för ntfs använda ntfs-3g.

editera filen som root

och lägg till följande rad i slutet, det som står efter UUID= är det nummer som du fick fram för disken och uid= är det nummer du fick fram för användaren och det filsystem som man fick fram med mount kommandot.

Optionen nofail innebär att operativsystem kommer att försöka montera disken vid uppstart men ignorera den om den inte finns tillgänglig vid uppstart. Spara filen och kontrollera att du skrivit rätt genom att skriva

mount -a är ett behändrig kommando då -a innebär att den går igenom /etc/fstab och monterar alla diskar som finns definierade men ej monterade. Man kan använda samma kommando om man starta upp datorn och inte har disken inkopplad och när kopplar in den senare vill att den monteras utan att starta om.

Om du inte fick några felmeddelande så kan du kontrollera att den blev montera med

Kontrollera även att användaren kan se filerna på disken

Om du ska koppla ur disken medans datorn är igång är det viktigt att avmontera den först så alla utestående skrivningar till disken blir nedskrivna till disken innan du kopplar ur den. För att avmontera disken används kommandot umount

Kontrollera att den inte är monterad

Om någon process använder den kommer man att få följande fel när man försöker avmontera den

Man kan kontrollera om man har något fönster där man t.ex har gjort cd till någon katalog på disken. Man kan också använda sig av kommandot fuser för att få reda på vilka processer som låser disken.

Här kan man se att en less /usbdisk/test.txt låser avmonteringen, man kan sänga varje kommando manuellt eller lägga till -k flaggan på fuser för att döda alla processer som låser disken.

Ett alternativ är att stänga ner maskinen och koppla ur disken när systemet har stoppat.