Jakie jest znaczenie domyślnych katalogów w hierarchii systemu plików Linux?

41

Po zainstalowaniu różnych dystrybucji Linuksa do majsterkowania, jestem zaskoczony instalatorami oferującymi układy partycji - dla łatwego wyjścia po prostu wykorzystuję całą dostępną przestrzeń dyskową.

Niektóre oferowane partycje mają tajemnicze nazwy, w tym / var , swap , / usr i / home . Instalatorzy tak naprawdę mi tego nie wyjaśniają - w jakim celu służą i które, jeśli w ogóle, należy wykorzystać?

Grant Palin
źródło

Odpowiedzi:

61

Krótka odpowiedź na temat nazw katalogów: wpisz „ man hier” do terminala :)

To jest strona podręcznika dla hierarchii systemu plików, która wyjaśnia ogólny cel nazw katalogów i ich zawartość. Tutaj możesz zobaczyć wersję internetową .

Więcej informacji można znaleźć na Wikipedii:

Te linki wyjaśnią wszystko o tym, jakie partycje są nazywane i czym są (lub były) używane do przechowywania.

Odpowiedź na temat używania oddzielnych partycji zamiast tylko katalogów na tej samej partycji wraca do łatwości konserwacji i rozbudowy. Jeśli masz jedną partycję z, powiedzmy, /a /homena nim, Joe Użytkownik może wypełnić swój /home/joefolder, a cała maszyna zabraknie miejsca na dysku i zatrzymania pracy (jestem tu uproszczenie, ale to ogólny wynik). Jeśli masz /i /homena różnych partycjach, Joe Użytkownik może wypełnić swój /home/joekatalog, a /homepartycja będzie pełna, ale maszyna będzie działać ponieważ /nie została naruszona.

Rozwiń więc tę zasadę na prawie wszystkie różne katalogi znajdujące się na różnych partycjach, a zobaczysz, jak byłoby to użyteczne, szczególnie gdy komputer działa 24/7 w roli wielu użytkowników i wielu usług.

Ben Williams
źródło
12
+1 za man hierNaucz człowieka łowienia ryb i tak dalej.
George Marian
Tak, dziękuję za wskaźnik do hier (7). Zawsze odwiedzałem stronę internetową FHS, nie wiedząc, że odpowiedzi były znacznie łatwiej dostępne.
andol
Problem polega na tym, że chociaż są one wyjaśnione, w jaki sposób mają być używane, niektóre nie są tak naprawdę używane domyślnie, jak w katalogu / srv.
Ronaldo Nascimento
7

Podczas instalacji wiele dystrybucji daje możliwość umieszczenia różnych katalogów na różnych partycjach. Na przykład wielu użytkowników wybiera katalog / home na innej partycji niż reszta instalacji. Jest tak, ponieważ wszystko w katalogu / home należy do użytkownika - dokumenty, filmy i wszystkie inne dane specyficzne dla użytkownika trafiają tutaj. Umieszczając katalog / home na osobnej partycji, a rzeczywiste pliki systemu operacyjnego na innej, jeśli użytkownik zdecyduje się na nową instalację swojego systemu operacyjnego Linux, może po prostu przepisać partycję główną i opuścić swoją partycję / home (i wszystkie jego plików) nienaruszone.

Pozwala to również użytkownikowi zainstalować wiele dystrybucji Linuksa na różnych partycjach, wszystkie współużytkujące tę samą partycję / home. W ten sposób użytkownik może uzyskać dostęp do swoich plików bez względu na używaną wersję systemu Linux.

Przypadkowy użytkownik nie powinien tak naprawdę martwić się o przypisanie oddzielnego / var, swap, / usr itp. Wszystkie te katalogi są częścią systemu operacyjnego i mają niewiele wspólnego z plikami użytkownika.

Makario
źródło
+1 za dobry link. Czy / swap nie zawsze jest oddzielną partycją?
George Marian
@George Marian: Nie musi. Możliwe jest skonfigurowanie wymiany systemu plików (która jest plikiem wewnątrz systemu plików istniejącej partycji) zamiast wymiany partycji. W ten sposób system Ubuntu może działać na jednej partycji.
txwikinger
3
Dla osób grających w domu warto zauważyć, że możliwość korzystania z pliku wymiany w zwykłym systemie plików zależy od systemu plików. IE: Nie próbuj tego z btrfs, pozwoli to (w starszych jądrach) cicho uszkodzić dane i (w nowszych jądrach) wyrzucić błąd podczas próby dodania wymiany.
RAOF,
5

Wykorzystanie całego dostępnego miejsca na dysku jest całkowicie prawidłową (i prawdopodobnie zalecaną) opcją dla komputerów osobistych. Partycjonowanie takiego systemu plików jest moim zdaniem przejściem od czasów starożytnych, zanim RAID lub zarządzanie woluminami wirtualnymi były praktyczne w oprogramowaniu.

W systemach typu UNIX system plików zaczyna się w katalogu głównym „/”. W terminologii DOS / Windows byłoby to „C:”

W systemie DOS / Windows dodajesz dyski do liter nurkowych D :, E: itd. W systemach podobnych do UNIX-owego „montujesz” dyski w katalogach. Kiedyś miałeś 10 lub 10 megabajtów dysków twardych, możesz montować różne katalogi na różnych dyskach i partycjach, aby stworzyć iluzję pojedynczego dużego dysku. Prawie RAID 0 biedaka.

Istnieje wiele powodów, aby podzielić różne katalogi główne, ale jednym z popularnych pomysłów jest to, że ponieważ partycje wymiany i / var zostały napisane w największym stopniu, mają one największe szanse na niepowodzenie. Rozdzielając je na różne partycje, naprawdę łatwo jest po prostu dodać kolejny dysk z kopii zapasowej i ponownie go zamontować.

Posiadanie osobnego parowania / home może być naprawdę świetne, jeśli uruchamiasz wiele wersji systemu Linux na jednym komputerze. (Na przykład Ubuntu i Red Hat). Ponieważ programy Unix / Linux umieszczają ustawienia użytkownika w swoim katalogu domowym. Działa to jednak znacznie lepiej w teorii niż w praktyce. Ponieważ musisz dokładnie zrozumieć konsekwencje uprawnień.

Oto kilka ważnych katalogów dla systemów operacyjnych typu UNIX i ich wyjaśnienia.

  • /bin - Podstawowe pliki wykonywalne systemu
  • /lib - Podstawowe biblioteki systemowe (.so w systemie Linux, .dll w systemie Windows).
  • /boot- Gdzie mieszka twoje jądro. Komputer nie uruchomi się bez tego.
  • /var- Katalog, w którym usługi mogą przechowywać pliki. Podobnie jak pliki dziennika i skrzynki pocztowe
  • /etc - Pliki konfiguracji systemu
  • /usr- Nieistotne aplikacje użytkownika. (System uniksowy może uruchomić się bez / usr (w celu odzyskiwania), ale nie byłoby to zbyt zabawne. W starszych systemach jest to to samo co / home.)
  • /home- Katalogi domowe użytkownika. Zwykli użytkownicy mogą pisać tylko we własnym katalogu domowym.
  • zamiana (nie katalog) Zwykle jest to osobna partycja w systemie UNIX. Nie ma katalogu wymiany, chociaż można tworzyć pliki wymiany w systemie Linux.
wm_eddie
źródło
2
Powiedziałbym, że nawet dla komputera stacjonarnego / osobistego posiadanie / home na osobnej partycji jest dobrym pomysłem. W ten sposób odczuwasz mniej bólów głowy, jeśli zapełnisz swój katalog domowy.
George Marian
@George Nic nie stoi na przeszkodzie, aby utworzyć dowiązanie symboliczne do katalogu domowego na innym dysku. W mojej konfiguracji, aby umożliwić zgodność z systemem Windows, moją partycją domową jest NTFS i dowiązuję dowolne foldery do mojego folderu domowego. Chciałbym utworzyć dowiązanie symboliczne do całego folderu, ale chciałbym zachować ukryte pliki w ~ / osobno na wypadek, gdyby zdecydowałem się na nową instalację. Używanie zakodowanych ścieżek plików połączonych z oddzielnymi partycjami mogło być konieczne dwadzieścia lat temu, ale ograniczenia architektoniczne, które sprawiły, że były konieczne, nie istnieją dzisiaj.
Evan Plaice,
1
@evan jestem zdezorientowany. Czy odnosisz się do symlinkowania katalogów do twojego katalogu domowego lub symlinkowania twojego katalogu domowego gdzie indziej? Czym się to różni od ustawienia / home na inną partycję? (Uwaga: „inna partycja” może znajdować się na zupełnie innym dysku). Miałem na myśli ochronę przed domyślnym zachowaniem (np. Pobieranie plików umieszczanych w podkatalogu katalogu domowego) przez przypadkowe zapełnienie partycji głównej.
George Marian,
@George Both i cokolwiek wolisz. Chodzi mi o to, dlaczego ustawiać na stałe linki podczas instalacji systemu, skoro możesz po prostu wrzucić kilka dowiązań symbolicznych po tym, aby zrobić to samo i można je łatwo zmienić w dowolnym momencie?
Evan Plaice,
@evan A fair point. Po instalacji nigdy nie miałem dużo szczęścia z takimi rzeczami, więc zawsze wolałem robić to „domyślnie”.
George Marian,
1

Partycja wymiany służy również do hibernacji. Jeśli chcesz umieścić laptopa lub komputer w stanie hibernacji, potrzebujesz partycji wymiany lub pliku wymiany, który jest wystarczająco duży, aby pomieścić działający system operacyjny i otwarte aplikacje.

Często sugeruje się, aby partycja wymiany była tego samego rozmiaru co pamięć RAM.

jr0cket
źródło
1

Podczas instalacji możesz tworzyć osobne partycje. /homepartycja będzie oznaczać każdym zainstalowaniu Ubuntu osobiste ustawienia użytkownika pozostaną.

/- jest korzeniem.
/var- (wyjaśnione powyżej)
/dev- zawiera „linki” do zarejestrowanych urządzeń. tzn. / dev / Video0 to karta przechwytująca ...

/bin /sbin - zawierać aplikacje

lepiej jeszcze Wikipedia ma świetną stronę http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard

Największą rzeczą, jaką znajduję, jest posiadanie drugiej partycji (największej) na twoje rzeczy i jak powiedziałem za każdym razem, gdy instalujesz lub aktualizujesz. Wybierz tę partycję ponownie i upewnij się, że odznaczyłeś pole formatu, a następnie wszystko wróciło. Nawet twoja tapeta!

MJ
źródło
1

Cóż, swapużywana jest przestrzeń wymiany. To jest jak plik stronicowania w systemie Windows. To trochę uzupełnia pamięć RAM.

/home służy do danych użytkownika, takich jak Moje dokumenty w systemie Windows,

/usr jest tam, gdzie większość programów jest bardzo podobna do C: \ Windows i

/var zawiera dane, które są zmieniane, gdy system działa normalnie.

Jeśli chodzi o to, dlaczego znajdują się na osobnych partycjach, myślę, że dzieje się tak głównie wtedy, gdy twój system operacyjny się psuje, a dane się z nim nie pogarszają. Ale tak naprawdę nie jestem pewien.

Cody Harlow
źródło
Różnic między /varvs /etc?
Pacerier
1

Historycznie uważa się, że najlepszą praktyką jest posiadanie /home, swapa inne krytyczne węzły znajdują się na różnych partycjach, różnych dyskach fizycznych, a nawet różnych maszynach fizycznych. Chociaż dla wygody (lepszej lub gorszej) oraz wraz z pojawieniem się tanich zewnętrznych lub opartych na chmurze kopii zapasowych, wszystko teraz znajduje się na jednej dużej partycji, a Ty po prostu wykonujesz kopię zapasową swoich rzeczy w innym miejscu.

/usr, oznacza Unix System Resources

/sbin, Binaria systemowe

Wbrew powszechnym przekonaniom /etcnie oznacza et cetera . Zamiast tego oznacza rozszerzoną skrzynię narzędzi . Ale w przeciwieństwie do popularnych przekonań wciąż jest to kwestia debaty.

Oto więcej informacji na temat tych folderów i ich organizacji.

Eric Carvalho
źródło
0

Zamiana powinna być przechowywana osobno, jeśli z niej korzystasz. I użyj do tego 1,5-2,0 x swojego rozmiaru suwaka.

Resztę można przechowywać razem i nie ma to większego znaczenia (Linux / Unix nie jest systemem Windows i ma hierarchię pojedynczego katalogu, niezależnie od tego, czy katalog / var jest oddzielną partycją, czy nie, wygląda dokładnie tak samo). Głównym celem partycjonowania jest użycie różnych systemów plików i podzielenie możliwych scenariuszy „zapełnienia dysku” (tak na przykład, jeśli / var zapełni dzienniki jakiejś szalonej aplikacji, / home stil działa)

Na marginesie, zdecydowanie zalecam użycie LVM, który pozwala tworzyć dowolną liczbę dowolnie zmienianych i usuwalnych partycji, a nawet dodawać nowe dyski twarde do rodziny. Mimo to wymaga nauki niektórych wierszy poleceń, więc nie jest to dla początkujących.

Mekk
źródło