Co to jest plik fstab systemu Linux i jak to działa?
Opublikowany: 2022-01-29Jeśli używasz Linuksa, prawdopodobnie musiałeś zmienić niektóre opcje dla swoich systemów plików. Zapoznanie się z fstab może znacznie ułatwić cały proces i jest znacznie prostsze niż myślisz.
Co to jest Fstab?
Fstab to tabela systemu plików systemu operacyjnego. Jeśli chcesz przejrzeć systemy plików, zapoznaj się z naszym innym artykułem, HTG Wyjaśnia: Który system plików Linux należy wybrać? W dawnych czasach był to główny sposób automatycznego montowania plików przez system. W dzisiejszych czasach możesz podłączyć dowolny dysk USB i po prostu wyskoczy w Nautilusie, tak jak w Windows i Mac OS, ale kiedyś musiałeś ręcznie zamontować te dyski w określonym folderze za pomocą „ zamontować”. Dotyczyło to płyt DVD, CD, a nawet dyskietek (pamiętasz je?).
Wtedy jedyną alternatywą było poinformowanie komputera, że za każdym razem, gdy konkretne urządzenie zostało podłączone, powinno zostać automatycznie zamontowane w określonym miejscu. W tym miejscu pojawił się fstab i był niesamowity. Załóżmy, że zamieniłeś dyski twarde w kontrolerze IDE lub SCSI. Komputer może załadować systemy plików w innej kolejności, potencjalnie psując wszystko. Fstab jest skonfigurowany do wyszukiwania określonych systemów plików i montowania ich automatycznie w pożądany sposób za każdym razem, zapobiegając wystąpieniu niezliczonych katastrof.
Twój plik Fstab
Plik fstab znajduje się pod adresem:
/etc/fstab
Rzućmy okiem na mój plik fstab, dobrze?
Na pewno zobaczysz różnice, ale jeśli chcesz podążać za własnym fstab, po prostu wrzuć to polecenie do terminala:
Możesz także użyć gedit, jeśli nie czujesz się komfortowo z nano.
Oczywiste opcje
Zauważysz, że wszystkie wpisy zaczynają się od identyfikatorów UUID. Być może pamiętasz, że widziałeś to w jednym z naszych poprzednich artykułów, Jak wybrać schemat partycji dla komputera z systemem Linux, ale i tak wyjaśnimy to ponownie. Każdemu systemowi plików podczas formatowania przypisywany jest Universally Unique Identifier, który zabiera do grobu. Ponieważ nie można go zmienić, jest to idealny sposób na wybór systemów plików do montowania, zwłaszcza tych ważnych. Załóżmy, że twoja partycja /home znajduje się na drugim dysku twardym i przeniesiesz ją na zewnętrzny dysk twardy; fstab nadal znajdzie tę partycję i zamontuje ją poprawnie, unikając nieudanego rozruchu. Jeśli przełączysz się na (lub utkniesz przy użyciu) starej metody używania identyfikatorów urządzeń do wybierania partycji (tj. /dev/sda1), ta przewaga zniknie, ponieważ dyski twarde i partycje są liczone przez ich kontrolery, a zatem mogą się zmieniać.
Edycja: używanie identyfikatorów UUID w pliku fstab, choć wygodne dla większości użytkowników domowych, ma kilka poważnych zastrzeżeń. Nie działa to w przypadku korzystania z urządzeń „zmontowanych” lub „opartych na sieci”. Jeśli jesteś bardziej zaawansowanym użytkownikiem lub planujesz w przyszłości korzystać z oprogramowania RAID, lepiej nie używać identyfikatorów UUID.
Następna sekcja fstab, podobnie jak wszystkie kolejne, jest oddzielona spacją lub tabulatorem lub ich kombinacją. Tutaj znajdziesz punkt montowania. Jak widać, mam punkt montowania root (/), swap i dwa, które ręcznie dodałem do moich współdzielonych dysków sieciowych. Jeśli dodajesz wpis do fstab, musisz ręcznie utworzyć punkt montowania przed ponownym uruchomieniem komputera (a zmiany zaczną obowiązywać).
Następna jest sekcja, która identyfikuje typ systemu plików na partycji. Wiele z nich, takich jak ext2/3/4, ReiserFS, jFS itp., jest odczytywanych natywnie przez Linuksa. Twój konkretny system może nadal wymagać zainstalowania określonych pakietów, aby móc je czytać i pisać. Doskonałymi przykładami są moje partycje NTFS; widać, że używam sterownika ntfs-3g, aby uzyskać do nich dostęp.
Straszniejsze rzeczy
Kolejne kilka sekcji zwykle odstrasza nowicjuszy, ale tak naprawdę nie są one tak skomplikowane. Dostępnych jest duży zestaw opcji, ale jest kilka lub więcej bardzo popularnych. Przyjrzyjmy się im. (Opcja domyślna to pierwsza, a następnie alternatywy, ale ponieważ dystrybucje Linuksa mogą być bardzo różne, Twój przebieg może się różnić.)
- auto/noauto: Określ, czy partycja powinna być automatycznie montowana podczas rozruchu. Możesz zablokować montowanie określonych partycji podczas uruchamiania, używając „noauto”.
- exec/noexec: Określa, czy partycja może wykonywać pliki binarne. Jeśli masz partycję scratch, na której kompilujesz, byłoby to przydatne, a może jeśli masz /home w osobnym systemie plików. Jeśli martwisz się o bezpieczeństwo, zmień to na „noexec”.
- ro/rw: „ro” jest tylko do odczytu, a „rw” jest do odczytu i zapisu. Jeśli chcesz mieć możliwość zapisu do systemu plików jako użytkownik, a nie jako root, musisz mieć określone „rw”.
- synchronizacja/async: Ten jest interesujący. „synchronizacja” wymusza natychmiastowe zapisywanie po wykonaniu polecenia, co jest idealne w przypadku dyskietek (jak bardzo jesteś maniakiem?) i napędów USB, ale nie jest całkowicie konieczne w przypadku wewnętrznych dysków twardych. To, co robi „async”, polega na tym, że polecenie może być wykonywane przez upływ czasu, być może, gdy aktywność użytkownika ustanie i tym podobne. Czy kiedykolwiek pojawił się komunikat z pytaniem „poczekaj, aż zmiany są zapisywane na dysku?” Zwykle dlatego.
- nouser/user: Pozwala użytkownikowi na posiadanie uprawnień do montowania i odmontowywania. Ważną uwagą jest to, że „użytkownik” automatycznie implikuje „noexec”, więc jeśli potrzebujesz wykonać pliki binarne i nadal montować jako użytkownik, upewnij się, że jawnie użyłeś „exec” jako opcji.
Te opcje są oddzielone przecinkiem i bez spacji i można je umieścić w dowolnej kolejności. Jeśli nie masz pewności co do wartości domyślnych, możesz wyraźnie określić opcje. Rzeczy, które są montowane z miejsc tymczasowych (takich jak USB) nie będą podążać za tym podstawowym wzorcem, chyba że utworzyłeś dla nich wpisy (poprzez UUID) w fstab. Jest to wygodne, gdy chcesz, aby zewnętrzny dysk twardy był zawsze montowany w określony sposób, ponieważ nie ma to wpływu na normalne pendrive'y i tym podobne.

Widać, że moje dwa dyski mają włączone uprawnienia montowania użytkownika, włączony dostęp do odczytu i zapisu oraz włączone automatyczne montowanie. Nie kompiluję dużo oprogramowania, ale kiedy to robię, dodaję opcję „exec” na końcu listy.
Dumping i Fscking
Następna opcja to wartość binarna („0” dla fałszu i „1” dla prawdy) dla „zrzucania”. Jest to dość przestarzała metoda tworzenia kopii zapasowych w przypadku awarii systemu. Powinieneś zostawić to jako „0”.
Ostatnia opcja to wartość liczbowa „zaliczenia”. To mówi systemowi kolejność, w jakiej ma fsck (wymawiaj to jak chcesz) lub przeprowadzaj kontrolę systemu plików. Jeśli dysk ma opcję „0”, zostanie pominięty, podobnie jak moje dyski w formacie NTFS. Główny system plików powinien zawsze mieć wartość „1”, a inne systemy plików mogą przejść później. Działa to najlepiej w przypadku księgowania systemów plików, takich jak ext3/4 i ReiserFS. Starsze systemy plików, takie jak FAT16/32 i ext2 mogą trochę potrwać, więc lepiej wyłączyć ich fscking i robić to okresowo samemu.
Teraz, gdy już wiesz, co robisz, możesz zaszaleć z automatycznym montażem i tym podobne. Jest to bardzo wygodne, gdy masz mnóstwo partycji, którymi trzeba zarządzać. Zawsze pamiętaj o zrobieniu kopii zapasowej na wypadek, gdyby coś poszło nie tak, ale baw się dobrze i pamiętaj, aby zostawić swoje doświadczenia w komentarzach!
Polecenia Linuksa | ||
Pliki | tar · pv · kot · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · dysk testowy · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · ogon · stat · ls · fstab · echo · mniej · chgrp · chown · rev · wygląd · stringi · typ · zmiana nazwy · zip · rozpakuj · montuj · umount · zainstaluj · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konwertuj · rclone · shred · srm | |
Procesy | alias · ekran · top · ładne · renice · postęp · strace · systemd · tmux · chsh · historia · w · wsad · free · co · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · ściana · tak · kill · sen · sudo · su · czas · groupadd · usermod · grupy · lshw · zamknij · restart · halt · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Sieć | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
POWIĄZANE: Najlepsze laptopy z systemem Linux dla programistów i entuzjastów