Przejdź do głównej zawartości

Linux RHCSA cz.18 - System plików - Montowanie systemu plików

Jeżeli mamy utworzone partycje oraz nadaliśmy im odpowiednie systemy plików możemy zacząć ich używać. Zanim jednak rozpoczniemy użytkowanie nowego systemu plików, trzeba podłączyć go  do istniejącej hierarchii  katalogów co wykonuje się poleceniem "mount". Możemy podmontować system plików pod dowolny katalog, który stanie się jego punktem montowania. Jeżeli zamontujemy system plików pod katalog, który nie jest pusty, wszystko co jest w nim zawarte stanie się niedostępne. Najlepiej utworzyć nowy katalog na potrzeby zamontowania nowych zasobów. W temacie związanym z montowaniem systemów plików mamy dwie komendy: 
  • mount          - Zamontowanie systemu plików 
  • umount        - Od montowanie systemu plików
W poprzednich zadaniach związanych z tym kursem tworzyliśmy już kilka partycji wraz z partycją swap. Zamontujmy jeden z systemów plików pod katalog. 

Krok 1 - Punktem wyjścia jest katalog /opt w którym utworzymy punkty montowania 

# cd /opt
# mkdir company_data
# mkdir backup 

Po utworzeniu katalogów staną się one punktami montowania dla partycji /dev/hdb1 oraz /dev/hdc1

Składania polecenia mount : # mount [opcje] urządzenie punkt_montowania

Opcje polecenia mount: 
  • -r                   - Montowanie w trybie odczytu
  • -w                  - Montowanie w trybie zapis/odczyt (ustawienie domyślne) 
  • -L LABEL   - Montowanie z nadaniem etykiety
  • -v                   - Montowanie z wyświetlaniem informacji o procesie montażu
Krok 2 - Zamontowanie systemów plików pod katalogi :

# mount /dev/hdb1 /opt/company_data
# mount /dev/hdc1 /opt/backup

Podczas montowania nie istnieją żadne przełączniki wskazujące na typ systemu plików, ponieważ jest on wykrywany automatycznie. Domyślnie system plików zostaje zamontowany z możliwością zapisu i odczytu, i jest to wskazane dla większości typów systemów plików. Istnieją również inne możliwości takie jak : 
  • rw          - montowanie w trybie odczyt/zapis
  • suid        - Umożliwienie dostępu dla określonych programów oznaczonych nr uid i gid
  • dev         - Interpretacja plików urządzeń w systemie plików
  • exec        - Umożliwienie wykonywania plików (skryptów) 
  • auto        - Montowanie systemu plików kiedy definiowana jest opcja -a 
  • nouser    - Uniemożliwienie użytkownikom montowania i odmontowywania systemów plików
  • async      - Zezwoleine wszystkim systemom plików I/O asynchronicznie
Po zamontowaniu systemu plików użytkuję się go jak zwykły katalog. Usunięcie i zdemontowanie systemu plików jest troszeczkę bardziej złożone, ponieważ użytkownicy mogą go w danej chwili używać do pracy. Można użyć polecenia "fuser" oraz "lsof" w celu sprawdzenia otwartych plików przez danych użytkowników i jeżeli pliki nie są używane w lokalizacji do zdemontowania możemy próbować ją zdemontować. 

Składnia polecenia unmount: # umount

Opcje : 
  •  - f     - wymuś odmontowanie 
  • - v     - Wyświetlaj bieżące informacje


Krok 3 - Zdemontowanie systemu plików.

# umount /opt/backup
umount: /opt/backup: device is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))

Jak widać odmontowanie nie jest możliwe w wyniku tego, iż urządzenie jest zajęte. Aby sprawdzić kto powoduję zajętość naszego systemu plików wykorzystamy polecenie "fuser". 

Składnia polecenia fuser: # fuser [opcje] pinkt_montowania | system plików

Opcje: 
  • -c        - Sprawdzenie montowania systemu plików
  • -k       - Zabicie procesów używających system plików
  • -m      - Pokazanie wszystkich procesów używających dany system plików
  • -u       - Pokazanie Id użytkowników
  • -v        - Wyświetlanie komunikatów na temat wykonywanych operacji


Krok 4 - Sprawdzenie kto używa danego systemu plików

# fuser -cu /dev/hdc1
/opt/backup: 2337c(root)

By poznać więcej informacji na temat użycia systemu plików możemy posłużyć się poleceniem "lsof



Krok 5 - Zobacz jakie pliki są otwarte na danym systemie plików:

# lsof /dev/hdc1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 2337 root cwd DIR 22,1 4096 2 /opt/backup
lsof 4815 root cwd DIR 22,1 4096 2 /opt/backup
lsof 4816 root cwd DIR 22,1 4096 2 /opt/backup

Pozwoli to ustalenie użytkowników pracujących na danych plikach i skontaktowanie się z nimi by zapisali i zakończyli swoje działania na czas operacji z montowaniem systemów plików.

Krok 6 - Zabicie otwartych połączeń 

# fuser -ck /opt/backup

Krok 7 - Bezpieczne odmontowanie systemu plików: 

# umount /opt/backup

UWAGA 
Jeżeli wykonamy polecenie zabijające wszystkie otworzone pliki na jakich pracują użytkownicy dane jakie wprowadzone zostały przed ostatnim zapisaniem zostaną utracone. Dobrą praktyką jest powiadomienie użytkowników o pracach na systemie plików by mogli zachować bezpiecznie swoje dane. 

Montowanie i odmontowywanie systemów plików mamy za sobą i wiemy już jak takie operacje wykonywać. Jest jednak jeszcze coś czego należy się nauczyć. Jeżeli środowisko zostanie zrestartowane lub wyłączone i uruchomione ponownie wszystkie montowane przez nas systemy plików nie będą już widoczne w systemie. Dzieje się tak dlatego, iż efekty wywołane przez polecenia nie są trwałe i nie zachowują swoich wartości po restarcie środowiska. Zaraz opowiem w jaki sposób sobie z tym poradzić. W systemie istnieją dwa pliki konfiguracyjne odpowiadające za to co jest a co nie jest zamontowywane w raz ze startem systemu. 

/etc/mtab       - Zawiera listę wszystkich aktualnie używanych i zamontowanych systemów plików 
/etc/fstab       - Lista systemów plików jakie mają być montowane w momencie uruchomienia systemu

Na początek zobaczymy plik /etc/mtab. Za każdym razem jak montujemy lub odmontujemy system plików ten plik zostaje nadpisany aktualnymi wartościami na temat zamontowanych systemów plików. 

# cat /etc/mtab
/dev/mapper/vg_rhel01-lv_root / ext4 rw 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
devpts /dev/pts devpts rw,gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs rw,rootcontext=”system_u:object_r:tmpfs_t:s0”
0 0
/dev/hda1 /boot ext4 rw 0 0
none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw 0 0
/dev/hdb1 /opt/company_data ext4 rw 0 0
/dev/hdc1 /opt/backup ext3 rw 0 0

Możemy przefiltrować jego zawartość w poszukiwaniu podmontowanego zasobu "backup

# cat /etc/mtab | grep backup
/dev/hdc1 /opt/backup ext3 rw 0 0

Ponieważ niezbyt wygodnie jest każdorazowo przeszukiwać plik od nowa w poszukiwaniu zamontowanych systemów plików lepiej jest wydać polecenie "mount" bez żadnych przełączników w wyniku czego dowiemy się o aktualnie istniejących systemach plików. 

# mount
/dev/mapper/vg_rhel01-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs
(rw,rootcontext=”system_u:object_r:tmpfs_t:s0”)
/dev/hda1 on /boot type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/hdb1 on /opt/company_data type ext4 (rw)
/dev/hdc1 on /opt/backup type ext3 (rw)

Teraz zajmiemy się drugim plikiem /etc/fstab by poznać jego budowę. 

Struktura pliku /etc/fstab

<device> <mount point> <file system type> <mount options>
<write data during shutdown> <check sequence>

# cat /etc/fstab
/dev/mapper/vg_rhel01-lv_root / ext4 defaults 1 1
UUID=5485df3d-7b48-42bf-b3dd-3dd84c6560fb /boot ext4 defaults 1 2
/dev/mapper/vg_rhel01-lv_swap swap swap defaults 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0

Pierwsze trzy pola nie wymagają komentarza ponieważ pracujemy z tym już jakiś czas. W ostatnich trzech natomiast są widoczne dodatkowe opcje. Poniżej znana już lista:
  • rw          - montowanie w trybie odczyt/zapis
  • suid        - Umożliwienie dostępu dla określonych programów oznaczonych nr uid i gid
  • dev         - Interpretacja plików urządzeń w systemie plików
  • exec        - Umożliwienie wykonywania plików (skryptów) 
  • auto        - Montowanie systemu plików kiedy definiowana jest opcja -a 
  • nouser    - Uniemożliwienie użytkownikom montowania i odmontowywania systemów plików
  • async      - Zezwoleine wszystkim systemom plików I/O asynchronicznie
Modyfikacja pliku /etc/fstab 

Otwieramy plik do edycji : # vi /etc/fstab i dodajemy dodatkową linie : 

/dev/hdc1 /opt/backup ext3 defaults 0 0

Skoro już edytujemy plik odpowiedzialny z montowanie systemów plików przy starcie środowiska nie można również zapomnieć by dodać partycję SWAP 

Dodajemy kolejny wpis :    /dev/hdc2 swap swap defaults 0 0

Po dokonanych modyfikacjach zapisujemy plik. Nie ma również potrzeby wykonywania restartu by przetestować wprowadzone zmiany. Wystarczy zastosować polecenie "mount -a" by przemontować na nowo wszystkie systemy plików jakie są skonfigurowane w pliku /etc/fstab:

# mount -a 

Teraz wszystkie potrzebne systemy plików są zamontowane i gotowe do użycia. 

Polecenie mount jest mocno powiązane z dyskami twardymi jakie istnieją w systemie jednak ma ono również zastosowanie dla innych systemów plików np.: nośników wymiennych CD-ROM: 

# mount -o loop /dev/cd-rom /media

Komentarze

Najczęściej czytane w tym miesiącu

50 popularnych pytań dotyczących systemu Linux zadawanych na rozmowach kwalifikacyjnych. (Pytania & Odpowiedzi)

Jak dodać użytkownika w systemie Windows z poziomu konsoli CMD? (net user, net localgroup)

Generowanie testowych plików o określonej wielkości