Ändern Sie die Größe eines Partitionsimages mit GParted?


15

Ich habe die Größe von Partitionen in GParted bereits geändert. Jetzt möchte ich eine große, aber größtenteils leere Partition auf ein kleineres Laufwerk verschieben. Anstatt die Größe zu ändern, würde ich es vorziehen, eine Kopie auf einem dritten Laufwerk zu erstellen (Laufwerksabbild mit dd), die Größe der Kopie zu ändern und die Kopie dann auf das neue Laufwerk zu kopieren. Aber ich glaube nicht, dass Gparted mit Laufwerksabbildern arbeitet? Wie würde ich das machen? Kann ich die von GParted verwendeten Tools direkt verwenden?

Oh! Oder kann ich ein Loopback-Element verwenden, damit die Image-Datei wie ein physisches Laufwerk aussieht, auf dem gparted arbeiten kann?


Antworten:


3

Mit GParted ist dies nicht möglich, aber Sie können den ntfsresizeBefehl direkt auf einem Disk-Image verwenden.

Klonen Sie zunächst das Disk-Image. Sie können den Namen des Festplattengeräts mit blkidoder gParted ermitteln und dann ausführen:

sudo dd if=<disk device> of=<image file>

Beispielsweise:

$ sudo dd if=/dev/sda2 of=disk.img
1000000+0 records in
1000000+0 records out
512000000 bytes (512 MB) copied, 9.33361 s, 54.9 MB/s

Überprüfen Sie anschließend, ob Sie die Größe auf die gewünschte Größe ändern können, indem Sie Folgendes ausführen:

ntfsresize -i <image file>

Zum Beispiel:

$ ntfsresize -i disk.img
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
You might resize at 3035136 bytes or 4 MB (freeing 508 MB).
Please make a test run using both the -n and -s options before real resizing!

In diesem Beispiel kann ich die Größe bis auf 4 MB ändern, da ich zu Illustrationszwecken nur ein leeres Disk-Image erstellt habe!

Jetzt können Sie den Testlauf durchführen, wenn Sie möchten, obwohl dies nicht unbedingt erforderlich ist, da Sie an einem Image arbeiten. Sie können die Größe in Kilobyte, Megabyte oder Gigabyte geben ein durch Anhängen k, Moder Gjeweils:

ntfsresize -cnvs <size> <image file>

Zum Beispiel:

$ ntfsresize -cnvs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)

Keine Ausgabe ist eine gute Ausgabe! Jetzt mach es wirklich:

ntfsresize -vs <size> <image file>

Letztes Beispiel:

$ ntfsresize -vs 256M disk.img 
ntfsresize v2011.4.12 (libntfs-3g)
Device name        : disk.img
NTFS volume version: 3.1
Cluster size       : 4096 bytes
Current volume size: 511996416 bytes (512 MB)
Current device size: 512000000 bytes (512 MB)
New volume size    : 255996416 bytes (256 MB)
Checking for bad sectors ...
Checking filesystem consistency ...
100.00 percent completed
Accounting clusters ...
Space in use       : 4 MB (0.6%)
Collecting resizing constraints ...
Needed relocations : 625 (3 MB)
WARNING: Every sanity check passed and only the dangerous operations left.
Make sure that important data has been backed up! Power outage or computer
crash may result major data loss!
Are you sure you want to proceed (y/[n])? y
Schedule chkdsk for NTFS consistency check at Windows boot time ...
Resetting $LogFile ... (this might take a while)
Relocating needed data ...
Relocate record       1:0x80:00000001:0x00000000:0x0000f423 --> 0x00007a11
Relocate record       2:0x80:00000624:0x00000000:0x0000f424 --> 0x00007a12
100.00 percent completed
Updating $BadClust file ...
Updating $Bitmap file ...
Updating Boot record ...
Syncing device ...
Successfully resized NTFS on device 'disk.img'.
You can go on to shrink the device for example with Linux fdisk.
IMPORTANT: When recreating the partition, make sure that you
  1)  create it at the same disk sector (use sector as the unit!)
  2)  create it with the same partition type (usually 7, HPFS/NTFS)
  3)  do not make it smaller than the new NTFS filesystem size
  4)  set the bootable flag for the partition if it existed before
Otherwise you won't be able to access NTFS or can't boot from the disk!
If you make a mistake and don't have a partition table backup then you
can recover the partition table by TestDisk or Parted's rescue mode.

Das ist es! Jetzt können Sie das Disk-Image auf das neue Gerät kopieren.


Hmmm ... die logische Partition befindet sich in einer erweiterten Partition. Sollte ich beim Erstellen der Kopie die logische Partition selbst erstellen?
Endolith

Ich habe letzte Nacht resize2fs für eine ext3-Bilddatei verwendet, und die Datei selbst wurde danach verkleinert! :) Ich dachte, das wäre ein separater Schritt, da das Dateisystem nicht mit der Partition identisch ist.
Endolith

@endolith: Ja, dddie logische Partition. Wenn Sie die erweiterte Partition erstellt hätten, wären alle logischen Partitionen darin enthalten!
Patches

@Patches: Nun, es gibt nur eine logische Partition derselben Größe. :)
Endolith

1
@endolith: Trotzdem denke ich, dass dddie erweiterte Partition zusätzliche Informationen bringt, die verwirren e2fsprogsund ntfsprogs. Sie wissen nichts über Partitionen, wie Sie zuvor entdeckt haben.
Patches

14

Ich bin mir nicht sicher, wie die Situation vor 5 Jahren war, aber heute ist es Kuchen.

$ sudo udisksctl loop-setup -f disk.img
Mapped file disk.img as /dev/loop0.
$ sudo gparted /dev/loop0

Jetzt können Sie den Kuchen essen.


0

Könnten Sie die Größe mit GParted ändern und dann Clonezilla verwenden, um die Partition auf die neue Festplatte zu verschieben?


2
Ich möchte die Größe nicht ändern. Ich möchte das Original nicht vermasseln, wenn ich nicht muss.
Endolith

0

Ich benutze GParted seit vielen, vielen Jahren und habe nie ein bisschen verloren. Ich mag auch Easus kostenlose Home Edition für Windows.

Wie groß / klein ist Ihre Partition? Können Sie die Daten auf USB / DVD / ein kostenloses Online-Speichersystem kopieren, um sie nicht zu verlieren - und dann die Größe ändern? Die beiden oben genannten Werkzeuge werden nicht Ihre Daten verlieren , wenn Sie sie zum Abschluss laufen lassen.

Sie sagen I've resized partitions in GParted before- warum also jetzt die Sorge? Und DD wird ein bisschen für Bit kopieren ... also müssen Sie trotzdem die Größe ändern (zuerst defragmentieren).


Ich konvertiere eine Partition von Laufwerk A (die ich schreibgeschützt haben möchte) in eine Image-Datei auf Laufwerk C, ändere die Größe und verschiebe sie dann auf eine Partition auf Laufwerk B, die kleiner als A ist (daher muss ich die Größe ändern zuerst).
Endolith
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.