News:

HAI CAMBIATO INDIRIZZO EMAIL E VUOI RECUPERARE IL TUO VECCHIO ACCOUNT DEL FORUM xt600.it ?
SCRIVICI A INFO chiocciola XT600.EU
TI RISPONDEREMO NON APPENA POSSIBILE

Menu principale

Un dubbio con grub.

Aperto da YureW, 12 Marzo 2007, 08:42:38

Discussione precedente - Discussione successiva

0 Utenti e 1 Visitatore stanno visualizzando questa discussione.

YureW

In sintesi: ho intenzione di prendere un paio di quei cassettini per rendere estraibili gli hard disk, in modo da avere un disco hdb da 200 GB sempre nel PC, con dati e menate varie, ed avere un paio di hda estraibili da 80 GB per i sistemi operativi.

In questo momento il disco da 200GB è in hda, uno da 80 è in hdb con la Fedora core 6 che sto provando. Grub è installato comunque in hda, quindi su quello che sarà un disco solo dati, senza sistema operativo.
La mia esigenza sarebbe quella di swappare i due dischi, e quindi trovarmi il disco con Fedora in hda, con grub installato. Così, in futuro, hda sarà estraibile, e su altri dischi da 80 potrò mettere altre distro (vorrei provare anche Solaris, BeOS, cose così).

Così come stanno le cose adesso, però, non posso fare invertire i dischi facilmente, devo reinstallare grub in maniera che si avvii da quelo che ora è hdb ma che poi sarà hda.
So che non è molto chiaro, ma ho letto la documentazione di grub e sinceramente non sono sicuro di quello che dovrei fare, ad occhio e croce avrei le seguenti opzioni:
- farmi un CD con solo grub (ci sono distro del genere), swappare i dischi, avviare Fedora da CD, da Fedora reinstallare grub
- swappare i dischi, far partire il sistema con una distro live, fare chroot /dev/hda e installare grub.

Le due opzioni sono praticamente la stessa cosa.
Ma c'è qualche altro tramacco più elegante che posso fare?
Solo le pido a Dios
que el futuro no me sea indiferente

YureW

Bene, ho risolto comunque.
Non era poi così ovvio, è uno di quei casi in cui NON si deve leggere il Fottuto Manuale, perché seguire le indicazioni degli HOWTO su GRUB fa sì che non si riesca ad avviare un bel niente.

Bon, fatta.
Solo le pido a Dios
que el futuro no me sea indiferente

grunf

Puoi spiegare anche a grandi linee come hai fatto, mi tornerà sicuramente utile. :) :)

YureW

Per prima cosa ho preparato un floppy con grub installato, per avviare la macchina. 

fdformat /dev/fd0
mkfs -t msdos /dev/fd0

mount -t msdos /dev/fd0 /floppy

mkdir -p /floppy/boot/grub
cp /boot/grub/stage* /floppy/boot/grub

grub> root (fd0)
grub> setup (fd0)
grub> quit

Cioé, formattato un dischetto, si copiano i file stage1 e stage2 che servono all'avvio, e poi sul dischetto si installa grub.

Spento il PC, ho invertito i dischi: erano settati tutti e due come "cable select", quindi invertendo i connettori il master è diventato slave e viceversa. Fedora si trovava in hdb prima dello scambio, ed il boot loader era in MBR di hda. Invertendo le cose, mi ritrovo un sistema non avviabile se non da floppy o CD.
Avviato il PC da floppy, ci si ritrova in ambiente grub:

grub> root (hd0,0)   
# indica a grub la partizione a cui accedere
grub> kernel /boot/vmlinuz root=/dev/hda1 ro
# kernel è il nome del kernel da avviare
# root=/dev eccetera è la cosa da non fare, nel mio caso. Lì  si indica a grub il device da montare all'avvio come  / (root), e finché io ho scritto qualcosa lì, vera o falsa, ho sempre avuto errori all'avvio. Quando non ci ho scritto niente, è partito.
grub> boot #parte con questo comando

Una volta che bene o male parte il sistema (dando eventualmente errori, perché se in /etc/fstab ci sono riferimenti ad un altro hd, ovviamente adesso sono sbagliati), si può entrare in grub dal sistema, andare a editare /boot/grub/grub.conf, dare grub-install /dev/hda e via a posto.

Per esempio, il mio grub-conf, ora, dopo lo swap dei dischi:
-------------
title   Fedora Core (2.6.18-1.2798.fc6)
root    (hd0,0)
kernel  /vmlinuz-2.6.19-1.2911.6.5.fc6 ro root=/dev/VolGroup00/LogVol00 rhgb
quiet
initrd  /initrd-2.6.19-1.2911.6.5.fc6.img
boot

title           Ubuntu, kernel 2.6.15-28-386
root            (hd1,0)
kernel          /boot/vmlinuz-2.6.15-28-386 root=/dev/hdb1 ro quiet splash
initrd          /boot/initrd.img-2.6.15-28-386
savedefault
------------------------------------------

Il fatto è che è tutto molto semplice in teoria: fatto un dischetto di avvio con grub, basta avviare con quello e dire che kernel si vuole lanciare e dove sta quel kernel. Ma in pratica, ho dovuto deviare dalle istruzioni canoniche e NON dire "root=".
Ah, e in più potrebbe essere necessario, dal dischetto di boot, indicare non solo il kernel con "grub> kernel /vmlinuz", ma anche
indicare la initrd.img, con "grub> initrd initrd.img".

Solo le pido a Dios
que el futuro no me sea indiferente

grunf

Grazie , chiaro ed esauriente!! :ok: :ok:

YureW

Citazione di: grunf il 18 Marzo 2007, 10:59:50
Grazie , chiaro ed esauriente!! :ok: :ok:

Mi prendi in giro? Io non ho capito niente di quello che ho scritto!   :riez:

Ah, comunque rileggendo mi sono reso conto di un errore: quando scrivo:

grub> kernel /boot/vmlinuz root=/dev/hda1 ro
# kernel è il nome del kernel da avviare

intendo in realtà dire che il nome del kernel da avviare è l'argomento del comando kernel, non che la parola "kernel" va sostituita con il nome del tuo kernel. Quello è vmlinuz più qualcosa, nel mio caso vmlinuz-2.6.19-1.2911.6.5.fc6.

Comunque, anche sbagliando non si fanno danni irrimediabili.

Ciao.
Solo le pido a Dios
que el futuro no me sea indiferente