grub2 reinstall help

Ciao,

supponiamo di essere in questo scenario:

il disco principale /dev/sda ha una partizione /dev/sda1 in cui io ho
copiato un root file system da un backup.

/dev/sda non fa il boot perche' non ho ancora installato grub.

Io sono in una live.

Quali comandi dovrei eseguire per installare mbr, grub ed avere un menu?

Volevo precisare che io posso montare sda1 tipo sotto /mnt ma la mia
root attuale e' la live.

Aiuto?

Ciao,

premessa: è un po' che non devo (re)installare grub, quindi tutto
quanto scritto è rigorosamente *untested*-

2010/4/24 Davide <d(a)vide.bz>:

Ciao,

supponiamo di essere in questo scenario:

il disco principale /dev/sda ha una partizione /dev/sda1 in cui io ho
copiato un root file system da un backup.

/dev/sda non fa il boot perche' non ho ancora installato grub.

Ok.

Quali comandi dovrei eseguire per installare mbr, grub ed avere un menu?

Partiamo dal fondo: immagino che ti riferisca al menu di grub per
scegliere il sistema da bootare. In questo caso, devi editare il file
/boot/grub/menu.lst (che dovrebbe essere sotto
/mnt/boot/grub/menu.lst) da super user e modificare queste opzioni:

hiddenmenu 0 # (oppure commenta tutta la riga con un # all'inizio)

delay nn # (dove nn sono i secondi che il menu resta visibile prima
che parta il sistema operativo di default)

default x #dove x è il sistema da far partire se non si sceglie.
Attenzione che si parte da 0).

per ogni S.O. esiste una "entry" in fondo a menu.lst, così fatta (più o meno):

title Debian GNU/Linux, kernel 2.6.29
root (hd0,0)
kernel /boot/vmlinuz-2.6.29 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.29

Title è quello che appare nel menu e incrementa il contatore x (vedi sopra)
root è il device di boot: (0,0) = sda1, (1,2) = sdb2 ecc ecc.
kernel e initrd sono (semplificando) le immagini del kernel da caricare.

Una volta fatto tutto, si puo' procedere ad installare grub:

grub --install-partition=/dev/sda1 --read-only

--read-only serve per non far scrivere nulla e verificare che non si è
combinato alcun pasticcio. Se non appare alcun messaggio "strano",
togli l'opzione e rilancia il comando.

Se tutto è fatto per bene, basta riavviare togliendo il
cd/dvd/chiavetta e tentando il boot da HD. Se non dovesse funzionare,
puoi sempre riavviare da live e riprovare. :slight_smile:

In tal caso, segnati eventuali errori e mandali.

HTH,
Stefano

Qui ho trovato una scorciatoia. Si puo' usare il comando update-grub
che crea un menu
dai kernel che trova. Unico "problema" e' che quel comando non ha un
"root dir" parametro.

Ma facendo un chroot sembra funzionare ...

... poi si prosegue come hai detto tu e funziona :slight_smile:

Ciao,

2010/4/24 Davide <d(a)vide.bz>:

Partiamo dal fondo: immagino che ti riferisca al menu di grub per
scegliere il sistema da bootare. In questo caso, devi editare il file
/boot/grub/menu.lst (che dovrebbe essere sotto
/mnt/boot/grub/menu.lst) da super user e modificare queste opzioni:

Qui ho trovato una scorciatoia. Si puo' usare il comando update-grub
che crea un menu
dai kernel che trova. Unico "problema" e' che quel comando non ha un
"root dir" parametro.

Beh, ho dato per scontato che non avessi una entry in menu-lst, anche
perché hai detto genericamente di aver ripristinato un root file
system, senza specificare cosa ci fosse nel rfs: sapendo di avere
menu.lst e /boot con i kernel pronti nella partizione ripristinata,
chroot /mnt e update-grub senza parametri (oppure grub-install
/dev/sda) sono (ovviamente) la strada più semplice. :slight_smile:

Aggiungo che non conoscendo poi la tua conoscenza/padronanza della
shell, ho preferito non parlare di chroot... :stuck_out_tongue:

Ciao,
Stefano