Worum geht’s?
Nach einer Neuinstallation waren die Größen der Partitionen der Festplatte nicht angepasst. Das System war auf einer Partition mit ca. 6GB Speicher installiert. Neben der Boot- und rootfs-Partition war der Rest des Speichers nicht zugeordnet. Das verhinderte sogar Updates aufgrund von Platzmangel.
Überblick verschaffen
Eine Übersicht über den Speicher erhält man mittels df („disk free“) und der option -h („human readable“):
$ df -h
df: /run/user/1000/doc: Die Operation ist nicht erlaubt
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 1,4G 0 1,4G 0% /dev
tmpfs 300M 1,6M 299M 1% /run
/dev/mmcblk2p2 5,0G 3,0G 1,8G 63% /
tmpfs 1,5G 1,5M 1,5G 1% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
/dev/mmcblk2p1 478M 33M 416M 8% /boot
tmpfs 300M 48K 300M 1% /run/user/1000
Der Speicherbereich, um den es geht, ist /dev/mmcblk2p2. Dieser ist exakt 5GB groß und bereits zu 63% genutzt.
Partitionen anpassen
Mittels dem Tool „Parted“ lassen sich die Partitionen bearbeiten. Dieses installieren wir mittels:
$ sudo apt install parted
Nach der Installation Parted starten und auf das entsprechende Laufwerk anwenden. Beim internen Speicher emmc (Embedded Multi Media Card) handelt es sich um die Bezeichnung „mmcblk2“.
Wurde das System auf eine SD-Karte installiert, ist die Bezeichnung „mmcblk0“.
$ sudo parted /dev/mmcblk2
GNU Parted 3.5
Using /dev/mmcblk2
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
Die ausgegebene Meldung zeigt, ob das richtige Laufwerk genutzt wird.
Mittels „print“ kann man sich nun eine Übersicht verschaffen:
(parted) print
Model: MMC DA4032 (sd/mmc)
Disk /dev/mmcblk2: 31,3GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 8389kB 537MB 528MB primary ext4 boot
2 537MB 6000MB 5463MB primary ext4
Hier kann man nun sehen, dass das Laufwerk zwar über 32GB Speicher verfügt, den Partitionen insgesamt aber nur knapp 6GB zugeordnet sind.
Um nun der Systempartition (2) den gesamten verfügbaren Speicherplatz zuzuordnen, führt man folgenden Befehl aus:
(parted) resizepart 2 100%
Warning: Partition /dev/mmcblk2p2 is being used. Are you sure you want to
continue?
Yes/No?
Nach der Bestätigung durch „yes“ zeigt die erneute Übersicht via „print“ nun, dass die zweite Partition um den gesamten verfügbaren Speicher vergrößert wurde:
(parted) print
Model: MMC DA4032 (sd/mmc)
Disk /dev/mmcblk2: 31,3GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
Number Start End Size Type File system Flags
1 8389kB 537MB 528MB primary ext4 boot
2 537MB 31,3GB 30,7GB primary ext4
Mit STRG+C verlassen wir Parted nun.
Eine erneute Prüfung mit df -h zeigt, dass sich hier noch nichts geändert hat:
$ df -h
df: /run/user/1000/doc: Die Operation ist nicht erlaubt
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 1,4G 0 1,4G 0% /dev
tmpfs 300M 1,6M 299M 1% /run
/dev/mmcblk2p2 5,0G 3,0G 1,8G 63% /
tmpfs 1,5G 1,5M 1,5G 1% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
/dev/mmcblk2p1 478M 33M 416M 8% /boot
tmpfs 300M 48K 300M 1% /run/user/1000
Der Grund dafür ist, dass df den freien Speicher innerhalb des Dateisystems misst. Partitionen spielen hier keine Rolle. Das Dateisystem muss also noch der neuen Größe der Partition angepasst werden:
$ sudo resize /dev/mmcblk2p2
Nun wurde das Dateisystem angepasst und der Speicher ist verfügbar:
$ df -h
df: /run/user/1000/doc: Die Operation ist nicht erlaubt
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
udev 1,4G 0 1,4G 0% /dev
tmpfs 300M 1,6M 299M 1% /run
/dev/mmcblk2p2 29G 3,0G 24G 11% /
tmpfs 1,5G 2,1M 1,5G 1% /dev/shm
tmpfs 5,0M 12K 5,0M 1% /run/lock
/dev/mmcblk2p1 478M 33M 416M 8% /boot
tmpfs 300M 48K 300M 1% /run/user/1000
Der Hinweis „df: /run/user/1000/doc: Die Operation ist nicht erlaubt“ kann hier ignoriert werden.
Man bekommt dann noch folgenden Hinweis:
Information: You may need to update /etc/fstab.
/etc/fstab ist eine einfache Textdatei, was das Anpassen einfach macht. In diesem Fall ist keine Anpassung notwendig, da sich nur die Größe der Partitionen geändert hat, die Partitionstabelle selbst jedoch nicht.
Partitionen mit Full Disk Encryption anpassen
Wird FDE (Full Disk Encryption (Vollständige Festplattenverschlüsselung)) genutzt, ist das Vorgehen leicht abweichend. Dann erfolgt die Größenänderung mittels
$ sudo cryptsetup resize calamares_crypt
und die Größenänderung des ext4 Dateisystems mittels
$ sudo resize2fs /dev/mapper/calamares_crypt
Schließlich passt man die Größe des btrfs-Dateisystems mittels
$ sudo btrfs filesystem resize max /
an. Wie zuvor lässt sich das Ergebnis mittels
$ df -h
prüfen.
Dies habe ich jedoch selbst nicht getestet, da ich, als dieses Problem auftrat, keine Full Disk Encryption genutzt habe.
Alternativ gibt es das Tool „Disks“ mit grafischer Oberfläche im Softwarecenter. Dieses habe ich jedoch nicht getestet.