O que eu posso fazer para tornar a transição para algum novo hardware de computador segura e suave?

6

Eu normalmente uso a máquina A, e faço backups de A em um servidor de arquivos B. Mais cedo ou mais tarde, perderei a máquina A por um motivo ou outro. Seu disco rígido se desgasta, ou é atingido por um raio, ou algum vendedor me convence de que é uma peça embaraçosa de lixo obsoleto, ou um experimento de overclocking dá muito errado, ou sofre um "evento relacionado a glitter", etc.

Vamos supor que o computador C seja totalmente diferente do computador A - interface de armazenamento em massa diferente, processador de uma empresa diferente, resolução de tela diferente, etc.

Existe uma maneira fácil de fazer uma lista de todos os softwares atualmente instalados no A antes do desastre, de uma forma que facilita a instalação do mesmo software nos discos rígidos vazios do computador C? Ou, melhor ainda, facilita a instalação das versões mais recentes de cada software e a subversão específica otimizada para essa máquina em particular C?

Se eu tiver bastante espaço em B, parece que a cópia mais fácil tudo de A para B. Se eu fizer isso, o que é uma boa maneira de dividir os arquivos que eu quero copiar de B para C dos arquivos que eu não faço? Eu não quero copiar arquivos binários que eu possa facilmente baixar novamente (e possivelmente re-compilar) conforme necessário, e provavelmente não funcionaria na máquina C de qualquer maneira. Ou é melhor, a longo prazo, tentar evitar o backup desses arquivos binários específicos da máquina obtidos com facilidade em B em primeiro lugar? Existe uma maneira melhor de reduzir as chances de vírus e trojans serem transmitidos para C e reativados?

Quando eu personalizo software ou escrevo novos softwares, o que é uma boa maneira de garantir que os ajustes feitos sejam salvos em backup e transferidos para a nova máquina e instalados? Como tarefas cron e anacron?

O que eu posso fazer para tornar minha transição para um novo computador C segura e suave?

(Esta questão se expande em uma sub-questão de "Backup e restauração do sistema incremental c / problemas de rsync ou rdiff-backup " que achei particularmente importante).

    
por David Cary 27.02.2011 / 03:57

6 respostas

4

$ HOME no controle de versão

  • Periodicamente, confirme tudo no diretório / home para os repositórios de controle de versão. (Exceto sempre fazer "make superclean" antes de cometer o diretório $ HOME do programador, assim ele nunca comete executáveis binários ou outros arquivos gerados facilmente pela máquina).
  • Para cada usuário que "possui" dados exclusivos em meu computador de trabalho, verifique se há algum tipo de repositório de controle de versão no meu servidor de arquivos que contenha o diretório $ HOME inteiro desse usuário ("$ HOME in subversion"). Mesmo sendo praticamente o único humano que toca esse teclado, Eu tenho um usuário separado para: O navegador da Web não confiável que gosta de instalar muitos jogos potencialmente infectados por malware; o programador C que frequentemente escreve softwares com bugs terríveis e, por isso, queremos mantê-lo isolado em uma sandpile onde ele não pode excluir acidentalmente meus favoritos favoritos da web; o usuário do robô que executa o wiki; o usuário root; etc.
  • mantenha todos os "meus" arquivos no meu diretório $ HOME, que é um diretório de trabalho de controle de versão.
    • arquivos de texto, fotografias, arquivo de favoritos do navegador da Web etc. - tudo no diretório inicial.
    • se eu escrever um script em lote que "precise" ir em algum outro subdiretório, mantenha a cópia mestra em algum lugar no diretório $ HOME e crie um link flexível desse outro subdiretório para a cópia principal.
    • Se eu escrever um software compilado que "precise" ir em algum outro subdiretório, mantenha o código-fonte mestre e Makefile em algum subdiretório do diretório $ HOME e configure o Makefile para que "make install" instale automaticamente o executável binário nesse outro diretório.
    • Se eu corrigir bugs em algum software, passe as correções de bugs pelo upstream.
    • mantenha uma lista em algum arquivo de texto no meu diretório $ HOME de "aplicativos que eu gosto e não instalei por padrão" e "aplicativos que são normalmente instalados por padrão, mas eu não gosto". Veja Como você controla quais pacotes foram instalados no Ubuntu (Linux)? ou Como você controla quais pacotes foram instalados no Fedora (Linux)?
  • se eu comprar um software em CD ou DVD, faça o backup da imagem ISO no meu servidor de arquivos e instale-a a partir dela no meu computador de trabalho. (Porque o meu computador de trabalho não tem uma unidade óptica).

Mais tarde, quando a máquina A for perdida,

  • instale a versão mais recente de qualquer distro que seja a minha favorita esta semana, incluindo todo o software padrão, na máquina C.
  • Para cada usuário, faça uma verificação do controle de versão da versão mais recente (HEAD), exceto de alguma forma (?) ignorando todos os executáveis binários. Isso impede que alguns tipos de vírus e trojans se espalhem para C.
  • configura outras coisas fora do meu diretório inicial:
    • verifique minha lista de aplicativos, desinstale as coisas que não quero.
    • verifique minha lista de aplicativos, instale a versão mais recente das coisas que eu quero. Espero que a versão mais recente inclua as correções de erros que eu passei de volta. (Veja os links acima para formas de automatizar este processo)
    • faça "make superclean" e "make install" com cada um dos programas compilados que escrevi.
    • de alguma forma (?) lembre-se de onde os scripts em lote "precisam" ir e crie um link flexível desse local para a origem principal em meu diretório / home /. (Existe uma maneira de automatizar isso?)
    • de alguma forma (?) lembre-se de todas as coisas que tenho em execução como tarefas cron e anacron, e as insira novamente.
    • instale o software adquirido em CD a partir da imagem ISO no servidor de arquivos.
  • ... tem mais alguma coisa que eu esteja perdendo?
por 01.03.2011 / 18:49
2

Tudo isso depende de qual sistema de gerenciamento de pacotes sua distro usa.

Se você é um usuário debianish, pode usar o dpkg para obter uma lista de pacotes instalados.

Os usuários do Redhatesque podem usar o yum para obter uma lista

Para o FreeBSD você pode procurar em / var / db / pkg por uma lista de pacotes instalados.

    
por 27.02.2011 / 11:44
2

Primeiro, vá e leia os tópicos anteriores sobre este tópico: Mover o linux install para um novo computador (sobre o mesmo caso de arquitetura) e Como faço para migrar a configuração entre computadores com hardware diferente? . Aqui vou abordar alguns pequenos pontos que não foram abordados antes.

Se você estiver mudando para um computador com a mesma arquitetura e seu disco não tiver morrido, mova o disco para a nova máquina. Isso pode ser feito de forma totalmente independente da movimentação dos dados para um disco maior. Observe que "mesma arquitetura" aqui significa o tipo de arquitetura do processador, dos quais existem apenas dois nos PCs atuais: x86-32 (também conhecido como i386, ix86, IA-32,…) e x86-64 (também conhecido como amd64, Intel 64,… ). Coisas como chipset específico ou variante de processador, dispositivos de vídeo, interfaces de armazenamento, etc, não importam aqui. (Se a interface de armazenamento for incompatível¹, ou se um dos computadores for um laptop, você terá que encontrar um adaptador ou copiar através da rede.)

Para fazer backup no caso de sua unidade falhar (é um dos componentes mais frágeis), você tem duas opções:

  • Faça uma cópia bit-a-bit de todo o disco ou partição. Então você pode restaurar diretamente, ou até mesmo executar a partir do backup em caso de emergência. Se essa é sua estratégia, você ainda desejará uma ferramenta no nível do arquivo para atualizações incrementais.
  • Faça backup dos seus arquivos. Para restaurar, faça uma nova instalação e restaure os arquivos.

Seu padrão deve ser copiar tudo, existem poucos arquivos que precisam ser alterados quando você muda para um novo computador. Você precisará reinstalar o sistema operacional (com os unices mais atuais) se passar de um PC de 32 bits para um PC de 64 bits e quiser usar o novo PC com um sistema operacional de 64 bits, mas, caso contrário, qualquer experiência ruim poderá teve do Windows não transita para o Linux ou outros outros unices.

Para tornar mais fácil garantir que seus dados estejam em todos os computadores que você usa (o antigo e o novo, o desktop da família e seu laptop pessoal, etc.), certifique-se de personalizar as coisas em seu diretório pessoal do que no nível do sistema. No Ubuntu ou em outros termos “fáceis de usar”, isso significa um método de personalização no qual você não precisa inserir uma senha. Mas execute a personalização no nível do sistema se for strongmente dependente do hardware (por exemplo, resolução de tela).

Isso é em grande parte hipotético. A maioria dos desktops atuais ainda tem interfaces IDE e são compatíveis com todos os discos rígidos internos públicos em geral desde o final dos anos 80. Certamente você já atualizou todos os seus PCs anteriores.

    
por 27.02.2011 / 13:14
2

Supondo que você esteja usando Linux como o Debian

  • periodicamente na execução da máquina A:

    dpkg --get-selections  > /mnt/bakup/backup.pkg.lst 
    

e mantenha o arquivo backup.pkg.lst em um lugar seguro

  • Quando acontece um desastre, faça uma instalação mínima na máquina C (ou A) (mesmo sem GUI) e rode como root:

    dpkg --set-selections < /mnt/floppy/backup.pkg.lst 
    apt-get update
    apt-get dselect-upgrade
    apt-get dist-upgrade
    apt-get upgrade
    

e restaure seu diretório / home a partir de um backup

    
por 16.03.2011 / 21:45
1

vida em uma máquina virtual

  • Configurar uma máquina virtual no meu computador de trabalho. Faça todo o meu trabalho real dentro dessa máquina virtual.
  • Periodicamente pause a máquina virtual e faça o backup do disco virtualizado e do estado do sistema virtual para o servidor de arquivos. (Existe alguma maneira de fazer tudo ou mais isso em segundo plano, enquanto eu estou usando meu computador, então eu só preciso pausar o tempo suficiente para fazer o backup das últimas coisas?).

Mais tarde, quando a máquina A for perdida,

  • instale algum sistema operacional do host conveniente na nova máquina de trabalho C.
  • instale o player da máquina virtual na máquina de trabalho C.
  • Copie o arquivo de disco virtualizado e o arquivo de estado do sistema virtual do servidor de arquivos para a máquina C.
  • Execute o player da máquina virtual para cancelar a pausa dessa máquina virtual.

Ai, agora C está executando todos os vírus e trojans que A coletou - existe uma maneira de bloquear pelo menos alguns deles?

    
por 01.03.2011 / 18:58
1

backup bit-a-bit

  • Periodicamente, use "dd" para fazer uma cópia bit-a-bit completa da partição / home em meu computador de trabalho (ou talvez em cada uma das partições) para um (s) arquivo (s) de backup em meu servidor. (Existe alguma maneira de atualizar o backup do mês passado usando algo como o rsync, então eu não tenho que começar do zero todas as vezes, acelerando isso?) (Existe alguma maneira de fazer tudo ou mais isso em segundo plano, enquanto eu? estou usando meu computador?
    • Coloque um liveCD no computador de trabalho e reinicie
    • sudo dd if=/dev/hda | gzip -c | ssh -v -c blowfish davidcary@my_local_file_server "dd of=backup_2011_my_working_computer.gz"
  • mantenha todos os "meus" arquivos no meu diretório $ HOME.
    • arquivos de texto, fotografias, arquivo de favoritos do navegador da Web etc. - tudo no diretório inicial.
    • se eu escrever um script em lote que "precise" ir em algum outro subdiretório, mantenha a cópia mestra em algum lugar no diretório $ HOME e crie um link flexível desse outro subdiretório para a cópia principal.
    • Se eu escrever um software compilado que "precise" ir em algum outro subdiretório, mantenha o código-fonte mestre e Makefile em algum subdiretório do diretório $ HOME e configure o Makefile para que "make install" instale automaticamente o executável binário nesse outro diretório.
    • Se eu corrigir bugs em algum software, passe as correções de bugs pelo upstream.
    • mantenha uma lista em algum arquivo de texto no meu diretório $ HOME de "aplicativos que eu gosto e não instalei por padrão" e "aplicativos que são normalmente instalados por padrão, mas eu não gosto". Veja Como você controla quais pacotes foram instalados no Ubuntu (Linux)? ou Como você controla quais pacotes foram instalados no Fedora (Linux)?
  • se eu comprar um software em CD ou DVD, faça o backup da imagem ISO no meu servidor de arquivos e instale-a a partir dela no meu computador de trabalho. (Porque o meu computador de trabalho não tem uma unidade óptica).

Mais tarde, quando a máquina A for perdida,

  • instale a versão mais recente de qualquer distro que seja a minha favorita esta semana, incluindo todo o software padrão, na máquina C.
  • No servidor de arquivos B, use "mount" com o "dispositivo de loop" para permitir acesso somente leitura aos arquivos individuais armazenados dentro desse arquivo de backup. Para obter mais informações sobre como criar e montar uma imagem de disco compactado somente leitura, consulte o link )
Infelizmente, o número de usuários de "davidcary" no meu computador de trabalho é diferente do número de usuários de "davidcary" no meu servidor de arquivos - então parece que todos esses arquivos são de propriedade de alguns outros usuário. Existe uma maneira de corrigir isso ou impedi-lo em primeiro lugar?

  • copie meu diretório / home / desse arquivo de backup para o diretório / home / da minha nova máquina de trabalho, de alguma forma (?) ignorando todos os executáveis binários. Isso impede que alguns tipos de vírus e trojans se espalhem para C.
  • configura outras coisas fora do meu diretório inicial:
    • verifique minha lista de aplicativos, desinstale as coisas que não quero.
    • verifique minha lista de aplicativos, instale a versão mais recente das coisas que eu quero. Espero que a versão mais recente inclua as correções de erros que eu passei de volta. (Veja os links acima para formas de automatizar este processo)
    • faça "make superclean" e "make install" com cada um dos programas compilados que escrevi.
    • de alguma forma (?) lembre-se de onde os scripts em lote "precisam" ir e crie um link flexível desse local para a origem principal em meu diretório / home /. (Existe uma maneira de automatizar isso?)
    • de alguma forma (?) lembre-se de todas as coisas que tenho em execução como tarefas cron e anacron, e as insira novamente.
    • instale o software adquirido em CD a partir da imagem ISO no servidor de arquivos.
  • ... tem mais alguma coisa que eu esteja perdendo?
por 20.03.2017 / 11:04