btrfs Filesystem vergrößern
Irgendwann wird eine SD-Karte einfach zu klein. Ich möchte Ihnen einen Weg aufzeichen, wie Sie ein btrfs-Filesystem im Rahmen eines Austausches einer SD-Karte vergrößern.
Backup
Zunächst müssen Sie ein Image-Backup der SD-Karte machen. Danach stecken Sie die SD-Karte mit einem SD-Kartenleser an ein anderes System an. Unter Windows empfehle ich das Programm Win32DiskImager.
Das System läuft ursprünglich auf einer 8 GB großen SD-Karte.
pi@raspberry ~ $ sudo fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7,4 GiB, 7892631552 bytes, 15415296 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: 0x000b5098
Device Boot Start End Sectors Size Id Type
/dev/mmcblk0p1 8192 122879 114688 56M c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 15415295 15292416 7,3G 83 Linux
Wichtig ist der Startsektor der zweiten Partition, in meinem Fall merke ich mir also 122880.
Partitionsgröße anpassen
Das Vergrößern der Partition können Sie auf dem System selber durchführen oder Sie stecken die SD-Karte in einen SD-Kartenleser an einem anderen Raspberry Pi.
Sie löschen die zweite Partition und legen Sie anschließend neu wieder an.
pi@raspberry ~ $ sudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. 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-31116287, default 2048): 122880 Last sector, +sectors or +size{K,M,G,T,P} (122880-31116287, default 31116287): 31116287 Created a new partition 2 of type 'Linux' and of size 14,8 GiB. Partition #2 contains a btrfs signature. Do you want to remove the signature? [Y]es/[N]o: N Command (m for help): p Disk /dev/sda: 14,9 GiB, 15931539456 bytes, 31116288 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: 0x000b5098 Device Boot Start End Sectors Size Id Type /dev/sda1 8192 122879 114688 56M c W95 FAT32 (LBA) /dev/sda2 122880 31116287 30993408 14,8G 83 Linux Command (m for help): w The partition table has been altered. Calling ioctl() to re-read partition table. Re-reading the partition table failed.: Das Gerät oder die Ressource ist belegt 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).
Nach dem Neustart des Systems verwendet Raspberry Pi OS die neue Partitionstabelle.
Das Filesystem vergrößern
Nun muss nur noch die Größe des Filesystems an die neue Partitionsgröße angepasst werden.
pi@raspberry ~ $ sudo btrfs filesystem resize max / Resize '/' of 'max'