Wie migriere ich die Konfiguration zwischen Computern mit unterschiedlicher Hardware?

9

Ich möchte die Konfiguration eines Ubuntu-Desktops auf eine neue Box mit anderer Hardware migrieren. Was ist der einfachste Weg, dies zu tun? / etc / enthält maschinen- und hardwarespezifische Einstellungen, sodass ich sie nicht einfach blind kopieren kann. Ein ähnliches Problem besteht für installierte Pakete.

Bearbeiten: Dies ist ein Wechsel von x86 zu x86-64.

user4745
quelle
@ Gilles Ich denke, die "andere Hardware" verdient eine andere Frage, insbesondere die Umstellung von x86 auf x86-64.
Phunehehe
Für den einfacheren Fall, wenn die Prozessorarchitektur identisch ist, siehe Verschieben der Linux-Installation auf einen neuen Computer . @phunehehe: Die Frage erwähnte ursprünglich nicht den Architekturunterschied.
Gilles 'SO - hör auf böse zu sein'

Antworten:

7

Erstens, wenn Sie weiterhin 32-Bit-Binärdateien ausführen möchten, ändern Sie die Prozessorarchitektur nicht wirklich: Sie führen weiterhin einen x86-Prozessor aus, auch wenn dieser auch andere Funktionen ausführen kann. In diesem Fall empfehle ich, Ihre Installation zu klonen oder einfach die Festplatte zu verschieben, wie unter Verschieben der Linux-Installation auf einen neuen Computer beschrieben .

Wenn Sie jedoch ein 64-Bit-System (in Ubuntu-Begriffen: eine amd64Architektur) haben möchten, müssen Sie es neu installieren, da Sie keine amd64Pakete auf einem i386System installieren können oder umgekehrt. (Dies wird sich ändern, wenn Multiarch kommt).

Viele Anpassungen befinden sich in Ihrem Home-Verzeichnis, und Sie können diese auf den neuen Computer kopieren. Die Systemeinstellungen können aufgrund der Änderung der Prozessorarchitektur nicht so einfach kopiert werden.

Versuchen Sie unter Ubuntu 10.10 und höher OneConf .

OneConf ist ein Mechanismus zum Aufzeichnen von Softwareinformationen in Ubuntu One und zum Synchronisieren mit anderen Computern nach Bedarf. In Maverick wird die Liste der installierten Software gespeichert. Dies kann eventuell um einige Anwendungseinstellungen und den Anwendungsstatus erweitert werden. Andere Tools wie Stipple bieten erweiterte Einstellungen / Steuerelemente.

Eines der wichtigsten Dinge, die Sie bei der neuen Installation reproduzieren möchten, sind die installierten Pakete. Bei APT-basierten Distributionen können Sie mit dem aptitude-create-state-bundleBefehl (Teil des aptitudePakets) ein Archiv erstellen, das die Liste der installierten Pakete und deren Debconf- Konfiguration enthält, sowie aptitude-run-state-bundleauf dem neuen Computer. (Vielen Dank, dass Sie mir davon erzählt haben aptitude-create-state-bundle.) Siehe auch Ubuntu-Liste explizit installierter Pakete und die dort zitierten Super User- und Ubuntu-Fragen, insbesondere die Antwort von Telemachus , zur manuellen Ausführung dieses Teils.

Für Dinge, die Sie geändert haben /etc, müssen Sie sie überprüfen. Viele haben mit den spezifischen Hardware- oder Netzwerkeinstellungen zu tun und sollten nicht kopiert werden. Andere haben mit persönlichen Einstellungen zu tun - aber Sie sollten persönliche Einstellungen nach Möglichkeit auf Benutzerbasis festlegen, damit die Einstellungen in Ihrem Home-Verzeichnis gespeichert werden.

Wenn Sie im Voraus planen, können Sie etckeeper verwenden Installieren Sie etckeeper , um die /etcVersionskontrolle zu aktivieren ( etckeeper-Schnellstart ). Sie müssen nichts über die Versionskontrolle wissen, um etckeeper verwenden zu können. Sie müssen nur mit dem Lernen beginnen, wenn Sie es nutzen möchten, um ausgefallene Dinge zu tun.

Gilles 'SO - hör auf böse zu sein'
quelle
Können Sie den Teil über Probleme mit dem Prozessorbogen erklären? Ich gehe davon aus, dass es kein Problem geben sollte, da er von x86-32 auf x86-64 wechselt.
Tshepang
1
@Tshepang: Solange Sie nicht die Architektur verändern, ist es einfacher , die gesamte Installation zu kopieren ( /home, /etc, /var, /usrund alle) und nur bearbeitet die wenige Dateien in etcdieser Notwendigkeit Bearbeitung. Dies ist keine Option, wenn Sie zu einer anderen Architektur wechseln, da Sie alle Binärpakete neu installieren müssen.
Gilles 'SO - hör auf böse zu sein'
1
@ user4745: Idealerweise würden Sie jede Änderung /etceinzeln mit einer aussagekräftigen Festschreibungsnachricht festschreiben (anstatt sich auf die Autocommit-Hooks zu verlassen) und maschinenspezifische Änderungen in einem anderen Zweig als den Sysadmin-Einstellungen oder der standortweiten Konfiguration festschreiben. Aber auch die grundlegende Verwendung hilft dabei, die vorgenommenen Änderungen im Auge zu behalten /etc, damit Sie sie auf dem neuen Computer replizieren können.
Gilles 'SO - hör auf böse zu sein'
1
Wie ist das im Vergleich zur Verwendung aptitude-create-state-bundle?
Intuition
1
@intuited: Ich wusste nichts davon aptitude-create-state-bundle. Vielen Dank, dies ist eine automatische Methode zum Reproduzieren des APT-verwalteten Status (besser als die manuelle Methode, bei der keine APT-Quellen oder Debconf-Einstellungen reproduziert wurden). Möglicherweise möchten Sie auch eine Antwort auf die zugehörigen Fragen hinzufügen .
Gilles 'SO - hör auf böse zu sein'
3

So erhalten Sie alles außer dem, was Sie manuell konfiguriert haben:

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

Bearbeiten Sie diese Dateien nach Bedarf für alles, was archabhängig ist (z. B. Linux-Image), aber ich denke nicht, dass es viel geben wird.

Kopieren Sie diese Dateien auf das neue System und führen Sie Folgendes aus:

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

Sie möchten auch (vorzugsweise mit rsync) / home und alle anderen Datenverzeichnisse auf das neue System kopieren.

Das einzige, was übrig bleibt, sind Konfigurationsdateien aus Hauptpaketen (z. B. Apache, Bind, Cronjobs usw.).

Bahamat
quelle
2
+1 für die Erwähnung von debconf, aber -1 für die Wiederherstellung der dpkg-Auswahl. Dadurch werden alle Pakete als manuell auf dem neuen Computer installiert markiert. Verwenden Sie aptitude search '~i !~M'diese Option , um die Liste der manuell installierten Pakete zu speichern. Weitere Informationen finden Sie in dieser Antwort .
Gilles 'SO - hör auf böse zu sein'
1

Wirklich viel Windows-Voodoo in Bezug auf Treiber, die Registrierung und die Empfindlichkeit gegenüber Motherboard-Änderungen ist unter Linux weniger schwerwiegend, wenn Sie einen generischen Kernel mit allen Treibern als Module verwenden, was für Ubuntu die übliche Situation ist. Dies sind die einzigen Dinge in / etc, die von der mir bekannten Hardware abhängen:

  • Wenn Sie proprietäre Grafiktreiber installiert haben, kann dies ein Problem sein.
  • Ich habe eine Festplatte mit Debian von einem alten HP Pavilion (500 MHz CPU, ziemlich alt) gegen eine etwas neuere MSI KT4V-Karte ausgetauscht. Die einzigen Probleme, die ich hatte, waren die Namen meiner Netzwerkschnittstellen. Dies betraf mich jedoch mehr als den üblichen Benutzer, da diese Installation explizit als Router verwendet wurde.
  • Eine andere Sache, die betroffen sein könnte, sind lm-Sensoren, wenn Sie es verwenden. Dies ist Motherboard-spezifisch, aber Sie können einfach die Sensorerkennung ausführen, um dies zu beheben.
  • Wenn Sie das Gerät ändern, von dem Linux erwartet, dass es seine Root-Partition ist, oder wenn sich eines der Geräte / Partitionen, auf die in / etc / fstab verwiesen wird, ändert, dh wenn Sie von einem PATA-Laufwerk auf ein SATA-Laufwerk wechseln, müssen Sie dies aktualisieren, andernfalls wird Linux dies aktualisieren habe Probleme.

Wenn die GPU identisch ist, der Laufwerkscontroller vom selben Typ ist und Sie keine Reihe von hausgemachten Skripten haben, die von den Namen Ihrer Netzwerkschnittstellen abhängen, sehe ich keine größeren Probleme.

LawrenceC
quelle
Die Hardware wird nicht sehr ähnlich sein, größere Festplatte, unterschiedliche Partitionierung, unterschiedliche GPU. Ich glaube nicht, dass das Kopieren der Dateihierarchie ohne drastische Eingriffe funktioniert, da es sich um einen x86-> x64-Übergang handelt.
user4745
Zu dieser Liste sollten Startoptionen hinzugefügt werden (gespeichert /etc/default/grubals Wert von GRUB_CMDLINE_LINUX_DEFAULT).
Intuition
0

[ergänzt diese ausgezeichnete Antwort ]

Ich sehe, dass Sie Bedenken hinsichtlich installierter Pakete erwähnen. Damit meinen Sie wohl, dass Sie eine Festplatte von einem Computer auf einen anderen übertragen werden. Angenommen, Ihre beiden Computer haben eine x86-Architektur, kann ich mir nur vorstellen, dass dies passieren kann, wenn Ihre Installation 64-Bit ist und Ihr neuer Computer nicht. Wenn die Dinge anders sind, sollte es kein Problem geben.

Tshepang
quelle
Ich übertrage die Festplatte nicht, aber ich könnte das gesamte Laufwerk kopieren, wenn dies einfacher wäre. Angenommen, ich habe eine Neuinstallation durchgeführt, wollte ich dieselben Pakete erneut installieren und dabei hardware- oder systemabhängige Pakete weglassen.
user4745
Es wird auch ein x86-> x64-Übergang sein.
user4745