Buenos di@s! En día de hoy vengo con algo diferente, cuantas veces os ha pasado que tenéis que quitar un discos de una maquina virtual, o ampliarlo, pero no sabéis cual es porque no os coincide la posición scsi, y además tenéis mas de uno con el mismo tamaño. Por ello os traigo la manera de identificarlo de una manera fácil, y sencilla.
Pre-requisitios
Una de los pre-requisitos que tenemos que tener para poder identificar el disco desde el sistema operativo, es añadir la siguiente linea dentro del archivo «vmx» de la maquina virtual.
disk.EnableUUID = "TRUE"
Si no sabes de lo que estoy hablando, seleccionamos una maquina, pulsamos «Edit Settings»–>»Advanced» –> «Edit Configuration»

Pulsamos sobre » Add Configurations Params».

Añadimos el nombre ,y el valor mencionados anteriormente. Una vez realizado pulsamos «OK».

Para no tener que repetir esto en todas las maquinas virtuales, os recomiendo añadir/modificar esta parámetro en nuestras plantillas.
Identificación discos en el S.O
En mi caso voy a optar por usar una maquina con S.O Red Hat 7. Para ellos lanzaremos el siguente comando, en el debemos sustituir nuestro sdX por el device que queramos.
/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sdX
Ejemplo
Aquí tenemos 2 devices con el código 36000XXXXXX. Nos guardaremos estos datos en un notepad, o en un sitio a la vista.

Identificar los discos de la maquina virtual mediante Powercli
Mediante el siguiente script seremos capaces de extraer el UUID que le pasa vSphere al sistema operativo.
Además este script nos proporcionara información acerca de los siguientes datos:
- Nombre de las maquina
- Numero del Hard Disk
- Posición SCSI
- Nombre del disco
- UUID
- Capacidad
Aquí os dejo el código, en mi caso lo he guardado como «Obtenerdiscosdetallado.ps1»
<#### Creador: Carlos Gonzalez Proposito : Script que nos proporciona todos los discos de la maquina de forma detallada. #> [CmdletBinding()]param( [String]$vm = "xxxxx", [Switch]$ExportCSV ) Clear-Host $OutFile = "$($PSScriptRoot)\Informacion Detallada discos $($vm).csv" $vm1 = get-vm $vm $vm1Disks = $vm1 | Get-HardDisk $infodiscos = @() foreach ($vm1disk in $vm1Disks ){ $infodiscos += [PSCustomObject]@{ VM_Primaria = $vm1.Name HD1_Nombre = $vm1disk.Name HD1_SCSI_ID = "$($vm1disk.ExtensionData.ControllerKey.ToString().SubString(3)):$($vm1disk.ExtensionData.UnitNumber)" HD1_MultiWriter = $vm1Disk.ExtensionData.Backing.Sharing.ToString().Trim("sharing") Nombre_Disco = $vm1disk.Filename Uuid = $vm1Disk.ExtensionData.Backing.Uuid Capacidad_GB = $vm1disk.CapacityGB } } Write-Output $infodiscos | Format-Table if ($ExportCSV){ Write-Host "Report exportado a $($OutFile)" $infodiscos | Export-Csv -Delimiter ";" -Path $OutFile -NoTypeInformation }
Lanzamos el script con los siguentes parametros
- VM : Nombre de la maquina que queremos obtener los discos de forma detallada.
- CSV : Si quieres podemos expórtalo a CSV, nos guardara el archivo en el mismo lugar donde se ejecuta el script.

Como vemos el script nos devuelve todos los datos que hemos mencionado anteriormente. Nos deberemos de fijar en los UUID.

Como podemos ver el UUID que aparece en Powershell Hard disk 1 con SCSI 0:0 coincide con el disco sda de la MV.
Conclusiones
Hasta aquí hemos llegado, como he visto identificar los discos de nuestro sistema operativo con respecto a vMware se ha vuelto sencillo, sino lo conocías espero que te sirva de ayuda tal, y como me sirve a mi. Nos vemos en los siguientes post.