grub - software raid 1 - come verificare se dischi di avvio (bootable)

10 risposte [Ultimo contenuto]
Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

Buongiorno

sono davvero in difficoltà nel reperire un'informazione sul mio server con s.o. debian 7.1. Non riesco a capire dai file della configurazione di grub se entrambi i dischi del raid 1 sono di avvio (bootable).
Qualcuno potrebbe darmi un suggerimento? Magari un comando ssh che consenta di verificare. Grazie anticipatamente

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Ciao,
non so se hai già visto questa pagina del wiki.
Un paio di test che puoi fare li trovi qui, però non credo valgano se c'è di mezzo EFI/UEFI.

Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

Grazie per la risposta.
Ho provato entrambi i suggerimenti del link ma purtroppo non mi hanno permesso di risolvere il problema.

Questo è quanto restituito dal primo comando
root@ns369781:~# file -s /dev/sda
/dev/sda: sticky x86 boot sector; partition 1: ID=0xee, starthead 0, startsector 1, 3907029167 sectors, extended partition table (last)\011, code offset 0x0

Per quanto riguarda l'altro tentativo, usando il comando dd, nessuna risposta

Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

Probabilmente non ho ben evidenziato la natura del mio problema.

Cerco di precisarlo meglio.
Uno dei mie due dischi di un software raid1 sarà sostituito, causa guasto, fra qualche giorno. Ho un s.o. Debian 7.1, ho il BIOS (non UEFI) e grub come bootloader. Il mio timore è che, dopo la ricostruxione del raid con mdadm, il boot non funzioni.

Aggiungo alcune informazioni

1) Testo del file di configurazione "grub.cfg"

if [ -s $prefix/grubenv ]; then

load_env

fi

set default="0"

if [ "${prev_saved_entry}" ]; then

set saved_entry="${prev_saved_entry}"

save_env saved_entry

set prev_saved_entry=

save_env prev_saved_entry

set boot_once=true

fi

function savedefault {

if [ -z "${boot_once}" ]; then

saved_entry="${chosen}"

save_env saved_entry

fi

}

function load_video {

insmod vbe

insmod vga

insmod video_bochs

insmod video_cirrus

}

insmod raid

insmod mdraid09

insmod part_gpt

insmod part_gpt

insmod ext2

set root='(mduuid/9bad0377260a5b69a4d2adc226fd5302)'

search --no-floppy --fs-uuid --set=root adcd0e04-e6ee-4a7d-abd2-a8880e6ba90d

if loadfont /usr/share/grub/unicode.pf2 ; then

set gfxmode=640x480

load_video

insmod gfxterm

insmod raid

insmod mdraid09

insmod part_gpt

insmod part_gpt

insmod ext2

set root='(mduuid/9bad0377260a5b69a4d2adc226fd5302)'

search --no-floppy --fs-uuid --set=root adcd0e04-e6ee-4a7d-abd2-a8880e6ba90d

set locale_dir=($root)/boot/grub/locale

set lang=

insmod gettext

fi

terminal_output gfxterm

set timeout=5

set menu_color_normal=cyan/blue

set menu_color_highlight=white/blue

menuentry "Debian GNU/Linux, OVH kernel 3.8.13-xxxx-grs-ipv6-64" {

insmod raid

insmod mdraid09

insmod part_gpt

insmod part_gpt

insmod ext2

set root='(mduuid/9bad0377260a5b69a4d2adc226fd5302)'

search --no-floppy --fs-uuid --set=root adcd0e04-e6ee-4a7d-abd2-a8880e6ba90d

linux /boot/bzImage-3.8.13-xxxx-grs-ipv6-64 root=/dev/md2 ro quiet

}

if [ -f $prefix/custom.cfg ]; then

source $prefix/custom.cfg;

fi

2) Output restituito da esecuzione script bootscriptinfo

============================= Boot Info Summary: ===============================
=> No boot loader is installed in the MBR of /dev/sda.
=> No boot loader is installed in the MBR of /dev/sdb.

sda1: __________________________________________________________________________

File system: BIOS Boot partition
Boot sector type: -
Boot sector info:

sda2: __________________________________________________________________________

File system: linux_raid_member
Boot sector type: -
Boot sector info:

sda3: __________________________________________________________________________

File system: linux_raid_member
Boot sector type: -
Boot sector info:

sda4: __________________________________________________________________________

File system: swap
Boot sector type: -
Boot sector info:

sdb1: __________________________________________________________________________

File system: BIOS Boot partition
Boot sector type: Grub2's core.img
Boot sector info:

sdb2: __________________________________________________________________________

File system: linux_raid_member
Boot sector type: -
Boot sector info:

sdb3: __________________________________________________________________________

File system: linux_raid_member
Boot sector type: -
Boot sector info:

sdb4: __________________________________________________________________________

File system: swap
Boot sector type: -
Boot sector info:

md3: ___________________________________________________________________________

File system: ext4
Boot sector type: -
Boot sector info:
Operating System:
Boot files:

md2: ___________________________________________________________________________

File system: ext4
Boot sector type: -
Boot sector info:
Mounting failed: mount: /dev/md2 already mounted or MDRaid/md2 busy

============================ Drive/Partition Info: =============================

Drive: sda _____________________________________________________________________

Disk /dev/sda: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Partition Boot Start Sector End Sector # of Sectors Id System

/dev/sda1 1 3,907,029,167 3,907,029,167 ee GPT

GUID Partition Table detected.

Partition Start Sector End Sector # of Sectors System
/dev/sda1 40 2,048 2,009 BIOS Boot partition
/dev/sda2 4,096 307,202,047 307,197,952 RAID partition (Linux)
/dev/sda3 307,202,048 3,845,582,847 3,538,380,800 RAID partition (Linux)
/dev/sda4 3,845,582,848 3,907,020,799 61,437,952 Swap partition (Linux)

Drive: sdb _____________________________________________________________________

Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes

Partition Boot Start Sector End Sector # of Sectors Id System

/dev/sdb1 1 3,907,029,167 3,907,029,167 ee GPT

GUID Partition Table detected.

Partition Start Sector End Sector # of Sectors System
/dev/sdb1 40 2,048 2,009 BIOS Boot partition
/dev/sdb2 4,096 307,202,047 307,197,952 RAID partition (Linux)
/dev/sdb3 307,202,048 3,845,582,847 3,538,380,800 RAID partition (Linux)
/dev/sdb4 3,845,582,848 3,907,020,799 61,437,952 Swap partition (Linux)

"blkid" output: ________________________________________________________________

Device UUID TYPE LABEL

/dev/md2 adcd0e04-e6ee-4a7d-abd2-a8880e6ba90d ext4
/dev/md3 adfbad7d-c8c3-4b04-884a-87d2d35e3a62 ext4
/dev/sda2 9bad0377-260a-5b69-a4d2-adc226fd5302 linux_raid_member
/dev/sda3 cca07bac-0ea8-99e8-a4d2-adc226fd5302 linux_raid_member
/dev/sda4 05de1987-d6cb-4baa-87f8-3b008e05de8e swap
/dev/sdb2 9bad0377-260a-5b69-a4d2-adc226fd5302 linux_raid_member
/dev/sdb3 cca07bac-0ea8-99e8-a4d2-adc226fd5302 linux_raid_member
/dev/sdb4 7b1315b8-dcf4-4bd6-9379-ffbcf3014aa6 swap

=============================== StdErr Messages: ===============================

No volume groups found

3) Esaminando il contenuto di grub.cfg ho notato due linee che tramite uuid identificano prima le partizioni sda2 e sdb2 e dopo (seconda linea) md2.

set root='(mduuid/9bad0377260a5b69a4d2adc226fd5302)'

search --no-floppy --fs-uuid --set=root adcd0e04-e6ee-4a7d-abd2-a8880e6ba90d

4) Esaminando l'output di bootscriptinfo ho notato due particolari

Il primo:
=> No boot loader is installed in the MBR of /dev/sda.
=> No boot loader is installed in the MBR of /dev/sdb.

Il secondo:
La prima partizione di entrambi i dischi è dedicata ad una Bios Boot Partition e solo per sdb1 compare questo valore in Boot Sector type
Boot sector type: Grub2's core.img

Core.img è un file nella stessa cartella di grub.cfg (\boot\grub). Perché appare solo in sdb1 e non in sda1?

Spero davvero che queste nuove informazioni possano essere utili per rispondere alla mia domanda "Dopo la ricostruzione del raid sul disco nuovo, il boot avverrà senza problemi?"

Grazie di nuovo.

Ritratto di badroot
badroot
(Guru)
Offline
Guru
Iscritto: 22/08/2008
Messaggi: 2068

Citazione:

consider executing dpkg-reconfigure grub-pc (or dpkg-reconfigure grub-efi-amd64 on EFI systems), and install to all devices. This way, your system will still boot correctly even if you reorder your drives.

Cito nuovamente quanto riportato nel wiki che ti ho precedentemente linkato. Purtroppo non posso parlare per esperienza diretta ma mi sembra proprio la soluzione al tuo problema, ovviamente prendo per buono quanto affermato dal wiki.

Volendo potresti anche fare una simulazione con una macchina virtuale, il wiki parte dall'installazione in RAID con qemu ma credo che anche VirtualBox o VMWare ti permettano di fare lo stesso esperimento.

Ritratto di homeless
homeless
(Guru)
Offline
Guru
Iscritto: 21/10/2011
Messaggi: 1359

Citazione:

Esaminando l'output di bootscriptinfo ho notato due particolari

Il primo:
=> No boot loader is installed in the MBR of /dev/sda.
=> No boot loader is installed in the MBR of /dev/sdb.


Non ce lo hai detto, ma dai dati forniti sembra che il server di cui ci stai scrivendo sia ospitato su un servizio di hosting, in particolare su ovh.it . La tua installazione, pertanto, non è una installazione standard di Debian, ma una installazione specifica del fornitore di hosting ed anche il kernel non è quello Debian standard, ma una versione modificata da OVH. Pertanto, sulla configurazione adottata, dovresti sentire l'assistenza di OVH con cui hai presumibilmente stipulato un contratto di servizio.

Citazione:

La prima partizione di entrambi i dischi è dedicata ad una Bios Boot Partition e solo per sdb1 compare questo valore in Boot Sector type
Boot sector type: Grub2's core.img . Core.img è un file nella stessa cartella di grub.cfg (\boot\grub). Perché appare solo in sdb1 e non in sda1?


Probabilmente perché è quello da cui è caricata l'immagine di grub per l'avvio del sistema operativo.

Citazione:

"Dopo la ricostruzione del raid sul disco nuovo, il boot avverrà senza problemi?"


Se il disco da sostituire è il /dev/sdb1 direi che ma macchina si pianterà, ma il fornitore di servizio di hosting è quello che può risponderti, anche perché ho visto che prevede specifiche procedure di ripristino in questi casi ed, in particolare, nel caso di ripristino di un sistema in RAID 1: ne hai preso visione ? Se installi grub anche sull'altro disco potresti avere migliori possibilità. In ogni caso, primo di toccare qualunque configurazione, fai un backup.

Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

Citazione:

Non ce lo hai detto, ma dai dati forniti sembra che il server di cui ci stai scrivendo sia ospitato su un servizio di hosting, in particolare su ovh.it . La tua installazione, pertanto, non è una installazione standard di Debian, ma una installazione specifica del fornitore di hosting ed anche il kernel non è quello Debian standard, ma una versione modificata da OVH. Pertanto, sulla configurazione adottata, dovresti sentire l'assistenza di OVH con cui hai presumibilmente stipulato un contratto di servizio

Il server ovh è una macchina dedicata di cui ho il pieno controllo.

Citazione:

Probabilmente perché è quello da cui è caricata l'immagine di grub per l'avvio del sistema operativo.

Quindi, visto che devo sostituire sdb, il sistema potrebbe piantarsi...

Citazione:

Se il disco da sostituire è il /dev/sdb1 direi che ma macchina si pianterà, ma il fornitore di servizio di hosting è quello che può risponderti, anche perché ho visto che prevede specifiche procedure di ripristino in questi casi ed, in particolare, nel caso di ripristino di un sistema in RAID 1: ne hai preso visione ?

Purtroppo i tecnici di ovh Italia non forniscono alcun aiuto e le indicazioni della guida non evidenziano in alcun modo i problemi di boot dopo la ricostruzione né tantomeno come risolverli. Mi capitò già un paio di anni fa di sostituire un disco, in quell'occasione sda. Terminata la ricostruzione, il sistema non partì. In quel caso (erano le 7 di mattina ed ero disperato), mi venne in soccorso un tecnico francese che probabilmente fece qualche intervento sulla configurazione di grub (in notturna solo servizio di assistenza in francese. Fortunatamente conosco bene la lingua, altrimenti unica soluzione sarebbe stata quella di recuperare tutto dal backup).

Ritratto di homeless
homeless
(Guru)
Offline
Guru
Iscritto: 21/10/2011
Messaggi: 1359

Scusa ma la guida http://docs.ovh.ca/en/guides-ovh-rescue.html non indica cosa fare proprio nel caso che stai ipotizzando ?

Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

La guida indica come ricostruire il raid software in seguito ad una sostituzione di uno dei due dischi. Ma non ho trovato (certo non escludo che mi sia sfuggito qualcosa) indicazioni su cosa fare se il sistema non si avvia dopo la ricostruzione (evento spiacevole già verificatosi due anni fa con l'altro disco).

Ritratto di homeless
homeless
(Guru)
Offline
Guru
Iscritto: 21/10/2011
Messaggi: 1359

La guida ti indica come entrare in ambiente di ripristino, da cui teoricamente dovresti poter anche reistallare grub.

Ritratto di iampy
iampy
(Junior)
Offline
Junior
Iscritto: 23/06/2017
Messaggi: 6

Si, il rescue mode certamente mi consente di poter effettuare modifiche ed installazioni qualora il sistema non riparta. Per ricostruire il software raid1, però, saranno necessarie molte ore ed è proprio per evitare sorprese e ridurre il tempo di indisponibilità dei siti gestiti che avrei voluto sapere in anticipo cosa accade, sostituendo il disco sdb, in base alle informazioni di boot ed al contenuto del file di configurazione di grub.