Guida alle tecnologie

Configurare RAID1 e GRUB su Fedora 8: preparazione di /dev/sda

5 min read Amministrazione di sistema Aggiornato 01 Oct 2025
RAID1 e GRUB su Fedora 8: preparare /dev/sda
RAID1 e GRUB su Fedora 8: preparare /dev/sda

Questo articolo spiega come aggiungere le partizioni di /dev/sda a un array RAID1 esistente (/dev/md0, /dev/md1, /dev/md2), aggiornare /etc/mdadm.conf e preparare GRUB in modo che il sistema possa avviarsi anche se un disco fallisce. Include comandi, output di esempio, controlli, checklist e suggerimenti di ripristino.

7 Preparazione di /dev/sda

Se tutto è andato a buon fine, dovresti vedere /dev/md0 e /dev/md2 nell’output di:

df -h
[root@server1 ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/md2              4.4G  2.4G  1.8G  58% /  
/dev/md0               99M   15M   80M  16% /boot  
tmpfs                 185M     0  185M   0% /dev/shm  
[root@server1 ~]#

Controlla anche lo stato degli array con:

cat /proc/mdstat

L’output dovrebbe essere simile a questo:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sdb1[1]  
      104320 blocks [2/1] [_U]  
  
md1 : active raid1 sdb2[1]  
      513984 blocks [2/1] [_U]  
  
md2 : active raid1 sdb3[1]  
      4618560 blocks [2/1] [_U]  
  
unused devices:   
[root@server1 ~]#

Ora dobbiamo cambiare il tipo delle tre partizioni su /dev/sda a “Linux raid autodetect”:

fdisk /dev/sda

Eseguendo fdisk, i comandi appaiono così (input tra frecce):

[root@server1 ~]# fdisk /dev/sda

Command (m for help): <-- t  
Partition number (1-4): <-- 1  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 1 to fd (Linux raid autodetect)

Command (m for help): <-- t  
Partition number (1-4): <-- 2  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 2 to fd (Linux raid autodetect)

Command (m for help): <-- t  
Partition number (1-4): <-- 3  
Hex code (type L to list codes): <-- fd  
Changed system type of partition 3 to fd (Linux raid autodetect)

Command (m for help): <-- w  
The partition table has been altered!

Output finale dopo il write:

Calling ioctl() to re-read partition table.  
Syncing disks.  
[root@server1 ~]#

A questo punto aggiungi /dev/sda1, /dev/sda2 e /dev/sda3 agli array RAID corrispondenti:

mdadm --add /dev/md0 /dev/sda1  
mdadm --add /dev/md1 /dev/sda2  
mdadm --add /dev/md2 /dev/sda3

Verifica di nuovo con:

cat /proc/mdstat

Dovresti vedere la sincronizzazione degli array:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sda1[0] sdb1[1]  
      104320 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      513984 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[2] sdb3[1]  
      4618560 blocks [2/1] [_U]  
      [=====>...............]  recovery = 29.9% (1384256/4618560) finish=2.3min speed=22626K/sec  
  
unused devices:   
[root@server1 ~]#

Nota: puoi eseguire “watch cat /proc/mdstat” per avere un aggiornamento continuo dello stato. Per uscire da watch, premi Ctrl+C.

Aspetta che la sincronizzazione sia completata. Quando finisce, l’output sarà simile a questo:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1] [raid6] [raid5] [raid4]  
md0 : active raid1 sda1[0] sdb1[1]  
      104320 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
      513984 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[0] sdb3[1]  
      4618560 blocks [2/2] [UU]  
  
unused devices:   
[root@server1 ~]#

Aggiornare /etc/mdadm.conf

Dopo la sincronizzazione rigenera la configurazione di mdadm:

mdadm --examine --scan > /etc/mdadm.conf

Controlla il file risultante:

cat /etc/mdadm.conf

Dovrebbe contenere righe del tipo:

ARRAY /dev/md0 level=raid1 num-devices=2 UUID=2848a3f5:cd1c26b6:e762ed83:696752f9
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8a004bac:92261691:227767de:4adf6592
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=939f1c71:be9c10fd:d9e5f8c6:a46bcd49

(Questi UUID sono di esempio; sul tuo sistema saranno diversi.)

Importante: conserva il file /etc/mdadm.conf aggiornato prima di ricreare il ramdisk o riavviare.

8 Preparazione di GRUB — Parte 2

Ora dobbiamo aggiornare /boot/grub/menu.lst. Attualmente il primo stanza del kernel punta a /dev/sdb (hd1,0). Per fare in modo che il sistema si avvii anche se /dev/sdb dovesse guastarsi, copia la prima stanza del kernel, incollala subito sotto e sostituisci hd1 con hd0. Inoltre commenta tutte le altre voci kernel non necessarie.

Apri il file:

vi /boot/grub/menu.lst

Il risultato dovrebbe assomigliare a questo esempio:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/sda3
#          initrd /initrd-version.img
#boot=/dev/sda
default=0
fallback=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Fedora (2.6.23.1-42.fc8)
        root (hd1,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet
        initrd /initrd-2.6.23.1-42.fc8.img

title Fedora (2.6.23.1-42.fc8)
        root (hd0,0)
        kernel /vmlinuz-2.6.23.1-42.fc8 ro root=/dev/md2 rhgb quiet
        initrd /initrd-2.6.23.1-42.fc8.img

#title Fedora (2.6.23.1-42.fc8)
#       root (hd0,0)
#       kernel /vmlinuz-2.6.23.1-42.fc8 ro root=LABEL=/ rhgb quiet
#       initrd /initrd-2.6.23.1-42.fc8.img

Dopo aver salvato menu.lst, aggiorna il ramdisk corrente e crea uno nuovo:

mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img_orig2  
mkinitrd /boot/initrd-`uname -r`.img `uname -r`

Quindi riavvia il sistema:

reboot

Dovrebbe avviarsi correttamente.

Congratulazioni: hai configurato con successo RAID1 software su un sistema Fedora 8 in esecuzione.


Controlli rapidi dopo il riavvio

  • Verifica che /proc/mdstat mostri tutti gli array in stato [UU].
  • Controlla /etc/mdadm.conf contenga le ARRAY corrette.
  • Assicurati che /boot contenga initrd e vmlinuz aggiornati.
  • Prova a rimuovere temporaneamente un disco (simulazione) e verifica che il sistema resti avviabile.

Checklist ruolo-based

Amministratore di sistema (pre-azione):

  • Backup della /etc e /boot.
  • Verifica spazio libero su /boot.
  • Note: prendere nota dei valori di UUID e delle versioni del kernel.

Amministratore di sistema (azione):

  • Cambiare tipo partizione su /dev/sda con fdisk.
  • mdadm –add per ogni partizione.
  • monitorare /proc/mdstat fino a sincronizzazione completa.
  • mdadm –examine –scan > /etc/mdadm.conf.
  • Modificare /boot/grub/menu.lst per puntare anche a hd0.
  • Ricreare initrd e riavviare.

Gestore operativo (post-azione):

  • Eseguire test di failover e ripristino.
  • Documentare il procedimento e aggiornare runbook.

Criteri di accettazione (1-linea ciascuno)

  • Tutti gli array mostrano [UU] in /proc/mdstat.
  • /etc/mdadm.conf contiene tutte le ARRAY correnti.
  • Il sistema si avvia con /dev/sdb presente e senza /dev/sdb (simulazione occupata).
  • /boot contiene il nuovo initrd corrispondente al kernel in uso.

Quando questo approccio può fallire e mitigazioni

  • Disco secondario non rilevato: verificare cavi/SATA/RAID firmware.
  • Partizioni con dimensioni non corrispondenti: ricreare partizioni con dimensioni identiche a quelle del disco funzionante.
  • GRUB legacy non compatibile con UEFI: su sistemi UEFI usare GRUB2 e partizioni EFI.
  • Sincronizzazione molto lenta: controllare I/O, carico del sistema e velocità del bus; pianificare fuori orario.

Approcci alternativi

  • Usare parted per gestire tabelle GPT su dischi più grandi.
  • Usare LVM su RAID per flessibilità aggiuntiva.
  • Su sistemi moderni usare GRUB2 e partizione EFI anziché menu.lst.

Playbook rapido (passi essenziali)

  1. Eseguire backup: /etc, /boot.
  2. fdisk /dev/sda → impostare type fd su partizioni 1,2,3.
  3. mdadm –add per ogni partizione.
  4. Monitorare con watch cat /proc/mdstat fino a [UU].
  5. mdadm –examine –scan > /etc/mdadm.conf.
  6. Modificare /boot/grub/menu.lst per includere hd0.
  7. mv e mkinitrd per creare nuovo initrd.
  8. reboot e verificare avvio e integrità RAID.

Snippet / Cheat sheet

  • Aggiungere partizione a RAID: mdadm –add /dev/mdX /dev/sdY1
  • Ricreare mdadm.conf: mdadm –examine –scan > /etc/mdadm.conf
  • Verificare stato: cat /proc/mdstat
  • Monitoraggio continuo: watch -n 2 cat /proc/mdstat

Glossario (1 riga ciascuno)

  • RAID1: mirroring block-level tra due o più dischi.
  • mdadm: tool user-space per gestire software RAID in Linux.
  • initrd: immagine ramdisk usata all’avvio per caricare moduli necessari.

Rischi principali e mitigazioni

  • Perdita dati se si sbaglia il disco: verificare sempre device name (es. sda vs sdb).
  • Boot failure dopo modifica GRUB: mantenere copia di menu.lst e avere accesso a un live/rescue media.
  • Config non persistente: aggiornare /etc/mdadm.conf e rigenerare initrd.

Sommario

Hai aggiunto le partizioni di /dev/sda agli array RAID1, atteso la sincronizzazione, aggiornato /etc/mdadm.conf, adattato GRUB e ricreato il ramdisk. Dopo il riavvio il sistema dovrebbe avviarsi correttamente sia da /dev/sdb sia da /dev/sda.

Note finali:

  • Testa sempre la procedura in un ambiente non produttivo prima di applicarla in produzione.
  • Documenta ogni step e conserva backup aggiornati.
Autore
Redazione

Materiali simili

Protezione ransomware in Windows 11: guida completa
Sicurezza

Protezione ransomware in Windows 11: guida completa

iPhone SE 2020 gratis con scambio Sprint
Offerte

iPhone SE 2020 gratis con scambio Sprint

Recuperare file eliminati su Mac con Stellar
Recupero dati

Recuperare file eliminati su Mac con Stellar

Risolvere lampeggio schermo Windows 11
Windows

Risolvere lampeggio schermo Windows 11

RAID1 e GRUB su Fedora 8: preparare /dev/sda
Amministrazione di sistema

RAID1 e GRUB su Fedora 8: preparare /dev/sda

Vedere i post che hai messo Mi piace su Instagram
Social Media

Vedere i post che hai messo Mi piace su Instagram