Sciągnąć źródła jądra linuxa (np.linux-2.4.27.tar.bz2 z ftp.icm.edu.pl/pub/linux/kernel/v2.4), UML działa na jądrach nowszych niż 2.2.15.
Ze strony projetu (http://user-mode-linux.sourceforge.net) ściągnąć:
system plików (np root_fs_slack8.1.bz2)
odpowiednią łatkę na jądro (łatka musi mieć ten sam numer co jądro! z jądrem 2.4.27 działa uml-patch-2.4.27-1.bz2 )
UML utilities (narzędzia do zarządzania UML)
Utworzyć katalog w którym będzie kompilowany UML: host% mkdir ~/uml
Skopiować i rozpakować ściagnięte źródła linuxa i system plikow w utworzonym katalogu: host% cp linux-2.4.27.tar.bz2 ~/uml host% cp root_fs_slack8.1.bz2 ~/uml host% tar -xjvf ~/uml/linux-2.4.27.tar.bz2 host% bunzip2 ~/uml/root_fs_slack8.1.bz2
Skopiować łatkę do katalogu z rozpakowanym źródłem: host% cp uml-patch-2.4.27-1.bz2 ~/uml/linux-2.4.27/ host% cd ~/uml host% bzcat uml-patch-2.4.27-1.bz2 | patch -p1
Skonfigurować jądro:
host% make xconfig ARCH=um
uwaga1: Zamiast xconfig do konfiguracji można użyć config lub menuconfig - co kto lubi.
uwaga2: Standardowa konfiguracja wystarcza dla większości zastosowań.
uwaga3: Aby odróżnić operacje na zwykłym jądrze od operacji na jadrze UML w czasie kompilacji jądra używa się komend z parametrem ARCH=um.
Skompilować jądro: host% make linux ARCH=um
w katalogu ze źródłem jądra powinien zostać utworzony plik linux
Skompilowane jądro jest dosyć duże (około 35 mega) jest tak dlatego, gdyż wynikowy plik zawiera nagłówki debuggera. Jeżeli chcemy poznać prawdziwą wielkość jądra, oszczędzić troche miejsca na dysku i uniemożliwić sobie debuggowanie jądra możemy użyć polecenia host% strip linux
Po jego użyciu jądro powinno mieć ok 1.5 mega.
Uruchomienie UML: host% ./linux ubd0=../root_fs_slack8.1
uwaga: Parametr ubd0=... oznacza ścieżkę do systemu plików, uml uruchomiony bez tego parametru będzie korzystał z pliku root_fs z katalogu bieżącego (o ile taki plik istnieje).
Standardowo w tak utworzonym linuxie mamy założone konto root'a (login:root, pass:root) i konto użytkownika (login:user, pass:user).
Alternatywna instalacja UML:
Na stronie projektu dostępny jest także pakiet rpm z UML. Instalacja przebiega standardowo: