Wie kann ich in FreeBSD eine neue Festplatte klonen und erweitern?

Wie kann ich in FreeBSD eine neue Festplatte klonen und erweitern?

Ein Server mit FreeBSD ist seit ca. 2004 in Betrieb. Vor kurzem gab es einen Stromausfall und beim Neustart wird die Fehlermeldung „...Dateisystem voll“ angezeigt.

Es war damals auf einem 40 GB-Laufwerk, ich habe mir ein 1 TB-Laufwerk geschnappt, um es zu ersetzen. Habe das Laufwerk mit dd kopiert und dann Gparted ausprobiert, aber es scheint das Dateisystem nicht zu erkennen.

Frage: Was ist der einfachste Weg, das alte Laufwerk zu klonen und die Größe der Partitionen so zu ändern, dass der gesamte Speicherplatz des neuen Laufwerks genutzt wird?

Antwort1

Sie müssen gpart(nicht gparted) verwenden, um Partitionen zu erstellen und dann mit ein Dateisystem auf der neuen Partition abzulegen newfs. Verwenden Sie dann dump | restoreoder , rsyncum die Daten auf die neue Festplatte zu kopieren. Verwenden Sie abschließend , gpartum sicherzustellen, dass sich Bootcode auf dem Laufwerk befindet. Weitere Einzelheiten finden Sie auf den Manpages dieser Befehle.

Ein Hinweis: Angesichts der Frage vermute ich, dass das Betriebssystem seit 2004 nicht mehr aktualisiert wurde und nicht mehr unterstützt wird und keine Sicherheitsupdates mehr erhält. Sie sind also wirklich besser dran, wenn Sie ein neues System auf der neuen Festplatte installieren und dann relevante Daten manuell mit oder dump | restoreauf die neue Festplatte kopieren. Ich empfehle nicht, das Betriebssystem von 2004 wieder in Betrieb zu nehmen.rsynccp

Antwort2

Ich habe das gerade gemacht, allerdings auf einer gleich großen Platte mit einem etwas kleineren /-Dateisystem. Ich bin ziemlich sicher, dass das Verfahren auch mit einer größeren Platte funktioniert.

# newdisk=ada1
# echo $newdisk
ada1
# gpart create -s GPT $newdisk
# gpart add -t freebsd-boot -i 1 -a 4K -s 512K -l gptboot ${newdisk}
ada1p1 added
# gpart bootcode -p /boot/gptboot -i 1 ${newdisk}
partcode written to ada1p1
# gpart add -t freebsd-ufs -a 4K -s 70G -i 2 -l fbsdroot $newdisk
ada1p2 added
# gpart add -t freebsd-swap -a 4K -i 3 -l fbsdswap $newdisk
ada1p3 added
# gpart show
=>       34  156249933  ada0  GPT  (75G)
         34       1024     1  freebsd-boot  (512K)
       1058  148896768     2  freebsd-ufs  (71G)
  148897826    7352140     3  freebsd-swap  (3.5G)
  156249966          1        - free -  (512B)

=>       40  156301408  ada1  GPT  (75G)
         40       1024     1  freebsd-boot  (512K)
       1064  156300384     2  freebsd-ufs  (75G)

=>       40  156301408  diskid/DISK-5JVD21RN  GPT  (75G)
         40       1024                     1  freebsd-boot  (512K)
       1064  146800640                     2  freebsd-ufs  (70G)
  146801704    9499744                     3  freebsd-swap  (4.5G)
# newfs -U /dev/ada1p2
...
# mkdir /mnt/newsys
Reboot system into single-user mode; it should come up read-only
# mount /dev/ada1p2 /mnt/newsys
# cd /mnt/newsys
dump -0 -f - /dev/ada0p2 | restore -r -Dv -f -

Meine ursprüngliche Systemfestplatte hatte nicht wiederherstellbare fehlerhafte Blöcke; das neue System ist sauber. Ich hatte Glück, da sich die fehlerhaften Blöcke in unbenutzten Dateien in /var/db/freebsd-update/files/ befanden und das gesamte Verzeichnis nicht mehr benötigt wird (Backup von einem Systemupdate vor 6 Monaten).

verwandte Informationen