Configurare RAID1 e GRUB su Fedora 8: preparazione di /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)
- Eseguire backup: /etc, /boot.
- fdisk /dev/sda → impostare type fd su partizioni 1,2,3.
- mdadm –add per ogni partizione.
- Monitorare con watch cat /proc/mdstat fino a [UU].
- mdadm –examine –scan > /etc/mdadm.conf.
- Modificare /boot/grub/menu.lst per includere hd0.
- mv e mkinitrd per creare nuovo initrd.
- 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.
Materiali simili

Protezione ransomware in Windows 11: guida completa

iPhone SE 2020 gratis con scambio Sprint

Recuperare file eliminati su Mac con Stellar

Risolvere lampeggio schermo Windows 11
RAID1 e GRUB su Fedora 8: preparare /dev/sda
