Beachte, dass mit der unten beschriebenen Variante die gesamte Partition gesichert und auf den neuen Server kopiert wird. Um lediglich Nutzdaten zu migrieren, siehe "Nutzdaten von einem anderen Anbieter zu Hetzner migrieren".
Um von einem Server bei einem anderen Anbieter auf einen Server bei Hetzner zu migrieren, führe folgende Schritte aus:
-
Erstelle einen neuen Hetzner Cloud Server in der Hetzner Console.
» Getting Started: Einen Server erstellen
-
Systemkonfigurationsdateien sichern und kopieren
Verbinden dich mit beiden Servern:
- Dem neuen Hetzner Cloud Server
- Dem alten Server, der migriert werden soll
Erstelle auf dem neuen Hetzner Cloud Server einen neuen SSH-Key für die Migration:
ssh-keygen -t ed25519 -f ~/.ssh/migrate-backupsHinterlegen du den öffentlichen SSH-Key (
~/.ssh/migrate-backups.pub) anschließend auf dem alten Server in der Datei~/.ssh/authorized_keys.Nun, da der neue Hetzner Cloud Server über SSH auf den alten Server zugreifen kann, können alle wichtigen Systemkonfigurationsdateien vom neuen Server auf den alten Server kopiert werden.
Speichern du zunächst die Systemkonfigurationsdateien von deinem alten Server als Backup. Beachte, dass du je nach Betriebssystem ggfls. andere Dateien speichern und kopieren müssen. Hier wird als Beispiel Ubuntu verwendet.
# Auf dem alten Server ausführen mv /etc/fstab /etc/fstab.bak mv /etc/netplan /etc/netplan.bak mv /etc/network/interfaces /etc/network/interfaces.bak mv /etc/default/grub /etc/default/grub.bak mv /boot/grub /boot/grub.bakAnschließend kannst du alle notwendigen Dateien mittels des neuen SSH-Keys vom neuen Hetzner Cloud Server auf den alten Server kopieren. Beachte, dass du je nach Betriebssystem ggfls. andere Dateien kopieren müssen. Hier wird als Beispiel Ubuntu verwendet.
Ersetze
203.0.113.1mit der IP-Adresse des alten Servers.# Auf dem neuen Hetzner Cloud Server ausführen scp -i ~/.ssh/migrate-backups /etc/fstab root@203.0.113.1:/etc/fstab scp -i ~/.ssh/migrate-backups -r /etc/netplan root@203.0.113.1:/etc/netplan scp -i ~/.ssh/migrate-backups /etc/network/interfaces root@203.0.113.1:/etc/network/interfaces scp -i ~/.ssh/migrate-backups /etc/default/grub root@203.0.113.1:/etc/default/grub scp -i ~/.ssh/migrate-backups -r /boot/grub root@203.0.113.1:/boot/grubDie Dateien sollten nun auf dem alten Server zu finden sein.
-
Starten du den neuen Hetzner Cloud Server im Rescue Modus.
» Getting Started: Rescue verwenden
-
Partitionen vom alten Server auf den neuen Hetzner Cloud Server kopieren
Verbinden dich mit dem neuen Hetzner Cloud Server im Rescue Modus.
Bei einer Warnung beim Verbinden, siehe "Kommandozeilen-Warnung".
-
SSH-Key erstellen
Erstelle einen neuen SSH-Key im Rescue-Modus und hinterlegen du den öffentlichen SSH-Key (
~/.ssh/migrate-backups.pub) anschließend auf dem alten Server in der Datei~/.ssh/authorized_keys.ssh-keygen -t ed25519 -f ~/.ssh/migrate-backups
Die nächsten Schritte hängen davon ab, ob es auf dem alten Server jeweils eine Root-Partition und eine Boot-Partition gibt, oder nur eine Partition für beides — Root und Boot.
Beispiele:
- Zwei einzelne Partitionen:
holu@<old_server>:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk ├─sda1 8:1 0 512M 0 part /boot └─sda2 8:2 0 20G 0 part /
- Eine gemeinsame Partition:
holu@<old_server>:~# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk └─sda1 8:1 0 100G 0 part ├─myvg-root 253:0 0 95G 0 lvm / └─myvg-boot 253:1 0 5G 0 lvm /boot
Dieses Getting Started geht davon aus, dass der alte Server unterschiedliche Partitionen verwendet.
-
Partitionen kopieren
Führe sowohl auf dem alten Server als auch auf dem neuen Server den Befehl
lsblkaus, um sich die Partitionsnamen anzeigen zu lassen und passen du diese in den folgenden Befehlen entsprechend an. In diesen Beispielbefehlen heißen die Partitionen auf dem Hetzner Cloud Serversda1,sda14undsda15.ssh -i ~/.ssh/migrate-backups root@<old_server> "dd bs=4M if=/dev/<old-root-partition> status=progress" | dd bs=4M of=/dev/sda1 ssh -i ~/.ssh/migrate-backups root@<old_server> "dd bs=4M if=/dev/<old-efi-partition> status=progress" | dd bs=4M of=/dev/sda14 ssh -i ~/.ssh/migrate-backups root@<old_server> "dd bs=4M if=/dev/<old-boot-partition> status=progress" | dd bs=4M of=/dev/sda15 -
Partitionen einhängen
Stelle vor dem Einhänge sicher, dass die Partitionen ein Dateisystem besitzen. Dies kannst du beispielsweise mit
lsblk -o NAME,FSTYPE,LABELanzeigen lassen.Beispiel:
root@<new-server># lsblk -o NAME,FSTYPE sda ├─sda1 ext4 ├─sda14 └─sda15 vfatWenn die Partitionen ein Dateisystem besitzen, können diese eingehängt werden:
Wenn dich beim Boot-Einhängepunkt nicht sicher sind (z.B.
/mnt/bootoder/mnt/boot/efi), kannst du beispielsweise den Output voncat /mnt/etc/fstabprüfen.mount /dev/sda1 /mnt mount /dev/sda15 /mnt/boot/efi
-
-
Bootloader aktualisieren
Stelle sicher, den Bootloader aktualisieren, prüfen du nocheinmal ob in
/boot/grub/grub.cfgund/etc/fstaballe UUIDs korrekt angegeben sind. Hier müssen die UUIDs des neuen Servers angegeben sein.Verlege Schreibrechte und chroote du ins System:
mount -o bind /dev /mnt/dev mount --rbind /sys /mnt/sys mount -t proc /proc /mnt/proc chroot /mnt /bin/bashInstallieren du grub neu und beenden du anschließend die chroot-Umgebung:
Ersetze
/dev/sdaentsprechend.update-grub grub-install /dev/sda exit
-
Hetzner Cloud Server neustarten
rebootNach dem Neustart, sollte sich der Hetzner Cloud Server nicht mehr im Rescue Modus befinden und alle Daten sollten vorhanden sein.
Der neue Server sollte nun soweit eingerichtet sein und die wichtigsten Daten enthalten. Falls du eine Domain nutzen, denken du daran nun auch die DNS-Einträge an die neue IP-Adresse anzupassen. Löschen du den alten Server erst, nachdem du sorgfältig geprüft haben, ob alle Daten erfolgreich migriert wurden und alles wie erwartet funktioniert.