
Estoy tratando de entender cómo interactúa WSL2 con el sistema operativo host Win11.
La lista de unidades de disco WSL informa brevemente mi unidad USB \\.\PHYSICALDRIVE2
y mi SSD interno como\\.\PHYSICALDRIVE0
Pero en regedit HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\ Scsi Bus 0\Target ID 0\Logical Unit Id 0\DeviceName
dice que mi SSD esPhysicalDrive2
¿Alguna idea de por qué la discrepancia?
Respuesta1
No estoy seguro de por qué el registro informa un error DeviceName
para su unidad (o qué pudo haber generado esa propiedad). En general, parece que la HARDWARE
sección del registro está bastante indocumentada. Y, como puedes ver, eso esnoel nombre real que necesita usar para el montaje de todos modos.
Como referencia, tengo tres SSD en mi sistema y ninguno tiene uno DeviceName
en la sección SCSI. Por ejemplo:
> Get-ChildItem 'HKLM:\HARDWARE\DEVICEMAP\Scsi\Scsi Port 5\Scsi Bus 0\Target Id 0\'
Hive: HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\Scsi\Scsi Port 5\Scsi Bus 0\Target Id 0
Name Property
---- --------
Logical Unit Id 0 InquiryData : {0, 0, 6, 18...}
SerialNumber : xxxx-xxxxx-xxx
Identifier : NVMe Samsung SSD 950 BXX7
DeviceType : DiskPeripheral
DeviceIdentifierPage : {0, 131, 0, 24...}
Puede ser que una versión anterior de Windows, o algún otro software, configure esto en algún momento de su sistema. Incluso si ese nombre en el registro es válido, probablemente se aplica aesobus/puerto SCSI en particular, y no el sistema en su conjunto.
Pero independientemente, el registro del bus SCSI no es la fuente de los nombres que necesita usar para el montaje WSL. Eso lo devuelve WMI (a través de CIM). Como puedes ver enEste artículo:
¿De donde se obtienen estos datos?. Bueno, la respuesta es que estos datos se obtienen de muchas fuentes como WinApi, el Registro de Windows, SMBIOS o funciones personalizadas integradas dentro de la definición MOF.
Por lo tanto, no necesariamente podemos esperar que pueda obtener la información de la unidad directamente desde el Registro únicamente. También en ese artículo, aparentemente hay una manera de determinar cómo WMI recupera esos valores, pero no me he sumergido en ese código Delphi para ver cómo podría asignarse a PowerShell. Microsoft parece haber desconectado el artículo equivalente de PowerShell, probablemente porque WMI fue reemplazado por CMI en PowerShell.
como elDocumentos de Microsoftdecir, seguir usando...
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
... para obtener el nombre adecuado para usar con wsl --mount
. Tenga en cuenta también que estoshacerparecen asignarse a los mismos "números de disco" que vería enAdministración de computadoras -> Almacenamiento -> Administración de discos.
Respuesta2
Al observar otros sistemas, ninguno de ellos tiene un valor DeviceName para ninguno de los dispositivos HKLM:\HARDWARE\DEVICEMAP\Scsi..., por lo que esta fue una búsqueda inútil...
Sin embargo, encontré que Microsoft-Windows-StorageSpaces-Driver/Operational eventID 207 contiene un DeviceNumber que coincide con el número \.\PHYSICALDRIVE de Get-CimInstance, y también contiene el DriveID {GUID} y el número de serie de la unidad, que era lo que finalmente estaba buscando