[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Grub e avvio iso e delirio



Pol Hallen wrote:

> e' possibile impostare in grub l'avvio di immagini (iso) tipo gparted,
> ultimate boot cd, trinity rescue, etc.? (immagini chiaramente che
> vengono gestite dalla ram)

Prendi quanto segue con beneficio d'inventario, ho studiato qualcosa sul
processo di boot, ma può benissimo essere che qui di seguito ci siano
scritte un sacco di stupidaggini.

Le immagini ISO bootabili hanno il loro bootmanager (tipicamente isolinux),
e *devono* usare quello per fare il boot a causa di limitazioni
tecnologiche del BIOS dei PC che sostanzialmente vede il CDROM come fosse
un floppy disk (!). Non puoi farle partire da GRUB, perché grub può solo
passare il controllo ad un altro bootloader (con l'opzione chainloader), ma
non ad un altro bootmanager. Infatti GRUB si aspetta sempre un numero di
partizione ed i CDROM non sono partizionabili. Secondo me l'unica
possibilità (sempre che funzioni) è trattare le ISO come fossero partizioni
contenenti altri sistemi operativi, quindi con l'opzione chainloader come
si fa con le partizioni windows, in modo che GRUB passi il controllo ad
isolinux copiando la ISO su una partizione dell'hard disk formattata
ISO9660 (ovvero fare un dd dalla iso alla partizione dell'hard disk).
Tuttavia in questo modo perdi tutta la comodità e comunque dubito che possa
funzionare, visto che isolinux integra anche un bootmanager.

Certo che in teoria ci dovrebbe essere la possibilità di farlo (ovvero di
fare un hack sul codice di GRUB) in modo che, sapendo in che punto del
CDROM inizia la parte di codice del bootloader di isolinux (quindi testando
esattamente quale versione di isolinux c'è sul cd), GRUB carichi in ram
quel codice passi ad eseguire direttamente quello, aggirando il bootmanager
di isolinux, e passando in qualche modo al bootloader le informazioni che
necessita e che avrebbe altrimenti ottenuto dal suo bootmanager... e se sul
CD non c'è isolinux ma qualche altro bootmanager? La questione si fa
quantomai complicata.

La soluzione elegante che vedrei sarebbe un'interfaccia di comunicazione fra
un generico bootmanager ed un generico bootloader, cosa che probabilmente è
realizzabile via software senza intervento del BIOS attraverso:
* un parametro per il kernel 
* un modulo del kernel che, a fronte di quel parametro, si occupi di avviare
il bootloader in questione dopo che il kernel di linux è già stato
caricato, sostituendo ovviamente all'immagine di Linux che c'è già in ram
qualsiasi altra cosa venga caricata facendo il boot della nuova unità.

Questo permetterebbe di fare il boot di qualsiasi filesystem ovunque esso si
trovi, indipendentemente dal fatto che il BIOS lo supporti o meno, basta
che sia raggiungibile attraverso il kernel di linux (eventualmente anche
con rootfs montato), quindi si potrebbe anche fare direttamente il boot
dell'immagine ISO di Lenny pubblicata su webdav senza nemmeno scaricarla in
locale (almeno non prima di fare il boot). Oppure fare il boot di un CD in
un lettore esterno collegato via parallela su adattatore PCMCIA infilato in
un brigde su PCI, roba che il BIOS non si sogna nemmeno di supportare.
Perché il tutto possa funzionare sia il bootloader sia il bootmanager
devono essere compatibili con questa ipotetica interfaccia di
comunicazione, la quale ad oggi non esiste se non nella mia testa... però
sarebbe bello se esistesse! "DELIRIO" potrebbe essere il nome di questa
nuova cosa, che sta per "Delirio Enhanced LInux-based Remote Initialization
Overlay". La facciamo?

Lucio.

-- 
Virtual Bit di Lucio Crusca
via Isonzo, 5 - 10069 Villar Perosa (TO) - Italy
http://www.sulweb.org



Reply to: