W niniejszym artykule chciałbym przedstawić proces instalacji i konfiguracji emulatora komputera osobistego, czyli VMware. Emulator ten jest dostępny pod systemy Windows oraz Linux, i żeby uruchomić go na naszym FreeBSD, będzimy musieli emulować również system linux :). VMware to program umożliwiający wydzielenie w obrębie jednego komputera kilku wirtualnych maszyn, pozwala on na korzystanie z paru systemów operacyjnych na raz, o ile dyspoujemy wydajną maszyna. W niniejszym artukule zainstalujemy VMware na maszynie chodzącej pod Freebsd. # uname -rs FreeBSD 5.1-RELEASE-p14 # vmware -vV Mware Workstation 3.2.1 build-2242 Postaram się również omówić proces konfiguracji i obsługi sieci w naszym emulowanym systemie, co nie jest do końca takie proste. Krok 1 - Emulacja Linuxa Aby uruchomić VMware pod FreeBSD musimy mieć włączony tryb emulacji Linuxa. Musimy w tym celu skompilować moduł jądra "linux", moduł ten jest standardowo w domyślnym pliku - GENERIC, więc jeżeli nie usuwaliśmy tego wpisu, to powinniśmy mieć go już wkompilowanego. Możemy to sprawdzić np. tak: # kldstat | grep linux.ko 2 6 0xc068d000 1d28c linux.ko lub: # ls /boot/kernel | grep linux.ko linux.ko Jeżeli nie posiadamy tego modułu, wchodzimy do katalogu /sys/modules/linux i będąc zalogowanym jako root wydajemy komendę: # make && make install && make clean Powinno nam się zainstalować bez problemu, aby moduł był kompilowany zawsze podczas przebudowy jądra dodajmy poniższy wpis do /etc/make.conf MODULES_OVERRIDE += linux oraz wpis w pliku /etc/rc.conf ładujący moduł podczas startu systemu: linux_enable = "YES" Aby wszystko ładnie działało, musimy posiadać w systemie minimum dystrybucji linuxa :) Oczywiscie nie musimy się męczyć w instalowanie linuxa w BSD. W portach mamy do wyboru parę podstawowych dystr. linuksowych. # cd /usr/ports/emulators && ls | grep linux_base Pokaże to nam dostępne porty z emulatorami linuksowymi. Ja zdecydowałem się na dystrybucję Debiana (może ze względu na apt-get install :>) Instalujemy ją standardowo make install clean. Można też ściągnąć paczkę ze strony FreeBSD.org. Oprócz emulatora linuksa musimy doinstalować port /usr/ports/emulators/rtc, który zapewni nam obsługę /dev/rtc. Wymagane też jest doinstalowanie modułów jądra linprocfs i if_tap. Standardowo są one w GENERIC, lecz warto się upewnić: # ls /boot/kernel | grep if_tap if_tap.ko # ls /boot/kernel | grep linprocfs linprocfs.ko Jeżeli nie ma któregoś z nich, lub obu, wchodzimy do /sys/modules/NAZWA_MODUŁU i instalujemy go. Do pliku /etc/make.conf dodamy również wpis, który pozwoli przebudowywać kernel z tymi modułami: MODULES_OVERRIDE += linprocfs if_tap Krok 2 - Instalowanie i konfiguracja VMware Nadszedł czas na zainstalowanie VMware... oczywiście z portów. # cd /usr/ports/emulators/vmware2 wykonujemy make (program zostanie ściągnięty na dysk). Podczas instalacji program zapyta Nas w jaki sposób ma być realizowana obsługa sieci w VMware. Na pierwsze pytanie odpowiadamy przecząco, następnie podajemy IP, które będzie na wirtualnej karcie sieciowej. Należy użyć adresu z nieużywanej przez naszą sieć puli. Na przykład możemy podać IP192.168.128.1, o ile nie używamy takiego. Na następne pytanie odpowiadamy twierdząco. Na końcu sprawdzamy czy podane przez nas informacje są poprawne, potem wydajemy komendę make install && make clean. WAŻNE: Warto przeczytać ostrzeżenie na końcu kompilacji. Pozostało nam jeszcze zamontować linuxowy pseudsystem plików: # cd /compat/linux/proc # mount_linprocfs linprocfs /compat/linux/proc oraz włączyć /dev/rtc i moduły wykorzystywane w VMware: # cd /usr/local/etc/rc.d./rtc.sh start # ./vmware.sh start Ja sobie napisałem prościutki skrypt: #!/bin/sh mount_linprocfs linprocfs /compat/linux/proc /usr/local/etc/rc.d/rtc.sh start /usr/local/etc/rc.d/vmware.sh start VMWare jest programem płatnym, lecz za darmo możemy go używać przez okres 30 dni. W tym celu musimy się zarejestrować na stronie VMWare. Wtedy mailem otrzymamy numer seryjny. VMware odpalamy komendą vmware. Po wpisaniu seriala, pojawi się nam okno, w którym wybierzemy Run the configuration wizard. Postępując według wskazówek tworzymy zaczątek naszej wirtualnej maszyny. . Create standard Virtual machine . Wybieramy system operacyjny jaki będziemy instalować . Następny krok, od razu możemy kliknąć NEXT . Wybieramy Create new virtual disc . Podajemy jego rozmiar (niżej mamy info o ilości wolnego miejsca) . ścieżka do CD-Romu . ścieżka do stacji dyskietek . Sieć - wybiera my opcje Host-only networking . Sprawdzamy czy podane dane są poprawne i wciskamy DONE Ponieważ opcje w VMWare są dokładnie opisane to nie będę tu się nad nimi rozpisywał. Przed pierwszym uruchomieniem warto jeszcze ustawić myszkę (w opcjach VMWare). Odpalamy, botujemy nasz system z CD i go instalujemy :) Aby uruchomić Internet na naszej maszynie wirtualnej nasz system musi robić za bramę internetową. # ifconfig vmnet1 vmnet1: flags=8843 mtu 1500 inet6 fe80::2bd:4aff:fe05:1%vmnet1 prefixlen 64 scopeid 0x4 inet 192.168.128.1 netmask 0xffffff00 broadcast 192.168.128.255 ether 00:bd:4a:05:00:01 Jak widać w systemie przybyła "wirtualna sieciówka, która "przekaże net na nasz wirtualny komputer". Artykuły o NAT/Maskarada można znaleźć TU. Naszemu wirtualnemu nadajemy takie oto parametry sieci: . IP: 192.168.128.2 . MASKA: 255.255.255.0 . BRAMA: 192.168.128.1 Jako "dopisane". Możemy również wybrać opcję sieciową "bridge". Spowoduje to, że nasza wirtualna maszyna będzie łączyła się w taki sam sposób z Internetem jak nasz komputer. Na przykład ja łącze sie za pośrednictwem serwera, który pełni rolę NATu. Mam przydzielone IP na podstawie adresu MAC. Na moim komputerze mam adres 192.168.1.7, na serwerze w DHCPD.conf dopisałem MAC wirtualnej sieciówki VM i otrzymałem na nią adres192.168.1.11. Jeżeli jednak nie możemy natować vm inaczej niż poprzez własny, domowy komputer - opcja Host-only będzie dla nas odpowiednia. I to by było chyba na tyle. :) Wiwisekcje przeprowadzałem na: . System - FreeBSD 5.1-RELEASE . VMware - VMware Workstation 3.2.1 build-2242