
WSL2가 호스트 Win11 운영 체제와 어떻게 상호 작용하는지 이해하려고 합니다.
WSL 디스크 드라이브 목록 요약에서는 내 USB 썸드라이브 \\.\PHYSICALDRIVE2
와 내부 SSD를 다음과 같이 보고합니다.\\.\PHYSICALDRIVE0
하지만 regedit에는 HKLM\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\ Scsi Bus 0\Target ID 0\Logical Unit Id 0\DeviceName
내 SSD가PhysicalDrive2
왜 불일치가 발생하는지 아시나요?
답변1
DeviceName
레지스트리가 귀하의 드라이브에 대해(또는 해당 속성을 생성한 것이 무엇인지) 보고하는 이유를 잘 모르겠습니다 . 일반적으로 HARDWARE
레지스트리 섹션은 문서화되지 않은 것으로 보입니다. 그리고 보시다시피 그건~ 아니다어쨌든 마운트에 사용해야 하는 실제 이름입니다.
참고로 내 시스템에는 SSD가 3개 있는데 DeviceName
SCSI 섹션에는 SSD가 하나도 없습니다. 예를 들어:
> 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...}
이전 Windows 릴리스나 다른 소프트웨어에서 시스템의 어느 시점에 이를 설정했을 수 있습니다. 레지스트리에 있는 해당 이름이 유효하더라도 다음에 적용될 가능성이 높습니다.저것시스템 전체가 아닌 특정 SCSI 버스/포트.
그러나 그럼에도 불구하고 SCSI 버스 레지스트리는 WSL 탑재에 사용해야 하는 이름의 소스가 아닙니다. 이는 CIM을 통해 WMI에서 반환됩니다. 에서 볼 수 있듯이이 기사:
이 데이터는 어디서 얻습니까?. 대답은 이 데이터가 WinApi, Windows 레지스트리, SMBIOS 또는 MOF 정의에 포함된 사용자 지정 기능과 같은 다양한 소스에서 가져온다는 것입니다.
따라서 레지스트리에서만 드라이브 정보를 직접 얻을 수 있다고 반드시 기대할 수는 없습니다. 또한 해당 기사에는 WMI가 해당 값을 검색하는 방법을 확인하는 방법이 분명히 나와 있지만, PowerShell에 매핑되는 방법을 확인하기 위해 Delphi 코드를 자세히 살펴보지는 않았습니다. 이에 상응하는 PowerShell 기사는 Microsoft에서 오프라인으로 전환한 것 같습니다. 아마도 PowerShell에서 WMI가 CMI로 대체되었기 때문일 것입니다.
다음과 같이마이크로소프트 문서계속 사용하세요 ...
GET-CimInstance -query "SELECT * from Win32_DiskDrive"
... 와 함께 사용할 적절한 이름을 얻으려면 wsl --mount
. 또한 이러한 점에 유의하십시오.하다에서 볼 수 있는 것과 동일한 "디스크 번호"에 매핑되는 것 같습니다.컴퓨터 관리 -> 저장소 -> 디스크 관리.
답변2
다른 시스템을 살펴보면 HKLM:\HARDWARE\DEVICEMAP\Scsi... 장치에 대한 DeviceName 값이 하나도 없으므로 이는 정말 말도 안되는 추격전이었습니다...
그러나 Microsoft-Windows-StorageSpaces-Driver/Operational eventID 207에는 Get-CimInstance의 \.\PHYSICALDRIVE 번호와 일치하는 DeviceNumber가 포함되어 있고 DriveID {GUID} 및 드라이브 일련 번호도 포함되어 있음을 발견했습니다. 내가 궁극적으로 찾고 있던 것은