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

Gab*_*llo 52 linux ubuntu amazon-ec2 amazon-ebs amazon-web-services

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

  1. 根据旧卷的快照创建新卷.
  2. 创建一个新的EC2实例并将卷附加到它/dev/xvdf(或/dev/sdf)
  3. 通过SSH连接到实例并尝试使用以下命令挂载旧卷:

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

输出是:

mount: block device /dev/xvdf is write-protected, mounting read-only
mount: you must specify the filesystem type
Run Code Online (Sandbox Code Playgroud)

现在,我知道我应该指定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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

Fac*_*dan 90

The One Liner


如果文件系统类型为ext4,请使用此命令安装它:

sudo mount /dev/xvdf1 /vol -t ext4
Run Code Online (Sandbox Code Playgroud)

许多人在以下方面取得了成功(如果磁盘已分区):

sudo mount /dev/xvdf /vol -t ext4
Run Code Online (Sandbox Code Playgroud)

哪里:

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

常见错误如何:


附加设备列表

检查mount命令以获取正确的 EBS卷设备名称文件系统类型.以下将列出所有:

sudo lsblk --output NAME,TYPE,SIZE,FSTYPE,MOUNTPOINT,UUID,LABEL
Run Code Online (Sandbox Code Playgroud)

如果您的EBS卷显示附加partition,则安装partition; 不是磁盘.

如果未显示,则您Attach在AWS Web控制台中没有使用EBS卷


重新启动时自动重新安装

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

在启动时再次安装它们的方法是编辑下面列出的服务器文件,并仅插入最初使用的单个安装命令.

sudo cp /etc/fstab /etc/fstab.original
Run Code Online (Sandbox Code Playgroud)

(将您的更改/etc/fstab置于此文件的最后一行.)

  • 解决了!非常感谢你的帮助.在你提到的命令完全没有输出之后,我注意到由于某种原因,卷位于`/ dev/xvdf1`,而不是`/ dev/xvdf`.简单的错误,抱歉.`使用sudo mount/dev/xvdf1/vol -t ext4`就像一个魅力. (18认同)
  • @GabrielRebello感谢您的评论,这让我感到高兴.我会给它一个答案,只是为了让它更具可见性 (2认同)

Eri*_*son 24

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

运用

sudo mount /dev/xvdf1 /vol -t ext4
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作

  • xvdf 是磁盘,xvdf1 是分区。如果磁盘已经这样分区,则需要自行挂载分区。 (2认同)

Gid*_*ina 19

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

  sudo fdisk -l 
Run Code Online (Sandbox Code Playgroud)

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

 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
Run Code Online (Sandbox Code Playgroud)

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

 sudo mkfs -t ext4 /dev/xvdf
Run Code Online (Sandbox Code Playgroud)

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

然后将它安装在/ mnt文件夹下的目录中

 sudo mount /dev/xvdf /mnt/dir/
Run Code Online (Sandbox Code Playgroud)

通过运行确认已将卷装入实例

  df -h
Run Code Online (Sandbox Code Playgroud)

这就是你应该拥有的

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
Run Code Online (Sandbox Code Playgroud)

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


小智 12

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

[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
Run Code Online (Sandbox Code Playgroud)

你应该安装 partition

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

不安装 disk

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


ank*_*agi 6

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

例如 mount -o nouuid /dev/xvdf1 /mnt

我从系统日志中找到了线索,在 CentOs 上的 /var/log/messages 上,发现了错误: kernel: XFS (xvdf1): Filesystem hasplicated UUID f41e390f-835b-4223-a9bb-9b45984ddf8d - can't mount


小智 5

我遇到了不同的问题,当我检查 dmesg 日志时,问题在于现有根卷的 UUID 和另一个 ec2 根卷的 UUID。因此,为了解决这个问题,我将其安装在另一种 Linux 类型的 ec2 上。有效。