从 Amazon Linux 2 AMI 快照创建的卷上没有分区表

从 Amazon Linux 2 AMI 快照创建的卷上没有分区表

我已使用 Packer 使用 Amazon Linux 2 (AL2) 作为源映像创建了一个新的 AMI。现在我正在尝试创建它的 vhd 并传输到 Azure Image。我们已经在 Centos7 AMI 上成功地做到了这一点,这是我们第一次为 AL2 做到这一点。作为此 vhd 创建的一部分,

  1. 我们根据 AL2 的快照创建卷
  2. 将卷附加到 EC2 实例(基于 Centos)
  3. 使用以下命令将该块设备转换为 img 文件(虚拟磁盘映像)dd if=/dev/nvme1n1 of=/$tmp/$imgfile bs=1M
  4. 然后使用命令将其映射到循环设备 -
lodevice=$(losetup -f)
losetup $lodevice $tmp/$imgfile
kpartx -av $lodevice
lodev=$(echo $lodevice| awk -F "/" '{print $NF}')
xfs_admin -U generate /dev/mapper/${lodev}p1
mount /dev/mapper/${lodev}p1 $tmp/image/

这里kpartx -av $lodevice命令成功,但循环映射器设备未创建,进一步检查时,img/循环设备上没有分区表 -

]# fdisk -l /mnt/ephemeral/AL2.img

Disk /mnt/ephemeral/AL2.img: 42.9 GB, 42949672960 bytes, 83886080 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

]# fdisk -l $lodevice

Disk /dev/loop0: 42.9 GB, 42949672960 bytes, 83886080 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

答案1

我的错是,我从错误的快照创建卷,该快照不是从根设备创建的。关闭它。

相关内容