Migración cutre de una instalación a un disco duro nuevo
Buenas, hace poco (hoy) recibí mi flamante nuevo disco duro para el portátil, como paso de reinstalarme todo y me encuentro muy agusto con su actual funcionamiento me decidí a realizar una "migración cutre" de todo el disco al nuevo... puede parecer una tontería (y lo es) pero hay un par de cosas a tener en cuenta...
Preparamos el invento
Para realizar la migración sin tener que parar mi sistema pensé lo siguiente: conecto el disco nuevo a una caja externa para discos de 2.5, y copio de mi disco viejo al nuevo. Enchufamos el disco mediante una de estas cajas y lo tenemos en /dev/sda a nuestra disposición, así que... empezamos
Origen y destino
El particionado del sistema origen es el siguiente:
Partición primaria 1: hda1 montado como /
Partición extendida:
Partición lógica 1: hda5 montado como /home
Partición lógica 2: hda6 usado como swap
El nuevo disco necesitaba un particionado distinto porque los tamaños de las particiones eran otros, lo dejé así:
Partición primaria 1: hda1 montado como /
Partición primaria 2: hda2 para experimentar con otros S.O. ;-)
Partición extendida:
Partición lógica 1: hda5 montado como /home
Partición lógica 2: hda6 usado como swap
Como véis este particionado no es casual, lo hice para que las nuevas particiones y puntos de montaje fuesen iguales que en antiguo HDD, con esto nos ahorramos modificar el archivo /etc/fstab con las nuevas rutas. Es más cómodo.
Poco a poco
Una vez particionado podremos pensar en copiar todo a cholón pero esto nos plantea los sisguiente problemas:
Como la caja esta montada en nuestro sistema (para copiar los ficheros) hay que dejar fuera del proceso de copia el punto de montaje de la caja.
Hay que respetar los otros sistemas de ficheros montados. En mi caso, /home está en otro sistema de ficheros, si lo copio tal cual no será correcto pues tengo que copiarlo en sda5 y no en sda1.
Existen directorios que no se deben copiar: /proc y /sys con ejemplos de ello
Como los directorios en la raíz son pocos decidí finalmente copiarlos uno a uno. Primero creamos los directorios que no vamos a copiar pero que son puntos de montaje:
El /mnt lo creamos porque supongo que el disco nuevo lo tendremos montado ahí así que no podemos copiarlo recursivamente...
Y ahora copiamos uno a uno los directorios de toda la vida, emplearemos rsync para que respete enlaces, fechas, etc.:
En fin... todos los que tengáis en la raíz que no sean puntos de montaje (estos tendréis que haberlos creado en el paso anterior... o cuando sea, pero los creáis).
Ahora viene un paso bastante criticable, pero que a mi me ha funcionado a las mil maravillas: resulta que /dev también se puebla al inicio, pero hay nodos que tuve que crear yo a mano para ciertas cosas... ni corto ni perezoso he hecho:
No he tenido ningún mensaje de error y los nodos se me han creado muy bien y en el sistema migrado no he tenido errores y todo me va muy bien :-)
Pues bien, una vez migrado la raíz, desmontamos sda1 y montamos sda5, ahora le toca el turno a los homes:
Y una vez terminado esto desmontamos sda5 y volvemos a montar sda1, sólo nos queda instalar el grub:
Ahora apagamos el sistema, sacamos el disco viejuno y metemos el nuevo. Reiniciamos y ¡tachán!... no arranca... :-(
Ehhh!! no pasa nada! esta receta tiene un final feliz: arrancamos con una liveCD como por ejemplo el CD de Ubuntu Dapper y en un terminal volvemos a montar hda1 (ahora es hda1 que ya está dentro del portátil!) y volvemos a ejecutar grub-install indicándole el nuevo dispositivo (ya sabéis, /dev/hda), de la misma forma que antes...
Si ahora reiniciáis... debería arrancar... y así lo espero porque esta receta termina aquí.