3.7. 将 RHEL 镜像转换为 Azure 磁盘镜像


Microsoft Azure 支持 Azure 磁盘镜像(.vhd)格式。要转换镜像,请确保镜像文件在 1 MB 倍数的位置启动,然后将 RHEL 镜像从 qcow2 转换为固定的 VHD 格式。

注意

以下命令使用 qemu-img 版本 2.12.0。

先决条件

流程

  1. 将镜像从 qcow2 转换为 raw 格式。

    $ qemu-img convert -f qcow2 -O raw <image_example_name>.qcow2 <image_name>.raw
    Copy to Clipboard Toggle word wrap
  2. 编辑 align.sh shell 脚本:

    $ vi align.sh
    
    #!/bin/bash
    MB=$((1024 * 1024))
    size=$(qemu-img info -f raw --output json "$1" | gawk 'match($0, /"virtual-size": ([0-9]+),/, val) {print val[1]}')
    rounded_size=$((($size/$MB + 1) * $MB))
    if [ $(($size % $MB)) -eq  0 ]
    then
     echo "Your image is already aligned. You do not need to resize."
     exit 1
    fi
    echo "rounded size = $rounded_size"
    export rounded_size
    Copy to Clipboard Toggle word wrap
  3. 运行脚本:

    $ sh align.sh <image_example_name>.raw
    Copy to Clipboard Toggle word wrap
  4. 如果 Your 镜像已保持一致。您不需要调整大小。 消息显示:

    1. 将文件转换为固定的 VHD 格式:

      $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image_example_name>.raw <image_example_name>.vhd
      Copy to Clipboard Toggle word wrap

      转换后,VHD 文件就可以上传到 Azure。

  5. 如果值显示,则表示 raw 镜像不一致:

    1. 使用上面显示的舍入值重新调整 raw 文件大小:

      $ qemu-img resize -f raw <image_example_name>.raw +1G
      Copy to Clipboard Toggle word wrap
    2. raw 镜像文件转换为 VHD 格式。

      $ qemu-img convert -f raw -o subformat=fixed,force_size -O vpc <image_example_name>.raw <image_example_name>.vhd
      Copy to Clipboard Toggle word wrap

      转换后,VHD 文件就可以上传到 Azure。

后续步骤

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat