23 июля 2012 г.

Создание разделов с помощью DiskPart
[Create partitions with DiskPart]

   DiskPart представляет собой консольную утилиты с интерфейсом командной строки для работы с дисками (disk), разделами (partition) и томами (volume). Разработана Майкрософт для ОС семейства Windows. Следовательно должно быть намного меньше проблем, как, например, при использовании ПО от Acronis, или Paragon. Имеет гораздо больше возможностей, чем оснастка "Управление дисками" с графическим интерфейсом. Так же DiskPart можно запустить во время установки Windows Vista/7/8, что поможет в дальнейшем не создавать лишний зарезервированный раздел размером в 100МБ, который Windows создает автоматически.

   Итак, начало положено. Теперь поподробней про этот "таинственный" раздел, создающийся автоматически.
   При разметке диска во время установки Windows 7, кроме создания раздела под систему, выбранного нами размера, установщик создаст основной раздел размером 100МБ, в котором в дальнейшем будут находиться загрузочные файлы (bootmgr и BCD (Boot Configuration Data)). Это понятно, но зачем нам отдавать Windows 7 лишний основной раздел, если максимум их может быть 4 (или 3 при использовании расширенного(extended) раздела)? И нужна ли нам эта путаница с 2 разделами Windows 7? Разве что стоит упомянуть, что он необходим в случаях сжатия раздела или шифрования раздела Windows c помощью BitLocker™. Также он нужен в случае использования NTFS c размером кластера >4k. Во всех остальных случаях в нем нет необходимости. Значит обычному пользователю он не нужен.

Что сделать, чтобы не создавался этот дополнительный раздел?

   Всё просто! Нужно устанавливать Windows на уже отформатированный активный раздел приоритетного жесткого диска. Если жесткий диск в компьютере один, то он и будет приоритетным. Если же их несколько, то рекомендуется отключить лишние диски на время установки Windows. Либо правильно расставить приоритеты в BIOS (UEFI).

Рассмотрим 2 ситуации:
1. Диск пуст. Никаких данных на нем нет, или данные не важны.
2. Диск уже размечен. Т.е. он содержит раздел(-ы) с важной информацией, который(-ые) нужно оставить без изменения, а так же на диске имеется раздел(-ы), который(-ые) нужно удалить.

   Для запуска DiskPart во время установки Windows, на первом этапе нажимаем Shift+F10 и попадаем в командную оболочку cmd. Запускаем дисковую утилиту diskpart.

   Для запуска DiskPart из уже установленной Windows 7/Vista, требуются права администратора, поэтому cmd запускать с правами администратора.

   Для вызова общей справки в diskpart существует команда help, или для получения справки по отдельной команде используйте help имя_команды (например help clean).

На следующих примерах будет использоваться виртуальный жесткий диск объемом 20ГБ, на той же виртуальной машине VMware. DiskPart будет запускаться из оболочки cmd во время установки Windows 7.
Дополнительные пункты, которые относятся к работе в уже установленной ОС, отмечены "*" и выделены курсивом.

   Ситуация №1.
   Диск пуст. Никаких данных на нем нет или данные не важны. Создадим основной раздел для системы, и расширенный раздел в котором будет два логических раздела для данных и для документов.

   Последовательность действий.
1. Смотрим список дисков в системе.
list disk
2. Установим фокус на приоритетный (первый в БИОСе) диск для дальнейшей работы.
sel disk=system
или
sel disk N               - выбираем диск с номером N
3. Проверим, что выбрался требуемый диск.
detail disk
или
list disk
4. Удалим информацию на диске, обнуление MBR.
clean
или
clean all                 - обнуление всех секторов на диске
5. Создадим основной (primary) раздел под систему размером Х мегабайт.
create part primary size=X
6. Сделаем его активным (загрузочным).
active
7. Отформатируем раздел в NTFS, присвоим метку (имя логического диска) "System", применим быстрое форматирование.
format fs=ntfs label=System quick
*. Если необходимо (например, когда раздел создается во время обычной работы в ОС, для дальнейшего его заполнения данными из под ОС), подключим этот раздел к системе (присвоим букву лог. диску в текущей ОС).
assign
8. Создадим расширенный (extended) раздел под данные и документы на все оставшееся дисковое пространство.
create part extended
9. Внутри расширенного раздела создадим логический (logical) раздел для данных, размером Х мегабайт.
create part logical size=X
10. Отформатируем раздел в NTFS, присвоим метку "Data", применим быстрое форматирование.
format fs=ntfs label=Data quick
*. Если необходимо, подключим этот раздел к системе.
assign
11. Повторим пункты 9 и 10 для раздела с документами. Внутри расширенного раздела создадим логический (logical) раздел для документов, на все оставшееся пространство.
create part logical
12. Отформатируем раздел в NTFS, присвоим метку "Documents", применим быстрое форматирование.
format fs=ntfs label=Documents quick
*. Если необходимо, подключим этот раздел к системе.
assign
13. Смотрим, что получилось.
detail disk
14. Если все правильно, ты выходим из diskpart.
exit
15. Так же, если командная строка больше не нужна, то из нее тоже выходим.
exit
*. Устанавливая систему на отформатированный первичный раздел с меткой "System", Windows не будет создавать дополнительный основной 100МБ раздел. Вот результат после установки Windows 7 с нашими разделами.


   Ситуация №2.
   Диск состоит из выше созданной конфигурации. 1 основной раздел, 1 расширенный. Расширенный раздел состоит из 2 логических разделов. Нужно удалить раздел с системой, расположившейся на основном разделе, и один из логических разделов внутри расширенного раздела, пусть это будет раздел с меткой "Data". На месте 1 основного раздела создать 2 основных раздела, и присвоить им метки "Win7" и "WinXP". На месте логического раздела создать 2 логических раздела с метками "Data1" и "Data2".

   Последовательность действий.
   Так как на диске содержится важная информация, советую, как можно чаще, использовать команды "detail disk" и "list part" для контроля за своими действиями. Ну и как всегда, автор не несет ответственности за проделанные вами действия.
1. Первые 3 пункта без изменений. Смотрим список дисков в системе.
list disk
2. Установим фокус на приоритетный (первый в БИОСе) диск для дальнейшей работы.
sel disk=system
или
sel disk N               - выбираем диск с номером N
3. Проверим, что выбрался требуемый диск.
detail disk
или
list disk
4. Смотрим, какие разделы имеются на диске и их порядок нумерации.
list part
5. Совмещаем эти номера с их именами и размерами (в уме, или на листочке), ориентируясь на результаты следующей команды.
detail disk
6. Понимаем, что диск основой раздел под номером 1 и размером 17ГБ, имеет метку "System" и именно его мы должны удалить. Для этого установим фокус на данный раздел.
sel part 1
*. Можно проверить, что выбрался именно тот раздел, который хотели выбрать.
detail disk
7. Удаляем выбранный раздел.
del part
8. Проверяем, что все правильно удалилось.
detail disk
list part
9. Создадим основной (primary) раздел под систему "Win7" размером Х мегабайт.
create part primary size=X
10. Сделаем его активным (загрузочным).
active
11. Отформатируем раздел в NTFS, присвоим метку (имя логического диска) "Win7", применим быстрое форматирование.
format fs=ntfs label=Win7 quick
12. Создадим основной (primary) раздел под систему "WinXP", на все оставшееся место.
create part primary
13. Отформатируем раздел в NTFS, присвоим метку (имя логического диска) "WinXP", применим быстрое форматирование.
format fs=ntfs label=WinXP quick
14. Проверяем, что все правильно создалось.
detail disk
list part
15. Теперь будем удалять логический раздел размером 1000МБ, имеющий метку "Data". Для этого установим фокус на данный раздел.
sel part 2
16. Удаляем выбранный раздел.
del part
17. Проверяем, что все правильно удалилось.
detail disk
list part
9. Создадим логический (logical) раздел под первые данные размером Х мегабайт.
create part logical size=500
11. Отформатируем раздел в NTFS, присвоим метку (имя логического диска) "Data1", применим быстрое форматирование.
format fs=ntfs label=Data1 quick
12. Создадим логический (logical) раздел под вторые данные, на все оставшееся место.
create part logical
13. Отформатируем раздел в NTFS, присвоим метку (имя логического диска) "Data2", применим быстрое форматирование.
format fs=ntfs label=Data2 quick
14. Проверяем, что все правильно создалось.
detail disk
list part
14. Если все правильно, то выходим из diskpart.
exit
15. Так же если командная строка больше не нужна, то из нее тоже выходим.
exit
В итоге получили 4 новых раздела (2 основных и 2 логических), и 1 нетронутый старый (логический раздел с меткой "Documents").
Вот так вот это выглядит через оснастку "Управление дисками" в Windows 7, после установки ее на раздел с меткой "Win7".

Используемый материал:
Некоторые вопросы инсталляции Windows 7/Vista/Server2008/Server2008R2.
Общие сведения о разделах диска.
Рекомендуемые конфигурации разделов дисков в системах на базе BIOS.
Параметры командной строки DiskPart
Описание программы Diskpart с интерфейсом командной строки


При копировании статьи просьба указывать источник и автора.
С уважением, GRomR1.

26 комментариев:

  1. Благодарю за пример работы с DiskPart. (Зашел по первой ссылке в Google)

    ОтветитьУдалить
  2. Отформатировал жесткий диск с уже существующей VMFS

    ОтветитьУдалить
  3. Спасибо! я уж думал не найду выход с создавшей положение!)) спасибо автору!

    ОтветитьУдалить
  4. а как автоматизировать - определённый набор команд по diskpart в скрипт запихать напримр *.bat ?

    ОтветитьУдалить
    Ответы
    1. Из справки Microsoft:
      "Чтобы запустить сценарий DiskPart, введите в командной строке следующую команду:
      diskpart /s имя_сценария .txt
      где имя_сценария.txt - это имя текстового файла, содержащего сценарий."

      Либо в гугл за подробностям, запрос: "сценарии DiskPart"

      Удалить
  5. Не знаю, не проверял. Попробуйте, буду рад узнать результат.
    Но думаю, что можно.

    ОтветитьУдалить
  6. А как сделать несколько primary разделов на флешке? diskpart не дает два раза выполнить команду create partition primary, сообщая о нехватке свободного места, даже если флешка 16gb, а первая команда например create partition primary size=10000

    ОтветитьУдалить
    Ответы
    1. На флешке нельзя просто так (без подмены драйвера) создавать несколько разделов.
      Подробности тут:
      http://gromr1.blogspot.ru/2012/01/bootice.html

      Удалить
  7. спасибо большое часа 2 лазил по инету наконец нашел решение проблемы

    ОтветитьУдалить
  8. День добрый. assign - с его помощь можно скрытый раздел сделать явным, дав ему букву для расположения. Как сделать обратное - "забрать" букву и вновь скрыть его?

    ОтветитьУдалить
    Ответы
    1. Всё, уже нашёл ответ на свой вопрос :)

      Удалить
  9. Уважаемый Gromr1!
    HDD разбил утилитой Diskpart на 4 раздела (естественно таблица стиля MBR): 1-й -25Gb для WinXP, 2-й -60Gb для Win7, 3-й -70Gb для Win10 (все 3 раздела primary) и 4-й р-л extended, в котором создал 3 логических р-ла. Встала проблема: какому р-лу нужно присвоить статус ACTIVE, чтобы не было проблем с установкой вышеуказанных операционных систем? Огромная благодарность за вашу статью, так как использовал для разбивки диска именно её!
    Виталий.

    ОтветитьУдалить
    Ответы
    1. Если по-провильному, то желательно делать в следующем порядке.
      1. Установить ACTIVE раздел 1.
      2. Установить Windows XP на раздел 1.
      3. Установить ACTIVE раздел 2.
      4. Установить Windows 7 на раздел 2.
      5. Установить ACTIVE раздел 3.
      6. Установить Windows 10 на раздел 3.
      Таким образом, на каждом разделе будет свой независимый загрузчик операционной системы, который не будет конфликтовать с другими. И если вдруг возникнет необходимость удалить один из разделов, то его удаление почти не затронет процесс загрузки ОС, и не придется устанавливать загрузчик. Будет необходимо только поправить файл конфигурации загрузки ОС - BCD.

      Удалить
  10. GRomR1, такой вопрос: раньше создавал загрузочную флешку и с помощью diskpart сделал из флешки(съемный диск) локальный диск(с разделом и буквой) как мне вернуть все назад и сделать съемный диск? Загрузочная флешка мне теперь не нужена а магнитола в машине не хочет читать такую флешь.

    ОтветитьУдалить
    Ответы
    1. Я бы рекомендовал отформатировать ее с помощью HP USB Disk Storage Format Tool
      как пользоваться: http://shparg.narod.ru/index/0-35#par2
      скачать: https://drive.google.com/uc?export=download&id=0B_rTW29O5EMNbUwxOHZxbkExMm8

      Удалить
  11. Есть три раздела на gpt диске - c D f. C под систему , а остальные под данные. Как объединит два раздела с данными (D f) в один раздел?

    ОтветитьУдалить
  12. Спасибо, очень помогло.

    ОтветитьУдалить
  13. Спасибо, добрый грамотный человек!

    ОтветитьУдалить
  14. Здравствуйте!
    Пару дней рою инет, но нигде не могу найти ответ...
    Не подскажете, есть ли возможность при установке WIN 7, вручную указать с помощью командной строки какой раздел использовать в качестве системного? Естественно этот раздел уже есть на HDD он системный, активный, FAT32, на нем установлена WIN XP. Хочу установить WIN 7 на дополнительный раздел NTFS. Win 7 устанавливаю с дополнительно подключенного SATA HDD, отформатированного в FAT32, и на него просто скинут дистрибутив 7-ки. При установке получается что windows 7 использует именно этот раздел (с дистрибутивом) в качестве системного. При отключении HDD с дистрибутивом естественно загрузки 7-ки не происходит. Конечно есть способы уже ПОСЛЕ такой кривой установки привести "систему в чувство", но интересует именно на этапе установки с помощью командной строки, можно ли этого избежать.

    ОтветитьУдалить
    Ответы
    1. Сомневаюсь, что это возможно и оно того стоит. ОС Windows так устроена, что она возьмет первый HDD и его активный раздел в качестве основного, на который необходимо установить загрузчик. Чтобы при перезагрузке успешно загрузиться и продолжить установку. И таким образом она будет брать ваш дополнительный HDD с дистрибутивом и ставить на него загрузчик, думая, что этот диск не куда из системы не денется.
      Способ, как избежать это, я вижу один, скинуть дистрибутив на флешку и производить установку с нее. Тогда ОС не расползется на два диска и все будет как и должно быть.
      Но если все же хочется ставить с именно с жесткого диска, то будьте готовы починить загрузчик ОС. Благо и правда в интернете полно инструкций по этому поводу и это не так трудно. А я вообще рекомендую, использовать Grub4Dos для этих целей и выбора загружаемой системы.
      Успехов!

      Удалить
  15. Доброго времени суток! Вопрос не очень в тему, но однажды пользуясь Вашей статьей и четкими ответами все получилось сделать как надо и поэтому хочется получить ответ именно здесь. DiskPart можно запустить по ранее написанному сценарию, но вот если делать загрузочную флешку и не только у себя дома то количество дисков и их номеров будет различаться... хотелось бы иметь такой сценарий в котором предусмотрена возможность выбора диска... нашел что-то похожее в инете, но абсолютно не рабочее... понимаю что после вывода команды list disk нам покажут инфу и по ней мы находим флешку и указываем на нее ... но вот как внести номер в переменную и дальше ее использовать придумать не получается ( Подскажите пожалуйста

    ОтветитьУдалить
  16. Есть диск 1 главный 1 расширенный в котором 2 логических. Должно быть 3 диска в итоге. видно в проводнике только 1 главный. открываю diskpart. в листе партишанов вижутакое:
    Раздел 1 основной (тот то работает)
    Раздел 0 расширенный
    Раздел 0 логический
    Раздел 0 логический

    как с этим жить? как обратиться к одному из логических разделов?

    ОтветитьУдалить