将现有EBS卷附加并挂载到EC2实例文件系统问题

时间:2015-03-01 10:04:28

标签: linux ubuntu amazon-web-services amazon-ec2 amazon-ebs

我的旧EC2实例存在一些未知问题,因此我不能再使用它了。因此,我从旧卷的快照创建了一个新的EBS卷,并尝试将其附加并挂载到新实例。这是我做的:

  1. 从旧的快照创建新卷。
  2. 创建了一个新的EC2实例,并将该卷附加到/dev/xvdf(或/dev/sdf
  3. SSH连接到实例并尝试使用以下命令挂载旧卷:

    $ sudo mkdir -m 000 /vol $ sudo mount /dev/xvdf /vol

  4. 输出结果为:

    mount: block device /dev/xvdf is write-protected, mounting read-only
    mount: you must specify the filesystem type
    

    现在,我知道我应该将filesytem指定为ext4,但由于该卷包含大量重要数据,因此我无法通过$ sudo mkfs -t ext4 /dev/xvdf对其进行格式化。尽管如此,我知道没有其他方法可以同时保留数据和指定文件系统。我已经搜索过很多关于它的信息,而且我现在也不知所措。

    顺便说一下,作为“只读”的安装也让我担心,但我还没有调查它,因为我根本无法安装音量。

    提前致谢!

    编辑:

    当我sudo mount /dev/xvdf /vol -t ext4(没有格式化)时,我得到:

    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
    

    dmesg | tail给了我:

    [ 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
    

10 个答案:

答案 0 :(得分:83)

The One Liner


挂载分区(如果磁盘已分区)

sudo mount /dev/xvdf1 /vol -t ext4

挂载磁盘(如果未分区)

sudo mount /dev/xvdf /vol -t ext4

其中:

  • /dev/xvdf已更改为正在安装的EBS卷设备
  • /vol已更改为您要装入的文件夹
  • ext4是正在装入的卷的文件系统类型

常见错误如何:


✳️附加设备列表

检查您的mount命令是否有正确 EBS卷设备名称文件系统类型。以下将列出所有内容:

sudo lsblk --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL

如果您的EBS卷显示附加partition,请装载partition;不是磁盘。


✳️如果您的音量未列出

如果没有显示,您在AWS网络控制台中没有Attach您的EBS卷


✳️重新启动时自动重新安装

如果EC2实例重新启动,这些设备将再次卸载。

在启动时再次安装它们的方法是将卷添加到服务器的/etc/fstab文件中。

警告:
如果您损坏了/etc/fstab文件,它将使您的系统无法启动。阅读AWS的简短文章,以便检查您是否正确执行了该文章。

  

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html#ebs-mount-after-reboot

<强>第一
使用上面的lsblk命令,找到您的音量UUID&amp; FSTYPE

<强>第二
保留原始fstab文件的副本。

sudo cp /etc/fstab /etc/fstab.original

<强>第三
sudo nano /etc/fstab中为该卷添加一行。

fstab的字段按标签分隔&#39;每行包含以下字段:

<UUID>  <MOUNTPOINT>    <FSTYPE>    defaults,discard,nofail 0   0

以下是帮助您的示例,我自己的fstab内容如下:

LABEL=cloudimg-rootfs   /   ext4    defaults,discard,nofail 0   0
UUID=e4a4b1df-cf4a-469b-af45-89beceea5df7   /var/www-data   ext4    defaults,discard,nofail 0   0

那就是你,你已经完成了。运行以下命令检查工作中的错误:

sudo mount --all --verbose

如果有的话,你会看到类似的东西:

/                   : ignored
/var/www-data       : already mounted

答案 1 :(得分:24)

我注意到由于某种原因,卷位于/dev/xvdf1,而不是/dev/xvdf

使用

sudo mount /dev/xvdf1 /vol -t ext4

像魅力一样工作

答案 2 :(得分:19)

在添加新的16GB卷并将其附加到现有实例后,我也遇到了这个问题。首先,您需要知道您所呈现的磁盘 运行

  sudo fdisk -l 

您将看到如下所示的输出,详细说明有关磁盘的信息(卷“

 Disk /dev/xvda: 12.9 GB, 12884901888 bytes
  255 heads, 63 sectors/track, 1566 cylinders, total 25165824 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
  Disk identifier: 0x00000000

Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *       16065    25157789    12570862+  83  Linux

 Disk /dev/xvdf: 17.2 GB, 17179869184 bytes
 255 heads, 63 sectors/track, 2088 cylinders, total 33554432 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
 Disk identifier: 0x00000000

 Disk /dev/xvdf doesn't contain a valid partition table

如您所见,新添加的Disk / dev / xvdf存在。要使其可用,您需要在其上创建文件系统并将其安装到安装点。您可以使用以下命令实现此目的

 sudo mkfs -t ext4 /dev/xvdf

制作新文件系统会清除卷中的所有内容,因此请在没有重要数据的新卷上执行此操作

然后将它安装在/ mnt文件夹

下的目录中
 sudo mount /dev/xvdf /mnt/dir/

确认您已通过运行

将卷装入实例
  df -h

这就是你应该拥有的

Filesystem      Size  Used Avail Use% Mounted on
 udev            486M   12K  486M   1% /dev
 tmpfs           100M  400K   99M   1% /run
 /dev/xvda1       12G  5.5G  5.7G  50% /
 none            4.0K     0  4.0K   0% /sys/fs/cgroup
 none            5.0M     0  5.0M   0% /run/lock
 none            497M     0  497M   0% /run/shm
 none            100M     0  100M   0% /run/user
 /dev/xvdf        16G   44M   15G   1% /mnt/ebs

这就是你有一个附加到现有实例的卷的使用量。 credit

答案 3 :(得分:11)

我遇到了这个问题,现在我明白了,

[ec2-user@ip-172-31-63-130 ~]$ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   8G  0 disk
└─xvda1 202:1    0   8G  0 part /
xvdf    202:80   0   8G  0 disk
└─xvdf1 202:81   0   8G  0 part

您应该挂载partition

  

/ dev / xvdf1(哪种类型是分区)

未装载disk

  

/ dev / xvdf(哪种类型是磁盘)

答案 4 :(得分:2)

我有不同的问题,这里当我检查dmesg日志时,问题是与现有根卷的UUID相同,另一个ec2的根卷的UUID。所以为了解决这个问题,我将它安装在另一个Linux类型的ec2上。有效。

答案 5 :(得分:1)

首先在命令下运行

lsblk / dev / xvdf

输出如下所示

名称主:MIN RM SIZE RO TYPE MOUNTPOINT

xvdf 202:80 0 10G 0磁盘

├─xvdf1202:81 0 1M 0部分

└─xvdf2202:82 0 10G 0部分

然后,检查尺寸,然后将其安装到该尺寸。 在上述情况下,请像下面那样安装

挂载/ dev / xvdf2 /文件夹名称

答案 6 :(得分:1)

对我来说,在安装卷时出现重复的UUID错误,因此我使用了“ -o nouuid”选项。

例如挂载-o nouuid / dev / xvdf1 / mnt

我从CentOs,/ var / log / messages上的系统日志中找到了线索,并发现了错误: 内核:XFS(xvdf1):文件系统具有重复的UUID f41e390f-835b-4223-a9bb-9b45984ddf8d-无法安装

答案 7 :(得分:0)

您无需从快照创建新创建的卷的文件系统。只需附加卷并将卷装入所需的文件夹即可。我已将新卷附加到先前删除的卷的相同位置,并且它工作正常。

[ec2-user@ip-x-x-x-x vol1]$ sudo 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  10G  0 disk /home/ec2-user/vol1

答案 8 :(得分:0)

在创建ext4 FS时,我通常会通过预定义UUID来坚持,我在用户数据上添加脚本并启动实例,工作正常而没有任何问题:

Ex脚本:

#!/bin/bash
# Create the directory to be mounted
sudo mkdir -p /data
# Create file system with pre-defined & Label (edit the device name as needed)
sudo mkfs -U aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa -L DATA -t ext4 /dev/nvme1n1 

# Mount
sudo mount /dev/nvme1n1 /data -t ext4

# Update the fstab to persist after reboot
sudo su -c "echo 'UUID=aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa   /data  ext4    defaults,discard,nofail 0   0' >> /etc/fstab"

答案 9 :(得分:0)

对我来说,有一些神秘文件导致此问题。

对我来说,我必须使用以下命令清除目录。

float*

警告:这可能会删除您保存的文件。因此,您可以运行<span>以确保您不会丢失重要的已保存文件