Revisione 2005.08.07. Originale aggiornato: http://www.insulae.net/doc/dsl.poor.zip.it.php
2005.07.02
Occorrente
Preparazione del disco Zip
Preparazione di Damn Small Linux
Un condensato di teoria
Preparazione del dischetto di avvio
Dubbi
Cronologia
Damn Small Linux è una distribuzione live derivata di Knoppix che comprende un insieme minimo di applicazioni in modo da contenere lo spazio occupato dal sistema a soli 50 MB. Volevo provarne una "installazione del povero" su un dischetto Zip da 100 MB, preparato in analogia con l'installazione di Knoppix qui descritta – una partizione d'avvio e una per i file di configurazione – per avere una minidistribuzione su un supporto riscrivibile. Tuttavia, poiché non si può avviare il computer dal lettore per porta parallela, non è stato possibile tenere l'intero sistema su un disco Zip autonomo e ho ripiegato su un caricamento da Zip tramite dischetto d'avvio.
L'interesse per l'avvio da Zip sta nel disporre di una distribuzione Live minimale di Linux cui, al contrario che a quelle situate su CD-ROM, si possano apportare modifiche.
Un sistema Linux per eseguire le operazioni. Ho usato tomsrtbt per digitare i comandi sotto descritti. Se si intende preparare un disco autonomo occorre installare un boot loader nell'MBR della partizione di avvio, e pare che la versione di LILO di tomsrtbt non sia adatta ad avviare tutte le macchine, per cui sarebbe preferibile usare un altro sistema. Il punto è disporre di versioni concomitanti di LILO e boot.b. Ricorrendo al dischetto d'avvio specifico per Damn Small Linux, il problema non si presenta.
L'immagine ISO di Damn Small Linux 1.2.1, dsl-1.2.1.iso.
L'immagine bootfloppy.img del dischetto d'avvio di Damn Small Linux.
Un lettore Iomega Zip da 100 MB. Se il lettore è IDE o SCSI si può avviare il computer da questo e il dischetto d'avvio non è necessario. Si potrebbe provare a usarne il contenuto copiandolo nella partizione d'avvio del disco Zip, ma occorrerebbe comunque installare un boot loader nell'MBR.
Sotto tomsrtbt, il lettore Zip corrisponde al dispositivo sda4, che il comando fdisk /dev/sda tratta come una partizione di sda. Perché proprio sda4, pare dipenda da una scelta del fabbricante. Non sembra possibile creare al suo interno delle partizioni, o ripartizionare il disco, quindi pare obbligata l'adozione di una sola partizione per l'avvio, l'immagine compressa del sistema ed eventuali aggiunte e file di configurazione. Usando un dischetto per l'avvio basta una partizione, ma si potrebbe desiderare una partizione di swap.
Il disco Zip è inizialmente formattato per Windows, perciò distruggo la partizione e la ricreo, ottenendo
# fdisk /dev/sda
P Device B Start End Blocks Id System 1 /dev/sda4 * 1 96 98288 83 Linux
Formatto sda4 come ext2
# mke2fs -c /dev/sda4
e cancello la directory lost+found in essa creata dalla formattazione:
# mkdir /mnt/sda4 # mount /dev/sda4 /mnt/sda4 # cd /mnt/sda4 /mnt/sda4# rm -fR lost+found
L'immagine ISO di Damn Small Linux si trova sul disco secondario master hdc1, che monto sotto /mnt/hdc1:
# mkdir /mnt/hdc1 # mount -t vfat /dev/hdc1 /mnt/hdc1
Verifico l'impronta MD5,
/mnt/hdc1/dsl/# more dsl-1.2.1.iso.md5.txt 133824b6a606c314510bc20b698d397b dsl-1.2.1.iso /mnt/hdc1/dsl/# md5sum dsl-1.2.1.iso 133824b6a606c314510bc20b698d397b dsl-1.2.1.iso
e 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/dsl/dsl-1.2.1.iso /mnt/iso
copiandone la directory KNOPPIX su sda4, mantenendo attributi e permessi:
# cp -a /mnt/iso/KNOPPIX /mnt/sda4
La directory KNOPPIX contiene un file KNOPPIX con l'immagine compressa del sistema operativo. Sul forum di Damn Small Linux si consiglia di confrontare l'impronta md5 del file KNOPPIX copiato con quella dell'originale in /mnt/iso/KNOPPIX, per assicurarsi che sia stato trasferito correttamente, raccomandando di smontare e rimontare il dischetto Zip prima di ogni confronto.
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.
Il CD di Damn Small Linux 1.2.1 contiene il kernel 2.4, corrispondente al file linux24, che crea un disco RAM in cui caricare il filesystem radice contenuto nel file compresso minirt24.gz, la cui procedura di init espande il filesystem con il contenuto dell'immagine KNOPPIX/KNOPPIX, situata nella partizione passata dal boot loader al kernel come parametro, che contiene il resto del sistema.
Il sito di Damn Small Linux fornisce l'immagine bootfloppy.img di un dischetto d'avvio tramite il boot loader syslinux, di cui ho modificato il file di configurazione syslinux.cfg per avviare dall'unità Zip /dev/sda4. Disponendo invece di un'unità Zip avviabile, vi si potrebbe copiare i file necessari all'avvio, contenuti ad esempio nella partizione d'avvio del disco preparato in precedenza per Knoppix, installare e configurare LILO.
Creo il dischetto d'avvio con
dd if=boot.img of=/dev/fd0
Si ottiene un dischetto DOS che contiene i seguenti file:
total 1214 drwxr-xr-x 2 root root 7168 Jan 1 1970 . drwxr-xr-x 4 505 100 128 Jul 27 19:58 .. -rwxr-xr-x 1 root root 115 May 9 20:50 boot.msg - messaggio visualizzato all'avvio -rwxr-xr-x 1 root root 1592 May 9 20:17 f2 - opzioni visualizzate premendo F2 -rwxr-xr-x 1 root root 1595 May 9 20:17 f3 - opzioni visualizzate premendo F3 -rwxr-xr-x 1 root root 256 Jul 29 2004 german.kbd - mappa della tastiera tedesca -r-xr-xr-x 1 root root 7836 Jul 29 2004 ldlinux.sys - parte del boot loader non situata nell'MBR -rwxr-xr-x 1 root root 994807 Jul 29 2004 linux24 - il kernel 2.4 -rwxr-xr-x 1 root root 33780 Jun 12 16:29 logo.16 - immagine richiamata da boot.msg -rwxr-xr-x 1 root root 187852 Nov 5 2004 minirt24.gz - file system radice per l'avvio -rwxr-xr-x 1 root root 2241 Jul 5 12:37 syslinux.cfg - file di configurazione del boot loader syslinux
L'avvio di Damn Small Linux 1.2.1 avviene tramite syslinux 2.04, boot loader per l'avvio da dischetti DOS.
In analogia con la configurazione di LILO per l'avvio di Knoppix, modifico il file di configurazione syslinux.cfg come segue:
DEFAULT linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=792 initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
TIMEOUT 300
PROMPT 1
DISPLAY boot.msg
F1 boot.msg
F2 f2
F3 f3
LABEL dsl
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=792 initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
LABEL memtest
KERNEL memtest
APPEND initrd=
LABEL dsl-txt
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=normal initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
LABEL expert
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=791 initrd=minirt24.gz nomce BOOT_IMAGE=expert
LABEL fb1280x1024
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=794 xmodule=fbdev initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
LABEL fb1024x768
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=791 xmodule=fbdev initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
LABEL fb800x600
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=it apm=power-off vga=788 xmodule=fbdev initrd=minirt24.gz nomce noapic quiet BOOT_IMAGE=knoppix
LABEL failsafe
KERNEL linux24
APPEND zipboot fromhd=/dev/sda4 toram ramdisk_size=100000 init=/etc/init lang=us vga=normal atapicd nosound noscsi nousb nopcmcia nofirewire noagp nomce nodhcp xmodule=vesa initrd=minirt24.gz BOOT_IMAGE=knoppix
LABEL userdef
KERNEL linux24
APPEND ###############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
All'avvio viene visualizzato boot.msg, che mostra a schermo l'immagine logo.16 e spiega di premere Invio, F2 o F3. Premere tali tasti visualizza i file f2 (opzioni di lancio, utili anche per sapere cosa passare al kernel come parametri append) e f3 (codici numerici delle scelte disponibili per risoluzione e numero di colori dello schermo), mentre F1 ripete boot.msg.
Seguono sezioni LABEL-KERNEL-APPEND formate da un'etichetta da digitare al prompt boot:, il relativo kernel (qui sempre linux24) e i parametri da passare al kernel tramite append, che differiscono principalmente per la modalità video impostata.
Nelle stringhe append modifico ciò che mi sembra pertinente, lasciando il resto come nella configurazione originale:
fromhd=/dev/sda4 indica di cercare nell'unità Zip per porta parallela l'immagine KNOPPIX/KNOPPIX per espandere il filesystem;
toram istruisce di caricare l'immagine nella RAM; specifica le dimensioni in byte del disco RAM da creare (valore di Knoppix, già presente nella configurazione originale di syslinux);
ramdisk_size=100000
apm=power-off (Advanced Power Management) per spegnere automaticamente il computer in uscita dal sistema (idem);
init=/etc/init che indica dove cercare, nel filesystem radice estratto dal file minirt24.gz (specificato dove?), la posizione del programma init che deve proseguire l'inizializzazione del sistema;
lang=it che indica di usare la lingua italiana.
Obbedendo supinamente a istruzioni reperite sul Web, aggiungo il parametro zipboot per caricare l'immagine da Zip (non basta fromhd? forse zipboot specifica che /dev/sda4 è uno Zip).
Lascio le opzioni che non conosco così come sono.
Avviando dal dischetto preparato, con il disco Zip presente nel lettore, il sistema viene caricato, piuttosto lentamente, dallo Zip e infine si avvia. Ho provato Damn Small Linux sul Pentium II 266 MHz su cui il disco fisso preparato con Knoppix 3.6 non è riuscito ad avviarsi (probabilmente per problemi della versione di LILO di tomsrtbt).
La seconda volta che l'ho provato, forse perché nell'unità era presente un CD, durante l'avvio il sistema s'č messo a cercare qualcosa dal CD-ROM, ovviamente vuoto, e invece dell'autoriconoscimento è partito un menu di configurazione in cui immettere a mano i valori. La prima volta non era successo.
Lamentazioni. Con mia sorpresa, benché sia eseguito in RAM non è veloce come mi attendevo. Il mouse arranca lento, e non c'è a portata di mano un modo per configurarlo. Trascinare le finestre visualizzandone il contenuto comporta ritardi notevoli tra i movimenti del mouse e quelli della finestra.
Tipico di Knoppix, le frustranti macchinazioni necessarie per accedere al dischetto e al disco fisso dal desktop: accedere come root, montare /dev/hdc1, cambiarne i permessi in modo da renderlo leggibile dal file manager dell'interfaccia grafica. Se Windows ritiene di concedere all'utente Windows l'accesso a tutte le unità, perché una distribuzione Linux deve renderlo difficile?
Di Linux in generale, aborro i font standard di X e l'uso di widget diversi da parte delle applicazioni.
2005.07.02 Prima stesura provvisoria di questo documento, riferita al tentativo di creare un disco Zip avviabile.
2005.07.06 Stesura relativa alla creazione di un disco Zip avviato da dischetto.
2005.08.07 Completamento del documento.
Per i dubbi generici si veda la corrispondente sezione del documento sull'installazione di Knoppix; quelli specifici sono evidenziati in giallo in questa pagina.
Il sito di Damn Small Linux
Booting DSL from a Zip Drive sul forum di Damn Small Linux
Kyle Dansie, Zip Drive Mini HOWTO, versione 2.5 del 7 marzo 2002. 6.3 Re-format as a native Linux disk
Ripartizionare il disco Zip come sda1, come indicato in questa pagina, a me non è riuscito.
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".
3629 visite dal 7 agosto 2005