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.
System plików, z którego będzie korzystać UML można pobrać ze strony domowej projektu albo stworzyć go samodzielne.
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
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
chroot katalog_z_host_fs