<-- Poprzedni   Spis treści   Następny -->

Systemy plików


Na User Mode Linux składają się - podobnie jak z prawdziwym systemem operacyjnym - dwie główne części:
Jądro systemu, które zarządza zasobami, zawiera sterowniki urządzeń, jest warstwą pośrednią między sprzętem a oprogramowaniem.
System plików, nie mniej istotny, bo bez niego jądro byłoby bezużyteczne (potrzebuje go, aby wystartować). Cały system plików UMLa jest przechowywany jest z reguły w jednym pliku na dysku systemu macierzystego i podawany jako parametr podczas uruchamiania UMLa. Jeżeli przy uruchamianiu nie zostanie podany żaden taki plik, wyszukiwany jest w katalogu domyślny plik o nazwie root_fs.


Skąd wziąć system plików?

System plików, z którego będzie korzystać UML można pobrać ze strony domowej projektu albo stworzyć go samodzielne.


Udostępnianie kolejnych systemów plików

UML startuje z takiego systemu plików, jaki ma zapamiętany w /dev/ubd0. Można jednak zapewnić możliwość korzystania z innych systemów plików, umieszczając je w /dev/ubdN. Odpowiada to tworzeniu nowych - wirtualnych dysków. w uruchomionym UMLu będzie montować te dyski i z nich korzystać. Co więcej, możemy stworzyć taki pusty dysk i sformatować go tak jak chcemy.

Należy stworzyć odpowiedni plik, który stanie się wirtualnym dyskiem. np. poleceniem:

 dd if=/dev/zero of=new_filesystem seek=1024 count=1 bs=1M

tworzymy plik o wielkości 1024 MB zawierający same sera - plik ten reprezentuje nowy dysk.

Uruchamiając UML należy dodać właśnie stworzony dysk do wirtualnego sprzętu wchodzącego w skład maszyny UML. (np. polecenie: ubd3=new_filesystem ).
Oczywiście należy zadbać, aby dodawany wirtualny dysk był przyporządkowany urządzeniu jeszcze niewykorzystywanemu.

Gdy uruchomimy UML będzie on posiadał urządzenie /dev/ubd/3 , które reprezentuje uprzednio dodany dysk. Teraz należy sformatować nowy dysk, np. komendą:

mkfs.ext2 /dev/ubd/3

I na koniec zamontować nowo utworzony wirtualny dysk:

mount /dev/ubd/3 /mnt


Korzystanie z macierzystego systemu plików

Chęć wymieniania danych między UMLem i host'em wydaje się być dość naturalna. Jak sobie z tym poradzić? Można oczywiście połączyc naszego UMLa z systemem macierzystym siecią (co jest opsiane w innej części prezentacji), albo też zamontowac sieciowy system plików - NFS, jednak jest narzedzie, które lepiej nadaje się do tego celu. Jest to mianowicie hostfs , umożliwiający współdzielenie plików przez UMLa i jego system macierzysty. Aby uzyskać dostęp do macierzystego systemu plików należy go zamontowac :

mount none /katalog_w_ktorym_montujemy -t hostfs

Możemy uzyskac więcej. Chcąc nie tylko współdzielic system plików z gospodarzem, ale i móc uruchamiać programy dostępne w systemie macierzystym (nie kopiując bibliotek, których używa) wystarczy ze wpiszemy komendę:

chroot katalog_z_host_fs

Niestety, z naszego doświadczenia wynika, że (w tajemniczy dla nas sposób) część programów rzeczywiście jest wtedy dostępna, a część nie...