Minix con Linux HOWTO
scritto da Matteo Dell'Amico in
collaborazione con Davide Pastorino e Alessandro Volpi ,
versione 0.1.1 / 13 gennaio 2000.
Ogni suggerimento e/o correzione e` naturalmente benvenuto. Questo documento puo` venire distribuito liberamente.
0. A chi puo` servire questo documento
1. Partizionare il disco fisso
1.1. Creare lo spazio per la partizione
1.2. Creare la nuova partizione
2. Installare Minix
3. Montare le partizioni Minix da Linux
4. Configurare Lilo
5. Emulatori
0. A chi puo` servire questo documento
Questo file e` stato scritto per tutti quelli che hanno installato sul loro computer Linux e vogliono installare Minix. Date le somiglianze, non dovrebbero esserci grosse difficolta` per usarlo anche con un altro sistema operativo Unix-like.
1. Partizionare il disco fisso
Questa e` la parte piu` delicata di tutta l'installazione, e purtroppo capita spesso che i dati di interi hard disk trovino un qualche modo estremamente cervellotico e improbabile di seguire la legge di Murphy e vengano persi in questa fase. Consigliamo di fare un backup dei dati importanti e della tavola delle partizioni prima di procedere. Minix e` piccolo, e non avrete bisogno di molto spazio per poterlo utilizzare. 50 megabyte di spazio sono sufficienti per installare tutto e avere spazio per ricompilare il sistema operativo, per quanto riguarda la versione 2.0. Volendo, se c'e` bisogno l'installazione si puo` limare ulteriormente.
Nota di G.D.:
Tenete presente che non ci e` riuscito di installare MINIX 2.0 su
dischi di capacita` superiore a 4 GB, o meglio, di installarlo in
una partizione che inizi oltre 4 GB. Se questa limitazione sia
superabile ricompilandolo con modifica di opportune costanti e'
oggetto di discussioni presso la comunita' del DISI, si
sollecitano contributi
costruttivi in merito.
1.1. Creare lo spazio per la partizione
Minix non vuole molto spazio, pero` e` probabile che vi costringa a diminuire lo spazio di qualche partizione per fargli posto. Tenete presente che Minix puo` essere installato solamente su una partizione primaria sul primo hard disk, in pratica in una delle partizioni da hda1 a hda4. Se volete ridimensionare una partizione fat (usata da dos o windows 95), il programma free che dovete usare e` fips (per dos), il quale vi permette di cambiare la dimensione di una partizione una volta che il disco e` stato completamente deframmentato, con tutti i dati spostati verso l'inizio del disco. Fips si puo` trovare sul cd di Minix 2.0, ma la versione che ad oggi (gennaio 2000) trovate sul libro non gestisce la fat32, usata da win95osr2.x e seguenti. La home page di fips dove trovate l'ultima versione e` http://www.igd.fhg.de/~aschaefe/fips/.
Un programma piu` user friendly ma, sfortunatamente, commerciale, per fare un lavoro di questo tipo e` Partition Magic della PowerQuest. Un'altra possibilita` puo` essere cambiare la dimensione della partizione di swap di Linux. Per disattivare e poi riattivare un'area di swap si usano i comandi swapoff e swapon; per riinizializzare una partizione di swap si usa il comando mkswap. Se il nome della partizione di swap e` cambiato (per esempio, da hda3 a hda4), assicuratevi di modificare in modo consistente il file /etc/fstab.
1.2. Creare la nuova partizione
Beh, il lavoro difficile e` stato fatto. Adesso bisogna solo andare a modificare la tavola delle partizioni con un programma adatto (cfdisk o disk druid possono andare benissimo), creando la nuova partizione per minix e settando il tipo della partizione a 81 (potrebbe venire indicato con qualcosa di simile a "Linux/Minix"). Sconsigliamo di usare part, il programma distribuito con Minix, che e` meglio di niente ma, probabilmente, e` qualcosa di molto diverso da un bel programma.
Minix puo` venire installato come descritto nella
documentazione, ossia passando attraverso i dischetti, oppure
installando direttamente da cd i pacchetti usr, sys e cmd
dopo avere montato sul sistema il filesystem minix. Per creare il
disco di boot, se il cdrom di minix e` montato in /mnt/cdrom e /dev/fd0
e` un drive per dischi da 1.44 o 1.2 megabyte, basta usare il
comando
$ cat /mnt/cdrom/MINIX/I386/ROOT
/mnt/cdrom/MINIX/I386/USR > /dev/fd0
A questo punto, resettate e fate ripartire il computer con il
disco di boot appena creato.
Quando vi verra` chiesto di inserire il disco USR e completare la
sua posizione, bastera` non togliere il dischetto e completare
con /dev/fd0c. Seguite le
istruzioni sullo schermo e quando verra` avviato part, se avete gia` creato (come
abbiamo consigliato) la partizione per minix, dovrete
semplicemente uscire (premendo q)
e al successivo prompt, quando vi verra` chiesto su che
partizione installare minix, inserite il nome della partizione
precedentemente creata (attenzione: minix gestisce solo un disco
rigido, e quindi il disco che in linux si chiamava /dev/hda1, in minix si chiama /dev/hd1, e cosi` via).
Quando vi verra` chiesto il vostro layout di tastiera,
consigliamo di rispondere che si usa una tastiera americana anche
se avete una tastiera italiana: ne` il tasto alt-gr ne` la
combinazione alt+tastierino numerico sono supportati, e
rischiereste di restare senza caratteri fondamentali come '#',
'{', '}' o '@'. Se, in ogni caso, volete cambiare il layout della
tastiera, usate loadkeys
/usr/src/kernel/keymaps/us-stnd.map dopo avere eseguito make in quella directory. Ovviamente
potete sostituire la tastiera americana con qualunque altro tipo
di tastiera. A questo punto, se volete installare il resto del
sistema direttamente da cd, resettate, avviate Linux, montate il
filesystem minix come descritto nel capitolo successivo, cambiate
directory per entrarci ed eseguite i comandi
# tar xzvf /mnt/cdrom/MINIX/I386/USR.TAZ
# tar xzvf /mnt/cdrom/MINIX/SYS.TAZ
# tar xzvf /mnt/cdrom/MINIX/CMD.TAZ
A questo punto tutto dovrebbe essere stato installato. A
proposito, Minix versione 2.0 ha un bug che non permette di
accedere a piu` di 16 MB di RAM. Non dovrebbe cambiarvi la vita,
pero` se volete sperimentare potete provare a correggerlo
scambiando, nel file kernel/misc.c,
'USHRT_MAX' con '(phys_clicks) -1' in modo che la linea
in questione finisca come
max_clicks = (phys_clicks) -1 - (EM_BASE
>> CLICK_SHIFT);
e ricompilando il kernel. Potrebbe essere un primo esercizio.
3. Montare le partizioni Minix da Linux
Linux e` in grado di "capire" il filesystem di minix (anzi, in origine, Linux usava lo stesso filesystem di minix), ma non riesce a riconoscere il modo in cui quest'ultimo divide le partizioni, per cui siamo costretti ad usare qualche artificio. Innanzi tutto, il kernel che usate deve essere almeno della versione 2.0 ed avere abilitata l'opzione "kernel loopback device". Per verificare se questa opzione e` abilitata, provate a montare, usando il comando mount con l'opzione -o loop il file immagine di un dischetto come se fosse un device vero e proprio. Il file USR della distribuzione di minix puo` andare benissimo. Se questa opzione non fosse abilitata, beh... ricompilare il kernel e` una cosa istruttiva ed e` da fare, almeno una volta nella vita. :) Per montare le partizioni di minix si puo` usare questo script, scritto da Terry R. McConnell (leggete i commenti, bisogna avere gia` creato la directory /minix). ---
#!/bin/sh
# mxmount
# Mounts minix directorys so that they can be accessed from linux
# Based on tips from Alan M. Alpert as posted on comp.os.minix
# setup loop back devices. I guess the 512 offset in the first
one
# gets us past the boot sector. This is for the first (minix)
logical
# partition in /dev/hda3 ( = minix's /dev/hd3a ). The second one
is
# for the second logical partition in /dev/hda3 which begins at
512 +
# 1440 x 1024 = 1475072 -- since there are 1440 blocks in the
first
# logical partition.
# dovrebbe funzionare con le installazioni standard di minix,
# sostituire /dev/hda3 con il nome della partizione su cui e`
installato
# minix sul vostro sistema.
/sbin/losetup /dev/loop0 /dev/hda4 -o 512
/sbin/losetup /dev/loop1 /dev/hda4 -o 1475072
# mount the minix root fs on /minix
/bin/mount -t minix /dev/loop0 /minix
# mount the minix usr fs on /minix/usr
/bin/mount -t minix /dev/loop1 /minix/usr
# display statistics. The statistics for the smaller device will
look
# strange, but it seems to work OK.
df /dev/loop0 df /dev/loop1 exit 0
--- Se tutto andra` bene, dovreste trovare il vostro filesystem minix montato nella directory /minix del sistema.
Noi supponiamo che usiate lilo
(linux loader), come in effetti viene fatto per la maggioranza
dei sistemi linux, per caricare il sistema. Usando questo
sistema, sarete in grado di scegliere di avviare minix dal vostro
hard disk con lo stesso programma che si occupa di caricare
linux. Modificate il file /etc/lilo.conf,
aggiungendo in coda al file
other=/dev/hda4 label=minix
ovviamente sostituendo /dev/hda4 con
il nome della vostra partizione minix. A questo punto, dite a lilo di rendersi conto dei cambiamenti
che avete effettuato usando il comando
# lilo
Quando riavvierete, tenendo premuto al boot un tasto shift,
comparira` un prompt LILO:, se
scriverete minix potrete avviarlo
senza bisogno di boot disk.
In teoria, dovrebbe essere possibile utilizzare un emulatore per fare funzionare minix su una partizione reale in modo emulato sotto linux o un altro sistema unix, ma finora non ci siamo riusciti. L'emulatore fornito con la distribuzione di minix, bochs (un emulatore di 386 per X-windows) non parte quando come parametro di hard disk gli viene fornito un vero hard disk invece di un immagine su file. L'emulatore dosemu, che a dispetto del nome emula le funzioni di un PC Intel, nella versione che abbiamo provato esce all'inizio del caricamento di minix, dando un messaggio di errore perche` viene chiamata una funzione non implementata.
Nota di G.D:
anche su questo argomento si sollecitano contributi
eventuali dagli studenti di buona volonta`!