# [RISOLTO] Grub con partizioni incasinate

## fbcyborg

Salve a tutti, 

ho avuto un problema con la mia scheda madre, per fortuna risolto e ora che l'ho rimontata e dopo aver effettuato un reset del BIOS, GRUB mi vede le partizioni in una sequenza sbagliata.

La situazione che ho sul mio PC è la seguente:

/dev/sda1 & /dev/sdb1 ==> /dev/md0 RAID 0

/dev/sda2 & /dev/sdb2 ==> swap

/dev/sda3 & /dev/sdb3 ==> /dev/md1 RAID 1

/dev/sda5 & /dev/sdb5 ==> /dev/md2 RAID 0

/dev/sda6 & /dev/sdb6 ==> /dev/md3 RAID 0

/dev/sda7 & /dev/sdb7 ==> /dev/md4 RAID 1

/dev/sda8 & /dev/sdb8 ==> /dev/md5 RAID 1

In questo RAID, ho la mia Gentoo Linux profilo desktop e viene riconosciuta correttamente da GRUB, infatti l'opzione root (hd0,0) funziona perfettamente.

Ora in teoria GRUB dovrebbe vedere i dischi così:

/dev/sda1 ==> (hd0,0)

/dev/sdb1 ==> (hd1,0)

Però non è più così da quando ho avuto questo problema con il BIOS.

Ho inoltre un altro disco, /dev/sdc, che non è messo in raid con nessun'altro disco e nel quale ho installato XEN.

La riga di GRUB per questo disco è sempre stata questa:

```
root (hd2,0)
```

Il problema invece è che ora il terzo disco (/dev/sdc) non viene più visto come (hd2,0), ma devo cambiarlo in (hd1,0). Poi parte tranquillamente.

Ho controllato che nel bios venisse effettivamente visto come terzo disco, e sembra tutto OK.

Ho provato inoltre a rifare il setup di GRUB, come indicato nell'handbook per i sistemi con RAID, e non è cambiato nulla.

Come si può riparare questa cosa?

EDIT: Fra l'altro ho notato che il file /boot/grub/device.map contiene le seguenti righe:

```
(hd0)   /dev/sda

(hd1)   /dev/sdb
```

Altra cosa:

Se eseguo root e setup da grub, ecco cosa ottengo:

```
grub> root (hd0,0)

 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0,0)

 Checking if "/boot/grub/stage1" exists... yes

 Checking if "/boot/grub/stage2" exists... yes

 Checking if "/boot/grub/e2fs_stage1_5" exists... yes

 Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)

 Running "embed /boot/grub/e2fs_stage1_5 (hd0,0)"... failed (this is not fatal)

 Running "install /boot/grub/stage1 (hd0,0) /boot/grub/stage2 p /boot/grub/menu.lst "... succeeded

Done.
```

```
grub> root (hd1,0)

 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd1,0)

 Checking if "/boot/grub/stage1" exists... yes

 Checking if "/boot/grub/stage2" exists... yes

 Checking if "/boot/grub/e2fs_stage1_5" exists... yes

 Running "embed /boot/grub/e2fs_stage1_5 (hd1,0)"... failed (this is not fatal)

 Running "embed /boot/grub/e2fs_stage1_5 (hd1,0)"... failed (this is not fatal)

 Running "install /boot/grub/stage1 (hd1,0) /boot/grub/stage2 p /boot/grub/menu.lst "... failed

Error 16: Inconsistent filesystem structure
```

Eppure il raid (cat /proc/mdstat) mi da tutto OK.

----------

## cloc3

 *fbcyborg wrote:*   

> 
> 
> Ho inoltre un altro disco, /dev/sdc ...
> 
> 

 

quando si ha un altro disco, può succedere di tutto.

in teoria, la causa di fondo è il setting del bios, che può essere configurato per evitare i problemi.

ma nella pratica è meglio essere un po' maneggioni e provare ad arrangiarsi.

principio 1: una tecnica che taglia la testa al testa al toro è l'uso delle UID. così ogni partizione viene riconosciuta a livello hardware in modo univoco e non se parla più.

principio 2: i nomi /dev/xyz e le sigle (hdX) sono assegnati dal sistema operativo agente o da grub con modalità non del tutto pervedibili. quando si aggiunge un altro disco può accadere di tutto. in particolare,  i numeri attribuiti da grub in fase di runtime, quando interagisce con il kernel e al boot, quando interagisce solo con la bios possono essere diversi.

un trucco utile è mettere dentro alla partizione di boot un filetto spia. lo chiami ad esempio pippo_di_sdc3. quando lanci grub, dopo il comando [b]root (hdX), usi cat /pippo_di_sdc3 e così sei sicuro di avere beccato la partizione giusta. Quando lancerai grub da Bios, in modalità console, potrai usare cat per verificare con certezza se la partizione (hdX) si chiama ancora così o se è diventata (hdY).

----------

## fbcyborg

Ho capito... è un bel casino sto GRUB.

(Ah, ho aggiornato il primo post con delle altre informazioni)

Dunque mi sorge un dubbio circa il trucchetto che mi hai detto: e se quel file non viene trovato?

Comunque io opererei da BIOS, ma mi pare tutto OK!!!!

Grazie per l'aiuto.

EDIT: Ho anche aggiornato il device.map come segue:

```
(fd0)   /dev/fd0

(hd0)   /dev/sda

(hd1)   /dev/sdb

(hd2)   /dev/sdc
```

RISOLTO! In pratica era sbagliato l'ordine di boot degli Hard Disk.   :Rolling Eyes:   :Rolling Eyes: 

Grazie per il consiglio!  :Wink: 

----------

## cloc3

 *fbcyborg wrote:*   

> 
> 
> RISOLTO! In pratica era sbagliato l'ordine di boot degli Hard Disk.   
> 
> Grazie per il consiglio! 

 

infatti, il casino non sta in grub, ma nell'ordine in cui la bios presenta a grub i dispositvi, che può cambiare a seconda della situazione.

----------

