Hola, Gonzalo:
Gonzalo Pérez de Olaguer Córdoba escribió en es.comp.os.linux.instalacion:
[...]
Post by Gonzalo Pérez de Olaguer Córdoba/dev/md0 es un dispositivo virtual construido por el kernel. Cuando grub
se hace cargo del arranque aún no hay kernel, o sea que no puede leer
/dev/md0, a menos que disponga de un mecanismo propio para hacer
software raid por su cuenta.
Ignoro si grub tiene esa funcionalidad (podría ser que una instalación
de grub estándard no la tenga, pero exista algún "stage" extra que la
suministre. Me suena que grub tiene "stages" específicos para instalar
por red con XPE, bootp, dhcp, y otras cosillas.
No sé si lo siguiente será cierto: si RAID 1 se limita a hacer una
copia idéntica del sistema de ficheros en cada disco, sin añadir nada
propio, de forma que en cada disco tengas una imagen exacta y completa
del sistema de ficheros con que has formateado /dev/md0, en ese caso tal
vez bastaría con decirle al grub que use alguno de los discos (/dev/hda1
o /dev/hdb3). Pero desconozco si la implementación de RAID 1 funciona
así o no (sospecho que no).
No: eso no funcionará. Para poder montar un RAID por software, es
*necesario* que las particiones que lo formen no estén en uso. Una vez que
tienes ejecutables "tocando" el disco hda (o el hdb), éste ya no podrá ser
usado en un RAID.
...pero Grub sí tiene soporte "nativo" para RAID por software de Linux, así
que, si las cosas están bien hechas, bastará con indicarle a Grub que la
partición raiz será /dev/md0 y listo.
Un ejemplo de un sistema que tengo instalado:
cat /boot/grub/menu.lst
[...]
title Debian GNU/Linux, kernel 2.4.27-1-686
root (hd0,0)
kernel /boot/vmlinuz-2.4.27-1-686 root=/dev/md0 ro
initrd /boot/initrd.img-2.4.27-1-686
savedefault
boot
Después de escribir un "menu.lst" correcto, deberás ejecutar `grub-install`
para que aparezca en el siguiente arranque.
Si utilizas un kernel "estándar", sin soporte incluido para dispositivos
RAID1 (ejecuta el comando `lsmod`, y si aparece el módulo raid1, con el
dispositivo raid /dev/md0 montado, es que el soporte para RAID1 no está
soportado "dentro" del kernel, sino como módulo), necesitarás una imagen
initrd adecuada (como en el caso que te he mostrado). Esta imagen initrd
contiene el módulo para soporte raid, necesario para poder montar la
partición raiz, que es donde está el propio módulo raid1 (el caso del huevo
y la gallina). Pero este initrd es muy "delicado", ya que también contiene
el UUID del dispositivo raid, que cambia si reconstruyes la partición. El
UUID es el número largo que te aparecerá, probablemente, en el
fichero /etc/madm/mdadm.conf. En mi caso, los contenidos son:
cat /etc/mdadm/mdadm.conf
ARRAY /dev/md0 level=raid1 num-devices=2
UUID=4a81bade:c71e2f87:7edceaed:c49226b4
devices=/dev/hdc1,/dev/hdd1
ARRAY /dev/md1 level=raid1 num-devices=2
UUID=531b42a3:f9a04a1e:b8f93e73:0d64bbd6
devices=/dev/hdc2,/dev/hdd2
(en este equipo, la partición swap también está montada en raid1
en /dev/md1).
Si tienes un initrd con un UUID para del dispositivo raid incorrecto, no
podrás arrancar el sistema con él, ya que no se podrá encontrar la
partición raiz durante el arranque.
--
SALUD,
Jesús
***
***@able.es
***