«

»

Gen 13

File Grub danneggiato ubuntu non parte, ecco come ripristinare Grub da LiveCD con grub-install

grub.jpgNormalmente GRUB è già installato. Può accadere però che se viene installato per ultimo un sistema operativo che come windows ignora la presenza di altri sistemi sul disco (andando a sovrascrivere il MBR), e vuole monopolizzare il vostro pc, ci si ritrovi nella necessità di dover installare nuovamente GRUB. Oppure semplicemente è capitato di voler provare un altro boot loader e di voler poi ritornare a GRUB. Cmq la procedura da seguire per entambi i casi è la stessa. Utilizzate un liveCD per avviare il sistema e dopo l’avvio monteremo la partizione di root del sistema Linux installato sull’hard disk.

mkdir /mnt/root

mount /dev/sda3 /mnt/root

mount –bind /dev/ /mnt/root/dev/

mount -t proc none /mnt/root /proc

Ora con chroot si può cambiare al volo la partizione di root del nostro livecd:

chroot /mnt/root /bin/bash

Per usare Grub è necessario installarlo nel MBR con il seguente comando:

grub-install –no-floppy  /dev/sda

In questo modo ogni altro boot loader verrà sovrascritto e all’avvio apparirà grub che permetterà di avviare ogni sistema presente su hard disk.

Per chi è alle prime armi ecco cosa può essere utile sapere per comprendere meglio quanto scritto sopra:
Innanzi tutto cerchiamo di capire come un sistema GNU/Linux assegna i nomi ai propri device (ad es. hard disk, unità rimovibili USB, …). Un device è rappresentato come un file sotto la directory /dev .
Se si tratta di un hard disk IDE ATA il nome del dispositivo è /dev/hdXn, mentre se si tratta di un hard disk SATA o SCSI il nome del dispositivo è /dev/sdXn. Dove X sarà sempre una lettera minuscola dell’alfabeto: hda per indicare il primo disco rilevato, hdb il secondo, hdc il terzo e cosi via. Mentre n è un numero intero che a partire da 1 identifica la partizione nel disco: hda1 hda2 sono rispettivamente la prima e la seconda partizione del primo disco.
Se sapete qual’è la partizione semplicemente montatela così (supponiamo che sia /dev/sda3 ):

mkdir /mnt/root

mount /dev/sda3 /mnt/root

Se non vi dice nulla il montaggio è avvenuto e potete vedere l’elenco di file nella directory “/mnt/root” che avete appena creato…

ls /mnt/root

la directory root di linux ha (più o meno) questo contenuto:
————————————————————————————————————–

 bin    etc         initrd.img.old  mnt   sbin     tmp      vmlinuz.old boot   home        lib             opt   selinux  usr cdrom  initrd      lost+found      proc  srv      var dev    initrd.img  media           root  sys      vmlinuz  

—————————————————————————————————————

se invece siete arrivati a questo punto avendo ancora dei dubbi su quale partizione sia quella corretta, o vi rendete conto di aver sbagliato partizione date il comando:

umount /mnt/root

e riprovate a montare un altra partizione

mount /dev/sdb2 /mnt/root

ls /mnt/root

il secondo comando vi mostrerà il contenuto della directory /mnt/root

quindi se volete potete trovare il disco corretto procedendo per tentativi, montando e smontando via via le partizioni che pensate essere la partizione di root. Io in genere non mi metto a fare i calcoli che ho spiegato sopra.. Se non ricordo più qual’è la partizione di root provo a montare quelle Linux finché la trovo.

Per aiutarci nell’individuazione delle partizioni possiamo usare il comando fdisk:

fdisk -l

che produrra un output del genere (nell’esempio è presente un solo disco):

—————————————————————————————————————–

 Disk /dev/hda: 203.9 GB, 203928109056 bytes 255 heads, 63 sectors/track, 24792 cylinders Units = cilindri of 16065 * 512 = 8225280 bytes  Dispositivo Boot      Start         End      Blocks   Id  System /dev/hda1               1        7182    57688711    7  HPFS/NTFS /dev/hda2           13710       19126    43512052+  83  Linux /dev/hda3           19253       24792    44500050   83  Linux /dev/hda4            7182       13709    52428769    5  Esteso /dev/hda5            7182       13504    50781433+  83  Linux /dev/hda6           13504       13709     1647303+  82  Linux swap / Solaris  Partition table entries are not in disk order 

——————————————————————————————————————-

se ne avete uno solo (di disco) allora è quello che avete usato prima per montare la partizione. Semplicemente usatelo SENZA IL NUMERINO FINALE (questo è importante)— /dev/sda3 NO!!, /dev/sda SI!!

Altrimenti cercate di capire qual’è il disco che si avvia… “il primario”. In genere è quello che finisce con la lettera “a” (es. /dev/sda o /dev/hda).
grub-install /dev/sda (–no-floppy è opzionale)

questo comando dovrebbe riuscire automaticamente a installare grub…
ora potete riavviare la live ed estrarre il CD… se volete invece lavorare ancora potete uscire dall’ambiente di chroot
exit
e smontare la partizione procedendo a ritroso…
umount /mnt/root /proc
umount /mnt/root /dev
umount /mnt/root

Comando: grub-install
Path: /sbin/grub-install

SINTASSI
# grub-install [option] device
DESCRIZIONE

  • option indica la modalità di funzionamento di grub-install. Può assumere i seguenti valori:
    • -h | –help visualizza un aiuto sommario di grub-install;
    • -v | –version visulizza la verione di grub-install;
    • –root-directory=dir indica di installare i file di GRUB nella directory dir (per default vengono installati in ‘/’). Tale opzione è utilizzata quando si vuol installare i file in una specifica partizione (diversa da ‘/’) o in un disco rimovibile;
    • –grub-shell=file indica quale è il file eseguibile che deve fungere da shell per GRUB;
    • –force-lba indica di utilizzare la modalità LBA anche se il BIOS sembra non supportarla;
    • –recheck indica di eseguire un controllo dei dischi per ricreare il file device.map;
  • device specifica il dispositivo nel quale installare il boot loader GRUB (può essere specificato un file di dispositivo oppure un disco, o partizione, nella sintassi di GRUB);
File Grub danneggiato ubuntu non parte, ecco come ripristinare Grub da LiveCD con grub-installultima modifica: 2011-01-13T22:19:38+01:00da falchibaiso
Reposta per primo quest’articolo

Lascia un commento