Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EC2 Storage attached at sda is /dev/xvde1 cannot resize

I have cPanel & WHm installed on an EC2 instance.

The EC2 EBS volume is 100GB CentOS 6 x86_64 (2014_09_29) EBS pv-1-adc4348e-1dc3-41df-b833-e86ba57a33d6-ami-809020e8.2 (ami-bc8131d4)

This is what df -h shows:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde1      7.8G  6.6G  834M  89% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
/usr/tmpDSK     485M   11M  449M   3% /tmp

The EBS is mounted at /dev/sda

I am trying to increase the size of the xvde1 to almost fill the 100GB

When I run resize2fs /dev/xvde1 i get this:

root@vs1 [~]# resize2fs /dev/xvde1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 2096896 blocks long.  Nothing to do!

I have tried the solution stated here: EC2 Can't resize volume after increasing size

But when i reboot the instance it gets stuck on 1/2 Status Checks

I saw something that stated to start the partition on 16 and also to use the same start as it is in the original configuration. This did not work.

Here is some more information and other things that i have tried:

root@vs1 [~]# resize2fs /dev/xvde1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 2096896 blocks long.  Nothing to do!

root@vs1 [~]# resize2fs /dev/xvde
resize2fs 1.41.12 (17-May-2010)
resize2fs: Device or resource busy while trying to open /dev/xvde
Couldn't find valid filesystem superblock.
root@vs1 [~]# resize2fs /dev/xvde1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 2096896 blocks long.  Nothing to do!

root@vs1 [~]# resize2fs /dev/xvde1 +25G
resize2fs 1.41.12 (17-May-2010)
The containing partition (or device) is only 2096896 (4k) blocks.
You requested a new size of 6553600 blocks.

root@vs1 [~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde1      7.8G  6.6G  834M  89% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
/usr/tmpDSK     485M   11M  449M   3% /tmp
root@vs1 [~]# resize2fs /dev/xvde1 +15g
resize2fs 1.41.12 (17-May-2010)
The containing partition (or device) is only 2096896 (4k) blocks.
You requested a new size of 3932160 blocks.

root@vs1 [~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde1      7.8G  6.6G  834M  89% /
tmpfs           3.7G     0  3.7G   0% /dev/shm
/usr/tmpDSK     485M   11M  449M   3% /tmp

root@vs1 [~]# resize2fs /dev/xvde1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 2096896 blocks long.  Nothing to do!

root@vs1 [~]# fdisk -l

Disk /dev/xvde: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00098461

    Device Boot      Start         End      Blocks   Id  System
/dev/xvde1   *           1        1045     8387584   83  Linux
root@vs1 [~]# Write failed: Broken pipe

This is the last step in a complete build that has taken over 18 hours.

I may just be delirious. Any and all help will be greatly appreciated!

EDIT:

The system log on the server shows this, not sure if it is any help:

Thread "main": pointer: 0x21e0003760, stack: 0x3740000
"main" "root=/dev/sda" "ro" "4" 
vbd 2048 is hd0
******************* BLKFRONT for device/vbd/2048 **********


backend at /local/domain/0/backend/vbd/60/2048
209715200 sectors of 512 bytes
**************************
[H[J

    GNU GRUB  version 0.97  (7864320K lower / 0K upper memory)



[m[4;2H+-------------------------------------------------------------------------+[5;2H|[5;76H|[6;2H|[6;76H|[7;2H|[7;76H|[8;2H|[8;76H|[9;2H|[9;76H|[10;2H|[10;76H|[11;2H|[11;76H|[12;2H|[12;76H|[13;2H|[13;76H|[14;2H|[14;76H|[15;2H|[15;76H|[16;2H|[16;76H|[17;2H+-------------------------------------------------------------------------+[m

    Use the ^ and v keys to select which entry is highlighted.

    Press enter to boot the selected OS, 'e' to edit the

    commands before booting, or 'c' for a command-line.[5;78H [m[7m[5;3H CentOS (2.6.32-504.el6.x86_64)                                          [5;75H[m[m[6;3H CentOS (2.6.32-431.29.2.el6.x86_64)                                     [6;75H[m[m[7;3H                                                                         [7;75H[m[m[8;3H                                                                         [8;75H[m[m[9;3H                                                                         [9;75H[m[m[10;3H                                                                         [10;75H[m[m[11;3H                                                                         [11;75H[m[m[12;3H                                                                         [12;75H[m[m[13;3H                                                                         [13;75H[m[m[14;3H                                                                         [14;75H[m[m[15;3H                                                                         [15;75H[m[m[16;3H                                                                         [16;75H[m[16;78H [5;75H[23;4H The highlighted entry will be booted automatically in 1 seconds.   [5;75H[H[J  Booting 'CentOS (2.6.32-504.el6.x86_64)'



root (hd0,0)

 Filesystem type is ext2fs, partition type 0x83

kernel /boot/vmlinuz-2.6.32-504.el6.x86_64 ro root=LABEL=_ console=ttyS0,115200

 crashkernel=no SYSFONT=latarcyrheb-sun16 LANG=en_US.UTF-8 KEYTABLE=us

initrd /boot/initramfs-2.6.32-504.el6.x86_64.img



============= Init TPM Front ================
Tpmfront:Error Unable to read device/vtpm/0/backend-id during tpmfront initialization! error = ENOENT
Tpmfront:Info Shutting down tpmfront
like image 964
JD Vangsness Avatar asked Nov 06 '14 02:11

JD Vangsness


People also ask

How do I resize AWS EC2 volume in Linux?

Resize EBS Volumes with Linux EC2 Instances Needless to say, you would prefer to do this without any downtime. Let's take a look at the steps you need to take to do this. First, go to your volume and choose “Modify Volume” under “Actions.” You are then given the option to change both the disk size and the volume type.

How do I increase the size of my EBS volume if I receive an error that there's no space left on my file system?

To avoid No space left on device errors when expanding the root partition or root file system on your EBS volume, use the temporary file system, tmpfs, that resides in memory. Mount the tmpfs file system under the /tmp mount point, and then expand your root partition or root file system.

Can I resize an EBS volume?

With Amazon EBS Elastic Volumes, you can increase the volume size, change the volume type, or adjust the performance of your EBS volumes. If your instance supports Elastic Volumes, you can do so without detaching the volume or restarting the instance.


2 Answers

Before resizing the filesystem by "resize2fs" command you should first resize your partition:

let's list block devices attached to our box:

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0   8G  0 part /

As you can see /dev/xvda1 is only 8 GiB partition on a 16 GiB device and there are no other partitions on the volume.


step-1) We will use "growpart" to resize 8G partition up to 16G:
# install "cloud-guest-utils" if it is not installed already
apt install cloud-guest-utils

# resize partition
growpart /dev/xvda 1

Let's check the result (you can see /dev/xvda1 is now 16G):

lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  16G  0 disk
└─xvda1 202:1    0  16G  0 part /

Lots of SO answers suggest to use fdisk with delete / recreate partitions, which is nasty, risky, error-prone process especially when we change boot drive.


step-2) resize file system to grow all the way to fully use new partition space
# Check before resizing ("Avail" shows 1.1G):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  6.3G  1.1G  86% /

# resize filesystem
resize2fs /dev/xvda1

# Check after resizing ("Avail" now shows 8.7G!-):
df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1       16G  6.3G  8.7G  42% /

And by the way, there's no need to stop instance and detach EBS volume to resize it anymore! 13-Feb-2017 Amazon announced: "Amazon EBS Update – New Elastic Volumes Change Everything" See my other SO answer for details.

Update: Use sudo xfs_growfs /dev/xvda1 instead of resize2fs when XFS filesystem

like image 119
Dmitry Shevkoplyas Avatar answered Sep 24 '22 02:09

Dmitry Shevkoplyas


This answer is dangerous, hasn't been verified since 2016, and has the potential to delete your partition if you're not aware of what's happening. Use with caution, and please reference @Dmitry's answer below as well.

To expand on JD's answer, here's exactly what to do:

df -h #print the name of your boot partition

lsblk #show info on all your block devices

You'll see from that output what the name of the disk is of your root partition. For example, you probably see something like this:

xvde                               202:64   0   32G  0 disk 
└─xvde1                            202:65   0   8G  0 part /

Our goal is to make xvde1 use the whole available space from xvde. Here's how to resize your partition:

fdisk /dev/xvda (the disk name, not your partition) This enters into the fdisk utility.

  1. u #Change the display to sectors
  2. p #Print info
  3. d #Delete the partition
  4. n #New partition
  5. p #Primary partition
  6. 1 #Partition number
  7. 2048 #First sector
  8. Press Enter to accept the default
  9. p #Print info
  10. a #Toggle the bootable flag
  11. 1 #Select partition 1
  12. w #Write table to disk and exit

Now, reboot your instance: reboot

After it comes back do:

resize2fs /dev/xvde1 (the name of your partition, not the block device)

And finally verify the new disk size: df -h

like image 36
Andrew Homeyer Avatar answered Sep 24 '22 02:09

Andrew Homeyer