Lo primero de todo es tener un USB (a ser posible dos, iguales, de la misma capacidad y hasta de la misma marca, pero para empezar con uno ya hacemos), un CD con la última versiòn de Openfiler (yo lo he hecho con openfiler-2.3-x86_64-disc1) y el backup del último openfiler que tuvísteis, si es que vais a volver a configurarlo igual. Una vez tengáis esto, vamos a por faena.
* Conecta el disco USB y deshabilita todos los discos duros o volúmenes RAID si es posible (es posible que no; ve con cuidado durante la instalación)
* Arranca el sistema desde el CD de instalación Openfiler.
* En el prompt de inicio, escribe "expert", e Intro.
* Tendrás que configurar las particiones manualmente. Yo he utilizado un USB de 4Gb (que al montarlo ha quedado como sda), y hemos definido tres particiones:
/ → 2.9 Gb
/boot → 100 Mb
swap → 1Gb
En alguna ocasión hemos tenido algún tipo de problema con el número de heads y cilinders, lo que al final se ha traducido como un error del propio USB que se ha resuelto cambiándolo, por más seguridad (aunque tras instalar el SO, lo hemos dejado de backup)
* Continua con la instalación. Configura la IP, la máscara, DNS y PE, mejor no dejarlo por DHCP.
Llegarás al punto en que el sistema empieza con la instalación. Tómatelo con calma, tarda bastante para lo que es. Antes de llegar a este puto "de no retorno", navega hacia atrás y comprueba que los datos (sobre todo los discos que se van a formatear) son los correctos.
Cuando acabe, reinica. Te devolverá un error tipo Kernel Panic, pero no pasa nada.
* Reinicia de nuevo y arranca con el CD de Openfiler, y teclea "linux rescue" en el prompt. Cuando te pregunte si quieres arrancar el sistema de red, di que no (no hace falta), y cuando llegues al siguiente menú, selecciona "Skip". Esto te devuelve al prompt del sistema.
* Vamos a montar el sistema de archivos en /mnt/source (si no existe, crea el directorio antes)
mount /dev/sda1 /mnt/source
(donde sda1 es el sistema de archivos que contienen la / del sistema que acabamos de instalar)
Después montamos el directorio donde van los archivos de arranque (/boot) de manera que tenemos todo el sistema del pendrive montado
mount /dev/sda2 /mnt/source/boot
(donde sda2 es el sistema de archivos que contienen el /boot)
chroot /mnt/source
Vamos a crear el nuevo initrd.gz para poder arrancar desde USB
cp /boot/initrd2.x.x.img /tmp/initrd.gz
gunzip /tmp/initrd.gz
mkdir /tmp/a
cd /tmp/a
cpio i < /tmp/initrd
gunzip /tmp/initrd.gz
mkdir /tmp/a
cd /tmp/a
cpio i < /tmp/initrd
Editamos el archivo init vi init y lo modificamos de la siguiente manera: buscamos 'insmod/lib/sd_mod.ko' y debajo, añandimos
insmod /lib/ehcihcd.ko insmod
/lib/uhcihcd.ko
sleep 5
echo “Loading USB Storage Drivers”
insmod /lib/usbstorage.ko
sleep 8
/lib/uhcihcd.ko
sleep 5
echo “Loading USB Storage Drivers”
insmod /lib/usbstorage.ko
sleep 8
y guardamos.
* Continuamos, vamos a mover los drivers necesarios a la carpeta /lib de nuestro initrd.
cd /lib/modules/`uname r`/kernel/drivers
cp usb/storage/usbstorage.ko /tmp/a/lib/
cp usb/host/ehcihcd.ko /tmp/a/lib/
cp usb/host/uhcihcd.ko /tmp/a/lib/
cp scsi/sr_mod.ko /tmp/a/lib/
cp usb/storage/usbstorage.ko /tmp/a/lib/
cp usb/host/ehcihcd.ko /tmp/a/lib/
cp usb/host/uhcihcd.ko /tmp/a/lib/
cp scsi/sr_mod.ko /tmp/a/lib/
* Y ahora vamos a crear el initrd para arrancar nuestro sistema
cd /tmp/a
find . | cpio c o | gzip 9 > /boot/usbinitrd.img
find . | cpio c o | gzip 9 > /boot/usbinitrd.img
* Ya lo tenemos. Reconfiguramos nuestro grub, y editamos
vi /boot/grub/grub.conf
y buscamos la línea que hace referencia al antiguo initr y lo cambiamos por el nuestro (copia la línea y coméntala, y en la que queda descomentada cambia)
/initrdx.x.x.x.x.img
por
/usbinitrd.img
Guardamos, salimos y reiniciamos. El Openfiler ya está instalado y funcionando desde USB.
* Ahora vamos a configurar las unidades iSCSI; para ello copiamos el siguiente script en
cd /tmp
vi volumes.sh
vi volumes.sh
y copiamos dentro el script
(Nota: No es válido para sistemas de archivos XFS))
[[ Fuente: https://forums.openfiler.com/viewtopic.php?pid=16587 ]]
#!/bin/bash
# strip the /mnt lines from fstab as we will be rebuilding them
grep /mnt /etc/fstab v > _fstab
# create the new volumes.xml file
echo e "\n" > _volumes.xml
# find all logical volumes and loop
for i in `lvdisplay | grep "LV Name" | sed 's/[^\/]*//'`; do
fstype=`vol_id $i t 2> /dev/null`;
mntpoint=`echo $i | sed 's/\/dev\//\/mnt\//'`/
vgname=`echo $i | cut d '/' f3`
volid=`echo $i | cut d '/' f4`
args="";
if [ "$fstype" == "" ]; then
# assume iscsi since filesystem is unknown
fstype="iscsi"
mntpoint=""
fi
if [ $fstype == ext3 ] ; then
args=",acl,user_xattr"
fi
if [ $fstype == reiserfs ] ; then
args=",acl"
fi
if [ $fstype == xfs ] ; then
args=""
fi
if [ $fstype != "iscsi" ]; then
echo "$i $mntpoint $fstype defaults,usrquota,grpquota$args 0 0" >> _fstab
echo "" >> _volumes.xml
echo "Mounting $mntpoint"
mkdir p $mntpoint > /dev/null 2> /dev/null
umount $mntpoint 2> /dev/null
mount $mntpoint
else
echo "$i assuming iSCSI"
echo "" >> _volumes.xml
fi
done;
echo " " >> _volumes.xml
mv f _fstab /etc/fstab
mv f _volumes.xml /opt/openfiler/etc/volumes.xml
chown openfiler.openfiler /opt/openfiler/etc/volumes.xml
# strip the /mnt lines from fstab as we will be rebuilding them
grep /mnt /etc/fstab v > _fstab
# create the new volumes.xml file
echo e "\n
# find all logical volumes and loop
for i in `lvdisplay | grep "LV Name" | sed 's/[^\/]*//'`; do
fstype=`vol_id $i t 2> /dev/null`;
mntpoint=`echo $i | sed 's/\/dev\//\/mnt\//'`/
vgname=`echo $i | cut d '/' f3`
volid=`echo $i | cut d '/' f4`
args="";
if [ "$fstype" == "" ]; then
# assume iscsi since filesystem is unknown
fstype="iscsi"
mntpoint=""
fi
if [ $fstype == ext3 ] ; then
args=",acl,user_xattr"
fi
if [ $fstype == reiserfs ] ; then
args=",acl"
fi
if [ $fstype == xfs ] ; then
args=""
fi
if [ $fstype != "iscsi" ]; then
echo "$i $mntpoint $fstype defaults,usrquota,grpquota$args 0 0" >> _fstab
echo "
echo "Mounting $mntpoint"
mkdir p $mntpoint > /dev/null 2> /dev/null
umount $mntpoint 2> /dev/null
mount $mntpoint
else
echo "$i assuming iSCSI"
echo "
fi
done;
echo "
mv f _fstab /etc/fstab
mv f _volumes.xml /opt/openfiler/etc/volumes.xml
chown openfiler.openfiler /opt/openfiler/etc/volumes.xml
Cambiamos los permisos de ejecución al nuevo script
chmod 744 volumes.sh
y lo ejecutamos
/tmp/volumes.sh
y comprobamos que nos ha localizado los volúmenes iSCSI
* Y por último, vamos a restaurar el backup de configuración del Openfiler.
Para hacerlo, entra en la URL de administración del openfiler:
https://openfiler:446
y vamos a la pestaña System y seleccionamos Backup/Restore del menú de la derecha.
Desde "Restore Configuration" navegamos y subimos el archivo de configuración del backup