Associazione software libero Ragusa
Cerca:
Linux User Group Ragusa
Utente attivo: 38.103.63.55 | OpzioniUtente PagineSimili

Navigazione


HomePage
ChiSiamo
QuestoSito
MailingList
NewsLetter
CalendarioEventi
--
DocumentiUtili
ProgettoScuola
--
IndicePagine
UltimeModifiche
UltimiCommenti
RicercaTestuale

Area utenti


UtentiDelSito
AggiungiNews
CreaPagina
PaginaTest
PagineOrfane
PagineMancanti

Aiuto


AreaAiuto
AiutoGenerale
AiutoFormattazione
AiutoAzioni
AiutoAree
AiutoNews
RichiesteDiAiuto

Collegamenti


Lug Catania
Lug Siracusa
Lug Palermo
Sputnix
Lug Caltanissetta
Lug Messina
Kalat Lug
NORP Lug
FreakNet Medialab
Poetry HackLab



Associazione Software Libero Ragusa : PreLinux

preLINUX

avvio di un sistema i86, MBR e boot loader


Premessa


In queste note verrà trattata, principalmente, la fase di avvio di un sistema di elaborazione con architettura Intel, intendendo con tale termine quei personal computer, discendenti dai PC IBM e IBM-compatibili, nati alla fine degli anni 70 e costruiti attorno al microprocessore Intel 8086/8088. Anche se i microprocessori montati negli attuali personal differiscono in maniera notevole dai loro predecessori, o si parla di microprocessori commercializzati con altri marchi (per esempio AMD), tuttavia tutto l'hardware che ruota attorno al microprocessore, per motivi di compatibilità, continua a funzionare a partire dagli stessi principi.

La prima parte del titolo scelto (pre) vuole indicare il fatto che le informazioni trattate sono utili per poter installare un sistema Linux in un elaboratore con dual boot, in modo cosciente e consapevole. Tali informazioni intendono fornire conoscenze da acquisire, possibilmente, prima, non solo di installare un sistema Linux su una macchina, ma anche, a parere dello scrivente, per un uso consapevole del computer stesso. I programmi di installazione delle distribuzioni, in generale, riescono a prendere tutte le decisioni che servono. Tuttavia una certa conoscenza di quello che accade, aiuta nella comprensione e consapevolezza delle varie scelte effettuate.

Memorie cancellabili e permanenti


Il computer è una macchina programmabile: per poter assolvere un compito qualsiasi è necessaria la presenza di un programma che istruisca il processore su quali parti dell'hardware fare intervenire e quando. In definitiva senza la presenza di un programma, il computer non può nemmeno essere avviato e questo comporterebbe, per esempio, la necessità di avere sempre presente, all'accensione della macchina, un programma che possa, quanto meno, inizializzare la macchina e permettere di utilizzarla. Si osservi, però, che la presenza di un programma in una memoria non cancellabile se, da una parte, permette di avviare la macchina e utilizzarla, dall'altra fa perdere il senso di macchina programmabile: non sarebbe più possibile utilizzare la stessa macchina per effettuare operazioni diverse. Per disporre, infatti, di tale opportunità è necessario avere a disposizione una memoria facilmente cancellabile, nella quale si può scrivere un programma diverso ogni volta che serve. Un po' come avviene a scuola, in una classe, quando si utilizza una lavagna: lo stesso supporto viene utilizzato più volte per scrivere cose diverse.

Si aggiunga, a quanto osservato precedentemente, la necessità di aggiornamento del software. Se il software normalmente fosse conservato in memorie non cancellabili, anche una semplice modifica dello stesso porterebbe, quanto meno, alla sostituzione dei circuiti in cui è registrato il programma da aggiornare. Il software dovrà quindi risiedere in memorie di massa, che permettono facilmente aggiornamenti e modifiche, e da queste verrà ricopiato in memoria quando serve. La maggior parte della memoria presente nel computer è, quindi, di tipo RAM, facilmente cancellabile.

Anche il sistema operativo, al pari degli altri software, è normalmente conservato in memorie di massa dalle quali verrà caricato in memoria centrale all'accensione della macchina. A questo punto viene spontanea una osservazione: se è vero, come è vero, che il sistema operativo ha il compito di mettere a disposizione e gestire le risorse dell'hardware, come è possibile caricare dalla memoria di massa il sistema operativo, se non c'è un sistema operativo che permette l'accesso all'hard disk, la lettura di qualcosa e il trasferimento in memoria centrale? Chiaramente se tutta la memoria di un computer è di tipo cancellabile, il problema non ha soluzione. Occorre una memoria di tipo permanente, la ROM, nella quale è registrato un piccolo programma che viene avviato all'accensione della macchina e che riesce a caricare, da un'opportuna zona di un hard disk particolare, il sistema operativo cui cede il controllo.

BIOS e POST


Il BIOS (Basic Input Output System) è un insieme di servizi per l'accesso ai dispositivi presenti nel computer (dischi, video, stampante, tastiera) registrati nella ROM. I servizi messi a disposizione riguardano operazioni elementari con i dispositivi, del tipo: lettura/scrittura di un settore su disco/dischetto, spostamento testina lettura/scrittura, invio di un byte alla stampante, settaggio del modo video ecc... Questi servizi sono l'interfaccia a più basso livello verso i dispositivi. Nel ROM BIOS è conservato anche il programma di boot che è quello lanciato in automatico all'accensione della macchina.

La prima fase della sequenza di boot che porta all'avvio della macchina è l'esecuzione del POST (Power-On Self Test), un programma di diagnostica che effettua un check della macchina (scheda video, memoria) per controllare se tutto è presente e funziona in maniera corretta. Per avere una percezione di questa fase basta fare attenzione ai messaggi che appaiono su video immediatamente dopo l'accensione. Si tenga presente, tuttavia, che questa è una fase estremamente veloce e, spesso, se ne nota la presenza solo quando ci sono problemi. Se qualche parte dei dispositivi non dovesse funzionare correttamente, il sistema emette delle segnalazioni sonore che sono codificate in modo da permettere di individuare la parte hardware che ha fatto riscontrare errori. Spesso la segnalazione sonora è accompagnata da un opportuno messaggio. Se vengono riscontrati errori, subito dopo la segnalazione sonora si ha il blocco del processo di avvio e la conseguente terminazione della sequenza di boot.

Successivamente viene eseguito il ROM BIOS degli altri dispositivi (hard disk principalmente). I risultati vengono mostrati su video in una schermata riassuntiva che mostra informazioni sul tipo di processore, la sua velocità, la quantità di memoria installata, i dispositivi installati.

Successivamente, se tutto è andato per il verso giusto, inizia la ricerca del drive di boot, cioè il drive che contiene un supporto in cui sono registrate le informazioni per il caricamento, in memoria centrale, del sistema operativo. È possibile, agendo sul settaggio dei parametri configurati nel BIOS, modificare la sequenza di ricerca del drive di boot. Durante il POST utilizzando il tasto F2 o Canc, in dipendenza del BIOS presente nella macchina, è possibile accedere alle opzioni utilizzate durante il boot. Per esempio, potrebbe essere settato l'avvio dall'hard disk, cioè la macchina è predisposta per cercare nell'hd il programma di avvio senza necessità di cercare altrove. In questo caso, modificando il valore in modo da permettere l'avvio da CD-ROM, uscendo dalla schermata, salvando la nuova impostazione e riavviando la macchina si ha la possibilità di avviare la macchina con un CD-ROM opportunamente predisposto. In generale c'è anche la possibilità di avviare la macchina utilizzando un floppy.

Dischi magnetici


Fra le memorie di massa, presenti in un computer, particolare importanza assumono gli hard disk che, grazie principalmente alle loro caratteristiche peculiari quali alta velocità e capacità, sono i candidati più accreditati, nella categoria delle memorie di massa, per essere utilizzati in modo intensivo nell'attività quotidiana, vuoi per conservare dati sui quali operare frequentemente, vuoi per conservare lo stesso sistema operativo.

Un hd è composto da uno o più dischi di alluminio (fra l'altro è questo il motivo per cui si chiamano hard disk, a differenza dei floppy disk in cui il disco non è di alluminio), rivestiti di sostanza magnetizzabile, in rotazione. La testina di lettura/scrittura (una per ogni superficie), è sospesa sopra le superficie, sostenuta da un cuscino d'aria. In scrittura quando la corrente arriva alla testina, viene magnetizzata la superficie sotto la testina e le particelle si allineano in un verso o in un altro in relazione alla corrente ricevuta (positiva/negativa). In lettura quando la parte magnetizzata passa sotto la testina viene indotta una corrente positiva o negativa a seconda dell'orientamento delle particelle e si può rileggere quanto conservato.

Una sequenza di bit scritta, mentre il disco compie una rotazione completa, si chiama traccia. Una traccia non è un solco nell'hd, ma un anello di sostanza magnetizzata, distinto dal successivo da un piccolo spazio. Ogni traccia è divisa in settori di lunghezza fissa (512 byte) preceduti da una parte che serve alla testina per sincronizzarsi prima della lettura/scrittura. I dati sono seguiti da una serie di informazioni utilizzate per il controllo/correzione degli errori. Fra un settore e l'altro si trova un piccolo spazio (intersector gap). Il braccio della testina si muove radialmente rispetto alla pila di dischi, permettendo così il raggiungimento di qualsiasi parte del disco. L'insieme delle tracce che si trovano, in un certo momento, sotto le testine di lettura/scrittura che si muovono in modo solidale, viene chiamato cilindro.

L'organizzazione dello spazio viene generata quando viene avviata la formattazione dell'unità. È durante la formattazione che il sistema operativo effettua una mappatura del disco, creando le tracce, i settori e le informazioni che servono per rintracciare i dati conservati nel disco, che quindi gli consentono l'accesso al disco stesso. Tutto ciò comporta, per esempio, che la capacità di stoccaggio teorica di un hd è diversa dalla capacità formattata che è quella effettivamente utilizzabile. Quest'ultima è inferiore di circa il 15% della capacità non formattata.

In un sistema Linux è possibile conoscere il modo in cui l'hard disk viene visto dal sistema, ovvero quella che viene chiamata la geometria del disco:

# /sbin/fdisk -l Disk /dev/hda: 20.0 GB, 20020396032 bytes 255 heads, 63 sectors/track, 2434 cylinders Units = cilindri of 16065 * 512 = 8225280 bytes ...


utilizzando il comando fdisk (possibile per l'utente root) con il parametro -l, è possibile vedere la cosiddetta geometria CHS (Cylinders, Heads, Sectors): nel caso dell'esempio 2434,255,63. Come evidenziato, nel manuale in linea, alla pagina del comando “Questa non è necessariamente la geometria fisica del disco” ma quella utilizzata per l'accesso al disco.

A questo punto si potrebbe osservare che si sta contraddicendo l'assunto di queste note: se si doveva parlare di ciò che è buono conoscere prima di una installazione di un sistema Linux, perché si utilizza un comando Linux? In realtà il comando utilizzato non ha lo scopo di mostrare un utilizzo al fine di essere riprodotto (magari lo si potrà eseguire, stando attenti, dopo aver installato un sistema Linux) ma ha solo uno scopo didattico: serve per poter fare vedere concretamente quanto esposto teoricamente.

Hard disk, controller e interfaccia IDE, device Linux


Un dispositivo qualunque collegato al computer (disco, stampante ...) è sempre composto da una parte meccanica e da una parte elettronica che ne controlla il funzionamento. La parte elettronica, chiamata appunto controller, è residente in genere in una scheda a cui è collegato, per mezzo di cavi, il dispositivo meccanico. I primi hard disk erano chiamati hardcards ad indicare il fatto che sia la parte meccanica che quella elettronica risiedevano in una scheda inserita in uno slot di espansione della scheda madre.

Successivamente, per motivi diversi non ultimo il fatto che un hd su scheda è soggetto a vibrazioni che lo possono danneggiare, il controller viene integrato e assemblato assieme al disco e il tutto può trovare alloggiamento in uno spazio, ricavato nel case del computer, per i drive. Il collegamento con la scheda madre è assicurato da un cavo che congiunge l'unità direttamente con il BUS: è quella tecnologia nota come interfaccia IDE/ATA (Integrated Drive Electronics), che si e' poi evoluta nel corso degli anni adottando standard di trasmissione sempre piu' veloci (EIDE, UDMA, fino ad arrivare all'ancora giovane Serial-ATA), pur mantendendo la stessa struttura di base.

Nella scheda madre degli attuali computer trovano posto due connettori IDE/ATA (AT Attachment chiamati così perché la prima volta furono usati nel computer IBM PC/AT) a 40 poli, uno per il canale primario (primary) ed uno per il canale secondario (secondary). Ad ognuno di questi connettori è possibile collegare, per mezzo di uno speciale cavo piatto, due dispositivi (hard disk, lettore CD-ROM/DVD, masterizzatore). Un dispositivo è montato come master, l'altro come slave ad indicare l'ordine di scansione dei dispositivi collegati. Il cavo utilizzato per il collegamento puo' essere a 40 conduttori, nel caso si utilizzi un bus fino a 25 MB/s, o a 80 conduttori per bus ad oltre 33 MB/s (protocollo UDMA33), dove ad ogni conduttore attivo viene alternato un conduttore di massa allo scopo di ridurre le interferenze. E' inoltre possibile aumentare il numero di periferiche ATA nel sistema installando un apposito controller aggiuntivo da inserire in uno slot PCI libero.

Una configurazione abbastanza comune potrebbe prevedere, per esempio, l'hard disk su cui è conservato il sistema operativo configurato come primary master e il canale secondario riservato per unità ottiche (lettore CD-ROM/DVD).

In Linux ad ogni dispositivo è associato uno speciale file, chiamato device per mezzo del quale si ha accesso al dispositivo stesso. Si tratta di file contenuti nella directory /dev. I dispositivi IDE sono riconosciuti con il nome hd, per cui si avrà:

Device Dispositivo associato

/dev/hdax Primary master
/dev/hdbx Primary slave
/dev/hdcx Secondary master
/dev/hddx Secondary slave

La x finale, presente in tutti i device elencati, è un numero associato alle partizioni in cui è diviso il dispositivo. Nel caso si sia installato un controller ATA aggiuntivo, alle unita' ad esso collegate verranno associati i file successivi in ordine alfabetico a partire da /dev/hde.

Hard disk e partizioni


Prima di poter formattare un hard disk, per poterlo utilizzare, è necessario stabilire in quante partizioni deve essere suddiviso, al limite una sola. Il primo hard disk presente nei personal computer aveva una capacità di 10Mb e, chiaramente, non c'era alcuna necessità di suddividerlo in più parti. Anche in questi casi è necessario tuttavia dichiarare che si vuole utilizzare una sola partizione per tutto l'hard disk. In pratica definire una partizione vuol dire stabilire i confini, in termini di cilindro iniziale e finale, che delimitano l'area che il sistema operativo può utilizzare per conservare i dati, anzi, per essere più precisi, le coordinate CHS di inizio e fine.

# /sbin/fdisk -l Disk /dev/hda: 20.0 GB, 20020396032 bytes 255 heads, 63 sectors/track, 2434 cylinders Units = cilindri of 16065 * 512 = 8225280 bytes Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 953 7654941 c W95 FAT32 (LBA) /dev/hda2 954 2434 11896132+ 5 Esteso /dev/hda5 954 1782 6658911 83 Linux /dev/hda6 1783 2336 4449973+ 83 Linux /dev/hda7 2337 2434 787153+ 82 Linux swap


Osservando l'output completo del comando fdisk si può notare che il disco di esempio, configurato come primary master (/dev/hda), è diviso in diverse partizioni. Per esempio l'ultima partizione /dev/hda7 comincia dal cilindro 2337 e termina al cilindro 2434.

L'esigenza di suddividere un disco in più partizioni è la conseguenza di diversi fattori. Solo per citarne alcuni:

-> A differenza dei primi dischi montati sui computer, gli attuali hanno capacità molto elevate. La suddivisione in più partizioni permette un raggruppamento più razionale dei dati conservati.
-> La suddivisione di un disco in, per esempio, due partizioni una per il sistema operativo e una per i dati, permette, per esempio, di aggiornare il sistema operativo, anche riformattando la partizione, senza perdere i dati che risiedono in una partizione diversa non interessata dalle modifiche.
-> La necessità o curiosità di provare più sistemi operativi porta a destinare, ad ogni sistema operativo installato, una o più partizioni distinte. Ogni sistema operativo infatti, per esempio, organizza lo spazio disponibile in modo diverso da qualsiasi altro. Oltretutto per avere la possibilità di utilizzare il sistema operativo scelto fra quelli installati è necessario, per motivi che saranno più chiari in seguito, avere i sistemi operativi in partizioni distinte.

Ogni sistema operativo rende disponibile un proprio strumento per generare le partizioni. Le informazioni relative alle partizioni in cui è stato suddiviso un disco vengono scritte nel primo settore del disco. Il settore 1 del cilindro 0 della testina 0, di 512 byte, chiamato MBR (Master Boot Record) contiene, fra l'altro, la tabella delle partizioni in cui sono conservate, appunto, tali informazioni.

Il modo in cui sono gestite le partizioni è rimasto pressoché invariato dai primi personal computer. Nella tabella delle partizioni c'è posto per la descrizione di soltanto quattro partizioni. Tale numero, esagerato ai tempi della nascita dei primi personal (si è già accennato al fatto che il primo disco aveva una capacità di 10Mb), si è rivelato insufficiente in rapporto alle capienze dei dischi attuali e alle esigenze di partizionamento di un sistema multi-boot. Per problemi legati alla compatibilità con l'hardware e il software precedente la limitazione delle quattro partizioni si è aggirata in questo modo:

-> In un disco possono esserci solo quattro partizioni primarie di cui solo una può essere attiva. La partizione attiva è la partizione da cui viene effettuato il boot.
-> Una delle partizioni ammissibili può essere una partizione estesa. Questo è un sotterfugio per aggirare il limite delle quattro partizioni senza modificare la tabella delle partizioni. La partizione estesa è, sostanzialmente, un contenitore di partizioni.
-> Nella partizione estesa possono essere generate tante partizioni logiche quante ne servono. In realtà un limite al numero delle partizioni logiche possibili esiste (24) ma è talmente elevato da non costituire un vero e proprio limite.

Nella tabella delle partizioni è presente la descrizione delle partizioni primarie, quando invece si tratta di partizione estesa, la descrizione, contiene l'indicazione di dove si trova su disco la tabella della partizione estesa che, a sua volta, contiene la descrizione della prima partizione logica e l'indicazione di dove si trova la prossima tabella della partizione estesa con la descrizione della seconda partizione logica e così via.

L'esempio di output di fdisk trattato in precedenza, per quanto riguarda le partizioni presenti

... Dispositivo Boot Start End Blocks Id System /dev/hda1 * 1 953 7654941 c W95 FAT32 (LBA) /dev/hda2 954 2434 11896132+ 5 Esteso /dev/hda5 954 1782 6658911 83 Linux /dev/hda6 1783 2336 4449973+ 83 Linux /dev/hda7 2337 2434 787153+ 82 Linux swap


mette in evidenza:

-> /dev/hda1 è una partizione primaria, la presenza di * nella colonna Boot indica, inoltre, che si tratta della partizione attiva.
-> /dev/hda2 è una partizione estesa che va dal cilindro 954 al cilindro 2434 (terza riga riportata dell'esempio)
-> /dev/hda5, /dev/hda6 e /dev/hda7 sono partizioni logiche contenute nella /dev/hda2. Infatti la /dev/hda5 comincia dal cilindro 954 e la /dev/hda7 termina nel cilindro 2434 che sono, appunto, i confini della /dev/hda2.

Si sarà notato che la numerazione delle partizioni logiche comincia da 5 (/dev/hda5 è la prima) nonostante non esistano le partizioni 3 e 4. In realtà la cosa è meno strana di quello che sembra: basta pensare al fatto che ci possono essere 4 partizioni primarie di cui una, che potrebbe essere la quarta, estesa. Nella partizione estesa possono esserci partizioni logiche la cui numerazione comincia, quindi, da 5.

Master Boot Record e boot-loaders


Il primo settore di un disco, i primi 512 byte, sono estremamente importanti: la tabella delle partizioni, che permette l'accesso al disco, è registrata in questo settore. Oltre alla tabella delle partizioni nel MBR è registrato il Master Boot Code: un piccolo programma che viene eseguito dal BIOS per avviare la fase di boot. Questo piccolo programma eventualmente è in grado di trasferire l'esecuzione al programma di boot registrato nel settore iniziale della partizione usata per l'avvio.

Chiaramente il meccanismo evidenziato permette, anche in presenza di più partizioni, l'avvio di un solo sistema operativo. Se nel computer sono installati più sistemi operativi il minimo che si richiede è avere la possibilità di scegliere quale sistema avviare fra quelli installati nel disco. Per provvedere a questa necessità sono stati sviluppati i boot-loaders. Un boot-loader è un programma che si installa nel MBR, quando avviato mostra un menù dei sistemi operativi installati nella macchina e, in rapporto alla scelta effettuata dall'utente, cede il controllo al sistema scelto.

Le diverse distribuzioni Linux installano un programma del genere. A seconda delle scelte effettuate si può trattare di LILO (LInux LOader) oppure di GRUB (GRand Unified Bootloader).

LILO e lilo.conf


La configurazione di LILO e' contenuta nel file /etc/lilo.conf. Questo file viene letto solamente al momento dell'installazione del boot loader nel MBR. Per effettuare l'installazione occorre lanciare, con i privilegi dell'utente root, l'eseguibile lilo; questo programma prendera' come input il file di configurazione e installera' il codice necessario nel MBR del disco che abbiamo specificato (questo nella maggioranza dei casi) o nel primo settore della specifica partizione da avviare.

# esempio di lilo.conf # opzioni globali boot=/dev/hda install=/boot/boot-text.b prompt timeout=150 # opzioni specifiche per Linux image=/boot/vmlinuz-2.6.5-1.358 label=Linux root=/dev/hda5 read-only initrd=/boot/initrd-2.6.5-1.358.img # opzioni per altri sistemi other=/dev/hda1 label=Windows


Come si puo' notare, un file lilo.conf e' composto da una parte contenente le opzioni generali, che in questo caso contiene le direttive che istruiscono lilo sulla collocazione del boot loader, sul fatto che dovra' installare un menu' testuale, e che dovra' attendere 15 secondi l'eventuale input dell'utente prima di avviare il sistema predefinito (il primo ad essere successivamente menzionato).
Di seguito vi sono una o piu' sezioni per ogni sistema operativo che intendiamo utilizzare. Per ogni sistema Linux che inseriremo nel file andra' specificato il percorso del file contenente l'immagine del kernel e le opzioni da passare al kernel per il suo avvio corretto. Va sottolineato il fatto che possiamo inserire piu' kernel, purche' questi siano effettivamente rintracciabili nel percorso fornito con l'opzione image=; questo vuol dire che se ad esempio abbiamo due installazioni di Linux in diverse partizioni del disco, dobbiamo necessariamente montare la partizione contenente il sistema che non stiamo usando al momento e fornire il percorso che porta al kernel di quel sistema. Lilo creera' una mappa contenente la corrispondente collocazione su disco dei kernel secondo lo schema CHS precedentemente citato, quindi all'avvio della macchina non verra' montata nessuna partizione ma verra' semplicemente cercato il settore in cui fisicamente si trova il kernel che occorre caricare.
Nel caso invece di altri sistemi, specificati con la direttiva other=, occorre che questi risiedano in una partizione avviabile, e che quindi abbiano il proprio programma per l'avvio installato nel settore iniziale della loro partizione a cui lilo cedera' il controllo per l'avvio.

GRUB e grub.conf


Il file /boot/grub/grub.conf contiene la configurazione del boot loader: GRUB legge da questo file che si trova in una normale directory. Questo comporta il vantaggio che, qualora si avesse necessità di modificare il file di configurazione, non è necessario re-installare GRUB: al prossimo riavvio, quando GRUB legge dal file di configurazione, le nuove impostazioni saranno disponibili.

# esempio di grub.conf default=0 timeout=10 splashimage=(hd0,4)/boot/grub/splash.xpm.gz title Linux root (hd0,4) kernel /boot/vmlinuz-2.6.5-1.358 ro root=LABEL=/ initrd /boot/initrd-2.6.5-1.358.img title Windows rootnoverify (hd0,0) chainloader +1


-> default indica quale delle voci presenti (quelle che cominciano con title) deve essere selezionata di default: nell'esempio la prima (la numerazione comincia da 0)
-> timeout è il tempo lasciato all'utente per modificare la scelta del sistema operativo da avviare. Prima che siano trascorsi 10 secondi si può effettuare una scelta diversa, altrimenti viene avviato il sistema di default
-> splashimage indica una immagine da visualizzare come sfondo del menù della scelta del sistema da avviare. Sono da notare due cose: l'immagine è in formato compresso (gz) per velocizzare il caricamento e le capacità di GRUB di scompattare l'immagine. La posizione del file di immagine è espressa specificando il disco (primary master hd0, le convenzioni adottate da GRUB sono diverse da quelle adottate da Linux), la partizione (quella che Linux chiama /dev/hd5) e il cammino completo.

Nell'esempio proposto c'è la possibilità di avviare due sistemi operativi diversi, quelli specificati nelle due entry title. In ogni caso caso si tratta di etichette che possono contenere qualsiasi cosa. Subito dopo sono specificate le azioni che devono essere eseguite e qui bisogna notare le capacità di GRUB di avviare sistemi che si comportano in modi molto diversi nella fase di boot:

-> nel caso Linux, GRUB è in grado di caricare l'immagine del kernel (le due azioni kernel e initrd), basta specificare dove si trova la directory root, in modo da poterla montare, e il cammino delle immagini da caricare
-> nel caso Windows, GRUB passa il controllo al boot di Windows che si trova nel settore di boot del disco in cui è installato. L'opzione +1 della chainloader indica appunto che bisogna collegarsi al primo settore della partizione specificata. Il comando rootnoverify è formalmente identico a root solo che, stavolta, non è richiesto di montare la partizione.

Riferimenti


Risorse consultate per la realizzazione di queste note e disponibili per approfondimenti degli argomenti trattati:

Auto-documentazione di Linux: man fdisk e info grub.
http://www.pcguide.com di Charles M. Kozierok
Architettura dei computer di Andrew S. Tanenbaum
Non ci sono commenti su questa pagina. [Pannello Commenti]