I had some unknown issue with my old EC2 instance so that I can't ssh into it anymore. Therefore I'm attempting to create a new EBS volume from a snapshot of the old volume and mount it into the new instance. Here is exactly what I did:
/dev/xvdf
(or /dev/sdf
)SSHed into the instance and attempted to mount the old volume with:
$ sudo mkdir -m 000 /vol
$ sudo mount /dev/xvdf /vol
And the output was:
mount: block device /dev/xvdf is write-protected, mounting read-only
mount: you must specify the filesystem type
I know I should specify the filesytem as ext4
but the volume contains a lot of important data, so I cannot afford to format it with $ sudo mkfs -t ext4 /dev/xvdf
. If I try sudo mount /dev/xvdf /vol -t ext4
(no formatting) I get:
mount: wrong fs type, bad option, bad superblock on /dev/xvdf,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so
And dmesg | tail
gives me:
[ 1433.217915] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.222107] FAT-fs (xvdf): bogus number of reserved sectors
[ 1433.226127] FAT-fs (xvdf): Can't find a valid FAT filesystem
[ 1433.260752] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.265563] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.270477] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
[ 1433.274549] FAT-fs (xvdf): bogus number of reserved sectors
[ 1433.277632] FAT-fs (xvdf): Can't find a valid FAT filesystem
[ 1433.306549] ISOFS: Unable to identify CD-ROM format.
[ 2373.694570] EXT4-fs (xvdf): VFS: Can't find ext4 filesystem
By the way, the 'mounting read-only' message also worries me but I haven't look into it yet since I can't mount the volume at all.
Thanks in advance!
🥇 Mount the partition (if disk is partitioned):
sudo mount /dev/xvdf1 /vol -t ext4
Mount the disk (if not partitioned):
sudo mount /dev/xvdf /vol -t ext4
where:
/dev/xvdf
is changed to the EBS Volume device being mounted/vol
is changed to the folder you want to mount to.ext4
is the filesystem type of the volume being mountedCheck your mount command for the correct EBS Volume device name and filesystem type. The following will list them all:
sudo lsblk --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL
If your EBS Volume displays with an attached partition
, mount the partition
; not the disk.
If it doesn't show, you didn't Attach
your EBS Volume in AWS web-console
These devices become unmounted again if the EC2 Instance ever reboots.
A way to make them mount again upon startup is to add the volume to the server's /etc/fstab
file.
🔥 Caution:🔥
If you corrupt the /etc/fstab
file, it will make your system unbootable. Read AWS's short article so you know to check that you did it correctly.
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html#ebs-mount-after-reboot
First:
With the lsblk
command above, find your volume's UUID
& FSTYPE
.
Second:
Keep a copy of your original fstab
file.
sudo cp /etc/fstab /etc/fstab.original
Third:
Add a line for the volume in sudo nano /etc/fstab
.
The fields of fstab
are 'tab-separated' and each line has the following fields:
<UUID> <MOUNTPOINT> <FSTYPE> defaults,discard,nofail 0 0
Here's an example to help you, my own fstab
reads as follows:
LABEL=cloudimg-rootfs / ext4 defaults,discard,nofail 0 0
UUID=e4a4b1df-cf4a-469b-af45-89beceea5df7 /var/www-data ext4 defaults,discard,nofail 0 0
That's it, you're done. Check for errors in your work by running:
sudo mount --all --verbose
You will see something like this if things are 👍:
/ : ignored
/var/www-data : already mounted