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.

2. Installare Minix

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.

4. Configurare Lilo

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.

5. Emulatori

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`!