Indice |
Avvio "normale"
- Terminato il Power On Self Test, (il controllo dei componenti piu' importanti),il BIOS cerchera' un'eventuale scheda video e provvedera' a caricarne il firmware, procedera' al riconoscimento degli altri componenti ed eseguira' alcuni test, laddove supportato configurera' le periferiche PnP (Plug 'n Play).
Fatto cio' cerchera' un supporto (un disco rigido, un pendrive etc. e tramite PXE anche in rete locale) da cui caricare il sistema operativo (da qui in poi lo scrivero' S.O.).
Piu' precisamente lo fa' leggendo il primo settore del disco (MBR) individuato e caricandolo nella RAM.
Poiche' un settore (512 bytes) è una quantita' di memoria troppo ridotta affinche' un S.O. possa starci e anche perche' su un computer possono essere installati piu' S.O., per ragioni sia pratiche che di compatibilita' fra sistemi diversi si e' scelta una soluzione: il boot loader.
Si tratta di un programmino la cui funzione e' di permettere la scelta (ove possibile) del S.O. da caricare ed il suo caricamento vero e proprio, sia esso Microsoft Disk Operating System/Windows, FreeDOS, GNU Linux, Mac OS, etc.
Avvio di più S.O. - stile Windows
Windows 9x
Nella directory radice del disco principale (spesso C:\) è presente (in genere) un file denominato 'msdos.sys' del quale ci interessano tre opzioni:
BootMulti=0/1 (attiva la scelta del S.O.) BootGui=0/1 (in modalita' grafica) BootMenu=0/1 (in modalita' menu' semplice)
Il menu' per la selezione lo creeremo invece in un altro file: config.sys anch'esso gia' presente al quale aggiungeremo:
[Menu] menuitem=configurazione1,etichetta
configurazione(1) sara' una sezione che creeremo sempre in questo file per indicare le operazioni necessarie al funzionamento del S.O., etichetta sara' la voce che ci apparira' per scegliere il S.O. da avviare (per ogni voce dovremo ripetere questo comando e crearne una sezione relativa).
optional: menucolor=colore_testo,colore_sfondo [0-15] [configurazione1] ; questa e' tipica di win95 include=memhi include=emsno include=ifs include=sver include=cdrom
poi creeremo una sezione comune per le opzioni comuni a piu' sistemi che non vogliamo ripetere:
es.
[common] dos=high dos=umb
ora rendiamo la cosa operativa: c'e' un ultimo file da modificare si chiama 'autoexec.bat'
in esso ci preoccuperemo di inserire la stringa seguente, la cui funzione e' di 'saltare' alla parte di caricamento del S.O. scelto in base alla risposta data nel menu' di scelta:
goto %CONFIG%
ora ci mancano le sezioni per il caricamento...
es.
:configurazione1 SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WINDOWS\SYSTEM;C:\; ... SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\WINDOWS\SYSTEM;C:\; win
"comando" per avviare windows, in pratica chiediamo di eseguire win.com, presente nella cartella di installazione di Windows
Windows NT/XP/2003
L'NTLDR ci semplifica questo lavoro (rispetto al sistema precedentemente descritto) e piu' precisamente:
Nella directory radice del disco 'principale' troveremo un file: questa volta si chiama boot.ini e ci potremo lavorare in due modi,
come fatto prima, e cioe' modificandone il contenuto con un editor di testo semplice oppure tramite un programmino 'bootcfg'.
Il file Boot.ini si presenta cosi' (generalmente, in questo esempio si tratta di una installazione di Windows XP):
[boot loader]
timeout=30 --- indica il tempo dato all'utente per scegliere
default=multi(0)disk(1)rdisk(0)partition(1)\WINDOWS --- indica la scelta predefinita
[operating systems]
multi(0)disk(1)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /fastdetect
Quest'ultima riga equivale al menuitem visto in precedenza (con qualche differenza) a sinistra troviamo l'indicazione del disco e della cartella
a destra l'etichetta e le opzioni da passare al caricatore.
Di conseguenza volendo poter avviare piu' S.O. bisognera' inserire una voce per ciascuno.
Bootcfg
Se decidiamo di utilizzare questa utility abbiamo a disposizione le seguenti opzioni:
/default -- per impostare la scelta predefinita
/add -- per aggiungere una voce e le opzioni di caricamento - nota: verra' effettuata una scansione alla ricerca di altre installazioni di Windows (anche versioni precedenti).
/scan -- se vogliamo eseguire una ricerca
/list -- legge boot.ini e ci mostra un riassunto
Windows Vista
BCDedit
Si tratta di un'utilita' simile a bootcfg,ma dispone di un maggior numero di opzioni. Quelle che ci interessano sono create,displayorder,export,enum.
create: serve per creare una voce d'avvio
es. bcdedit /create /d "Windows Vista" /application osloader
displayorder: oltre a permetterci di stabilire la precedenza fra le voci serve anche a renderle attive (la sola creazione non basta).
bcdedit /displayorder {mia_voce} /addfirst bcdedit /displayorder {mia_voce} /addlast
Nota: e' possibile specificare il caricatore da usare ntldr oppure osloader:
bcdedit /displayorder {mia_voce} {ntldr}
export: per fare un backup dello store esistente, la sintassi e' bcdedit /export "unità:\file su cui salvare"
enum: elenca le voci, il suo tipico e' bcdedit /enum ALL
ma supporta anche le opzioni {default} se vogliamo conoscere solo la voce predefinita, osloader/bootmgr quelle che usano questi caricatori, o ancora {id} - se gia' conosciamo l'identificativo della voce.
Avvio di più S.O. - stile GNU Linux
LInuxLOader:
E' il bootloader 'storico' per linux, siccome non e' in grado di leggere dai filesystems durante la fase di boot la sua configurazione, memorizzata in /etc/lilo.conf, verra' letta dall'installatore e unita a lilo stesso.
Ecco un'esempio di configurazione (lilo.conf):
boot = /dev/hdX delay = 10 -- pausa vga = 0 (1 attiva la modalita' 80 righe 50 colonne) image = /boot/vmlinux - il kernel root = /dev/hda1 - la partizione per root label = Linux - l'etichetta da visualizzare read-only - la partizione di root sara' montata in sola lettura other = /dev/hda2 - se per esempio abbiamo anche un altro S.O. installato table = /dev/hda - specifica la tabella delle partizioni in uso label = dos - di nuovo l'etichetta da visualizzare
Per installarlo basta digitare /sbin/lilo.
GRand Unified Bootloader:
Insieme a LILO, GruB e' uno dei bootloaders utilizzati su sistemi linux (nota: la parola linux e' il nome del kernel, ma e' anche 'sfruttata' per far riferimento alle distribuzioni, ossia ai S.O. basati su esso), rispetto al quale presenta una maggiore facilità di personalizzazione.
Fra le altre cose mette a disposizione un terminale con alcuni comandi utili.
Un esempio di menu' di scelta con GRUB,,,
Creazione di un menu':
I menu' per il GRUB risiedono in un file denominato 'menu.lst', il listato che segue e' il codice alla base del menu' mostrato nella figura.
default 2 ; indica quale l'opzione predefinita
timeout 5 ; imposta il conto alla rovescia (in secondi)
color yellow/red white/red ; imposta il colore del testo e dello sfondo, non serve se si usa un'immagine
splashimage (cd)/boot/grub/cbg2.xpm.gz ; questa e' l'immagine scelta come sfondo
title Per mir ; voce usata come titolo del menu' (optional)
makeactive ; operazione fittizia
title - ; separatore (optional)
makeactive
title Windows ; una voce usata come "sub-menu"
makeactive
title Windows - HD1 ; voce d'avvio per caricare Windows installato nella prima partizione del primo disco
rootnoverify (hd0,0) ; siccome non si tratta di linux, chiedo che non siano eseguiti controlli
chainloader +1 ; passo il comando all'NTLDR
title Windows - HD2
rootnoverify (hd1,0) ; come sopra ma usando la prima partizione del secondo disco fisso (in questo caso windows puo' "lamentarsi" ed esiste un rimedio che vedremo in seguito.
chainloader +1
Creazione di un disco d'avvio con GRUB
In alcune situazioni puo' far comodo un disco che permetta la scelta del S.O. da caricare senza modificare l'MBR del disco fisso o se quest'ultimo e' danneggiato. Di seguito e' illustrato un metodo molto semplice per crearne uno, la procedura e' stata eseguita usando Debian (ma e' possibile farlo anche da altri sistemi).
Creo una cartella per il progetto, al suo interno le cartelle boot e all'interno di boot una cartella denominata 'grub'.
Dentro grub copio il file stage2_eltorito (che trovo in /boot/grub del mio sistema)
Procedo alla redazione del menu(.lst)
Poiche' l'esempio include un'immagine copio anche questa nella cartella grub
Ora creo un'immagine disco che potro' masterizzare:
mkisofs -R -b boot/grub/stage2_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o grub.iso /cartella_progetto
Otterro' un file denominato grub.iso che e' l'immagine che mi serviva, la masterizzo e il disco e' pronto!
Grub+map
Questo e' il trucco di cui si parlava prima, in pratica GRUB dispone di una funzione per "ingannare" il S.O. da caricare riguardo alla 'leadership' del disco .
> map (hd0) (hd1)
> map (hd1) (hd0)
Se inseriamo queste istruzioni nella voce di caricamento di windows nel nostro menu.lst gli faremo credere che il disco da cui si sta avviando e' il primo della catena. Cio' e' utile perche' in molti casi si rifiuta di partire se trova una situazione diversa da quella che conosce.
Avvio di più S.O. con boot manager alternativi
PloP
Sito web: http://www.plop.at/
Si tratta di un boot manager con il supporto, fra le altre caratteristiche, dei dischi usb (driver OHCI/EHCI)
Puo' essere usato da CD/DVD, pendrive USB, floppy, LAN, e naturalmente puo' essere caricato nell'MBR del disco fisso.
OSL2000 Boot Manager®
Forse un po' 'rustico' ma molto utile ;)
EasyBCD
Sito web: http://neosmart.net/dl.php?id=1
Si tratta di un boot manager nato per soddisfare le esigenze degli utenti di Windows Vista, dispone di un'interfaccia grafica molto semplice da utilizzare.
GAG
Sito web: http://gag.sourceforge.net
Come GRUB e PloP e' un boot manager (gratuito) che permette di avere menu' di avvio meno tristi e piu' efficienti.
Smart BootManager
E' un boot manager con un'interfaccia stile applicativi per DOS, dispone di alcune funzioni di pianificazione, di ritardo e puo' inviare dei comandi al sistema caricato sotto forma di pressione di tasti.
Ripristino bootsector
Windows
Windows XP
Si inserisce il disco di installazione e quando offre la possibilita' di accedere alla console di ripristino (premendo 'R'), useremo i seguenti comandi: fixmbr, fixboot ed eventualmente chkdsk.
FixMBR \Device\HardDisk0FixBOOT - accetta come argomento la partizione su cui scrivere il settore d'avvio es.
FixBOOT C:
Usato senza parametri esegue la scrittura sul disco in cui risulta installato windows.
ChkDSK
la funzione di questo programma e' quella di cercare e se possibile riparare errori nel filesystem, puo' tornar utile se per esempio all'avvio di windows vengono visualizzati messaggi d'errore di cui non si comprende il motivo, e che potrebbero essere riconducibili a una corruzione del filesystem es. se si interrompe l'alimentazione durante il lavoro.
Windows Vista
Come nel caso di XP si inserisce il DVD di installazione si seleziona l'opzione Ripristina il computer, si sceglie l'installazione da correggere e si sceglie Prompt dei comandi infine si esegue Bootrec.exe
Qui digitiamo:
bcdedit /export C:\copia_bcd attrib c:\boot\bcd -s -h -r ren c:\boot\bcd bcd.old bootrec /RebuildBcd
Avremmo anche potuto usare bootrec /FixMBR solo per ricostruire l'MBR oppure /FixBoot, con l'opzione RebuildBCD bootrec esegue una ricerca dei S.O. installati oltre alla ricostruzione.
Linux
Grub
La scrittura e la conseguente ri-scrittura del settore d'avvio si fa con il comando 'setup' disponibile sia nel disco d'avvio che abbiamo creato in precedenza, e questo e' utile se il sistema non si può avviare, oppure se il motivo e' che abbiamo installato windows e quest'ultimo ha riscritto il settore d'avvio o se l'abbiamo fatto noi (fixboot) ma possiamo ancora avviare linux.
Ecco come:
setup (hdX) - dove X e' il numero del disco fisso (0 per il primo), copierà grub nell'MBR.
setup (hdX,Y) - dove X e' il numero del disco fisso (0 per il primo) e Y la partizione (0 e' la prima), copierà grub nella partizione desiderata del disco specificato.
Da sistema avviato e' possibile anche usare grub-install.