Get-Disk 和 Get-PhysicalDisk 返回不同的结果

Get-Disk 和 Get-PhysicalDisk 返回不同的结果

我正在尝试在 Windows 10 Pro 上设置存储空间,但 Get-Disk 和 Get-PhysicalDisk 的输出让我感到困惑:

PS C:\Windows\system32> Get-PhysicalDisk | select DeviceId,friendlyname,serialnumber,canpool

DeviceId friendlyname              serialnumber         canpool
-------- ------------              ------------         -------
2        Samsung SSD 980 PRO 500GB 0025_38BB_0152_4B00.   False
1        Samsung SSD 980 PRO 500GB 0025_38BB_0152_4B51.   False
0        Samsung SSD 870 QVO 2TB   S5SUNF0R209736R        False


PS C:\Windows\system32> Get-Disk | select Number,friendlyname,serialnumber

Number friendlyname              serialnumber
------ ------------              ------------
     1 Samsung SSD 980 PRO 500GB 0025_38BB_0152_4B51.

我真正想要实现的是创建一个具有磁盘 0 和 2 的分层存储池,使用磁盘 2 作为缓存。

问题似乎是这些物理磁盘未被识别为“逻辑磁盘”(如果这是一个术语的话)。我尝试过初始化磁盘(应该初始化分区表),但无法通过编号找到磁盘:

PS C:\Windows\system32> Initialize-Disk -Number 0
Initialize-Disk : No MSFT_Disk objects found with property 'Number' equal to '0'.

我已经尝试过 Reset-PhysicalDisk,但它对 Get-Disk 返回的列表没有任何作用。

因此,我认为有两个相关的问题:

  • 如何使物理磁盘成为“CanPool”?
  • 如何让 Get-PhysicalDisk 列出的磁盘显示在 Get-Disk 中?

答案1

您的问题的答案仅仅是Get-Disk逻辑磁盘,并Get-PhysicalDisk返回附加的磁盘设备,但看起来您知道这一点。

Get-PhysicalDisk实际上有一个CannotPoolReason属性可能对你有帮助:

Get-PhysicalDisk | Select DeviceID,CanPool,CannotPoolReason

deviceid canpool CannotPoolReason     
-------- ------- ----------------     
0          False Insufficient Capacity
2          False Insufficient Capacity
1          False Insufficient Capacity

存储池中使用的磁盘必须没有分区(因此不应显示在Get-Disk 不应初始化)。使用以下命令进行检查:

Get-Partition -DiskNumber 0,2

如果您列出了任何分区,或者您已初始化磁盘,请使用Reset-PhysicalDisk进行修复。请注意,这擦除磁盘上的所有数据,所以要小心。有时您可能必须重新扫描磁盘(或重新启动机器)才能CanPool正确设置它们。

最后,一旦您的磁盘可以池化,您就可以创建存储池。这只是一个示例,因此请根据需要更改值。

$PhysicalDisks = Get-PhysicalDisk -CanPool $True

# Create the pool
New-StoragePool -FriendlyName "Data" -StorageSubsystemFriendlyName "MyStorage*" -PhysicalDisks $PhysicalDisks | 

    # And, optionally create a partition within your pool to use:
    New-VirtualDisk -FriendlyName "UserData" -Size 100GB -ProvisioningType Thin | 
    Initialize-Disk -PassThru | 
    New-Partition -AssignDriveLetter -UseMaximumSize | 
    Format-Volume

存储空间会自动使用最快的硬盘层进行缓存。祝你好运!

[编辑] 看起来你在我之前几秒就找到了答案:^)

答案2

好的,我明白了。

我从 Linux Live-USB 重新启动以查看分区表,结果发现这两个磁盘已经为存储空间进行了分区。我打开了存储空间的 GUI,并认为它没有我想要的功能(分层),但显然它已经为存储空间对驱动器进行了分区,这使得它们无法用于所有其他操作。

我甚至开始重新安装,但只有一个磁盘可用。

我有可能使用控制面板或 powershell 中的存储空间管理来撤消此操作,但此时分区在我重新安装尝试时已经被破坏了。

相关内容