lunes, 24 de marzo de 2008

Un escritorio diferente

   El otro día toqué por primera vez un windows vista. Un compañero del trabajo se compró un portatil nuevo y se lo llevó para enseñárnoslo. Quise ver el nuevo interfaz Aero y la verdad es que me pareció muy básico y pobre. Les comenté a mis compañeros que iba a hacer un video de mi escritorio de Linux para que vieran unos efectos de verdad con CompizFusion y sin necesidad de una máquina y una gráfica muy potentes. Sin más, este es el video:



   Sé que muchos de estos efectos son pijadas, pero hay muchas opciones que son realmente útiles y sí que aumentan la productividad a la hora de trabajar.

   Por supuesto todo el proceso de realización del video está realizado con software libre. La grabación la he hecho con XVidCap, para el montaje he utilizado KDEnlive y para añadir la música y redimensionar el video final mencoder.

jueves, 13 de marzo de 2008

Raid 1 en un sistema ya instalado

   En el artículo del Raid 1 en linux veíamos cómo montar un raid 1 con Debian para tener fiablidad en nuestros datos y en el caso de que fallase un disco no perderlos. De esta forma aseguramos nuestros datos, pero en caso de fallo del disco de sistema irremediablemente tendríamos que instalar de nuevo todo.

   Lo que vamos a ver en este artículo es cómo montar un raid 1 completo de todo el sistema Debian, con éste ya instalado y funcionando. De esta forma contesto a varias personas que me han pedido este artículo tanto en los comentarios del primero como por email. Para no hacer muy pesado el artículo obviaré algunas partes que están detalladas en el artículo anterior del raid 1, por lo que si algún paso no lo comprendes, por favor lee el artículo anterior para aclarar las dudas.

   Debo aclarar que este tutorial está pensado para Debian y similares por lo que en otras distribuciones no funcionará correctamente al no existir el comando update-initramfs.

Partimos de un sistema ya instalado con tres particiones distintas: /dev/sda1 para /boot, /dev/sda5 para el swap y /dev/sda6 para /.
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda6 7.4G 509M 6.5G 8% /
tmpfs 63M 0 63M 0% /lib/init/rw
udev 10M 84K 10M 1% /dev
tmpfs 63M 0 63M 0% /dev/shm
/dev/sda1 177M 11M 157M 7% /boot

  • Después de añadir el disco a la máquina utilizamos el truco que ya usamos en el artículo original para copiar la tabla de particiones de un disco a otro:
    shian:~# sfdisk -d /dev/sda | sfdisk /dev/sdb
    Checking that no-one is using this disk right now ...
    OK

    Disk /dev/sdb: 1044 cylinders, 255 heads, 63 sectors/track

    sfdisk: ERROR: sector 0 does not have an msdos signature
    /dev/sdb: unrecognized partition table type
    Old situation:
    No partitions found
    New situation:
    Units = sectors of 512 bytes, counting from 0

    Device Boot Start End #sectors Id System
    /dev/sdb1 63 385559 385497 83 Linux
    /dev/sdb2 385560 16771859 16386300 5 Extended
    /dev/sdb3 0 - 0 0 Empty
    /dev/sdb4 0 - 0 0 Empty
    /dev/sdb5 385623 1172744 787122 82 Linux swap / Solaris
    /dev/sdb6 1172808 16771859 15599052 83 Linux
  • Editamos con fdisk las particiones de /dev/sdb y cambiamos del tipo a fd de las número 1, 5 y 6. El resultado final es:
    ...
    Command (m for help): p

    Disk /dev/sdb: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/sdb1 1 24 192748+ fd Linux raid autodetect
    /dev/sdb2 25 1044 8193150 5 Extended
    /dev/sdb5 25 73 393561 fd Linux raid autodetect
    /dev/sdb6 74 1044 7799526 fd Linux raid autodetect
  • Ahora creamos los dispositivos raid para las particiones.
    shian:~# mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1
    mdadm: array /dev/md0 started.
    shian:~# mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb5
    mdadm: array /dev/md1 started.
    shian:~# mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb6
    mdadm: array /dev/md2 started.
  • Formateamos las nuevas particiones.
    shian:~# mkfs.ext2 /dev/md0
    shian:~# mkswap /dev/md1
    shian:~# mkfs.ext3 /dev/md2
  • Actualizamos el archivo mdadm.conf con los nuevos dispositivos raid.
    shian:~# cd /etc/mdadm
    shian:/etc/mdadm# cp mdadm.conf mdadm.conf.`date +%y%m%d`
    shian:/etc/mdadm# echo "DEVICE partitions" > mdadm.conf
    shian:/etc/mdadm# mdadm --detail --scan >> mdadm.conf
  • Montamos las particiones del raid.
    shian:~# mkdir /mnt/md0
    shian:~# mkdir /mnt/md2

    shian:~# mount /dev/md0 /mnt/md0
    shian:~# mount /dev/md2 /mnt/md2
  • Editamos el archivo /etc/fstab y cambiamos sda1, sda5 y sda6 por los nuevos dispositivos del raid (md0, md1 y md2 respectivamente).
    # /etc/fstab: static file system information.
    #
    #
    proc /proc proc defaults 0 0
    /dev/md2 / ext3 defaults,errors=remount-ro 0 1
    /dev/md0 /boot ext2 defaults 0 2
    /dev/md1 none swap sw 0 0
    /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
    /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
  • Editamos el archivo /boot/grub/menu.lst de configuración del grub para añadir las entradas a ambos discos duros. Duplicamos la línea que tenemos del arranque, cambiamos sda6 por md2 y cambiamos el disco duro del que arranca.
    # Línea original
    #title Debian GNU/Linux, kernel 2.6.18-4-686
    #root (hd0,0)
    #kernel /vmlinuz-2.6.18-4-686 root=/dev/sda6 ro
    #initrd /initrd.img-2.6.18-4-686
    #savedefault

    # Nuevas líneas
    title Debian GNU/Linux, kernel 2.6.18-4-686 (HD1)
    root (hd1,0)
    kernel /vmlinuz-2.6.18-4-686 root=/dev/md2 ro
    initrd /initrd.img-2.6.18-4-686
    savedefault

    title Debian GNU/Linux, kernel 2.6.18-4-686 (HD0)
    root (hd0,0)
    kernel /vmlinuz-2.6.18-4-686 root=/dev/md2 ro
    initrd /initrd.img-2.6.18-4-686
    savedefault
  • Ahora actualizamos el ramdisk para que se reflejen los cambios que hemos hecho.
    shian:~# update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-2.6.18-4-686
  • Copiamos los datos de las particiones antiguas a las nuevas del raid. La opción 'x' es muy importante porque sino al copiar desde / copiaríamos todo de manera recursiva.
    shian:~# cp -ax / /mnt/md2

    shian:~# cd /boot/
    shian:/boot# cp -ax . /mnt/md0
  • Instalamos y reconfiguramos grub en los dos discos.
    shian:~# grub

    grub> root (hd0,0)
    Filesystem type is ext2fs, partition type 0x83

    grub> setup (hd0)
    Checking if "/boot/grub/stage1" exists... no
    Checking if "/grub/stage1" exists... yes
    Checking if "/grub/stage2" exists... yes
    Checking if "/grub/e2fs_stage1_5" exists... yes
    Running "embed /grub/e2fs_stage1_5 (hd0)"... 15 sectors are embedded.
    succeeded
    Running "install /grub/stage1 (hd0) (hd0)1+15 p (hd0,0)/grub/stage2 /grub/menu.lst"... succeeded
    Done.

    grub> root (hd1,0)
    Filesystem type is ext2fs, partition type 0xfd

    grub> setup (hd1)
    Checking if "/boot/grub/stage1" exists... no
    Checking if "/grub/stage1" exists... yes
    Checking if "/grub/stage2" exists... yes
    Checking if "/grub/e2fs_stage1_5" exists... yes
    Running "embed /grub/e2fs_stage1_5 (hd1)"... 15 sectors are embedded.
    succeeded
    Running "install /grub/stage1 (hd1) (hd1)1+15 p (hd1,0)/grub/stage2 /grub/menu.lst"... succeeded
    Done.
  • Y ya podemos reinicar la máquina. Hay que tenemos en cuenta que la máquina sólo arrancará del segundo disco porque el primero todavía no forma parte del raid. Si todo va bien, una vez que arranque veremos algo como esto:
    shian:~# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/md2 7.4G 509M 6.5G 8% /
    tmpfs 63M 0 63M 0% /lib/init/rw
    udev 10M 100K 10M 1% /dev
    tmpfs 63M 0 63M 0% /dev/shm
    /dev/md0 183M 13M 161M 8% /boot

    shian:~# mount
    /dev/md2 on / type ext3 (rw,errors=remount-ro)
    tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
    proc on /proc type proc (rw,noexec,nosuid,nodev)
    sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
    udev on /dev type tmpfs (rw,mode=0755)
    tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
    devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
    /dev/md0 on /boot type ext2 (rw)
  • Lo más difícil ya está hecho. Tenemos el raid funcionando en modo degradado porque sólo está disponible el disco sdb. Ahora repetimos casi el mismo proceso para el disco antiguo. Cambiamos el tipo de particiones a fd y las añadimos particiones al raid.
    shian:~# fdisk /dev/sda
    ...
    Command (m for help): p

    Disk /dev/sda: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Device Boot Start End Blocks Id System
    /dev/sda1 1 24 192748+ fd Linux raid autodetect
    /dev/sda2 25 1044 8193150 5 Extended
    /dev/sda5 25 73 393561 fd Linux raid autodetect
    /dev/sda6 74 1044 7799526 fd Linux raid autodetect
    ...


    shian:~# mdadm --add /dev/md0 /dev/sda1
    mdadm: added /dev/sda1
    shian:~# mdadm --add /dev/md1 /dev/sda5
    mdadm: added /dev/sda5
    shian:~# mdadm --add /dev/md2 /dev/sda6
    mdadm: added /dev/sda6
  • Empezará entonces la reconstrucción de los raid.
    shian:~# cat /proc/mdstat
    Personalities : [raid1] [raid6] [raid5] [raid4]
    md2 : active raid1 sda6[2] sdb6[1]
    7799424 blocks [2/1] [_U]
    [=====>...............] recovery = 25.2% (1967936/7799424) finish=1.1min speed=81997K/sec

    md1 : active raid1 sda5[0] sdb5[1]
    393472 blocks [2/2] [UU]

    md0 : active raid1 sda1[0] sdb1[1]
    192640 blocks [2/2] [UU]

    unused devices:

  •    Un vez terminada la reconstrucción tendremos listo el sistema. Ahora, si queremos probar que todo funciona correctamente podemos reinicar de nuevo la máquina y comprobar que es capaz de arrancar desde cualquiera de los dos discos.

       Con este tipo de configuración estamos seguros de que aunque falle un disco nuestro servidor estará disponible y no tendremos que reinstalar ni reconfigurar nada. Sólo será necesario cambiar el disco defectuoso, reconstruir el raid y reconfigurar el grub.

    martes, 4 de marzo de 2008

    Nokia Maps: Mapas para tu móvil

    Este análisis está patrocinado por Zync.es

       Nokia ha sacado al mercado una nueva aplicación para móviles llamada Nokia Maps con la que podemos descargarnos mapas para poder localizar lugares de interes o el sitio al que queremos ir. Es una aplicación gratuita y cuenta actualmente con mapas de 150 paises y más de 15 millones de puntos de interés.

       El funcionamiento es muy simple. Te instalas la aplicación en el móvil, te descargas los mapas de la zona de interés y listo. Si además de eso tu móvil tiene GPS, aparecerás posicionado en el mapa automáticamente.

       La aplicación parece muy completa puesto que permite realizar búsquedas por dirección, lugares cercanos,... Además posee muchas categorías para localizar rápidamente lo que nos interese: restaurantes, hoteles, farmacias,... Incluso puedes compartir tus lugares favoritos con tus amigos por medio de SMS, MMS, bluetooth,...

       La mayor utilidad que puede tener es cuando vas de viaje a una ciudad que no conoces. Puedes descargarte previamente los mapas en el PC por medio del Nokia Maps Loader y sincronizarlos con el móvil. Así, cuando llegues a tu destino no tendrás que preocuparte en pagar una cara conexión de datos para descargar los mapas y podrás empezar a recorrer la ciudad sin problemas. Creo que puede ser una alternativa muy útil a otros navegadores puesto que no tienes que pagar por unos mapas que sólo vas a usar 5 días en tu vida.