13 de julio de 2007

Moviendo instalación de Ubuntu a otro disco

¡Qué fácil! ... es común escucharlo, leerlo, pero el convencimiento dado por la experiencia es otro asunto. Uniéndome a la lista de afortunados puedo decirlo, ¡es realmente fácil mover una instalación de Ubuntu a otro disco!.

Básicamente es ejecutar la siguiente secuencia:

NOTA: Todos los comandos a continuación son ejecutados con privilegios de root desde la sesión iniciada en el LiveCD.

  1. Iniciar un sistema independiente a los dos discos operantes. Por ejemplo un LiveCD. Con una terminal y acceso total a la máquina estamos en el paraíso.
  2. Crear las respectivas particiones y filesystems en el disco nuevo. La distribución de las particiones para el ejemplo están de la siguiente manera:

    Disco Origen de 80GB

    Disco Destino de 120GB

    Con la siguiente secuencia de comandos se aplicaron los filesystems al nuevo disco:

    $ mkfs.reiserfs /dev/sdb1
    $ mkswap /dev/sdb2
    $ mkfs.reiserfs /dev/sdb3
  3. Montar las respectivas particiones de cada disco.

    $ mkdir /media/new_root && mount /dev/sdb1 /media/new_root
    $ mkdir /media/new_home && mount /dev/sdb3 /media/new_home
    $ mkdir /media/old_root && mount /dev/sda1 /media/old_root
    $ mkdir /media/old_home && mount /dev/sda3 /media/new_home
  4. Ejecutar la copia de archivos:

    $ cp -ax /media/old_root/* /media/new_root
    $ cp -ax /media/old_home/* /media/new_home
  5. Modificar el archivo /etc/fstab para que apunte a las particiones del nuevo disco, básicamente es cambiar los UUID de los discos. Una recomendación es copiar las líneas correspondientes a las particiones básicas: /, swap y /home, comentar las originales por el momento, y actualizar la copia con los nuevos UUID. Para obtener el UUID de los nuevos discos puede hacerse con:

    $ vol_id -u /dev/sdb1
    $ vol_id -u /dev/sdb3
  6. Modificar la configuración del GRUB. El archivo /boot/grub/menu.lst ahora debe apuntar al nuevo disco, además es necesario cambiar el UUID con el valor correspondiente a la nueva partición /. En el siguiente ejemplo, una muestra del archivo, se ha puesto con estilo negrita los valores actualizados:

    title Ubuntu, kernel 2.6.20-16-generic
    root (hd1,0)
    kernel /boot/vmlinuz-2.6.20-16-generic root=UUID=a6682ddb-27c4-4a04-8d2e-52cc0b8edf07 ro quiet splash
    initrd /boot/initrd.img-2.6.20-16-generic
    quiet
    savedefault
  7. Reinstalación del GRUB. Debido a los cambios de disco, el GRUB ahora debe instalarse en el disco correspondiente.

    grub
    grub> root (hd1)
    grub> setup (hd0)

    La primera instrucción “root” indica el disco donde estarán los archivos del GRUB instalados: /boot/grub/... La segunda instrucción es la instalación del GRUB en el disco indicado. Generalmente los parámetros pasado a ambas instrucciones es el mismo disco, pero para el ejemplo el disco de inicio es diferente al disco donde los archivos de configuración de GRUB residen.

  8. Reinicio de la máquina.

    shutdown -r now

Con los pasos ejecutados el sistema quedó idéntico, ahora con más espacio, respetando todas las configuraciones anteriores: base de datos PostgreSQL, servidor de directorio LDAP, entornos de desarrollo, virtualizaciones con VirtualBox y otros elementos.

Enlaces

2 comentarios:

muadib dijo...

Gracias por tu experiencia, estaba buscando algo así para cuando me compre un SATA.

Master of puppets dijo...

Muy bueno, pero con grub2 tuve unos problemas, entre por livecd y mande mano al grub-install, grub-mkconfig, no se que hice pero se soluciono, estaria bueno si pudiera agrerar como se hace cuando tenes el grub2.
Detodas forma , muy bueno.