Notes:: Raspberry Pi SDCard Resize

This is a note in my log, very handy if in future we need to resize the SDCard for use in any Raspberry Pi or other similar device.

In my case i have a Samsung SDHC 8GB class 6, so you need to use this adapted to yours:


Source for the cheat is:

It’s not a very difficult task, and if you have any Ubuntu at your computer you can do this easily.

You only have to determine wher’s the card mounted in your pc, and to do that, after inserting the card in the reader, at a terminal just issue the command “df” which will give you the filesystem mount points. From there you can see where is the card. In my netbook it was mounted at /dev/sdb so i will you that below.


  • Use parted to examine the card
$ sudo parted /dev/sdb
(parted) unit chs
(parted) print
Disk /dev/sdb: 121535,3,31
Sector size (logical/physical): 512B/512B
BIOS cylinder,head,sector geometry: 121536,4,32.  Each cylinder is 65.5kB.
Partition Table: msdos

Number  Start      End         Type     File system     Flags
 1      16,0,0     1215,3,31   primary  fat32           lba
 2      1232,0,0   26671,3,31  primary  ext4
 3      26688,0,0  29743,3,31  primary  linux-swap(v1)
This shows how my SD card was formatted after writing the image. Notice that nothing uses the card from end of ‘cylinder’ 29743 to the card’s maximum at 121535.
Partition 1 is the boot partition: we’ll leave that alone. Partition 2 is the root partition, which we’ll grow to fill most of the card. Partition 3 is the swap space, which needs to be moved to the end of the card. Note that on some other versions of linux (and some other versions of hardware) use /sde not /sdb.
  • Move the swap partition (you’ll have to adjust the numbers so that the end of partition 3 is at the end cylinder/head/sector of the card)
  • to calculate the number to use in the following command do:- (Maximum - (Partition 3 End - Partition 3 Start) ) - 1 = Partition 3 New Start so in this example (121535 - ( 29743 - 26688)) -1 = 118479
(parted) move 3 118479,0,0
  • Now grow the root partition. This involves removing the partition, re-creating it, then using resize2fs to grow the filesystem to fill the partition. It won’t destroy any data.
(parted) rm 2
(parted) mkpart primary 1232,0,0 118478,3,31
(parted) quit
Note that the starting address of the new partition is identical to its original value, and the ending address is immediately before the start of the swap partition.
  • Now clean and resize the root partition. As before, some users may need to use /sde2 instead.
$ sudo e2fsck -f /dev/sdb2
(allow it to add lost-and-found)
$ sudo resize2fs /dev/sdb2
  • Then put the card in the RPi and boot. You end up with a 7Gb partition to use.
[email protected]:~$ df -h
Filesystem            Size  Used Avail Use% Mounted on
tmpfs                  94M  4.0K   94M   1% /lib/init/rw
udev                   10M  168K  9.9M   2% /dev
tmpfs                  94M     0   94M   0% /dev/shm
rootfs                7.1G  1.3G  5.4G  20% /
/dev/mmcblk0p1         75M   28M   48M  37% /boot

One Comment

  1. Other variant from this manual, and in some way more simple:

Leave a Comment

Your email address will not be published. Required fields are marked *