Sådan monteres og afmonteres lagerenheder fra Linux-terminalen

Filsystemer i Linux og Unix-lignende operativsystemer som macOS kan monteres, afmonteres og genmonteres ved hjælp af terminalen. Dette er et kraftfuldt og alsidigt værktøj - her er alt hvad du behøver at vide.

Linux-filsystemet

Filsystemerne i Linux, macOS og andre Unix-lignende operativsystemer bruger ikke separate volumenidentifikatorer til lagerenheder på den måde, som Windows siger. Windows tildeler hver diskenhed et drevbogstav som C: eller D: og filsystemet for hver diskenhed er et træ med kataloger, der sidder under dette drevbogstav.

I Linux er filsystemet et alt-i-et katalogtræ. En monteret lagerenhed har dets filsystem podet på det træ, så det ser ud til at være en integreret del af et sammenhængende filsystem. Det nyligt monterede filsystem vil være tilgængeligt via den mappe, det er monteret på. Denne mappe kaldes monteringspunktet for det filsystem.

Mange filsystemer monteres automatisk ved start eller on-the-fly, da lagervolumener er forbundet til computeren under kørsel. Forsigtige systemadministratorer kan deaktivere funktionerne til automatisk montering af runtime, så de kan kontrollere forbindelser til systemet.

Dette betyder, at lagerenheder, der er tilsluttet under kørsel, muligvis ikke automatisk monteres og kræver montering manuelt. Montering af et filsystem manuelt giver dig mulighed for at træffe beslutninger om det filsystem, f.eks. Hvor monteringspunktet vil være, og om filsystemet vil være skrivebeskyttet eller læse-skrive.

Uanset om det er af nødvendighed eller gennem valg, de mount, umountog remountkommandoer giver dig mulighed for at tage kontrol over dette vigtige aspekt af dit Linux-system.

Forhør dit filsystem med holder

Mount har mange muligheder, men for at liste alle de monterede filsystemer på din computer kræves der slet ingen muligheder. Skriv mountog tryk Enter:

mount viser alle de tilsluttede filsystemer i terminalvinduet.

Det kan være svært at gennemse dette dump af data for at finde det, du leder efter.

Du kan forfine output ved at bede mountom kun at liste de filsystemer, der er interessante for dig. Indstillingen -t(type) fortæller,  mounthvilken type filsystem der skal rapporteres om.

monter -t tmpfs
monter -t ext4

Som et eksempel har vi bedt mountom kun at liste  tmpfsfilsystemer. Vi får et langt mere håndterbart output.

Et  tmpfsfilsystem ser ud som om det var et almindeligt monteret filsystem, men det er faktisk gemt i ustabil hukommelse — tmp står for midlertidig — i stedet for på en vedvarende lagerenhed.

Du vil gerne erstatte tmpfsparameteren med den filtype, du er interesseret i.

Vi har også udsendt en kommando til at liste ext4filsystemer. På denne testcomputer er der et enkelt ext4filsystem, det er på enheden sda- den første lagerenhed monteret, normalt den vigtigste harddisk - og monteret på /, hvilket er roden til filsystemtræet.

De andre indikatorer betyder:

  • rw : Filsystemet er læsbart og skrivbart.
  • relatime : Kernen bruger et optimeret skema til at registrere metadata til filadgang og ændring.
  • fejl = genmontering -o : Hvis der opdages en tilstrækkelig alvorlig fejl, genmonteres filsystemet i skrivebeskyttet tilstand for at muliggøre diagnose.

RELATERET: Hvilket Linux-filsystem skal du bruge?

Forhør dit filsystem med df

Den dfKommandoen kan også bruges til at vise, hvilken fil-systemer er monteret og hvor deres mount punkter er.

df brugt uden parametre giver dig det samme problem med overbelastning af oplysninger som mount. Som eksempel er der i Ubuntu Linux et squashfspseudo-filsystem oprettet til hver eneste applikation, der er installeret ved hjælp af snapkommandoen. Hvem vil se alle disse?

For at tvinge dftil at ignorere dem - eller enhver anden filsystemtype - brug indstillingen -x(ekskluder):

df -x squashfs

Du kan nemt se navnene på filsystemerne, deres kapacitet, brugt og ledig plads og deres monteringspunkter.

RELATERET: Sådan får du vist ledig diskplads og diskbrug fra Linux-terminalen

Genmontering af alle filsystemer i fstab

Alle filsystemer, der er monteret ved opstartstid, har poster i en fil, der kaldes fstab, hvilket er filsystemtabellen indeni /etc.

Du kan bruge mounttil at tvinge en "opdatering" og genmontere alle de filsystemer, der er anført i fstab. Under normale driftsforhold er dette ikke nødvendigt. Det kommer virkelig til sin ret, hvis du har problemer med flere filsystemer.

Du bliver nødt til at bruge sudo, så du bliver bedt om din adgangskode.

sudo mount -a

Ganske vist er det på en korrekt fungerende computer lidt overvældende.

På en computer med filsystemproblemer kan genmonteringen dog muligvis rydde problemerne. Hvis det ikke sker, får du i det mindste diagnosemeddelelser på skærmen og i systemlogfiler, der vil guide dig til at finde årsagen til problemet.

RELATERET: Hvad er Linux fstab-filen, og hvordan fungerer den?

Montering af et ISO-billede

Det er let at montere et ISO-billede, så du kan få adgang til dets indhold som en del af filsystemet.

Dette fungerer med ethvert ISO-billede. I dette eksempel bruger vi tilfældigvis en Tiny Core Linux ISO, fordi den er bekvem lille og hurtig at downloade. (En lille Linux-distribution med en GUI, i 18 MB! Du har sandsynligvis .mp3-filer større end det.)

Udgiv denne kommando i samme bibliotek som ISO-billedet. Erstat navnet på den ISO-fil, du monterer.

sudo mount -t iso9660 -o loop TinyCore-strøm.iso / mnt

Fordi vi skal bruge, sudoskal du indtaste din adgangskode.

Indstillingen -t(type) fortæller mounthvilken type filsystem vi monterer. Det er en ISO-fil, så vi leverer iso9660typespecifikationen.

Den -o(optioner) flag er brugt til at videregive ekstra parametre til mount. Vores parameter er loop.

Vi bruger  looptil at tvinge mounttil at bruge en loop-enhedsfil til at oprette forbindelse til vores ISO-billede. En loop-enhedsfil tillader, at en fil (som ISO-billedet) monteres og behandles som om det var en lagerenhed.

Enhedsfiler er specielle filer, der bruges som interface, så tilsluttede enheder ser ud som om de var en normal filsystemfil. Dette er en del af alt i Linux er en fildesignfilosofi.

Der er mange forskellige typer enhedsfiler. Vi så en tidligere, da vi bemærkede, at det eneste ext4filsystem på denne testmaskine var monteret på /og blev kaldt sda.

For at være mere præcis er dette ext4filsystem på en lagerenhed, der er forbundet til filsystemet via  /dev/sda enhedsfilen, og filsystemet på den lagerenhed er monteret på /.

Vi er selvfølgelig nødt til at angive navnet på ISO-billedet, og vi er nødt til at fortælle mount, hvor vi vil have filsystemet monteret. Vi har valgt /mnt.

ISO-billedet er monteret. En påmindelse om, at ISO-billeder altid er monteret i skrivebeskyttet tilstand, vises i terminalvinduet.

Udforskning af ISO-billedet

Nu hvor den er monteret, kan vi navigere i telefonbøgerne i ISO-billedet på samme måde som enhver anden del af filsystemet. Lad os liste filerne i ISO-billedet. Det er monteret på /mnt husk.

ls / mnt
ls / mnt / cde /

Afmontering af ISO-billedet

Brug umountkommandoen til at afmontere et monteret filsystem . Bemærk, at der ikke er noget "n" mellem "u" og "m" - kommandoen er umount og ikke "afmonteres."

Du skal fortælle, umounthvilket filsystem du afmonterer. Gør det ved at angive filsystemets monteringspunkt.

sudo umount / mnt

Ingen nyheder er gode nyheder. Hvis der ikke er noget at rapportere, gik alt godt.

Oprettelse af et Mount Point

Du kan oprette og bruge dine egne monteringspunkter. Vi opretter en kaldet isomntog monterer vores ISO-billede på det. Et monteringspunkt er kun et bibliotek. Så vi kan bruge mkdirtil at oprette vores nye monteringspunkt.

sudo mkdir / media / dave / isomnt

Nu kan vi bruge det samme kommandoformat som før til at montere vores ISO-billede. Denne gang monterer vi det ikke /mnt, men monterer det på /media/dave/isomnt/:

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

Vi kan nu få adgang til det monterede filsystem fra vores nye monteringspunkt.

ls / media / dave / isomnt / cde / optional

Men disse veje bliver meget lange. Det bliver hurtigt trættende. Lad os gøre noget ved det.

Binding af et monteringspunkt

Du kan binde et monteringspunkt til en anden mappe. Man kan derefter få adgang til det monterede filsystem enten gennem det originale monteringspunkt eller gennem den mappe, der er bundet til det.

Her er et gennemarbejdet eksempel. Vi opretter en mappe i vores hjemmekatalog, der hedder iso. Derefter binder vi ISO-billedets monteringspunkt /media/dave/isomnttil den nye isomappe i vores hjemmekatalog.

Vi får adgang til ISO-billedet gennem det originale monteringspunkt /media/dave/isomntog gennem den nye isomappe. Indstillingen -B(bind) kræver navnet på monteringspunktet og navnet på kataloget, som det skal bindes til.

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

Brug af umount With Binds

Et filsystem, der har haft sit monteringspunkt bundet til en anden mappe, kræver afmontering fra dets monteringspunkt og bindingspunktet.

Selvom vi afmonterer filsystemet fra dets oprindelige monteringspunkt, kan du stadig få adgang til filsystemet fra dets bundne bibliotek. Filsystemet skal også afmonteres fra denne mappe.

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

Montering af en diskette

Et diskettedrev (med en diskette i det) er en lagerenhed. Det betyder, at en sd (til lagerenhed) enhedsfil bruges til at oprette forbindelse til den fysiske enhed. Vi skal fastslå, hvilken er den næste gratis sd-enhedsfil. Vi kan gøre dette ved at sende output dfgennem grepog lede efter poster med "sd" i dem.

df | grep / dev / sd

På denne computer er der en enkelt sd-enhedsfil i brug. Dette er /dev/sda. Den næste sd-enhedsfil, der udstedes, er /dev/sdb. Det betyder, at når vi forbinder diskettedrevet til computeren, vil Linux bruge /dev/sdbtil at oprette forbindelse til diskettedrevet.

Vi vil fortælle mountat montere filsystemet på disketten i diskettedrevet, der er tilsluttet /dev/sdbtil det /mntmount point.

Indsæt disketten i diskettedrevet, og tilslut disketten til en USB-port på computeren. Udsted følgende kommando:

sudo mount / dev / sdb / mnt

Filsystemmærker

Vi kan bruge indstillingen -l(label) med mounttil at finde ud af, hvad der eventuelt er knyttet til et filsystem. Mærker er ikke mere end vilkårlige navne. De har intet funktionelt formål.

Vi bruger -t(type) -indstillingen til kun  mountat rapportere om vfatfilsystemer.

monter -l -t vfat

Du finder etiketten i firkantede parenteser i slutningen af ​​listen. Mærkaten til dette diskettedrev er NORTUN.

Vi har adgang til diskettedrevet gennem /mntmonteringspunktet.

cd / mnt
ls
ls -l AMATCH.C

Disketten indeholder kildekodefiler på C-sprog. Datostemplet på en fil viser, at den sidst blev ændret i oktober 1992. Det er sandsynligvis ældre end mange af vores læsere. (Det er overflødigt at sige betydningen af ​​NORTUN som en etiket går tabt i tidens tåge.)

Hvis vi gentager vores df piped through- grepkommando for at liste sd-enhedsfiler, ser vi, at der nu er to af dem.

df | grep / dev / sd

Vores diskettedrev vises så monteret /dev/sdbsom vi forventede. Filsystemet på disketten i drevet er monteret på /mnt.

For at afmontere disketten bruger vi umountog sender enhedsfilen som parameter.

sudo umount / dev / sdb

Den umount Lazy Option

Hvad sker der, hvis du (eller en anden bruger) bruger filsystemet, når du prøver at afmontere det? Afmonteringen mislykkes.

sudo umount / dev / sdb

Det mislykkedes, fordi brugerens nuværende arbejdsmappe er inden for det filsystem, han prøver at afmontere. Linux er smart nok til ikke at lade dig afskære den gren, du sidder på.

Brug -l(doven) mulighed for at overvinde dette . Dette får dig umounttil at vente, indtil filsystemet kan afmonteres sikkert.

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

Selvom umountkommandoen udstedes, er filsystemet stadig monteret, og brugeren kan liste filerne som normalt.

Så snart brugeren skifter bibliotek til deres hjemmekatalog, frigives diskettefilsystemet og afmonteres. Forsøg på at liste filerne i /mntgiver ingen resultater.

Montering af en Samba-del

Samba er et sæt softwaretjenester, der gør det muligt at få adgang til netværksandele om hinanden mellem Linux og Unix-lignende operativsystemer og Windows-operativsystemer.

Opsætning af Samba er uden for denne artikels anvendelsesområde. Men hvis du har godkendt adgang til en Samba-del, der er gjort tilgængelig for dig, kan du montere den i Linux.

En Raspberry Pi tilsluttet det samme netværk som testmaskinen har en Samba-andel på den. Det er et bibliotek kaldet Backup, der har givet Samba navnet "del". Lad os oprette en SSH-forbindelse til den og se på indholdet af den delte bibliotek. Den delte mappe er på en USB-stick monteret på Pi.

Brugernavnet er, piog netværksnavnet på Raspberry Pi er marineville.local.

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

Brugeren udsteder SSHkommandoen og bliver bedt om deres Raspberry Pi-adgangskode.

De giver deres adgangskode og er godkendt. Terminalvindueteksten ændres til, [email protected]fordi den er forbundet til Raspberry Pi.

De viser indholdet af den delte mappe på /media/pi/USB64/Backup. Indholdet er to mapper, et kaldet daveog et kaldet pat. Så nu ved vi, hvad vi kan forvente, når vi monterer Samba-aktien.

De skriver for exitat afbryde forbindelsen til Raspberry Pi, og prompten skifter tilbage til [email protected].

For at bruge Samba skal du installere cifs-utilspakken.

Brug apt-gettil at installere denne pakke på dit system, hvis du bruger Ubuntu eller en anden Debian-baseret distribution. På andre Linux-distributioner skal du bruge din Linux-distributions pakkehåndteringsværktøj i stedet.

sudo apt-get install cifs-utils

Når installationen er afsluttet, skal du montere delingen med en kommando som følgende, ændre IP-adressen, delingsnavnet og monteringspunktet (som allerede skal eksistere), så det passer til dine omstændigheder.

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

Lad os nedbryde delene af denne kommando.

  • -t cifs : Filsystemtypen er cifs.
  • -o legitimationsoplysninger = / etc / samba / creds, uid = 1000, gid = 1000 : Indstillingsparametrene er stien til en fil kaldet, credsder er sikret og indeholder brugernavnet og adgangskoden til Raspberry Pi-brugeren; User ID (UID) og Group ID (GID), der bruges til at indstille ejeren og gruppen af ​​filsystemets rod.
  • //192.168.4.13/share : Netværksplaceringen på enheden med Samba-delingen på og Samba-navnet på den delte bibliotek. Roten til delingen er en mappe, der kaldes Backup, men dens Samba-delingsnavn er indstillet til share.
  • / media / dave / NAS : Navnet på monteringspunktet. Du skal oprette dit monteringspunkt på forhånd.

Ved at få adgang til vores monteringspunkt, når /media/dave/NASvi adgang til den delte mappe på Raspberry Pi på tværs af netværket. Vi kan se de to mapper på Raspberry Pi kaldet daveog pat.

cd / media / dave / NAS

Oprettelse og montering af et filsystem

Du kan bruge ddkommandoen til at oprette en billedfil og derefter bruge mkfstil at oprette et filsystem inde i den. Det filsystem kan derefter monteres. Dette er en god måde at øve og eksperimentere med mount.

Vi bruger indstillingen if(inputfil) til at fortælle ddat bruge strømmen af ​​nulværdier fra /dev/zerosom inputfil.

Den of(output-fil) er en ny fil kaldet geek_fs.

Vi bruger indstillingen  bs(blokstørrelse) til at anmode om en blokstørrelse på 1 MB.

Vi bruger countmuligheden for at fortælle ddat inkludere 20 blokke i outputfilen.

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

Det skaber vores billedfil for os. Den indeholder intet andet end nul værdier.

Vi kan oprette et fungerende filsystem inde i geek_fsfilen ved hjælp af mkfskommandoen. Den -t(type) option giver os mulighed for at vælge filsystemet typen . Vi opretter et ext4system.

mkfs -t ext4 ./geek_fs

Det er alt, hvad der kræves for at have et fungerende filsystem.

Lad os montere det /media/dave/geek og derefter bruge chown til at indstille ejer- og gruppeejerskaber for at give adgang til det.

sudo mount. / geek_fs / media / dave / geek
sudo chown dave: brugere / medier / dave / nørd

Virker det? Lad os skifte til det nye filsystem og kopiere i en fil for at se.

cd / media / dave / nørd
cp / etc / fstab. 
ls -l

Vi var i stand til at ændre bibliotek til det nye filsystem, og vi lavede en kopi af /etc/fstabfilen med succes . Det virker!

Hvis vi bruger mounten liste over de monterede filsystemer, men begrænser dens output til ext4 filsystemer ved hjælp af -t(type) -indstillingen, ser vi, at der nu er to monterede ext4filsystemer.

monter -t ext4

Genmontering af et filsystem

Genmontering af et filsystem bruger -o remountindstillingen. Det gøres typisk for at ændre et filsystem fra en skrivebeskyttet (test) tilstand til en skrive-skriv (produktion) tilstand.

Lad os montere vores diskettedrev igen. Denne gang bruger vi -r(skrivebeskyttet) flag. Så går vi mountigennem grepog ser på detaljerne i diskettefilsystemet.

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

Som du kan se, markerer det fremhævede ro, at filsystemet er monteret skrivebeskyttet.

Ved hjælp af  -o remountindstillingen med rw(læse-skriv) flag kan vi afmontere og genmontere filsystemet med de nye indstillinger, alt sammen i en kommando.

sudo mount -o remount, rw / mnt

Gentagelse af mountgennemføring grepviser os, at den roer blevet erstattet af  rw (fremhævet). Filsystemet er nu i læse-skrive-tilstand.

monter | grep / mnt

(Ikke) Flytning af et filsystem

Du plejede at kunne afmontere et filsystem og genmontere det på et andet monteringspunkt med en enkelt kommando.

Indstillingen -M(flyt)  mountfindes specifikt for at give dig mulighed for at gøre det. Men det fungerer ikke længere i Linux-distributioner, der er flyttet til systemd. Og det er de fleste af de store navne.

Hvis vi forsøger at flytte et filsystem fra /mnttil ./geek, mislykkes det og giver fejlmeddelelsen vist nedenfor. Forsøg på at liste filerne i filerne ystem gennem ./geekgiver ingen resultater.

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

Løsningen er at bruge -B (bind) -indstillingen, som vi tidligere brugte til at binde det oprindelige monteringspunkt til det nye monteringspunkt.

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

Bortset fra ikke at frigøre det originale monteringspunkt, vil dette have det samme praktiske resultat.

Endelige observationer

Ved hjælp af --make-privatemuligheden var det muligt at tvinge flytningen til at finde sted på systemdversioner af Linux. Denne teknik præsenteres ikke her af to grunde.

  1. Det kan have uforudsigelig opførsel.
  2. Det var ikke vedholdende og skulle gentages ved hver genstart.

Devuan Linux bruger  SysVinit ikke systemd. En computer blev indlæst med den nyeste version af Devuan og testet. Indstillingen -M(flyt) fungerede som forventet på dette system.

Bortset fra systemdproblemerne med indstillingen -M (flyt), skal du finde brugen af mountog umount ligetil. Dette er gode kommandoer for at have ærmet op, når du står over for et beskadiget system, og du skal begynde at dele filsystemet sammen igen med hånden.