У цій статті ми розглянемо процес управління дисками, розділами і томами з командного рядка PowerShell. Всі операції по роботі з локальними дисками і розділами, які ви звикли виконувати за допомогою графічної консолі "Управління дисками" (diskmgmt.msc) або з командного рядка утиліти diskpart.exe, ви можете виконати з PowerShell. Командлети управління дисками включені в модуль Storage, доступний в PowerShell 3.0. Ми подивимося як форматувати диск, створити на ньому таблицю розділів, розділ і відформатувати його. Розглянуті нижче команди будуть працювати в Windows 10 / Server 2016 і Windows 8.1 / Server 2012 R2 (в попередніх версіях Windows доведеться спочатку оновити PowerShell).
зміст:
- Виведення списку дисків і розділів на них
- ініціалізація диска
- Створюємо розділи на диску
- Форматування розділу з PowerShell
- Видалення розділів на диску
У Windows 10 в модулі Storage є 160 команд. Щоб вивести всі доступні команди управління дисками, виконайте:
Get-Command -Module Storage
Виведення списку дисків і розділів на них
Перш за все спробуйте вивести список дисків, доступних на логічному рівні у вашій системі. Для цього виконайте команду:
Get-Disk | ft -AutoSize
Щоб вибрати тільки системний диск, на якому встановлена Windows, виконайте команду:
Get-Disk | Where-Object IsSystem -eq $ True | fl
Як ви бачите, команда повернула наступні атрибути системного диска (їх також можна використовувати в вибірці):
UniqueId: SCSI \ DISK & VEN_VMWARE & PROD_VIRTUAL_DISK \ 5 & 1EC51BF7 & 0 & 000000: DESKTOP-JOPF9
Number: 0
Path: \\? \ Scsi # disk & ven_vmware & prod_virtual_disk # 5 & 1ec51bf7 & 0 & 000000 # 53f56307-b6bf-11d0-94f2-001efb8b
Manufacturer: VMware
Model: Virtual disk
SerialNumber:
Size: 80 GB
AllocatedSize: 85898297344
LogicalSectorSize: 512
PhysicalSectorSize: 512
NumberOfPartitions: 2
PartitionStyle: MBR
IsReadOnly: False
IsSystem: True
IsBoot: True
Можна вивести тільки диски зі статусом Offline:
Get-Disk | Where-Object IsOffline -Eq $ True | ft -AutoSize
Якщо вам потрібна інформація про фізичних дисках (характеристики і стан фізичних дисків на комп'ютері), використовуйте командлет Get-PhysicalDisk (Раніше ми показували як за допомогою командлета Get-PhysicalDisk можна визначити несправний диск в Storage Spaces Direct і його використання при налаштуванні отказоустойчивого сховища S2D).
За допомогою PowerShell ви можете визначити тип підключеного накопичувача SSD або HDD (зазвичай підключений через шину SATA) або USB флешка (тип UnSpecified).
DeviceId Model MediaType BusType Size - - - -- -- 0 TOSHIBA MK3775VSXP HDD SATA +500156374016 1 Samsung SSD 840 PRO Series SSD SATA +128060514304 2 Transcend UnSpecified USB +128169757184 |
Ви можете вивести список розділів на всіх дисках:
Get-Partition
Або розділи тільки на зазначених дисках:
Get-Partition -DiskNumber 1,2
Щоб вивести список всіх логічних розділів в Windows виконайте:
Get-Volume
ініціалізація диска
У попередньому прикладі ви бачили, що один з дисків знаходиться в офлайн стані і має розмітку RAW в поле Partition Style. Спробуємо форматувати його, створити таблицю розділів і створити на ньому новий розділ.
Перш за все потрібно перевести такий диск в онлайн:
Get-Disk | Where-Object IsOffline -Eq $ True | Set-Disk -IsOffline $ False
Тепер можна форматувати цей диск (його індекс 1):
Initialize-Disk -Number 1
За замовчуванням на диску створюється таблиця розділів GPT (GUID), якщо вам потрібна саме MBR, виконайте команду:
Initialize-Disk 1 -PartitionStyle MBR
Щоб не вказувати номер диска, можна ініціалізувати всі диски з таблицею розділів RAW:
Get-Disk | Where-Object PartitionStyle -Eq 'RAW' | Initialize-Disk
Створюємо розділи на диску
Щоб створити новий розділ на диску використовується командлет New-Partition. Створимо розділ розміром 10 Гб і призначимо йому букву диска L:
New-Partition -DiskNumber 1 -Size 10gb -DriveLetter L
Якщо розділ повинен займати все доступне місце на диску, використовуйте атрибут UseMaximumSize. Для автоматичного призначення букви диска використовується параметр AssignDriveLetter (Іноді буква диска може автоматично на призначатися).
New-Partition -DiskNumber 1 -AssignDriveLetter -UseMaximumSize
Ви можете змінити призначену букву диска так:
Set-Partition -DriveLetter L -NewDriveLetter U
Якщо потрібно збільшити наявний розділ, спочатку виведіть обсяг пам'яті, доступний для розширення для даного розділу:
Get-PartitionSupportedSize -DriveLetter L | Format-List
Потім можна збільшити розмір розділу до максимального:
$ MaxSize = (Get-PartitionSupportedSize -DriveLetter L) .SizeMax
Resize-Partition -DriveLetter L -Size $ MaxSize
Якщо потрібно зробити конкретний розділ активним використовується команда:
Set-Partition -DriveLetter T -IsActive $ true
Форматування розділу з PowerShell
Відформатуємо отриманий розділ в файлову систему NTFS і поставимо мітку тому DBData:
Format-Volume -DriveLetter L -FileSystem NTFS -NewFileSystemLabel DBData -Confirm: $ false
Видалення розділів на диску
Щоб видалити всі розділи на дисках 1 і 2 без підтвердження, виконайте команду:
Get-Partition -DiskNumber 1,2 | Remove-Partition -Confirm: $ false
Для видалення з дисків всіх розділів і повного очищення даних виконайте команду:
Clear-Disk -Number 1 -RemoveData -Confirm: $ false
Якщо на диски є OEM розділи (OEM розділ відновлення, EFI розділ, System Reserved) для їх видалення потрібно ісползовать параметр RemoveOEM:
Clear-Disk -Number 1 -RemoveData -RemoveOEM
Наступна однорядкова PowerShell команда инициализирует все нові підключення диски типу RAW, створить на них таблицю розділів і створить розділ з файловою системою NTFS максимального розміру. Її зручно використовувати при підключенні нового диска:
Get-Disk | Where-Object PartitionStyle -eq 'RAW' | Initialize-Disk -PartitionStyle MBR -PassThru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm: $ false