Web Analytics Made Easy - Statcounter


https://www.amazon.it/dp/B0CT9YL557

We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
a2 --- Caricamento di GNU/Linux

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico] [volume] [parte]


Capitolo 19.   Caricamento di GNU/Linux

Il caricamento di un sistema operativo avviene perché, all'atto dell'accensione di un elaboratore, il firmware (il BIOS degli elaboratori i386) si occupa di leggere ed eseguire un piccolo programma residente all'inizio del disco fisso o di un dischetto. Negli elaboratori i386 questa parte iniziale del disco fisso è l'MBR, o il Master boot record, costituito da un solo settore (512 byte). Quando si fa riferimento a un dischetto, si parla di settore di avvio o di boot. Questo piccolo programma iniziale si occupa a sua volta di avviare il kernel (direttamente o attraverso un programma intermedio).

Nei sistemi con architettura i386 esistono diversi modi per effettuare il caricamento di GNU/Linux; in questo capitolo si trattano i metodi di avvio più facili da comprendere, mentre in capitoli separati viene descritto l'uso di GRUB e di LILO, che sono invece i sistemi di avvio più importanti per un sistema GNU/Linux.

19.1   Kernel in un dischetto

Dal punto di vista tecnico, il modo più semplice di avviare GNU/Linux è quello di creare un disco di avvio contenente solo il kernel. Nell'esempio seguente si copia il kernel vmlinuz nel dischetto contenuto della prima unità.(1)

cp vmlinuz /dev/fd0[Invio]

La copia fatta in questo modo non è la copia di un file in un dischetto che contiene un file system: il dischetto diventa il file stesso e questo tipo di dischetto non può contenere più di un file. Questo particolare è molto importante e deve essere compreso necessariamente.

Il file del kernel Linux è qualcosa di molto raffinato: contiene il codice necessario per autoavviarsi dopo essersi decompresso. Infatti, la parte più consistente del kernel viene compressa alla fine del procedimento di compilazione. Naturalmente, il kernel non ha sempre la necessità di autoavviarsi, ma questa possibilità è importante per facilitare ancora di più l'avvio del sistema.

Il kernel è così in grado di avviarsi da solo, ma può non essere stato predisposto per utilizzare esattamente il file system principale desiderato, così come altri elementi predefiniti potrebbero non corrispondere alla realtà. Si può utilizzare il programma rdev (2) per alterare questi elementi direttamente nel file del kernel o nell'immagine copiata nel dischetto:

rdev [opzioni] [immagine [altre_opzioni]]

Il programma rdev legge o imposta i parametri di un'immagine di un kernel. L'immagine in questione può essere indicata come un nome di file, o un nome di dispositivo (tipicamente /dev/fd0).

Tabella 19.1. Scomposizione della sintassi in base ad alcune opzioni.

Sintassi Descrizione
rdev immagine
Visualizza il nome di dispositivo corrispondente al file system principale (root) indicato attualmente nell'immagine. Si tratta di visualizzare il nome del file di dispositivo corrispondente alla partizione che viene utilizzata per innestare la directory radice del file system.
rdev immagine dispositivo
Specifica un nuovo nome di dispositivo da utilizzare come partizione da innestare nella directory radice.
rdev -R immagine 1
Indica di attivare inizialmente in sola lettura il dispositivo da innestare nella directory radice.
rdev -R immagine 0
Indica di attivare inizialmente in lettura e scrittura il dispositivo da innestare nella directory radice.

Segue la descrizione di alcuni esempi.

  • rdev /dev/fd0 /dev/hdb1[Invio]

    Configura l'immagine contenuta nel dischetto inserito nella prima unità, definendo che la partizione da innestare nella directory radice è la prima del secondo disco fisso.

  • rdev -R /dev/fd0 1[Invio]

    Definisce che al momento dell'avvio del kernel la partizione principale sia innestata in sola lettura in modo che il file system possa essere controllato.

Un programma analogo per alterare queste informazioni nel file del kernel è knl (3) che forse è un po' più semplice da utilizzare:

knl [--kernel=]immagine [opzioni]

Come già per rdev, l'immagine può essere costituita da un file su disco o dal nome di un file di dispositivo che la contiene (come nel caso di un dischetto).

Tabella 19.2. Alcune opzioni.

Opzione Descrizione
[--kernel=]
immagine
Il file del kernel o il file di dispositivo che corrisponde al kernel può essere indicato come argomento iniziale, prima delle altre opzioni, oppure può essere argomento dell'opzione --kernel.
--flags=ro
Imposta l'apertura del file system principale in sola lettura.
--flags=none
Azzera tutti gli indicatori.
--noram
Annulla le opzioni --prompt e --ram.
--prompt
Richiede l'utilizzo di un disco RAM iniziale e fa sì che venga richiesto l'inserimento del dischetto da caricare in memoria.
--ram=scarto
Specifica l'utilizzo di un disco RAM iniziale, tenendo conto che l'immagine del file system inizia a partire dal blocco indicato (blocchi da 512 byte). Il valore dello scarto non può essere superiore a 8 191 blocchi.
--root=dispositivo
Specifica il file di dispositivo da usare per innestare il file system principale. Il file di dispositivo viene indicato come di consueto, con la forma /dev/..., dove il prefisso /dev/ può essere omesso. Al posto del file di dispositivo si può indicare la parola chiave boot, a indicare di usare lo stesso file di dispositivo corrispondente all'unità usata per l'avvio.
--root=mode-n.m
Al posto di indicare il nome di un file di dispositivo, si può specificare direttamente il numero primario (n) e il numero secondario (m) corrispondente.
--swap=dispositivo
--swap=mode-n.m
Specifica il file di dispositivo per fare riferimento a una partizione o a un disco da usare come area di scambio per la memoria virtuale (swap).
--video={ask|evga|vga|n}
Specifica la modalità video, attraverso una parola chiave intuitiva o un numero, da 0 a 65 499.

Segue una sequenza di esempi, partendo da un kernel contenuto nel file vmlinuz-test, contenuto nella directory corrente, nel quale si modificano alcune opzioni di funzionamento in fasi successive. Gli esempi non sono descritti, ma si mostra ogni volta l'esito del risultato attraverso knl, senza l'indicazioni di altre opzioni oltre al kernel stesso.

knl vmlinuz-test[Invio]

Kernel image configuration:

    Image:       vmlinuz-test

    Root Dev:    
    Swap Dev:    Mode-0.0

    Flags:       RO
    Video Mode:  VGA

    Ram Disk:    No

knl vmlinuz-test --root=/dev/hdb1[Invio]

knl vmlinuz-test[Invio]

Kernel image configuration:

    Image:       vmlinuz-test

    Root Dev:    Mode-3.65
    Swap Dev:    Mode-0.0

    Flags:       RO
    Video Mode:  VGA

    Ram Disk:    No

knl vmlinuz-test --swap=/dev/hdb2[Invio]

knl vmlinuz-test[Invio]

Kernel image configuration:

    Image:       vmlinuz-test

    Root Dev:    Mode-3.65
    Swap Dev:    Mode-3.66

    Flags:       RO
    Video Mode:  VGA

    Ram Disk:    No

knl vmlinuz-test --video=evga[Invio]

knl vmlinuz-test[Invio]

Kernel image configuration:

    Image:       vmlinuz-test

    Root Dev:    Mode-3.65
    Swap Dev:    Mode-3.66

    Flags:       RO
    Video Mode:  XVGA

    Ram Disk:    No

19.2   Loadlin

Se si utilizza ancora il Dos, si può avviare un kernel Linux attraverso il programma Loadlin, (4) quando è in funzione il Dos. Loadlin è quindi un programma Dos, che deve poter raggiungere il file del kernel all'interno di una partizione Dos.

Per conoscere i dettagli sul funzionamento di Loadlin conviene consultare la documentazione allegata al programma.

Prima di poter utilizzare Loadlin occorre almeno avere avviato una volta il sistema GNU/Linux, allo scopo di trasferire un kernel nella partizione Dos. Se in principio è stato deciso di non utilizzare sistemi come GRUB o LILO per l'avvio, l'unica possibiltà per avviare GNU/Linux è data da un dischetto di avvio, magari uno di quelli che contiene solo il kernel.

Attraverso GNU/Linux si deve copiare il programma LOADLIN.EXE nel disco Dos e con esso anche il file del kernel. Quindi si può arrestare il sistema nel modo tradizionale e riavviare l'elaboratore facendo in modo di mettere in funzione il sistema operativo Dos.

Una volta riavviato il sistema operativo Dos si dovrebbero trovare i due file copiati poco prima attraverso GNU/Linux: VMLINUZ (o qualunque altro nome riferito al file del kernel) e LOADLIN.EXE.

Per avviare in modo semplice il sistema GNU/Linux mentre è in funzione il Dos, dovrebbe bastare il comando seguente. Si suppone che la partizione dedicata a GNU/Linux sia la seconda del primo disco fisso ATA.

C:\> LOADLIN C:\VMLINUZ root=/dev/hda2 ro[Invio]

In pratica, si dice a LOADLIN.EXE di caricare il file del kernel C:\VMLINUZ in modo da utilizzare la seconda partizione del primo disco fisso (/dev/hda2) cominciando con un accesso in sola lettura (in modo da permetterne il controllo prima che il sistema sia messo completamente in funzione).

Prima di avviare LOADLIN.EXE, vale forse la pena di disattivare gli eventuali sistemi di memoria cache del disco fisso. Se si usa SMARTDRV.EXE conviene scaricare la memoria cache nel modo seguente:

C:\> SMARTDRV /C[Invio]

In generale, la cosa migliore dovrebbe essere l'inserimento della chiamata a LOADLIN.EXE all'interno di un sistema di file AUTOEXEC.BAT e CONFIG.SYS che permetta l'avvio di configurazioni multiple.

L'utilizzo del programma LOADLIN.EXE è il modo più ragionevole di avviare un sistema GNU/Linux installato in un file system UMSDOS. Ciò proprio perché un file system UMSDOS si trova nella stessa partizione utilizzata per il Dos.

C:\> LOADLIN C:\VMLINUZ root=/dev/hda1 rw[Invio]

In questo caso, si dice a LOADLIN.EXE di caricare il file del kernel C:\VMLINUZ in modo da utilizzare la prima partizione del primo disco fisso (/dev/hda1) cominciando con un accesso sia in lettura che in scrittura.

Con un file system UMSDOS non è possibile iniziare in sola lettura perché non c'è un programma in grado di eseguire il controllo e la correzione di questo tipo di file system. Di conseguenza, l'unico modo per controllare e correggere eventuali errori in un file system UMSDOS è l'uso di programmi Dos quali CHKDSK.EXE, SCANDISK.EXE e simili.

19.3   SYSLINUX

SYSLINUX (5) è un sistema di avvio di GNU/Linux basato fondamentalmente su dischetti con file system Dos-FAT. A prima vista può sembrare qualcosa di superfluo, come una sorta di tentativo ulteriore di far convivere Dos e GNU/Linux in un uno stesso disco. In realtà non è così, perché si tratta di un sistema che facilita notevolmente la realizzazione di dischetti di avvio.

SYSLINUX mette a disposizione un programma Dos, SYSLINUX.EXE, e un programma per GNU/Linux, syslinux, che predispone un dischetto, inizializzato precedentemente, con un file system Dos-FAT in modo che questo possa avviare un kernel Linux. Si procede nel modo seguente per creare un dischetto di avvio nella prima unità a dischetti:

C:\> SYSLINUX A:[Invio]

Oppure:

syslinux /dev/fd0[Invio]

Quello che si ottiene è l'inserimento nel dischetto del programma LDLINUX.SYS e la creazione di un settore di avvio opportuno, che si occupa di avviarlo. Il minimo indispensabile per avviare il sistema è l'aggiunta nel dischetto (nella directory radice) di un kernel Linux denominato convenzionalmente LINUX. Tuttavia, è conveniente predisporre un file di configurazione, SYSLINUX.CFG, in modo da poter sfruttare effettivamente i vantaggi di questo sistema di avvio.

Una volta creato il dischetto, il kernel può essere sostituito quanto si vuole e così anche la configurazione nel file SYSLINUX.CFG. Il settore di avvio del dischetto si limita ad avviare il programma LDLINUX.SYS, il quale provvede poi a leggere la configurazione e ad avviare il kernel.

19.3.1   Configurazione

Il file SYSLINUX.CFG, che serve alla configurazione di questo sistema di avvio, è un file di testo normale, in cui le righe sono terminate indifferentemente con il carattere <LF> o con la sequenza <CR><LF> (in pratica, si può creare sia utilizzando strumenti Dos che Unix).

Concettualmente assomiglia al file /etc/lilo.conf di LILO, con il vantaggio, rispetto a questo, di non dover creare un collegamento tra il settore di avvio, la configurazione e il kernel. Qui tutto viene gestito dal programma LDLINUX.SYS che si occupa di leggere la configurazione all'avvio e di agire di conseguenza.

L'esempio seguente mostra le caratteristiche principali di questo file di configurazione. In particolare permette di avviare il kernel contenuto nel file LINUX, con diversi comandi di avvio.

DEFAULT linux
TIMEOUT 0
DISPLAY INTRO.TXT
PROMPT 1

F1 INTRO.TXT
F2 VARIE.TXT
 
LABEL linux
        KERNEL LINUX

LABEL floppy
        KERNEL LINUX
        APPEND "ramdisk_start=0 load_ramdisk=1 prompt_ramdisk=1"

LABEL hda1
        KERNEL LINUX
        APPEND "root=/dev/hda1 ro"

Segue la descrizione delle direttive che appaiono nell'esempio.

  • DEFAULT linux

    Specifica di utilizzare in modo predefinito l'impostazione identificata dall'etichetta linux. Se questa non fosse stata specificata, significherebbe che si vuole avviare il kernel contenuto nel file linux.

    Dal momento che in un file system Dos-FAT non conta la differenza tra maiuscole e minuscole tra i nomi dei file, in pratica si tratta del file LINUX.

  • TIMEOUT 50

    Dopo 50 decimi di secondo (cinque secondi), senza che sia stato selezionato alcunché, viene avviato il sistema predefinito (in questo caso linux). Volendo fare in modo che sia obbligatorio l'intervento dell'utente, si può porre questo valore a zero.

  • DISPLAY INTRO.TXT

    Visualizza il contenuto del file INTRO.TXT che si deve trovare nella directory radice del dischetto. Attraverso questo sistema, si possono dare delle istruzioni all'utente sulla scelta delle varie voci di avvio, o sul modo di comporre un comando per il kernel.

  • PROMPT 1

    Fa in modo che venga visualizzato l'invito all'utente a inserire qualcosa: boot:. Se il valore abbinato fosse zero, questo invito non verrebbe visualizzato.

  • F1 INTRO.TXT

    Abbina la visualizzazione del contenuto del file INTRO.TXT attraverso la pressione del tasto [F1].

  • F2 VARIE.TXT

    Abbina la visualizzazione del contenuto del file VARIE.TXT attraverso la pressione del tasto [F2].

  • LABEL linux

    Definisce il nome dell'etichetta linux utilizzata in questo caso per fare riferimento all'avvio predefinito.

  • KERNEL LINUX

    Indica di utilizzare il file LINUX, collocato nella directory radice del dischetto, quando si seleziona l'etichetta linux.

  • LABEL floppy

    Definisce il nome dell'etichetta floppy utilizzata in questo caso per fare avviare un sistema a partire da un'immagine contenuta in un dischetto, caricandola in un disco RAM. Come è già stato visto, viene sempre utilizzato il kernel contenuto nel file LINUX; ma qui si definiscono alcuni parametri di avvio, specifici per il caricamento in un disco RAM, attraverso l'istruzione APPEND.

  • LABEL hda1

    Definisce il nome dell'etichetta hda1 utilizzata in questo caso per fare avviare un sistema a partire dalla prima partizione del primo disco fisso. Come è già stato visto, viene sempre utilizzato il kernel contenuto nel file LINUX; ma qui si definiscono i parametri di avvio necessari al caricamento del file system principale da /dev/hda1, in sola lettura.

19.3.2   File di aiuto

SYSLINUX ha una caratteristica importante: consente di predisporre diversi file di aiuto selezionabili dall'utente, prima dell'avvio del kernel. Questi file possono essere visualizzati premendo i tasti funzionali, secondo quanto definito all'interno del file di configurazione.

Dal momento che SYSLINUX non visualizza l'elenco dei tasti utilizzabili, è opportuno che uno di questi file sia visualizzato inizialmente, attraverso l'istruzione DISPLAY; inoltre è opportuno che in tutti questi file ci sia il riepilogo dei vari tasti che possono essere premuti.

Dischetto di avvio multiuso.

        "linux"  avvia il kernel nel modo predefinito
        "floppy" avvia un dischetto come ramdisk
        "hda1"   avvia il filesystem contenuto nella partizione /dev/hda1

Per ulteriori informazioni si può leggere la guida abbinata al tasto F2.

F1=INTRO  F2=VARIE

19.4   Parametri di avvio

Il kernel non è sempre in grado di individuare da solo tutti i dispositivi fisici installati e a volte si desidera comunque di potergli dare delle istruzioni prima del suo avvio. Si tratta di parametri che gli possono essere passati in vari modi:

  • per mezzo dell'invito di avvio (boot prompt) quando si avvia attraverso LILO o SYSLINUX;

  • per mezzo di un'istruzione append, contenuta nel file /etc/lilo.conf quando si avvia attraverso LILO, oppure nel file SYSLINUX.CFG quando si avvia attraverso SYSLINUX;

  • attraverso gli argomenti di Loadlin;

  • attraverso l'aggiunta di argomenti finali nel comando kernel di GRUB.

Questi parametri, quando sono forniti, vengono indicati tutti insieme, separati tra loro da uno spazio. Ogni parametro non può contenere spazi.

Nella sezione seguente vengono indicati solo alcuni tipi di questi parametri. In particolare, non vengono descritti quelli specifici per i vari tipi di hardware.

19.4.1   Opzioni generali di avvio ed esempi

Si tratta di indicazioni date al kernel senza riferimenti a tipi particolari di hardware.

Tabella 19.9. File system principale.

Sintassi Descrizione
root=dispositivo
Permette di indicare un dispositivo differente da quello predefinito per innestare il file system principale.
ro
Permette di definire un accesso iniziale al file system principale in sola lettura. Questa è la condizione necessaria per poter eseguire un controllo dell'integrità del file system prima di passare alla gestione normale.
rw
Permette di definire un accesso iniziale al file system principale in lettura e scrittura.

Tabella 19.10. Memoria.

Sintassi Descrizione
mem=dimensione
In caso di necessità, permette di definire la dimensione di memoria RAM che si ha a disposizione effettivamente. Si può indicare un numero esadecimale nella forma 0x..., oppure un numero decimale normale, seguito eventualmente dalla lettera k, che sta a indicare kibibyte (simbolo: «Kibyte»), oppure dalla lettera M, che sta a indicare mebibyte (simbolo: «Mibyte»).

Tabella 19.11. Varie.

Sintassi Descrizione
init=programma_iniziale
Permette di definire il nome, completo di percorso, del programma che deve svolgere le funzioni di «processo iniziale» (Init). Il kernel provvede da solo a cercare /sbin/init e in alternativa /etc/init. Come ultima risorsa tenta di avviare /bin/sh. Se per qualunque motivo non funziona il programma Init standard, si può tentare di avviare il sistema facendo partire la shell al suo posto.
reserve=indirizzo_i_o,estensione\
  \[,indirizzo_i/o,estensione]...
Permette di isolare una o più zone di indirizzi di I/O in modo che il kernel non esegua alcun tentativo di identificazione di componenti in quella zona. Di solito, dopo un'opzione del genere, si inseriscono le dichiarazioni esplicite dei dispositivi che ci sono effettivamente. Il primo valore, quello che esprime l'indirizzo, viene espresso attraverso una notazione esadecimale del tipo consueto (0x...), mentre il secondo è un numero decimale.

Come è stato accennato nella sezione 19.4, esistono diversi modi per fornire al kernel delle opzioni di avvio. Questi esempi dovrebbero chiarire le possibilità che ci sono a disposizione.

  • boot: linux1 root=/dev/hda1 ro[Invio]

    Attraverso la riga di comando di avvio di LILO, oppure di SYSLINUX, si avvia la configurazione identificata dal nome linux1, si indica la partizione che si vuole innestare come file system principale e l'accesso iniziale in sola lettura.

  • grub> kernel (hd0,0)/boot/vmlinuz-2.4.2 root=/dev/hda1 ro[Invio]

    Questo esempio riguarda il comando kernel di GRUB, con il quale si vuole avviare il kernel corrispondente al file /boot/vmlinuz-2.4.2 contenuto nella prima partizione del primo disco fisso, dando al kernel le stesse informazioni dell'esempio precedente.

  • C:\> LOADLIN C:\VMLINUZ root=/dev/hda1 ro[Invio]

    Come nell'esempio precedente, ma si avvia il sistema attraverso il programma Loadlin utilizzando il kernel C:\VMLINUZ.

  • append="reserve=0x300,64 ether=11,0x300,eth0 ether=12,0x320,eth1"
    

    Attraverso l'istruzione append del file /etc/lilo.conf si riserva la zona di indirizzi I/O tra 30016 e 33F16 e di seguito si specificano due schede di rete Ethernet che utilizzano proprio quella zona di indirizzi.

  • APPEND "reserve=0x300,64 ether=11,0x300,eth0 ether=12,0x320,eth1"
    

    Si tratta dello stesso esempio mostrato poco sopra, utilizzando però SYSLINUX e mettendo l'istruzione nel file SYSLINUX.CFG.

19.5   1024 cilindri

Quando si utilizza l'architettura i386, il firmware, cioè il BIOS, solitamente non è in grado di accedere a settori oltre il 1 024-esimo cilindro (cioè oltre il cilindro numero 1 023). Di conseguenza, se il programma che si occupa di caricare il kernel (qualunque sia il sistema operativo) si deve avvalere delle funzioni del BIOS per questo, non può raggiungere file oltre quel limite dei 1 024 cilindri.

Generalmente, i sistemi di avvio installati nel disco fisso si avvalgono di porzioni di codice installato all'interno di settori che altrimenti sarebbero inutilizzati, con cui gestiscono in proprio il caricamento del kernel, senza dover utilizzare le funzioni limitate del BIOS. In tal modo, si riesce normalmente a raggirare il problema, che comunque rimane quando si dispone di un BIOS molto vecchio.

Quando ci si trova in difficoltà la directory /boot/ di un sistema GNU/Linux, assieme a tutto il suo contenuto, e il kernel, devono trovarsi fisicamente entro il 1 024-esimo cilindro. In pratica, per essere certi che questo si avveri, si può utilizzare una partizione apposita per questi file, nella parte sicura del disco. È poi sufficiente innestare questa partizione nel file system generale, eventualmente riproducendo la directory /boot/ attraverso un semplice collegamento simbolico.

19.6   Riferimenti

Appunti di informatica libera 2006.01.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


1) Probabilmente, questa possibilità riguarda solo gli elaboratori i386.

2) util-linux: rdev   GNU GPL

3) KNL   GNU GPL

4) Loadlin   GNU GPL

5) SYSLINUX   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome caricamento_di_gnu_linux.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com