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



我的旧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

我知道我应该将 fileytem 指定为 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
顺便说一句,"挂载

只读"消息也让我担心,但我还没有研究它,因为我根本无法挂载卷。

The One Liner


🥇 挂载分区(如果磁盘已分区(:

sudo mount /dev/xvdf1 /vol -t ext4

装载磁盘(如果未分区(:

sudo mount /dev/xvdf /vol -t ext4

哪里:

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

常见错误如何:


✳️ 连接的设备列表

检查挂载命令以获取正确的 EBS 卷设备名称和文件系统类型。下面将列出所有内容:

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

如果您的 EBS 卷显示时附加了partition,请挂载partition,而不是磁盘。


✳️ 如果您的卷未列出

如果未显示,则表示您未在 AWS Web 控制台中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命令,找到卷的UUIDFSTYPE

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

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

第三
sudo nano /etc/fstab 中为卷添加一行。

fstab的字段是"制表符分隔"的,每行都有以下字段:

<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

在添加新的 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

如您所见,新添加的磁盘/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

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

sudo mount /dev/xvdf1 /vol -t ext4

像魅力一样工作

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

[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(哪种类型是磁盘(

对我来说,

这是挂载卷时的重复 UUID 错误,所以我使用了"-o nouuid"选项。

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

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

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

首先运行以下命令

lsblk/dev/xvdf

输出将如下所示

名称 MAJ:最小 RM 尺寸 RO 型安装点

xvdf 202:80 0 10G 0 磁盘

├─xvdf1 202:81 0 1M 0 部分

└─xvdf2 202:82 0 10G 0 部分

然后,检查尺寸,然后将其安装到那个。在上述情况下,请按如下所示安装

mount/dev/xvdf2/foldername

您不需要从快照创建新创建的卷的文件系统。只需附加卷并将卷装载到所需的文件夹中即可。我已将新卷附加到以前删除的卷的同一位置,并且工作正常。

[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

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

前脚本:

#!/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"

对我来说,有一些神秘的文件导致了这个问题。

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

sudo mkfs -t ext3 /dev/sdf

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

首先使用"lsblk -f"命令检查文件系统类型,在我的例子中是"XFS">

#lsblk -f
NAME    FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINT
xvda
├─xvda1
├─xvda2 vfat   FAT16 EFI   31C3-C85B                              17.1M    14% /boot/efi
└─xvda3 xfs          ROOT  6f6ccaeb-068f-4eb7-9228-afeb8e4d25df    7.6G    24% /
xvdf
├─xvdf1
├─xvdf2 vfat   FAT16 EFI   31C3-C85B
└─xvdf3 xfs          ROOT  6f6ccaeb-068f-4eb7-9228-afeb8e4d25df    5.4G    46% /mnt/da

根据文件系统类型修改命令。

mount -t xfs -o nouuid /dev/xvdf3 /mnt/data/

最新更新