无效的块储存设备映射:无效的设备名称 - 从实例存储支持创建 AMI

dre*_*mer 6 linux partition amazon-ami amazon-ec2 amazon-web-services

我正在尝试从实例存储返回实例创建 AMI,但在我尝试注册 AMI 时收到“设备名称无效”错误。

我正在关注这个文件:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/create-instance-store-ami.html#amazon_linux_instructions

这是我当前的实例状态:

[root@ip-172-29-1-29 ~]# lsblk
NAME    MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
xvda    202:0    0   500G  0 disk
??xvda1 202:1    0   500G  0 part /
xvdb    202:16   0 745.2G  0 disk
??xvdb1 202:17   0 745.2G  0 part /media/ephemeral0
xvdc    202:32   0 745.2G  0 disk
??xvdc1 202:33   0 745.2G  0 part /media/ephemeral1

[root@ip-172-29-1-29 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      493G  4.9G  488G   1% /
devtmpfs         61G  108K   61G   1% /dev
tmpfs            61G     0   61G   0% /dev/shm
/dev/xvdb1      734G   69M  697G   1% /media/ephemeral0
/dev/xvdc1      734G   69M  697G   1% /media/ephemeral1
Run Code Online (Sandbox Code Playgroud)

这是我的 fstab:

[root@ip-172-29-1-29 ~]# cat /etc/fstab
#
LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0
/dev/xvdb1   /media/ephemeral0       ext4    defaults,noatime,nodiratime,nofail 0   2
/dev/xvdc1   /media/ephemeral1       ext4    defaults,noatime,nodiratime,nofail 0   2
Run Code Online (Sandbox Code Playgroud)

这是我得到的清单文件:

<machine_configuration>
    <architecture>x86_64</architecture>
    <block_device_mapping>
      <mapping>
        <virtual>ami</virtual>
        <device>xvda</device>
      </mapping>
      <mapping>
        <virtual>ephemeral0</virtual>
        <device>xvdb</device>
      </mapping>
      <mapping>
        <virtual>ephemeral1</virtual>
        <device>xvdc</device>
      </mapping>
      <mapping>
        <virtual>root</virtual>
        <device>/dev/xvda1</device>
      </mapping>
    </block_device_mapping>
  </machine_configuration>
Run Code Online (Sandbox Code Playgroud)

最后,当我尝试注册 AMI 时,出现以下错误:

An error occurred (InvalidManifest) when calling the RegisterImage operation: Invalid block device mapping: Invalid device name '/dev/xvda1'
Run Code Online (Sandbox Code Playgroud)

我也尝试过“/dev/xvda”或“xvda”,但不确定我应该为root使用的预期设备名称是什么。

Dal*_*son 3

正如对 OP 问题的评论中所建议的,根设备是 或/dev/sda1/dev/xvda并且AWS 的设备命名文档指定了其他设备可使用的名称。

根据我的理解,命名更多地与虚拟机管理程序如何看待设备有关,而不是与操作系统如何看待设备有关。