Zrozumienie koncepcji systemu plików, a szczególnie struktury katalogów i związanych z tym pojęć, pozwoli Ci się stać dobrym administratorem.
Co to jest plik?
Plik jest to zestaw informacji przechowywanych na dysku pod określoną nazwą, albo urządzenie, które może przechowywać informacje (napęd CD/DVD, napęd dyskietek, pamięć taśmowa itp). Mogą to być pliki muzyczne mp3, pliki tekstowe, programy, zdjęcia itd.
Nazwy plików w Linuksie mogą mieć maksymalnie 256 znaków, mogą to być małe i duże litery, które są rozpoznawalne, dlatego dla wygody lepiej jest nazywać pliki małymi literami.
Co to jest katalog?
Katalog jest to zestaw plików.. Są dwa rodzje katalogów:
- Katalog główny-dokładnie mówiąc jest tylko jeden katalog główny, który jest oznaczony / (ukośnik). Jest to korzeń całego systemu plików i nie może być usunięty.
- Podkatalog jest katalog umieszczony poniżej katalogu głównego, który może być tworzony i modyfikowany przez użytkownika.
Unix/Linux obsługuje wiele systemów plików
- Ext2 - To jest system plików podobny do Unix. Ma koncepcje bloków, węzłów i katalogów
- Ext3 - Jest Ext2 rozszerzony o księgowanie. Księgowanie umożliwia szybkie odzyskiwanie systemu plików. Obsługa POSIX ACL (Access Control Lists)
- Ext4 - Następca ext3, obecnie jeden z najpopularniejszych systemów plików dla Linuksa
- ReiserFS - Bardzo szybki i stabilny system plików, szczególnie dobrze radzi sobie z dużą liczbą małych plików
- Isofs (iso9660) - Używany przez CDROM systemu plików
- Procf s- System plików proc działa jako interfejs do wewnętrznych struktur danych w jądrze. Może być używany w celu uzyskania informacji na temat systemu i zmienić niektóre parametry jądra w czasie wykonywania za pomocą komendy sysctl.
# cat /proc/cpuinfo
- NTFS - System plików stosowany w systemach Windows
System plików Linuksa jest to kolekcja plików i katalogów zapisanych na dysku. Każdy system plików jest przechowywany na oddzielnej partycji dysku. To kilka z nich:
- / - Specjalny system plików, który zawiera pliki w kilka katalogów, w tym katalogu / dev, / sbin, / etc tmp
- / usr - zawiera programy użytkowe
- / var - przechowuje pliki logów, maile i inne dane
- / tmp - zawiera pliki tymczasowe
- /home - zawiera katalogi domowe użytkowników
Bloki wykorzystywane są do dwóch różnych celów:
- Większość bloków przechowuje dane użytkownika o plikach
- Niektóre z bloków w każdym systemie plików przechowują metadane.
Superblok
Każdy system plików (Ext4, ReiserFS itd) ma superblock, który zawiera informacje jak:
- Typ systemu plików
- Rozmiar
- Status
- Informacje o innych strukturach metadanych
# dumpe2fs /dev/hda3 | grep -i superblock
Wynik:
Primary superblock at 0, Group descriptors at 1-1 Backup superblock at 32768, Group descriptors at 32769-32769 Backup superblock at 98304, Group descriptors at 98305-98305 Backup superblock at 163840, Group descriptors at 163841-163841 Backup superblock at 229376, Group descriptors at 229377-229377 Backup superblock at 294912, Group descriptors at 294913-294913
Błędy systemu plików Unix/Linux
Kiedy używamy terminu awaria systemu plików mamy na myśli uszkodzenie struktury danych systemu plików, takich jak inode, katalogi czy superblok. Może to być spowodowane przez jeden z następujących względów:
- Błędy administratorów Linuksa
- Błędne działające sterowniki dysku
- Awarie zasilania
- Błędy jądra, dlatego na produkcyjnym systemie należy używać stabilnego jądra
- System plików odmówi zamontowania
- Cały system się zawiesza
- Nawet jeżeli system plików zostanie prawidłowo zamontowany, użytkownicy mogą zauważyć dziwne zachowanie systemu takie jak samoczynne restarty, bełkot znaków w listowaniu katalogu itp.
# e2fsck -f /dev/sda3
opcja -f
Wymusza sprawdzanie, nawet jeśli system plików wydaje się czysty.
Należy najpierw odmontowć partycję /dev/sda3.
Pamiętaj, że jeśli superblok nie zostanie znaleziony (bo został uszkodzony), to e2fsck zakończy działanie z błędem krytycznym. Jednakże
Linux utrzymuje wiele zapasowych kopii superbloku w każdym systemie
plików, więc można użyć opcji -b {} superblok alternatywny, aby pozbyć
się tego problemu. Położenie kopii zapasowej superbloku zależne jest od rozmiaru bloku w danym systemie plików:- Dla systemów plików o rozmiarze bloku 1k, kopia zapasowa superbloku można znaleźć w bloku 8193
- W systemach plików o rozmiarze bloku 2k, w bloku 16384
- Dla bloku 4k, w bloku 32768
# mke2fs -n /dev/sda3
albo
# dumpe2fs /dev/sda3|grep -i superblock
Aby naprawić system plików przez zapasowy superblok użyj polecenia w następujący sposób: # e2fsck -f -b 8193 /dev/sda3
Jednakże zalecane jest zrobienie kopii zapasowej przed uruchomieniem fsck. żeby wykonać kopię zapasową wydaj polecenie:
# dd if=/dev/sda3 of=/disk2/backup-sda2.img
Zrozumienie węzłów systemów Unix/LinuxInode (index node) jest podstawowym pojęciem systemu plików w systemach Linux i UNIX. Każdy obiekt w systemie plików jest reprezentowany przez węzeł. Ale co to są obiekty? Spróbujmy to zrozumieć w prostych słowach. Każdy plik w Linuksie (i UNIX) ma następujące atrybuty:
- Typ pliku> (plik wykonywalny, blok specjalny itp.)
- Uprawnienia (odczyt, zapis, itp.)
- Właściciel pliku
- Grupa
- Wielkość pliku
- Czas dostępu do pliku, zmiany i modyfikacje
- Cas kasowania pliku
- Ilość linków (soft / hard)
- Rozszerzone atrybuty jak otworzyć tylko albo usunąć tylko, dotyczy roota
- Access Control List (ACL)
Definicja inode
Inode to struktura danych na tradycyjnym stylu uniksowym systemie plików takich jak ReiserFS lub ext3. Węzeł przechowuje podstawowe informacje o pliku regularnego, katalogu lub innego obiektu systemu plików.
Jak sprawdzić numer i-węzła pliku?
Można użyć polecenia ls-i, aby zobaczyć numer i-węzła pliku
$ ls -i /etc/passwd
Przykładowe dane wyjściowe
32820 / etc / passwd
Można również użyć polecenia stat, aby dowiedzieć się numer i-węzła i jego atrybutów:
File: `/etc/passwd' Size: 1988 Blocks: 8 IO Block: 4096 regular file Device: 341h/833d Inode: 32820 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2005-11-10 01:26:01.000000000 +0530 Modify: 2005-10-27 13:26:56.000000000 +0530 Change: 2005-10-27 13:26:56.000000000 +0530
Ten komentarz został usunięty przez autora.
OdpowiedzUsuńAbsolutne podstawy jeśli chodzi o administrowanie systemami Linux. No ale od czegoś w końcu trzeba zacząć. Gdy ktoś ma w planach tworzyć aplikacje użytkowe jak https://craftware.pl to z pewnością takie rzeczy jak praca w Linuxie musi mieć opanowane perfekcyjnie.
OdpowiedzUsuńJeżeli chodzi o rozwiązania informatyczne to ja jestem ich wielkim zwolennikiem i korzystam jeśli tylko mogę. Dlatego w firmie gdzie pracuję często stawiamy na systemy informatyczne https://www.connecto.pl/system-informatyczny-potrzebny-firmie/ które po prostu ułatwiają nam codzienną pracę.
OdpowiedzUsuńFajny artykuł. Pozdrawiam serdecznie.
OdpowiedzUsuń