[LinuxFocus-icon]
<--  | Mapa Serwisu  | Indeks  | Szukaj

Nowości | Archiwum | Linki | O Nas
Ten dokument jest dostępny w następujących językach: English  Castellano  ChineseGB  Deutsch  Francais  Italiano  Indonesian  Russian  Turkce  Polish  

[Photo of the Author]
Guido Socher (homepage)

O Autorze:

Guido lubi Linuxa ze względu na społeczność. Jest to ogromny projekt i jakimś cudem różni ludzie z całego świata pracują na rzecz tego samego: aby stawał się on z każdym dniem coraz lepszy.
Linux niestety jest tak wielki, że przyciąga również złych typków, którzy chcą jedynie wyciągnąc z tego jak najwięcej korzyści nie dając nic w zamian. Uważaj! Często są to małe pro-linuksowe firmy z poza społeczności, które tylko polują na okazje.



Tłumaczenie na język polski:
Mirosław Majka <mirek/at/ozimek.net.pl>

Zawartość:

 

Tajemnica punktów montowania

mount

Notka:

Ten artykuł wyjaśnia koncepcję punktów montowania. Mam nadzieję, że będzie również godny zainteresowania tych czytelników, którzy nie są nowicjuszami w środowisku Linuxa.

_________________ _________________ _________________

 

Wprowadzenie

Na początku wyjaśnię sposób w jaki montuje się systemy plików a następnie przejdę do bardziej zaawansowanych zagadnień. Jeśli czujesz, że jesteś już linuksowym ekspertem, możesz zacząć lekturę tego artykułu kilka akapitów niżej.  

Jak to działa

W windowsie do dzisiaj pokutuje problem taki, że dodanie nowego napędu wymiesza całą konwencję nazwenictwa. Co do tej pory było napędem D: nagle jest napędem E:, co użytkowników jak i oprogramowanie wprowadza w błąd.

W Uniksie nigdy nie zetkniesz się z tego typu problemem ponieważ wszystkie dyski fizyczne są wstawiane do drzewa katalogów. Można to zaobserwować wpisując "mount" lub "df".
# df
Filesystem 1K-blocks    Used Available Use% Mounted on
/dev/hda1    9070728 4701180   3908768  55% /
/dev/hda3   24950428  683412  22999584   3% /home
none          257236       0    257236   0% /dev/shm

# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda3 on /home type ext3 (rw)
Mamy tutaj dwie partycje dyskowe, z których jedna zawiera wszystko poza "/home". Jest to główna partycja "/" i jest ona podłączona do hda1. hda1 jest pierwszą partycją na pierwszym dysku IDE (hda). Trzecia partycja (hda3) na tym samym dysku jest zamontowana na "/home". Zatem, jeśli przejdziesz do "/home", masz dostęp do plików z hda3. Nigdy nie musisz się martwić czy jest to D: czy E:, albo cokolwiek innego. Jest to po prostu struktura katalogów i zawsze jest stała.  

Problem zajętego systemu plików

Linux buforuje operacje wejścia i wyjścia systemu plików. Można to zauważyć, jeśli posiadasz dysk USB w wersji 1.1 i chcesz uzyskać dostęp do dużego pliku. Za pierwszym razem wydaje się to wolne ale za drugim, kiedy otwierasz ten sam plik, jest to już znacznie szybsze a dioda na dysku już nie miga.

Z tego powodu nie możesz po prostu usunąć dysku, który jest w użyciu. Musisz go najpierw odmontować. Nie ma sprawy jeśli chodzi o dyski wewnętrzne ale może się to okazać problemem w przypadku napędów CD-ROM i dysków USB.

Jeśli na przykład zamontujesz kieszonkowy dysk USB-stick na "/mnt/usb" i przejdziesz do "cd /mnt/usb" wtedy powłoka Bash będzie kożystać z systemu plików tego dysku. Jeśli następnie spróbujesz zdemontować go z innego okna z powłoką, dostaniesz komunikat "System plików zajęty" i odmontowanie nie zadziała. Wystarczy wpisać "cd", żeby wydostać się z "/mnt/usb" i można wtedy odmontować dysk. Czasami problemem może się okazać to, że zapomnisz kto właśnie używa tego dysk i to, że jest tyle działających aplikacji, że trudnym staje się odnalezienie tego co właśnie blokuje odmontowanie.

Spytaj o to swój komputer!
# fuser -m -u /mnt/usb
/mnt/usb:   1347c(root)  1348c(guido)  1349c(guido)
To co zwróci polecenie "fuser" jest listą procesów korzystających z problematycznego systemu plików. Teraz możesz sprawdzić komendą "ps auxw" co to jest albo po prostu to zabić poleceniem "kill". Po tej operacji polecenie "umount" powinno zadziałać.  

Ale w windows tak można zrobić!?

Czemu po prostu nie wyciągnąć dysk z portu USB? Cóż, stare komputery z DOS-em lub Windows 3.1 na pokładzie można było po prostu odciąć od prądu. Nie potrzeba było żadnego zamykania systemu. W tamtych czasach niektórzy moi przyjaciele narzekali na to, że Linuxa trzeba najpierw zamknąć przed wyłączeniem zaliania. Niedługo potem pojawił się Windows 95 i narzekanie umilkło ponieważ każdy się przyzwyczaił do uprzedniego zamykania systemu.  

W Linuksie też!

Isnieją roziązania dla Linuxa, dzięki którym również można po prostu wyjąć wtyczkę z portu (np. portu USB). Dystrybucja Mandrake Linux posiada program supermount i daje on takie same rezultaty (czy też powoduje te same problemy) jak Window. Ale nie polecam go, ponieważ może powodować niestabilność i prowadzić do utraty plików.

Lepiej jest skorzystać z mtools (http://mtools.linux.lu/). Mtools jest zestawem poleceniem do uzyskiwania dostępu do dyskietek, dysków USB... właściwie każdego napędu z systemem plików FAT i na dodatek nie trzeba wcale montować tego systemu plików.

Oto sposób:
  1. Otwórz plik "/etc/mtools.conf" i dodaj natępującą linijkę
    drive u: file="/dev/sda1" # lub sda4; niektóre dyski USB mają czwartą partycję
                              # ustawioną jako domyślną.
    


  2. Nie montuj przypadkiem "/dev/sda1"! Zamiast tego wpisz
    mdir u:
    aby zobaczyć co się znajduje na dysku "u:".

    mcopy * u:
    Wpisz to polecenie aby skopiować wszystkie pliki z aktualnego katalogu na dysk USB.

    mcopy u:\* .
    Wpisz to aby skopiować całą zawartość tego dysku ("u:") do aktualnego katalogu (zwróć uwagę na odwrócony slash "\" przed dziką kartą (*)).

Bardzo proste w użyciu.  

Pozwolić każdemu na montowanie systemu plików

Z regóły jedynie użytkownik root może montować systemy plików. Z pewnością chciał(a)byś , aby każdy mógł montować takie użądzenia jak CD-ROM'y czy dyski wymiennie USB. Aby tego dokonać, wystarczy dodać taką oto linijkę do pliku "/etc/fstab":
# urządzenie   punkt montowania    typ systemu plików   opcje
/dev/sda1      /mnt/usb            auto                 noauto,user 0 0
Oznacza ona, że urządzenie sda1 (czyli pierwsza partycja pierwszego dysku SCSI, dyski wymienne USB są podmapowane jako dyski SCSI) nie będzie montowane przy starcie systemu (opcja "noauto") i, że będzie mogło być montowane/odmontowywane przez każdego (opcja "user"). Pole z typem systemu plików jest ustawione na opcję "auto", czyli możesz zamontować dysk USB sformatowany systemem plików VFAT lub ext2 a właściwy zostanie wykryty automatycznie.  

Laptopy i NFS

Sieciowy system plików, NFS, jest świetnym wynalazkiem jeśli chodzi o przechowywanie katalogów domowych wielu użytkowników w jednym punkcie jako kopii zapasowych. Wystarczyu podmontować katalogi z centralnego serwera a wszyscy będą mieli do nich dostęp ze swoich komputeró w sieci. Wszędzie te same ustawienia i dane. Na prawdę dobre roziwązanie.

Ale w jaki sposób obsłużyć mobilnych użytkowników z ich laptopami? (bez kopii zapasowych?)

Z chwilą kiedy nie jesteś w sieci lokalnej, Twój ktalog domowy znika. Jednym z rozwiązań jest nieustanne kopiowanie wszystkich danych (przy pomocy rsync) ale to może prowadzić do bałaganu jeśli nie jesteś bardzo zdyscyplinowaną osobą. Często też nie jest konieczny cały katalog domowy. Sądzę, że dobrym rozwiązaniem byłoby mieć nieco miniejszy drugi katalog domowy z ustawieniami i danymi potrzebnymi podczas podróży.

Kiedy montujesz system plików (jakikolwiek - dyskowy czy też NFS) w nie-pustym katalogu, zawartość tego katalogu staje się niewidzialna a to co widać to zawartość zamontowanego systemu plików.

Oto rozwiązanie: Stwórz punkt montowania dla katalogów domowych (/home) i włącz dla niego automatyczne montowanie różnych katalogów domowych kiedy komputer jest obecny w sieci. Jednakże zanim cokolwiek zamontujesz stwórz miękkie dowiązanie dla użytkownika, który jest właścicielem laptopa, do katalogu off-line:
/home/guido -> ../home_nonet/guido
Kiedy użytkownik guido jest w sieci, będzie widział swój normalny katalog domowy, ponieważ dowiązanie jest przesłonięte. Kiedy jest w drodze, zobaczy "/home_nonet/guido" jako swój katalog domowy ("/home/guido").

Całkiem przystępne rozwiązanie.  

Podsumowanie

Zbudowanie abstrakcyjnej warstwy sprzętowej było od zawsze jednym z celów UNIX'a. Montowanie i odmontowywanie systemów plików i dysków było jednym ze sposobów na osiągnięcie tego. Jest to całkiem zaawansowany i nowoczesny pomysł pomimo tego, że UNIX jest znacznie starszy od wspołczesnych systemów operacyjnych zaprojektowanych dla komputerów PC.  

Dyskusja dotycząca tego artykułu

Komentarze do dyskusji:




Strona prowadzona przez redakcję LinuxFocus
© Guido Socher
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
tłumaczenie:
en --> -- : Guido Socher (homepage)
en --> pl: Mirosław Majka <mirek/at/ozimek.net.pl>

2004-11-01, generated by lfparser version 2.50