miércoles, 24 de febrero de 2010

MeeGo

MeeGo

NOKIA e Intel unidos para poner Linux en todo tipo de dispositivo movil. Que bien!

martes, 9 de febrero de 2010

Generating PDF with animations using LaTeX

Generating PDF with animations using LaTeX

Esta si no me la sabia: Se pueden generar PDFs animados! y mejor aun desde LaTex! uff!

lunes, 1 de febrero de 2010

Migración de Debian a un nuevo disco

Hace unos días recibí un nuevo disco duro o hard disk (HD) SATA II de 500GB y decidí usarlo como el HD principal para mi servidor.

El disco antiguo era un IDE de 80GB con varias particiones formateadas con ext3  y xfs.

En el nuevo disco decidí usar una partición para /boot de 100MB y en el resto del disco monte un PV de LVM para en el crear LVs para /, /usr, /var, /home y otras particiones, todas en formato ext4.

A continuación se encuentra el log de los pasos realizados para la migración del sistema en caso de que pueda servir de referencia para alguien que intente hacer lo mismo y para que yo pueda consultarlo en caso de que se me olvide.

Si no se entiende algo, asegúrense de leer el LVM Howto y si aun no se entiende por favor me dejan un comentario.

- Particionado del disco: sda1 100MB para /boot, sda2 el resto para el VG ambos tipo ext4 con cfdisk
- Inicializar partición para LVM: pvcreate /dev/sda2
- Crear el VG: vgcreate sga_vg /dev/sda2
- Crear los LVs cada uno con el 10% de la capacidad total del VG:
  for i in root var home pruebas publico; do lvcreate -l10%VG -n${i}_lv sga_vg; done
- Formatear los LVs:
  for i in root var home pruebas publico; do mkfs.ext4 -L /${i}  /dev/sga_vg/${i}_lv; done
- Crear el espacio de swap y formatearlo para swap:

sgautomatizacion:/# lvcreate -L 4G -nswap_lv sga_vg
  Logical volume "swap_lv" created
sgautomatizacion:/# mkswap -f -L swap1 /dev/sga_vg/swap_lv
Setting up swapspace version 1, size = 4194300 KiB
LABEL=swap1, UUID=3a4129e8-23f2-4298-b013-8a59c2391113

- Crear el punto de montaje para el nuevo root:
  mkdir /nuevohd
- Montar el nuevo root:
  mount /dev/sga_vg/root_lv /nuevohd
- Crear los puntos de montaje para las demás particiones:
  mkdir /nuevohd/{pruebas,var,publico,home,boot}
- Añadir las entradas a /etc/fstab para las nuevas particiones para no tener que montar todo a mano en caso de que se reinicie:
 
/dev/sga_vg/root_lv /nuevohd    ext4    defaults        0       2
/dev/sga_vg/var_lv /nuevohd/var ext4    defaults        0       2
/dev/sga_vg/home_lv /nuevohd/home       ext4    defaults        0       2
/dev/sga_vg/pruebas_lv /nuevohd/pruebas ext4    defaults        0       2
/dev/sga_vg/publico_lv /nuevohd/publico ext4    defaults        0       2
/dev/sda1       /nuevohd/boot   ext4    defaults        0       2

- Montar todo:
  mount -a
- Parar los servicios importantes que puedan modificar el sistema de archivos:

sgautomatizacion:/# /etc/init.d/apache2 stop
Stopping web server: apache2 ... waiting .
sgautomatizacion:/# /etc/init.d/mysql stop
Stopping MySQL database server: mysqld.
sgautomatizacion:/# /etc/init.d/cron stop
Stopping periodic command scheduler: cron.

- Un poco de limpieza:
sgautomatizacion:/# sync
sgautomatizacion:/# apt-get clean
sgautomatizacion:/# for i in $(locate .Trash); do if [ -d $i ]; then echo "Borrando $i.."; rm -rf $i/*; fi; done
sgautomatizacion:/# rm -rf /home/*/.local/share/Trash/*

- Copiar lo de /:
sgautomatizacion:/# cp -ax bin/ cdrom etc/ initrd.img mnt/ sbin/ srv initrd lib/ media/ opt/ root/ selinux/ vmlinuz  /nuevohd/

- Crear los puntos de montaje que faltan en el nuevo / :
# mkdir /nuevohd/{proc,tmp,dev,usr,sys}

- Arreglar los permisos de acceso:

# chmod a+rx /nuevohd/*
# chmod a+rwx /nuevohd/tmp

- Empezar la copia, primero lo que más se modifica por los servicios:

sgautomatizacion:/# cp -ax /var/* /var/.[^\.]* /nuevohd/var/

.. luego home y ya se pueden reactivar los servicios ..
y luego las otras particiones...

... Varias horas despues ...

- Editar /nuevohd/etc/fstab para poder arrancar desde el nuevo disco:

# /etc/fstab: static file system information.
#
#                       
proc                    /proc           proc    defaults        0       0
/dev/hdc                /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/sga_vg/root_lv     /               ext4    defaults,errors=remount-ro      0       1
/dev/sga_vg/swap_lv     none            swap    sw              0       0
/dev/sga_vg/var_lv      /var            ext4    defaults        0       2
/dev/sga_vg/home_lv     /home           ext4    defaults        0       2
/dev/sga_vg/pruebas_lv  /pruebas        ext4    defaults        0       2
/dev/sga_vg/publico_lv  /publico        ext4    defaults        0       2
/dev/sda1               /boot           ext4    defaults        0       2

- Activar en el nuevohd los sistemas de archivos "virtuales" necesarios para poder hacer chroot:
sgautomatizacion:/# mount -o bind /sys/ /nuevohd/sys/
sgautomatizacion:/# mount -o bind /dev/ /nuevohd/dev/

- Cambiarse al nuevo sistema de archivos con chroot:
# chroot /nuevohd

- Activar el otro sistema de archivos que falta:
# mount proc /proc/ -t proc

- Actualizar la configuración de grub e instalar *unicamente* en el nuevo disco cuando la UI de configuración lo pregunte:

# dpkg-reconfigure grub-pc

- Reiniciar el equipo y configurar la BIOS para que arranque de el nuevo disco.

YA DEBE ESTAR LISTO!

Ahora a esperar unos días para asegurarse de que todo está bien antes de borrar el antiguo disco para darle otro uso.