Configurare l'avviatore

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Handbook:AMD64/Installation/Bootloader and the translation is 100% complete.

Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português do Brasil • ‎čeština • ‎русский • ‎українська • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어
Manuale AMD64
Installazione
Riguardo l'installazione
Il mezzo d'installazione
Configurare la rete
Preparare i dischi
Installare lo stage3
Installare il sistema base
Configurare il kernel
Configurare il sistema
Strumenti di sistema
Configurare l'avviatore
Ultimare l'installazione
Lavorare con Gentoo
Introduzione a Portage
Opzioni USE
Funzionalità di Portage
Sistema script di init
Variabili d'ambiente
Lavorare con Portage
File e cartelle
Variabili
Mixare i rami del software
Strumenti aggiuntivi
Repositorio pacchetti personalizzato
Funzionalità avanzate
Configurare la rete
Come iniziare
Configurazione avanzata
Networking modulare
Wireless
Aggiungere funzionalità
Gestione dinamica



Scegliere un avviatore

Con il kernel Linux configurato, gli strumenti di sistema installati ed i file di configurazione modificati, è tempo di installare l'ultimo importante pezzo di un'installazione Linux: l'avviatore (bootloader).

L'avviatore è responsabile del lancio del kernel Linux al momento dell'avvio - senza di esso, il sistema non saprebbe come procedere quando il pulsante di accensione (power) viene premuto.

Per amd64, documenteremo come configurare sia GRUB2 che LILO per sistemi basati su BIOS, e GRUB2 o efibootmgr per sistemi UEFI.

In questa sezione del Manuale, viene fatta una delineazione tra emergere un pacchetto per l'avviatore (boot loader) ed installare un avviatore nel disco di sistema. Qui il termine emergere sarà usato per chiedere a Portage di compilare un pacchetto software che sia disponibile per il sistema. Il termine installare significherà che l'avviatore copia i file o modifica fisicamente le sezioni appropriate dell'unità del disco di sistema affinché l'avviatore sia attivo e pronto ad operare dalla prossima accensione della macchina.

Predefinito: GRUB2

In precedenza, Gentoo Linux ha usato ciò che ora è chiamato GRUB Legacy (il lascito di GRUB) come avviatore (bootloader) raccomandato. Come presuppone il nome, il pacchetto di GRUB più vecchio non è più attivamente mantenuto ed è stato sostituito da GRUB2. Per maggiori informazioni su GRUB Legacy, si faccia riferimento al suo articolo GRUB.

In via predefinita, la maggior parte dei sistemi Gentoo si affidano ora a GRUB2 (presente nel pacchetto sys-boot/grub), che è il diretto successo di GRUB Legacy. Senza configurazioni aggiuntive, GRUB2 supporta di buon grado i vecchi sistemi BIOS ("pc"). Con alcune configurazioni, necessarie prima della fase di compilazione, GRUB2 può supportare più di una mezza dozzina di piattaforme aggiuntive. Per maggiori informazioni, consultare la Sezione dei prerequisiti nell'articolo di GRUB2.

Compilare (emergere)

Quando si usano sistemi BIOS più vecchi che supportano solo tabelle delle partizioni MBR, nessuna configurazione aggiuntiva è necessaria per compilare (far emergere) GRUB:

root #emerge --ask --verbose sys-boot/grub:2

Una nota per gli utenti UEFI: eseguire il comando sopra comporterà l'abilitazione dei valori GRUB_PLATFORMS prima del comando emergere. Quando si usano sistemi che supportano UEFI, gli utenti si dovranno assicurare che GRUB_PLATFORMS="efi-64" sia abilitato (così come avviene nel caso predefinito). Se non è questo il caso durante la configurazione, GRUB_PLATFORMS="efi-64" dovrà essere aggiunto al file /etc/portage/make.conf prima di far emergere GRUB2, così che il pacchetto sarà compilato con la funzionalità EFI:

root #echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #emerge --ask sys-boot/grub:2
Se GRUB2 è stato compilato (fatto emergere) senza abilitare GRUB_PLATFORMS="efi-64", la linea (appena mostrata) può essere in seguito aggiunta a make.conf e le dipendenze per il "mondo" dei pacchetti ricalcolati passando le opzioni --update --newuse a emerge:
root #emerge --ask --update --newuse --verbose sys-boot/grub:2

Il software GRUB2 è ora fruibile nel sistema, ma non è ancora installato.

Installare

Poi, installare i file necessari di GRUB2 sulla cartella /boot/grub/ attraverso il comando grub-install. Supponendo che il primo disco (quello da cui il sistema si avvia) sia /dev/sda, uno dei successivi comandi sarà:

  • Quando si usa il BIOS:
root #grub-install /dev/sda
  • Quando si usa UEFI:
Importante
Assicurarsi che la partizione di sistema EFI sia stata montata, prima di eseguire grub-install. È possibile che grub-install installi il file EFI GRUB (grubx64.efi) nella cartella sbagliata senza fornire alcuna indicazione sulla cartella sbagliata usata.
root #grub-install --target=x86_64-efi --efi-directory=/boot
Nota
Modificare l'opzione --efi-directory alla radice della partizione di sistema EFI. Ciò è necessario se la partizione /boot non è stata formattata con una delle varianti di FAT.
Important
If grub_install returns an error like Could not prepare Boot variable: Read-only file system, it may be necessary to remount the efivars special mount as read-write in order to succeed:
root #mount -o remount,rw /sys/firmware/efi/efivars

Alcuni produttori di schede madri sembrano supportare soltanto la posizione della cartella /efi/boot/ per i file .EFI nella partizione di sistema EFI (ESP). L'installatore di GRUB può eseguire questa operazione automaticamente con l'opzione --removable. Verificare che ESP sia montata prima di eseguire i seguenti comandi. Supponendo che ESP sia montata su /boot (come suggerito prima), eseguire:

root #grub-install --target=x86_64-efi --efi-directory=/boot --removable

Questo crea una cartella predefinita definita dalle specifiche UEFI, e poi copia i file grubx64.efi nella posizione 'predefinita'dei file EFI definita dalle stesse specifiche.

Configurare

Poi, generare la configurazione GRUB2 basata su quella specificata dall'utente nel file /etc/default/grub e negli script /etc/grub.d. Nella maggior parte dei casi, nessuna configurazione è richiesta agli utenti, in quanto GRUB2 rileverà automaticamente quale kernel avviare (quello più in alto disponibile su /boot/) e qual è il file system radice. È anche possibile aggiungere parametri per il kernel su /etc/default/grub tramite la variabile GRUB_CMDLINE_LINUX.

Per generare la configurazione finale di GRUB2, eseguire il comando grub-mkconfig:

root #grub-mkconfig -o /boot/grub/grub.cfg
Generating (Sto generando) grub.cfg ...
Found linux image (Immagine linux trovata): /boot/vmlinuz-3.16.5-gentoo
Found initrd image (Immagine initrd trovata): /boot/initramfs-genkernel-amd64-3.16.5-gentoo
done (fatto)

In risposta il comando deve riferire che almeno un'immagine Linux è stata trovata, in quanto queste sono necessarie per l'avvio del sistema. Se viene utilizzato un initramfs o genkernel è stato usato per compilare il kernel, anche l'immagine initrd corretta dovrebbe essere rilevata. Se questo non succede, andare su /boot/ e controllare il contenuto con il comando ls. Se effettivamente mancano i file, ritornare alla configurazione del kernel ed alle istruzioni di installazione.

Tip
L'utilità os-prober può essere usata in combinazione con GRUB2 per rilevare altri sistemi operativi dai dischi connessi. Windows 7, 8.1, 10 ed altre distribuzioni Linux sono rilevabili. Chi desidera un sistema con doppio avvio dovrebbe compilare il pacchetto sys-boot/os-prober, poi rieseguire il comando grub-mkconfig (come visto sopra). Se si incontrano problemi di rilevamento assicurasi di leggere l'articolo GRUB2 per intero prima di chiedere supporto alla comunità di Gentoo.

Alternativa 1: LILO

Compilare (emergere)

LILO, il LInuxLOader (caricatore di Linux), è il vero cavallo di battaglia degli avviatori di Linux. Comunque, difetta per caratteristiche se comparato a GRUB. LILO è ancora usato, perché su alcuni sistemi GRUB non funziona, mentre LILO sì. Certamente è usato anche perché alcune persone conoscono LILO e vogliono rimanere con esso. Ad ogni modo, Gentoo supporta entrambi gli avviatori (bootloader).

Installare LILO è molto facile; basta usare emerge.

root #emerge --ask sys-boot/lilo

Configurare

Per configurare LILO, creare prima /etc/lilo.conf:

root #nano -w /etc/lilo.conf

Nel file di configurazione, le sezioni vengono utilizzate per fare riferimento al kernel avviabile. Assicurarsi che i file del kernel (con la versione del kernel) e dell'initramfs siano noti, in quanto devono essere indicati in questo file di configurazione.

Nota
Se il file system radice è JFS, aggiungere una linea append="ro" dopo ciascun elemento di avvio poiché JFS deve rieseguire il suo registro prima di consentire il montaggio in lettura e scrittura.
FILE /etc/lilo.confEsempio di configurazione di LILO
boot=/dev/sda             # Installa LILO nell'MBR (Master Boot Record)
prompt                    # Dai all'utente la possibilità di scegliere un'altra sezione
timeout=50                # Aspetta 5 secondi prima di avviare la sezione predefinita
default=gentoo            # Quando il tempo è scaduto, avvia la sezione "gentoo"
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo            # Il nome che diamo a questa sezione
  read-only               # Avvia con una radice (root) in sola lettura. Non fare modifiche!
  root=/dev/sda4          # Posizione del file system radice (root)
  
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo.rescue     # Il nome che diamo a questa sezione
  read-only               # Avvia con una radice (root) in sola lettura. Non fare modifiche!
  root=/dev/sda4         # Posizione del file system radice (root)
  append="init=/bin/bb"   # Avvia la console di ripristino statico di Gentoo
  
# Le prossime due righe servono per un doppio avvio con un sistema Windows.
# In questo esempio, Windows è ospitato su /dev/sda6.
other=/dev/sda6
  label=windows
Nota
Se uno schema di partizionamento e/o un'immagine del kernel differenti sono stati usati, aggiustare in accordo con la propria situazione.

Se è necessario un initramfs, allora cambiare la configurazione facendo riferimento a questo file initramfs e comunicando all'initramfs dove è collocato il dispositivo radice (root):

FILE /etc/lilo.confAggiungere informazioni su initramfs a una voce di avvio
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  append="root=/dev/sda4"
  initrd=/boot/initramfs-genkernel-amd64-3.16.5-gentoo

Se opzioni aggiuntive devono essere passate al kernel, usare una dichiarazione append. Per esempio, per aggiungere la dichiarazione video per abilitare il framebuffer (segmento di memoria per i fotogrammi):

FILE /etc/lilo.confAggiunta del parametro video alle opzioni di avvio
image=/boot/vmlinuz-3.16.5-gentoo
  label=gentoo
  read-only
  root=/dev/sda4
  append="video=uvesafb:mtrr,ywrap,1024x768-32@85"

Gli utenti che hanno usato genkernel dovrebbero sapere che i loro kernel usano le stesse opzioni di avvio usate dal CD di installazione. Per esempio, se il supporto ai dispositivi SCSI deve essere abilitato, aggiungere doscsi come opzione per il kernel.

Adesso salvare il file ed uscire.

Installare

Per concludere, lanciare l'eseguibile /sbin/lilo così che LILO possa applicare le impostazioni /etc/lilo.conf al sistema (vale a dire installa se stesso sul disco). Tener presente che /sbin/lilo deve essere eseguito ogni volta che viene installato un nuovo kernel o quando si modifica il file lilo.conf, così che il sistema possa avviarsi anche se il nome del file del kernel è stato cambiato.

root #/sbin/lilo

Alternativa 2: efibootmgr

Su sistemi UEFI, il firmware UEFI del sistema (in altre parole il principale bootloader - avviatore) può essere manipolato direttamente per cercare le voci di avvio UEFI. Questi sistemi non necessitano di avviatori aggiuntivi (anche conosciuti come avviatori secondari), come GRUB2 allo scopo di aiutare il sistema ad avviarsi. Dopo quanto detto, la ragione degli avviatori basati su EFI come GRUB2 esiste per estendere le funzionalità dei sistemi UEFI durante il processo di avvio. Usare efibootmgr è per coloro che desiderano decisamente mantenere un approccio minimalista (sebbene più rigido) nell'avvio del proprio sistema; usare GRUB2 (vedi sopra) è più facile per la maggior parte degli utenti perché offre un approccio più flessibile quando si avviano i sistemi UEFI.

Terner presente che l'applicazione sys-boot/efibootmgr non è un avviatore; piuttosto è uno strumento per interagire con il firmware UEFI ed aggiornare le sue impostazioni, così che il kernel Linux precedentemente installato possa essere avviato con opzioni aggiuntive (se necessario), oppure per abilitare più voci di avvio. Questa interazione è possibile grazie alle variabili EFI (da cui la necessità del supporto delle variabili EFI da parte del kernel).

Assicurarsi di leggere l'articolo EFI stub kernel prima di continuare. Il kernel deve avere opzioni specifiche abilitate affinché sia direttamente avviabile dal firmware UEFI del sistema. Potrebbe risultare necessario ricompilare il kernel. È anche una buona idea dare un'occhiata all'articolo efibootmgr.

Nota
Per ribadire, efibootmgr non è un requisito di avvio di un sistema UEFI. Il kernel Linux stesso può essere avviato immediatamente, ed opzioni aggiuntive per il kernel tramite linea di comando possono essere integrate nel kernel Linux (c'è un'opzione di configurazione del kernel chiamata che permette agli utenti di specificare i parametri di avvio tramite opzioni a linea di comando). Anche un initramfs può essere 'integrato' nel kernel.

Coloro che hanno deciso di seguire questo approccio devono installare il software:

root #emerge --ask sys-boot/efibootmgr

Poi, creare la cartella /boot/efi/boot/ e copiare qui il kernel, chiamandolo bootx64.efi:

root #mkdir -p /boot/efi/boot
root #cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi

In seguito, comunicare al firmware UEFI che una voce di avvio nominata "Gentoo" deve essere creata, la quale contiene il kernel appena compilato con la parte EFI:

root #efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"

Se un file system iniziale su RAM (initramfs) viene usato, aggiungere l'appropriata opzione di avvio ad esso:

root #efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-amd64-3.16.5-gentoo'
Nota
L'uso di \ come separatore di cartelle è obbligatorio quando si usano le definizioni UEFI.

Concluse queste modifiche, quando il sistema si riavvia, sarà disponibile una voce di avvio chiamata "Gentoo".

Alternativa 3: Syslinux

Syslinux è un'altra alternativa di bootloader per l'architettura amd64. Supporta MBR e, come da versione 6.00, supporta l'avvio EFI. Anche l'avvio PXE (network) e opzioni meno conosciute sono supportate. Sebbene Syslinux sia un famoso bootloader per molti, non è supportato dal Manuale. I lettori possono trovare informazioni per emergerlo ed installarlo nell'articolo Syslinux.


Riavviare il sistema

Uscire dall'ambiente con la radice cambiata (chroot) e smontare tutte le partizioni montate. Poi si inserisca quell'unico magico comando che avvia il vero test finale: reboot.

root #exit
cdimage ~#cd
cdimage ~#umount -l /mnt/gentoo/dev{/shm,/pts,}
cdimage ~#umount -R /mnt/gentoo
cdimage ~#reboot

Non dimenticare di rimuovere i CD avviabili, altrimenti il CD potrebbe essere avviato al posto del nuovo sistema Gentoo.

Una volta riavviato e giunti nell'ambiente Gentoo appena installato, concludere con Ultimare l'installazione di Gentoo.