Ich mache regelmäßig vollständige Backups meiner Festplatte (mit allen Partitionen) mit dd
dem Tool as backup.img
file. Ich habe mehrere solcher Dateien.
Meine alte Festplatte ist kaputt. Wie kann ich backup.img
Dateien zum Schreiben auf eine neue Festplatte verwenden, sodass alle Partitionen und Dateien wie im Image intakt bleiben?
Ist es auch möglich, einen Teil der Daten (einige Dateien/Ordner) aus einer solchen Datei zu extrahieren backup.img
?
Antwort1
Wiederherstellen
Sie können das Image mit etwa folgendem Befehl auf Ihrer Ersatzfestplatte wiederherstellen:
# dd if=backup.img of=/dev/sd?
Sie erhalten einen Klon Ihrer Originalfestplatte mit allen Partitionen und Daten.
Der Nachteil hierbei besteht darin, dass die Größe der Partitionen nicht geändert wird dd
und Ihre Ersatzfestplatte daher die gleiche oder eine größere Kapazität als das Original haben muss.
Wenn Sie damit zufrieden sind, können Sie ein bootfähiges Image verwenden, das Folgendes enthält gparted
oder Ähnliches (z. B. Parted Magic) und die Größe der Partitionen so anpassen, dass sie auf die neue Festplatte passen.
Montage
Zum Mounten des Images müssen Sie verwenden losetup
.
Ältere Methode
Die ältere Methode hierfür besteht darin, den Offset zum Beginn der Partition wie folgt zu berechnen:
Führen Sie es aus fdisk
und suchen Sie nach der Sektorgröße:
# fdisk -l backup.img
Disk backup.img: 8 GiB, 8589934592 bytes, 16777216 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x91999386
Device Boot Start End Sectors Size Id Type
backup.img1 * 2048 1026047 1024000 500M 83 Linux
backup.img2 1026048 16777215 15751168 7.5G 8e Linux LVM
Um Ihren Offset zu berechnen, lesen Sie dieStartSpalte für die Partition, an der Sie interessiert sind, und multiplizieren Sie diesen Wert mit Ihrer Sektorgröße. Um beispielsweise den backup.img1
obigen Wert zu lesen, multiplizieren Sie 2048 x 512 = 1048576.
Verwenden Sie diesen Wert als Offset für losetup
Folgendes:
# losetup -o 1048576 /dev/loop0 backup.img
Mounten Sie dann das Loopback-Gerät:
# mount -t ext4 /dev/loop0 /mnt
Spätere Methode
Neuere Versionen von losetup
scannen /dev/loop
alle Partitionen im Image und erstellen automatisch Einträge für diese, und zwar wie folgt:
# losetup -Pf backup.img
# ls /dev/loop0*
/dev/loop0 /dev/loop0p1 /dev/loop0p2
# mount -t ext4 /dev/loop0p1 /mnt
LVM-Partitionen
In meinem obigen Beispiel wird die zweite Partition als LVM angezeigt. Um Dateien daraus zu extrahieren, lassen Sie LVM einfach seine Magie auf dem Loopback-Gerät wirken. Erster Scan:
# pvs
PV VG Fmt Attr PSize PFree
/dev/loop0p2 fedora-server lvm2 a-- 7.51g 40.00m
Aktivieren Sie dann die VG (beachten Sie den VG-Namen aus dem obigen Befehl, Ihrer wird wahrscheinlich anders sein als meiner):
# vgchange -a y fedora-server
2 logical volume(s) in volume group "fedora-server" now active
Überprüfen Sie, welche Partitionen Sie haben:
# ls /dev/fedora-server/
root swap
und montieren Sie einen davon:
# mount -t ext4 /dev/fedora-server/root /mnt
Ausfahrt
Nachdem Sie die Dateien extrahiert haben:
# umount /mnt
# losetup -d /dev/loop0
oder für LVM-Mounts:
# umount /mnt
# vgchange -a n fedora-server
0 logical volume(s) in volume group "fedora-server" now active
# losetup -d /dev/loop0