Poprzedni temat Spis treści Następny temat

Instalacja UML

  1. 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.
  2. 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)
  3. Utworzyć katalog w którym będzie kompilowany UML:
    host% mkdir ~/uml
  4. 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
  5. 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
  6. 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.
  7. Skompilować jądro:
    host% make linux ARCH=um
    w katalogu ze źródłem jądra powinien zostać utworzony plik linux
  8. 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.
  9. 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).
  10. 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:

host% rpm -i user_mode_linux-2.4.19.5um-0.i386.rpm

Pakiet utworzony jest na jądrze (2.4.17), jest on niestety dosyć stary i zawiera więcej błedów w porównaniu do aktualnych wersji UML.

© 2004 Mateusz Chrzęst, Piotr Krawczyk, Adam Kruszewski.