Newsgroup: it.comp.os.linux.iniziare
Titolo: disco clonato, avvio bloccato su GRUB

Ciao a tutti.
Dopo aver ridimensionato con GParted l'unica partizione del mio disco da 
80GB, ho provveduto a clonarla su un disco da 40GB collegato in USB 
mediante Clonezilla. Il risultato ï¿œ stato soddisfacente, senonchï¿œ 
all'avvio del sistema col disco da 40GB, mi rimane impressa a video la 
scritta "GRUB" e non carica oltre.
Rimettendo il disco da 80GB (con partizione ridimensionata, ormai), il 
sistema parte.
Che cosa mi son perso?
Grazie...

 Che cosa mi son perso?
Che devi installare il grub (grub-install, solitamente) anche sul nuovo
disco, altrimenti hai solo i file di configurazione, ma non il loader
nell'MBR.
-- 
Massimo Bacilieri AKA Crononauta

 nell'MBR.
Già... pare pure a me. Però come faccio ora ad installarlo?


Con grub-install? ;-)
Avvii da una live, monti la root e il boot, e poi fai grub-install
/dev/hda , se hda è il disco di boot (nota: il *disco*, non la
partizione, visto che qui si tratta di MBR).
In comandi, qualcosa tipo:
(boot da CD, poi alla shell di amministrazione:)
# mount /dev/hda5 /mnt/
# mount /dev/hda1 /mnt/boot
# chroot /mnt
# grub-install /dev/hda
In alternativa a chroot, puoi specificare la root in grub-install:
# grub-install --root-directory /mnt /dev/hda
Ecco tutto.
Ah, le partizioni le ho messe lì nella situazione "classica" in cui la
prima fisica è /boot, e la prima partizione in un volume logico è la /.
Se hai il disco partizionato diversamente, devi usare le partizioni giuste.


 partizione, visto che qui si tratta di MBR).
Ho seguito questa guida per ora:
http://natonelbronx.wordpress.com/2008/03/03/ripristinare-grub-da-livecd-con-grub-install-e-altre-amenita/
La questione è che quando poi sono nel chroot, dando il comando 
"grub-install /dev/sda" mi comunica quanto segue:
Your embedding area is unusually small. core.img won't fit in it..
Embedding is not possible. GRUB can only be installed in this setup by 
using blocklists. However, blocklists are UNRELIABLE and it's use is 
discouraged.
Error: if you really want blocklists, use --force
Che dici di fare?

 
Se non sai cosa fare, credo sia meglio non forzare.
Ma nel disco nuovo c'e' la dir di boot?
Sei sicuro che /dev/sda sia riferito a quel disco?
-- 
Archlinux on (uname -a)
F

 Che dici di fare?
Ho come la forte idea che tu stia cercando di installare il grub su un
dispositivo USB non montato... perché /dev/sdX sono i dispositivi SCSI o
quelli usb. I dischi IDE/SATA o chi per essi sono /dev/hdX (infatti
leggi bene cosa ti ho scritto *io* ;-) ).


Crononauta wrote:

I dischi SATA sono /dev/sdX da parecchio (da sempre, direi), e in certi 
kernel recenti anche quelli IDE sono /dev/sdX.
-- 
Cio' che si vede, e'.

 kernel recenti anche quelli IDE sono /dev/sdX.
I dischi IDE sono *certamente* /dev/hdX anche sui kernel più moderni
(sia il 2.6.33.1 compilato "custom" che tutta la serie di quelli
ufficiali Debian mi vedono il disco IDE come /dev/hda); semmai *può*
esser visto come /dev/sdX un disco SATA:
http://www.cyberciti.biz/faq/linux-sata-drive-displayed-as-devhda/


Crononauta wrote:

I kernel piu' recenti hanno un nuovo sottosistema (libata) che unifica tutti 
i dischi usando /dev/sdX. Probabilmente e' ancora considerato sperimentale, 
ma a un certo punto diventera' il default:
https://ata.wiki.kernel.org/index.php/Main_Page
E comunque adesso non riesco a trovare i riferimenti ma sono quasi sicuro 
che qualche distro (forse Ubuntu server?) lo sta gia' usando, perlomeno con 
certi chipset. 


 con certi chipset.
Ho trovato qualche info in piu':
https://wiki.ubuntu.com/LibAtaForAtaDisks
http://mail.linux.ie/pipermail/ilug/2008-February/096959.html
pero' non uso Ubuntu, quindi non so se poi l'hanno mantenuto oppure no.


Marco wrote:

Anche
http://www.gossamer-threads.com/lists/linux/kernel/791086
(ok basta)


 Sei sicuro che /dev/sda sia riferito a quel disco?
Si, certo al 100%.

 kernel recenti anche quelli IDE sono /dev/sdX.
È proprio questo il mio caso: disco PATA, ma cmq è sdX (mi meravigliai 
pure io tempo fa)

 (ok basta)
Gi�: chi mi aiuta a risolvere??? Son ancora alla frutta!!!

 kernel recenti anche quelli IDE sono /dev/sdX.
Uhm, controllavo nuovamente:
il sistema avviato col disco "vecchio" PATA (da sostituire) di 80GB mi 
viene montato su /dev/hda!!!
Il disco clonato "nuovo" (40GB PATA) quando viene visto da Clonezilla 
Live, viene visto come /dev/sda.
Come mai questa discrepanza? Può essere causa dell'impossibilità di fare 
il "grub-install"?
Grazie...


Facebook: Massimo Bacilieri

 ma a un certo punto diventera' il default:
"Ad un certo punto", "qualche", "forse", "sperimentale" e "diventerà"
sono termini che fanno abbastanza a pugni con "tutti" e "default", non
credi?
-- 
Massimo Bacilieri AKA Crononauta 


 credi?
No, non credo. Ma se vuoi leggere le cose a tuo modo, ti do ragione. 


 leggi bene cosa ti ho scritto io ;-) ).
Ma a quale kernel sei rimasto? :)


 È proprio questo il mio caso: disco PATA, ma cmq è sdX
Posta fdisk -l (con il disco USB collegato)


 
cosa ti dice ls -lF /dev/disk/by-uuid (con entrambi i dischi collegati)?
Se hai clonato avrai 2 HD con lo stesso UUID, se /etc/fstab lo vuole avviare 
tramite UUID c'e' confusione ;)


 Si, ci sono entrato, non è una partizione separata.
Hai la sottodir di grub?
Usi grub1?
C'e' menu.lst nella dir di grub?
Se ce la mostrassi?


 Ma a quale kernel sei rimasto? :)
2.6.33.1.
Magari dovresti chiedermi a che computer sono rimasto ehehe :-D


 Se ce la mostrassi?
Eccolo (rimosse righe coi commenti #):
default         0
timeout         5
color cyan/blue white/blue
QUI POI c'è una cosa strana: 
http://yfrog.com/eucapture2810200916324514j
title           Debian GNU/Linux, kernel 2.6.30-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.30-2-686 root=/dev/hda1 ro quiet
initrd          /boot/initrd.img-2.6.30-2-686
title           Debian GNU/Linux, kernel 2.6.30-2-686 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.30-2-686 root=/dev/hda1 ro quiet single
initrd          /boot/initrd.img-2.6.30-2-686
title           Debian GNU/Linux, kernel 2.6.26-2-686
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet
initrd          /boot/initrd.img-2.6.26-2-686
title           Debian GNU/Linux, kernel 2.6.26-2-686 (single-user mode)
root            (hd0,0)
kernel          /boot/vmlinuz-2.6.26-2-686 root=/dev/hda1 ro quiet single
initrd          /boot/initrd.img-2.6.26-2-686

 cosa ti dice ls -lF /dev/disk/by-uuid (con entrambi i dischi collegati)?
user@karmic:~$ ls -lF /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 2010-05-14 08:26 
abe016ca-844d-46fb-8d5f-dc46c66cf4bd -> ../../sda1
Mi pare manchi un disco: � normale? Uno � connesso PATA, l'altro USB per 
il momento.


 il momento.
Scherzi?
Cloni un disco pata e speri che riparta connesso USB?
Aspetta un altro po', a dircelo.
-- 
           |Save our planet!
    Ciao   |Save wildlife!
   roberto |For your E-MAIL use ONLY recycled Bytes  !!
           |roberto poggi   
rpo...@softhome.net

 Posta fdisk -l (con il disco USB collegato)
Ora ho collegato entrambi i dischi su PATA.
I due dischi da 1TB sono un array RAID.
Il disco *originale* è /dev/sda (80GB).
Il disco *nuovo* sarà /dev/sdb (40GB).
user@karmic:~$ sudo fdisk -l
Disk /dev/sda: 82.0 GB, 81964302336 bytes
255 heads, 63 sectors/track, 9964 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xf7f4f7f4
    Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1        4595    36909306   83  Linux
/dev/sda2            9778        9964     1502077+   5  Extended
/dev/sda5            9778        9964     1502046   82  Linux swap / Solaris
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x179212b2
    Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1      121601   976760001   fd  Linux raid 
autodetect
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x00000000
    Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1      121601   976760001   fd  Linux raid 
autodetect
Disk /dev/sdb: 41.2 GB, 41174138880 bytes
64 heads, 32 sectors/track, 39266 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Disk identifier: 0xf7f4f7f4
    Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1       36045    36910064   83  Linux
/dev/sdb2           36046       37513     1503232    5  Extended
/dev/sdb5           36046       37513     1503216   83  Linux

 Cloni un disco pata e speri che riparta connesso USB?
Assolutamente NO!
Ho clonato il disco PATA su un altro PATA, ma per poterli confrontare li 
ho connessi uno USB (40GB), l'altro PATA (80GB).
Rispondevo semplicemente a Fulvio che mi chiedeva il "ls -lF 
/dev/disk/by-uuid" con entrambi i dischi collegati. Ora con entrambi i 
dischi in PATA vedo comunque solo questo:
user@karmic:~$ sudo ls -lF /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 2010-05-14 11:38 
abe016ca-844d-46fb-8d5f-dc46c66cf4bd -> ../../sda1
Non mi pare normale, dato che fdisk -l dia (riassunto):
Disk /dev/sda: 82.0 GB, 81964302336 bytes
Disk /dev/sdc: 1000.2 GB, 1000204886016 bytes
Disk /dev/sdd: 1000.2 GB, 1000204886016 bytes


 kernel          /boot/vmlinuz-2.6.30-2-686 root=/dev/hda1 ro quiet
Amico qui di sicuro non parte ;)
Il kernel ti dice che HD su USB e' /dev/sdb1 !!
La prima cosa che dovresti fare e' studiare il Grub 2. Io non lo conosco.
Capire i comandi che sono disponibili alla shell di avvio. Quando hai una 
certa conoscenza cominci a fare delle prove a modificare il menu di avvio.
Per primo potresti studiarti cosa GRUB fa durante l' avvio, premendo "e" 
quando presenta il menu di avvio.
Vedi se trovi qualcosa che parla di /dev/hda1 e lo modifichi con /dev/sdb1. 
Se invece fosse in notazione grub, prova usare l' auto-completamento 
battendo "(hd" poi [tab] e di seguito.
NOTA che le virgolette non son usate, solo qui come spiegazione e  come 
delimitatori. [tab] e' il tasto tabulatore.
Se avvii, col BIOS che ti vede l' USB, dovresti provare con il comando
"set root= (hd0,0)"
vedi la risposta di ritorno, se non dice che e' un filesystem, allora stai 
puntando in posizione sbagliata. Comunque editare non dovrebbe causare 
danni, solo se non azzecchi la partizione giusta si incanta li' :)
Come siam andati con l' inglese a scuola ? :) Guarda qui....
http://kubuntuforums.net/forums/index.php?topic=3106368.0
http://grub.enbug.org/Manual


 Assolutamente NO!
Be', poteva sembrare, non saresti il primo che ci prova.
Del resto, io non ci sto capendo pi� nulla. ;-)
Come lo hai clonato?
Hai clonato le partizioni o il disco?
Hai lasciato che clonezilla ricalcolasse le partizioni
proporzionalmente o le hai impostate prima tu?
Con che versione di clonezilla?
Che flag hai usato?
Il raid degli altri due dischi � esclusivamente software, vero?????


 Il raid degli altri due dischi � esclusivamente software, vero?????
Si.

 La prima cosa che dovresti fare e' studiare il Grub 2. Io non lo conosco.
Prima di tutto vorrei risolvere 'sta situazione: in fin dei conti voglio 
solo sostituire il mio disco da 80GB (danneggiato) con un disco da 40GB!!!

 solo sostituire il mio disco da 80GB (danneggiato) con un disco da 40GB!!!
OK, diciamo che abbiamo fatto un po' di didattica.
Credo che potresti, scambiare gli HD e provare.
Alla peggio non parte e rimetti quello da 80 Gb.


 Alla peggio non parte e rimetti quello da 80 Gb.
Ora ho rifatto (son di coccio, lo so!) la clonazione, da disco a disco 
(li ho collegati entrambi in PATA, il 40GB slave) della sola partizione /
Ricollego *solo* il 40GB, mettendolo cmq "master" come era il 80GB: 
*nulla da fare!* Resta la scritta GRUB in cima a sinistra e nulla si 
muove...
Ma diamine, ma cosa c'� di difficile in questa clonazione?
Ho un disco da 80GB con una partizione da 38GB, poi spazio vuoto, poi 
swap da 1,5GB.
Clono con clonezilla su un disco da 40GB la sola partizione da 38GB 
(ignoro swap che non � indispensabile) ed il sistema non parte pi�!!!
Non posso clonare il disco intero perch� non si pu� clonare il disco su 
uno pi� piccolo... :-/
Uffa!

 
Lascia clonezilla ;)
Considero che il 40 Gb, non contenga alcunche' di importante.
Provi con cfdisk o (G)parted a formattare, se ce l' hai oppure provi a fare 
una partizione unica.
Dopo puoi fare copia da la partizione file-2-file dal 80 Gb di 38 al quella 
nuova del 40 Gb. Poi per avviare dovresti copiare il nuovo MBR.
Oppure potresti fare un dd del tipo:
dd if=partizione1-dell-80 of=partizione1-dell-40.
poi dovresti provare un resizefs della partizione1 del 40 Gb.
Credo che ci siano problemi nel resize. Se ti interessa solo la prima 
partizione, salva quella e finito li :)


 partizione, salva quella e finito li :)
Ci provo così, oppure meglio usare SuperGrubDisk?
Grazie mille eh...

 Poi per avviare dovresti copiare il nuovo MBR.
Copiare l'MBR... pardon, ma come dovrei procedere per fare quest'operazione?


Allora, ho usato:
dd if=/dev/sda of=/dev/sdb bs=446 count=1
sda è il disco origine 80GB
sdb è il disco destinazione 40GB
bs=446 per i motivi spiegati qui:
http://www.cyberciti.biz/faq/howto-copy-mbr/
NON fa il boot! Rimane ancora fermo su "GRUB"... che diamine!

OxygeN ha scritto:

Monti entrambi i dischi.
Identifichi i due dischi.
lanci:
dd if=/dev/discovecchio of=/dev/disconuovo bs=446 count=1
Indovina cosa sono discovecchio e disconuovo. ;-)


 Ci provo così, oppure meglio usare SuperGrubDisk?
Avevi scritto che quello da 80 hai fatto una riduzione di 38 Gb, allora 
pensavo fosse necessario ridimensionare a 40. Altrimenti ti rimane uno 
spazio inutilizzato d 2 Gb.
Se non ci siamo in questo modo, rimane il chroot e vedere se riesci ad fare 
il grub-install sul 40 Gb. Tanto non perdi nulla, credo. Al limite rifarai 
la copia come la prima volta.


 
Di fatto significa che l' MBR e' quello dell' HD da 80, che cerca i files in 
un certo modo, che sul 40 sono diversi.
Dopo di questo ho finito le idee :)


 Indovina cosa sono discovecchio e disconuovo. ;-)
5 minuti prima che tu scrivessi, ho proprio fatto 'sta cosa (appunto col 
446)... eppure *non* ha funzionato... :-/
Giuro che non so più che pesci pigliare...

 la copia come la prima volta.
Uffa... nel tentativo di montare il tutto in "chroot" per poi procedere 
con "grub-install", mi becco una sfilza di errori:
deleted inode referenced
Che si fa?

 o anche su dimensioni differenti?
Fa le partizioni ugualissime. Poi si potrebbe passare il resizefs.


 Giuro che non so più che pesci pigliare...
Hai fatto il supergrub disk?
Se lanci l'avvio da lì, parte?
Se monti / del disco nuovo, vedi la struttura e i file?
Di dove sei? Che quasi quasi ...
Diciamolo francamente: avresti fatto prima a reinstallare sul
disco nuovo una versione minima di quella distribuzione, e da
lì copiare con tar o cp -A tutto il disco vecchio, come dalle
istruzioni in hard-disk upgrade how-to.


 Fa le partizioni ugualissime. Poi si potrebbe passare il resizefs.
Eh, ma quando creo la partizione sul disco da 40GB, mi fa un 
arrotondamento tutto suo, non mi permette di crearla *identica* (parlo 
di cfdisk).

 
Non serve uguale, di fatto dd la modifica di per se'.
Serve solo per aver una partizione sull' HD. La formazione degli inode e l' 
altro viene modificata quando farai dd ;)
Chiaro che senza partizione non riesci ad indirizzare sull' hd vuoto.
Solo che alla fine manca l' MBR, dato che copi solo *una* partizione. A quel 
punto usi la console di grub o supergrubdisk.
