microSD-Karte Partition vergrößern ohne Datenverlust

Anfänger – Tutorial zum vergrößern einer microSD Partition ohne Datenverlust:

Hier wird Ihnen das verlustfreie vergrößern einer microSDXC-Karten Partition Anhand eines Banana PI M3 mit einem 2016-05-16-debian-8-jessie-mate-gpu-bpi-m3-sd-emmc.img Image.

Mit der Konsole verbinden:

Zuerst eine Konsole öffnen, LOKAL oder SSH ist Ihnen überlassen.

Ob Sie sich als User: “root” oder “pi” anmelden können Sie entscheiden. Es ist sinnvoll sich nur bei Bedarf als User: “root” anzumelden da alle Änderungen auch unter dem User: “pi” ausführbar sind weshalb aber immer eine “sudo” vor den Befehlen steht was unter dem User: “root” nicht notwendig ist.

Partition der microSD-Karte vergößern:

Ich zeige Ihnen hier anhand einer 64GB microSDXC-Karte UHS-I U3.

microSDXC-Karte 64GB

Der Übersichtlichkeit halber werde ich Befehle hier Fett-Blau darstellen, die Ausgaben der Konsole Kursiv darstellen und meine Anmerkung Grün darstellen.

sudo df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/root       6.9G  3.5G  3.0G  54% /

Momentane Größe der aktuellen Partition herausfinden, welche 6,9GB ist.

sudo lsblk -l
NAME         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
mmcblk1boot0 179:32   0    4M  1 disk
mmcblk1boot1 179:48   0    4M  1 disk
mmcblk0      179:0    0 59.6G  0 disk
mmcblk0p1    179:1    0  256M  0 part /media/pi/BPI-BOOT
mmcblk0p2    179:2    0    7G  0 part /
mmcblk1      179:16   0  7.3G  0 disk

lsblk listet die vorhanden Geräte auf. Für uns ist nurmmcblk0p2    179:2    0    7G  0 part /wichtig. Dies ist die Partition die wir vergrößern werden.

Dem folgenden Vorgang greife ich jetzt ein wenig vor um diesen zu erklären. Für Leser die das ganze nur ausführen wollen einfach den grünen Text überspringen. Mitsudo fdisk /dev/mmcblk0 starten wir die Partitionierung der microSD-Karte. Mit dem Befehl  “p” starten wir das Partitionieren. Nun notieren wir uns den Startsektor 729088 der Partition 2 “/dev/mmcblk0p2      729088 15269887 14540800    7G 83 Linux . Die vorhandene Partitionstabelle der Partition 2 löschen wir, dies geschieht mit dem Befehl “d” für das Löschen und der Auswahl der gewünschten Partition mit der Eingabe “2“.  Danach mit dem Befehl “n” eine neue Partition erstellen. Wir erstellen eine Primary-Partition mit dem Befehl “p” und wählen Partition 2 aus mit der Eingabe “2“. Jetzt benötigen wir den zuvor notierten Startsektor 729088 den wir jetzt eingeben “729088“. Danach bestätigen wir mit “ENTER” das die Partition mit der maximal möglichen Größe erstellt wird durch den Default Wert. Wir schreiben jetzt zum Abschluss die Partitionstabelle wieder auf die MMC-Card mit dem Befehl “w“.

sudo fdisk /dev/mmcblk0

Welcome to fdisk (util-linux 2.25.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Command (m for help): p
Disk /dev/mmcblk0: 59.6 GiB, 64021856256 bytes, 125042688 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: 0x000a163d
Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1 *    204800   729087   524288  256M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      729088 15269887 14540800    7G 83 Linux
Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 has been deleted.
Command (m for help): n
Partition type
   p   primary (1 primary, 0 extended, 3 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2048-125042687, default 2048): 729088
Last sector, +sectors or +size{K,M,G,T,P} (729088-125042687, default 125042687): [ENTER]
Created a new partition 2 of type ‘Linux’ and of size 59.3 GiB.
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
Danach sollte ein Reboot des Systems mit dem Befehl “sudo reboot” ausgeführt werden, damit die neue Partitionstabelle nach dem Neustart geladen wird.
sudo reboot
Wenn das System neu gestartet ist bitte wieder in die Konsole einloggen und zum Abschluss das den Befehl “sudo resize2fs /dev/mmcblk0p2” für das Vergrößern der Partition ausführen. Danach können wir mit dem Befehl “df -h /” die neue Größe überprüfen.
sudo resize2fs /dev/mmcblk0p2
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 4
The filesystem on /dev/mmcblk0p2 is now 15539200 (4k) blocks long.

df -h /
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        59G  3.5G   53G   7% /
Für Anregungen und Verbesserungsvorschlage könnt ihr mir schreiben: ruediger@sendner.net