DISKPART – управление дисками, томами и разделами в командной строке Windows.
Для работы с DISKPART требуются права администратора системы. Утилита является мощным, но небезопасными инструментом для работы с дисковыми данными, что требует определенных знаний, навыков, понимания того, что вы делаете, и каковы будут результаты ваших действий.
Формат командной строки:
/s — использовать сценарий DiskPart. Сценарий представляет собой текстовый файл с набором внутренних команд утилиты DISKPART.EXE
/? — отобразить подсказку по параметрам командной строки DISKPART.
При запуске без параметров, утилита переходит в интерактивный режим с ожиданием ввода команд пользователя. Для получения списка допустимых команд используется ввод знака вопроса или директивы help . В ответ на это действие отображается версия утилиты diskpart.exe и перечень допустимых команд DISKPART:
По каждой из команд, также можно получить краткую справку по использованию, например по команде FORMAT:
В справке приводится краткое описание команды, синтаксис и примеры использования:
Утилита diskpart.exe является мощным средством, предоставляющим администратору практически весь спектр возможностей, необходимых для работы с дисками и разделами, однако, при ошибках или необдуманных действиях, ее использование может привести к краху системы и потере пользовательских данных. Поэтому, для безопасного применения DISKPART, нужно в первую очередь освоить работу с ее внутренними командами, обеспечивающими получение сведений об объектах, над которыми планируется выполнять какие-либо действия и способы выбора этих объектов.
Для получения списка дисков используется команда:
В результате получаем список дисков, присутствующих в системе:
В данном случае имеется 4 физических диска, нумерация которых начинается с нуля — Диск 0 – Диск 3 . Для выбора какого-либо из них для дальнейших операций, используется команда SELECT:
select disk 0 — выбрать первый диск.
В списке объектов (в данном случае – дисков), получаемом по команде LIST, выбранный объект отмечается звездочкой.
Для получения подробной информации о выбранном диске используется команда DETAIL:
В результате отображается подробная информация о диске, выбранном командой SELECT:
Список разделов, имеющихся на выбранном диске можно посмотреть с помощью команды:
list partition Разделы, в отличии от дисков нумеруются начиная с единицы, а не с нуля:
Для выполнения каких-либо действий по отношению к разделу, его нужно также выбрать командой SELECT:
select partition 2 — выбрать второй раздел.
Для получения детальной информации о выбранном разделе используется команда:
Пример результат выполнения команды:
Для получения списка логических томов используется команда:
Подобная информация полезна при работе с флэшками и съемными дисками. В колонке Имя отображаются привычные буквы логических дисков, в колонке Метка — метка тома. Нумерация томов, как и дисков начинается с нуля. В данном примере Том 2 — это логический диск C: .
select volume 2 — выбрать том 2
detail volume — отобразить детальную информацию о томе, которому соответствует логический диск C: . Пример информации:
Для отображения сведений о текущей файловой системе выбранного тома и о поддерживаемых файловых системах для форматирования используется команда FILESYSTEMS. Пример отображаемых сведений:
Для завершения работы с DISKPART используется команда EXIT.
Практические примеры применения утилиты diskpart.exe для решения типовых задач при работе с дисками и разделами рассматривается ниже.
Назначение буквы скрытому системному разделу
Речь идет о доступе стандартными средствами к системным разделам или разделам восстановления производителей оборудования. Такие разделы обычно скрыты от пользователя для защиты от неосторожных действий, которые могут привести к повреждению системы или средств ее восстановления. Необходимость же доступа может быть вызвана, например, при создании внешнего носителя среды восстановления или переделки существующей среды под личные предпочтения. В тех случаях, когда производители оборудования принимают дополнительные меры по защите своих данных, описанные ниже приемы могут не сработать.
list volume — определяем список томов.
Как видим, Том 1 — это скрытый системный раздел (c меткой ”Зарезервировано системой”), не имеющий назначенной буквы.
select volume 1 — выбираем Том 1
assign letter=R — назначаем тому букву R:
Если назначение буквы пошло успешно, то отобразится соответствующее сообщение:
Подготовка загрузочной флэшки.
Нужно выполнить форматирование флэшки и создать на ней активный раздел.
в строке приглашения ввести команду для отображения списка дисков:
выбрать для последующих операций нужную флэшку:
select disk 3 — если флэшка отображалась в списке дисков как «Диск 3». При наличии в системе нескольких дисков, обычно достаточно знать объем используемой флэшки. Однако, ошибка в выборе диска может привести к потере хранящихся на нем данных и в качестве дополнительной информации можно использовать данные полученные по подкоманде detail (после выбора командой select disk ):
detail disk . Пример отображаемой информации:
очистить содержимое флэшки:
Команду clean желательно применять для удаления любого форматирования, ранее примененного к данному диску. После выполнения команды диск переходит в неинициализированное состояние. На MBR-дисках перезаписываются только сведения о структуре разделов MBR и данные скрытых секторов. На GPT-дисках перезаписываются сведения о структуре GPT-разделов, в том числе защитный MBR. Дополнительно обнуляется первый и последний мегабайт дискового пространства.
создать первичный раздел на выбранном диске:
create partition primary
выполнить форматирование созданного раздела:
format fs=ntfs Label=»FlashDisk» quick
Параметр quick задает режим быстрого форматирования, при котором не выполняется сканирование всей поверхности раздела, а сразу выполняется запись пустого оглавления.
сделать текущий раздел флэшки активным (установить флажок активности раздела):
Нужно отметить, что команда active не пишет на диск какие-либо загрузочные секторы или программы загрузки операционной системы, а только устанавливает флажок активности раздела в главном загрузочном секторе диска. Все прочие операции, обеспечивающие загрузку, выполняются другим программным обеспечением (bootsect.exe, grub4dos и т.п.)
Изменение разделов диска.
Допустим, возникла необходимость разбить существующий на данный момент диск C: на два диска C: и D: без потери данных. Фактически, необходимо освободить часть дискового пространства раздела, которому соответствует диск C: и создать новый раздел в освободившейся области. Порядок действий:
list disk — при необходимости, просмотреть список дисков и выбрать тот, с которым будем работать. Выбранный диск отмечается звездочкой:
list partition — просмотреть список разделов для выбора того, от которого нужно «отнять» дискового пространства. Например:
В данном случае, на диске имеется 3 раздела, два служебных и один, соответствующий диску C: размером 59Gb. При необходимости, уточнить сведения о разделах можно с помощью команды DETAIL PARTITION (после SELECT)
select partition 2 — выбираем раздел, от которого будем отрезать свободное дисковое пространство.
Для сокращения раздела (тома) используется команда SHRINK, подсказку по которой можно получить выполнив:
Для того, чтобы освободить 10000Mb ( приблизительно 10Гб, правильнее в расчетах вместо числа 1000 использовать 1024) из выбранного раздела, выполняем команду:
shrink desired=10000 — освободить 10000Мб.
При выполнении команды отображается объем освободившегося дискового пространства (естественно, не совсем 10Гб):
Теперь можно создать новый раздел, смежный с тем, у которого было отнято дисковое пространство, которое будет занято новым разделом:
create partition primary
Можно посмотреть, как теперь представлен список разделов диска:
Вновь созданный раздел не имеет файловой системы, которую предстоит создать, выполнив команду форматирования. Выбираем раздел :
select partition 4 Выбранный раздел (фокус) отмечается звездочкой в списке. При выполнении команды CREATE фокус автоматически перемещается на созданный раздел. Однако, во избежание неприятностей, стоит взять за правило, выбирать и проверять выбор перед выполнением опасных операций, как например форматирование. Подсказку по использованию команды FORMAT можно получить стандартным HELP FORMAT:
Для быстрого форматирования раздела с использованием метки тома Disk_D и файловой системы NTFS:
format fs=ntfs label=»Disk_D» quick
Ждем завершения операции:
Раздел готов к использованию, и ему можно присвоить букву командой ASSIGN:
assign letter=d — присвоить букву D:
В случае, если указанная буква уже назначена другому разделу, утилита выдаст сообщение об ошибке:
Нужно либо переназначить буквы с учетом нового раздела, либо использовать первую свободную, что делается при помощи команды ASSIGN без параметров:
При успешном присвоении буквы, отображается соответствующее сообщение:
Аналогичным образом решается задача объединения двух смежных разделов в один. Например, созданный в рассмотренном выше случае, диск D: нужно удалить и занимаемое им место присоединить к диску C: . Естественно, команда DISKPART не занимается сохранением пользовательских данных и этим вопросом должен озаботиться сам пользователь, и до того, как будет удален раздел. Для решения задачи нужно удалить раздел 4 (Disk_D в примере выше) и на освободившееся место расширить раздел 2 (Disk_C). Для удаления раздела используется команда DELETE, а для расширения команда EXTEND. Подсказка по использованию может быть получена стандартным образом:
Таким образом, для решения задачи, нужно выполнить последовательность команд:
select partition 4 — выбрать раздел для удаления.
delete partition — удалить выбранный раздел.
Как правило, раздел используется системой и команда удаления может завершиться ошибкой:
delete partition override — удалить выбранный раздел независимо от его использования системой.
После удаления, необходимо переместить фокус на тот раздел, который нужно расширить:
select partition 2 — выбрать раздел 2.
extend — расширить раздел на весь объем смежного свободного пространства.
сценарии и примеры для DiskPart diskpart scripts and examples
Область применения: Windows Server (половина ежегодного канала), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Используется diskpart /s для выполнения сценариев, автоматизирующих задачи, связанные с дисками, например для создания томов или преобразования дисков в динамические диски. Use diskpart /s to run scripts that automate disk-related tasks, such as creating volumes or converting disks to dynamic disks. Написание сценариев этих задач полезно при развертывании Windows с помощью автоматической установки или средства Sysprep, которые не поддерживают создание томов, отличных от загрузочного тома. Scripting these tasks is useful if you deploy Windows by using unattended Setup or the Sysprep tool, which do not support creating volumes other than the boot volume.
Чтобы создать сценарий DiskPart, создайте текстовый файл, содержащий команды DiskPart, которые необходимо выполнить, с одной командой в строке и без пустых строк. To create a diskpart script, create a text file that contains the Diskpart commands that you want to run, with one command per line, and no empty lines. rem Чтобы сделать строку комментарием, можно начать с строки. You can start a line with rem to make the line a comment. Например, Вот сценарий, который очищает диск, а затем создает раздел 300 МБ для среды восстановления Windows: For example, here’s a script that wipes a disk and then creates a 300 MB partition for the Windows Recovery Environment:
Примеры Examples
- Чтобы запустить сценарий DiskPart, в командной строке введите следующую команду, где имя_сценария — это имя текстового файла, содержащего скрипт: To run a diskpart script, at the command prompt, type the following command, where scriptname is the name of the text file that contains your script:
- Чтобы перенаправить выходные данные сценария DiskPart в файл, введите следующую команду, где файл_журнала — это имя текстового файла, в который DiskPart записывает выходные данные: To redirect diskpart’s scripting output to a file, type the following command, where logfile is the name of the text file where diskpart writes its output:
Комментарии Remarks
При использовании команды DiskPart в составе скрипта рекомендуется выполнять все операции DiskPart вместе в рамках одного сценария DiskPart. When using the diskpart command as a part of a script, we recommend that you complete all of the diskpart operations together as part of a single diskpart script. Можно выполнять последовательные скрипты DiskPart, но по крайней мере 15 секунд между каждым сценарием необходимо выполнить полное завершение работы, прежде чем запускать команду DiskPart в последующих сценариях. You can run consecutive diskpart scripts, but you must allow at least 15 seconds between each script for a complete shutdown of the previous execution before running the diskpart command again in successive scripts. В противном случае последующие сценарии могут завершиться ошибкой. Otherwise, the successive scripts might fail. Можно добавить паузу между последовательными сценариями DiskPart, добавив timeout /t 15 команду в пакетный файл вместе с сценариями DiskPart. You can add a pause between consecutive diskpart scripts by adding the timeout /t 15 command to your batch file along with your diskpart scripts.
При запуске программы DiskPart в командной строке отобразится версия и имя сервера DiskPart. When diskpart starts, the diskpart version and computer name display at the command prompt. По умолчанию, если при попытке выполнения задачи, выполняемой в скрипте, DiskPart обнаруживает ошибку, DiskPart прекращает обработку скрипта и выводит код ошибки (если не указан параметр noerr ). By default, if diskpart encounters an error while attempting to perform a scripted task, diskpart stops processing the script and displays an error code (unless you specified the noerr parameter). Однако при возникновении синтаксических ошибок программа DiskPart всегда возвращает ошибки, независимо от того, использовался ли параметр noerr . However, diskpart always returns errors when it encounters syntax errors, regardless of whether you used the noerr parameter. Параметр noerr позволяет выполнять такие полезные задачи, как использование одного сценария для удаления всех разделов на всех дисках, независимо от общего числа дисков. The noerr parameter enables you to perform useful tasks such as using a single script to delete all partitions on all disks regardless of the total number of disks.