Raspberry Pi OS - Verkleinern einer Backup Imagedatei
In dieser Anleitung wird beschrieben wie eine Imagedatei, welche nach der Anleitung Raspberry Pi OS - Backup / Restore erstellt wurde, verkleinert werden kann.
Zum Verkleinern der Partition wird gparted verwendet, fasll es noch nicht installiert ist:
apt install gparted
Mit fdisk die Partitionen der Imagedatei auflisten:
fdisk -l rpios.img
Disk rpios.img: 29.72 GiB, 31914983424 bytes, 62333952 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: 0xdacc6ddd
Device Boot Start End Sectors Size Id Type
rpios.img1 16384 1064959 1048576 512M c W95 FAT32 (LBA)
rpios.img2 1064960 62333951 61268992 29.2G 83 Linux
Notieren des Startsektors der 2. Partition (1064960)
Mit losetup ein Loopdevice mit dem Inhalt der 2. Partition der Imagedatei erstellen, als offset wird der Startpunkt (Startsektor*512) der 2. Partition angegeben:
losetup /dev/loop99 rpios.img -o $((1064960*512))
Mit gparted die Partition verkleinern:
gparted /dev/loop99
Verkleinern auf Minimum plus etwas Reserve (~100MB)
Notieren der neuen Größe aus dem Infofenster (z.B. 3788800K)
Das Loopdevice wieder löschen:
losetup -d /dev/loop99
Mit losetup ein Loopdevice aus der Imagedatei erstellen:
losetup /dev/loop99 rpios.img
Mit fdisk die 2. Partition löschen und mit der neuen Größe wieder erstellen:
fdisk /dev/loop99
- Mit d 2 die 2. partition löschen
- Mit n p 2 eine neue 2.Partition anlegen
- Start der 2. Partition 1064960 angeben
- Bei neuer Größe +3788800K angeben
- Mit w in Tabelle schreiben
- Mit q beenden
Mit fdisk die Partitionen auflisten:
fdisk -l /dev/loop99
Notieren des Endsektors der 2. Partition (z.B. 8642559)
Das Loopdevice wieder löschen:
losetup -d /dev/loop99
Verkleinern der Imagedatei mit truncate auf die Größe (Endsektor*512):
truncate -s $(((8642559+1)*512)) rpios.img
Überprüfen des Ergebnisses mit fdisk:
fdisk -l rpios.img