Hvordan montere og demontere lagringsenheter fra Linux-terminalen

Filsystemer i Linux og Unix-lignende operativsystemer som macOS kan monteres, avmonteres og remonteres ved hjelp av terminalen. Dette er et kraftig og allsidig verktøy – her er alt du trenger å vite.

Linux-filsystemet

Filsystemene i Linux, macOS og andre Unix-lignende operativsystemer bruker ikke separate volumidentifikatorer for lagringsenheter på den måten som for eksempel Windows gjør. Windows tildeler hvert volum en stasjonsbokstav som C: eller D: og filsystemet for hvert volum er et tre med kataloger som ligger under den stasjonsbokstaven.

I Linux er filsystemet et alt-i-ett-katalogtre. En montert lagringsenhet har filsystemet podet inn på det treet slik at det ser ut til å være en integrert del av ett sammenhengende filsystem. Det nylig monterte filsystemet vil være tilgjengelig via katalogen det er montert til. Den katalogen kalles monteringspunktet for det filsystemet.

Mange filsystemer monteres automatisk ved oppstart eller underveis som lagringsvolumer koblet til datamaskinen under kjøring. Forsiktige systemadministratorer kan slå av funksjonene for automatisk montering under kjøretid slik at de kan kontrollere tilkoblinger til systemet.

Dette betyr at lagringsenheter som er tilkoblet under kjøretid kanskje ikke automatisk monteres og vil kreve manuell montering. Montering av et filsystem manuelt lar deg ta avgjørelser om det filsystemet, for eksempel hvor monteringspunktet vil være og om filsystemet skal være skrivebeskyttet eller lese-skrive.

Enten det er av nødvendighet eller ved valg, gir kommandoene mount, umount og remount deg muligheten til å ta kontroll over dette viktige aspektet av Linux-systemet ditt.

Avhør filsystemet ditt med mount

Mount har en veldig mange alternativer, men å liste opp alle de monterte filsystemene på datamaskinen krever ingen alternativer i det hele tatt. Bare skriv mount og trykk Enter:

mount vil vise alle de tilkoblede filsystemene i terminalvinduet.

Det kan være vanskelig å finne det du leter etter.

Du kan avgrense utdataene ved å be mount om å vise bare filsystemene som er av interesse for deg. Alternativet -t (type) forteller mount hvilken type filsystem som skal rapporteres på.

mount -t tmpfs
mount -t ext4

Som et eksempel har vi bedt mount om å liste bare tmpfs-filsystemer. Vi får en mye mer håndterlig produksjon.

Et tmpfs-filsystem ser ut som om det var et vanlig, montert filsystem, men det er faktisk lagret i flyktig minne – tmp står for midlertidig – i stedet for på en vedvarende lagringsenhet.

Du vil erstatte tmpfs-parameteren med filtypen du er interessert i.

Vi har også gitt en kommando for å liste ext4-filsystemer. På denne testdatamaskinen er det et enkelt ext4-filsystem, det er på enheten sda – den første lagringsenheten som er montert, vanligvis hovedharddisken – og montert på /, som er roten til filsystemtreet.

De andre indikatorene betyr:

rw: Filsystemet er lesbart og skrivbart.
relatime: Kjernen bruker et optimalisert skjema for å registrere filtilgang og modifikasjonsmetadata.
errors=remount -o: Hvis en tilstrekkelig alvorlig feil oppdages, vil filsystemet bli remontert i skrivebeskyttet modus for å tillate diagnose.

Spør filsystemet ditt med df

Kommandoen df kan også brukes til vise hvilke filsystemer som er montert og hvor deres monteringspunkter er.

df brukt uten parametere gir deg samme informasjonsoverbelastningsproblem som mount. Som et eksempel, i Ubuntu Linux, er det et squashfs pseudo-filsystem opprettet for hver applikasjon som har blitt installert ved hjelp av snap-kommandoen. Hvem vil se alle disse?

For å tvinge df til å ignorere dem – eller en hvilken som helst annen filsystemtype – bruk alternativet -x (ekskluder):

df -x squashfs

Du kan enkelt se navnene på filsystemene, deres kapasitet, brukt og ledig plass, og monteringspunktene deres.

Montering av alle filsystemer i fstab

Alle filsystemene som er montert ved oppstart har oppføringer i en fil kalt fstab, som er filsystemtabellen som ligger i /etc.

Du kan bruke mount for å tvinge en «oppdatering» og remontere alle filsystemene som er oppført i fstab. Under normale driftsforhold er dette ikke nødvendig. Det kommer virkelig til sin rett hvis du har problemer med flere filsystemer.

Du må bruke sudo, så du blir bedt om passordet ditt.

sudo mount -a

Riktignok, på en datamaskin som fungerer riktig, er det litt underveldende.

  Hvordan bruke ja-kommandoen på Linux

På en datamaskin med filsystemproblemer kan imidlertid remonteringen løse problemene. Hvis det ikke skjer, vil du i det minste få diagnostiske meldinger på skjermen og i systemloggene som vil veilede deg til å finne årsaken til problemet.

Montering av et ISO-bilde

Det er enkelt å montere et ISO-bilde slik at du får tilgang til innholdet som en del av filsystemet.

Dette vil fungere med alle ISO-bilder. I dette eksemplet bruker vi tilfeldigvis en Tiny Core Linux ISO fordi den er praktisk liten og rask å laste ned. (En liten Linux-distribusjon med en GUI, på 18 MB! Du har sannsynligvis .mp3-filer som er større enn det.)

Utfør denne kommandoen i samme katalog som ISO-bildet. Bytt ut navnet på ISO-filen du monterer.

sudo mount -t iso9660 -o loop TinyCore-current.iso /mnt

Fordi vi må bruke sudo, må du skrive inn passordet ditt.

Alternativet -t (type) forteller mount hvilken type filsystem vi monterer. Det er en ISO-fil, så vi gir iso9660-typespesifikasjonen.

Flagget -o (alternativer) brukes til å sende ekstra parametere til montering. Vår parameter er loop.

Vi bruker loop for å tvinge montering for å bruke en loop-enhetsfil for å koble til ISO-bildet vårt. En loop-enhetsfil lar en fil (som ISO-bildet) monteres og behandles som om den var en lagringsenhet.

Enhetsfiler er spesielle filer som brukes som et grensesnitt slik at tilkoblede enheter ser ut som om de var en vanlig filsystemfil. Dette er en del av alt i Linux er en fildesignfilosofi.

Det finnes mange forskjellige typer enhetsfiler. Vi så en tidligere da vi la merke til at det eneste ext4-filsystemet på denne testmaskinen var montert på / og ble kalt sda.

For å være mer nøyaktig, er det ext4-filsystemet på en lagringsenhet koblet til filsystemet gjennom /dev/sda-enhetsfilen og filsystemet på den lagringsenheten montert på /.

Vi må selvfølgelig oppgi navnet på ISO-bildet, og vi må gi mount beskjed om hvor vi vil at filsystemet skal monteres. Vi har valgt /mnt.

ISO-bildet er montert. En påminnelse om at ISO-bilder alltid er montert i skrivebeskyttet modus vises i terminalvinduet.

Utforsker ISO-bildet

Nå som den er montert kan vi navigere i katalogene i ISO-bildet på samme måte som alle andre deler av filsystemet. La oss liste filene i ISO-bildet. Den er montert på /mnt husk.

ls /mnt
ls /mnt/cde/

Avmontering av ISO-bildet

For å avmontere et tilkoblet filsystem, bruk umount-kommandoen. Merk at det ikke er noen «n» mellom «u» og «m» – kommandoen er umount og ikke «unmount.»

Du må fortelle umount hvilket filsystem du demonterer. Gjør det ved å oppgi filsystemets monteringspunkt.

sudo umount /mnt

Ingen nyheter er gode nyheter. Hvis det ikke er noe å rapportere, så gikk alt bra.

Opprette et monteringspunkt

Du kan lage og bruke dine egne monteringspunkter. Vi skal lage en som heter isomnt og montere ISO-bildet vårt på det. Et monteringspunkt er bare en katalog. Så vi kan bruke mkdir til å lage vårt nye monteringspunkt.

sudo mkdir /media/dave/isomnt

Nå kan vi bruke samme kommandoformat som før for å montere ISO-bildet vårt. Denne gangen monterer vi den ikke på /mnt, vi monterer den på /media/dave/isomnt/:

sudo mount -r -t iso9660 -o loop TinyCore-current.iso /media/dave/isomnt/

Vi kan nå få tilgang til det monterte filsystemet fra vårt nye monteringspunkt.

ls /media/dave/isomnt/cde/optional

Men disse veiene blir veldig lange. Det kommer fort til å bli slitsomt. La oss gjøre noe med det.

Binding av et Mount Point

Du kan binde et monteringspunkt til en annen katalog. Det monterte filsystemet kan da nås enten gjennom det opprinnelige monteringspunktet eller gjennom katalogen som er bundet til det.

Her er et utført eksempel. Vi oppretter en katalog i hjemmekatalogen vår kalt iso. Deretter vil vi binde monteringspunktet til ISO-bildet /media/dave/isomnt til den nye iso-katalogen i hjemmekatalogen vår.

Vi vil kunne få tilgang til ISO-bildet gjennom det originale monteringspunktet /media/dave/isomnt og gjennom den nye iso-katalogen. Alternativet -B (bind) krever navnet på monteringspunktet og navnet på katalogen det skal bindes til.

mkdir iso
sudo mount -B /media/dave/isomnt/ iso
ls iso
ls /media/dave/isomnt
cd iso
ls
cd cde

Bruke umount med bindinger

Et filsystem som har fått sitt monteringspunkt bundet til en annen katalog krever avmontering fra monteringspunktet og bindepunktet.

Selv om vi avmonterer filsystemet fra dets opprinnelige monteringspunkt, kan du fortsatt få tilgang til filsystemet fra dets bundne katalog. Filsystemet må også avmonteres fra den katalogen.

sudo umount /media/dave/isomnt
ls iso
sudo umount iso
ls iso

Montering av en diskett

En diskettstasjon (med en diskett i) er en lagringsenhet. Det betyr at en sd (for lagringsenhet) enhetsfil vil bli brukt for å koble til den fysiske enheten. Vi må fastslå hvilken som er den neste gratis sd-enhetsfilen. Vi kan gjøre dette ved å sende utdataene til df gjennom grep og se etter oppføringer med «sd» i dem.

df | grep /dev/sd

På denne datamaskinen er det en enkelt SD-enhetsfil i bruk. Dette er /dev/sda. Den neste sd-enhetsfilen som utstedes vil være /dev/sdb. Det betyr at når vi kobler diskettstasjonen til datamaskinen, vil Linux bruke /dev/sdb for å koble til diskettstasjonen.

  Hvordan spille Trine 2 på Linux

Vi vil fortelle mount å montere filsystemet på disketten i diskettstasjonen som er koblet til /dev/sdb til /mnt-monteringspunktet.

Sett inn disketten i diskettstasjonen og koble disketten til en USB-port på datamaskinen. Utfør følgende kommando:

sudo mount /dev/sdb /mnt

Filsystemetiketter

Vi kan bruke alternativet -l (etikett) med mount for å finne ut hvilken, om noen, etikett som er knyttet til et filsystem. Etiketter er ikke mer enn vilkårlige navn. De har ingen funksjonell hensikt.

Vi bruker alternativet -t (type) for å be mount om å rapportere kun på vfat-filsystemer.

mount -l -t vfat

Du finner etiketten i hakeparenteser på slutten av oppføringen. Etiketten for denne diskettstasjonen er NORTUN.

Vi kan få tilgang til diskettstasjonen gjennom /mnt-monteringspunktet.

cd /mnt
ls
ls -l AMATCH.C

Disketten inneholder C språk kildekodefiler. Datostemplet til en fil viser at den sist ble endret i oktober 1992. Den er sannsynligvis eldre enn mange av våre lesere. (Det er unødvendig å si at betydningen av NORTUN som etikett går tapt i tidens tåke.)

Hvis vi gjentar vår df-piped through grep-kommando for å liste SD-enhetsfiler, vil vi se at det nå er to av dem.

df | grep /dev/sd

Vår diskettstasjon vises så montert på /dev/sdb som vi forventet. Filsystemet på disketten i stasjonen er montert på /mnt .

For å avmontere disketten bruker vi umount og sender den enhetsfilen som en parameter.

sudo umount /dev/sdb

Lazy-alternativet umount

Hva skjer hvis du (eller en annen bruker) bruker filsystemet når du prøver å avmontere det? Demonteringen vil mislykkes.

sudo umount /dev/sdb

Det mislyktes fordi den gjeldende arbeidskatalogen til brukeren er innenfor filsystemet han prøver å avmontere. Linux er smart nok til å ikke la deg sage av grenen du sitter på.

For å overvinne dette, bruk alternativet -l (lat). Dette fører til at umount venter til filsystemet kan demonteres på en sikker måte.

sudo umount -l /dev/sdb
ls
cd ~
ls /mnt

Selv om umount-kommandoen utstedes, er filsystemet fortsatt montert, og brukeren kan vise filene som normalt.

Så snart brukeren bytter katalog til hjemmekatalogen, frigjøres diskettfilsystemet og demonteres. Prøver å liste filene i /mnt gir ingen resultater.

Montering av en Samba-andel

Samba er en sett med programvaretjenester som gjør det mulig å få tilgang til nettverksandeler om hverandre mellom Linux- og Unix-lignende operativsystemer og Windows-operativsystemer.

Å sette opp Samba er utenfor rammen av denne artikkelen. Men hvis du har autorisert tilgang til en Samba-andel som er gjort tilgjengelig for deg, er det slik du kan montere den i Linux.

EN Raspberry Pi koblet til samme nettverk som testmaskinen har en Samba-andel på. Det er en katalog kalt Backup som har gitt Samba-navnet «share.» La oss lage en SSH tilkobling til den og se på innholdet i den delte katalogen. Den delte katalogen er på en USB-pinne montert på Pi.

Brukernavnet er pi og nettverksnavnet til Raspberry Pi er marineville.local.

ssh [email protected]
ls /media/pi/USB64/Backup
exit

Brukeren utsteder SSH-kommandoen og blir bedt om Raspberry Pi-passordet.

De oppgir passordet og er autentisert. Terminalvinduet endres til [email protected] fordi den er koblet til Raspberry Pi.

De viser innholdet i den delte katalogen på /media/pi/USB64/Backup. Innholdet er to kataloger, en som heter dave og en som heter pat. Så nå vet vi hva vi kan forvente når vi monterer Samba-aksjen.

De skriver exit for å koble fra Raspberry Pi og ledeteksten endres tilbake til [email protected]

For å bruke Samba må du installere pakken cifs-utils.

Bruk apt-get for å installere denne pakken på systemet ditt hvis du bruker Ubuntu eller en annen Debian-basert distribusjon. På andre Linux-distribusjoner, bruk Linux-distribusjonens pakkehåndteringsverktøy i stedet.

sudo apt-get install cifs-utils

Når installasjonen er fullført, monterer du delingen med en kommando som følgende, og endrer IP-adressen, delingsnavnet og monteringspunktet (som allerede må eksistere) for å passe dine omstendigheter.

sudo mount -t cifs -o credentials=/etc/samba/creds,uid=1000,gid=1000 //192.168.4.13/share /media/dave/NAS

La oss bryte ned delene av den kommandoen.

  Slik reinstallerer du Grub på Arch Linux

-t cifs: Filsystemtypen er cifs.
-o credentials=/etc/samba/creds,uid=1000,gid=1000: Alternativparameterne er banen til en fil kalt creds som er sikret og inneholder brukernavnet og passordet for Raspberry Pi-brukeren; bruker-ID (UID) og gruppe-ID (GID) som brukes til å angi eieren og gruppen til roten til filsystemet.
//192.168.4.13/share: Nettverksplasseringen til enheten med Samba-delingen på, og Samba-navnet til den delte katalogen. Roten til delingen er en katalog kalt Backup, men dens Samba-andelsnavn er satt til å dele.
/media/dave/NAS: Navnet på monteringspunktet. Du må opprette monteringspunktet på forhånd.

Ved å få tilgang til monteringspunktet vårt på /media/dave/NAS får vi tilgang til den delte katalogen på Raspberry Pi på tvers av nettverket. Vi kan se de to mappene på Raspberry Pi kalt dave and pat.

cd /media/dave/NAS

Opprette og montere et filsystem

Du kan bruke dd-kommandoen til å lage en bildefil, og deretter bruke mkfs til å lage et filsystem inne i den. Det filsystemet kan deretter monteres. Dette er en god måte å øve og eksperimentere med mount.

Vi bruker alternativet if (inndatafil) for å fortelle dd å bruke strømmen av nullverdier fra /dev/null som inndatafil.

The of (utdatafil) er en ny fil kalt geek_fs.

Vi bruker alternativet bs (blokkstørrelse) for å be om en blokkstørrelse på 1 MB.

Vi bruker tellealternativet for å fortelle dd å inkludere 20 blokker i utdatafilen.

dd if=/dev/zero of./geek_fs bs=1M count=20

Det lager bildefilen vår for oss. Den inneholder ikke annet enn null verdier.

Vi kan lage et fungerende filsystem inne i geek_fs-filen ved å bruke mkfs-kommandoen. Alternativet -t (type) lar oss velge filsystemtype. Vi lager et ext4-system.

mkfs -t ext4 ./geek_fs

Det er alt som skal til for å ha et fungerende filsystem.

La oss montere den på /media/dave/geek og deretter bruke chown for å angi eier- og gruppeeierskap for å tillate tilgang til den.

sudo mount ./geek_fs /media/dave/geek
sudo chown dave:users /media/dave/geek

Virker det? La oss bytte til det nye filsystemet og kopiere inn en fil for å se.

cd /media/dave/geek
cp /etc/fstab .
ls -l

Vi var i stand til å endre katalog til det nye filsystemet, og vi har laget en kopi av filen /etc/fstab. Det virker!

Hvis vi bruker mount for å liste opp de monterte filsystemene, men begrenser produksjonen til ext4-filsystemer ved å bruke alternativet -t (type), vil vi se at det nå er to monterte ext4-filsystemer.

mount -t ext4

Remontering av et filsystem

Remontering av et filsystem bruker -o remount-alternativet. Det gjøres vanligvis for å endre et filsystem fra en skrivebeskyttet (testing) tilstand til en lese-skrive (produksjons) tilstand.

La oss montere diskettstasjonen vår igjen. Denne gangen bruker vi flagget -r (skrivebeskyttet). Deretter vil vi pipe mount gjennom grep og se på detaljene i diskettfilsystemet.

sudo mount -r /dev/sdb /mnt
mount | grep /mnt

Som du kan se, indikerer den uthevede ro at filsystemet er montert skrivebeskyttet.

Ved å bruke -o remount-alternativet med rw-flagget (read-write) kan vi demontere og remontere filsystemet med de nye innstillingene, alt i én kommando.

sudo mount -o remount,rw /mnt

Å gjenta rørføringen av mount gjennom grep viser oss at ro har blitt erstattet av rw (uthevet). Filsystemet er nå i lese-skrivemodus.

mount | grep /mnt

(Ikke) Flytte et filsystem

Du pleide å kunne demontere et filsystem og remontere det på et annet monteringspunkt med en enkelt kommando.

Alternativet -M (flytte) i mount eksisterer spesifikt for å la deg gjøre det. Men det fungerer ikke lenger i Linux-distribusjoner har flyttet over til systemd. Og det er de fleste av de store navnene.

Hvis vi prøver å flytte et filsystem fra /mnt til ./geek, mislykkes det og gir feilmeldingen vist nedenfor. Prøver å liste filene i filsystemet gjennom ./geek gir ingen resultater.

sudo mount -M /mnt ./geek
ls ./geek

Løsningen er å bruke alternativet -B (bind) som vi brukte tidligere for å binde det opprinnelige monteringspunktet til det nye monteringspunktet.

sudo mount -B /mnt ./geek
ls ./geek

Bortsett fra å ikke frigjøre det originale monteringspunktet, vil dette ha samme praktiske resultat.

Endelige observasjoner

Ved å bruke alternativet –make-private var det mulig å tvinge flyttingen til å finne sted på systemversjoner av Linux. Denne teknikken presenteres ikke her av to grunner.

Det kan ha uforutsigbar oppførsel.
Det var ikke vedvarende og måtte gjentas ved hver omstart.

Devuan Linux bruker SysV i det ikke systemd. En datamaskin ble lastet med den nyeste versjonen av Devuan og testet. Alternativet -M (flytt) fungerte som forventet på det systemet.

Bortsett fra systemd-problemene med -M (move)-alternativet, bør du finne bruken av mount og umount enkelt. Dette er flotte kommandoer å ha i ermet når du står overfor et skadet system, og du må begynne å sette sammen filsystemet for hånd.