|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Узнать, MBR или GPT? |
|
CMD/BAT - [решено] Узнать, MBR или GPT?
|
Старожил Сообщения: 148 |
Профиль | Сайт | Отправить PM | Цитировать Нужно получить данные, какой формат имеет диск С, MBR или GPT и исходя из этой инфы задать флаговую переменную как 0 или 1.
|
|
Отправлено: 19:10, 24-04-2013 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать m0nkrus, Iska, ITDemon, всё гениальное просто! Если не ошибаюсь, каждая копия Windows считает место хранения своего загрузочного тома не иначе как "диском 0", Вы проверьте Если загрузочный том всегда на диске 0, то:
@echo off CD /d %~dp0 echo Select Disk 0 >> diskpart.txt && echo detail disk >> diskpart.txt Diskpart /s diskpart.txt | Findstr /c:"{" IF ERRORLEVEL 1 ( ECHO Загрузочный том размещен на MBR-диске ) ELSE ( ECHO Загрузочный том размещен на GPT-диске ) del /q diskpart.txt pause На MBR WinXP и GPT Win8 проверил - работает корректно, подозреваю на остальных версиях тоже |
Отправлено: 02:13, 30-04-2013 | #41 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Ксеноинженер, сейчас проверить уже не могу: под рукой не осталось машин, где ОС была бы установлена не на первый накопитель. Тем более — с GPT .
|
Отправлено: 03:17, 30-04-2013 | #42 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Ксеноинженер, увы, тоже проверить не на чем. Я системный диск всегда втыкаю в первый SATA-порт, так что он у меня в любом случае нулевой.
Хоть я и не могу сказать, работает ли ваша конструкция, но оптимизировать код, избавившись от внешнего файла, думаю, смогу. Ваше: echo Select Disk 0 >> diskpart.txt && echo detail disk >> diskpart.txt Diskpart /s diskpart.txt | Findstr /c:"{" |
Последний раз редактировалось m0nkrus, 06-05-2013 в 08:57. Отправлено: 14:12, 03-05-2013 | #43 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Добавил вывод ИД диска, для наглядности принятия решения скриптом.
@echo off CD /d %~dp0 ((echo select disk 0 && echo detail disk) ^| diskpart.exe) | findstr /c:"ИД диска" & ((echo select disk 0 && echo detail disk) ^| diskpart.exe) | findstr /c:"{">nul IF ERRORLEVEL 1 ( ECHO Загрузочный том размещён на MBR-диске ) ELSE ( ECHO Загрузочный том размещён на GPT-диске ) pause Тем не менее, место хранения Загрузчика ОС есть Диск 0 всегда! В противном случае данная копия Windows "не загружабельна" без правки: любого имеющегося на Диске 0 загрузчика или BIOS, если загрузчика, на Диске 0, нет. Какой из SATA портов будет Диском 0 определяет первая строка в "Boot Sequence" в BIOS. Чтива полно на "железных" конференциях forum.oszone.net, ixbt.com. m0nkrus, оптимизация хороша, пригодится и для других задач тоже! |
Отправлено: 19:08, 03-05-2013 | #44 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Ксеноинженер, вот честно, не могу с уверенностью сказать, что мне нужно найти, где находится системный диск (скрытая 100-метровка) или загрузочный диск (диск С). Для первого случая ваш вариант подходит, для второго - не факт. Тут нужно тестировать, тестировать и еще раз тестировать. А не на чем...
Идея такой комплектации команд изначально не моя, а Iska. |
Отправлено: 19:45, 03-05-2013 | #45 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Цитата m0nkrus:
|
|
Отправлено: 22:29, 05-05-2013 | #46 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Ксеноинженер, я пробовал запустить установку винды на VirtualBox в UEFI-режиме - хрен вам!..
|
Отправлено: 22:36, 05-05-2013 | #47 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать m0nkrus, действительно, не стоит с VirualBox связываться, ведь конкурент субъективно стабильнее. Моя тестовая платформа "GPT EFI Boot":
|
Последний раз редактировалось Ксеноинженер, 06-05-2013 в 00:59. Отправлено: 00:25, 06-05-2013 | #48 |
Пользователь Сообщения: 92
|
Профиль | Отправить PM | Цитировать Цитата:
Однако, m0nkrus, как можно, не тестируя, серьёзно говорить про работу скрипта в предложенных Вами экзотичных вариантах системы? Краткая схема моих тестов:
Результат: В обоих случаях после стандартной установки и диск 0 под "Системным разделом" и диск N под "Загрузочным разделом" имеют один и тот же формат. Подозреваю, установщик Windows конвертирует чистый Диск 0 в формат диска под загрузочным разделом, выбранным во время установки, А если Диск 0 занят, то ошибка установки. Вывод: в "загружабельных" системах тип диска 0 и тип диска N под загрузочным разделом один и тот же, всегда. Какие ещё вопросы по теме топика? На практике наш с вами скрипт исправно работает, пусть и по косвенному признаку: ID Диска 0. |
|
Последний раз редактировалось Ксеноинженер, 06-05-2013 в 15:19. Отправлено: 15:13, 06-05-2013 | #49 |
Старожил Сообщения: 148
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Ксеноинженер:
|
|
Отправлено: 01:30, 07-05-2013 | #50 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - Как разбить HDD диск: MBR или GPT ? | jolo | Накопители (SSD, HDD, USB Flash) | 22 | 09-12-2014 04:46 | |
Разное - GPT в MBR без потери данных | V1P3RS | Microsoft Windows 7 | 13 | 02-04-2014 03:09 | |
Разное - GPT в MBR и нерабочий WiFi | pavel.trice@vk | Microsoft Windows 7 | 1 | 20-01-2013 13:33 | |
Установка - [решено] Установка Windows 7 на SSD с MBR-разметкой (требует GPT) | AtlASS | Microsoft Windows 7 | 14 | 14-11-2012 06:31 | |
HDD - [решено] Восcтановить MBR и/или информацию.. | Dick | Накопители (SSD, HDD, USB Flash) | 17 | 27-07-2012 18:33 |
|