Disclaimer: не ждите откровений. У меня возникла проблема, решение не смог ни нагуглить, ни нахабрить — пришлось решать самому. Кому-то из гуру может показаться очевидным, кому-то может пригодиться.
Недавно возникла задача перегрузить компьютер с Win7 в Safe Mode. Все как обычно: Restart, список вариантов загрузки, F8… и ничего! Нажатие F8 вместо отображения меню с вариантами Safe Mode и прочими твиками просто загружает Windows обычным способом. Непорядок!
Коллективный разум через Google Search подсказал, что можно загрузиться в Safe Mode через MSConfig.exe: запускаем, переходим во вкладку Boot, выбираем нужный вариант загрузки и ставим галку напротив Safe Mode. Пробуем — работает! Заканчиваем дела в Safe Mode (вычищаем недопроапгрейдившийся Outpost), запускаем MSConfig снова, снимаем галку Safe Mode и возвращаемся к нормальной жизни.
Проблема успешно обойдена, но не решена — разбираемся дальше. После медитации на экран с вариантами загрузки заметил, что нет сообщения «Press F8 for Advanced Boot Options». Интересно… Идем опять копаться в коллективном разуме: для достижения подобного эффекта предлагают патчить ntldr или ставить какие-то сторонние программы — не выход. Смотрим MSConfig (Boot -> Advanced Options, как бы созвучно) — ничего. Но MSConfig не показывает строки параметров загрузки (ладно, boot.ini в Win6.x уже нет, и строк никаких тоже нет) — смотрим bcdedit.exe:
А почему это advancedoptions = No? Правим: bcdedit.exe /set advancedoptions 1, перегружаемся — попадаем в Advanced Boot Options! Ура? Перегружаемся еще раз — снова попадаем в Advanced Boot Options!
Получается, или они всегда недоступны, или всегда показываются при загрузке — совсем не то, что нужно. Чтение справки bcdedit выявило еще один вариант: bcdedit.exe /deletevalue advancedoptions убирает форсированное включение/отключение Advanced Boot Options и позволяет пользователю выбирать — это оно!
Возможно, кому-то еще пригодится, если вдруг заметите, что F8 не срабатывает. Или, как защита от шаловливых ручек юзеров (в XP таки приходилось патчить ntldr). Должно точно так же работать в Vista, но не проверял. Интересно, какие еще фокусы можно творить с виндовым бутлоадером?
Недавно возникла задача перегрузить компьютер с Win7 в Safe Mode. Все как обычно: Restart, список вариантов загрузки, F8… и ничего! Нажатие F8 вместо отображения меню с вариантами Safe Mode и прочими твиками просто загружает Windows обычным способом. Непорядок!
Коллективный разум через Google Search подсказал, что можно загрузиться в Safe Mode через MSConfig.exe: запускаем, переходим во вкладку Boot, выбираем нужный вариант загрузки и ставим галку напротив Safe Mode. Пробуем — работает! Заканчиваем дела в Safe Mode (вычищаем недопроапгрейдившийся Outpost), запускаем MSConfig снова, снимаем галку Safe Mode и возвращаемся к нормальной жизни.
Проблема успешно обойдена, но не решена — разбираемся дальше. После медитации на экран с вариантами загрузки заметил, что нет сообщения «Press F8 for Advanced Boot Options». Интересно… Идем опять копаться в коллективном разуме: для достижения подобного эффекта предлагают патчить ntldr или ставить какие-то сторонние программы — не выход. Смотрим MSConfig (Boot -> Advanced Options, как бы созвучно) — ничего. Но MSConfig не показывает строки параметров загрузки (ладно, boot.ini в Win6.x уже нет, и строк никаких тоже нет) — смотрим bcdedit.exe:
Windows Boot Loader
-------------------
identifier {current}
device partition=C:
path \Windows\system32\winload.exe
description Windows 7
locale en-US
inherit {bootloadersettings}
recoverysequence {1f0916c9-1973-11e0-9dde-cfa935f5faf7}
recoveryenabled Yes
advancedoptions No
osdevice partition=C:
systemroot \Windows
resumeobject {1f0916c7-1973-11e0-9dde-cfa935f5faf7}
nx OptIn
А почему это advancedoptions = No? Правим: bcdedit.exe /set advancedoptions 1, перегружаемся — попадаем в Advanced Boot Options! Ура? Перегружаемся еще раз — снова попадаем в Advanced Boot Options!
Получается, или они всегда недоступны, или всегда показываются при загрузке — совсем не то, что нужно. Чтение справки bcdedit выявило еще один вариант: bcdedit.exe /deletevalue advancedoptions убирает форсированное включение/отключение Advanced Boot Options и позволяет пользователю выбирать — это оно!
Возможно, кому-то еще пригодится, если вдруг заметите, что F8 не срабатывает. Или, как защита от шаловливых ручек юзеров (в XP таки приходилось патчить ntldr). Должно точно так же работать в Vista, но не проверял. Интересно, какие еще фокусы можно творить с виндовым бутлоадером?