Como migrar configurações e dados do usuário para uma nova máquina?


52

Eu sou novo no Ubuntu e recentemente comecei a usá-lo no meu PC. Vou substituir esse PC por uma nova máquina. Quero transferir meus dados e configurações para o nettop. Que aspectos devo considerar?

Obviamente, quero mover meus dados. Que coisas estou faltando se apenas copiar toda a pasta pessoal?

Este é um PC doméstico (não corporativo), portanto os direitos do usuário e outros problemas de segurança não são uma preocupação, exceto que os arquivos devem estar acessíveis na nova máquina!

Por favor, leve em consideração que a nova máquina é um nettop que não possui uma unidade óptica e não me permite conectar o antigo disco SATA a ele, portanto, qualquer transferência de dados deve ser realizada via rede doméstica (eu posso ter os dois antiga e a nova máquina ligada e conectada à LAN doméstica) e eu tenho um pendrive USB com capacidade limitada (2 GB).
Parece que isso pode limitar a aplicabilidade geral, mas na verdade a tornaria mais geral.

Respostas:


43

As configurações do usuário são armazenadas na pasta Home por design. Então, se você copiar o seu /home/your-usernamepara o seu novo computador, você deve ficar bem ...

... mas há advertências:

  • Permissões. É comum que "programas" (shellscripts, programas de compilação personalizados) sejam colocados na pasta inicial. Para preservar permissões, use a --preserve=modeopção (usando cp) ou -p(usando tar)
  • UserID / GroupID. Mesmo que os nomes de usuário sejam iguais nos dois sistemas, o ID do usuário não precisa. Normalmente, isso não é um problema, mas se você tiver scripts / programas / configurações retransmitindo no UserID, verifique se o ID do usuário e o ID do grupo devem ser os mesmos no sistema de destino.
    Você pode encontrar o userID atual e o groupID executando id. Por exemplo, para alterar o ID do usuário do usuário "seu nome de usuário", execute sudo usermod --uid 1234 your-username. Para alterar o groupID, você precisa executar sudo groupmod --gid 1234 your-username.

As configurações (perfil, aparência do Firefox, ...) geralmente são armazenadas em pastas ou arquivos ocultos. As pastas / arquivos ocultos são prefixados com um ponto, como .mozillano Firefox (e outros aplicativos Mozilla).

Como a segurança não é um problema e você deseja que o trabalho de cópia seja feito o mais rápido possível, sugiro uma combinação dos programas netcat e tar. Ambos os aplicativos são instalados por padrão. Verifique se os firewalls nos dois computadores permitem acesso de entrada à porta de destino 8888 (computador de origem) e de saída à porta de destino 8888 (computador de destino). Coloque o nettop ao lado do computador para poder executar os comandos rapidamente.

No computador de origem, você precisa ter o programa netcat tradicional instalado (também conhecido como Canivete Suíço, não o BSD). Para fazer isso, instale o netcat-traditionalpacote. Você também pode configurar o programa netcat tradicional como padrão. Comandos para instalar o netcat-traditional e usá-lo como padrão:

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

No computador de origem, digite o próximo comando em um terminal (não pressione Enter ainda):

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

Explicação:

  • tar é um utilitário para empacotar arquivos
  • cz c reates como um arquivo compactado ( "tarball")
  • O tarball é comprimido usando o G Z algoritmo ip para diminuir o tamanho do arquivo.
  • -C/home $(whoami)altera o diretório de trabalho para /homee coloca sua pasta de nome de usuário. Como alternativa, você pode digitar sua your-usernamepasta no tarball
  • nc (netcat) é usado para configurar conexões entre máquinas facilmente
  • -l: Modo de escuta, permite que outras máquinas se conectem à máquina atual
  • -p 8888: Escuta na porta 8888 (número escolhido aleatoriamente, também pode ser qualquer outro número superior a 1024)
  • -w 10: saia do netcat após 10 segundos de silêncio. Você deve se conectar a este computador de origem nesse período.

Agora vá para o computador de destino (nettop). Para adicionar os arquivos à máquina de destino, digite (ainda não a execute):

nc 192.168.1.2 8888|tar xzp -C/home
  • 192.168.1.2é o endereço IP do computador de origem. Para obter seu endereço IP, execute: ifconfigna máquina de origem
  • 8888 é o número da porta, conforme digitado na máquina de origem
  • xzp: e x rastreia o tarball G Z compactado por ip enquanto p reserva as permissões.
  • -C/home: extrai a your-usernamepasta para/home/your-username
  • Opcionalmente, adicione a -vopção ao comando tar para extração detalhada, para que você possa ter uma idéia do progresso. Isso pode atrasar o processo de cópia, pois cada arquivo precisa ser impresso.

Agora vá para o computador de origem, pressione Enter para executar o comando do servidor. Alterne rapidamente para o seu nettop e pressione Enter para executar o comando do cliente.

Se você tiver alguma dúvida, use o campo de comentário abaixo.


11
Visão geral absolutamente excelente! Obrigado também pela explicação detalhada dos comandos. Como eu tenho apenas um monitor, gostaria de configurar as duas máquinas próximas uma da outra e usar algum tipo de VNC para acessar a máquina antiga. Tenho certeza de que posso rapidamente pesquisar no google um ótimo guia para manequins - mas talvez você possa recomendar um?
Torben Gundtofte-Bruun

Eu não usei outro VNC além do aplicativo fornecido com o Kubuntu (Krdc). Se você não precisar de uma GUI (como esse processo de cópia), basta instalar openssh-servere você poderá conectar-se à sua máquina executando ssh your-username@192.168.1.2. Para acesso remoto à GUI , não uso o VNC, pois é dolorosamente lento, mesmo em uma rede (sem fio). Eu recomendo o X2go para controle remoto da GUI ( guia de instalação ).
Lekensteyn

A máquina de origem me diz: "Isso é nc do pacote netcat-openbsd. Uma nc alternativa está disponível no pacote tradicional do netcat. Use: nc [-46DdhklnrStUuvzC] [-i interval] [-P proxy_username] [-p source_port ] [-s_do_ip código-fonte] [-T ToS] [-w timeout] [-X proxy_protocol] [-x proxy_address [: porta]] [nome do host] [porta [s]] ", o prompt do terminal fica visível novamente e o a máquina alvo não recebe nada. Estou fazendo algo errado?
Daniel

@ Daniel: A única coisa que você está fazendo de errado é postar sua pergunta como um comentário. Abra uma nova pergunta e vincule-a a esta.
Torben Gundtofte-Bruun

Oi @Lekensteyn, recebo muitos "Não é possível abrir" e "Não é possível mkdir: não existe esse arquivo ou diretório" ... O mesmo se aplica ao tentar fazer isso em uma VM (como convidado)?
precisa saber é o seguinte

16

Para os pacotes de software, você deve ler o seguinte: 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 as configurações e os dados, é um pouco mais complicado :-( A maioria das configurações é armazenada na sua pasta pessoal, portanto, fazer um backup da sua HOME pode fazer o truque ... Mas é claro que isso não cobre o sistema aplicativos, que têm suas configurações armazenadas em / etc ...


newmachine$ sudo apt-get --show-upgraded dselect-upgradedá o erroE: Command line option --show-upgrade is not understood
frepie

12

A maioria de todas as configurações de aplicativos está na sua pasta pessoal, oculta por padrão. Se você pressionar o Ctrl+hNautilus, verá essas pastas. Eu descobri que a maneira mais fácil é simplesmente sincronizar novamente as pastas necessárias para as configurações. Algo assim:

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

Você também pode - sincronizar toda a sua pasta pessoal na nova máquina -, mas isso pode causar problemas, dependendo das configurações.



12

Os desenvolvedores do Ubuntu estão trabalhando nisso, é chamado OneConf .


Oh, isso mesmo - eu tinha esquecido disso. Aqui está um link: omgubuntu.co.uk/2010/06/oneconf-to-reinstall-applications.html
eugenemarshall

Chegou hoje, mas não há muito a explorar.
akshatj

11
ainda parece um trabalho em andamento. Este pacote está maduro?
lenzai

2
última atualização 2015 de acordo com code.launchpad.net/oneconf , portanto, não um projeto ativo mais
Greg Bray

8

Se você tiver uma instalação que você gosta em uma máquina, basta cloná-la. Não importa se as máquinas têm hardware diferente, desde que executem a mesma arquitetura (32 bits ou 64 bits, ou seja, i386 ou amd64 ou ...).

Aqui está uma maneira de fazer isso. É um pouco longo, mas com baixa tecnologia. Muitas variações são possíveis.

  1. Conecte o disco da nova máquina na máquina existente (ou vice-versa).
  2. Inicialize a partir da instalação existente.
  3. Configure o novo disco :
    • Se os discos tiverem o mesmo tamanho: inicie a ferramenta de partição (Sistema / Administração / GParted, pacote gparted) e copie todo o disco antigo para o novo disco.
      • Você deve fornecer às cópias dos novos identificadores exclusivos do sistema de arquivos, para evitar qualquer confusão, se você montar o disco de uma máquina na outra máquina posteriormente. Para o sistema de arquivos ext2 / ext3 / ext4, use um comando como sudo tune2fs -U $(uuidgen) /dev/sdz1onde sdzestá o novo disco e 1o número da partição.
      • Se você atribuiu nomes aos seus volumes, convém atribuir nomes diferentes.
    • Caso contrário, configure partições no novo disco com o GParted ou System / Administration / Disk Utility e formate-as. Se você tiver partições que tenham o mesmo tamanho nos dois discos, poderá copiá-las no GParted.
  4. Monte a partição raiz da nova instalação que agora deve aparecer em Locais.
  5. (Pule esta etapa se tiver copiado o disco inteiro.) Copie os dados da partição raiz da instalação antiga para a nova. Observe que é vital preservar as permissões e a propriedade dos arquivos nesta etapa, e isso significa que você deve fazer isso como superusuário (root). Não sei qual é a maneira da GUI do Ubuntu de fazer isso. Na linha de comandos, execute sudo cp -ax / /media/disk9(substitua /media/disk9pelo local em que a nova partição raiz está montada).
  6. Repita as duas etapas anteriores para qualquer outra partição que você possa ter (por exemplo, uma partição inicial separada), a menos que você tenha copiado essa partição (ou o disco) como um todo na etapa 3.
  7. Ajuste a nova instalação (supondo que esteja montada em /media/disk9; adjust as needed):
    • Edite para definir o novo nome da máquina. Verifique os arquivos sob a outras ocorrências do nome do host - pode aparecer em , , etc./media/disk9/etc/hostname/media/disk9/etc//media/disk9/etc/hosts/media/disk9/etc/mailname
    • Se você estiver executando um servidor ssh , remova /media/disk9/etc/ssh/ssh_host_*_key*. O servidor irá gerar novas chaves quando você inicializar a nova instalação.
    • Se você configurou a rede editando /etc/network/interfaces, edite /media/disk9/etc/network/interfacespara a nova instalação.
    • Opcionalmente, remover os arquivos /etc/udev/rules.d/70-persistent-*.rules, se presente, para que seus discos e interfaces de rede reutilizar os mesmos nomes ( sda, eth0...) na nova máquina.
    • Se você estiver usando drivers de vídeo proprietários (ATI ou Nvidia) e a nova máquina não usar o mesmo driver, vá /media/disk9/etc/X11/xorg.confpara /media/disk9/etc/X11/xorg.conf.old-machine, caso contrário, talvez não seja possível inicializar em uma GUI na nova máquina.
  8. Mova o disco com a nova instalação de volta para a máquina correta.
  9. Se você não clonou o disco como um todo, insira um CD / USB ativo e repare o carregador de inicialização .
  10. Inicialize a partir da nova instalação e execute as etapas de transição restantes restantes:
    • Pode ser necessário instalar novos drivers proprietários ( drivers de Sistema / Administração / Hardware).
    • Se você tinha um endereço IP estático configurado através do Network Manager, configure a rede para a nova máquina.
    • Se você executar um servidor ssh , execute dpkg-reconfigure openssh-serverpara gerar uma nova chave do host.

Olá a partir de 2013 :) Tem certeza de que hardware diferente não é importante? Mesmo se eu mudar de um laptop chinês para o Mac Air?
scythargon

@scythargon Contanto que seja o mesmo tipo de CPU (x86 nos dois casos), não há grandes diferenças, talvez apenas alguns drivers para instalar e os arquivos de configuração que mencionei. Ao contrário do Windows, o Linux concentra suas dependências de hardware em alguns arquivos fáceis de identificar.
Gilles 'SO- stop be evil'

11
Você pode dar uma olhada neste guia (similar) eu escrevi: positon.org/clone-a-linux-system-install-to-another-computer
Marc M

Obrigado pelo resumo. Eu adoraria se você pudesse adicionar a remoção de /etc/udev/rules.d/70-persistent-net.rulesum arquivo gerado automaticamente pelo udev, que é usado para garantir que os novos dispositivos de rede não obtenham o mesmo nome que o instalado anteriormente.
Tv #

@tvn Na verdade, você não precisa remover esse arquivo. Isso impedirá que os mesmos nomes de interface / disco sejam reutilizados, mas isso não é necessariamente uma coisa ruim.
Gilles 'SO- stop be evil' em

6

Todos os seus dados e configurações ao vivo em sua casa.

Se você apenas copiá-lo, você perderá:

  • Programas instalados. Mas veja Sabacon responder a esta pergunta .
  • As configurações gerais do sistema, em um computador doméstico, geralmente são apenas PPAs extras.
  • Dados de programas de todo o sistema (geralmente daemons) (como bancos de dados MySQL).

Eu sinto que a maneira mais fácil de fazer uma cópia em rede é esta:

  • Instale o OpenSSH Server Baixar Gwibber no computador antigo.
  • Verifique se os dois computadores estão conectados à rede.
  • Abra o Nautilus (o navegador de arquivos) no novo computador.
  • No menu Exibir, marque "Mostrar arquivos ocultos".
  • Pressione CTRL + L, no tipo de barra de endereço ssh://ip-of-old-computer/home/
  • Você deve solicitar seu nome de usuário e senha no computador antigo.
  • Copie tudo o que deseja usando a GUI.

insira a descrição da imagem aqui


4

Dropbox.

É assim que faço o backup das minhas configurações de uma máquina para outra e, se eu perder completamente meu disco rígido, isso não importa.

O Dropbox é um serviço de backup / sincronização on-line, e oferece um grande montante, e você pode obtê-lo gratuitamente. Está disponível no Ubuntu Karmic e nos repositórios Partner. Você está procurando um pacote chamado nautilus-dropbox. Ou você pode simplesmente fazer o download no site: https://www.dropbox.com/downloading?os=lnx

Como as pessoas mencionadas acima, a maioria das configurações relevantes é salva em /home/yourname/.whatever

Por exemplo, as configurações do gnome são salvas em

/home/username/.gnome2

Então, para fazer a sincronização:

Parte 1: Faça o backup das configurações no Dropbox. (Isso é tudo na máquina "antiga", onde você tem as suas definições / configurações como deseja.)

  1. Vá para o diretório inicial e encontre o maior número possível de "arquivos de ponto" e diretórios. Quase tudo isso será relevante para as configurações pessoais (pressione Control + H no Nautilus para visualizar arquivos ocultos).
  2. Você deseja copiar esses arquivos de configuração para a sua pasta do Dropbox. Faça um backup se você tem medo de perdê-los.
  3. Remova os arquivos originais do diretório inicial e crie um link do arquivo em sua nova página inicial (na pasta da caixa de depósito) para o diretório inicial. Você pode fazer isso arrastando e soltando o arquivo / pasta no nome do diretório inicial enquanto mantém pressionada a tecla "Alt" e selecione "criar link".

Parte dois: (Na nova máquina.) Crie links a partir das configurações sincronizadas do Dropbox.

  1. Na sua "nova" máquina, ie. nova instalação do Ubuntu, exclua ( E BACKUP SE NECESSÁRIO ) os arquivos de configuração antigos do diretório inicial. Instale o dropbox na nova máquina. Permita que ele seja sincronizado; AKA baixe as configurações antigas da sua máquina.
  2. Repita a etapa 3 acima na nova máquina - copie os links das pastas sincronizadas com o Dropbox para o diretório pessoal.

Voila. Agora você tem backup e migração de configurações baseadas na Internet.


2

Dê uma olhada em Stipple, me parece interessante:

"Salve uma lista de aplicativos instalados, arquivos .config e outras configurações em um couchDB. Sincronize esse banco de dados com outros computadores com o Ubuntu One. Esse aplicativo também ajuda a instalar esses pacotes e arquivos .config em outros computadores."

https://launchpad.net/stipple


O Ubuntu One não seria mais uma opção, pois o serviço foi encerrado.
Tomislav Nakic-Alfirevic

0

O Mackup pode fazer backup de vários aplicativos na nuvem ou no controle de versão. É fácil estender, por exemplo, é assim que o plugin ssh se parece

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.