用PowerShell建立與使用儲存空間

PowerShell

Windows 10內有一個儲存空間(Storage)的功能,可以在硬碟損壞或是故障的情況下保護您的硬碟資料,這個功能的概念類似於在軟體上執行的RAID,例如:使用三個硬碟做一個儲存空間,結果今天一個硬碟損壞後,您仍然可以透過剩下的兩顆硬碟繼續使用,本文將介紹使用UI與對應的PowerShell指令,來建立Window10的儲存空間(Storage)。

先從控制台→系統→儲存體→管理儲存空間,進到儲存空間的UI,

PowerShell_01

 

按下”建立新集區與儲存空間”,選取要建立儲存空間的硬碟,如果未格式化則會先要求格式化,格式化的PowerShell指令為:

Format-Volume -DriveLetter ‘磁碟機代號’ -FileSystem NTFS -Confirm:$false -Force

當選取完硬碟後,UI會直接帶到建立儲存空間的地方此時先案取消按鈕。

這樣就會擁有一個尚未有儲存空間的儲存集區。以上動作對應的PowerShell指定為

$PhysicalDisks = (Get-PhysicalDisk -CanPool $True)New-StoragePool -FriendlyName 儲存集區名稱 -StorageSubsystemFriendlyName “Windows Storage*” -PhysicalDisks $PhysicalDisks

 

接下來介紹如何新增儲存空間,點選UI的建立儲存空間後會進到以下UI

 

 

PowerShell_02

可以變更的有

  • 名稱,取一個適合可辨識的名稱即可,
  • 磁碟機代號,這邊會自動帶入尚未使用的磁碟機代號
  • 檔案系統,有NTFS、REFS可選擇,大多數是選擇NTFS
  • 備援系統,備援系統有分簡單(無備援)、雙向鏡像、三向鏡像、同位
    • 簡單(無備援): 儲存空間只會寫入一份資料,若該硬碟壞掉,資料可能會遺失
    • 雙向鏡像: 儲存空間會寫入兩份資料,但需要兩顆硬碟,若只是其中一個硬碟壞掉,則資料不會遺失
    • 三向鏡像: 儲存空間會寫入三份資料,但需要三顆硬碟,即便其中兩個硬碟同時壞掉,則資料不會遺失
    • 同位: 是可以提升儲存效率又可保護資料不會遺失的選項,但所需要的硬碟數量更多,想不受到一顆硬碟壞掉影響則需要至少三個硬碟;想不受兩顆硬碟壞掉影響則需要至少七顆硬碟
  • 大小,這邊就這自己的使用狀況做選擇,實際使用的硬碟容量會在下方的”包含備援”內顯示

選完後按下右下角的”建立儲存空間”按鈕即可建立儲存空間,以上動作對應的PowerShell指令如下

  • New-VirtualDisk -StoragePoolUniqueId (Get-StoragePool -FriendlyName 儲存集區名稱).UniqueId -FriendlyName 想取的儲存空間名稱 -Size 100GB
  • Get-VirtualDisk -FriendlyName ‘想取的儲存空間名稱’|Initialize-Disk -PartitionStyle GPT -confirm:$false
  • $disk = Get-Disk -FriendlyName ‘想取的儲存空間名稱
  • New-Partition -DiskNumber $disk.DiskNumber -DriveLetter ‘硬碟代號’ -UseMaximumSize ‘
  • Format-Volume -DriveLetter ‘硬碟代號’ -FileSystem NTFS -Confirm:$false -Force

 

接下來介紹,若是硬碟壞掉該如何處理,出現錯誤會像下圖一樣顯示,此時要做的步驟如下,關機→移除壞的硬碟→放回好的硬碟→開機,但有時UI並不會自己修復,此時就得手動Key PowerShell去指令解決了

PowerShell_03

開機後執行以下PowerShell語法,則會將錯誤的硬碟Reset

$BadDisks = Get-Physicaldisk | Where-Object -FilterScript {$_.HealthStatus -Eq “Unhealthy”}

Foreach ($BadDisk in $BadDisks)

{

Reset-PhysicalDisk -UniqueId $BadDisk.UniqueId

}

 

PowerShell_04

若是新的硬碟沒出現,則需要以下語法加上新的硬碟到儲存集區

 $PDToAdd = Get-PhysicalDisk -CanPool $True

Add-PhysicalDisk -StoragePoolFriendlyName “儲存集區名稱” -PhysicalDisks $PDToAdd

若此時實體硬碟機下還有錯誤的硬碟,則接下來需要將錯誤的硬碟給移除,語法如下,有時會無法移除,這時再執行一次即可

$PDToRemove = Get-PhysicalDisk | Where-Object -FilterScript $_.HealthStatus -Eq “Warning”

Remove-PhysicalDisk -PhysicalDisks $PDToRemove -StoragePoolFriendlyName “儲存集區名稱” -confirm:$false

但有時還是會遇到硬碟裝回去了,UI還是報警告的錯誤,這時建議將資料移出備份後,再重新建立儲存集區與儲存空間即可

 

 

參考資料:

  1. https://support.microsoft.com/zh-tw/windows/%E5%84%B2%E5%AD%98%E7%A9%BA%E9%96%93-windows-b6c8b540-b8d8-fb8a-e7ab-4a75ba11f9f2 – Windows 10 中的儲存空間

https://www.jorgebernhardt.com/how-to-create-virtual-disk-using-powershell/ – How to create a Virtual Disk using PowerShell

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料