¿Cómo migro la configuración entre computadoras con hardware diferente?


9

Quiero migrar la configuración de un escritorio de Ubuntu a una nueva caja con hardware diferente. ¿Cuál es la forma más fácil de hacer esto? / etc / contiene configuraciones específicas de máquina y hardware, así que no puedo copiarlo a ciegas. Existe un problema similar para los paquetes instalados.

editar: Este es un movimiento de x86 a x86-64.


@Gilles Creo que el "hardware diferente" merece otra pregunta, especialmente el cambio de x86 a x86-64.
phunehehe

Para el caso más simple cuando la arquitectura del procesador es la misma, consulte Mover la instalación de Linux a una computadora nueva . @phunehehe: La pregunta originalmente no mencionaba la diferencia de arquitectura.
Gilles 'SO- deja de ser malvado'

Respuestas:


7

Primero, si va a seguir ejecutando binarios de 32 bits, no está cambiando la arquitectura del procesador: seguirá ejecutando un procesador x86, incluso si también es capaz de hacer otras cosas. En ese caso, recomiendo clonar su instalación o simplemente mover el disco duro, como se describe en Mover la instalación de Linux a una nueva computadora .

Por otro lado, si desea tener un sistema de 64 bits (en términos de Ubuntu: una amd64arquitectura), debe reinstalarlo, porque no puede instalar amd64paquetes en un i386sistema o viceversa. (Esto cambiará cuando aparezca Multiarch ).

Muchas personalizaciones viven en su directorio de inicio, y puede copiarlas en la nueva máquina. La configuración del sistema no se puede copiar tan fácilmente debido al cambio en la arquitectura del procesador.

En Ubuntu 10.10 y superior, intente OneConf .

OneConf es un mecanismo para grabar información de software en Ubuntu One y sincronizar con otras computadoras según sea necesario. En Maverick, se almacena la lista de software instalado. Esto eventualmente puede expandirse para incluir algunas configuraciones de aplicaciones y el estado de la aplicación. Otras herramientas como Stipple pueden proporcionar configuraciones / control más avanzados.

Una de las cosas principales que querrá reproducir en la nueva instalación es el conjunto de paquetes instalados. En las distribuciones basadas en APT, puede usar el aptitude-create-state-bundlecomando (parte del aptitudepaquete) para crear un archivo que contenga la lista de paquetes instalados y su configuración debconf , y aptitude-run-state-bundleen la nueva máquina. (Gracias a Intuited por contarme sobre eso aptitude-create-state-bundle). Vea también la lista de Ubuntu que instaló explícitamente los paquetes y el Super Usuario y las preguntas de Ubuntu que se citan allí, especialmente la respuesta de Telemachus , sobre cómo hacer esta parte manualmente.

Para las cosas que ha cambiado /etc, deberá revisarlas. Muchos tienen que ver con el hardware específico o la configuración de red y no deben copiarse. Otros tienen que ver con preferencias personales, pero debe establecer preferencias personales por usuario siempre que sea posible, de modo que la configuración se guarde en su directorio de inicio.

Si planifica con anticipación, puede usar etckeeper Instalar etckeeper para /etccontrolar la versión ( inicio rápido de etckeeper ). No necesita saber nada sobre el control de versiones para usar etckeeper, solo necesita comenzar a aprender si desea aprovecharlo para hacer cosas elegantes.


¿Puede explicar la parte sobre problemas con el arco del procesador? Espero que no haya ningún problema ya que se está moviendo de x86-32 a x86-64.
tshepang

1
@Tshepang: Siempre y cuando usted no está cambiando la arquitectura, es más fácil de copiar toda la instalación ( /home, /etc, /var, /usry todo) y acaba de editar archivos de los pocos en etcque la edición de necesidad. Esa no es una opción si está cambiando a una arquitectura diferente, porque necesita reinstalar todos los paquetes binarios.
Gilles 'SO- deja de ser malvado'

1
@ user4745: Lo ideal sería confirmar cada cambio /etcindividualmente con un mensaje de confirmación significativo (en lugar de confiar en los ganchos de confirmación automática), y confirmar los cambios específicos de la máquina en una rama diferente de las preferencias de sysadmin o la configuración de todo el sitio. Pero incluso el uso básico ayuda a realizar un seguimiento de los cambios que ha realizado /etc, para que pueda replicarlos en la nueva máquina.
Gilles 'SO- deja de ser malvado'

1
¿Cómo se compara esto con el uso aptitude-create-state-bundle?
intuido

1
@intuited: no lo sabía aptitude-create-state-bundle. Gracias, esa es una forma automática de reproducir el estado administrado por APT (mejor que la forma manual, que no reprodujo las fuentes APT o la configuración de debconf). Es posible que también desee agregar una respuesta a las preguntas relacionadas .
Gilles 'SO- deja de ser malvado'

3

Aquí le mostramos cómo obtener todo, excepto lo que configuró manualmente:

dpkg --get-selections > packages.txt
debconf-get-selections > debconf.txt

Edite estos archivos según sea necesario para cualquier cosa que sea dependiente del arco (por ejemplo, linux-image), pero no creo que haya mucho.

Copie estos archivos al nuevo sistema y luego ejecute:

debconf-set-selections < debconf.txt
dpkg --set-selections < packages.txt
apt-get dselect-upgrade

También querrá copiar (preferiblemente con rsync) / home y cualquier otro directorio de datos al nuevo sistema.

Lo único que quedará serán los archivos de configuración de los paquetes principales (por ejemplo, apache, bind, cronjobs, et al.).


2
+1 por mencionar debconf, pero -1 por restaurar las selecciones dpkg. Esto marca todos los paquetes como instalados manualmente en la nueva máquina. Use aptitude search '~i !~M'para guardar la lista de paquetes instalados manualmente; Vea esta respuesta para más información.
Gilles 'SO- deja de ser malvado'

1

Realmente, una gran parte del vudú de Windows con respecto a los controladores, el registro y la sensibilidad a los cambios de la placa base es menos grave en Linux si está utilizando un núcleo genérico con todos los controladores como módulos, que es la situación habitual para Ubuntu. Estas son las únicas cosas en / etc que dependen del hardware que conozco:

  • Si tiene instalados controladores de gráficos propietarios, creo que pueden ser un problema.
  • He cambiado un disco duro con Debian instalado de un antiguo HP Pavilion (500Mhz cpu, bastante viejo) a una placa MSI KT4V un poco más nueva. Los únicos problemas que tuve fue que mis nombres de interfaz de red estaban en mal estado. Pero esto me afectó más que al usuario habitual porque esta instalación fue explícitamente para uso como enrutador.
  • Otra cosa que podría verse afectada son los sensores lm, si lo usa. Esto es específico de la placa base, pero puede ejecutar simplemente sensores para detectarlo.
  • Si cambia el dispositivo, Linux espera que su partición raíz sea, o si alguno de los dispositivos / particiones apuntados en / etc / fstab cambia, es decir, se está moviendo de una unidad PATA a una SATA, entonces debe actualizar esto; de lo contrario, Linux lo hará. tener problemas.

Si la GPU es la misma, el controlador de la unidad es del mismo tipo, y no tiene un montón de scripts caseros que dependen de los nombres de sus interfaces de red, no preveo problemas importantes.


El hardware no será muy similar, disco más grande, particiones diferentes, GPU diferentes. No creo que copiar la jerarquía de archivos funcione sin una intervención drástica porque será una transición x86-> x64.
user4745

Las opciones de arranque (almacenadas en /etc/default/grub, como el valor de GRUB_CMDLINE_LINUX_DEFAULT) deben agregarse a esta lista.
intuido el

0

[agregando a esta excelente respuesta ]

Veo que mencionas preocupación por los paquetes instalados. Con esto, supongo que quiere decir que va a transferir un disco de una máquina a otra. Suponiendo que sus dos máquinas son de arquitectura x86, el único problema que se me ocurre es si su instalación es de 64 bits y su nueva máquina no lo es. Si las cosas son las otras, no debería haber ningún problema.


No estoy transfiriendo el disco, pero podría copiar todo el disco si eso fuera más fácil. Suponiendo que hice una instalación limpia, quería volver a instalar los mismos paquetes, omitiendo el hardware o los dependientes del sistema.
usuario4745

Además, será una transición x86-> x64.
user4745
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.