GRUB2 (Italiano)
From ArchWiki
Article summary |
---|
Copre vari aspetti del GRand Unified Bootloader (GRUB2) di prossima generazione. |
Lingue disponibili |
English |
Česky |
Français |
Italiano |
Contents |
Introduzione
I comandi cambiano da GRUB a GRUB2. Probabilmente si preferisce prendere confidenza con questi prima di procedere. Ad esempio: "find" è stato sostituito con "search"
http://grub.enbug.org/CommandList
Installare il pacchetto di GRUB2
Per prima cosa installare grub2 con pacman:
# pacman -Sy grub2
Modificare il file di configurazione di grub2 con i propri settaggi. Il "vecchio" menu.lst è stato sostituito da un nuovo file chiamato grub.cfg:
# nano /boot/grub/grub.cfg
Ecco un esempio di un semplice file di configurazione:
# File di configurazione per GRUB2 - The GNU GRand Unified Bootloader # /boot/grub/grub.cfg # TABELLA CONVERSIONE DISPOSITIVI # # Linux Grub # ------------------------- # /dev/fd0 (fd0) # /dev/sda (hd0) # /dev/sdb2 (hd1,2) # /dev/sda3 (hd0,3) # # Timeout per il menu set timeout=5 # Imposta la voce 0 come voce predefinita set default=0 # (0) Arch Linux menuentry "Arch Linux" { set root=(hd0,1) linux /vmlinuz26 root=/dev/sda1 ro initrd /kernel26.img } ## (1) Windows #menuentry "Windows" { #set root=(hd0,3) #chainloader +1 #}
Se non avete una partizione boot separata, /boot deve essere aggiunta a grub.cfg. Esempio:
# (0) Arch Linux menuentry "Arch Linux" { set root=(hd0,1) linux /boot/vmlinuz26 root=/dev/sda1 ro initrd /boot/kernel26.img }
Installare o ripristinare GRUB nel Master Boot Record
GRUB può essere installato da un ambiente live, oppure direttamente da una installazione di Arch avviata.
Nella maggior parte dei casi, installare grub2 dovrebbe essere facile come eseguire il comando grub-install da root:
# grub-install /dev/sda
dove /dev/sda è la destinazione dell'installazione (in questo caso l'MBR del primo disco SATA)
Se questo fallisce con l'errore:
grub-probe: error: Cannot get the real path of `/dev/fd0' Auto-detection of a filesystem module failed. Please specify the module with the option `--modules' explicitly.
Provare aggiungendo --recheck agli argomenti:
# grub-install --recheck /dev/sda
Oppure, dovreste essere in grado di installare grub2 avviando il sistema ed eseguendo il comando grub da root:
# grub {questa sezione è ancora incompleta, dei passi devono essere aggiunti!!!}
(grub2 non ha un prompt interattivo)
Configurazione del boot loader
La configurazione di GRUB è fatta in questo file:
/boot/grub/grub.cfg
Attenzione, questa sezione è incompleta, sentitevi liberi di aggiungere tutte le opzioni di configurazioni mancanti qui!
- (hdn,m) è la partizione m sul disco n, il numero della partizione parte da 1, il numero del disco parte da 0
- set default=n è la voce di default, ovvero quella scelta dopo il timeout.
- set timeout=m è il tempo di attesa in secondi per la selezione da parte dell'utente, prima che la voce di default sia avviata
- menuentry "str"{entry options} – stringa del titolo str per la voce di boot e il layout base
- set root=(hdn,m) – partizione base, dove è contenuto il kernel
- linux /path ro root=/dev/device initrd /initrd.img – usa l'opzione root, se il kernel non è collocato in /
- chainloader +1 imposta root come attiva e dà inizio alla procedura di boot del suo boot-loader (Windows, per esempio)
Per le voci UUID:
# blkid
Dual boot
Queste sono le due vie più comuni di configurare il file grub.cfg. Per usi più complessi, sentitevi liberi di aggiungere descrizioni.
Con altre distribuzioni GNU/Linux
Questo è fatto esattamente nello stesso modo con cui Arch Linux è caricata. Qui assumiamo che l'altra distribuzione è nella partizione [s/h]da2
menuentry "Altri Linux" { set root=(hd0,2) linux /boot/vmlinuz (aggiungere altre opzioni qui se richiesto) initrd /boot/initrd.img (se l'altro kernel lo usa/necessita) }
Con Windows
Si aggiunga questo alla fine del vostro /boot/grub/grub.cfg. Questo assume che la partizione di Windows sia [s/h]da3.
# (2) Windows XP menuentry "Windows XP" { set root=(hd0,3) chainloader +1 }
Si noti che, anche se comunemente si crede sia il caso, Windows 2000 e versioni successive non hanno bisogno di essere sulla prima partizione per avviarsi. Se la partizione di Windows cambia numero (ovvero se dopo l'installazione, si aggiunge una partizione prima di quella di Windows), avrete bisono di modificare il file di Windows boot.ini per riflettere i cambiamenti (vedere questo articolo per dettagli su come fare).
Con Windows Vista, tramite EasyBCD e NeoGRUB
Poichè attualmente NeoGRUB di EasyBCD non capisce il formato del menu di GRUB v2, è necessario fare un chain-load sostituendo il contenuto del vostro file "C:\NST\menu.lst" con linee simili alle seguenti:
default 0 timeout 1
title Chainload into GRUB v2 root (hd0,7) kernel /boot/grub/core.img
Trucchi e consigli
Immagine di sfondo & fonts Bitmap
GRUB2 supporta le immagini di sfondo e i fonts bitmap nel formato pf2. Il font unifont è incluso nel pacchetto di grub2 in un file chiamato unicode.pf2, oppure, come solamente caratteri ascii con il nome di ascii.pf2. I formati delle immagini supportati includono tga, png e jpeg, se i corretti moduli sono caricati. La massima risoluzione supportata dipende dal vostro hardware. Una configurazione d'esempio che imposta un file tga come sfondo è la seguente:
if loadfont /usr/share/grub/unicode.pf2 ; then set gfxmode="1024x768x32" insmod gfxterm insmod vbe terminal_output gfxterm if terminal_output gfxterm; then true ; else terminal gfxterm fi fi insmod tga background_image /boot/grub/archlinux.tga
Menu colorati
Per cambiare i colori in GRUB2 si deve specificare un opzione in /boot/grub/grub.cfg:
color light-blue/black light-cyan/blue
Questi sono i colori di default per la release di Arch di GRUB-legacy. I colori disponibili per GRUB2 sono http://www.gnu.org/software/grub/manual/html_node/color.html.
Troubleshooting
Any troubleshooting should be added here.
I couldn't figure out how to uninstall grub1, and install grub2 to the MBR, as it isn't being booted by default. It is still booting grub1. So, an easy work-around, is rename menu.lst.pacsave or whatever, to menu.lst (in /boot/grub/) and for each menu entry that you would like to use grub2, at the end type "chainloader +1". This will tell grub1 to forward control to grub2. This is an ugly hack though, so I advise setting the menu.lst's timout as 0, otherwise the total timeout would be grub1's time out + grub2's which, for me would equal more than 18 seconds, which is quite a bit.
P.S. hopefully someone figures out how to pry grub1's dead fingers off of my MBR, and place grub2 on it :) .
In my case it had to do with my boot partition. Say boot-partition is (hd0,1) and your root is (hd0,3) (grub2 naming). grub-setup searches for (hd0,3)/boot/grub/core.img. Just because it's on (hd0,1)/grub/core.img, it is unable to find it. So I copied the grub-folder to my root partition and everything worked fine:
E.g. (as root:)
# mount /boot # cp -a /boot/grub / # umount /boot # mv /grub /boot/ # grub-install /dev/sda