22.2. FreeBSD als een gast-besturingssysteem

22.2.1. Parallels op Mac OS®

Parallels Desktop voor Mac OS® is een commercieel softwareprodukt voor Intel®-gebaseerde Apple® Mac® computers die Mac OS 10.4.6 of nieuwer draaien. FreeBSD is een volledig ondersteund gast-besturingssysteem. Nadat Parallels is geïnstalleerd op Mac OS X dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.1.1. FreeBSD installeren op Parallels/Mac OS X

De eerste stap in het installeren van FreeBSD op Mac OS X Parallels is het aanmaken van een nieuwe virtuele machine voor het installeren van FreeBSD. Selecteer FreeBSD als het Guest OS Type wanneer dit gevraagd wordt:

Kies verder een hoeveelheid aan schijf- en geheugenruimte afhankelijk van de plannen voor deze virtuele instantie van FreeBSD. 4GB aan schijfruimte en 512MB aan RAM werken goed voor de meeste gebruikers van FreeBSD onder Parallels :

Selecteer het type netwerk en een netwerkinterface:

Bewaar de instellingen en sluit af:

Nadat de virtuele FreeBSD-machine is aangemaakt, dient er FreeBSD op geïnstalleerd te worden. Dit gaat het beste met een officiële FreeBSD CDROM of met een ISO-beeld dat is gedownload van een officiële FTP-site. Wanneer het juiste ISO-beeld op het plaatselijke Mac-bestandssysteem of een CDROM in de CD-drive van de Mac aanwezig is, dient op het schijfikoon in de rechteronderhoek van het FreeBSD Parallels-scherm geklikt te worden. Dit zal een scherm tonen dat het mogelijk maakt om de CDROM-drive in de virtuele machine te associëren met een ISO-bestand op schijf of met een echte CDROM-drive.

Nadat deze associatie met de CDROM-bron is gemaakt, dient de virtuele FreeBSD-machine herstart te worden door op het herstart-icoon te klikken. Parallels zal herstarten met een speciale BIOS dat eerst controleert of er een CDROM aanwezig is, net zoals een normale BIOS zou doen.

In dit geval zal het de installatiemedia van FreeBSD vinden en een normale installatie gebaseerd op sysinstall beginnen zoals beschreven in Hoofdstuk 2. X11 kan nu geïnstalleerd, maar nog niet ingesteld, worden.

Nadat de installatie is voltooid, kan naar de nieuw geïnstalleerde virtuele FreeBSD-machine herstart worden.

22.2.1.2. FreeBSD instellen op Mac OS X/Parallels

Nadat FreeBSD succesvol op Mac OS X met Parallels is geïnstalleerd, zijn er een aantal instellingen die gewijzigd kunnen worden om het systeem voor virtuele werking te optimaliseren.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is om de tunable kern.hz te verlagen om het CPU-gebruik van FreeBSD onder de Parallels-omgeving te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100
    

    Zonder deze instelling zal een rustend FreeBSD Parallels gast-besturingssysteem ongeveer 15% van de CPU van een enkele iMac®-processor gebruiken. Na deze wijziging zal het gebruik slechts ongeveer 5% zijn.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma's voor SCSI, FireWire, en USB kunnen verwijderd worden. Parallels biedt een virtuele netwerkadapter die door het stuurpogramma ed(4) wordt gebruikt, dus kunnen alle andere netwerkapparaten behalve ed(4) en miibus(4) uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met hetzelfde LAN te verbinden als het Mac-gastheer. Dit kan bereikt worden door ifconfig_ed0="DHCP" aan /etc/rc.conf toe te voegen. Meer geavanceerde netwerkinstallaties staan beschreven in Hoofdstuk 31.

22.2.2. FreeBSD met Xen™ op Linux

Bijgedragen door Fukang Chen (Loader).

De hypervisor van Xen is een open-source paravirtualisatieproduct dat nu wordt ondersteund door het commerciële bedrijf XenSource. Gast-besturingssystemen staan bekend als domU-domeinen, en het gastheer-besturingssysteem staat bekend als dom0. De eerste stap in het virtueel draaien van FreeBSD op Linux is om Xen voor Linux dom0 te installeren. Het gastheer-besturingssysteem zal een Slackware Linux-distributie zijn.

22.2.2.1. Xen 3 op Linux dom0 installeren

  1. Xen 3.0 van XenSource downloaden

    Download xen-3.0.4_1-src.tgz van http://www.xensource.com/.

  2. De tarball uitpakken

    # cd xen-3.0.4_1-src
    # KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world
    # make install
    

    Opmerking: Om de kernel voor dom0 opnieuw te compileren:

    # cd xen-3.0.4_1-src/linux-2.6.16.33-xen0
    # make menuconfig
    # make
    # make install
    

    Voor oudere versies van Xen kan het nodig zijn om make ARCH=xen menuconfig te specificeren.

  3. Een menuregel voor menu.lst van Grub toevoegen

    Voeg de volgende regels aan /boot/grub/menu.lst toe:

    title Xen-3.0.4
    root (hd0,0)
    kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
    module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro
    
  4. De computer naar Xen opstarten

    Voeg als eerste de volgende regel toe aan /etc/xen/xend-config.sxp toe:

    (network-script 'network-bridge netdev=eth0')
    

    Nu kan Xen gestart worden:

    # /etc/init.d/xend start
    # /etc/init.d/xendomains start
    

    dom0 draait:

    # xm list
    Name                                      ID   Mem VCPUs      State   Time(s)
    Domain-0                                   0   256     1     r-----  54452.9
    

22.2.2.2. FreeBSD 7-CURRENT domU

Download de FreeBSD domU-kernel voor Xen 3.0 en het schijfimage van http://www.fsmware.com

Sla het instellingenbestand xmexample1.bsd op in /etc/xen en pas de regels over waar de kernel en het schijfimage zijn opgeslagen aan. Het dient er als volgt uit te zien:

kernel = "/opt/kernel-current"
memory = 256
name = "freebsd"
vif = [ '' ]
disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
#on_crash    = 'preserve'
extra = "boot_verbose"
extra += ",boot_single"
extra += ",kern.hz=100"
extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"

Het mdroot-7.0.bz2 dient uitgepakt te worden.

Vervolgens dient de sectie over __xen_guest in kernel-current aangepast te worden om de VIRT_BASE dat Xen 3.0.3 nodig heeft toe te voegen:

# objcopy kernel-current -R __xen_guest
# perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' > tmp
# objcopy kernel-current --add-section __xen_guest=tmp
# objdump -j __xen_guest -s kernel-current

kernel-current:     file format elf32-i386

Contents of section __xen_guest:
 0000 4c4f4144 45523d67 656e6572 69632c47  LOADER=generic,G
 0010 55455354 5f4f533d 66726565 6273642c  UEST_OS=freebsd,
 0020 47554553 545f5645 523d372e 302c5845  GUEST_VER=7.0,XE
 0030 4e5f5645 523d7865 6e2d332e 302c4253  N_VER=xen-3.0,BS
 0040 445f5359 4d544142 2c564952 545f4241  D_SYMTAB,VIRT_BA
 0050 53453d30 78433030 30303030 3000      SE=0xC0000000.

Nu kan onze eigen domU aangemaakt en gestart worden:

# xm create /etc/xen/xmexample1.bsd -c
Using config file "/etc/xen/xmexample1.bsd".
Started domain freebsd
WARNING: loader(8) metadata is missing!
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
    kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
WARNING: DIAGNOSTIC option enabled, expect reduced performance.
Xen reported: 1796.927 MHz processor.
Timecounter "ixen" frequency 1796927000 Hz quality 0
CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0xf29  Stepping = 9
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
  DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x4400<CNTX-ID,<b14>>
real memory  = 265244672 (252 MB)
avail memory = 255963136 (244 MB)
xc0: <Xen Console> on motherboard
cpu0 on motherboard
Timecounters tick every 10.000 msec
[XEN] Initialising virtual ethernet driver.
xn0: Ethernet address: 00:16:3e:6b:de:3a
[XEN]
Trying to mount root from ufs:/dev/xbd769a
WARNING: / was not properly dismounted
Loading configuration files.
No suitable dump device was found.
Entropy harvesting: interrupts ethernet point_to_point kickstart.
Starting file system checks:
/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
Setting hostname: demo.freebsd.org.
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
      inet6 ::1 prefixlen 128
      inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
      inet 127.0.0.1 netmask 0xff000000
Additional routing options:.
Mounting NFS file systems:.
Starting syslogd.
/etc/rc: WARNING: Dump device does not exist.  Savecore not run.
ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
Starting usbd.
usb: Kernel module not available: No such file or directory
Starting local daemons:.
Updating motd.
Starting sshd.
Initial i386 initialization:.
Additional ABI support: linux.
Starting cron.
Local package initialization:.
Additional TCP options:.
Starting background file system checks in 60 seconds.

Sun Apr  1 02:11:43 UTC 2007

FreeBSD/i386 (demo.freebsd.org) (xc0)

login:

De domU zou nu de kernel van FreeBSD 7.0-CURRENT moeten draaien:

# uname -a
FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan  4 06:25:43 UTC 2006
kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF  i386

Het netwerk kan nu op de domU ingesteld worden. Het domU van FreeBSD zal het interface xn0 gebruiken:

# ifconfig xn0 10.10.10.200 netmask 255.0.0.0
# ifconfig
xn0: flags=843<UP,BROADCAST,RUNNING,SIMPLEX> mtu 1500
    inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
    ether 00:16:3e:6b:de:3a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
      inet6 ::1 prefixlen 128
      inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
      inet 127.0.0.1 netmask 0xff000000

Op dom0 Slackware zouden nu afhankelijke netwerkinterfaces te zien moeten zijn:

# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:07:E9:A0:02:C2
          inet addr:10.10.10.130  Bcast:0.0.0.0  Mask:255.0.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:815 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:204857 (200.0 KiB)  TX bytes:129915 (126.8 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:99 errors:0 dropped:0 overruns:0 frame:0
          TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:9744 (9.5 KiB)  TX bytes:9744 (9.5 KiB)

peth0     Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
          TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2432115831 (2.2 GiB)  TX bytes:86528526 (82.5 MiB)
          Base address:0xc000 Memory:ef020000-ef040000

vif0.1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
          TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:129915 (126.8 KiB)  TX bytes:204857 (200.0 KiB)

vif1.0    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
          collisions:0 txqueuelen:1
          RX bytes:140 (140.0 b)  TX bytes:158 (158.0 b)

xenbr1    Link encap:Ethernet  HWaddr FE:FF:FF:FF:FF:FF
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:112 (112.0 b)  TX bytes:0 (0.0 b)
# brctl show
bridge name     bridge id           STP enabled         interfaces
xenbr1          8000.feffffffffff   no                  vif0.1
                                                        peth0
                                                        vif1.0

22.2.3. Virtual PC op Windows®

Virtual PC voor Windows® is een softwareprodukt van Microsoft® dat gratis gedownload kan worden . Zie systeemeisen. Nadat Virtual PC is geïnstalleerd op Microsoft Windows, dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.3.1. FreeBSD installeren op Virtual PC/Microsoft® Windows

De eerste stap in het installeren van FreeBSD op Microsoft Windows/Virtual PC is het aanmaken van een nieuwe virtuele machine voor het installeren van FreeBSD. Kies Create a virtual machine wanneer daarom wordt gevraagd:

Selecteer Other als het Operating system wanneer dat gevraagd wordt:

Kies vervolgens een gepaste hoeveelheid aan schijf- en geheugenruimte afhankelijk van de plannen voor deze virtuele instantie van FreeBSD. 4GB aan schijfruimte en 512MB aan RAM werken goed voor de meeste gebruikers van FreeBSD onder Virtual PC:

Bewaar de instellingen en sluit ze af:

Selecteer de virtuele FreeBSD-machine en klik op Settings, stel daarna het type netwerk en een netwerkinterface in:

Nadat de virtuele FreeBSD-machine is aangemaakt, dient FreeBSD erop geïnstalleerd te worden. Dit gaat het beste met een officiële FreeBSD-CDROM of met een ISO-beeld dat van een officiële FTP-site is gedownload. Wanneer het juiste ISO-beeld op het lokale bestandssysteem van Windows staat of er een CDROM in de CD-drive zit, dubbelklik dan op de virtuele FreeBSD-machine om op te starten. Klik daarna op CD en kies Capture ISO Image... in het venster van Virtual PC . Dit toont een scherm dat het mogelijk maakt om de CDROM-drive in de virtuele machine te associëren met een ISO-bestand op schijf of met een echte CDROM-drive.

Start, nadat deze associatie met de CDROM-bron is gemaakt, de virtuele FreeBSD-machine opnieuw op zoals gewoonlijk door op Action en Reset te klikken. Virtual PC zal herstarten met een speciale BIOS dat eerst controleert of er een CDROM aanwezig is, net zoals eeen normale BIOS dat zou doen.

In dit geval zal het de installatiemedia van FreeBSD vinden en een normale installatie gebaseerd op sysinstall beginnen zoals beschreven in Hoofdstuk 2. X11 kan nu geïnstalleerd, maar nog niet ingesteld, worden.

Denk eraan om de CDROM of het ISO-beeld te verwijderen nadat de installatie voltooid is. Start als laatste op naar de nieuw geïnstalleerde virtuele FreeBSD-machine.

22.2.3.2. FreeBSD instellen op Microsoft Windows/Virtual PC

Nadat FreeBSD succesvol is geïnstalleerd op Microsoft Windows met Virtual PC zijn er een aantal instellingen die aangepast kunnen worden om het system te optimaliseren voor virtueel gebruik.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is om de tunable kern.hz te verlagen om zo het CPU-gebruik van FreeBSD in de omgeving van Virtual PC te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100
    

    Zonder deze instelling zal een FreeBSD als gast-besturingssysteem voor Virtual PC in rust ongeveer 40% van de CPU van een computer met een enkele processor gebruiken. Na deze verandering zal het gebruik slechts rond de 3% liggen.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma's voor SCSI, FireWire, en USB kunnen verwijderd worden. Virtual PC beidt een virtuele netwerkadapter dat door het stuurprogramma de(4) gebruikt wordt, dus kunnen alle netwerkapparaten behalve de(4) en miibus(4) uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met het zelfde LAN te verbinden als de Microsoft Windows-gastheer. Dit kan bereikt worden door ifconfig_de0="DHCP" toe te voegen aan /etc/rc.conf. Geavanceerdere netwerkinstallaties staan beschreven in Hoofdstuk 31.

22.2.4. VMware op Mac OS

VMware Fusion voor Mac is een comercieel softwareprodukt beschikbaar voor op Intel gebaseeerde Mac-computers die Mac OS 10.4.9 of nieuwer draaien. FreeBSD is een volledig ondersteund gast-besturingssysteem. Nadat VMware Fusion is geïnstalleerd op Mac OS X dient de gebruiker een virtuele machine in te stellen en daarna het gewenste gast-besturingssysteem te installeren.

22.2.4.1. FreeBSD installeren op VMware/Mac OS X

De eerste stap is om VMware Fusion te laden, de Virtual Machine Library zal geladen worden. Klik op "New" om de VM aan te maken:

Dit laadt de New Virtual Machine Assistant dat helpt om de VM aan te maken, klik op Continue om verder te gaan:

Selecteer Other als het Operating System en FreeBSD of FreeBSD 64-bit , afhankelijk van de wens voor ondersteuning voor 64-bit, als de Version wanneer dat gevraagd wordt:

Kies de naam van het VM-beeld en de map waarin het bewaard dient te worden:

Kies de grootte van de virtuele harde schijf voor de VM:

Kies de manier om de VM te installeren, van een ISO-beeld of van een CD:

Nadat op Finish is geklikt, zal de VM opstarten:

Installeer FreeBSD zoals gewoonlijk, of door de aanwijzingen in Hoofdstuk 2 op te volgen:

Nadat de installatie voltooid is kunnen de instellingen van de VM aangepast worden, zoals het geheugengebruik:

Opmerking: De instellingen van de systeemhardware van de VM kunnen niet veranderd worden zolang de VM draait.

Het aantal CPU's waartoe de VM toegang heeft:

De status van het CD-ROM-apparaat. Gewoonlijk kan de CD-ROM of het ISO-beeld van de VM worden losgekoppeld wanneer het niet meer nodig is.

Het laatste om te veranderen is de manier waarop de VM verbinding met het netwerk maakt. Indien verbindingen naar de VM van andere machines naast de gastheer gewenst zijn, dient Connect directly to the physical network (Bridged) gekozen te worden. In andere situaties is Share the host's internet connection (NAT) te verkiezen, zodat de VM toegang kan hebben tot het Internet, maar dat het netwerk geen toegang heeft tot de VM.

Herstart de nieuw geïnstalleerde virtuele FreeBSD-machine nadat alle instellingen zijn aangepast.

22.2.4.2. FreeBSD instellen op Mac OS X/VMware

Nadat FreeBSD succesvol is geïnstalleerd op Mac OS X met VMware, zijn er een aantal instellingen die gewijzigd kunnen worden op het systeem te optimaliseren voor virtueel gebruik.

  1. De variabelen voor de bootloader instellen

    De belangrijkste stap is het verlagen van de tunable kern.hz om het CPU-gebruik van FreeBSD in de omgeving van VMware te verminderen. Dit kan bereikt worden door de volgende regel aan /boot/loader.conf toe te voegen:

    kern.hz=100
    

    Zonder deze instelling gebruikt FreeBSD als VMware gast-besturingssysteem ongeveer 15% van de CPU van een enkele iMac-processor. Na deze verandering zal het gebruik dichter bij 5% liggen.

  2. Een nieuw instellingenbestand voor de kernel aanmaken

    Alle stuurprogramma's voor FireWire en USB kunnen verwijderd worden. VMware biedt een virtuele netwerkadapter dat door het stuurpogramma em(4) gebruikt wordt, dus alle netwerkapparaten behalve em(4) kunnen uit de kernel verwijderd worden.

  3. Het netwerk instellen

    De eenvoudigste netwerkinstallatie omvat het gebruik van DHCP om de virtuele machine met hetzelfde LAN te verbinden als de Mac-gastheer. Dit kan bereikt worden door ifconfig_em0="DHCP" toe te voegen aan /etc/rc.conf. Geavanceerdere netwerkinstallaties staan beschreven in Hoofdstuk 31.

Deze en andere documenten kunnen worden gedownload van ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Lees voor vragen over FreeBSD de documentatie alvorens contact te zoeken <questions@FreeBSD.org>.
Vragen over deze documentatie kunnen per e-mail naar <doc@FreeBSD.org>.