Jakie punkty montowania istnieją w typowym systemie Linux?

32

Mam 2 pytania

  1. Podczas instalacji systemu Linux określamy pamięć dla 2 punktów montowania - root i swap. Czy są jakieś inne punkty montowania utworzone bez powiadomienia użytkowników?
  2. Czy to stwierdzenie jest prawidłowe: „montaż pojawia się na obrazie tylko w przypadku różnych partycji, tzn. Nie można montować, powiedzmy, / proc, chyba że jest to inna partycja”?
Jan
źródło
1
+1 za tytuł pytania! Gdyby wszyscy nowicjusze pytali tak niewinnie ...
Caleb
Haha, dokładnie moje myśli! +1.
boehj
2
@John: Zadawanie dwóch pytań w jednym nie jest zalecane. Ponieważ są teraz odpowiedzi, które obejmują oba pytania, chyba pozwolimy, by się przesunęło, ale następnym razem osobno zadaj osobne pytania. Trudności ze znalezieniem dobrego tytułu (nie, tytuł nie był dobrym podsumowaniem twojego pytania) wynikały z próby połączenia wielu pytań w jedno.
Gilles 'SO - przestań być zły'

Odpowiedzi:

47

Za pytaniami kryją się nieporozumienia.

  1. Zamień nie jest zamontowany.
  2. Montaż nie ogranicza się do partycji.

Partycje

Partycja jest slice¹ przestrzeni dyskowej, która jest poświęcona konkretnym celu. Oto kilka typowych celów dla partycji.

  • System plików , tj. Pliki zorganizowane jako drzewo katalogów i przechowywane w formacie takim jak ext2, ext3, FFS, FAT, NTFS,…
  • Zamień przestrzeń, tzn. Miejsce na dysku używane do stronicowania (i przechowywania obrazów hibernacji) ).
  • Bezpośredni dostęp do aplikacji. Niektóre bazy danych przechowują swoje dane bezpośrednio na partycji, a nie w systemie plików, aby uzyskać niewielką wydajność. (System plików jest zresztą rodzajem bazy danych.)
  • Kontener na inne partycje. Na przykład partycja rozszerzona na PC lub wycinek dysku zawierający partycje BSD lub wolumin fizyczny LVM (zawierający ewentualnie woluminy logiczne, które same mogą być uważane za partycje)…

Systemy plików

Systemy plików prezentują informacje w strukturze hierarchicznej. Oto kilka popularnych rodzajów systemów plików:

  • Systemy plików z dyskami, takie jak ext2, ext3, FFS, FAT, NTFS,…
    • Tworzenie kopii zapasowej nie musi znajdować się bezpośrednio na partycji dysku, jak pokazano powyżej. Może to być na przykład wolumin logiczny LVM lub połączenie pętli .
  • Systemy plików z pamięcią, takie jak Solaris i Linux tmpfs .
  • Systemy plików prezentujące informacje z jądra, takie jak procisysfs na Linuksie.
  • Sieciowe systemy plików, takie jak NFS , Samba ,…
  • Systemy plików wspierane aplikacjami, z których FUSE ma dużą kolekcję . Systemy plików wspierane aplikacjami mogą zrobić wszystko: sprawić, by serwer FTP pojawiał się jako system plików, wyświetlał alternatywnie widok systemu plików, w którym nazwy plików nie uwzględniają wielkości liter lub są konwertowane na inne kodowanie, wyświetlał zawartość archiwum tak, jakby były katalogami…

Montowanie

Unix przedstawia pliki w jednej hierarchii, zwykle zwanej „systemem plików” (ale w tej odpowiedzi nie użyję słowa „system plików” w tym sensie, aby utrzymać zamieszanie). Poszczególne systemy plików muszą zostać przeszczepione do tej hierarchii, aby uzyskać do nich dostęp .³

System plików staje się dostępny, instalując go. Montowanie wiąże katalog główny montowanego systemu plików z istniejącym katalogiem w hierarchii plików. Katalog, który ma takie powiązanie, jest znany jako punkt podłączenia.

  • Na przykład główny system plików jest montowany podczas rozruchu (zanim jądro uruchomi jakikolwiek proces²) do /katalogu.
  • System plików proc, na którym niektóre warianty uniksowe, takie jak Solaris i Linux, ujawniają informacje o procesach, jest zamontowany /proc, aby /proc/42/environoznaczać plik/42/environ w systemie plików proc, który (przynajmniej w systemie Linux) zawiera widok tylko do odczytu środowiska procesu numer 42.
  • Jeśli masz osobny system plików, np. /home, /home/john/myfile.txtOznacza plik, którego ścieżka pochodzi /john/myfile.txtz katalogu głównego domowego systemu plików.

Pod Linuksem ten sam system plików może być dostępny poprzez więcej niż jedną ścieżkę, dzięki montowaniu powiązań .

Typowy system plików Linux ma wiele zamontowanych systemów plików. (To jest przykład; różne dystrybucje, wersje i konfiguracje doprowadzą do zamontowania różnych systemów plików).

  • /: główny system plików, zamontowany przed załadowaniem pierwszego procesu przez jądro. Program ładujący informuje jądro, którego ma używać jako głównego systemu plików (zwykle jest to partycja dysku, ale może to być coś innego, na przykład eksport NFS).
  • /proc: plik proc proc , z informacjami o procesie i jądrze.
  • /sys: system plików sysfs , z informacjami o urządzeniach sprzętowych.
  • /dev: system plików w pamięci, w którym pliki urządzeń są automatycznie tworzone przez udev na podstawie dostępnego sprzętu.
  • /dev/pts: specjalny system plików zawierający pliki urządzeń do uruchamiania emulatorów terminali .
  • /dev/shm: system plików w pamięci używany do celów wewnętrznych przez standardową bibliotekę systemu.
  • W zależności od tego, jakie komponenty systemu masz uruchomione, możesz zobaczyć inne systemy plików specjalnego przeznaczenia, takie jak binfmt_misc(używane przez podsystem jądra obcego formatu plików wykonywalnych ), fusectl(używane przez FUSE ),nfsd (używane przez serwer NFS jądra),…
  • Każdy system plików wyraźnie wymieniony w /etc/fstab(i nieoznaczony noauto) jest montowany jako część procesu rozruchu.
  • Dowolny system plików montowany automatycznie przez HAL (lub równoważną funkcjonalność) po włożeniu urządzenia wymiennego, takiego jak klucz USB.
  • Każdy system plików jawnie zamontowany za pomocą mountpolecenia.

¹ Mówiąc nieformalnie tutaj.
² Initrd i takie są poza zakresem tej odpowiedzi.
³ W przeciwieństwie do systemu Windows, który ma osobną hierarchię dla każdego systemu plików, np . c:Lub \\hostname\sharename.

Gilles „SO- przestań być zły”
źródło
5
+10 Gilles, gdzie masz czas? Moim jedynym komentarzem jest to, że muszę dać ludziom trochę luzu w kwestii wymiany, ponieważ cholernie mylące jest wyświetlanie mojej partycji wymiany, /etc/fstabgdy nie ma być montowana.
Caleb
zdecydowanie głupie pytanie ... ale nie mogę się powstrzymać. Powiedziałeś: „Montowanie wiąże katalog z katalogiem głównym systemu plików”. Gdzie więc znajduje się katalog „/”?
John
2
@John: Wcale nie głupie pytanie, słowa „system plików” i „root” mają tutaj dwa różne znaczenia: istnieją pojedyncze systemy plików (każdy z ich katalogiem głównym) i cała hierarchia katalogów (z /katalogiem głównym, katalogiem) . Przeredagowałem tę część mojej odpowiedzi, mam nadzieję, że powinna być teraz jaśniejsza.
Gilles „SO- przestań być zły”
Ta odpowiedź jest niezwykle pomocna - jest encyklopedyczna. Ja również chciałbym zrobić tutaj +10. Świetna odpowiedź.
boehj
13
  1. Każda dystrybucja linux ma swój własny domyślny układ partycji; niektóre z nich wykorzystują dziesiątki partycji, niektóre tylko jedną. 3 i 4 są dość powszechnymi ustawieniami (/ boot, /, swap i / home). Niektóre starsze układy często miały / var na osobnej partycji, a systemy ekstremalne zawierały wszystko w / var / * i / opt / * na osobnych partycjach! Najlepszym uogólnieniem, jakie mogę zrobić w odpowiedzi na twoje pytanie, jest to, że nic w świecie unix nie jest zrobione bez powiadomienia użytkowników lub możliwości ich zmiany !
  2. Możesz montować rzeczy, które nie są partycjami. Na przykład / proc nie jest zwykle partycją, jest to pseudo system plików dostarczany przez jądro, który pozwala czytać i zapisywać dane o uruchomionych procesach tak, jakby były plikami. Możesz także montować pliki (takie jak ISO) tak, jakby były dyskami za pomocą urządzenia pętli zwrotnej, wiązać foldery montowania w innych miejscach i wykonywać różne inne sztuczki ninja.
Caleb
źródło
1
Wszystkie partycje, które są automatycznie montowane podczas uruchamiania, znajdują się w /etc/fstab. Jeśli dodasz tam partycję, będzie ona dostępna przy następnym uruchomieniu.
LawrenceC