none
Add-AzureRmVhdコマンドにてエラー:ErrorCode: InvalidVhd RRS feed

  • 質問

  • こんにちは、

    VirtualBoxで作成したLinuxのVHDをアップロードし、Azureの仮想マシンを作成しようとしているのですが、うまくいきません。

    Add-AzureRmVhdコマンドを使用し、VMを作成するときに、以下のエラーが発生します。

    New-AzureRmVM : Long running operation failed with status 'Failed'.
    ErrorCode: InvalidVhd
    ErrorMessage: The specified cookie value in VHD footer indicates that disk 'CentOS7-MtestosDisk' with blob ***********.blob.core.windows.net/vhds/sda.vhd is not a supported VHD. Disk is expected to have cookie value 'conectix'
    .
    StartTime: 2017/04/18 16:54:45
    EndTime: 2017/04/18 16:54:45
    OperationID: 
    Status: Failed
    発生場所 行:1 文字:1
    + New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vm
    
        + CategoryInfo          : CloseError: (:) [New-AzureRmVM]、ComputeCloudException
        + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.NewAzureVMCommand

    VM作成に使用するまえに使用しているコマンドを記述します。

    AzureではVHDファイルのサイズは1MBの倍数でなくてはならないとのことなので、

    qemu-imgを使用して、Linuxイメージの入った、rawファイルのサイズを変更します。

    次にqemu-imgで固定VHDに変換します。

    <powershell>
    
    
    $rawdisk="sda.img"
    $vhddisk="sda.vhd"
    
    #rawファイルの変更後サイズを計算(MB)
    $MB=1024*1024
    $vsize=qemu-img info -f raw --output json "$rawdisk" | Select-String "virtual-size" 
    $vsize -match "(?<no>[0-9]+)"
    $size=$Matches.0
    $rounded_size=($size/$MB + 1)*$MB
    #VHD変換時に+512バイトされるため
    #$rounded_size+=$MB-512
    
    #サイズ変更
    qemu-img resize -f raw $rawdisk $rounded_size
    
    #rawファイルを固定サイズVHDに変換
    qemu-img convert -f raw -o subformat=fixed -o force_size -O vpc $rawdisk $vhddisk
    

    qemu-imgにはWindows版64bit、バージョン2.8.94を使用しています。

    問題として知りたいことは二つあり、

    (1).一番初めに挙げたErrorCode: InvalidVhdエラーの解決方法。

    (2).qemu-imgコマンドで固定VHDに変換するときに、ファイルサイズが+512バイトされてしまうことの解決法。

    です、どちらか片方でも情報をお持ちの方おられましたら教えていただけないでしょうか。

    以上よろしくお願いします。

    2017年4月18日 13:27