Dell Vostro 400, Ubuntu y RAID 1
Posted by Paco Ros en 8 \08\+01:00 junio \08\+01:00 2008
Hace unos meses que compré un Dell Vostro 400. El modelo es un Quad Core 6600 (a 2.4GHz) y viene con dos discos de 500GB SATA.
Pedí a Dell si me lo podían configurar con RAID 1 y me dijeron que no, así que, como de todos modos le iba a instalar Ubuntu, lo dejé correr y me lo sirvieron con 2 discos NTFS y Windows Vista.
Hasta hoy no he podido ponerme manos a la obra. Tenía ganas de configurar el RAID 1 (mirror) porque tengo alguna información delicada y no soy mu amigo de quemar plástico haciendo copias de seguridad.
El chipset ICH9 de Intel que lleva este PC cuenta con una controladora RAID de las llamadas «fakeraid«, es decir, muestran al sistema un RAID, pero delegan su funcionamiento real al sistema operativo.
En Ubuntu (y Debian) es relaivamente fácil y se gestiona casi solo usando dmraid. El problema es que algunas herramientas y el instalador no están preparados para trabajar con un RAID y algunos pasos no funcionan bien, así que hay que darles una ayuda.
Empecemos: Lo primero que hay que hacer es configurar los discos como RAID. Se pulsa F2
en el arranque y se selecciona RAID en el apartado de discos. Después, al reiniciar, aparece un menú adicional, al que se debe entrar con Ctrl + I
y ahí hay que crear el volumen RAID 1.
Cuando metemos el CD y arrancamos en modo «Live CD» (no instalar directamente) tenemos que abrir una consola, editar /etc/apt/sources.list
para añadir el repositorio univerese
e instalar dmraid
(sudo aptitude install dmraid
).
A partir de ese momento, ya disponemos de los módulos del kernel necesarios instalados y funcionando. Podemos comprobarlo con dmraid -r
y con dmraid -ay
(que de paso activa los volúmenes). Finalmente, iremos a /dev/mapper
y con un ls
veremos los volúmenes, que tendrán un nombre distinto en función de la controladora que tengamos.
Es el momento de crear y formatear todas las particiones no swap que necesitemos. Yo lo hago sólo con una, de manera que, usando fdisk /dev/mapper/<nombre_del_raid>
crearemos una particion primaria de tipo Linux y dejé unos 150 (aprox. 1.5GB) bloques libres que, más adelante, usaremos como swap.
Grabamos la tabla de particiones y en unos segundos, veremos como en /dev/mapper
tenemos un dispositivo de bloques más que se llama como el raid, pero con un «1» al final. Es la partición que acabamos de crear.
Creamos el sistema de ficheros. Yo usé ext3 así que mkfs.ext3 /dev/mapper/<nombre_del_raid>1
En este momento podemos hacer click en el icono de instalar Ubuntu, pero os adelanto que va a dar error cuando, al final, intente instalar GRUB. Lo solucionaremos con una instalación manual.
Otro punto importante es no seleccionar «formatear» en el particionado de discos. Simplemente seleccionariemos la partición ext3 y le diremos que el punto de montaje es «/», pero no seleccionaremos «formatear». El instalador se quejará de que no tenemos swap y nos avisarás de que va a borrar toda la partición. Está bien, podemos seguir.
Cuando acaba la instalación e intenta instalar grub da error. Mejor, porque aún no hemos acabado. Vamos a hacer un chroot a /target
(que es donde el instalador monta el sistema de ficheros de destino) y vamos a instalar dmraid en el chroot igual que hicimos al principio, pero antes hay que enlazar en /target proc sysfs y dev así:
# sudo mount --bind /dev /target/dev
# sudo mount --bind /cdrom /target/cdrom
# sudo mount -t proc proc /target/proc
# sudo mount -t sysfs sysfs /target/sys
De esta manera podremos acceder a los dispositivos correctamente. Ahora sí, hacemos el chroot:
# sudo chroot /target
Una vez dentro del chroot, editamos /etc/apt/sources.list
y añadimos el repositorio universe
si fuera necesario e instalamos (aptitude install dmraid
) dmraid.
Ahora hay que crear el directorio /boot/grub
y copiar ahí desde /usr/lib/grub/i386-pc/
stage1
, stage2
y e2fs_stage1_5
(usar otro si no habéis usado ext3).
Por último, nos queda instalar grub, que había fallado en el instalador:
# grub
(grub) device (hd0) /dev/mapper/<nombre_del_raid>
(grub) root (hd0,0)
(grub) setup (hd0)
(grb) quit
Finalmente ejecutamos update-grub
, que nos creará el /boot/grub/menu.lst
final. Este menu.lst
tenemos que editarlo y asrgurarnos que allí donde ponga root=XXXXXX
poga root=/dev/mapper/<nombre_del_raid>1
Listo, sudo reboot
y a funcionar.
Instalar Ubuntu 8.04 sobre un fakeRAID said
[…] realizar un manual donde explicar como conseguí instalarlo todo correctamente, pero os remito a pacoros.net que lo explica bastante bien como para no tener […]
Luis said
Hola Paco, he seguido atentamente tu instalación y básicamete es como yo la he realizado.
El problema está en que el nombre de mi fakeraid es «mutante», es dd_f1 seguido de una ristra de número , y cada vez que arranco los últimos 10, cambian. Por lo tanto, cuando en el grub le digo donde esta no coincide para el próximo boot.
He mirado por si podía cambiarse en el udev, pero sin ningún resultado.
Se te ocurre que puede pasar. Lo estoy instalando en un Acer Altos gk300mkii, pero también es una ich9hr.
Paco said
Se define en la BIOS, incluso deberías poder cambiarle la etiqueta por un nombre conocido, pero al final dependerá siempre de la capacidad de la BIOS para hacerlo.
juan said
como puedo usar un certificado que aparece como caducado de Thawte Code signing CA para poder abrir la pagina siguiente, lo puedo bajar? y lo instalo para que funcione, como logro eso . Gracias
Gonzakas said
Hola te aviso que el dmraid no es capaz de corregir errores aqui te pongo un link donde lo cuentan:
https://help.ubuntu.com/community/FakeRaidHowto
Lo interesante es lo siguiente:
Important Notes for RAID-1 and RAID-5
RAID-1 Notes
You should be aware that dmraid (especially the dm-raid1 target of the device mapper) currently (including kernel version 2.6.17) supports the mirroring with RAID-1, but it has no error handling. When a block on one disk fails a failure reaches up to the application level, currently it doesn’t try to read from the second disk. It only mirrors all data to the second disk.
Es decir como casque un bloque de uno de los discos (o imagino que el disco entero) no se lee la informacion del segundo disco, lo unico que hace el raid es replicar la informacion. Si puedes intenta avisar de esto en un post.
Un saludo y suerte!