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@radio:~ $ 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@thinclient:~ $ 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 Raspbian die neue Partitionstabelle.

Das Filesystem vergrößern

Nun muss nur noch die Größe des Filesystems an die neue Partitionsgröße angepasst werden.

pi@radio ~ $ sudo btrfs filesystem resize max /
Resize '/' of 'max'

Previous page: btrfs Next page: snapper