Guía de tecnologías

Preparar /dev/sda y GRUB para RAID1 en CentOS 5.3

5 min read Linux Actualizado 10 Oct 2025
Preparar /dev/sda y GRUB para RAID1 en CentOS
Preparar /dev/sda y GRUB para RAID1 en CentOS

Este artículo explica cómo cambiar los tipos de partición de /dev/sda a “Linux raid autodetect”, añadir las particiones a los arreglos RAID existentes, verificar la sincronización y actualizar GRUB para que el sistema pueda arrancar desde cualquiera de los discos en un RAID1. Incluye comprobaciones, comandos exactos y listas de verificación para administración y recuperación.

Resumen rápido

  • Cambiar el tipo de partición a fd (Linux raid autodetect) con fdisk.
  • Añadir /dev/sda1, /dev/sda2 y /dev/sda3 a /dev/md0, /dev/md1 y /dev/md2 respectivamente con mdadm –add.
  • Verificar sincronización con cat /proc/mdstat y watch.
  • Regenerar /etc/mdadm.conf y actualizar los registros de arranque en /boot/grub/menu.lst; recrear initrd y reiniciar.

7 Preparar /dev/sda

Si todo ha ido bien, deberías encontrar /dev/md0 y /dev/md2 en la salida de:

df -h
[root@server1 ~]# df -h  
Filesystem            Size  Used Avail Use% Mounted on  
/dev/md2              9.2G  1.1G  7.7G  12% /  
/dev/md0              190M   14M  167M   8% /boot  
tmpfs                 252M     0  252M   0% /dev/shm  
[root@server1 ~]#

La salida de:

cat /proc/mdstat

debería ser similar a lo siguiente:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md0 : active raid1 sdb1[1]  
200704 blocks [2/1] [_U]  
  
md1 : active raid1 sdb2[1]  
522048 blocks [2/1] [_U]  
  
md2 : active raid1 sdb3[1]  
9759360 blocks [2/1] [_U]  
  
unused devices:   
[root@server1 ~]#

Ahora debemos cambiar el tipo de partición de nuestras tres particiones en /dev/sda a “Linux raid autodetect”:

fdisk /dev/sda
[root@server1 ~]# fdisk /dev/sda  
  
The number of cylinders for this disk is set to 1305.  
There is nothing wrong with that, but this is larger than 1024,  
and could in certain setups cause problems with:  
1) software that runs at boot time (e.g., old versions of LILO)  
2) booting and partitioning software from other OSs  
(e.g., DOS FDISK, OS/2 FDISK)  
  
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!  
  
Calling ioctl() to re-read partition table.  
  
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.  
The kernel still uses the old table.  
The new table will be used at the next reboot.  
Syncing disks.  
[root@server1 ~]#

Nota: fdisk te avisa que la tabla de particiones se recargará al próximo reinicio si el kernel está utilizando la tabla antigua. Esto es normal cuando particiones están montadas o en uso.

Ahora añadimos /dev/sda1, /dev/sda2 y /dev/sda3 a los arreglos RAID correspondientes:

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

A continuación, consulta el estado con:

cat /proc/mdstat

Deberías ver que los arreglos RAID están sincronizándose:

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md0 : active raid1 sda1[0] sdb1[1]  
200704 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
522048 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[2] sdb3[1]  
9759360 blocks [2/1] [_U]  
[====>................]  recovery = 22.8% (2232576/9759360) finish=2.4min speed=50816K/sec  
  
unused devices:   
[root@server1 ~]#

(Puedes ejecutar:

watch cat /proc/mdstat

para ver la salida en tiempo real. Para salir de watch, presiona CTRL+C.)

Espera hasta que la sincronización termine (la salida debería quedar así):

[root@server1 ~]# cat /proc/mdstat  
Personalities : [raid1]  
md0 : active raid1 sda1[0] sdb1[1]  
200704 blocks [2/2] [UU]  
  
md1 : active raid1 sda2[0] sdb2[1]  
522048 blocks [2/2] [UU]  
  
md2 : active raid1 sda3[0] sdb3[1]  
9759360 blocks [2/2] [UU]  
  
unused devices:   
[root@server1 ~]#

Actualizar /etc/mdadm.conf

Ajusta /etc/mdadm.conf a la nueva configuración:

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

/etc/mdadm.conf debería verse ahora algo así:

| ARRAY /dev/md0 level=raid1 num-devices=2 UUID=78d582f0:940fabb5:f1c1092a:04a55452 ARRAY /dev/md1 level=raid1 num-devices=2 UUID=8db8f7e1:f2a64674:d22afece:4a539aa7 ARRAY /dev/md2 level=raid1 num-devices=2 UUID=1baf282d:17c58efd:a8de6947:b0af9792 |

Asegúrate de revisar el archivo y, si lo deseas, conservar comentarios útiles o añadir una nota con fecha sobre la modificación.

8 Preparar GRUB (Parte 2)

Casi hemos terminado. Debemos modificar /boot/grub/menu.lst. Actualmente está configurado para arrancar desde /dev/sdb (hd1,0). Queremos que el sistema pueda arrancar también si /dev/sdb falla. Para ello, copia el primer bloque (stanza) del kernel que contiene hd1, pégalo debajo y reemplaza hd1 por hd0. Además comenta todas las demás entradas de kernel para que quede de la siguiente manera:

vi /boot/grub/menu.lst

| # 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 CentOS (2.6.18-128.el5) root (hd1,0) kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2 initrd /initrd-2.6.18-128.el5.img title CentOS (2.6.18-128.el5) root (hd0,0) kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/md2 initrd /initrd-2.6.18-128.el5.img #title CentOS (2.6.18-128.el5) # root (hd0,0) # kernel /vmlinuz-2.6.18-128.el5 ro root=LABEL=/ # initrd /initrd-2.6.18-128.el5.img |

Después, actualiza tu ramdisk:

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

Y reinicia el sistema:

reboot

Debería arrancar sin problemas.

¡Eso es todo! Has configurado con éxito RAID1 por software en un sistema CentOS 5.3 en caliente.


Notas importantes

  • Haz estas operaciones con acceso físico o consola remota que permita recuperación (iLO, DRAC, IPMI).
  • No desmontes discos ni borres particiones sin tener respaldo completo.
  • Si el sistema usa LVM, consulta cómo interactúa LVM con mdadm antes de modificar particiones.

Criterios de aceptación

  1. /proc/mdstat muestra [UU] para md0, md1 y md2.
  2. /etc/mdadm.conf contiene las líneas ARRAY para md0, md1 y md2.
  3. El grub menu contiene una entrada con root (hd0,0) apuntando al mismo kernel que (hd1,0).
  4. El sistema arranca correctamente tras reboot con ambos discos conectados y tras desconectar temporalmente uno de los discos (prueba de fallo)

Lista de verificación operativa (para el administrador)

  • Hacer snapshot o backup antes de empezar.
  • Confirmar estado actual de md con cat /proc/mdstat.
  • Cambiar tipos de partición en /dev/sda a fd con fdisk.
  • Añadir particiones a MD con mdadm –add.
  • Monitorizar sincronización (watch cat /proc/mdstat).
  • Regenerar /etc/mdadm.conf y revisar.
  • Actualizar /boot/grub/menu.lst para incluir hd0.
  • Regenerar initrd y reiniciar.
  • Probar arranque fallando intencionadamente un disco.

En qué escenarios esto puede fallar (contraejemplos)

  • Si el kernel está demasiado antiguo o la versión de mdadm no gestiona bien ciertos metadatos, la adición puede fallar.
  • Si hay errores físicos en /dev/sda (sectores defectuosos), la reconstrucción puede no completarse.
  • Si se usan tablas GPT en lugar de MBR y herramientas antiguas, los pasos con fdisk pueden no ser adecuados.

Enfoques alternativos

  • Usar parted en lugar de fdisk si trabajas con tablas GPT o con discos grandes.
  • Usar una imagen de arranque (rescue ISO) para modificar la tabla de particiones si la tabla no se recarga mientras el sistema está en uso.
  • Considerar migración a mdadm con metadata 1.2 y GRUB2 en sistemas modernos.

Modelo mental / Heurística

Piensa en RAID1 como una «copia espejo activa»: cada bloque escrito en md2 debe existir en ambos discos. Al añadir una segunda copia, mdadm sincroniza bloques faltantes leyendo del miembro existente y escribiendo al nuevo. Mientras la sincronización esté en curso, el arreglo es redundante pero con menor margen de fallo hasta que termine.

Mini-metodología (pasos resumidos)

  1. Verificar arreglos actuales.
  2. Cambiar tipos de partición a fd en /dev/sda.
  3. Añadir nuevas particiones con mdadm –add.
  4. Esperar sincronización completa.
  5. Actualizar /etc/mdadm.conf.
  6. Ajustar /boot/grub/menu.lst para permitir arranque desde hd0.
  7. Regenerar initrd y reiniciar.
  8. Probar tolerancia a fallos.

Lista de comprobaciones por rol

  • Operaciones / SRE: verificar integridad RAID y realizar pruebas de fallo programadas.
  • Backup / Respaldo: asegurarse de que hay copias externas antes de tocar particiones.
  • Seguridad: registrar cambios en CMDB y controlar acceso a la consola.

Resumen final

Configurar RAID1 en caliente implica cambiar tipos de partición a “Linux raid autodetect”, añadir las particiones al arreglo, esperar la sincronización, actualizar mdadm.conf y adaptar el cargador de arranque para que ambos discos puedan iniciar el sistema. Siempre realiza backups y prueba el arranque simulado tras completar los cambios.

Autor
Edición

Materiales similares

NisSrv.exe: validar y desactivar con seguridad
Seguridad Windows

NisSrv.exe: validar y desactivar con seguridad

Reparar Snipping Tool roto en Windows 11
Soporte técnico

Reparar Snipping Tool roto en Windows 11

Eliminar fotos del iPhone sin borrarlas en iCloud
Tecnología

Eliminar fotos del iPhone sin borrarlas en iCloud

Integrar SFTP en el Explorador de Windows
Guías Técnicas

Integrar SFTP en el Explorador de Windows

Mover fotos de Facebook a Google+ con Move2Picasa
Tutorial

Mover fotos de Facebook a Google+ con Move2Picasa

Cómo descargar películas y series de Netflix
Streaming

Cómo descargar películas y series de Netflix