Jak zamontować i odmontować urządzenia pamięci masowej z poziomu terminala Linux

W artykule omówiono, jak montować, odmontowywać i ponownie montować systemy plików w systemach Linux i Unix, korzystając z terminala oraz istotne polecenia do zarządzania nimi.
Systemy plików w systemach Linux i Unix, takich jak macOS, mogą być montowane, odmontowywane i ponownie montowane za pomocą terminala. To potężne i wszechstronne narzędzie—oto wszystko, co musisz wiedzieć.
System plików w Linuxie
Systemy plików w Linuxie, macOS i innych systemach podobnych do Unix nie używają oddzielnych identyfikatorów woluminów dla urządzeń pamięci masowej, tak jak to ma miejsce w przypadku systemu Windows. Windows przypisuje każdemu woluminowi literę dysku, taką jak C: czy D:, a system plików dla każdego woluminu to drzewo katalogów znajdujące się poniżej tej litery dysku.
W Linuxie system plików to pojedyncze drzewo katalogów. Zamontowane urządzenie pamięci ma swój system plików włączony do tego drzewa, dzięki czemu wydaje się integralną częścią jednego spójnego systemu plików. Nowo zamontowany system plików będzie dostępny przez katalog, w którym jest zamontowany. Ten katalog nazywa się punktem montowania dla tego systemu plików.
Wiele systemów plików jest automatycznie montowanych podczas uruchamiania lub na bieżąco, gdy urządzenia pamięci są podłączone do komputera w czasie działania. Ostrożni administratorzy systemów mogą wyłączyć funkcje automatycznego montowania w czasie działania, aby kontrolować połączenia z systemem.
Oznacza to, że urządzenia pamięci podłączone podczas działania mogą nie być automatycznie montowane i będą wymagały ręcznego montowania. Ręczne montowanie systemu plików pozwala podejmować decyzje dotyczące tego systemu plików, takie jak to, gdzie będzie punkt montowania oraz czy system plików będzie tylko do odczytu, czy do odczytu i zapisu.
Niezależnie od tego, czy jest to konieczność, czy wybór, polecenia mount, umount i remount dają ci możliwość kontroli tego ważnego aspektu twojego systemu Linux.
Interrogacja Twojego systemu plików za pomocą mount
Mount ma wiele opcji, ale do wylistowania wszystkich zamontowanych systemów plików na twoim komputerze nie wymaga żadnych opcji. Wystarczy wpisać mount i nacisnąć Enter:
mount wyświetli wszystkie podłączone systemy plików w oknie terminala.
Może być trudno przeszukać ten zrzut danych w poszukiwaniu tego, co cię interesuje.
Możesz doprecyzować wynik, prosząc mount o wylistowanie tylko interesujących cię systemów plików. Opcja -t (typ) informuje mount, jaki typ systemu plików ma zgłosić.
mount -t tmpfs
mount -t ext4
Na przykład poprosiliśmy mount, aby wylistował tylko systemy plików tmpfs. Uzyskujemy dużo bardziej przystępny wynik.
System plików tmpfs wydaje się być zwykłym, zamontowanym systemem plików, ale w rzeczywistości jest przechowywany w pamięci ulotnej—tmp oznacza tymczasowy—zamiast na trwałym urządzeniu pamięci.
Chcesz zastąpić parametr tmpfs typem pliku, który cię interesuje.
Wydaliśmy również polecenie, aby wylistować systemy plików ext4. Na tym komputerze testowym znajduje się pojedynczy system plików ext4, jest na urządzeniu sda—pierwszym zamontowanym urządzeniu pamięci, zwykle głównym dysku twardym—i zamontowany na /, który jest korzeniem drzewa systemu plików.
Inne wskaźniki oznaczają:
- rw: System plików jest do odczytu i zapisu.
- relatime: Jądro używa zoptymalizowanego schematu do zapisywania metadanych dostępu do plików i modyfikacji.
- errors=remount -o: Jeśli zostanie wykryty wystarczająco poważny błąd, system plików zostanie ponownie zamontowany w trybie tylko do odczytu, aby umożliwić diagnozę.
Interrogacja Twojego systemu plików za pomocą df
Polecenie df może być również używane do wyświetlania, które systemy plików są zamontowane i gdzie znajdują się ich punkty montowania.
df, używane bez parametrów, sprawia, że masz ten sam problem z natłokiem informacji, co mount. Na przykład w systemie Ubuntu Linux istnieje pseudo-system plików squashfs utworzony dla każdej aplikacji zainstalowanej za pomocą polecenia snap. Kto chce widzieć wszystkie te systemy plików?
Aby wymusić df, aby je zignorował—lub jakikolwiek inny typ systemu plików—użyj opcji -x (wyklucz):
df -x squashfs
Możesz łatwo zobaczyć nazwy systemów plików, ich pojemność, używaną i wolną przestrzeń oraz ich punkty montowania.
Remontowanie wszystkich systemów plików w fstab
Wszystkie systemy plików montowane podczas uruchamiania mają wpisy w pliku o nazwie fstab, który jest tabelą systemów plików znajdującą się w /etc.
Możesz użyć mount, aby wymusić "odświeżenie" i ponownie zamontować wszystkie systemy plików wymienione w fstab. W normalnych warunkach operacyjnych nie jest to wymagane. Przydaje się to jednak, gdy masz problemy z wieloma systemami plików.
Będziesz musiał użyć sudo, więc zostaniesz poproszony o podanie hasła.
sudo mount -a
Przyznaję, że na działającym poprawnie komputerze jest to trochę nieciekawie.
Natomiast w komputerze z problemami systemu plików, ponowne zamontowanie może rozwiązać problemy. Jeśli to nie nastąpi, przynajmniej otrzymasz komunikaty diagnostyczne na ekranie i w dziennikach systemowych, które pomogą zlokalizować przyczynę problemu.
Montowanie obrazu ISO
Montowanie obrazu ISO jest proste, pozwala na dostęp do jego zawartości jako części systemu plików.
Wszystko zadziała z dowolnym obrazem ISO. W tym przykładzie używamy obrazu Tiny Core Linux, ponieważ jest on wygodnie mały i szybki do pobrania. (Mała dystrybucja Linuxa z GUI, w 18 MB! Prawdopodobnie masz pliki MP3 większe niż to.)
W tym samym katalogu, co obraz ISO, wydaj tę komendę. Podmień nazwę pliku ISO, który montujesz.
sudo mount -t iso9660 -o loop TinyCore-current.iso /mnt
Ponieważ musimy użyć sudo, będziesz musiał wprowadzić swoje hasło.
Opcja -t (typ) mówi mount, jaki typ systemu plików montujemy. To jest plik ISO, więc podajemy typ specyfikatora iso9660.
Flaga -o (opcje) jest używana do przekazywania dodatkowych parametrów do mount. Naszym parametrem jest loop.
Używamy loop, aby wymusić na mount użycie pliku urządzenia loop do połączenia z naszym obrazem ISO. Plik urządzenia loop pozwala na zamontowanie pliku (takiego jak obraz ISO) i traktowanie go jakby był urządzeniem pamięci masowej.
Pliki urządzenia to specjalne pliki używane jako interfejs, aby podłączone urządzenia pojawiały się jak zwykły plik systemu plików. To jest część filozofii projektowej, że wszystko w Linuxie jest plikiem.
Istnieje wiele różnych typów plików urządzeń. Wcześniej zauważyliśmy, że jedyny system plików ext4 na tej testowej maszynie był zamontowany na / i nosił nazwę sda.
Aby być dokładnym, ten system plików ext4 znajduję się na urządzeniu pamięci masowej podłączonym do systemu plików przez plik urządzenia /dev/sda, a system plików na tym urządzeniu pamięci masowej zamontowany jest na /.
Musimy oczywiście podać nazwę obrazu ISO i poinformować mount, gdzie chcielibyśmy, aby system plików został zamontowany. Wybraliśmy /mnt.
Obraz ISO jest zamontowany. Przypomnienie, że obrazy ISO są zawsze montowane w trybie tylko do odczytu, pojawia się w oknie terminala.
Badanie obrazu ISO
Teraz, gdy jest zamontowany, możemy nawigować po katalogach w obrazie ISO w ten sam sposób, jak w każdej innej części systemu plików. Sprawdźmy pliki w obrazie ISO. Pamiętaj, że jest zamontowany na /mnt.
ls /mnt
ls /mnt/cde/
Odmontowywanie obrazu ISO
Aby odmontować zamontowany system plików, użyj komendy umount. Zauważ, że nie ma "n" pomiędzy "u" a "m" — polecenie to umount, a nie "unmount."
Musisz powiedzieć umount, który system plików chcesz odmontować. Zrób to, podając punkt montowania systemu plików.
sudo umount /mnt
Cisza jest dobra. Jeśli nie ma nic do zgłoszenia, znaczy że wszystko poszło dobrze.
Tworzenie punktu montowania
Możesz stworzyć i używać własnych punktów montowania. Zamierzamy stworzyć jeden o nazwie isomnt i zamontować nasz obraz ISO na tym. Punkt montowania to po prostu katalog. Możemy więc użyć mkdir, aby stworzyć nasz nowy punkt montowania.
sudo mkdir /media/dave/isomnt
Teraz możemy użyć tego samego formatu polecenia jak wcześniej, aby zamontować nasz obraz ISO. Tym razem nie zamontujemy go na /mnt, lecz na /media/dave/isomnt/:
sudo mount -r -t
iso9660 -o loop TinyCore-current.iso /media/dave/isomnt/
Teraz możemy uzyskać dostęp do zamontowanego systemu plików z naszego nowego punktu montowania.
ls /media/dave/isomnt/cde/optional
Jednak te ścieżki stają się bardzo długie. Szybko to się znudzi. Zróbmy coś z tym.
Powiązanie Punktu Montowania
Możesz powiązać punkt montowania z innym katalogiem. Zamontowany system plików można wtedy uzyskać dostęp zarówno przez oryginalny punkt montowania, jak i przez katalog do którego jest powiązany.
Oto przykład. Utworzymy katalog w naszym katalogu domowym o nazwie iso. Następnie powiążemy punkt montowania obrazu ISO /media/dave/isomnt z nowym katalogiem iso w naszym katalogu domowym.
Będziemy mogli uzyskać dostęp do obrazu ISO zarówno przez oryginalny punkt montowania /media/dave/isomnt, jak i przez nowy katalog iso. Opcja -B (bind) wymaga podania nazwy punktu montowania i nazwy katalogu, do którego ma być powiązany.
mkdir iso sudo mount -B /media/dave/isomnt/ iso ls iso ls /media/dave/isomnt cd iso ls cd cde
Używanie umount z Powiązaniami
System plików, który miał swój punkt montowania powiązany z innym katalogiem, wymaga odmontowania z jego punktu montowania i punktu powiązania.
Nawet jeśli odmontujemy system plików z jego oryginalnego punktu montowania, wciąż można uzyskać dostęp do systemu plików z powiązanego katalogu. System plików musi być również odmontowany z tego katalogu.
sudo umount /media/dave/isomnt ls iso sudo umount iso ls iso
Montowanie Dyskietki
Dyskietka (z dyskietką w środku) jest urządzeniem pamięci masowej. Oznacza to, że plik urządzenia sd (dla storage device) będzie używany do połączenia z fizycznym urządzeniem. Musimy ustalić, który plik urządzenia sd jest wolny. Możemy to zrobić, przepuszczając wyjście df przez grep i szukając wpisów zawierających "sd".
df | grep /dev/sd
Na tym komputerze używany jest jeden plik urządzenia sd. To jest /dev/sda. Następny plik urządzenia sd to /dev/sdb. Oznacza to, że po podłączeniu dyskietki do komputera, Linux użyje /dev/sdb do połączenia z dyskietką.
Poinstruujemy mount, aby zamontować system plików na dyskietce w napędzie dyskietek podłączonym do /dev/sdb w punkcie montowania /mnt.
Włóż dyskietkę do napędu dyskietek i podłącz napęd dyskietek do portu USB w komputerze. Wydaj następujące polecenie:
sudo mount /dev/sdb /mnt
Etykiety Systemów Plików
Możemy użyć opcji -l (etykieta) z mount, aby dowiedzieć się, jaka etykieta (jeśli istnieje) jest przypisana do systemu plików. Etykiety to nic innego jak arbitralne nazwy. Nie mają funkcjonalnego celu.
Używamy opcji -t (typ), aby poprosić mount o raportowanie tylko systemów plików vfat.
mount -l -t vfat
Zapiszesz etykietę w nawiasach kwadratowych na końcu listy. Etykieta dla tego napędu dyskietek to NORTUN.
Możemy uzyskać dostęp do dyskietki przez punkt montowania /mnt.
cd /mnt ls ls -l AMATCH.C
Dyskietka zawiera pliki źródłowe w języku C. Data ostatniej modyfikacji jednego z plików wskazuje, że została zmieniona w październiku 1992 roku. Prawdopodobnie jest starsza niż wielu naszych czytelników. (Nie trzeba mówić, że znaczenie etykiety NORTUN zatarło się w mrokach czasu.)
Jeżeli powtórzymy nasze polecenie df przepuszczone przez grep, aby wymienić pliki urządzenia sd, zobaczymy, że obecnie mamy ich dwa.
df | grep /dev/sd
Nasza dyskietka jest pokazana jako zamontowana na /dev/sdb, jak się spodziewaliśmy. System plików na dyskietce w napędzie jest zamontowany w /mnt.
Aby odmontować dyskietkę, używamy umount i przekazujemy jej plik urządzenia jako parametr.
sudo umount /dev/sdb
Opcja umount Lazy
Co się stanie, jeśli ty (lub inny użytkownik) korzystasz z systemu plików, gdy próbujesz go odmontować? Odmontowanie się nie powiedzie.
sudo umount /dev/sdb
Polecenie nie powiodło się, ponieważ obecne obciążenie.
Katalog użytkownika znajduje się w systemie plików, który próbuje odmontować. Linux jest na tyle mądry, że nie pozwala ci odciąć gałęzi, na której siedzisz.
Aby to obejść, użyj opcji -l (leniwa). Sprawia to, że umount czeka, aż system plików będzie mógł być bezpiecznie odmontowany.
sudo umount -l /dev/sdb ls cd ~ ls /mnt
Mimo że wydano polecenie umount, system plików nadal jest montowany, a użytkownik może normalnie listować pliki.
Gdy użytkownik zmienia katalog na swój katalog domowy, system plików z dyskietki zostaje zwolniony i odmontowany. Próba listowania plików w /mnt nie zwraca żadnych wyników.
Montowanie wspólnego zasobu Samba
Samba to zestaw usług software'owych, który umożliwia dostęp do współdzielonych zasobów w sieci pomiędzy systemami Linux i Unix-like a systemami Windows.
Ustawienie Samby wykracza poza zakres tego artykułu. Jeśli jednak masz autoryzowany dostęp do udostępnionego zasobu Samba, oto jak możesz go zamontować w systemie Linux.
Raspberry Pi połączony z tą samą siecią co maszyna testowa ma na sobie wspólny zasób Samba. Jest to katalog o nazwie Backup, który ma nadaną nazwę Samba "share". Połączmy się przez SSH i sprawdźmy zawartość udostępnionego katalogu. Udostępniony katalog znajduje się na pamięci USB zamontowanej na Pi.
Nazwa użytkownika to pi, a nazwa sieci Raspberry Pi to marineville.local.
ssh [email protected] ls /media/pi/USB64/Backup exit
Użytkownik wydaje polecenie SSH i jest proszony o hasło do Raspberry Pi.
Podaje swoje hasło i zostaje uwierzytelniony. Prompt w terminalu zmienia się na pi@marineville, ponieważ jest połączony z Raspberry Pi.
Listuje zawartość udostępnionego katalogu w /media/pi/USB64/Backup. Zawartość to dwa katalogi: jeden o nazwie dave i drugi o nazwie pat. Teraz wiemy, czego się spodziewać, gdy zamontujemy wspólny zasób Samba.
Wpisuje exit, aby odłączyć się od Raspberry Pi, a prompt zmienia się z powrotem na dave@howtogeek.
Aby korzystać z Samby, musisz zainstalować pakiet cifs-utils.
Użyj apt-get, aby zainstalować ten pakiet na swoim systemie, jeśli używasz Ubuntu lub innej dystrybucji opartej na Debianie. W innych dystrybucjach Linuxa użyj narzędzia do zarządzania pakietami swojej dystrybucji.
sudo apt-get install cifs-utils
Po zakończeniu instalacji zamontuj zasób za pomocą polecenia podobnego do poniższego, zmieniając adres IP, nazwę zasobu i punkt montowania (który musi już istnieć) zgodnie z Twoimi okolicznościami.
sudo mount -t cifs -o credentials=/etc/samba/creds,uid=1000,gid=1000 //192.168.4.13/share /media/dave/NAS
Rozłóżmy części tego polecenia.
- -t cifs: Typ systemu plików to cifs.
- -o credentials=/etc/samba/creds,uid=1000,gid=1000: Parametry opcji to ścieżka do pliku o nazwie
creds, który jest zabezpieczony i zawiera nazwę użytkownika i hasło dla użytkownika Raspberry Pi; identyfikator użytkownika (UID) oraz identyfikator grupy (GID), które są używane do ustawienia właściciela i grupy root systemu plików. - //192.168.4.13/share: Lokalizacja w sieci urządzenia z udostępnionym zasobem Samba oraz nazwa Samba udostępnionego katalogu. Root zasobu to katalog o nazwie
Backup, ale jego nazwa zasobu Samba została ustawiona nashare. - /media/dave/NAS: Nazwa punktu montowania. Musisz wcześniej stworzyć swój punkt montowania.
Uzyskując dostęp do naszego punktu montowania w /media/dave/NAS, uzyskujemy dostęp do udostępnionego katalogu na Raspberry Pi przez sieć. Możemy zobaczyć dwa foldery na Raspberry Pi o nazwach dave i pat.
cd /media/dave/NAS
Tworzenie i montowanie systemu plików
Możesz użyć polecenia dd, aby stworzyć plik obrazu, a następnie użyć mkfs, aby stworzyć system plików wewnątrz niego. Taki system plików można następnie zamontować. To dobry sposób na ćwiczenie i eksperymentowanie z mount.
Używamy opcji if (plik wejściowy), aby powiedzieć dd, aby użyć strumienia zerowych wartości z /dev/zero jako wejścia.
Plik of (plik wyjściowy) to nowy plik o nazwie geek_fs.
Używamy opcji bs (rozmiar bloku), aby zażądać rozmiaru bloku 1 MB.
Wykorzystujemy opcję count, aby poinformować dd, że ma uwzględnić 20 bloków w pliku wyjściowym.
dd if=/dev/zero of=./geek_fs bs=1M count=20
To tworzy nasz plik obrazu. Zawiera jedynie wartości zerowe.
Możemy utworzyć działający system plików wewnątrz pliku geek_fs używając polecenia mkfs. Opcja -t (typ) pozwala nam wybrać typ systemu plików. Tworzymy system ext4.
mkfs -t ext4 ./geek_fs
To wszystko, czego potrzebujemy, aby mieć działający system plików.
Przymocujmy go do /media/dave/geek a następnie użyjmy chown, aby ustawić właściciela i grupę, aby umożliwić do niego dostęp.
sudo mount ./geek_fs /media/dave/geek
sudo chown dave:users /media/dave/geek
Czy działa? Przejdźmy do nowego systemu plików i skopiujmy plik, aby to sprawdzić.
cd /media/dave/geek
cp /etc/fstab .
ls -l
Udało nam się przejść do nowego systemu plików i pomyślnie skopiować plik /etc/fstab. Działa!
Jeśli użyjemy mount do wylistowania zamontowanych systemów plików, ale ograniczymy jego wyjście do systemów plików ext4 używając opcji -t (typ), zobaczymy, że obecnie są dwa zamontowane systemy plików ext4.
mount -t ext4
Ponowne montowanie systemu plików
Ponowne montowanie systemu plików używa opcji -o remount. Zazwyczaj robi się to, aby zmienić system plików z trybu tylko do odczytu (testowego) na tryb odczytu i zapisu (produktywny).
Spróbujmy ponownie zamontować naszą stację dyskietek. Tym razem użyjemy flagi -r (tylko do odczytu). Następnie przefiltrujemy mount przez grep i przyjrzymy się szczegółom systemu plików stacji dyskietek.
sudo mount -r /dev/sdb /mnt
mount | grep /mnt
Jak widać, wyróżnione ro wskazuje, że system plików jest zamontowany w trybie tylko do odczytu.
Używając opcji -o remount z flagą rw (odczyt i zapis), możemy odmontować i ponownie zamontować system plików z nowymi ustawieniami, wszystko w jednym poleceniu.
sudo mount -o remount,rw /mnt
Powtórzenie przefiltrowania mount przez grep pokazuje, że ro zostało zastąpione przez rw (wyróżnione). System plików jest teraz w trybie odczytu i zapisu.
mount | grep /mnt
(Nie) Przenoszenie systemu plików
Wcześniej można było odmontować system plików i zamontować go w innym punkcie montowania za pomocą jednego polecenia.
Opcja -M (przenieś) w mount istnieje specjalnie, aby to umożliwić. Ale już nie działa w dystrybucjach Linuksa, które przeszły do systemd. A to większość znanych nazw.
Jeśli spróbujemy przenieść system plików z /mnt do ./geek, nie powiedzie się i otrzymamy komunikat o błędzie pokazany poniżej. Próba wylistowania plików w systemie plików przez ./geek nie zwraca żadnych rezultatów.
sudo mount -M /mnt ./geek
ls ./geek
Obejściem jest użycie opcji -B (wiąż), której użyliśmy wcześniej, aby powiązać oryginalny punkt montowania z nowym punktem montowania.
sudo mount -B /mnt ./geek
ls ./geek
Poza tym, że nie zwalnia oryginalnego punktu montowania, będzie miało taki sam praktyczny rezultat.
Ostateczne obserwacje
Używając opcji --make-private możliwe było wymuszenie przeniesienia w wersjach Linuksa z systemd. Ta technika nie została przedstawiona tutaj z dwóch powodów.
- Może mieć nieprzewidywalne zachowanie.
- Nie była trwała i musiałaby być powtarzana przy każdym uruchomieniu.
Devuan Linux używa SysV init, a nie systemd. Na komputerze załadowano najnowszą wersję Devuan i przetestowano opcję -M (przenieś).
działał zgodnie z oczekiwaniami na tym systemie.
Oprócz problemów z systemd w opcji -M (przenieś), użycie poleceń mount i umount powinno być proste. To świetne polecenia, które warto mieć w zanadrzu, gdy napotkasz uszkodzony system i będziesz musiał ręcznie złożyć system plików z powrotem.
Jeśli ciekawią Cię artykuły podobne do Jak zamontować i odmontować urządzenia pamięci masowej z poziomu terminala Linux, zajrzyj do kategorii Linux i odkryj jeszcze więcej interesujących treści.
- System plików w Linuxie
- Interrogacja Twojego systemu plików za pomocą mount
- Interrogacja Twojego systemu plików za pomocą df
- Remontowanie wszystkich systemów plików w fstab
- Montowanie obrazu ISO
- Badanie obrazu ISO
- Odmontowywanie obrazu ISO
- Tworzenie punktu montowania
- Powiązanie Punktu Montowania
- Używanie umount z Powiązaniami
- Montowanie Dyskietki
- Etykiety Systemów Plików
- Opcja umount Lazy
- Montowanie wspólnego zasobu Samba
- Tworzenie i montowanie systemu plików
- Ponowne montowanie systemu plików
- (Nie) Przenoszenie systemu plików
- Ostateczne obserwacje
Dodaj komentarz

Możesz być zainteresowany