Comment migrer la configuration entre des ordinateurs avec un matériel différent?

9

Je souhaite migrer la configuration d'un bureau Ubuntu vers une nouvelle boîte avec un matériel différent. Quelle est la manière la plus simple de faire ça? / etc / contient des paramètres spécifiques à la machine et au matériel, je ne peux donc pas le copier à l'aveugle. Un problème similaire existe pour les packages installés.

edit: Il s'agit d'un passage de x86 à x86-64.

user4745
la source
@Gilles Je pense que le "matériel différent" mérite une autre question, en particulier le passage de x86 à x86-64.
phunehehe
Pour le cas le plus simple lorsque l'architecture du processeur est la même, voir Déplacement de l'installation linux vers un nouvel ordinateur . @phunehehe: La question à l'origine ne mentionnait pas la différence d'architecture.
Gilles 'SO- arrête d'être méchant'

Réponses:

7

Premièrement, si vous continuez à exécuter des binaires 32 bits, vous ne changez pas réellement l'architecture du processeur: vous exécuterez toujours un processeur x86, même s'il est également capable de faire d'autres choses. Dans ce cas, je vous recommande de cloner votre installation ou simplement de déplacer le disque dur, comme décrit dans Déplacer l'installation linux vers un nouvel ordinateur .

En revanche, si vous souhaitez avoir un système 64 bits (en termes Ubuntu: une amd64architecture), vous devez réinstaller, car vous ne pouvez pas installer de amd64packages sur un i386système ou vice versa. (Cela changera lorsque Multiarch arrivera).

De nombreuses personnalisations se trouvent dans votre répertoire personnel et vous pouvez les copier sur la nouvelle machine. Les paramètres système ne peuvent pas être copiés si facilement en raison de la modification de l'architecture du processeur.

Sur Ubuntu 10.10 et versions ultérieures, essayez OneConf .

OneConf est un mécanisme d'enregistrement des informations logicielles dans Ubuntu One et de synchronisation avec d'autres ordinateurs si nécessaire. Dans Maverick, la liste des logiciels installés est stockée. Cela peut éventuellement s'étendre pour inclure certains paramètres et l'état de l'application. D'autres outils comme Stipple peuvent fournir des paramètres / contrôles plus avancés.

L'une des principales choses que vous voudrez reproduire sur la nouvelle installation est l'ensemble des packages installés. Sur les distributions basées sur APT, vous pouvez utiliser la aptitude-create-state-bundlecommande (partie du aptitudepackage) pour créer une archive contenant la liste des packages installés et leur configuration debconf , et aptitude-run-state-bundlesur la nouvelle machine. (Merci à l' intuition de m'en avoir parlé aptitude-create-state-bundle.) Voir aussi la liste des paquets installés explicitement par Ubuntu et les questions Super User et Ask Ubuntu qui y sont citées, en particulier la réponse de Télémaque , sur la façon de faire cette partie manuellement.

Pour les choses que vous avez modifiées /etc, vous devrez les revoir. Beaucoup ont à voir avec le matériel ou les paramètres réseau spécifiques et ne doivent pas être copiés. D'autres ont à voir avec les préférences personnelles - mais vous devez définir les préférences personnelles par utilisateur chaque fois que possible, afin que les paramètres soient enregistrés dans votre répertoire personnel.

Si vous planifiez à l'avance, vous pouvez utiliser etckeeper Installer etckeeper pour mettre /etcsous contrôle de version ( etckeeper quickstart ). Vous n'avez besoin de rien savoir sur le contrôle de version pour utiliser etckeeper, vous n'avez besoin de commencer à apprendre que si vous voulez en profiter pour faire des choses fantaisistes.

Gilles 'SO- arrête d'être méchant'
la source
Pouvez-vous expliquer la partie sur les problèmes avec arch processeur. Je m'attends à ce qu'il ne devrait pas y avoir de problème car il passe de x86-32 à x86-64.
tshepang
1
@Tshepang: Tant que vous ne changez pas l'architecture, il est plus simple de copier l'ensemble de l' installation ( /home, /etc, /var, /usret tout) et juste modifier quelques fichiers dans etccette édition de besoin. Ce n'est pas une option si vous passez à une architecture différente, car vous devez réinstaller tous les packages binaires.
Gilles 'SO- arrête d'être méchant'
1
@ user4745: Idéalement, vous devez valider chaque modification /etcindividuellement avec un message de validation significatif (au lieu de compter sur les hooks de validation automatique), et valider les modifications spécifiques à l'ordinateur sur une branche différente des préférences sysadmin ou de la configuration à l'échelle du site. Mais même une utilisation de base permet de garder une trace des modifications que vous avez apportées /etc, afin que vous puissiez les répliquer sur la nouvelle machine.
Gilles 'SO- arrête d'être méchant'
1
Comment cela se compare-t-il à l'utilisation aptitude-create-state-bundle?
intuition
1
@intuited: je ne savais pas aptitude-create-state-bundle. Merci, c'est une façon automatique de reproduire l'état géré par APT (mieux que la manière manuelle, qui ne reproduisait pas les sources APT ou les paramètres debconf). Vous pouvez ajouter une réponse à la connexes des questions aussi bien.
Gilles 'SO- arrête d'être méchant'
3

Voici comment obtenir tout sauf ce que vous avez configuré manuellement:

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

Modifiez ces fichiers si nécessaire pour tout ce qui dépend de l'archive (par exemple, linux-image), mais je ne pense pas qu'il y en aura beaucoup.

Copiez ces fichiers sur le nouveau système puis exécutez:

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

Vous voudrez également copier (de préférence avec rsync) / home et tout autre répertoire de données vers le nouveau système.

Il ne restera plus que les fichiers de configuration des principaux packages (par exemple, apache, bind, cronjobs, et al.).

bahamat
la source
2
+1 pour mentionner debconf, mais -1 pour restaurer les sélections dpkg. Cela marque tous les packages comme installés manuellement sur la nouvelle machine. Utilisez aptitude search '~i !~M'pour enregistrer la liste des packages installés manuellement; voir cette réponse pour plus d'informations.
Gilles 'SO- arrête d'être méchant'
1

Vraiment, une grande partie du vaudou Windows concernant les pilotes, le registre et la sensibilité aux modifications de la carte mère est moins sévère sous Linux si vous utilisez un noyau générique avec tous les pilotes comme modules, ce qui est la situation habituelle pour Ubuntu. Ce sont les seules choses dans / etc qui dépendent du matériel que je connais:

  • Si vous avez installé des pilotes graphiques propriétaires, je pense que cela peut être un problème.
  • J'ai échangé un disque dur avec Debian installé à partir d'un ancien HP Pavilion (500Mhz cpu, assez ancien) vers une carte MSI KT4V légèrement plus récente. Le seul problème que j'ai eu, c'est que mes noms d'interface réseau ont été foirés. Mais cela m'a plus affecté que l'utilisateur habituel car cette installation était explicitement destinée à être utilisée comme routeur.
  • Une autre chose qui pourrait être affectée est les capteurs lm, si vous l'utilisez. Ceci est spécifique à la carte mère, mais vous pouvez simplement exécuter sensor-detect pour résoudre ce problème.
  • Si vous changez le périphérique que Linux s'attend à ce que sa partition racine soit, ou si l'un des périphériques / partitions pointés dans / etc / fstab change, c'est-à-dire que vous passez d'un lecteur PATA à un SATA, alors vous devez le mettre à jour sinon Linux le fera avoir des problèmes.

Si le GPU est le même, le contrôleur de lecteur est du même type et vous n'avez pas un tas de scripts maison dépendant des noms de vos interfaces réseau, je ne prévois pas de problèmes majeurs.

LawrenceC
la source
Le matériel ne sera pas très similaire, disque plus grand, partitionnement différent, GPU différent. Je ne pense pas que la copie de la hiérarchie des fichiers fonctionnera sans intervention drastique car ce sera une transition x86-> x64.
user4745
Les options de démarrage (stockées dans /etc/default/grub, en tant que valeur de GRUB_CMDLINE_LINUX_DEFAULT) doivent être ajoutées à cette liste.
intuition
0

[ajoutant à cette excellente réponse ]

Je vois que vous mentionnez le souci des packages installés. Par cela, je suppose que vous voulez dire que vous allez transférer un disque d'une machine à une autre. En supposant que vos deux machines sont une architecture x86, le seul problème auquel je peux penser est que votre installation est en 64 bits et que votre nouvelle machine ne l'est pas. Si les choses sont inversées, il ne devrait pas y avoir de problème.

tshepang
la source
Je ne transfère pas le disque mais je pourrais copier le lecteur entier si cela était plus facile. En supposant que j'ai fait une installation propre, je voulais réinstaller les mêmes packages, en omettant ceux qui dépendent du matériel ou du système.
user4745
De plus, ce sera une transition x86-> x64.
user4745