Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-09 GMT+08:00

Conversão do formato da imagem usando o qemu-img

Cenários

Você pode importar um arquivo de imagem no formato VHD, VMDK, QCOW2, RAW, VHDX, QCOW, VDI, QED, ZVHD ou ZVHD2 para HUAWEI CLOUD. Arquivos de imagem em outros formatos precisam ser convertidos antes de serem importados. A ferramenta de código aberto qemu-img é fornecida para você converter formatos de arquivo de imagem.

Descrição

Esta seção descreve como converter um formato de imagem em um PC local com Windows ou Linux.

Ferramenta e custos

Tabela 1 Ferramenta e custos

Ferramenta

Descrição

Custos

qemu-img

qemu-img é uma ferramenta de código aberto para converter formatos de imagem.

Você pode obtê-lo a partir de:

https://qemu.weilnetz.de/w64/

Gratuito

Restrições

  • O qemu-img oferece suporte à conversão mútua dos formatos de imagem VHD, VMDK, QCOW2, RAW, VHDX, QCOW, VDI e QED.
  • ZVHD e ZVHD2 são formatos de arquivo de imagem desenvolvidos automaticamente e não podem ser identificados pelo qemu-img. Para converter arquivos de imagem para qualquer um dos dois formatos, use a ferramenta qemu-img-hw. Para obter detalhes, consulte Conversão do formato da imagem usando o qemu-img-hw.
  • Ao executar o comando para converter o formato de arquivos de imagem VHD, use a VPC para substituir o VHD. Caso contrário, o qemu-img não pode identificar o formato da imagem.

    Por exemplo, para converter um arquivo de imagem de CentOS 6.9 de VHD para QCOW2, execute o seguinte comando:

    qemu-img convert -p -f vpc -O qcow2 centos6.9.vhd centos6.9.qcow2

Windows

  1. Instale o qemu-img.
    1. Baixe o pacote de instalação do qemu-img do https://qemu.weilnetz.de/w64/.
    2. Clique duas vezes no arquivo de instalação para instalar o qemu-img em D:\Program Files\qemu (um exemplo de caminho de instalação).
  2. Configure variáveis de ambiente.
    1. Escolha Start > Computer e clique com o botão direito do mouse em Properties.
    2. Clique em Advanced system settings.
    3. Na caixa de diálogo System Properties, clique em Advanced > Environment Variables.
    4. Na caixa de diálogo Environment Variables, procure Path na área System Variable e clique em Edit. Adicione D:\Program Files\qemu para Variable Value. Use ponto-e-vírgula (;) para separar valores de variáveis.

      Se Path não existir, adicione-o e defina seu valor como D:\Program Files\qemu.

    5. Clique em OK.
  3. Verifique a instalação.

    Escolha Start > Run, insira cmd e pressione Enter. Na janela cmd, digite qemu-img --help. Se as informações de versão do qemu-img estiverem contidas na saída do comando, a instalação será bem-sucedida.

  4. Converta o formato da imagem.
    1. Na janela cmd, execute os seguintes comandos para alternar para D:\Program Files\qemu:

      d:

      cd D:\Program Files\qemu

    1. Execute o seguinte comando para converter o formato de arquivo de imagem de VMDK para QCOW2:

      qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2

      Os parâmetros são descritos a seguir:

      • -p indica o progresso da conversão da imagem.
      • -f indica o formato da imagem de origem.
      • A parte após -O (que deve estar em letras maiúsculas) consiste no formato necessário, no arquivo de imagem de origem e no arquivo de imagem de destino.

      Após a conclusão da conversão, o arquivo de imagem de destino é exibido no diretório onde o arquivo de imagem de origem está localizado.

      As seguintes informações são exibidas:

      # qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2
          (100.00/100%)
    2. Execute o seguinte comando para consultar detalhes sobre o arquivo de imagem convertido no formato QCOW2:

      qemu-img info centos6.9.qcow2

      As seguintes informações são exibidas:

      # qemu-img info centos6.9.qcow2
      image: centos6.9.qcow2
      file format: qcow2
      virtual size: 1.0G (1073741824 bytes)
      disk size: 200K
      cluster_size: 65536
      Format specific information:
          compat: 1.1
          lazy refcounts: false

Linux

Se ocorrer algum erro, consulte "Apêndice 2: erros comuns durante a execução do qemu-img-hw" em Conversão do formato da imagem usando o qemu-img-hw.

  1. Instale o qemu-img.
    • Para Ubuntu ou Debian, execute o seguinte comando:

      apt install qemu-img

    • Para CentOS, Red Hat ou Oracle, execute o seguinte comando:

      yum install qemu-img

    • Para SUSE ou openSUSE, execute o seguinte comando:

      zypper install qemu-img

  2. Execute o seguinte comando para verificar se a instalação foi bem-sucedida:

    qemu-img -v

    Se as informações de versão e o manual de ajuda da ferramenta qemu-img estiverem contidos na saída do comando, a instalação foi bem-sucedida. Se o CentOS 7 for usado, a saída do comando será a seguinte:

    [root@CentOS7 ~]# qemu-img -v
    qemu-img version 1.5.3, Copyright (c) 2004-2008 Fabrice Bellard
    usage: qemu-img command [command options]
    QEMU disk image utility
    
    Command syntax:
      check [-q] [-f fmt] [--output=ofmt] [-r [leaks | all]] [-T src_cache] filename
      create [-q] [-f fmt] [-o options] filename [size]
      commit [-q] [-f fmt] [-t cache] filename
      compare [-f fmt] [-F fmt] [-T src_cach]
  3. Converta o formato da imagem. Por exemplo, execute as seguintes etapas para converter um arquivo de imagem VMDK executando o CentOS 7 em um arquivo de imagem QCOW2:
    1. Execute o seguinte comando para converter o formato de arquivo de imagem para QCOW2:

      qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2

      Os parâmetros são descritos a seguir:

      • -p: indica o progresso da conversão.
      • -f indica o formato da imagem de origem.
      • A parte após -O (que deve estar em letras maiúsculas) é o formato da imagem convertida + nome do arquivo de imagem de origem + nome do arquivo de imagem de destino.

      Após a conclusão da conversão, o arquivo de imagem de destino é exibido no diretório onde o arquivo de imagem de origem está localizado.

      As seguintes informações são exibidas:

      [root@CentOS7 home]# qemu-img convert -p -f vmdk -O qcow2 centos6.9.vmdk centos6.9.qcow2
          (100.00/100%)
    2. Execute o seguinte comando para consultar detalhes sobre o arquivo de imagem convertido no formato QCOW2:

      qemu-img info centos6.9.qcow2

      As seguintes informações são exibidas:

      [root@CentOS7 home]# qemu-img info centos6.9.qcow2
      image: centos6.9.qcow2
      file format: qcow2
      virtual size: 1.0G (1073741824 bytes)
      disk size: 200K
      cluster_size: 65536
      Format specific information:
          compat: 1.1
          lazy refcounts: false

Exemplos

  • Cenário

    Uma imagem pré-alocada depende de dois arquivos: xxxx.vmdk (arquivo de configuração) e xxxx-flat.vmdk (arquivo de dados) e não pode ser importada diretamente para a plataforma de nuvem. Ao exportar um arquivo de imagem pré-alocado no formato VMDK monolítico Flat da plataforma VMware, você deve converter seu formato para VMDK comum ou QCOW2 antes que ele possa ser importado para a plataforma de nuvem.

    O seguinte usa os arquivos de imagem centos6.9-64bit-flat.vmdk e centos6.9-64bit.vmdk como um exemplo para descrever como usar qemu-img para converter formatos de imagem.

  • Procedimento
  1. Execute os seguintes comandos para consultar os detalhes do arquivo de imagem:

    ls -lh centos6.9-64bit*

    qemu-img info centos6.9-64bit.vmdk

    qemu-img info centos6.9-64bit-flat.vmdk

    As seguintes informações são exibidas:

    [root@CentOS7 tmp]# ls -lh centos6.9-64bit*
    -rw-r--r--. 1 root root 10G Jun 13 05:30 centos6.9-64bit-flat.vmdk
    -rw-r--r--. 1 root root 327 Jun 13 05:30 centos6.9-64bit.vmdk
    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.vmdk
    image: centos6.9-64bit.vmdk
    file format: vmdk
    virtual size: 10G (10737418240 bytes)
    disk size: 4.0K
    Format specific information:
        cid: 3302005459
        parent cid: 4294967295
        create type: monolithicFlat
        extents:
            [0]:
                virtual size: 10737418240
                filename: centos6.9-64bit-flat.vmdk
                format: FLAT
    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit-flat.vmdk
    image: centos6.9-64bit-flat.vmdk
    file format: raw
    virtual size: 10G (10737418240 bytes)
    disk size: 0

    A saída do comando mostra que o formato de centos6.9-64bit.vmdk é VMDK e que de centos6.9-64bit-flat.vmdk é RAW. Você pode converter o formato de apenas centos6.9-64bit.vmdk. Para obter detalhes sobre como convertê-lo, consulte 3.

  2. Execute o seguinte comando para consultar a configuração do arquivo de imagem pré-alocado:

    cat centos6.9-64bit.vmdk

    As seguintes informações são exibidas:

    [root@CentOS7 tmp]# cat centos6.9-64bit.vmdk
    # Disk DescriptorFile
    version=1
    CID=c4d09ad3
    parentCID=ffffffff
    createType="monolithicFlat"
     
    # Extent description
    RW 20971520 FLAT "centos6.9-64bit-flat.vmdk" 0
     
    # The Disk Data Base
    #DDB
     
    ddb.virtualHWVersion = "4"
    ddb.geometry.cylinders = "20805"
    ddb.geometry.heads = "16"
    ddb.geometry.sectors = "63"
    ddb.adapterType = "ide"
  3. Coloque centos6.9-64bit-flat.vmdk e centos6.9-64bit.vmdk no mesmo diretório. Execute o seguinte comando para converter o formato de centos6.9-64bit.vmdk para QCOW2 usando qemu-img:
    [root@CentOS7 tmp]# qemu-img convert -p -f vmdk -O qcow2 centos6.9-64bit.vmdk centos6.9-64bit.qcow2
        (100.00/100%)
  4. Execute o seguinte comando para consultar detalhes sobre o arquivo de imagem convertido no formato QCOW2:

    qemu-img info centos6.9-64bit.qcow2

    As seguintes informações são exibidas:

    [root@CentOS7 tmp]# qemu-img info centos6.9-64bit.qcow2
    image: centos6.9-64bit.qcow2
    file format: qcow2
    virtual size: 10G (10737418240 bytes)
    disk size: 200K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false

Procedimento de acompanhamento

Depois que o formato do arquivo de imagem for convertido, você poderá usar obsutil para carregar o arquivo de imagem em um intervalo do OBS para criar uma imagem privada. Para obter detalhes sobre como usar o obsutil para carregar um arquivo de imagem, consulte Carregando um objeto.