¿Cómo migrar la configuración y los datos del usuario a una nueva máquina?

52

Soy nuevo en Ubuntu y recientemente comencé a usarlo en mi PC. Voy a reemplazar esa PC con una nueva máquina. Quiero transferir mis datos y configuraciones a nettop. ¿Qué aspectos debo considerar?

Obviamente quiero mover mis datos. ¿Qué cosas me faltan si solo copio la carpeta de inicio completa?

Esta es una PC doméstica (no corporativa), por lo que los derechos de los usuarios y otros problemas de seguridad no son una preocupación, ¡excepto que los archivos deben estar accesibles en la nueva máquina!

Tenga en cuenta que la nueva máquina es una nettop que no tiene una unidad óptica y no me permite conectar el viejo disco SATA, por lo que cualquier transferencia de datos debe manejarse a través de la red doméstica (puedo tener viejo y la nueva máquina encendida y conectada a la LAN doméstica) y tengo una memoria USB con capacidad limitada (2 GB).
Esto parece limitar la aplicabilidad general, pero de hecho lo haría más general.

Torben Gundtofte-Bruun
fuente

Respuestas:

43

La configuración del usuario se almacena en la carpeta Inicio por diseño. Entonces, si copias tu /home/your-usernameen tu nueva computadora, deberías estar bien ...

... pero hay advertencias:

  • Permisos. Es común que los "programas" (shellscripts, programas de compilación personalizados) se coloquen en la carpeta de inicio. Para preservar los permisos, use el --preserve=modeinterruptor (usando cp) o -p(usando tar)
  • UserID / GroupID. Incluso si los nombres de usuario son iguales en ambos sistemas, la identificación de usuario no tiene que ser así. Por lo general, esto no es un problema, pero si tiene secuencias de comandos / programas / configuraciones que se transmiten en la ID de usuario, debe asegurarse de que la ID de usuario y la ID de grupo sean las mismas en el sistema de destino.
    Puede encontrar el ID de usuario actual y el ID de grupo ejecutando id. Por ejemplo, para cambiar el ID de usuario del usuario "su-nombre de usuario", ejecute sudo usermod --uid 1234 your-username. Para cambiar el ID de grupo, debe ejecutar sudo groupmod --gid 1234 your-username.

La configuración (perfil de Firefox, apariencia, ...) a menudo se almacena en carpetas ocultas (o archivos). Las carpetas / archivos ocultos tienen como prefijo un punto, como .mozillapara Firefox (y otras aplicaciones de Mozilla).

Como la seguridad no es un problema y desea realizar el trabajo de copia lo más rápido posible, sugiero una combinación de los programas netcat y tar. Ambas aplicaciones están instaladas por defecto. Asegúrese de que los firewalls en ambas computadoras permitan el acceso entrante al puerto de destino 8888 (computadora de origen) y saliente al puerto de destino 8888 (computadora de destino). Coloque el nettop al lado de la computadora para que pueda ejecutar los comandos rápidamente.

En la computadora fuente, debe tener instalado el programa tradicional netcat (también conocido como Swiss Army Knife, no el BSD). Para hacerlo, instale el netcat-traditionalpaquete. También es posible que desee configurar el programa netcat tradicional como predeterminado. Comandos para instalar netcat-traditional y usarlo por defecto:

sudo apt-get install netcat-traditional 
sudo update-alternatives --set nc /bin/nc.traditional

En la computadora de origen, escriba el siguiente comando en una terminal (no presione Enter aún):

 tar cz -C/home $(whoami) | nc -l -p 8888 -w 10

Explicación:

  • tar es una utilidad para empaquetar archivos
  • cz c crea un archivo tan empaquetado ("tarball")
  • El tarball se comprime utilizando el algoritmo G Z ip para reducir el tamaño del archivo.
  • -C/home $(whoami)cambia el directorio de trabajo /homey coloca su carpeta de nombre de usuario. Alternativa, puede escribir su your-usernamecarpeta en el tarball
  • nc (netcat) se usa para configurar conexiones entre máquinas fácilmente
  • -l: Modo de audición, permite que otras máquinas se conecten a la máquina actual
  • -p 8888: Escucha en el puerto 8888 (número elegido al azar, también podría ser cualquier otro número superior a 1024)
  • -w 10: salga de netcat después de 10 segundos de silencio. Debe conectarse a esta computadora fuente dentro de este tiempo.

Ahora ve a la computadora de destino (nettop). Para agregar los archivos a la máquina de destino, escriba (no lo ejecute todavía):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2es la dirección IP de la computadora fuente. Para obtener su dirección IP, ejecute: ifconfigen la máquina fuente
  • 8888 es el número de puerto ingresado en la máquina fuente
  • xzp: E x tractos el G Z tarball ip-comprimido mientras que p reservando permisos.
  • -C/home: extrae la your-usernamecarpeta a/home/your-username
  • Opcionalmente, agregue el -vinterruptor al comando tar para la extracción detallada, para que pueda tener una idea del progreso. Esto podría ralentizar el proceso de copia porque cada archivo debe imprimirse.

Ahora vaya a la computadora de origen, presione Entrar para ejecutar el comando del servidor. Cambie rápidamente a su nettop y presione Entrar para ejecutar el comando del cliente.

Si tiene alguna pregunta, solo use el campo de comentarios a continuación.

Lekensteyn
fuente
1
Absolutamente excelente descripción! Gracias también por la explicación detallada de los comandos. Dado que solo tengo un monitor, me gustaría configurar ambas máquinas una al lado de la otra y usar algún tipo de VNC para acceder a la máquina anterior. Estoy seguro de que puedo buscar rápidamente en Google una excelente guía para tontos, pero ¿tal vez podría recomendarme una?
Torben Gundtofte-Bruun
No he usado otro VNC que no sea la aplicación suministrada con Kubuntu (Krdc). Si no necesita una GUI (como este proceso de copia), simplemente instálela openssh-servery podrá conectarse con su máquina ejecutando ssh [email protected]. Para el acceso remoto a la GUI , no uso VNC ya que es extremadamente lento, incluso a través de una red (inalámbrica). Recomiendo X2go para el control remoto de la GUI ( guía de instalación ).
Lekensteyn
La máquina fuente me dice: "Esto es nc del paquete netcat-openbsd. Una alternativa nc está disponible en el paquete netcat-tradicional. Uso: nc [-46DdhklnrStUuvzC] [-i intervalo] [-P proxy_username] [-p source_port ] [-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address [: port]] [hostname] [port [s]] ", el indicador del terminal vuelve a estar visible y el la máquina objetivo no recibe nada. ¿Estoy haciendo algo mal?
Daniel
@Daniel: Lo único que estás haciendo mal es publicar tu pregunta como comentario. Abra una nueva pregunta y enlace a esta.
Torben Gundtofte-Bruun
Hola @Lekensteyn, recibo muchos "No se puede abrir" y "No se puede mkdir: no existe tal archivo o directorio" ... ¿Se aplica lo mismo al intentar hacerlo en una VM (como invitado)?
George Katsanos
16

Para los paquetes de software, debe leer lo siguiente: http://www.omgubuntu.co.uk/2010/05/transfer-your-packages-to-a-clean-install/

oldmachine$ sudo dpkg --get-selections > installedsoftware
newmachine$ sudo dpkg --set-selections < installedsoftware
newmachine$ sudo apt-get --show-upgraded dselect-upgrade

Para la configuración y los datos, es un poco más complicado :-( La mayoría de las configuraciones se almacenan en su carpeta de inicio, por lo que hacer una copia de seguridad de su HOME puede ser el truco ... Pero, por supuesto, esto no cubre el sistema aplicaciones, que tienen su configuración almacenada en / etc ...

Little Jawa
fuente
newmachine$ sudo apt-get --show-upgraded dselect-upgradeda el errorE: Command line option --show-upgrade is not understood
frepie
12

La mayoría de todas las configuraciones para aplicaciones están en su carpeta de inicio ocultas por defecto. Si presiona Ctrl+hNautilus, verá estas carpetas. He descubierto que la forma más fácil es simplemente sincronizar las carpetas que necesita para las configuraciones. Algo como esto:

rsync -avz me@remote:/home/me/.foo me@remote:/home/me/.var me@remote:/home/me/.ack me@remote:/home/me/.bar /home/me/

También podría, simplemente sincronizar su carpeta de inicio completa a la nueva máquina, pero eso puede causar problemas dependiendo de sus configuraciones.

Marco Ceppi
fuente
8

Si tiene una instalación que le gusta en una máquina, simplemente puede clonarla. No importa si las máquinas tienen hardware diferente siempre que ejecuten la misma arquitectura (32 bits o 64 bits, es decir, i386 o amd64 o ...).

Aquí hay una manera de hacerlo. Es un poco largo, pero bastante poco tecnológico. Muchas variaciones son posibles.

  1. Conecte el disco de la nueva máquina a la máquina existente (o viceversa).
  2. Arranque desde la instalación existente.
  3. Configure el nuevo disco :
    • Si los discos tienen el mismo tamaño: inicie la herramienta de partición (Sistema / Administración / GParted, paquete gparted) y copie todo el disco antiguo en el nuevo disco.
      • Debe dar a las copias de los nuevos identificadores únicos del sistema de archivos, para evitar confusiones si alguna vez monta el disco de una máquina en la otra máquina más tarde. Para el sistema de archivos ext2 / ext3 / ext4, use un comando como sudo tune2fs -U $(uuidgen) /dev/sdz1donde sdzestá el nuevo disco y 1el número de partición.
      • Si asignó nombres a sus volúmenes, es posible que desee asignar nombres diferentes.
    • De lo contrario, configure las particiones en el nuevo disco con GParted o System / Administration / Disk Utility y formateelas. Si tiene particiones que tienen el mismo tamaño en ambos discos, puede copiarlas en GParted.
  4. Monte la partición raíz de la nueva instalación que ahora debería aparecer en Places.
  5. (Omita este paso si ha copiado todo el disco). Copie los datos de la partición raíz de la instalación anterior a la nueva. Tenga en cuenta que es vital preservar los permisos y la propiedad del archivo en este paso, y esto significa que debe hacerlo como superusuario (root). No sé cuál es la forma de hacerlo de la GUI de Ubuntu. En la línea de comando, ejecute sudo cp -ax / /media/disk9(reemplace /media/disk9por la ubicación donde está montada la nueva partición raíz).
  6. Repita los dos pasos anteriores para cualquier otra partición que pueda tener (por ejemplo, una partición de inicio separada), a menos que haya copiado esa partición (o el disco) como un todo en el paso 3.
  7. Ajustar la nueva instalación (suponiendo que esté montada en /media/disk9; adjust as needed):
    • Editar para establecer el nombre de la nueva máquina. Compruebe los archivos bajo para otras apariciones del nombre de host - lo que podría parecer en , , etc./media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Si está ejecutando un servidor ssh , elimínelo /media/disk9/etc/ssh/ssh_host_*_key*. El servidor generará nuevas claves cuando inicies la nueva instalación.
    • Si ha configurado la red editando /etc/network/interfaces, edite /media/disk9/etc/network/interfacespara la nueva instalación.
    • Opcionalmente, eliminar los archivos /etc/udev/rules.d/70-persistent-*.rulessi están presentes, por lo que sus discos e interfaces de red reutilizan los mismos nombres ( sda, eth0, ...) en la nueva máquina.
    • Si está utilizando controladores de video patentados (ATI o Nvidia) y la nueva máquina no debe usar el mismo controlador, vaya /media/disk9/etc/X11/xorg.confa /media/disk9/etc/X11/xorg.conf.old-machine, de lo contrario es posible que no pueda iniciar una GUI en la nueva máquina.
  8. Mueva el disco con la nueva instalación nuevamente a su máquina correcta.
  9. Si no clonó el disco como un todo, introduzca un CD / USB en vivo y repare el gestor de arranque .
  10. Arranque desde la nueva instalación y realice los pasos de transición sobrantes necesarios:
    • Es posible que deba instalar nuevos controladores propietarios ( controladores de sistema / administración / hardware).
    • Si tenía una dirección IP estática configurada a través de Network Manager, configure la red para la nueva máquina.
    • Si ejecuta un servidor ssh , ejecútelo dpkg-reconfigure openssh-serverpara generar una nueva clave de host.
Gilles 'SO- deja de ser malvado'
fuente
Hola desde 2013 :) ¿Estás seguro de que un hardware diferente no es importante? ¿Incluso si me cambio de una computadora portátil china a Mac Air?
scythargon
@scythargon Siempre que sea el mismo tipo de CPU (x86 en ambos casos), no hay una gran diferencia, solo quizás algunos controladores para instalar y los archivos de configuración que menciono. A diferencia de Windows, Linux concentra sus dependencias de hardware en unos pocos archivos fáciles de identificar.
Gilles 'SO- deja de ser malvado'
1
Puede echar un vistazo a esta guía (similar) que escribí: positon.org/clone-a-linux-system-install-to-another-computer
Marc M
Gracias por el resumen Me encantaría si pudiera agregar la eliminación de la /etc/udev/rules.d/70-persistent-net.rulescual es un archivo autogenerado por udev, se utiliza para garantizar que los nuevos dispositivos de red no obtengan el mismo nombre que los instalados previamente.
tvn
@tvn En realidad no es necesario eliminar ese archivo. Evitará que se reutilicen los mismos nombres de interfaz / disco, pero eso no es necesariamente algo malo.
Gilles 'SO- deja de ser malvado'
6

Todos sus datos y configuraciones viven en su hogar.

Si solo lo copia, perderá:

  • Programas instalados Pero vea la respuesta de Sabacon a esta pregunta .
  • Configuraciones de todo el sistema, en una computadora doméstica, esto generalmente son solo PPA adicionales.
  • Datos de programas de todo el sistema (generalmente demonios) (como bases de datos MySQL).

Creo que la forma más fácil de hacer una copia de red es esta:

  • Instale OpenSSH Server Descargar Gwibber en la computadora anterior.
  • Asegúrese de que ambas computadoras estén conectadas a la red.
  • Abra Nautilus (el explorador de archivos) en la nueva computadora.
  • En el menú Ver, marque "Mostrar archivos ocultos".
  • Presione CTRL + L, en el tipo de barra de direcciones ssh://ip-of-old-computer/home/
  • Se le debe solicitar su nombre de usuario y contraseña en la computadora anterior.
  • Copia todo lo que quieras usando la GUI.

ingrese la descripción de la imagen aquí

Javier Rivera
fuente
4

Dropbox

Así es como hago una copia de seguridad de mi configuración de una máquina a otra, y si pierdo completamente mi disco duro, no importa.

Dropbox es un servicio de copia de seguridad / sincronización en línea, y patea un gran botín, y puede obtenerlo de forma gratuita. Está disponible en ubuntu Karmic y en los repositorios de socios. Estás buscando un paquete llamado nautilus-dropbox. O bien, puede descargarlo del sitio: https://www.dropbox.com/downloading?os=lnx

Como se mencionó anteriormente, la mayoría de sus configuraciones relevantes se guardan en /home/yourname/.whatever

Por ejemplo, los ajustes de configuración de gnome se guardan en

/home/username/.gnome2

Entonces, para hacer la sincronización:

Primera parte: haga una copia de seguridad de la configuración en Dropbox. (Todo esto está en la máquina "antigua", donde tiene sus ajustes / configuración como los quiere).

  1. Vaya a su directorio de inicio y encuentre tantos "dotfiles" y directorios como pueda. Casi todos estos serán relevantes para la configuración de configuración personal (presione Control + H en Nautilus para ver archivos ocultos).
  2. Querrá copiar esos archivos de configuración a su carpeta de Dropbox. HAGA UNA COPIA DE SEGURIDAD SI TIENE Miedo de perderlos.
  3. Elimine los archivos originales de su directorio de inicio, luego cree un enlace desde el archivo en su nuevo inicio (debajo de su carpeta de Dropbox) al directorio de inicio. Puede hacerlo arrastrando y soltando el archivo / carpeta en el nombre de su directorio principal mientras mantiene presionada la tecla "Alt" y seleccione "crear enlace".

Segunda parte: (en una máquina nueva). Cree enlaces desde la configuración de configuración sincronizada de Dropbox.

  1. En su "nueva" máquina, es decir. Instale Ubuntu nuevo, elimine ( Y HAGA UNA COPIA DE SEGURIDAD SI ES NECESARIO ) los archivos de configuración de su directorio personal anterior. Instale Dropbox en la nueva máquina. Permita que se sincronice, AKA descargue la configuración de su máquina anterior.
  2. Repita el paso 3 anterior en la nueva máquina: copie los enlaces de las carpetas sincronizadas con Dropbox al directorio de inicio.

Voila Ahora tiene copia de seguridad y migración basadas en Internet.

emf
fuente
2

Echa un vistazo a Stipple, me parece interesante:

"Guarde una lista de aplicaciones instaladas, archivos .config y otras configuraciones en un archivo couchDB. Sincronice este DB a otras computadoras con Ubuntu One. Esta aplicación también lo ayuda a instalar esos paquetes y archivos .config en sus otras computadoras".

https://launchpad.net/stipple

Sabacon
fuente
Ubuntu One ya no es una opción ya que el servicio se cerró.
Tomislav Nakic-Alfirevic
0

Mackup puede hacer copias de seguridad de muchas aplicaciones en la nube o en el control de versiones. Es fácil de extender, por ejemplo, así es como se ve el complemento ssh

ivotron
fuente