Archive

Resize EBS volume without rebooting in AWS

This article guide you to resize the EBS volume without rebooting

1. Modify volume in AWS EC2 UI
After login to AWS console, navigate to EC2 -> Elastic Block Store -> Volumes. Click on the volume that you wist to resize, then select Actions -> Modify Volume. It will open a popup.

i) Enter the new size in the size field. Lets says we are resizing from 8 GB to 150 GB.
ii) Click Modify button
iii) Click Yes button in the confirm popup.

Now the volume has been resized, but it won’t reflect in the system. We need to do some more steps to make it work.

2. Resize the partition
Lets ssh into the machine.

i) List block devices attached to the machine.

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 91M 1 loop /snap/core/6350
loop1 7:1 0 18M 1 loop /snap/amazon-ssm-agent/930
loop2 7:2 0 89.4M 1 loop /snap/core/6818
loop3 7:3 0 17.9M 1 loop /snap/amazon-ssm-agent/1068
xvda 202:0 0 150G 0 disk
└─xvda1 202:1 0 8G 0 part /

You can see that xvda1 is still 8 GB. Lets increase the partition to disk size.

ii) Install cloud-guest-utils

apt install cloud-guest-utils

iii) Grow the partition

growpart /dev/xvda 1

iv) Let’s check the partition size (you can see /dev/xvda1 is now 150 GB):

lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 91M 1 loop /snap/core/6350
loop1 7:1 0 18M 1 loop /snap/amazon-ssm-agent/930
loop2 7:2 0 89.4M 1 loop /snap/core/6818
loop3 7:3 0 17.9M 1 loop /snap/amazon-ssm-agent/1068
xvda 202:0 0 150G 0 disk
└─xvda1 202:1 0 150G 0 part /

3. Resize the file system

i) Check the file system size. (Still it shows only 8 GB)

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 4.9G 2.6G 62% /

ii) Resize the filesystem

resize2fs /dev/xvda1

iii) Check after resizing

df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 146G 4.9G 141G 3% /

So we have increased the EBS volume without rebooting and zero downtime.

Useful Windows programs

– dupeGuru
– FolderSize
– handbrake
– Rambox
– heidiSQL
– 7-Zip
– genymotion

Delete recursive folders windows terminal

RMDIR /Q/S foldername

React: CRA with TypeScript enable HOT

Add these lines of code to enable it in index.tsx

if((module as any).hot && process.env.NODE_ENV !== 'production'){
(module as any).hot.accept()
}

Git pull submodule

Git Pull with Submodule

For a repo with submodules, we can pull all submodules using

git submodule update --init --recursive

for the first time. All submodules will be pulled down locally.

To update submodules, we can use

git submodule update --recursive --remote

or simply

git pull --recurse-submodules