Beachten Sie, 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ühren Sie folgende Schritte aus:
-
Erstellen Sie einen neuen Hetzner Cloud Server in der Cloud Console.
» Getting Started: Einen Server erstellen
-
Systemkonfigurationsdateien sichern und kopieren
Verbinden Sie sich mit beiden Servern:
- Dem neuen Hetzner Cloud Server
- Dem alten Server, der migriert werden soll
Erstellen Sie auf dem neuen Hetzner Cloud Server einen neuen SSH-Key für die Migration:
ssh-keygen -t ed25519 -f ~/.ssh/migrate-backups
Hinterlegen Sie 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 Sie zunächst die Systemkonfigurationsdateien von Ihrem alten Server als Backup. Beachten Sie, dass Sie 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.bak
Anschließend können Sie alle notwendigen Dateien mittels des neuen SSH-Keys vom neuen Hetzner Cloud Server auf den alten Server kopieren. Beachten Sie, dass Sie je nach Betriebssystem ggfls. andere Dateien kopieren müssen. Hier wird als Beispiel Ubuntu verwendet.
Ersetzen Sie
203.0.113.1
mit 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/grub
Die Dateien sollten nun auf dem alten Server zu finden sein.
-
Starten Sie den neuen Hetzner Cloud Server im Rescue Modus.
» Getting Started: Rescue verwenden
-
Partitionen vom alten Server auf den neuen Hetzner Cloud Server kopieren
Verbinden Sie sich mit dem neuen Hetzner Cloud Server im Rescue Modus.
Bei einer Warnung beim Verbinden, siehe "Kommandozeilen-Warnung".
-
SSH-Key erstellen
Erstellen Sie einen neuen SSH-Key im Rescue-Modus und hinterlegen Sie 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ühren Sie sowohl auf dem alten Server als auch auf dem neuen Server den Befehl
lsblk
aus, um sich die Partitionsnamen anzeigen zu lassen und passen Sie diese in den folgenden Befehlen entsprechend an. In diesen Beispielbefehlen heißen die Partitionen auf dem Hetzner Cloud Serversda1
,sda14
undsda15
.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
Bevor Sie die Partitionen einhängen, stellen Sie sicher, dass diese ein Dateisystem besitzen. Dies können Sie sich beispielsweise mit
lsblk -o NAME,FSTYPE,LABEL
anzeigen lassen.Beispiel:
root@<new-server># lsblk -o NAME,FSTYPE sda ├─sda1 ext4 ├─sda14 └─sda15 vfat
Wenn die Partitionen ein Dateisystem besitzen, können diese eingehängt werden:
Wenn Sie sich beim Boot-Einhängepunkt nicht sicher sind (z.B.
/mnt/boot
oder/mnt/boot/efi
), können Sie beispielsweise den Output voncat /mnt/etc/fstab
prüfen.mount /dev/sda1 /mnt mount /dev/sda15 /mnt/boot/efi
-
-
Bootloader aktualisieren
Bevor Sie den Bootloader aktualisieren, prüfen Sie nocheinmal ob in
/boot/grub/grub.cfg
und/etc/fstab
alle UUIDs korrekt angegeben sind. Hier müssen die UUIDs des neuen Servers angegeben sein.Vergeben Sie Schreibrechte und chrooten Sie ins System:
mount -o bind /dev /mnt/dev mount --rbind /sys /mnt/sys mount -t proc /proc /mnt/proc chroot /mnt /bin/bash
Installieren Sie grub neu und beenden Sie anschließend die chroot-Umgebung:
Ersetzen Sie
/dev/sda
entsprechend.update-grub grub-install /dev/sda exit
-
Hetzner Cloud Server neustarten
reboot
Nach 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 Sie eine Domain nutzen, denken Sie daran nun auch die DNS-Einträge an die neue IP-Adresse anzupassen. Löschen Sie den alten Server erst, nachdem Sie sorgfältig geprüft haben, ob alle Daten erfolgreich migriert wurden und alles wie erwartet funktioniert.