Como migrar a configuração entre computadores com hardware diferente?

9

Quero migrar a configuração de um desktop Ubuntu para uma nova caixa com hardware diferente. Qual é a maneira mais fácil de fazer isso? / etc / contém configurações específicas de máquina e hardware, portanto não posso copiá-lo cegamente. Existe um problema semelhante para os pacotes instalados.

editar: Esta é uma mudança de x86 para x86-64.

user4745
fonte
@Gilles Acho que o "hardware diferente" merece outra pergunta, especialmente a mudança do x86 para o x86-64.
phunehehe
Para um caso mais simples, quando a arquitetura do processador é a mesma, consulte Movendo a instalação do linux para um novo computador . @phunehehe: A questão originalmente não mencionou a diferença de arquitetura.
Gilles 'SO- stop be evil'

Respostas:

7

Primeiro, se você continuar executando binários de 32 bits, na verdade não está alterando a arquitetura do processador: ainda estará executando um processador x86, mesmo que ele também seja capaz de fazer outras coisas. Nesse caso, recomendo clonar sua instalação ou simplesmente mover o disco rígido, conforme descrito em Movendo a instalação do linux para um novo computador .

Por outro lado, se você deseja ter um sistema de 64 bits (em termos do Ubuntu: uma amd64arquitetura), é necessário reinstalar, porque não é possível instalar amd64pacotes em um i386sistema ou vice-versa. (Isso mudará quando o Multiarch aparecer ).

Muitas personalizações residem em seu diretório pessoal e você pode copiá-lo para a nova máquina. As configurações do sistema não podem ser copiadas tão facilmente devido à alteração na arquitetura do processador.

No Ubuntu 10.10 e superior, tente o OneConf .

O OneConf é um mecanismo para registrar informações de software no Ubuntu One e sincronizar com outros computadores, conforme necessário. No Maverick, a lista de software instalado é armazenada. Eventualmente, isso pode se expandir para incluir algumas configurações e estado do aplicativo. Outras ferramentas como Stipple podem fornecer configurações / controle mais avançados.

Uma das principais coisas que você deseja reproduzir na nova instalação é o conjunto de pacotes instalados. Nas distribuições baseadas no APT, você pode usar o aptitude-create-state-bundlecomando (parte do aptitudepacote) para criar um arquivo contendo a lista de pacotes instalados e sua configuração debconf , e aptitude-run-state-bundlena nova máquina. (Agradecemos a intuited por me falar sobre aptitude-create-state-bundle.) Veja também a lista do Ubuntu, explicitamente, pacotes instalados e as perguntas Superusuário e Ask Ubuntu, citadas aqui, especialmente a resposta de Telemachus , sobre como fazer essa parte manualmente.

Para as coisas que você alterou /etc, será necessário revisá-las. Muitos têm a ver com configurações específicas de hardware ou rede e não devem ser copiados. Outros têm a ver com preferências pessoais - mas você deve definir preferências pessoais por usuário sempre que possível, para que as configurações sejam salvas no diretório inicial.

Se você planeja com antecedência, pode usar o etckeeper Instale o etckeeper para colocar /etcsob controle de versão (início rápido do etckeeper ). Você não precisa saber nada sobre controle de versão para usar o etckeeper, só precisa começar a aprender se quiser tirar vantagem disso para fazer coisas sofisticadas.

Gilles 'SO- parar de ser mau'
fonte
Você pode explicar a parte sobre problemas com o arco do processador. Espero que não haja um problema, pois ele está passando do x86-32 para o x86-64.
22411 tshepang
11
@Tshepang: Contanto que você não está mudando a arquitetura, é mais simples para copiar toda a instalação ( /home, /etc, /var, /usre todos) e apenas editar os poucos arquivos em etcque a edição necessidade. Essa não é uma opção se você estiver mudando para uma arquitetura diferente, porque você precisará reinstalar todos os pacotes binários.
Gilles 'SO- stop be evil'
11
@ user4745: Idealmente, você deve confirmar cada alteração /etcindividualmente com uma mensagem de confirmação significativa (em vez de confiar nos ganchos de confirmação automática) e confirmar alterações específicas da máquina em uma ramificação diferente das preferências do sysadmin ou da configuração em todo o site. Mas mesmo o uso básico ajuda a acompanhar as alterações feitas /etc, para que você possa replicá-las na nova máquina.
Gilles 'SO- stop be evil'
11
Como isso se compara ao uso aptitude-create-state-bundle?
intuited
11
@ intuited: eu não sabia aptitude-create-state-bundle. Obrigado, essa é uma maneira automática de reproduzir o estado gerenciado pelo APT (melhor que a maneira manual, que não reproduzia fontes do APT ou configurações do debconf). Você pode querer adicionar uma resposta para os relacionados perguntas também.
Gilles 'SO- stop be evil'
3

Veja como obter tudo, exceto o que você configurou manualmente:

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

Edite esses arquivos conforme necessário para qualquer coisa dependente do arco (por exemplo, linux-image), mas acho que não haverá muito.

Copie esses arquivos para o novo sistema e execute:

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

Você também deseja copiar (de preferência com o rsync) / home e outros diretórios de dados para o novo sistema.

A única coisa que resta serão os arquivos de configuração dos principais pacotes (por exemplo, apache, bind, cronjobs, et al.).

bahamat
fonte
2
+1 por mencionar o debconf, mas -1 por restaurar as seleções do dpkg. Isso marca todos os pacotes como instalados manualmente na nova máquina. Use aptitude search '~i !~M'para salvar a lista de pacotes instalados manualmente; veja esta resposta para mais informações.
Gilles 'SO- stop be evil'
1

Na verdade, grande parte do vodu do Windows em relação a drivers, registro e sensibilidade às alterações da placa-mãe é menos severa no Linux se você estiver usando um kernel genérico com todos os drivers como módulos, o que é a situação usual para o Ubuntu. Estas são as únicas coisas em / etc que dependem do hardware que eu conheço:

  • Se você possui drivers gráficos proprietários instalados, acho que esses podem ser um problema.
  • Troquei um disco rígido com o Debian instalado de um antigo HP Pavilion (500Mhz cpu, bastante antigo) para um pouco mais novo placa MSI KT4V. Os únicos problemas que tive foram os nomes de minhas interfaces de rede. Mas isso me afetou mais do que o usuário comum, porque esta instalação foi explicitamente usada como roteador.
  • Outra coisa que pode ser afetada são os sensores lm, se você usá-lo. Isso é específico da placa-mãe, mas você pode simplesmente executar a detecção de sensores para corrigir isso.
  • Se você alterar o dispositivo que o Linux espera que sua partição raiz seja, ou se algum dispositivo / partição apontado em / etc / fstab for alterado, ou seja, você estiver passando de uma unidade PATA para uma SATA, deverá atualizá-la, caso contrário o Linux irá tem problemas.

Se a GPU for a mesma, o controlador da unidade for do mesmo tipo e você não tiver vários scripts caseiros dependentes dos nomes das suas interfaces de rede, não vejo grandes problemas.

LawrenceC
fonte
O hardware não será muito semelhante, disco maior, particionamento diferente, GPU diferente. Eu não acho que copiar a hierarquia de arquivos funcione sem intervenção drástica, porque será uma transição x86-> x64.
user4745
As opções de inicialização (armazenadas /etc/default/grubcomo o valor de GRUB_CMDLINE_LINUX_DEFAULT) devem ser adicionadas a esta lista.
intuited
0

[adicionando esta excelente resposta ]

Vejo que você menciona preocupação com os pacotes instalados. Com isso, suponho que você queira dizer que transferirá um disco de uma máquina para outra. Supondo que suas duas máquinas sejam arquitetura x86, o único problema em que posso pensar é se sua instalação é de 64 bits e sua nova máquina não. Se as coisas estão ao contrário, não deve haver um problema.

tshepang
fonte
Não estou transferindo o disco, mas poderia copiar toda a unidade, se isso fosse mais fácil. Supondo que eu fiz uma instalação limpa, queria reinstalar os mesmos pacotes, omitindo os dependentes de hardware ou sistema.
User4745
Além disso, será uma transição x86-> x64.
user4745