Como duplicar meu ambiente Linux se estiver migrando para um hardware diferente?


10

Atualmente, tenho pacotes, módulos, configurações, etc. para Eclipse, MySQL, Python, Firefox, etc. configurados no Kubuntu. Também configurei o Kubuntu da melhor maneira para minhas necessidades. Gostaria de duplicar meu ambiente em outra máquina que tenha um processador diferente (atualmente em um Intel Q9450, o novo processador é um i7). Pelo que entendi, meus aplicativos são compilados para uso com meu processador específico, portanto, fazer uma cópia direta da partição está fora de questão.

Existe alguma maneira de duplicar meu ambiente nessa outra máquina, com a falta de reinstalar e reconfigurar tudo?


Esta pergunta é incrível para mim ... eu estava perguntando a mesma coisa!
dag729

"Pelo que entendi, meus aplicativos são compilados para uso com meu processador específico": de onde você tirou essa idéia? Eu não conheço nenhuma distro (exceto, claro, o Gentoo) que faça isso.
sleske

@sleske: você já tentou instalar um pacote amd64 em uma versão ppc do Debian? ;)
dag729

1
@ dag729: Obviamente, se você alterar a arquitetura do processador , precisará de novos pacotes. Mas o Intel Q9450 e o i7 são processadores x86.
sleske

1
Eu pensei que meu i7 era x86_64. Estou executando aplicativos de 64 bits nesta máquina. Estou incorreto?
curioso

Respostas:


3

Pelo que entendi, meus aplicativos são compilados para uso com meu processador específico, portanto, fazer uma cópia direta da partição está fora de questão.

O que leva você a essa conclusão? Pelo menos para x86, os pacotes instalados pelo Kubuntu são compilados para rodar em praticamente todas as CPUs não pré-históricas. Eu acredito que eles rodarão em algo mais novo que um 486, o que provavelmente não representa um problema no seu caso :-).

Portanto, uma cópia de partição direta deve funcionar bem:

  • copiar partições (ou apenas copiar os arquivos usando cp -a, se o layout da sua partição foi alterado)
  • adaptar / etc / fstab ao novo layout da partição
  • reconfigure o carregador de inicialização para novas partições e reinstale o carregador de inicialização
  • inicialize e aproveite

Os problemas são esperados apenas para:

  • pacotes auto-compilados, mas mesmo assim, a maioria será compilada por padrão para todas as CPUs modernas, a menos que você jogue com as opções do compilador
  • drivers de dispositivo

A maioria dos kernels modernos detecta automaticamente o hw na inicialização, portanto, mesmo os drivers devem estar ok, mas se tudo der errado, você poderá inicializar no modo de usuário único e corrigir qualquer problema de driver.


Se isso funcionar, minha vida será muito mais fácil. Obrigado! Vou tentar isso primeiro.
curioso

7

Você pode levar seu diretório pessoal sem nenhuma alteração. Quase tudo o que entra em um diretório inicial é projetado para ser compartilhado com algo como o NFS, então você é bom.

Além disso, salve sua seleção de pacotes com

sudo dpkg --get-selections '*' >file.txt

e restaure-o na outra máquina com

sudo dpkg --set-selections <file.txt

Da mesma forma, salve suas configurações do debconf com

sudo debconf-get-selections >file2.txt

e restaure com

sudo debconf-set-selections <file2.txt

Para o restante da configuração /etcque não é gerenciada pelo debconf, é difícil rastrear o que foi alterado manualmente, a menos que você tenha usado algo como o etckeeper (talvez uma idéia para o futuro). Por esse motivo, costumo manter a maior parte da minha configuração no diretório inicial. Porém, como você sabe em quais programas está interessado, deve ser fácil encontrar os arquivos relevantes /etce verificar e copiá-los manualmente.


1
Sim, se você estiver migrando para uma arquitetura diferente, este é o caminho a percorrer. Como uma observação lateral: basta fazer uma cópia do / etc / em algum lugar seguro, e você pode restaurar seletivamente os arquivos de configuração quando precisar deles no novo sistema.
sleske

1

Você pode fazer backup da sua casa e restaurá-la na outra máquina. Isso não pode atender totalmente à sua necessidade, mas restaurará toda a configuração. Você precisa reinstalar os pacotes você mesmo, no entanto.


1

A grande maioria das configurações personalizadas será em / home /, com a maior parte do restante em / etc /. alguns dos arquivos / etc têm informações específicas sobre a máquina ou o hardware (/etc/X11/xorg.conf, / etc / hostname, / etc / fstab na parte superior da minha cabeça), mas muito disso pode ser copiado se você vão usar a mesma versão do sistema operacional.


Das coisas que você listou, MySQL é o único que provavelmente vai ter de configuração em / etc / você pode querer copiar, o resto estão em / home /
Justin Smith

1

Apoiando a coisa get, definir seleções.

Para saber exatamente quais arquivos de configuração foram alterados, execute o seguinte:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  [[ -r $f ]] || continue; m2=$(md5sum "$f") ;
  [[ $m2 != "$m  $f" ]] && echo "$f";
done |xargs -n1 dlocate  |tee ~/edited-conffiles

Se você não tiver o dlocate instalado, poderá substituí-lo dpkg -Sou pular essa parte.

Para fazer backup de todos os arquivos de configuração:

dpkg-query --show --showformat='${Conffiles}\n' |sort -u | \
while read f m obsolete; do \
  echo "$f"
done |sudo tar cjf ~/conffiles.tbz2 -T -

1

Hmm. Se você não se importa um pouco de mexer, pode conectar o novo HDD à sua caixa, montá-lo e usar o dd. Por exemplo, se sua raiz atual estiver definida como / dev / sda3 e você montou o novo HDD em / dev / sdb2, você usaria

dd if=/dev/sda3 of=/dev/sdb2

Você precisará fazer isso como root, é claro. Depois disso, você desejará instalar o Grub, então você precisará instalar um Ubuntu LiveCD e usá-lo.

Ou você pode dar uma olhada neste link: http://www.ehow.com/how_4924091_clone-hard-drive-linux.html - Parece um bom caminho para clonar um disco rígido Linux, embora eu não tenha testei esse site sozinho.

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.