vInfra.ch

Guillaume LACAILLE's Blog

Powershell: New-VHD retourne une erreur 0x80070057

Un petit bug s’est glissé dans la commande New-VHD de powershell 3.0, empêchant la création du disque virtuel en retournant l’erreur « One or more arguments are invalid (0x80070057) ».

Lorsque vous créez un nouveau VHD(X), la commande retourne l’erreur suivante:

Explications:

La taille du disque ici donnée en paramètre correspont à 3.6TB. Pour avoir la taille en bytes, vous pouvez utiliser la commande powershell suivante:

 

En passant en paramètre la taille arrondie (3958241859993) le problème est le même.

Par défaut, le LogicalSectorSize d’un VHD est de 512 bytes. Or: 3.6TB/512 = 7730941132.8, et comme un byte est indivisible, powershell a tendance à râler.

Workaround:

Afin de contourner l’erreur, vous pouvez utiliser la commande suivante:

 Article initialement publié sur blog.sogeti.ch

, , , ,

2 thoughts on “Powershell: New-VHD retourne une erreur 0x80070057

  • Exotic Hadron dit :

    Je vous remercie de avoir partagé cette solucion ! Mais il y a en autre problème avec cette cmdlet. J’ai note que la cmdlet renvoie une erreur chaque fois que tentez de l’utiliser pour des disques ou des partitions avec le tailler du cluster supérieure à 64K bytes.
    Si vous avez une solution à ce problème, j’attends vos propositions.
    Merci !

    Il s’agit ici d’un exemple de cette erreur:

    PS C:\Windows\system32> New-VHD -Path ‘E:\win10bak.vhdx’ -SizeBytes $Size -Dynamic
    New-VHD : Failed to create the virtual hard disk.
    The system failed to create ‘E:\win10bak.vhdx’.
    At line:1 char:1
    + New-VHD -Path ‘E:\win10bak.vhdx’ -SizeBytes $Size -Dynamic
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [New-VHD], VirtualizationException
    + FullyQualifiedErrorId : OperationFailed,Microsoft.Vhd.PowerShell.Cmdlets.NewVhd

    C:\Windows\system32>fsutil fsinfo ntfsinfo E:
    NTFS Volume Serial Number : 0xe40ax6
    NTFS Version : 3.1
    LFS Version : 2.0
    Number Sectors : 0x00000000747057ff
    Total Clusters : 0x0000000000e8e0af
    Free Clusters : 0x000000000097f8cb
    Total Reserved : 0x0000000000000040
    Bytes Per Sector : 512
    Bytes Per Physical Sector : 4096
    Bytes Per Cluster : 65536
    Bytes Per FileRecord Segment : 1024
    Clusters Per FileRecord Segment : 0

    Voici un exemple de utiliser la cmdlet pour disque C:

    PS C:\Windows\system32> New-VHD -Path ‘C:\win10bak.vhdx’ -SizeBytes $Size -Dynamic

    ComputerName : EH
    Path : C:\win10bak.vhdx
    VhdFormat : VHDX
    VhdType : Dynamic
    FileSize : 4194304
    Size : 104857600
    MinimumSize :
    LogicalSectorSize : 512
    PhysicalSectorSize : 4096
    BlockSize : 33554432
    ParentPath :

    C:\Windows\system32>fsutil fsinfo ntfsinfo C:
    NTFS Volume Serial Number : 0x38xc
    NTFS Version : 3.1
    LFS Version : 2.0
    Number Sectors : 0x000000000c7f6fff
    Total Clusters : 0x00000000018fedff
    Free Clusters : 0x0000000000b302c3
    Total Reserved : 0x00000000000015b1
    Bytes Per Sector : 512
    Bytes Per Physical Sector : 4096
    Bytes Per Cluster : 4096
    Bytes Per FileRecord Segment : 1024
    Clusters Per FileRecord Segment : 0

    Toutefois, il se pourrait que le tailler ce n’est pas l’origine du problème. Il peut être que le fond du problème ne tient pas à le tailler mais plutôt à une lettre de lecteur ?
    Hope you can forgive me my terrible French. 😉

    • Bonjour,

      LA commande fsutil renvoie les informations du disque du host sur lequel vous lancez la commande de création du VHDX et la vérification du VHDX. Il faut monter le disque vhdx avant tout.

      Bien cordialement,
      Guillaume LACAILLE

Répondre à Guillaume Lacaille Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *