I have a Amazon Web Services EC2 Debian 8.0 instance with an Elastic Block Storage (EBS) volume of 35GB. fdisk correctly shows the size but my root partition is still at 7.8G, although I tried to execute resize2fs.
root@ip-10-0-3-164:/home/admin# fdisk -l
Disk /dev/xvda: 35 GiB, 37580963840 bytes, 73400320 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: 0x7d936f86
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 4096 16773119 16769024 8G 83 Linux
root@ip-10-0-3-164:/home/admin# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 2.1G 5.3G 29% /
udev 10M 0 10M 0% /dev
tmpfs 200M 4.3M 196M 3% /run
tmpfs 500M 0 500M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 500M 0 500M 0% /sys/fs/cgroup
root@ip-10-0-3-164:/home/admin# resize2fs /dev/xvda1
resize2fs 1.42.12 (29-Aug-2014)
The filesystem is already 2096128 (4k) blocks long. Nothing to do!
root@ip-10-0-3-164:/home/admin# fdisk /dev/xvda
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/xvda: 35 GiB, 37580963840 bytes, 73400320 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: 0x7d936f86
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 4096 16773119 16769024 8G 83 Linux
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-73400319, default 2048): 2048
Last sector, +sectors or +size{K,M,G,T,P} (2048-4095, default 4095):
Created a new partition 2 of type 'Linux' and of size 1 MiB.
Command (m for help): p
Disk /dev/xvda: 35 GiB, 37580963840 bytes, 73400320 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: 0x7d936f86
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 4096 16773119 16769024 8G 83 Linux
/dev/xvda2 2048 4095 2048 1M 83 Linux
Partition table entries are not in disk order.
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'.
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).
root@ip-10-0-3-164:/home/admin# fdisk /dev/xvda
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/xvda: 35 GiB, 37580963840 bytes, 73400320 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: 0x7d936f86
Device Boot Start End Sectors Size Id Type
/dev/xvda1 * 4096 16773119 16769024 8G 83 Linux
/dev/xvda2 2048 4095 2048 1M 82 Linux swap / Solaris
Partition table entries are not in disk order.
As you see, the resize2fs does not have effect. I also cannot create a swap partition with more space than 1M.
This problem occurs on all my instances. Although they all have 30-35GB EBS volumes, I cannot resize them and they stay at 8GB. When I attach just an additional volume besides the root mounted one, it works fine.
Can you help me?
Forget the other answers. I just spent 3 days figuring out the root cause and a simple workaround:
https://serverfault.com/questions/748063/debian-8-ami-only-using-8gb-partition
A little more complicated, and assuming that you have just a few easily-identified chunks of "too-big" directory trees (such as
/opt
and/var/log
) would be to create filesystem(s) on the unallocated 28GB, use rsync to copy your working files to the new filesystems, and wipe the obsolete files (to free up diskspace), mounting the new filesystems in their place (by editing/etc/fstab
, of course).If you do this for
/var/log
, you have to do a reboot immediately after migrating the files, since the system still references the original files. Of course, you might want to practice the procedure on a test-machine.It would be a lot simpler if Amazon's root volumes used LVM.
unattach the volume for xvda. Attach it to another instance but don't mount it on the volume. Then use fdisk to delete the first partition and re add it with all of the available space. Set the bootable flag and ensure that the filesystem type is still 83. write the fdisk partition table and exit fdisk. Run e2fsck and resize2fs on the new first partition
Unattach the disk from the other instance and reattach it to the original instance.
When the original instance restarts with the modified volume you should see the 35GB
The reason to do it this way is that you can't modify the partition table of a running, attached root disk
All this stuff is detailed in the aws documentation
Resize partition with resize2fs on Debian 8 Jessie on AWS EC2 + EBS is not working.
My solution was to manually creating a separate volume for this.
I will add here a manual step by step how to do.
First make a backup of your instance, creating an Image AMI or Snapshot Volume.
Creating Image.
Or creating Snapshot.
Now let's create a Debian 8 instance, only to repartition the volume you need.
and finish all the steps of creating the instance until it start.
Access the instance with ssh.
Login as root.
Now let's set the source.list be able to install the 'parted'.
and update the file with.
run the apt-get.
Now let's install the parted.
Now stop the instance created.
Now let's create a volume from the snapshot backup that you created.
NOTE: Inform the size of the total of the partition you want, here.
Add the volume in /dev/sdf
Now start the instance.
Access the instance with ssh.
Login as root.
Check partitions
You will see output like this.
The xvdf with 40G and xvdf1 with 8G.
Now let's run the parted on volume /dev/xvdf.
Within the parted. Set the unit.
Print partition information to see.
You will see output like this.
Remove the partition. (This will not delete the data, data is retrieved later).
Now we mount the new partition from begin 1s, to the end 100% of in the volume.
Print partition information to see.
You will see output like this.
Now set the partition as bootable.
And finalize the parted.
Ignore information print.
Check partitions
You will see output like this.
See it now that xvdf and xvdf1 has the size 40G. \o/
Now we just need to make e2fsck to check and index the data.
NOTE: e2fsck can take a long time to do the check. You should awaits.
You will see output like this.
Everything Ok with the partition.
Now make a snapshot backup of the partition, as we did in the beginning tutorial.
Create a new volume with the snapshot created, and add the original instance.
Remember to stop the instance first.
Remove the old volume instance and add the new volume instance.
Attach to (/dev/****) original, im my case is /dev/sda.
Start the instance and all ready! Resized partition. \o/