How do I access the attached volume in Amazon EC2
I just attached another ebs volume to running instance. But how do I access the volume? I can't find the /dev/sda
directory anywhere. Where should I look?
When you attach an EBS volume, you specify the device to attach it as. Under linux, these devices are /dev/xvd*
- and are symlinked to /dev/sd*
In the AWS console, you can see your EBS volumes, what instances they are attached to, and the device each volume is attached as:
You can achieve the same thing from the CLI tools. Set the necessary environment variables:
export EC2_PRIVATE_KEY=/root/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
export EC2_CERT=/root/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
Run the command on your current instance (otherwise, just specify the instance-id):
ec2-describe-instances `curl -s http://169.254.169.254/latest/meta-data/instance-id` | grep BLOCKDEVICE
BLOCKDEVICE /dev/sda1 vol-xxxxxxxx 2011-11-13T21:09:53.000Z
BLOCKDEVICE /dev/sdf vol-xxxxxxxx 2011-11-13T21:09:53.000Z
BLOCKDEVICE /dev/sdg vol-xxxxxxxx 2011-11-13T21:09:53.000Z
It is worth noting that in both cases above - the CLI and the AWS Console - the devices are described as being attached at /dev/sd*
- this is not actually the case, however.
Look at the contents of /dev:
ls -l /dev/sd* /dev/xv*
lrwxrwxrwx 1 root root 5 Dec 12 18:32 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root 4 Dec 12 18:32 /dev/sdf -> xvdf
lrwxrwxrwx 1 root root 4 Dec 12 18:32 /dev/sdg -> xvdg
brw-rw---- 1 root disk 202, 1 Dec 12 18:32 /dev/xvda1
brw-rw---- 1 root disk 202, 80 Dec 12 18:32 /dev/xvdf
brw-rw---- 1 root disk 202, 96 Dec 12 18:32 /dev/xvdg
The devices are actually /dev/xvd*
- and the /dev/sd*
paths are symlinks.
Another approach to check for the currently available devices is to use fdisk -l
, or for a simpler output:
cat /proc/partitions
major minor #blocks name
202 1 4194304 xvda1
202 80 6291456 xvdf
202 96 1048576 xvdg
If you need to determine which devices have been mounted use mount
and df
- and check /etc/fstab
to change the mount options.
To use a EBS volume attached in the EC2, you need first mount the volume.
- Connect to your instance using SSH.
- Use the lsblk command to view your available disk devices and their mount points.
[ec2-user@ip-172-31-86-46 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 8G 0 disk
xvdf 202:80 0 100G 0 disk
- create a file system on the volume, example -> sudo mkfs -t ext4 /dev/xvdf
- create a mount point directoty for the volume ->sudo mkdir mount_point
- To mount this EBS volume at the location you just created -> sudo mount /dev/xvdf mount_point
- To check you can perform ls mount_point
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html