Questa sezione descrive come ho ottenuto che Linux e FreeBSD condividessero una partizione di swap. Ci possono essere altri modi di ottenere lo stesso risultato. Potete installare FreeBSD prima di Linux se volete prestare attenzione all'ordine delle partizioni nella slice FreeBSD.
Il primo passo è quello di installare Linux normalmente. Dovete lasciare spazio per la slice FreeBSD nel vostro disco. Non dovete creare una partizione Linux di swap, ma se ne volete una, mettetela nello spazio che volete allocare per FreeBSD. In questo modo potrete cancellare la partizione di swap Linux in seguito e usare lo spazio per FreeBSD.
Quando avrete installato Linux dovrete compilare un nuovo kernel. Leggete The Linux Kernel HOWTO se questa è una cosa nuova per voi. Dovete includere sia UFS filesystem support (read only) sia BSD disklabel (FreeBSD partition tables) support:
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
Installate il nuovo kernel e riavviate. Rimuovete qualsiasi riga che include la
parola swap dal vostro file /etc/fstab
se avete creato una
partizione Linux di swap. Accertatevi di avere un floppy di boot di Linux
funzionante con il nuovo kernel. Ora siete pronti per installare FreeBSD.
Installate FreeBSD come descritto nella documentazione di FreeBSD. Rimuovete la
partizione Linux di swap se ne avete creata una (potete usare il programma
fdisk
di FreeBSD). Prestate attenzione all'ordine delle partizioni nello
slice FreeBSD. Se usate l'etichettatura predefinita, la seconda partizione sarà
la partizione di swap. Completate l'installazione di FreeBSD e riavviate in Linux
usando il nuovo floppy di boot di Linux.
Lanciate dmesg
quando avete riavviato in Linux. Nell'output dovreste vedere
qualcosa del genere:
Partition check: hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
Questo significa che /dev/hda4
è la vostra slice FreeBSD, mentre
/dev/hda5
, /dev/hda6
, /dev/hda7
e
/dev/hda8
sono le partizioni FreeBSD. Se la vostra partizione di swap
è la seconda partizione nello slice, questa sarà /dev/hda6
.
Dovete inserire le linee seguenti nel vostro file /etc/fstab
di Linux
per abilitare la partizione di swap:
/dev/hda6 none swap sw 0 0
Mentre FreeBSD può usare qualsiasi tipo di partizione come area di swap,
Linux necessita di un tipo di marcatura particolare per la partizione di swap.
Questa marcatura si ottiene con mkswap
. FreeBSD rovina questa marcatura
quando usa la partizione di swap condivisa, quindi dovete lanciare mkswap
ogni volta che avviate con Linux. Per fare questo automaticamente dovete trovare
lo script che lancia swapon
al momento del boot. In Red Hat Linux questo è
/etc/rc.d/rc.sysinit
. Inserite la riga seguente in questo file appena
prima di swapon -a
:
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstabQuesto lancerà
mkswap
su qualsiasi partizione di swap in /etc/fstab
ogni volta che avviate eccetto se queste sono commentate (aventi ``#'' come primo
carattere della riga).
Lanciate free
per controllare le dimensioni della partizione di swap quando
avrete riavviato in Linux. Dovreste anche riavviare in FreeBSD per accertarvi che
tutto funzioni come ci si aspetta. Se non funziona, avete probabilmente usato una
partizione sbagliata come partizione di swap. L'unica soluzione a questo problema
è di reinstallare FreeBSD e riprovare ancora.
L'esperienza è una grande maestra. :-)