Come migrare la configurazione tra computer con hardware diverso?


9

Voglio migrare la configurazione di un desktop Ubuntu in una nuova scatola con hardware diverso. Qual è il modo più semplice per farlo? / etc / contiene impostazioni specifiche della macchina e dell'hardware, quindi non posso semplicemente copiarlo alla cieca. Un problema simile esiste per i pacchetti installati.

modifica: questa è una mossa da x86 a x86-64.


@Gilles Penso che il "hardware diverso" meriti un'altra domanda, in particolare il passaggio da x86 a x86-64.
phunehehe,

Per il caso più semplice in cui l'architettura del processore è la stessa, consultare Spostamento dell'installazione di Linux su un nuovo computer . @phunehehe: la domanda inizialmente non menzionava la differenza di architettura.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


7

In primo luogo, se continuerai a eseguire binari a 32 bit, non stai effettivamente modificando l'architettura del processore: eseguirai comunque un processore x86, anche se è anche in grado di fare altre cose. In tal caso, ti consiglio di clonare la tua installazione o semplicemente spostare il disco rigido, come descritto in Spostare l'installazione di Linux su un nuovo computer .

D'altra parte, se si desidera avere un sistema a 64 bit (in termini di Ubuntu: amd64un'architettura), è necessario reinstallare, poiché non è possibile installare amd64pacchetti su un i386sistema o viceversa. (Questo cambierà quando arriverà Multiarch ).

Molte personalizzazioni vivono nella tua home directory e puoi copiarle sul nuovo computer. Le impostazioni di sistema non possono essere copiate così facilmente a causa della modifica dell'architettura del processore.

Su Ubuntu 10.10 e versioni successive, prova OneConf .

OneConf è un meccanismo per la registrazione delle informazioni del software in Ubuntu One e la sincronizzazione con altri computer, se necessario. In Maverick viene memorizzato l'elenco dei software installati. Questo potrebbe eventualmente espandersi per includere alcune impostazioni dell'applicazione e lo stato dell'applicazione. Altri strumenti come Stipple possono fornire impostazioni / controllo più avanzati.

Una delle cose principali che vorrai riprodurre sulla nuova installazione è il set di pacchetti installati. Nelle distribuzioni basate su APT, è possibile utilizzare il aptitude-create-state-bundlecomando (parte del aptitudepacchetto) per creare un archivio contenente l'elenco dei pacchetti installati e la loro configurazione debconf e aptitude-run-state-bundlesul nuovo computer. (Grazie a intuito per avermelo detto aptitude-create-state-bundle.) Vedi anche Ubuntu elenca i pacchetti installati esplicitamente e le domande di Super User e Ask Ubuntu citate lì, in particolare la risposta di Telemachus , su come eseguire questa parte manualmente.

Per le cose in cui sei cambiato /etc, dovrai esaminarle. Molti hanno a che fare con l'hardware specifico o le impostazioni di rete e non devono essere copiati. Altri hanno a che fare con le preferenze personali - ma dovresti impostare le preferenze personali per utente ogni volta che è possibile, in modo che le impostazioni vengano salvate nella tua home directory.

Se pianifichi in anticipo, puoi usare etckeeper Installa etckeeper per mettere il /etccontrollo della versione ( etckeeper quickstart ). Non hai bisogno di sapere nulla sul controllo delle versioni per usare etckeeper, devi solo iniziare a imparare se vuoi trarne vantaggio per fare cose fantasiose.


Puoi spiegare la parte relativa ai problemi con l'arco del processore. Mi aspetto che non ci dovrebbero essere problemi dal momento che si sta spostando da x86-32 a x86-64.
Tshepang,

1
@Tshepang: Fino a quando non si sta cambiando l'architettura, è più semplice per copiare l'intero impianto ( /home, /etc, /var, /usre tutti) e basta modificare le poche file in etcche la modifica bisogno. Questa non è un'opzione se stai passando a un'architettura diversa, perché devi reinstallare tutti i pacchetti binari.
Gilles 'SO- smetti di essere malvagio' il

1
@utente4745: idealmente si commetterebbe ogni modifica /etcsingolarmente con un messaggio di commit significativo (invece di fare affidamento sugli hook autocommit) e commettere modifiche specifiche della macchina su un ramo diverso dalle preferenze di sysadmin o dalla configurazione dell'intero sito. Ma anche l'uso di base aiuta a tenere traccia delle modifiche apportate /etc, in modo da poterle replicare sulla nuova macchina.
Gilles 'SO- smetti di essere malvagio' il

1
Come si confronta con l'utilizzo aptitude-create-state-bundle?
intuito il

1
@intuited: non lo sapevo aptitude-create-state-bundle. Grazie, questo è un modo automatico di riprodurre lo stato gestito da APT (meglio del modo manuale, che non riproduceva fonti APT o impostazioni debconf). Si potrebbe desiderare di aggiungere una risposta alle le relative domande pure.
Gilles 'SO- smetti di essere malvagio' il

3

Ecco come ottenere tutto tranne quello che hai configurato manualmente:

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

Modifica questi file come necessario per tutto ciò che dipende dall'arco (ad esempio, immagine linux), ma non credo che ci sarà molto.

Copia questi file sul nuovo sistema quindi esegui:

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

Ti consigliamo inoltre di copiare (preferibilmente con rsync) / home e qualsiasi altra directory di dati nel nuovo sistema.

L'unica cosa rimasta saranno i file di configurazione dei principali pacchetti (ad esempio, apache, bind, cronjobs, et al.).


2
+1 per menzionare debconf, ma -1 per ripristinare le selezioni di dpkg. Questo contrassegna tutti i pacchetti come installati manualmente sulla nuova macchina. Utilizzare aptitude search '~i !~M'per salvare l'elenco dei pacchetti installati manualmente; vedi questa risposta per maggiori informazioni.
Gilles 'SO- smetti di essere malvagio' il

1

Gran parte del voodoo di Windows per quanto riguarda i driver, il registro e la sensibilità alle modifiche della scheda madre è meno grave su Linux se si utilizza un kernel generico con tutti i driver come moduli, che è la solita situazione per Ubuntu. Queste sono le uniche cose in / etc che dipendono dall'hardware che conosco:

  • Se hai installato driver grafici proprietari, penso che questi possano essere un problema.
  • Ho scambiato un disco rigido con Debian installato da un vecchio HP Pavilion (500Mhz cpu, piuttosto vecchio) a una scheda MSI KT4V leggermente più recente. L'unico problema che ho avuto è stato che i nomi delle mie interfacce di rete erano incasinati. Ma questo mi ha colpito più del solito utente perché questa installazione era esplicitamente per l'uso come router.
  • Un'altra cosa che potrebbe essere interessata è lm-sensori, se lo si utilizza. Questo è specifico della scheda madre, ma puoi semplicemente eseguire i sensori di rilevamento per risolverlo.
  • Se cambi il dispositivo Linux si aspetta che sia la sua partizione root, o se uno qualsiasi dei dispositivi / partizioni puntati in / etc / fstab cambia, cioè stai passando da un'unità PATA a una SATA, allora devi aggiornarlo altrimenti Linux lo cambierà avere problemi.

Se la GPU è la stessa, il controller dell'unità è dello stesso tipo e non hai un sacco di script fatti in casa che dipendono dai nomi delle tue interfacce di rete, non prevedo i problemi principali.


L'hardware non sarà molto simile, disco più grande, partizionamento diverso, GPU diversa. Non penso che copiare la gerarchia dei file funzionerà senza un intervento drastico perché sarà una transizione x86-> x64.
user4745,

Le opzioni di avvio (memorizzate in /etc/default/grub, come valore di GRUB_CMDLINE_LINUX_DEFAULT) devono essere aggiunte a questo elenco.
intuito il

0

[aggiungendo a questa eccellente risposta ]

Vedo che menzioni la preoccupazione per i pacchetti installati. Con questo, suppongo che tu intenda che stai per trasferire un disco da una macchina all'altra. Supponendo che le tue due macchine siano l'architettura x86, l'unico problema che mi viene in mente può succedere se la tua installazione è a 64 bit e la tua nuova macchina non lo è. Se le cose sono le altre in giro, non dovrebbero esserci problemi.


Non trasferisco il disco ma potrei copiare l'intera unità se fosse più semplice. Supponendo di aver eseguito un'installazione pulita, volevo reinstallare gli stessi pacchetti, omettendo quelli dipendenti dall'hardware o dal sistema.
user4745

Inoltre, sarà una transizione x86-> x64.
user4745,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.