Zarządzanie dyskami i partycjami z PowerShell

W tym artykule przyjrzymy się procesowi zarządzania dyskami, partycjami i woluminami z wiersza poleceń programu PowerShell. Wszystkie operacje związane z pracą z dyskami lokalnymi i partycjami, do których przywykłeś przy użyciu konsoli graficznej „Zarządzanie dyskami” (diskmgmt.msc) lub z wiersza poleceń narzędzia diskpart.exe, można wykonać z PowerShell. Polecenia cmdlet zarządzania dyskami zawarte w module Przechowywanie, dostępne w PowerShell 3.0. Zobaczymy, jak zainicjować dysk, utworzyć tablicę partycji, partycję na nim i sformatować. Poniższe polecenia będą działać w systemach Windows 10 / Server 2016 i Windows 8.1 / Server 2012 R2 (w poprzednich wersjach systemu Windows najpierw trzeba zaktualizować program PowerShell).

Treść

  • Lista dysków i partycji na nich
  • Inicjalizacja dysku
  • Utwórz partycje na dysku
  • Formatowanie partycji z PowerShell
  • Usuwanie partycji z dysku

W Windows 10 160 modułów jest dostępnych w module Storage. Aby wyświetlić wszystkie dostępne polecenia zarządzania dyskami, uruchom:

Get-Command-moduł pamięci

Jest ważne. Podczas pracy z dyskami i partycjami na nich z PowerShell, musisz uważać, aby nie przypadkowo usunąć lub sformatować partycję danych.

Lista dysków i partycji na nich

Przede wszystkim spróbuj wymienić dyski dostępne na poziomie logicznym w systemie. Aby to zrobić, uruchom polecenie:

Get-Disk | ft -AutoSize

Aby wybrać tylko dysk systemowy, na którym jest zainstalowany system Windows, uruchom polecenie:

Get-Disk | Where-Object IsSystem -eq $ True | fl

Jak widać, polecenie zwróciło następujące atrybuty dysku systemowego (można ich również użyć w zaznaczeniu):

UniqueId: SCSI \ DISK & VEN_VMWARE & PROD_VIRTUAL_DISK \ 5 & 1EC51BF7 oraz 0 i 000000: DESKTOP-JOPF9
Liczba: 0
Ścieżka: \\? \ Scsi # disk & ven_vmware & prod_virtual_disk # 5 & 1ec51bf7 & 0 & 000000 # 53f56307-b6bf-11d0-94f2-001efb8b
Producent: VMware
Model: dysk wirtualny
Numer seryjny:
Rozmiar: 80 GB
AllocatedSize: 85898297344
LogicalSectorSize: 512
PhysicalSectorSize: 512
NumberOfPartitions: 2
PartitionStyle: MBR
IsReadOnly: False
IsSystem: True
IsBoot: True

Wyświetlane mogą być tylko dyski ze statusem Offline:

Get-Disk | Where-Object IsOffline -Eq $ True | ft -AutoSize

Jeśli potrzebujesz informacji o dyskach fizycznych (charakterystyka i stan dysków fizycznych na komputerze), użyj polecenia cmdlet Get-physicaldisk (poprzednio pokazaliśmy, jak używać polecenia cmdlet Get-PhysicalDisk do identyfikowania uszkodzonego dysku w Storage Spaces Direct i jego użycia podczas konfigurowania pamięci odpornej na uszkodzenia S2D).

Za pomocą programu PowerShell można określić typ podłączonego dysku SSD lub HDD (zwykle podłączonego przez magistralę SATA) lub dysku flash USB (typ nieokreślony).

DeviceId Model MediaType Rozmiar BusType

- -                      -   --         --

0 TOSHIBA MK3775VSXP HDD SATA 500156374016

1 Samsung SSD 840 PRO Series SSD SATA 128060514304

2 Transcend Unspecified USB 128169757184

Możesz wyświetlić listę partycji na wszystkich dyskach:

Pobierz partycję

Lub partycje tylko na wskazanych dyskach:

Get-Partition -DiskNumber 1.2

Aby wyświetlić listę wszystkich partycji logicznych w systemie Windows, wykonaj następujące czynności:

Uzyskaj objętość

Należy pamiętać, że numeracja dysku zaczyna się od 0, a numeracja partycji zaczyna się od 1.

Inicjalizacja dysku

W poprzednim przykładzie widać, że jeden z dysków jest w trybie offline i ma znaczniki RAW w polu Styl partycji. Spróbujmy go zainicjować, utwórz tablicę partycji i utwórz na niej nową partycję.

Przede wszystkim musisz przenieść taki dysk do trybu online:

Get-Disk | Where-Object IsOffline -Eq $ True | Ustaw dysk - IsOffline $ False

Teraz możesz zainicjować ten dysk (jego indeks to 1):

Initialize-Disk -Number 1

Domyślnie na dysku tworzona jest tablica partycji GPT (GUID), jeśli potrzebujesz MBR, uruchom polecenie:

Initialize-Disk 1 -PartitionStyle MBR

Jeśli na dysku są już dane, możesz zmienić tabelę partycji z MBR na GPT bez usuwania danych za pomocą narzędzia mbr2gpt.exe.

Aby nie podawać numeru dysku, możesz zainicjować wszystkie dyski za pomocą tablicy partycji RAW:

Get-Disk | Where-Object PartitionStyle -Eq „RAW” | Zainicjuj dysk

Należy pamiętać, że dysk może być w stanie RAW, jeśli tablica partycji jest uszkodzona. Możesz spróbować przywrócić tablicę partycji i dane na dysku RAW.

Utwórz partycje na dysku

Aby utworzyć nową partycję dysku, użyj polecenia cmdlet Nowa partycja. Utwórz partycję 10 GB i przypisz jej literę dysku L:

Nowa partycja -DiskNumber 1 -Rozmiar 10 gb -DriveLetter L.

Jeśli partycja powinna zajmować całe dostępne miejsce na dysku, użyj atrybutu UseMaximumSize. Aby automatycznie przypisać literę dysku, użyj parametru AssignDriveLetter (czasami litera dysku może zostać automatycznie przypisana).

Nowa partycja -DiskNumber 1 -AssignDriveLetter -UseMaximumSize

Możesz zmienić przypisaną literę dysku na:

Set-Partition -DriveLetter L -NowyDriveLetter U

Jeśli chcesz rozwinąć istniejącą partycję, najpierw wydrukuj dostępne miejsce do rozbudowy dla tej partycji:

Get-PartitionSupportedSize -DriveLetter L | Lista formatów

Następnie możesz zwiększyć rozmiar partycji do maksimum:

$ MaxSize = (Get-PartitionSupportedSize -DriveLetter L) .SizeMax
Resize-Partition -DriveLetter L -Size $ MaxSize

Jeśli chcesz, aby określona sekcja była aktywna, użyj polecenia:

Set-Partition -DriveLetter T -IsActive $ true

Formatowanie partycji z PowerShell

Sformatujemy wynikową partycję w systemie plików NTFS i ustawimy etykietę woluminu DBData:

Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm: $ false

Usuwanie partycji z dysku

Aby usunąć wszystkie partycje z dysków 1 i 2 bez potwierdzenia, uruchom polecenie:

Get-Partition -DiskNumber 1.2 | Remove-Partition -Confirm: $ false

Aby usunąć wszystkie partycje z dysków i całkowicie wyczyścić dane, uruchom polecenie:

Clear-Disk -Number 1 -RemoveData -Confirm: $ false

Jeśli na dyskach znajdują się partycje OEM (partycja odzyskiwania OEM, partycja EFI, system zarezerwowany), należy użyć parametru RemoveOEM, aby je usunąć:

Clear-Disk -Number 1 -RemoveData -RemoveOEM

Poniższa jednowierszowa komenda PowerShell inicjuje wszystkie nowo zamapowane dyski RAW, tworzy na nich tabelę partycji i tworzy partycję z maksymalnym systemem plików NTFS. Jest wygodny w użyciu podczas podłączania nowego dysku:

Get-Disk | Where-Object PartitionStyle -eq 'RAW' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Potwierdź: $ false