Revisione 2006.04.15. Originale aggiornato: http://www.insulae.net/doc/knoppix.poor.it.php
2004.12.01
Occorrente
Preparazione del disco
Preparazione della partizione di Knoppix
Un condensato di teoria
Preparazione della partizione di avvio e installazione di LILO
Cambiare versione di LILO
Configurazione di Knoppix e creazione della persistent home
Conclusione
Dubbi
Cronologia
Avendo un disco da 1,2 GB lì a poltrire, mi sono proposto di tentare una "installazione del povero" di Knoppix. Si tratta di copiare il contenuto del CD-ROM su disco fisso in modo che Knoppix si carichi in RAM dal disco come avviene di norma da CD, combinando la maggior velocità del disco fisso con l'autoconfigurazione che permette di usare il sistema così preparato su diverse macchine — a differenza dell'installazione, che prepara il sistema operativo per una specifica macchina (1).
In breve, far funzionare il contenuto del CD da disco fisso.
Soddisfatto del misfatto, ho scritto questa guida per mostrare a un ipotetico principiante, che voglia come primo approccio qualcosa di facile e insieme utilizzabile, le operazioni da compiere per far funzionare da disco, o altro dispositivo avviabile, la distribuzione Knoppix 3.6. In linea di principio le informazioni possono essere adattate ad altre versioni o a qualsiasi distribuzione di Linux che si carichi da CD-ROM per essere eseguita nella RAM.
È persino possibile che per aggiornare il disco a una più recente versione di Knoppix basti sostituire il file KNOPPIX/KNOPPIX (e il kernel, se la nuova versione ne usa necessariamente uno diverso da quello della vecchia).
Un sistema Linux per eseguire le operazioni. Potrebbe ad esempio essere una versione di Knoppix già disponibile su CD-ROM, mentre se si inizia da zero si può scaricare il dischetto di tomsrtbt da www.toms.net/rb e, seguendo le istruzioni, in pochi minuti e senza patemi disporre di una fiammante minidistribuzione Linux (una conoscenza di base dell'ambiente Unix e dei principali comandi è fortemente consigliata). Tutti i comandi sotto descritti sono stati digitati da tomsrtbt.
Ci si assicuri di impostare nel BIOS l'avvio del sistema dalla periferica, dischetto o CD-ROM, relativa al sistema scelto.
L'immagine ISO, o il CD-ROM, della versione di Knoppix che si intende far caricare da disco.
Ovviamente, un hard disk libero di almeno 1,2 GByte. Anche meno, calcolando lo spazio con cura.
Usando tomsrtbt, sul disco hda creo quattro partizioni:
# fdisk /dev/hda
Disk dev/hda: 64 heads, 63 sectors, 621 cylinders Units = cylinders of 4032 * 512 bytes P Device B Start End Blocks Id System 1 /dev/hda1 * 1 6 12064+ 83 Linux - partizione di avvio (boot) 2 /dev/hda2 7 413 850512 83 Linux - partizione del file KNOPPIX 3 /dev/hda3 414 544 264096 82 Linux swap - partizione di swap 4 /dev/hda4 545 621 155232 83 Linux - home
riservando 10 MB alla partizione di avvio, 800 MB a quella destinata a ospitare l'immagine di Knoppix, 256 MB alla partizione di swap e i restanti 150 MB alla persistent home dell'utente e ai file di configurazione.
Circa il partizionamento del disco ospite, sono possibili molte scelte.
Per abbondare in prudenza ho tenuto separate le partizioni di avvio e di Knoppix, ma potrebbero coincidere. In generale, una piccola partizione di avvio, separata da quella in cui risiede il sistema, è necessaria per vecchie versioni del BIOS che non permettono di avviare una partizione che si estenda oltre il cilindro 1024: ma la partizione di Knoppix non supera il cilindro 413.
Alla partizione di swap ho riservato 256 MB, il doppio della RAM del computer su cui intendevo usarlo, ed anche circa il doppio della dimensione del disco RAM specificata nella configurazione di LILO.
Lo spazio restante è destinato a ospitare i file di configurazione e la directory dell'utente knoppix, cui corrisponde la sessione di KDE predefinita, che non possono risiedere nella partizione d'avvio perché Knoppix prende il controllo esclusivo della partizione da cui si avvia (2). Si può scegliere di tenere i file di configurazione e la home in due partizioni separate o in una sola, e di scrivere il contenuto della home nell'intera partizione o in un file immagine, che può anche risiedere in una partizione FAT32. Per la discussione delle possibili combinazioni fra queste scelte e delle conseguenze che ne derivano, anche in relazione ai bachi di alcune versioni di Knoppix, rimando alla pagina Web citata nella nota (3).
Formatto hda1, hda2 e hda4 come ext2 e hda3 come swap:
# mke2fs -c /dev/hda1 # mke2fs -c /dev/hda2 # mke2fs -c /dev/hda4 # mkswap -c /dev/hda3
I filesystem ext2 preparati sulle partizioni hda[124] contengono directory lost+found che possono essere cancellate.
Il comando swapon per attivare lo swap è compreso nelle operazioni compiute dagli script di inizializzazione di Knoppix.
Ho scaricato con Windows l'immagine ISO di Knoppix 3.6 (impiegando quasi una giornata con l'ADSL) su un disco montato poi con tomsrtbt come hdc1, e ne ho verificato l'impronta MD5:
/mnt/hdc1/Knoppix 3.6# more KNOPPIX_V3.6-2004-08-16-EN.iso.md5 5bc8e9fee2a8be0b7180fcf3e49b5386 *KNOPPIX_V3.6-2004-08-16-EN.iso /mnt/hdc1/Knoppix 3.6# md5sum KNOPPIX_V3.6-2004-08-16-EN.iso 5bc8e9fee2a8be0b7180fcf3e49b5386 KNOPPIX_V3.6-2004-08-16-EN.iso
Monto l'immagine (notare l'opzione -o loop per montare un file) come filesystem sotto /mnt/iso:
# mkdir /mnt/iso # mount -t iso9660 -o loop /mnt/hdc1/"Knoppix 3.6"/KNOPPIX_V3.6-2004-08-16-EN.iso /mnt/iso
copiandone il contenuto su hda2, mantenendo attributi e permessi dei file:
# cp -afr /mnt/iso/* /mnt/hda2
Disponendo invece del CD-ROM di Knoppix, se ne copia semplicemente il contenuto in hda2.
Ripulisco la directory dai file non essenziali (ad esempio la directory boot e i file autorun.* per avviare da CD-ROM, ormai inutili), ottenendo
# ls -alR /mnt/hda2
total 17 drwxr-xr-x 4 root root 4096 Dec 5 17:55 . drwxr-xr-x 5 505 100 160 Dec 5 19:07 .. dr-xr-xr-x 2 root root 4096 Dec 4 17:44 Demos dr-xr-xr-x 3 root root 4096 Dec 5 05:28 KNOPPIX -r--r--r-- 1 root root 315 Dec 5 17:55 index.html /mnt/hda2/Demos: total 3124 dr-xr-xr-x 2 root root 4096 Dec 4 17:44 . drwxr-xr-x 4 root root 4096 Dec 5 17:55 .. -r--r--r-- 1 root root 55 Feb 20 2004 .directory -r--r--r-- 1 root root 6421 May 14 2002 OpenSourceSong-LICENSE.txt -r--r--r-- 1 root root 323 Aug 13 2001 OpenSourceSong-README.txt -r--r--r-- 1 root root 3170106 Oct 4 2002 OpenSourceSong.ogg /mnt/hda2/KNOPPIX: total 709524 dr-xr-xr-x 3 root root 4096 Dec 5 05:28 . drwxr-xr-x 4 root root 4096 Dec 5 17:55 .. -r--r--r-- 1 root root 725253780 Aug 22 19:22 KNOPPIX -r--r--r-- 1 root root 10130 May 9 2004 KNOPPIX-FAQ-EN.txt -r--r--r-- 1 root root 10577 May 9 2004 KNOPPIX-FAQ-ES.txt -r--r--r-- 1 root root 12056 May 9 2004 KNOPPIX-FAQ-FR.txt -r--r--r-- 1 root root 11852 May 9 2004 KNOPPIX-FAQ-IT.txt -r--r--r-- 1 root root 9733 May 9 2004 KNOPPIX-FAQ-NL.txt -r--r--r-- 1 root root 11352 May 9 2004 KNOPPIX-FAQ.txt -r--r--r-- 1 root root 18487 Oct 3 2003 LICENSE.txt -r--r--r-- 1 root root 2207 Apr 27 2004 README_Security.txt -rw-r--r-- 1 root root 338276 Dec 5 05:26 background.png dr-xr-xr-x 2 root root 4096 Aug 22 04:08 images -r--r--r-- 1 root root 8634 Aug 22 04:06 index.html -r--r--r-- 1 root root 10573 Aug 22 04:06 index_dk.html -r--r--r-- 1 root root 8171 Aug 22 04:06 index_en.html -r--r--r-- 1 root root 11835 Aug 22 04:06 index_es.html -r--r--r-- 1 root root 9617 Aug 22 04:06 index_fr.html -r--r--r-- 1 root root 10390 Aug 22 04:06 index_it.html -r--r--r-- 1 root root 10580 Aug 22 04:06 index_jp.html -r--r--r-- 1 root root 10437 Aug 22 04:06 index_nl.html -r--r--r-- 1 root root 13131 Aug 22 04:06 index_ru.html -r--r--r-- 1 root root 9946 Aug 21 06:25 knoppix-cheatcodes.txt -r--r--r-- 1 root root 15 Aug 22 04:35 knoppix-version -r--r--r-- 1 root root 2680 Aug 22 21:00 md5sums /mnt/hda2/KNOPPIX/images: total 216 dr-xr-xr-x 2 root root 4096 Aug 22 04:08 . dr-xr-xr-x 3 root root 4096 Dec 5 05:28 .. -r--r--r-- 1 root root 6148 Aug 4 10:01 .DS_Store -r--r--r-- 1 root root 172842 Aug 22 02:56 knoppix-header.gif -r--r--r-- 1 root root 15227 Aug 22 03:40 knoppix-logo.gif -r--r--r-- 1 root root 934 Aug 22 02:46 sidefill.gif -r--r--r-- 1 root root 2464 Aug 22 03:30 topleft.gif
Aggiustamenti. All'avvio di KDE, Knoppix cerca nella partizione hda2 un file index.html da aprire nel browser Konqueror. Se necessario, modifico index.html in modo che carichi in un frame la pagina introduttiva KNOPPIX/index_it.html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<title>KNOPPIX 3.6</title>
</head>
<frameset rows="100%,*" framespacing=0 border=0>
<frame src="KNOPPIX/index_it.html" frameborder=0 scrolling="auto" noresize="noresize">
</frameset>
</html>
All'avvio, Knoppix carica come sfondo l'immagine background.png e poi lo sfondo configurato dall'utente per KDE. Perché i due sfondi coincidano, converto lo sfondo default_blue.jpg da me scelto in una immagine PNG che salvo come background.png in /mnt/hda2/KNOPPIX.
Ricavato da The Linux Bootdisk HOWTO, vedi note a fondo pagina.
La procedura d'avvio di un PC inizia con l'esecuzione di un programma dalla ROM, il BIOS, che carica il contenuto del settore 0 del cilindro 0 del disco d'avvio e tenta di eseguirlo. Detto settore d'avvio principale o Master Boot Record (MBR) può contenere l'inizio del kernel di un sistema operativo o un programma detto boot loader che individua il kernel, lo carica e lo esegue, oppure rimandare ad altri boot loader installati nel primo settore di altre partizioni. Un comune boot loader per i sistemi Linux è LILO.
Il kernel inizializza i gestori (driver) dei dispositivi e i propri dati interni, quindi legge, da una posizione interna alla propria immagine detta ramdisk word, dove e come trovare il filesystem da montare come directory radice (root filesystem). Se non lo trova, si arresta.
Caricato e montato il filesystem radice, appare un messaggio tipo VFS: mounted root (ext2) readonly.
In certe situazioni, per ragioni di spazio e velocità, il kernel carica il filesystem radice in un disco RAM o ramdisk, una porzione di memoria RAM che emula un disco, da un file compresso.
Il filesystem radice caricato contiene il necessario per continuare la procedura d'avvio. Dal percorso /bin o /sbin, il kernel lancia il programma init, che cerca alla riga sysinit nel proprio file di configurazione /etc/inittab il nome di uno script che monta i dispositivi — tra cui eventuali immagini di filesystem che espandano quello appena caricato — abilita lo swap e imposta altri servizi di base necessari al sistema, quindi torna a init che entra nel runlevel stabilito alla riga initdefault di inittab. La riga indica un programma, di solito getty, che si occupa delle comunicazioni fra tastiera e schermo e invoca il programma login per gestire l'accesso al sistema.
In una distribuzione standard il kernel corrisponde di solito al file vmlinuz, e il filesystem radice è contenuto in miniroot.gz.
Knoppix 3.6 permette di scegliere tra i kernel 2.4 e 2.6, corrispondenti ai file linux24 e linux26, che creano un disco RAM in cui caricare il filesystem radice contenuto rispettivamente nei file compressi minirt24.gz e minirt26.gz, la cui procedura di init espande il filesystem con il contenuto dell'immagine KNOPPIX/KNOPPIX, situata nella partizione passata da LILO al kernel come parametro, che contiene il resto del sistema.
Ora occorre installare LILO per poter avviare la partizione di boot hda1.
Consultata la ponderosa documentazione su LILO e la sua configurazione, monto /dev/hda1 come /mnt/hda1 e vi copio i file linux24, linux26, minirt24.gz, minirt26.gz presi dall'immagine ISO.
Creo sotto /mnt/hda1 una directory etc e vi pongo il seguente file lilo.conf,
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
read-only
prompt
timeout=50
default=knoppix
single-key
message=/boot/message
image=/linux24
label=knoppix
alias=1
initrd=/minirt24.gz
append="fromhd=/dev/hda2 ramdisk_size=100000 init=/etc/init home=/dev/hda4 myconf=/dev/hda4 apm=power-off lang=it"
root=/dev/hda2
read-only
image=/linux26
label=knoppix26
alias=2
initrd=/minirt26.gz
append="fromhd=/dev/hda2 ramdisk_size=100000 init=/etc/init home=/dev/hda4 myconf=/dev/hda4 apm=power-off lang=it"
root=/dev/hda2
read-only
compilato ricalcando il file di configurazione del boot loader isolinux presente nell'immagine ISO, per permettere all'utente di scegliere se avviare Knoppix con il kernel 2.4 o 2.6. Questo file è letto all'installazione di LILO e ad ogni avvio del sistema.
boot=/dev/hda indica a LILO di installarsi nel settore d'avvio principale (Master Boot Record, MBR) del disco. Indicando una partizione, ad esempio boot=/dev/hda1, LILO si installerebbe nel primo settore di quella partizione.
install=/boot/boot.b specifica il file che il comando lilo copia sul settore d'avvio, il binario vero e proprio del boot loader.
message=/boot/message indica a LILO il percorso del file con il messaggio da visualizzare all'avvio,
map=/boot/map dove creare il file map.
prompt stabilisce di attendere per 5 secondi (timeout=50) che l'utente scelga quale sistema avviare, scrivendone il nome label e premendo Invio o premendo il tasto alias, prima di avviare quello predefinito (default=knoppix);
single-key permette di avviare le immagini premendo i tasti indicati da alias nelle relative sezioni.
Ogni sezione image=kernel corrisponde a un kernel da avviare, passandogli parametri nelle stringhe append. La voce initrd specifica il percorso del filesystem d'avvio da caricare in memoria, root il dispositivo da montare come radice, label e alias la stringa da scrivere o il tasto da premere per selezionare quel kernel.
Tramite append, nel nostro caso LILO passa al kernel i seguenti parametri:
ramdisk_size=100000 con le dimensioni in byte del disco RAM da creare (valore copiato dalla configurazione di isolinux);
apm=power-off (Advanced Power Management) per spegnere automaticamente il computer in uscita da Knoppix (idem);
init=/etc/init che indica dove cercare, nel filesystem radice estratto dal file specificato dalla direttiva initrd, la posizione del programma init che deve proseguire l'inizializzazione del sistema;
fromhd=/dev/hda, che indica in quale partizione cercare l'immagine KNOPPIX/KNOPPIX per espandere il filesystem;
home=/dev/hda4 che indica la partizione in cui trovare la directory persistente dell'utente, successivamente creata;
myconf=/dev/hda4 che indica la partizione in cui risiederanno i file di configurazione creati da Knoppix su richiesta dell'utente;
lang=it che indica di usare la lingua italiana.
Dato che lilo.conf contiene un riferimento a /dev/hda, sotto /mnt/hda1 creo una directory dev e vi copio quanto segue dalla /dev del ramdisk di tomsrtbt,
# cp -dpR /dev/console /mnt/hda1/dev # cp -dpR /dev/kmem /mnt/hda1/dev # cp -dpR /dev/mem /mnt/hda1/dev # cp -dpR /dev/null /mnt/hda1/dev # cp -dpR /dev/ram0 /mnt/hda1/dev # cp -dpR /dev/tty[0-6] /mnt/hda1/dev # cp -dpR /dev/fd[01]* /mnt/hda1/dev # cp -dpR /dev/hda* /mnt/hda1/dev # cp -dpR /dev/hdb* /mnt/hda1/dev # cp -dpR /dev/hdc* /mnt/hda1/dev # cp -dpR /dev/hdd* /mnt/hda1/dev
(melius abundare quam deficere) con le opzioni, suggerite dalla documentazione,
-d, --no-dereference
Copy symbolic links as symbolic links rather than copying the files that they point to, and preserve hard link relationships between source files in the copies.
-p, --preserve
Preserve the original files’ owner, group, permissions, and timestamps.
-R, --recursive
Copy directories recursively.
Distinto da -r, Copy directories recursively, copying all non-directories as if they were regular files.
Creo sotto /mnt/hda1 una directory boot e vi pongo il file boot.b. Poiché installerò LILO da tomsrtbt, e le versioni di LILO e boot.b devono corrispondere, copio quest'ultimo dal dischetto di tomsrtbt /mnt/fd0:
# cp -afr /mnt/fd0/boot.b /mnt/hda1/boot
La versione di LILO di tomsrtbt richiede, prima dell'installazione, la presenza nella cartella indicata in lilo.conf del suo boot.b, da cui copiare il codice del boot loader nel settore d'avvio. Con altre versioni il comando lilo crea boot.b automaticamente, oppure installa direttamente il boot loader nell'MBR senza creare boot.b.
Pongo in /mnt/hda1/boot un file message simile al seguente, contenente il messaggio che LILO dovrà visualizzare all'avvio, prima di caricare il kernel:
===========================================
Knoppix From Hard Disk
----------------------
2004.12.01
===========================================
Boot:
[1] knoppix boot Knoppix with Linux kernel 2.4
[2] knoppix26 boot Knoppix with Linux kernel 2.6
or press ENTER for default (1)
Se il primo carattere corrisponde all'esadecimale FF (che non so come scrivere nel file) prima di mostrare il messaggio si cancella lo schermo.
Il file /mnt/hda1/boot/map citato in lilo.conf e sotto elencato, verrà creato da LILO mentre si installa.
A questo punto ho la seguente struttura:
# ls -alR /mnt/hda1
total 4000 drwxr-xr-x 5 root root 1024 Dec 4 17:47 . drwxr-xr-x 5 505 100 160 Dec 5 19:07 .. drwxr-xr-x 2 root root 1024 Dec 5 19:21 boot drwxr-xr-x 2 root root 1024 Nov 22 15:39 dev drwxr-xr-x 2 root root 1024 Nov 22 15:57 etc -r--r--r-- 1 root root 1018412 Aug 22 05:22 linux24 -r--r--r-- 1 root root 1458194 Nov 18 17:19 linux26 -r--r--r-- 1 root root 799962 Aug 22 05:22 minirt24.gz -r--r--r-- 1 root root 789544 Nov 18 17:19 minirt26.gz /mnt/hda1/boot: total 56 drwxr-xr-x 2 root root 1024 Dec 5 19:21 . drwxr-xr-x 5 root root 1024 Dec 4 17:47 .. -rw-r--r-- 1 root root 512 Nov 22 15:59 boot.0300 -rwxr-xr-x 1 root root 4536 Nov 25 21:03 boot.b -rw------- 1 root root 46592 Nov 27 19:24 map -rwxr-xr-x 1 root root 352 Nov 22 14:39 message /mnt/hda1/dev: total 2 drwxr-xr-x 2 root root 1024 Nov 22 15:39 . drwxr-xr-x 5 root root 1024 Dec 4 17:47 .. crwxr-xr-x 1 505 100 4, 0 Nov 22 14:17 console brwxr-xr-x 1 505 100 2, 0 May 12 2001 fd0 brwxr-xr-x 1 505 100 2, 28 May 12 2001 fd0H1440 brwxr-xr-x 1 505 100 2, 40 May 12 2001 fd0h1440 brwxr-xr-x 1 505 100 2, 60 May 12 2001 fd0u1722 brwxr-xr-x 1 505 100 2, 1 May 12 2001 fd1 brwxr-xr-x 1 505 100 2, 29 May 12 2001 fd1H1440 brwxr-xr-x 1 505 100 2, 41 May 12 2001 fd1h1440 brwxr-xr-x 1 505 100 2, 61 May 12 2001 fd1u1722 brwxr-xr-x 1 505 100 3, 0 May 12 2001 hda brwxr-xr-x 1 505 100 3, 1 May 12 2001 hda1 brwxr-xr-x 1 505 100 3, 2 May 12 2001 hda2 brwxr-xr-x 1 505 100 3, 3 May 12 2001 hda3 brwxr-xr-x 1 505 100 3, 4 May 12 2001 hda4 brwxr-xr-x 1 505 100 3, 5 May 12 2001 hda5 brwxr-xr-x 1 505 100 3, 6 May 12 2001 hda6 brwxr-xr-x 1 505 100 3, 7 May 12 2001 hda7 brwxr-xr-x 1 505 100 3, 8 May 12 2001 hda8 brwxr-xr-x 1 505 100 3, 64 May 12 2001 hdb brwxr-xr-x 1 505 100 3, 65 May 12 2001 hdb1 brwxr-xr-x 1 505 100 3, 66 May 12 2001 hdb2 brwxr-xr-x 1 505 100 3, 67 May 12 2001 hdb3 brwxr-xr-x 1 505 100 3, 68 May 12 2001 hdb4 brwxr-xr-x 1 505 100 3, 69 May 12 2001 hdb5 brwxr-xr-x 1 505 100 3, 70 May 12 2001 hdb6 brwxr-xr-x 1 505 100 3, 71 May 12 2001 hdb7 brwxr-xr-x 1 505 100 3, 72 May 12 2001 hdb8 brwxr-xr-x 1 505 100 22, 0 May 12 2001 hdc brwxr-xr-x 1 505 100 22, 1 May 12 2001 hdc1 brwxr-xr-x 1 505 100 22, 2 May 12 2001 hdc2 brwxr-xr-x 1 505 100 22, 3 May 12 2001 hdc3 brwxr-xr-x 1 505 100 22, 4 May 12 2001 hdc4 brwxr-xr-x 1 505 100 22, 5 May 12 2001 hdc5 brwxr-xr-x 1 505 100 22, 6 May 12 2001 hdc6 brwxr-xr-x 1 505 100 22, 7 May 12 2001 hdc7 brwxr-xr-x 1 505 100 22, 8 May 12 2001 hdc8 brwxr-xr-x 1 505 100 22, 64 May 12 2001 hdd brwxr-xr-x 1 505 100 22, 65 May 12 2001 hdd1 brwxr-xr-x 1 505 100 22, 66 May 12 2001 hdd2 brwxr-xr-x 1 505 100 22, 67 May 12 2001 hdd3 brwxr-xr-x 1 505 100 22, 68 May 12 2001 hdd4 brwxr-xr-x 1 505 100 22, 69 May 12 2001 hdd5 brwxr-xr-x 1 505 100 22, 70 May 12 2001 hdd6 brwxr-xr-x 1 505 100 22, 71 May 12 2001 hdd7 brwxr-xr-x 1 505 100 22, 72 May 12 2001 hdd8 crwxr-xr-x 1 505 100 1, 2 May 12 2001 kmem crwxr-xr-x 1 505 100 1, 1 May 12 2001 mem crwxr-xr-x 1 505 100 1, 3 May 12 2001 null brwxr-xr-x 1 505 100 1, 1 May 12 2001 ram brwxr-xr-x 1 505 100 1, 0 May 12 2001 ram0 brwxr-xr-x 1 505 100 1, 1 May 12 2001 ram1 brwxr-xr-x 1 505 100 1, 2 May 12 2001 ram2 brwxr-xr-x 1 505 100 1, 3 May 12 2001 ram3 brwxr-xr-x 1 505 100 1, 4 May 12 2001 ram4 brwxr-xr-x 1 505 100 1, 5 May 12 2001 ram5 crwxr-xr-x 1 505 100 4, 0 May 12 2001 tty0 crw--w--w- 1 root root 4, 1 Nov 22 15:35 tty1 crw--w--w- 1 root root 4, 2 Nov 22 15:01 tty2 crw--w--w- 1 root root 4, 3 Nov 22 14:56 tty3 crw--w--w- 1 root root 4, 4 Nov 22 14:17 tty4 crwxr-xr-x 1 505 100 4, 5 Nov 22 14:17 tty5 crwxr-xr-x 1 505 100 4, 6 May 12 2001 tty6 /mnt/hda1/etc: total 3 drwxr-xr-x 2 root root 1024 Nov 22 15:57 . drwxr-xr-x 5 root root 1024 Dec 4 17:47 .. -rwxr-xr-x 1 root root 558 Nov 24 21:49 lilo.conf
Si installa infine LILO con il comando
# lilo -r /mnt/hda1
con l'opzione -r in modo che cerchi lilo.conf sotto /mnt/hda1/etc e i percorsi in lilo.conf siano relativi a /dev/hda1.
LILO risponde
Added knoppix (alias 1) * Added knoppix26 (alias 2)
creando map e boot.0300 sotto /mnt/hda1/boot.
Ad ogni successiva modifica di lilo.conf, del kernel o del file message occorrerà disinstallare LILO,
# lilo -r /mnt/hda1 -U /dev/hda
e reinstallarlo,
# lilo - r /mnt/hda1
per fargli aggiornare il file map.
Inserito finalmente il disco come primario master in una macchina adatta (*), si può assaporare l'incomparabile soddisfazione di assistere alla schermata con il proprio messaggio, che fa tanto hacker, seguita dalle righe multicolori in rapida successione di Knoppix che si avvia e si configura.
Il risultato di tutta questa fatica è una Knoppix veloce e adatta all'impiego in ambiti produttivi.
Nota. Il LILO installato è la versione minimale di tomsrtbt, che non ha nulla a che vedere con Knoppix ma, a parte il problema descritto nella nota (*), funziona ugualmente.
2006.04.15. Ho provato a installare un'altra versione di LILO per vedere se il problema del mancato avvio del disco persiste anche con una versione diversa.
Come primo problema, non trovavo una distribuzione live che insieme all'eseguibile LILO fornisse il corrispondente boot.b. Avevo letto che tale file dev'essere presente all'atto dell'installazione, altrove che viene creato quando si lancia il comando lilo, perciò ho provato a vedere cosa succede senza di esso.
Presumendo che LILO vada disinstallato usando la stessa versione che l'ha installato, ho disinstallato LILO con tomsrtbt:
# mkdir /mnt/hda1 # mount /dev/hda1 /mnt/hda1 # lilo -r /mnt/hda1 -U /dev/hda
quindi ho rinominato boot.b in una copia di riserva,
# cd /mnt/hda1/boot # mv boot.b backup.boot.b
e ho provato a reinstallare LILO,
# lilo - r /mnt/hda1
ottenendo il messaggio d'errore
open /boot/boot.b No such file or directory
Quindi, il LILO di tomsrtbt vuole il suo boot.b presente nella directory indicata in lilo.conf.
D'altra parte, con SystemRescueCD il comando lilo installa direttamente il boot loader nel settore d'avvio senza creare boot.b né richiederne la presenza.
Riavvio da SystemRescueCD e lancio di nuovo il comando per installare LILO, sempre senza boot.b:
# mkdir /mnt/hda1 # mount -t ext2 /dev/hda1 /mnt/hda1 # lilo - r /mnt/hda1
(Notare che in SystemRescueCD, diversamente che in tomsrtbt, il comando mount vuole esplicitamente dichiarato il tipo di filesystem). Il sistema operativo dà inquietanti messaggi circa la struttura di /dev, che essendo copiata dal dischetto di tomsrtbt può esser diversa da come l'aspetta, quindi annuncia la creazione degli alias. L'installazione di LILO è riuscita.
Riavviando dal disco fisso, il nuovo LILO usa un proprio menu d'avvio interattivo, con le opzioni specificate in lilo.conf.
Al termine di questa prova, poiché il nuovo LILO non cambia nulla circa l'avvio del disco, lo disinstallo e reinstallo quello di tomsrtbt, riportandomi alla situazione precedente.
Come ogni sistema Linux, Knoppix è personalizzabile secondo le preferenze dell'utente, che può ad esempio scegliere lo sfondo o dare all'interfaccia grafica KDE un aspetto simile a quello di Windows 98, per gli abitudinari.
In questa guida abbiamo riservato la partizione /dev/hda4 per i file di configurazione knoppix.sh e configs.tbz, creati e aggiornati da Knoppix scegliendo Save Knoppix configuration dal menu KNOPPIX - Configure di KDE e specificando hda4 come partizione di destinazione.
Scegliendo Create a persistent KNOPPIX home directory si salva la directory dell'utente cui corrisponde la sessione di KDE nel file knoppix.img, che viene creato in hda4 e verrà aggiornato automaticamente ad ogni uscita. A questo file di dimensione fissa ho assegnato in fase di creazione 100 MB (4) su circa 150 disponibili, per lasciare un po' di spazio ai file di configurazione e ad eventuali altri file. Si può accedere al contenuto della directory montando knoppix.img, che contiene un filesystem ext2, in tomsrtbt o altro sistema Linux:
# mkdir /mnt/hda4 # mkdir /mnt/home # mount /dev/hda4 /mnt/hda4 # mount -o loop /mnt/hda4/knoppix.img /mnt/home # cd /mnt/home # ls -al
e così via.
Non pretendo di aver detto tutto, e poi questa è una delle mie prime prove non banali. Alcune delle cose descritte le ho provate, altre soltanto lette e riportate come le ho capite. Per esempio la sezione Un condensato di teoria è interamente basata su letture piuttosto che esperimenti, e i condensati sono spesso imprecisi. Errori, inesattezze e approssimazioni possono perciò annidarsi a molteplici livelli. Chi ne notasse, o volesse aggiungere osservazioni o precisazioni, è benvenuto.
2006.04.15 Aggiunte alcune note su come cambiare la versione di LILO installata.
2005.07.05 Qualche piccola aggiunta alla sezione dubbi.
2005.05.05 Aggiunta la cronologia.
2005.04.26 Qualche aggiustamento del testo in occasione della traduzione in inglese.
2004.12.01 Stesura originale.
Come si fa a inserire all'inizio del file message il carattere che ripulisce lo schermo? Ho provato inutilmente tomshexd.
Il contenuto di KNOPPIX/KNOPPIX espande il filesystem radice inizialmente caricato nel ramdisk, o ricrea da capo nel ramdisk un nuovo filesystem?
R. Ho letto in qualche posto che crea un nuovo ramdisk – immagino sovrascrivendo il vecchio, e immagino anche che il kernel del sistema espanso possa anche differire da quello usato per l'avvio.
Detto file KNOPPIX che formato ha? sotto che forma contiene un file system? Non sono riuscito a montarlo così com'è.
R. È un filesystem compresso in un file che si comprime e decomprime con una apposita utility. Si veda Remastering Knoppix sul sito.
La partizione di swap è effettivamente utilizzata? Non vedo alcuna menzione a uno swapon tra le righe visualizzate all'avvio.
Come mai l'euro è così forte rispetto al dollaro, e così debole rispetto alla lira?
* Sul Pentium II 266 MHz con cui navigo, su cui intendevo usarlo, non vuol saperne di avviarsi per ragioni tutto sommato oscure. Lo stesso succede con un AMD K2 450.
All'avvio, appare il frustrante messaggio
Disco non di avvio - Sostituire il disco e premere un tasto
e dalla schermata del BIOS il disco non viene riconosciuto, neppure con l'autodetect. Parrebbe un problema hardware, ma
– su tante prove effettuate, per due volte il disco si è avviato;
– tomsrtbt vede, monta e legge il disco normalmente anche su questa macchina;
– usato in precedenza come secondario master con un'unica partizione FAT32, con Windows 98 su primario master, il disco non ha mai dato problemi;
– su un altro computer, un Pentium III 800 MHz, il disco è riconosciuto e avviato regolarmente e il sistema funziona, escludendo che il problema dipenda da errori nelle operazioni sopra illustrate.
Ogni suggerimento o spiegazione del mistero saranno benvenuti.
Ipotizzando che il mancato avvio del disco su tutte le macchine potesse imputarsi alla versione ridotta di LILO fornita da tomsrtbt, ho provato a installare la versione di SystemRescueCD, senza alcun cambiamento.
1. "how to put a Knoppix distribution onto a hard drive or a Compact Flash IDE drive without actually installing it. (The knoppix.net HowTo page uses the term "HD Based" to contrast this scenario with an "HD install"). A drive with such a "non-installed" OS is used just like a "live CD", with the drive serving in lieu of the CDROM. This allows the CDROM drive to be used for other things, and is typically faster and quieter than using the CDROM.
[...] Why not just do a normal hard drive installation? [...] one of the beauties of Knoppix is that it represents a complex unit that can be upgraded enmasse, with all local customization kept completely separate (not intermixed with the "installed" files). [...] there is an opportunity to adjust the default boot options to your liking, so you don't have to type in your desired kernel boot options every time you start Knoppix.
— Terry Gray, Running KNOPPIX from HD or CF Without Actually Installing it!
2. "Knoppix will take exclusive control of the partition it boots from, so saving configs to it or using it for your home directory will not work." — Terry Gray, Running KNOPPIX from HD or CF Without Actually Installing it!
3. "I chose to have a separate dedicated partition for the persistent home feature of Knoppix, rather than use the facility to create a loopback file for HOME that shares an existing partition. This makes it easier for me to deal with expanding the HOME partition if needed later, or to access HOME files in other contexts than the running Knoppix system. On the other hand, if you use the "knoppix.img" loopback file to save the HOME files in, you can use a single partition to share both it and the saved configuration files, knoppix.sh and configs.tbz." — Terry Gray, Running KNOPPIX from HD or CF Without Actually Installing it!
4. Inizialmente avevo assegnato a knoppix.img 140 MB, ma configs.tbz cresce in fretta e salvare nuove configurazioni è presto divenuto impossibile. Per conservare la configurazione, ho spostato lo knoppix.img esistente in un'altra partizione e in hda4 ne ho creato uno nuovo di 100 MB copiandovi, dopo aver montato entrambi, il contenuto del vecchio.
Georg O'Keefe, From Power Up To Bash Prompt
Terry Gray, Running KNOPPIX from HD or CF Without Actually Installing it!
Tom Fawcett, The Linux Bootdisk HOWTO. 3. Bootdisks and the boot process
Autore: Gatto Selvaggio. L'autore si riserva ogni diritto applicabile. L'uso da parte di terzi è soggetto a una licenza Creative Commons. Per usi non contemplati da tale licenza, compreso l'uso commerciale, o in caso di dubbi, si prega di attenersi al precetto "chiedete e vi sarà dato".
2732 visite dal 21 aprile 2005