Verder Terug Inhoud

3. Swap space delen tussen Linux en FreeBSD

Deze sectie beschrijft hoe ik Linux en FreeBSD zover kreeg om een swap partitie te delen. Het kan zijn dat er andere manieren zijn om hetzelfde resultaat te verkrijgen. Je kunt FreeBSD vóór Linux installeren als je dat wilt, let alleen op de volgorde van de partities in de FreeBSD slice.

3.1 Installeren en voorbereiden van Linux

De eerste stap is om Linux net als anders te installeren. Je moet ruimte op je harddisk openlaten voor de FreeBSD slice. Je hoeft geen Linux swap partitie aan te maken, maar als je er een wilt, plaats deze dan in de ruimte die je wilt inruimen voor FreeBSD. Op die manier kun je de Linux swap partitie later verwijderen en de ruimte voor FreeBSD gebruiken.

Als je Linux hebt geïnstalleerd dan moet je een nieuwe kernel aanmaken. Lees de Linux Kernel HOWTO als dit nieuw voor je is. Je moet zowel de ondersteuning voor het UFS bestandssysteem (alleen lezen) als ondersteuning voor BSD disklabel (FreeBSD partitie tabellen) insluiten:

UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
(NEW) y

Installeer de nieuwe kernel en reboot. Verwijder iedere regel uit je /etc/fstab waarin het woord swap voorkomt als je een Linux swap partitie hebt aangemaakt. Zorg ervoor dat je een werkende Linux opstartdiskette hebt met de nieuwe kernel. Nu ben je er klaar voor om FreeBSD te installeren.

3.2 FreeBSD installeren

Installeer FreeBSD zoals beschreven staat in de FreeBSD documentatie. Verwijder de Linux swap partitie als je er één hebt aangemaakt (je kunt hiervoor het programma fdisk van FreeBSD gebruiken). Let op de volgorde van de partities in de FreeBSD slice. Als je de standaard labeling gebruikt dan zal de tweede partitie de swap partitie zijn. Maak de installatie van FreeBSD af en start Linux weer op met gebruik van de nieuwe Linux opstartdiskette.

3.3 De FreeBSD swap partitie instellen onder Linux

Start dmesg op als je Linux hebt geboot. In de uitvoer zal je iets dergelijks als het volgende te zien moeten krijgen:

Partition check:
 hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

Dit betekent dat /dev/hda4 je FreeBSD slice is, terwijl /dev/hda5, /dev/hda6, /dev/hda7 en /dev/hda8 de FreeBSD partities zijn. Als je swap partitie de tweede partitie is in de slice, dan zal dit /dev/hda6 zijn.

Je moet de volgende regel in Linux /etc/fstab bestand zetten om de swap partitie te activeren:

/dev/hda6       none            swap            sw              0       0

Terwijl FreeBSD elk type partitie als swap space kan gebruiken, heeft Linux een speciaal teken in de swap partitie nodig. Dit teken wordt aangemaakt door mkswap. FreeBSD vernielt dit teken zodra het gebruik maakt van de gedeelde swap partitie, dus je moet iedere keer dat je Linux boot mkswap uitvoeren. Om dit automatisch te laten uitvoeren, zul je uit moeten zoeken waar het script zich bevindt dat tijdens het booten swapon uitvoert. In Red Hat Linux is dit /etc/rc.d/rc.sysinit. Zet de volgende regel in dat bestand net voor swapon -a:

awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

Hiermee zal iedere keer als je opnieuw opstart mkswap voor iedere swap partitie in /etc/fstab worden uitgevoerd, behalve als de regels als commentaar in het bestand staan geplaatst (``#'' staat als eerste teken in de regel).

Start free op om de grootte van de swap space te controleren als je Linux opnieuw hebt opgestart. Je zal ook FreeBSD opnieuw op moeten starten om er zeker van te zijn dat alles werkt zoals je mag verwachten. Als het niet zo is, dan heb je waarschijnlijk de verkeerde partitie als swap partitie aangegeven. De enige oplossing voor dat probleem is om FreeBSD opnieuw te installeren en het nog eens te proberen. Ervaring is een goede leermeester :-)


Verder Terug Inhoud