我的旧EC2实例存在一些未知问题,因此无法再使用它了。因此,我尝试从旧卷的快照创建一个新的EBS卷并将其装入新实例。这正是我所做的:

  • 从旧卷的快照创建了一个新卷。
  • 创建一个新的EC2实例,并将卷作为/dev/xvdf(或/dev/sdf)附加到它上
  • 通过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
    

    我知道我应该将文件系统指定为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
    

    顺便说一句,“挂载只读”消息也令我感到担忧,但是由于我根本无法挂载该卷,因此我尚未对其进行研究。

    提前致谢!

    最佳答案

    一线

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

    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-Console中对EBS卷进行Attach编码

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

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

    使它们在启动时再次挂载的一种方法是将卷添加到服务器的/etc/fstab文件中。

    t警告:🔥
    如果损坏了/etc/fstab文件,它将使系统无法启动。阅读AWS的简短文章,以便您了解自己是否做对了。



    第一个:
    使用上面的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
    

    关于linux - 将现有EBS卷附加和挂载到EC2实例文件系统问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28792272/

    10-11 07:03