Funktioniert noch nicht ab Punkt 16. Vielleicht, weil es ein veraltetes Loop-Gerät gab, das ich nicht gelöscht habe.
partclone
Rohkippe in spärliches Bild
Diese Lösung ist gefährlich für Ihre Daten. Versuchen Sie es nur, wenn Sie verstehen, was Sie tun und mit dd
Geräten vertraut sind. Ich kann keine Verantwortung für Datenverlust übernehmen.
Bevor wir anfangen:
Verwenden Sie dieses Verfahren nicht, um eine Festplatte zu spiegeln, die physisch beschädigt ist
partclone
braucht ein gesundes Dateisystem, an dem gearbeitet werden kannDiese Prozedur ist weitaus komplexer als der Vorgang,
dd
sodass Sie sie wahrscheinlich mehrmals wiederholen müssen, bis Sie Erfolg haben. Dadurch wird die kaputte Festplatte stärker beanspruchtfür defekte Festplatten sollten Sie
safecopy
stattdessen verwenden, da diesdd
auf fehlerhaften Sektoren abbricht
Auf Ihrem temporären Laufwerk benötigen Sie bis zu 2 x Datengröße freien Speicherplatz .
Ich werde
sdXX
für jeden Befehl eingeben, der Daten zerstören könnte, wenn Sie vergessen haben, den Befehl anzupassen. Dies gilt nicht für Schleifen. Stellen Sie daher sicher, dass Sie während des folgenden Vorgangs KEINE anderen Schleifengeräte verwenden, um ein versehentliches Überschreiben wertvoller Daten zu vermeiden.Wenn Sie irgendwo und löschen Sie das Bild ausfallen, sollten Sie zuerst etwas aushängen auf sie zeigen, dann die Loop - Geräte entfernen:
kpartx -dv <image>
. Wenn Sie falsche Schleifengeräte verwenden, kann dies zu großen Problemen führen! Ich glaube, mein Problem wird durch ein veraltetes Schleifengerät verursacht ...Am Ende dieser Antwort finden Sie Korrekturen für häufig auftretende Probleme.
Lass uns gehen
Holen Sie sich die Festplattengröße Ihrer Quellplatte
sudo fdisk -l /dev/sda output: Disk /dev/sda: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Lesen Sie das ursprüngliche Partitionslayout in das Bild
sudo dd if=/dev/sda of=sparse.img bs=1M count=1
Füllen Sie das Bild mit "nichts" bis zur obigen Größe. - Das wird nicht jeden Raum auf der Platte nehmen.
sudo dd if=/dev/zero of=sparse.img bs=1 count=0 seek=500107862016
Vergewissern Sie sich, dass keine anderen Loop-Geräte aktiv sind. Wenn der Ausgang nicht leer ist, siehe Abschnitt "Fehlerbehebung"
losetup -l -a
Prüfen Sie, ob das Partitionslayout mit dem Quelllaufwerk übereinstimmt
fdisk -l sparse.img
Erstellen Sie Schleifengeräte für den Zugriff auf die Partitionen im Image
sudo kpartx -av sparse.img output: add map loop0p1 (253:0): 0 976771072 linear 7:2 2048
Lesen Sie die Daten in das Bild ein
partclone
- dies erhöht Raumnutzung durch „Datengröße“ plus „Overhead“.sudo partclone.ntfs -s /dev/sda1 -o /dev/mapper/loop0p1 -b -L sparse.log
Entfernen Sie das Quelllaufwerk, um es zu speichern
verkleinern mit
gparted
- sollte mindestens 10% kleiner als das Ziellaufwerk seinErstellen Sie Links, da
gparted
diekpartx
erstellten Devs nicht verstanden werden .ln -s /dev/mapper/loop0p1 sparse.img1
Verwenden Sie
gparted
diese Option, um die Partition zu verkleinernsudo gparted sparse.img
Alternativ können Sie auch mit verkleinern, müssen
ntfsresize
aber die Partition anschließend auch verkleinern.Mindestgröße erhalten
sudo ntfsresize -i /dev/mapper/loop0p1
Testgröße ändern
sudo ntfsresize -n -s 100G /dev/mapper/loop0p1
echte Größenänderung - dies erhöht die Speicherplatznutzung um bis zu "Datengröße"
sudo ntfsresize -s 100G /dev/mapper/loop0p1
TODO: Partition verkleinern
(nicht erforderlich, da verkleinert, nicht vergrößert?) Löschen und erstellen Sie die Schleifengeräte neu, da sich die Partitionsgröße geändert hat
sudo kpartx -dv sparse.img sudo kpartx -av sparse.img
(optional) TODO schneidet das Bild ab
check using
ntfsresize
- für mich gibt es eine OK-Antwortsudo ntfsresize -i /dev/mapper/loop0p1
Ziellaufwerk einfügen - überprüfen Sie, ob Sie das richtige Laufwerk eingelegt haben
(funktioniert nicht, weil
ntfsresize
das fs als verschmutzt markiert wurde)partclone
das Image auf das neue Laufwerksudo partclone.ntfs -o /dev/sdXX -s /dev/mapper/loop0p1 -b -L restore.log
Stattdessen
dd
das Image auf das neue Laufwerk - entweder geben Sie keine Größe an oder liegen Sie um 10% über der verkleinerten Partitionsgrößesudo dd if=sparse.img of=/dev/sdXX
check using
ntfsresize
- FAILS für mich, dies sollte nicht passieren, da das Bild in Ordnung war und wir eine identische Kopie des Bildes erstellt haben !!!sudo ntfsresize -i /dev/sda1
Schleifengeräte löschen
sudo kpartx -dv sparse.img
Löschen Sie alle Loop-Geräte, die nicht ordnungsgemäß entfernt wurden. Wenn noch einige vorhanden sind, starten Sie das Web neu, oder durchsuchen Sie das Web.
sudo losetup -D
Schließlich sollten Sie versuchen, die Festplatte zu booten und dann Windows auszuführen
chkdsk / f
. Danachgparted
erweitern Sie die Partition auf ihre volle Größe.
Fehlerbehebung:
Wenn auf das Image nicht zugegriffen werden kann
ntfsresize
odergparted
nicht: execchkdsk /f
von Fenstern auf dem Quelldatenträger. NICHT verwendenntfsfix
. Irgendein NTFS-Checker für Linux?Wenn
kpartx
die Loop-Geräte nicht erstellt werden können: Nicht verwendete Geräte prüfenlosetup
und löschen.Wenn Sie veraltete Loop-Geräte entfernen möchten, löschen Sie sie mit
sudo losetup -d
oder durchsuchen Sie das Web.