

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Mappez les disques non NVMe des instances Windows Amazon EC2
<a name="windows-list-disks"></a>

Pour les instances lancées à partir d'une AMI Windows qui utilise des pilotes AWS PV ou Citrix PV, vous pouvez utiliser les relations décrites sur cette page pour mapper vos disques Windows à votre magasin d'instances et à vos volumes EBS. Cette rubrique explique comment afficher les **NVMe non-disques** disponibles pour le système d'exploitation Windows sur votre instance. Il explique également comment mapper ces disques non NVMe aux volumes Amazon EBS sous-jacents et aux noms de périphériques spécifiés pour les mappages de périphériques en mode bloc utilisés par Amazon EC2.

**Note**  
Si vous lancez une instance Si votre AMI Windows utilise les pilotes PV Red Hat, vous pouvez mettre à jour votre instance pour utiliser les pilotes Citrix. Pour de plus amples informations, veuillez consulter [Mettre à niveau des pilotes PV sur les instances EC2 Windows](Upgrading_PV_drivers.md).

**Topics**
+ [Répertorier les NVMe non-disques](#windows-disks)
+ [Mappez des objets autres que NVMe des disques à des volumes](#windows-volume-mapping)

## Répertorier les NVMe non-disques
<a name="windows-disks"></a>

Vous pouvez trouver les disques de votre instance Windows à l'aide de la gestion des disques ou PowerShell.

------
#### [ Disk Management ]

**Pour rechercher les disques sur votre instance Windows**

1. Connectez-vous à votre instance Windows en utilisant les services Bureau à distance. Pour plus d’informations, consultez [Se connecter à votre instance Windows à l’aide de RDP](connecting_to_windows_instance.md).

1. Démarrez l’utilitaire Gestion des disques.

   Dans la barre des tâches, cliquez avec le bouton droit de la souris sur le logo Windows, puis choisissez **Gestion des disques**.

1. Examinez les disques. Le volume racine est un volume EBS monté comme `C:\`. Si aucun autre disque n’est affiché, vous n’avez pas spécifié de volume additionnel lors de la création de l’AMI ou du lancement de l’instance.

   L’exemple suivant affiche les disques qui sont disponibles si vous lancez une instance `m3.medium` avec un volume basé sur le stockage d’instance (Disk 2) et un volume EBS supplémentaire (Disk 1).  
![Gestion des disques avec un volume racine, un volume de stockage d’instance et un volume EBS.](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/disk_management.png)

1. Cliquez avec le bouton droit sur le disque 1 étiqueté dans le volet grisé, puis cliquez sur **Propriétés**. Prenez note de la valeur de l’**Emplacement** et recherchez-le dans les tables de [Mappez des objets autres que NVMe des disques à des volumes](#windows-volume-mapping). Par exemple, le disque suivant a pour emplacement Bus numéro 0, ID cible 9, LUN 0. D’après la table des volumes EBS, le nom de périphérique de cet emplacement est : `xvdj`.  
![Emplacement d’un volume EBS.](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/disk_1_location.png)

------
#### [ PowerShell ]

Le PowerShell script suivant répertorie chaque disque ainsi que le nom de périphérique et le volume correspondants.

**Exigences et limitations**
+ Nécessite Windows Server 2012 ou une version ultérieure.
+ Nécessite des informations d’identification pour obtenir l’ID de volume EBS. Vous pouvez configurer un profil à l'aide des outils pour PowerShell l'instance ou y associer un rôle IAM.
+ Ne prend pas en charge NVMe les volumes.
+ Ne prend pas en charge les disques dynamiques.

Connectez-vous à votre instance Windows et exécutez la commande suivante pour activer l'exécution du PowerShell script.

```
Set-ExecutionPolicy RemoteSigned
```

Copiez le script suivant et enregistrez-le en tant que `mapping.ps1` sur votre instance Windows.

```
# List the disks
function Convert-SCSITargetIdToDeviceName {
  param([int]$SCSITargetId)
  If ($SCSITargetId -eq 0) {
    return "sda1"
  }
  $deviceName = "xvd"
  If ($SCSITargetId -gt 25) {
    $deviceName += [char](0x60 + [int]($SCSITargetId / 26))
  }
  $deviceName += [char](0x61 + $SCSITargetId % 26)
  return $deviceName
}

[string[]]$array1 = @()
[string[]]$array2 = @()
[string[]]$array3 = @()
[string[]]$array4 = @()

Get-WmiObject Win32_Volume | Select-Object Name, DeviceID | ForEach-Object {
  $array1 += $_.Name
  $array2 += $_.DeviceID
}

$i = 0
While ($i -ne ($array2.Count)) {
  $array3 += ((Get-Volume -Path $array2[$i] | Get-Partition | Get-Disk).SerialNumber) -replace "_[^ ]*$" -replace "vol", "vol-"
  $array4 += ((Get-Volume -Path $array2[$i] | Get-Partition | Get-Disk).FriendlyName)
  $i ++
}

[array[]]$array = $array1, $array2, $array3, $array4

Try {
  $InstanceId = Get-EC2InstanceMetadata -Category "InstanceId"
  $Region = Get-EC2InstanceMetadata -Category "Region" | Select-Object -ExpandProperty SystemName
}
Catch {
  Write-Host "Could not access the instance Metadata using AWS Get-EC2InstanceMetadata CMDLet.
Verify you have AWSPowershell SDK version '3.1.73.0' or greater installed and Metadata is enabled for this instance." -ForegroundColor Yellow
}
Try {
  $BlockDeviceMappings = (Get-EC2Instance -Region $Region -Instance $InstanceId).Instances.BlockDeviceMappings
  $VirtualDeviceMap = (Get-EC2InstanceMetadata -Category "BlockDeviceMapping").GetEnumerator() | Where-Object { $_.Key -ne "ami" }
}
Catch {
  Write-Host "Could not access the AWS API, therefore, VolumeId is not available.
Verify that you provided your access keys or assigned an IAM role with adequate permissions." -ForegroundColor Yellow
}

Get-disk | ForEach-Object {
  $DriveLetter = $null
  $VolumeName = $null
  $VirtualDevice = $null
  $DeviceName = $_.FriendlyName

  $DiskDrive = $_
  $Disk = $_.Number
  $Partitions = $_.NumberOfPartitions
  $EbsVolumeID = $_.SerialNumber -replace "_[^ ]*$" -replace "vol", "vol-"
  if ($Partitions -ge 1) {
    $PartitionsData = Get-Partition -DiskId $_.Path
    $DriveLetter = $PartitionsData.DriveLetter | Where-object { $_ -notin @("", $null) }
    $VolumeName = (Get-PSDrive | Where-Object { $_.Name -in @($DriveLetter) }).Description | Where-object { $_ -notin @("", $null) }
  }
  If ($DiskDrive.path -like "*PROD_PVDISK*") {
    $BlockDeviceName = Convert-SCSITargetIdToDeviceName((Get-WmiObject -Class Win32_Diskdrive | Where-Object { $_.DeviceID -eq ("\\.\PHYSICALDRIVE" + $DiskDrive.Number) }).SCSITargetId)
    $BlockDeviceName = "/dev/" + $BlockDeviceName
    $BlockDevice = $BlockDeviceMappings | Where-Object { $BlockDeviceName -like "*" + $_.DeviceName + "*" }
    $EbsVolumeID = $BlockDevice.Ebs.VolumeId
    $VirtualDevice = ($VirtualDeviceMap.GetEnumerator() | Where-Object { $_.Value -eq $BlockDeviceName }).Key | Select-Object -First 1
  }
  ElseIf ($DiskDrive.path -like "*PROD_AMAZON_EC2_NVME*") {
    $BlockDeviceName = (Get-EC2InstanceMetadata -Category "BlockDeviceMapping")."ephemeral$((Get-WmiObject -Class Win32_Diskdrive | Where-Object { $_.DeviceID -eq ("\\.\PHYSICALDRIVE" + $DiskDrive.Number) }).SCSIPort - 2)"
    $BlockDevice = $null
    $VirtualDevice = ($VirtualDeviceMap.GetEnumerator() | Where-Object { $_.Value -eq $BlockDeviceName }).Key | Select-Object -First 1
  }
  ElseIf ($DiskDrive.path -like "*PROD_AMAZON*") {
    if ($DriveLetter -match '[^a-zA-Z0-9]') {
      $i = 0
      While ($i -ne ($array3.Count)) {
        if ($array[2][$i] -eq $EbsVolumeID) {
          $DriveLetter = $array[0][$i]
          $DeviceName = $array[3][$i]
        }
        $i ++
      }
    }
    $BlockDevice = ""
    $BlockDeviceName = ($BlockDeviceMappings | Where-Object { $_.ebs.VolumeId -eq $EbsVolumeID }).DeviceName
  }
  ElseIf ($DiskDrive.path -like "*NETAPP*") {
    if ($DriveLetter -match '[^a-zA-Z0-9]') {
      $i = 0
      While ($i -ne ($array3.Count)) {
        if ($array[2][$i] -eq $EbsVolumeID) {
          $DriveLetter = $array[0][$i]
          $DeviceName = $array[3][$i]
        }
        $i ++
      }
    }
    $EbsVolumeID = "FSxN Volume"
    $BlockDevice = ""
    $BlockDeviceName = ($BlockDeviceMappings | Where-Object { $_.ebs.VolumeId -eq $EbsVolumeID }).DeviceName
  }
  Else {
    $BlockDeviceName = $null
    $BlockDevice = $null
  }
  New-Object PSObject -Property @{
    Disk          = $Disk;
    Partitions    = $Partitions;
    DriveLetter   = If ($DriveLetter -eq $null) { "N/A" } Else { $DriveLetter };
    EbsVolumeId   = If ($EbsVolumeID -eq $null) { "N/A" } Else { $EbsVolumeID };
    Device        = If ($BlockDeviceName -eq $null) { "N/A" } Else { $BlockDeviceName };
    VirtualDevice = If ($VirtualDevice -eq $null) { "N/A" } Else { $VirtualDevice };
    VolumeName    = If ($VolumeName -eq $null) { "N/A" } Else { $VolumeName };
    DeviceName    = If ($DeviceName -eq $null) { "N/A" } Else { $DeviceName };
  }
} | Sort-Object Disk | Format-Table -AutoSize -Property Disk, Partitions, DriveLetter, EbsVolumeId, Device, VirtualDevice, DeviceName, VolumeName
```

Exécutez le script comme suit :

```
PS C:\> .\mapping.ps1
```

Voici un exemple de sortie.

```
Disk  Partitions  DriveLetter   EbsVolumeId             Device      VirtualDevice   DeviceName              VolumeName
----  ----------  -----------   -----------             ------      -------------   ----------              ----------
   0           1            C   vol-0561f1783298efedd   /dev/sda1   N/A             NVMe Amazon Elastic B   N/A
   1           1            D   vol-002a9488504c5e35a   xvdb        N/A             NVMe Amazon Elastic B   N/A
   2           1            E   vol-0de9d46fcc907925d   xvdc        N/A             NVMe Amazon Elastic B   N/A
```

Si vous n'avez pas fourni vos informations d'identification sur l'instance Windows, le script ne peut pas obtenir l'ID du volume EBS et l'utilise N/A dans la `EbsVolumeId` colonne.

------

## Mappez des objets autres que NVMe des disques à des volumes
<a name="windows-volume-mapping"></a>

Le pilote du périphérique de stockage en mode bloc de l’instance attribue les noms de volume réels lors du montage des volumes.

**Topics**
+ [Volumes de stockage d’instance](#instance-store-volume-map)
+ [Volumes EBS](#ebs-volume-map)

### Volumes de stockage d’instance
<a name="instance-store-volume-map"></a>

Le tableau suivant décrit comment les pilotes PV et AWS PV Citrix mappent les volumes de stockage autres que les NVMe instances aux volumes Windows. Le nombre de volumes de stockage d’instance disponibles est déterminé par le type d’instance. Pour plus d’informations, consultez [Limites de volume de stockage d’instance pour les instances EC2](instance-store-volumes.md).


| Emplacement | Nom d’appareil | 
| --- | --- | 
| Bus numéro 0, ID cible 78, LUN 0 | xvdca | 
| Bus numéro 0, ID cible 79, LUN 0 | xvdcb | 
| Bus numéro 0, ID cible 80, LUN 0 | xvdcc | 
| Bus numéro 0, ID cible 81, LUN 0 | xvdcd | 
| Bus numéro 0, ID cible 82, LUN 0 | xvdce | 
| Bus numéro 0, ID cible 83, LUN 0 | xvdcf | 
| Bus numéro 0, ID cible 84, LUN 0 | xvdcg | 
| Bus numéro 0, ID cible 85, LUN 0 | xvdch | 
| Bus numéro 0, ID cible 86, LUN 0 | xvdci | 
| Bus numéro 0, ID cible 87, LUN 0 | xvdcj | 
| Bus numéro 0, ID cible 88, LUN 0 | xvdck | 
| Bus numéro 0, ID cible 89, LUN 0 | xvdcl | 

### Volumes EBS
<a name="ebs-volume-map"></a>

Le tableau suivant décrit comment les pilotes PV et PV Citrix AWS mappent les volumes EBS non NVME aux volumes Windows.


| Location | Nom d’appareil | 
| --- | --- | 
| Bus numéro 0, ID cible 0, LUN 0 | /dev/sda1 | 
| Bus numéro 0, ID cible 1, LUN 0 | xvdb | 
| Bus numéro 0, ID cible 2, LUN 0 | xvdc | 
| Bus numéro 0, ID cible 3, LUN 0 | xvdd | 
| Bus numéro 0, ID cible 4, LUN 0 | xvde | 
| Bus numéro 0, ID cible 5, LUN 0 | xvdf | 
| Bus numéro 0, ID cible 6, LUN 0 | xvdg | 
| Bus numéro 0, ID cible 7, LUN 0 | xvdh | 
| Bus numéro 0, ID cible 8, LUN 0 | xvdi | 
| Bus numéro 0, ID cible 9, LUN 0 | xvdj | 
| Bus numéro 0, ID cible 10, LUN 0 | xvdk | 
| Bus numéro 0, ID cible 11, LUN 0 | xvdl | 
| Bus numéro 0, ID cible 12, LUN 0 | xvdm | 
| Bus numéro 0, ID cible 13, LUN 0 | xvdn | 
| Bus numéro 0, ID cible 14, LUN 0 | xvdo | 
| Bus numéro 0, ID cible 15, LUN 0 | xvdp | 
| Bus numéro 0, ID cible 16, LUN 0 | xvdq | 
| Bus numéro 0, ID cible 17, LUN 0 | xvdr | 
| Bus numéro 0, ID cible 18, LUN 0 | xvds | 
| Bus numéro 0, ID cible 19, LUN 0 | xvdt | 
| Bus numéro 0, ID cible 20, LUN 0 | xvdu | 
| Bus numéro 0, ID cible 21, LUN 0 | xvdv | 
| Bus numéro 0, ID cible 22, LUN 0 | xvdw | 
| Bus numéro 0, ID cible 23, LUN 0 | xvdx | 
| Bus numéro 0, ID cible 24, LUN 0 | xvdy | 
| Bus numéro 0, ID cible 25, LUN 0 | xvdz | 