Cambia la raiz de Ubuntu a otro disco duro

A veces necesitamos cambiar nuestro sistema operativo de algún disco duro a otro, ya sea de igual tamaño o de mayor capacidad, en mi caso, tengo un servidor con Ubuntu Server y un disco duro de 160 GB, el que necesitaba migrar a un nuevo SATA de 1TB, pero después de 6 meses de producción, el sistema está configurado perfectamente, Samba, Apache,MySQL, Netatalk etc.

Por esta razón es mucho más fácil migrar tu instalación exactamente como esta, a volver a instalar limpio y configurar todo de nuevo. Si solo tienes que cambiar de disco duro y son idénticos, los últimos pasos de la guía no serán necesarios.

Esta guia asume que:

* El primer disco duro es /dev/sda
* El segundo disco duro es /dev/sdb

Notas:

Esta guía está basada en Ubuntu, pero puede servir para cualquier otra distribución haciendo los ajustes necesarios, si tienen dudas por favor exprésenlas en la sección de comentarios y tratare de ayudarles en la distribución que usen.

No uses dd para hacer este tipo de operación, ya que este está diseñado para copiar archivos crudos y por bloque. Esto quiere decir que si copias desde un disco de160 GB a uno de 320 GB, el resultado final te mostrara un disco duro de 160 GB. No entrare en detalles, pero créanme, no lo hagan.

Lo primero, es instalar gddrescue la herramienta que utilizaremos (tenemos que tener habilitado el repositorio “universe”.

$ sudo apt-get install gddrescue

Una vez instalado el paquete ejecutamos el siguiente comando:

$ sudo ddrescue -v /dev/sda /dev/sdb transfer.log

En donde -v indica que nos informe de lo que sucede y el transfer.log, es donde almacenaremos la salida del comando para después poder analizarla si así lo deseamos. Con el comando en ejecución, deberemos de ver algo así:

ghosti@blogofsysadmins.com:~# sudo ddrescue -v /dev/sda /dev/sdb transfer.log

About to copy 146810 MBytes from /dev/sda to /dev/sdb
Starting positions: infile = 0 B,  outfile = 0 B
Copy block size: 128 hard blocks
Hard block size: 512 bytes
Max_retries: 0    Split: yes    Truncate: no

Press Ctrl-C to interrupt
Initial status (read from logfile)
rescued:   397869 kB,  errsize:       0 B,  errors:       0
Current status
rescued:    28361 MB,  errsize:       0 B,  current rate:   25165 kB/s
ipos:    28361 MB,   errors:       0,    average rate:   22753 kB/s
opos:    28361 MB
Copying data...

Cuando se termine de procesar la información, tendremos una copia exacta en el disco duro destino, solo restara cambiarlo y arrancar para probar que todo funcione correctamente.

En mi caso, tuve que crear una partición con el espacio que sobro en el disco destino para montar /home/ pero esto debe de ser muy sencillo, así que no lo incluiré enesta guía.

Migrar cuentas de Yahoo y Hotmail a GMail

Todos queremos Gmail. Mucho espacio, una interficie bonita, y muy buenas posibilidades de búsqueda.

En esta guía vamos a montar servidores de reenvío para Hotmail y Yahoo Mail, los cuales reenviaran todos los emails recibidos a nuestra cuenta en Gmail (o cualquier otra cuenta) Hotmail Para Hotmail usaremos gotmail.

emerge gotmail

Gotmail por defecto utiliza ~/.gotmailrc como archivo de configuración.

username=
password=
forward=
delete

Rellenamos la información necesaria. gotmail –help Te dará más opciones para la configuración. Configura lo como quieras. Nota: Si no tienes funcionando Sendmail, Necesitarás especificar un servidor smtp.

Antes de ejecutar gotmail, queremos estar seguros de que nuestra cuenta gmail está lista. Añade un filtro que clasificará todos los archivos con la etiqueta hotmail. Querría también que vayan a alguna carpeta automáticamente, quizás solo para la primera vez que se ejecute gotmail. (todos los e-mails que recivas se guardarán en la bandeja de entrada.)

Con todo configurado, ejecuta gotmail. tomará un rato, pero trás completarse tendrás todos los correos de hotmail en tu cuenta gmail.

Yahoo Mail Para Yahoo Mail, usaremos fetchyahoo.

emerge fetchyahoo

La configuración se encuentra en /etc/fetchyahoorc y está bien comentada.

Deberíamos configurar los mismos filtros que usamos para hotmail antes.

Funciona como gotmail.

Programarlo para que se ejecute automáticamente

Funciona, pero ejecutarlo cada vez que queramos pasar los mensajes es engorroso. ¿Como podemos configurarlo para que está enviando continuamente los e-mails?

Aquí tienes dos soluciones.

Configurarlo con cron Facil y efectivo. Configuralo en el fichero cron.

Configurándolo como servicio o demonio (daemon) En lugar de cron, podemos configurarlo como servicio. Ventajas: Facil configuración, y puede pararse tan facilmente como ejecutarse. Estoy seguro de que debe haber una solución mejor, pero esta es la única que se me ocurre. Requiere: at (el demonio del calendario) .gotmailrc debe moverse a /etc/gotmailrc

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/mail-mta/postfix/files/postfix.rc6.2.2.9,v1.1 2006/03/07     21:07:20 ferdy Exp $opts=«${opts} reload»

depend() {
use sendmail net atd
}

start() {
ebegin «Iniciando webmaild»
/usr/local/sbin/webmaild &>/dev/null &
eend $?
}

stop() {
ebegin «Parando webmaild»
killall webmaild
eend $?
}

reload() {
ebegin «Recargando webmaild»
killall webmaild
/usr/local/sbin/webmaild &>/dev/null &
eend $?
}

Archivo: /usr/local/sbin/webmaild

#!/bin/bash
gotmail -c /etc/gotmailrc
fetchyahoo &> /dev/null

sleep 30m
/usr/local/sbin/webmaild &> /dev/null &

No es la mejor solución, pero funciona. Ahora podemos ejecutar webmaild como un servicio, y el e-mail será copiado cada 30 minutos

Una alternativa al script previo: /ruta/a/webmaild.sh

#!/bin/sh
while [ 1 == 1 ]; do
gotmail -c /ruta/a/gotmailrc &> /dev/null
fetchyahoo &> /dev/null
# añade a todos los programas como el anterior &> /dev/null, para que su
# salida (de información) vaya a /dev/null en lugar de a la pantalla
sleep 30m
done

Básicamente se ejecuta en un bucle infinito.

Matándolo o haciéndolo terminar: mata.el.servicio.sh

kill `ps aux | grep webmaild.sh | awk ‘{ print $2 }’`