«Безопасный режим» подразумевает ограниченную загрузку Windows, например, запуск без сетевых драйверов. «Безопасный режим» нужен исключительно для решения проблем внутри системы, поэтому для постоянной работы с ОС (редактирование каких-либо документов и т.д.) он плохо подходит. «Безопасный режим» — это упрощённая версия ОС со всем необходимым. Его запуск не обязательно должен быть из БИОСа, например, если вы работаете в системе и заметили в ней какие-либо неполадки, то можете попытаться войти, используя «Командную строку». При этом, перезагрузка компьютера не потребуется. Если же вы не можете войти в операционную систему или уже вышли из неё, то лучше действительно попытаться войти через BIOS, так как это будет безопаснее.
Способ 1: Комбинация клавиш при загрузке
Данный способ самый простой и проверенный. Для этого вам понадобится перезагрузить компьютер и до того, как начнётся загрузка операционной системы, нажать на клавишу F8 или комбинацию Shift+F8. Затем должно появится меню, где потребуется выбрать вариант загрузки ОС. Помимо обычного, вы можете выбрать несколько разновидностей безопасного режима.
Иногда быстрая комбинация клавиш может не сработать, так как она отключена самой системой. В некоторых случаях её можно подключить, но для этого понадобится сделать обычный вход в систему.
Воспользуйтесь следующей пошаговой инструкцией:
- Откройте строку «Выполнить», нажав Windows+R. В появившемся окне, в поле ввода следует прописать команду
cmd
. - Появится «Командная строка», где требуется вбить следующее:
bcdedit /set {default} bootmenupolicy legacy
Для ввода команды используйте клавишу Enter.
- Если вам потребуется сделать откат изменений, то просто введите эту команду:
bcdedit /set default bootmenupolicy
Стоит помнить, что некоторые материнские платы и версии BIOS не поддерживают вход в Безопасный режим с помощью комбинаций клавиш во время загрузки (хотя такое встречается очень редко).
Способ 2: Загрузочный диск
Этот способ значительно сложнее предыдущего, но зато он гарантирует результат. Для его выполнения вам потребуется носитель с установщиком Windows. Для начала потребуется вставить флешку и перезагрузить компьютер.
Если после перезагрузки у вас не появляется Мастер установки Windows — значит, нужно сделать распределение приоритетов загрузки в BIOS.
Урок: Как включить в БИОС загрузку с флешки
Если при перезагрузке у вас появился установщик, то можно перейти к исполнению шагов из этой инструкции:
- Изначально выбираем язык, настраиваем дату и время, после чего нажимаем «Далее» и переходим в окно с установкой.
- Так как устанавливать систему заново не требуется, нужно перейти в пункт «Восстановление системы». Он находится в нижнем углу окна.
- Появится меню с выбором дальнейшего действия, где вам необходимо перейти в «Диагностику».
- Там будет ещё несколько пунктов меню, из которых выберите «Дополнительные параметры».
- Теперь откройте «Командную строку» при помощи соответствующего пункта меню.
- В ней нужно прописать эту команду —
bcdedit / set globalsettings
. С её помощью можно будет начать загрузку ОС сразу в безопасном режиме. Стоит помнить, что параметры загрузки потребуется после выполнения всей работы в «Безопасном режиме» вернуть в исходное состояние. - Теперь закройте «Командную строку» и вернитесь назад к меню, где нужно было выбрать «Диагностику» (3-й шаг). Сейчас только вместо «Диагностики» нужно выбрать «Продолжить».
- Начнётся загрузка ОС, но теперь вам будет предложено несколько вариантов загрузки, в том числе и «Безопасный режим». Иногда нужно предварительно нажать клавишу F4 или F8, чтобы загрузка «Безопасного режима» прошла верно.
- Когда вы закончите всю работу в «Безопасном режиме», откройте там «Командную строку». Win+R откроет окно «Выполнить», в него нужно ввести команду
cmd
для открытия строки. В «Командной строке» введите следующее:bcdedit /deletevalue {globalsettings} advancedoptions
Это позволит после завершения всех работ в «Безопасном режиме» вернуть приоритет загрузки ОС в норму.
Войти в «Безопасный режим» через BIOS порой бывает сложнее, чем кажется на первый взгляд, поэтому если есть такая возможность, пытайтесь войти в него непосредственно из операционной системы.
На нашем сайте вы можете узнать, как запустить «Безопасный режим» на операционных системах Windows 10, Windows 8, Windows XP.
Наша группа в TelegramПолезные советы и помощь
Мы продолжаем разбираться как работает ПК на примере клавиатуры и Windows 10. В этой статье поговорим о том как происходит единение софта и железа.
Старт системы
Полностью компьютер выключен когда он отключен от питания и конденсаторы на материнской плате разрядились. До эры смартфонов мобильные телефоны часто глючили и если перезагрузка не лечила проблему, то приходилось доставать батарею и ждать 10 секунд, потому что сбрасывалось программное состояние ОС, в то время как чипы на материнской плате и контроллеры устройств оставались активными сохраняя состояние, драйвера ОС к ним просто реконнектились. 10 секунд — время на разрядку конденсаторов, состояние чипов сбрасывается только при полном отключении.
Если же ПК подключен к розетке или батарее, то он находится в режиме Stand-By, это значит что по шине питания подаётся маленькое напряжения (5В) от которого запитываются некоторые чипы на материнке. Как минимум это системный контроллер, по сути это мини-компьютер запускающий большой компьютер. Получив уведомление о нажатии кнопки Power он просит блок питания/батарею подать больше напряжения и после инициализирует весь чип-сет, в том числе и процессор. Инициализация включает в себя перекачку кода и данных прошивки материнки (BIOS/UEFI) в оперативную память и настройку CPU на её исполнение.
Думать что кнопка Power это рубильник который подаёт электричество на CPU и тот начинает исполнять с заранее известного адреса прошивку BIOS неправильно. Возможно старые компьютеры так и работали. Кнопка включения находится на своей плате, вместе со светодиодами состояний и к материнке она подключается через специальный разъём. На картинке ниже видны контакты для кнопки Power, Reset, а также светодиодов с состоянием Power и чтения жёсткого диска. Нажатие кнопки включения переводится в сигнал на контакты материнки, откуда он достигает системный контроллер.
Контакты на материнке для подключения кнопки включения, светодиодов состояния Power, жёсткого диска и динамиков.
Плата ноутбука с кнопкой включения и светодиодом состояния
Cистемный контроллер обладает огромными полномочиями – включать и выключать компьютер, исполнять код в режиме ядра. Помимо него могут быть и другие чипы со сравнимыми возможностями, такие как Intel Management Engine или AMD Secure Technology (часть CPU), которые так же работают когда компьютер «выключен». Чип с Intel ME имеет в себе x86 CPU с операционной системой MINIX 3. Что он может делать:
- Включать и выключать компьютер, т.е. выполнять программы имея доступ ко всей вычислительной мощности, периферии машины и сети.
- Обходить ограничения файервола.
- Видеть все данные в CPU и RAM, что даёт доступ к запароленным файлам.
- Красть ключи шифрования и получать доступ к паролям
- Логировать нажатия клавиш и движения мыши
- Видеть что отображается на экране
- Вредоносный код в Intel ME не может быть детектирован антивирусом, потому как на такой низкий уровень он добраться не может
- И конечно же скрытно отправлять данные по сети используя свой стек для работы с сетью.
Это вызывает серьёзные вопросы безопасности, потому как он может быть хакнут или использовать в шпионских целях.
Прикладная иллюстрация как блок питания получает сигнал от материнки на включение. Если вы задумаете установить мощную видеокарту (Nvidia 2070 S) на офисный ПК, то просто вставить её недостаточно, потому как она требует питание в 600W, в то время как такой ПК имеет блок на ~500W. Первое что придёт в голову – купить новый блок питания на 650W с отдельной линией для видеокарты. Но и здесь будут разочарования, потому как разъёмы материнки будут не совпадать с разъёмами БП, а если его отдельно воткнуть в розетку и подключить к видюхе тоже ничего не будет – в блоке питания вентилятор не крутится и изображения нет. Так происходит, потому что БП должен получить сигнал от материнки на полное включение. Очевидное решение – новая материнка с совместимыми разъёмами, однако она стоит ~$300. Есть решение проще, хоть оно и вызывает опасения пожаробезопасности. Берём скрепку, разгибаем и вставляем в зелёный (PS_ON) и один из чёрных пинов (COM). Теперь всё должно работать.
Поиск загрузчика ОС
Есть два вида прошивки материнки – BIOS (Basic Input Output System) на старых машинах и UEFI (Unified Extensible Firmware Interface) на новых. Windows 10 поддерживает обе и абстрагирует различия между ними. UEFI правильней называть ОС чем прошивкой, потому как он предлагает больше возможностей, к примеру богатый графический интерфейс вместо текстового, наличие мышки, больший объём доступной памяти, улучшенная модель безопасности и валидации файлов ОС, взаимодействие с железом через API, вместо прерываний как в BIOS.
Пример экрана монитора BIOS.
Программа BIOS хранится на отдельном чипе, подключенном к Южному мосту. Этот чип можно достать и перепрошить новой программой, по факту это просто носитель памяти, а не самостоятельный микрокомпьютер.
Настройки BIOS (системное время, например), хранятся на другом чипе который как правило находится возле круглой батарейки, которая на самом деле является литиевым аккумулятором, подзаряжающимся во время работы ПК. Называется он CMOS, что означает Complementary Metal Oxide Semiconductor, а по-русски просто — КМОП, что есть комплементарная структура металл-оксид-полупроводник.
Первым делом программа BIOS выполняет проверку подсистем, эта процедура называется POST – Power On Self Test. Тест может быть сокращённый либо полный, это задаётся в настройках BIOS. Процитирую Википедию, что в себя включают эти тесты:
Сокращённый тест включает:
- Проверку целостности программ BIOS в ПЗУ, используя контрольную сумму.
- Обнаружение и инициализацию основных контроллеров, системных шин и подключённых устройств (графического адаптера, контроллеров дисководов и т. п.), а также выполнение программ, входящих в BIOS устройств и обеспечивающих их самоинициализацию.
- Определение размера оперативной памяти и тестирования первого сегмента (64 килобайт).
Полный регламент работы POST:
- Проверка всех регистров процессора;
- Проверка контрольной суммы ПЗУ;
- Проверка системного таймера и порта звуковой сигнализации (для IBM PC — ИМС i8253 или аналог);
- Тест контроллера прямого доступа к памяти;
- Тест регенератора оперативной памяти;
- Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;
- Загрузка резидентных программ;
- Тест стандартного графического адаптера (VGA или PCI-E);
- Тест оперативной памяти;
- Тест основных устройств ввода (НЕ манипуляторов);
- Тест CMOS
- Тест основных портов LPT/COM;
- Тест накопителей на гибких магнитных дисках (НГМД);
- Тест накопителей на жёстких магнитных дисках (НЖМД);
- Самодиагностика функциональных подсистем BIOS;
- Передача управления загрузчику.
По результатам этого теста может быть обнаружена неисправность, к примеру нерабочая видеокарта или клавиатура. Поскольку экран монитора может не работать результаты тестов сообщаются в виде последовательности звуковых сигналов разной высоты. Что конкретно они значат надо смотреть в документации к материнской плате. Старые компьютеры часто бибикали во время старта — это программа BIOS сообщала о результатах тестов. Иногда может дополнительно использоваться индикатор, показывающий номер ошибки.
Если всё прошло успешно, BIOS начинает процесс поиска загрузчика ОС. Для этого он начинает просматривать все подключенные к материнской плате жёсткие диски. Данные на физических дисках адресуются в единицах называемых сектор, обычно он 512 байт, однако современный стандарт – 4096 байт. Установщик Windows в самый первый сектор на диске записывает специальный программный код и данные о разделах. Этот сектор называется Master Boot Record. Диск разбивается на разделы (partitions), отформатированный своей файловой системой. Максимум 4 раздела, каждый из который может быть расширенным (extended partition), такой можно рекурсивно делить на 4 раздела и теоретически их число не ограничено. Как только BIOS находит Master Boot Record он считывает оттуда код и передаёт ему управление. Этот код поочередно просматривает данные о разделах и находит тот который помечен как активный, в нём находится код загрузчика Windows (Это не раздел с C:\Windows\System32!), этот раздел называется system partition. Как правило он занимает 100Мб и скрыт от пользователя. В первом секторе этого раздела хранится загрузочный код, которому передаётся управление. Это volume boot sector, код в нём ищет файл Bootmgr, с которого и начинается процесс загрузки Windows. Файл Bootmgr создан через соединение в один файлов Startup.com и Bootmgr.exe.
Процессор начинает свою работу в режиме который называется «Реальный». Это режим совместимости, в нём CPU работает так же как и старые 16-bit процессоры, не имевшие поддержки виртуальной памяти и работавшие напрямую с физической памятью через 20-bit шину адресов, позволявшую адресовать 1Мб памяти. Простые MS-DOS программы выполнялись в этом режиме и имели расширение .COM. Первое что делает Startup.com (Bootmgr) – переключает процессор в режим «Защищённый», где под защитой понимается защита процессов друг от друга. В этом режиме поддерживается виртуальная память и 32х битные адреса, которыми можно адресовать 4Гб оперативной памяти. Следующим этапом Bootmgr заполняет таблицу виртуальных адресов на первые 16Мб RAM и включает трансляцию с виртуальных адресов в физические. В этом режиме и работает Windows. Поскольку на этом этапе подсистемы ОС ещё не созданы, Bootmgr имеет свою простую и неполную реализацию файловой системы NTFS, благодаря которой он находит BCD файл (Boot Configuration Data), в котором хранятся настройки параметров загрузки ОС. Вы можете редактировать его через утилиту BcdEdit.exe. В этих настройках BCD может быть указано, что Windows была в состоянии гибернации, и тогда Bootmgr запустит программу WinResume.exe, которая считывает состояние из файла Hyberfil.sys в память и перезапускает драйвера. Если BCD говорит, что есть несколько ОС, то Bootmgr выведет на экран их список и попросит пользователя выбрать. Если ОС одна, то Bootmgr запускает WinLoad.exe, этот процесс и выполняет основную работу по инициализации Windows:
- Выбирает соотвествующую версию ядра Windows. Можете думать о нём как о Windows10.exe, хотя на самом деле он называется NtOsKrnl.exe. Какие есть версии? Согласно википедии:
- ntoskrnl.exe — однопроцессорное ядро Windows. без поддержки режима PAE
- ntkrnlmp.exe (англ. NT Kernel, Multi-Processor version) — многопроцессорное ядро Windows. без поддержки режима PAE
- ntkrnlpa.exe — однопроцессорное ядро Windows с поддержкой режима PAE.
- ntkrpamp.exe — многопроцессорное ядро Windows с поддержкой режима PAE.
- Загружает HAL.dll (Hardware Abstraction Layer), который абстрагирует особенности материнки и CPU.
- Загружает файл шрифтов vgaoem.fon
- Загружает файлы в которых содержится инфомрация о представлениях даты времени, форматов чисел и пр. Эта функциональность называется National Language System.
- Загружает в память реестр SYSTEM, в нём содержится информация о драйверах которые надо загрузить. Информация о всех драйверах находится в HKLM\SYSTEM\CurrentControlSet\Services\. Драйвера которые надо загрузить имеют ключ start = SERVICE_BOOT_START (0). Об устройстве реестра мы поговорим в другой статье.
- Загружает драйвер файловой системы для раздела на котором располагаются файлы драйверов.
- Загружает драйвера в память, но пока не инициализирует их из-за круговых зависимостей.
- Подготавливает регистры CPU для выполнения ядра Windows выбранного на первом шаге – NtOsKrnl.exe.
Во время загрузки драйверов WinLoad проверяет их цифровые подписи и если они не совпадают, то будет синий (BSOD) или зелёный (GSOD, для insider preview сборок) «экран смерти».
Запуск на UEFI
Пример экрана загрузки UEFI
BIOS существует больше 30 лет и в попытках исправить его недостатки компания Intel в 1998 году создала стандарт Intel Boot Initiative, позже переименованный в EFI и в 2005 году пожертвованный организации EFI Forum. Недостатки BIOS:
• Работает только в 16-битном режиме
• Может адресовать только 1Mb оперативной памяти
• Часто имеет проблемы совместимости
• MBR ограничен только четырьмя главными разделами диска
• Диск с ОС не может быть больше чем 2.2Tb.
• Имеет очень ограниченные возможности для валидации загрузчика ОС.
На смену BIOS пришёл UEFI, по сути это миниатюрная ОС которая может работать и в 32-bit и в 64-bit. Для совместимости есть опция Compatibility Support Module, которая включается в настройках и эмулирует работу BIOS.
В UEFI загрузка происходит в родной для процессора битности – 32 или 64, есть доступ ко всей памяти, поддерживается виртуальная память, включен Secure Boot и есть возможность запустить antimalware до начала загрузки ОС. Порядок загрузки ОС в UEFI:
- Инициализация и запуск Firmware, запуск чип-сета.
- POST тест, аналогично BIOS
- Загрузка EFI-драйверов и поиск диска подпадающего под требования EFI для загрузочного диска
- Поиск папки с именем EFI. Спецификация UEFI требует чтобы был раздел для EFI System Partition, отформатированный под файловую систему FAT, размером 100Мб – 1Гб или не более 1% от размера диска. Каждая установленная Windows имеет свою директорию на этом разделе – EFI\Microsoft.
- Читает из настроек UEFI сохранённых в NVRAM (энергонезависимая память) путь к файлу загрузчика.
- Находит и запускает EFI/Microsoft/Boot/BootMgrFw.efi.
- BootMgrFw.efi находит раздел реестра BCD, который хранится в отдельном файле с именем BCD. Из него он находит WinLoad.efi, который расположен в C:\Windows\System32\winload.efi.
Чтобы посмотреть содержимое раздела EFI System Partition откройте консоль с правами админа (WinKey+X => Windows PowerShell (Admin)) и выполните команды mountvol Z: /s, Z:, dir. CD — меняет директорию.
Главное отличие компонентов BootMgr и WinLoad для UEFI от своих копий для BIOS тем что они используют EFI API, вместо прерываний BIOS и форматы загрузочных разделов MBR BIOS и EFI System Partition сильно отличаются.
Инициализация ядра
Напоминаю, что мы рассматриваем загрузку ПК в контексте работы клавиатуры, поэтому не стоит заострять внимание на всех этапах. Надо понять где в этом процессе находится клавиатура, важные для понимания этапы выделены.
На предыдущем этапе был запущен компонент WinLoad.exe/WinLoad.efi, который запускает NtOsKrnl.exe указав ему параметры загрузки в глобальной переменной nt!KeLoaderBlock (память режима ядра доступна всем процессам), которые WinLoad собрал во время своей работы. Они включают:
- Пути к System (загрузчик Windows) и Boot (C:\Windows\System32) директориям.
- Указатель на таблицы виртуальной памяти которые создал WinLoad
- Дерево с описанием подключенного hardware, оно используется для создания HKLM\HARDWARE ветки реестра.
- Копия загруженного реестра HKLM\System
- Указатель на список загруженных (но не инициализированных) драйверов участвующих в старте Windows.
- Прочая информация необходимая для загрузки.
Инициализация ядра Windows происходит в два этапа. До этого происходит инициализация Hardware Abstraction Layer, который в числе всего прочего настраивает контроллеры прерывания для каждого CPU.
На этой же стадии загружаются в память строки с сообщениями для BSOD, потому как в момент падения они могут быть недоступны или повреждены.
- Первая фаза инициализации ядра:
- Слой Executive инициализирует свои объекты состояний – глобальные объекты, списки, блокировки. Производится проверка Windows SKU (Stock Keeping Unit), примеры Windows 10 SKU — Home, Pro, Mobile, Enterprise, Education.
- Если включен Driver Verifier, то он инициализируется.
- Менеджер памяти создаёт структуры данных, необходимые для работы внутренних API для работы с памятью (memory services), резервирует память для внутреннего пользования ядром.
- Если подключен отладчик ядра (kernel debugger) ему отправляется уведомление загрузить символы для драйверов загружаемых во время старта системы.
- Инициализируется информация о версии билда Windows.
- Старт Object Manager – позволяет регистрировать именованные объекты к которым могут получать доступ по имени другие компоненты. Яркий пример – мьютекс по которому приложение позволяет запустить единственный экземпляр. Здесь же создаётся храниться handle table, по которой устанавливается соответствие к примеру между HWND и объектом описывающим окно.
- Старт Security Reference Monitor подготавливает всё необходимое для создания первого аккаунта.
- Process Manager подготавливает все списки и глобальные объекты для создания процессов и потоков. Создаются процесс Idle и System (в нём исполняется “Windows10.exe” он же NtOsKrnl.exe), они пока не исполняются, потому как прерывания выключены.
- Инициализация User-Mode Debugging Framework.
- Первая фаза инициализации Plug and Play Manager. PnP – это стандарт который реализовывается на уровне производителей периферии, материнских плат и ОС. Он позволяет получать расширенную информацию о подключенных устройствах и подключать их без перезагрузки ПК.
- Вторая фаза инициализации ядра. Она содержит 51 шаг, поэтому я пропущу многие из них:
- По завершению первой фазы главный поток процесса System (NtOsKrnl.exe) уже начал исполнение. В нём производится вторая фаза инициализации. Поток получает самый высокий приоритет – 31.
- HAL настраивает таблицу прерываний и включает прерывания.
- Показывается Windows Startup Screen, которая по умолчанию представляет из себя чёрный экран с progress bar.
- Executive слой инициализирует инфраструктуру для таких объектов синхронизации как Semaphore, Mutex, Event, Timer.
- Объекты для User-Mode Debugger проинициализированы.
- Создана symbolic link \SystemRoot.
- NtDll.dll отображена в память. Она отображается во все процессы и содержит Windows APIs.
- Инициализирован драйвер файловой системы.
- Подсистема межпроцессного общения между компонентами Windows ALPC проинициализирована. Можете думать о ней как о named pipes или Windows Communication Foundation для межпроцессного общения.
- Начинается инициализация I/O Manager, который создаёт необходимые структуры данных для инициализации и хранения драйверов подключенной к компьютеру периферии. Этот процесс очень сложный.
Здесь же инициализируются компоненты Windows Management Instrumentation и Event Tracing for Windows (на него полагается Windows Performance Analyzer). После этого шага все драйвера проинициализированы. - Запускается процесс SMSS.exe (Session Manager Sub System). Он отвечает за создание режима пользователя, в котором будет создана визуальная часть Windows.
Запуск подсистем – SMSS, CSRSS, WinInit
SMSS.exe отличается от пользовательских процессов, это нативный процесс и это даёт ему дополнительные полномочия. SMSS.exe работает с ядром в обход Windows API, он использует то что называется Native API. Windows API – обёртка вокруг Native API. SMSS.exe первым делом запускает подсистему Windows (CSRSS.exe – Client Server Runtime Sub System) и заканчивает инициализацию реестра.
Процесс и потоки SMSS.exe помечены как критические, это значит что если они неожиданно завершаться, к примеру из-за ошибки, это приведёт к падению системы. Для общения с подсистемами, к примеру вызову API создающему новую сессию, SMSS создаёт ALPC-порт с именем SmApiPort. Загружаются из реестра переменные среды окружения, запускаются программы такие как Check Disk (autochk.exe, эти программы записаны в реестре HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute). SMSS.exe запускается для каждой пользовательской сессии. Глобальные переменные (очередь сообщений например) у каждой сессии своя за счёт механизма виртуальной памяти. В Windows есть контексты потока, процесса и сессии. Каждый SMSS.exe запускает свой экземпляр подсистемы, на данный момент это только CSRSS.exe (Windows), в прошлом поддерживались операционные системы OS/2 (os2ss.exe) и POSIX (psxss.exe), но эта идея была неудачной. Самый первый SMSS.exe засыпает в ожидании процесса WinInit.exe. Остальные экземпляры вместо этого создают процесс WinLogon который показывает UI для входа.
WinInit.exe инициализирует подсистемы для создания графической оболочки – Windows Station и десктопы, это не тот рабочий стол который вы видите, это иная концепция Windows. Далее он запускает процессы:
- Services.exe – Services Control Manager (SCM) запускает сервисы и драйвера помеченные как AutoStart. Сервисы запускаются в процессах svchost.exe. Есть утилита tlist.exe, которая запущенная с параметром tlist.exe -s напечатает в консоли имена сервисов в каждом из svchost.exe.
- LSASS.exe – Local System Authority.
- LSM.exe – Local Session Manager.
WinLogon.exe – загружает провайдеры аутентификации (credential providers), которые могут быть password, Smartcard, PIN, Hello Face. Он порождает процесс LogonUI.exe который и показывает пользователю интерфейс для аутентификации, а после валидирует введённые данные (логин и пароль, PIN).
Если всё прошло успешно, то WinLogon запускает процесс указанный в ключе реестра HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\Userinit. По умолчанию это процесс UserInit.exe, который:
- Запускает скрипты указанные в реестрах:
- HKCU\Software\Policies\Microsoft\Windows\System\Scripts
- HKLM\SOFTWARE\Policies\Microsoft\Windows\System\Scripts
- Если групповая политика безопасности определяет User Profile Quota, запускает %SystemRoot%\System32\Proquota.exe
- Запускает оболочку Windows, по умолчанию это Explorer.exe. Этот параметр конфигурируется через реестр:
- HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell
WinLogon уведомляет Network Provider о залогинившемся пользователе, на что тот восстанавливает и подключает системные диски и принтеры сохранённые в реестре. Network Provider представляет из себя файл mpr.dll из системной папки, который хостится в процессе svchost.exe, т.е. сервис Windows.
Дерево процессов выглядит следующим образом, на нём можно увидеть кто и кого создал (показаны не все процессы, может немного отличаться от последний версий Windows).
Где здесь клавиатура?
Во время запуска ядро Windows считывает из реестра информацию о контроллере системной шины, как правило это шина PCI (реже MSI), к ней подключены контроллеры портов ввода-вывода, в том числе и USB, PS/2. Информация о нём записывается во время установки Windows. Система загружает для него драйвер и рекурсивно обходит все порты так же загружая для каждого из них свой драйвер. Драйвера могут комбинироваться в узлы (driver node), к примеру драйвер клавиатуры, будет соединён с драйвером порта PS2. А вот порт USB сложнее — сначала драйвер порта, потом драйвер для работы с протоколом HID и только потом клавиатура.
Каждый порт контроллируется своим чипом, который мониторит подключение, принимает/отправляет сигналы между CPU и устройством. Если чип-сет Южный мост не встроен в CPU, как это часто делают в ноутбуках, а существует отдельным чипом на материнке, то правильней говорить: сигнал между Южным мостом и контроллером порта. Чип контроллирующий порт имеет выделенную линию с контроллером прерываний (PIC или APIC), по которой он может попросить обратить на себя внимание CPU, к примеру считать данные от клавиатуры (порт PS/2, с USB другая история). Поскольку ОС загрузила для порта драйвер, она может отдавать ему команды, читать и отправлять данные. В нашем примере был загружен драйвер из C:\Windows\System32\i8042prt.sys. Давайте вспомним предыдущую статью. В старых компьютерах с PIC на чипе Intel 8259 было 15 линий прерываний, где клавиатура была подключена к ножке IRQ1, таймер IRQ0, а мышка к IRQ12, который на самом деле был пятой ножкой второго чипа 8259, который мультиплексировал свои прерывания через ножку IRQ2 первого контроллера. В современных PIC могут быть 255 контактов для сигналов прерываний. Во время загрузки ОС программирует APIC/PIC возвращать определённое число когда скажем пришло прерывание от порта клавиатуры или USB и по этому номеру CPU находит в таблице векторов прерываний функцию которую надо выполнить. Номер прерываний определяют HAL и Plug’n’Play Manager. Контроллер прерываний ищет сигнал на своих ножках в определённом порядке, к примеру в бесконечном цикле проверяет напряжение на ножках от 1 до MAX_PIN. Этот порядок определяет приоритет, к примеру клавиатура будет замечена раньше мышки, а таймер раньше клавиатуры. Чтобы не зависеть от особенностей работы контроллеров прерываний Windows абстрагирует концепцию IRQ (Interrupt Request) в IRQL (Interrupt Request Level). Будь у контроллера прерываний хоть 15 хоть 255 линий они все будут отображены на 32 IRQL для x86 и 15 IRQL для x64 и IA64.
Что означают приоритеты IRQL:
- High – когда происходит краш системы, обычно это вызов функции KeBugCheckEx.
- Power Fail – не используется. Изначально был придуман для Windows NT.
- Interprocessor Interrupt – нужен отправить запрос другому CPU на мультипроцессорной системе выполнить действие, например обновить TLB cache, system shutdown, system crash (BSOD).
- Clock – нужен чтобы обновлять системные часы, а так же вести статистику сколько времени потоки проводят в режиме пользователя и ядра.
- Profile – используется для real-time clock (local APIC-timer) когда механизм kernel-profiling включен.
- Device 1 … Device N – прерывания от устройств I/O. Во время прерывания данные от клавиатуры, мыши и других устройств считываются в отдельные буфера и сохраняются в объектах типа DPC (Deferred Procedure Call), чтобы обработать их позже и дать возможность устройствам переслать данные. После приоритет снижается до Dispatch DPC
- Dispatch DPC — как только данные от устройств получены можно начинать их обрабатывать.
- APC — Asynchronous Procedure Call. Через этот механизм вы можете исполнить код когда поток будет спать вызвав WaitForSingleObject, Sleep и другие.
- Passive/Low — здесь исполняются все приложения в User Mode.
Если вы всегда программировали в режиме пользователя, то никогда не слышали про IRQL, потому что все пользовательские программы выполняеются с приоритетом Passive/Low (0). Как только происходит событие с большим уровнем приоритета (событие от клавиатуры, таймер планировщика потоков), процессор сохраняет состояние прерванного потока, которое представляет из себя значения регистров CPU, и вызывает диспетчер прерываний (interrupt dispatcher, просто функция), который повышает приоритет IRQL через API KeRaiseIrql в HAL и вызывает непосредственно сам код обработчика (interrupt’s service routine). После этого IRQL CPU понижается до прежнего уровня через функцию KeLowerIrql и прерванный поток начинает обработку с того же места где его прервали. На этом механизме основан планировщик потоков. Он устанавливает таймер, который с определённым интервалом (квант времени) генерирует прерывание с приоритетом DPC/Dispatch (2) и в своей interrupt’s service routine по определённому алгоритму назначает новый поток на исполнение.
Механизм IRQL реализовывается на уровне софта в Hardware Abstraction Layer (HAL.dll), а не железа. В Windows системах есть драйвер шины (bus driver), который определяет наличие устройств подключенных к шинам – PCI, USB и др. и номера прерываний которые могут быть назначены каждому устройству. Драйвер шины сообщает эту информацию Plug and play manager, который уже решает какие номера прерываний назначить каждому устройству. Далее арбитр прерываний внутри PnP Mgr (PnP interrupt arbiter) устанавливает связи между IRQ и IRQL.
Когда приходит прерывание от клавиатуры, любой исполняемый в данный момент поток (это может быть ваша программа) назначается на его обработку. Interrupt dispatcher повышает приоритет IRQL CPU до одного из уровней Device1-DeviceN. После этого менеджер виртуальной памяти не сможет найти страницу если она не загружена в RAM (не сможет обработать Page Fault), планировщик потоков не сможет прервать выполнение, потому что они все работают с меньшим уровнем IRQL. Главная задача драйвера клавиатуры в этот момент считать полученные данные и сохранить их для дальнейшей обработки. Данные записываются в объект типа _DPC (Deferred Procedure Call), который сохраняется в список DPC потока (что-то вроде std::list<DPC>, в ядре ОС вместо массивов используются связанные списки). Как только прерывания от всех внешних устройств обработаны, IRQL потока понижается до уровня DPC в котором и производится обработка отложенных процедур (DPC). В коде обработчика DPC для клавиатуры вызывается функция из драйвера клавиатуры Kbdclass.sys:
VOID KeyboardClassServiceCallback(
_In_ PDEVICE_OBJECT DeviceObject,
_In_ PKEYBOARD_INPUT_DATA InputDataStart,
_In_ PKEYBOARD_INPUT_DATA InputDataEnd,
_Inout_ PULONG InputDataConsumed
);
Так вот, драйвер клавиатуры (kbdclass.sys) получает данные от порта (USB, PS2) через прерывание и записывает их через WriteFile, компонент внутри ядра Windows просыпается, считывает их используя API ReadFile и добавляет в очередь сообщений с клавиатуры. API для работы с файлом могут использоваться для чтения данных с драйверов. С этого момента начинается обработка данных стеком ввода Windows, об этом в следующей статье.
Если у вас есть ПК с PS2 портом и вы умеете пользоваться WinDbg в режиме ядра, то можете легко найти обработчик прерываний клавиатуры напечатав команду !idt, которая выведет на экран всю таблицу векторов прерываний. Прерывание вклинивается в ход выполнения программы, слово вектор здесь подразумевает направление, направление исполнения программы. WinDbg был сделан специально для отладки Windows, самая последняя версия называется WinDbgX. Он имеет текстовый интерфейс, который отпугивает людей привыкших к Visual Studio, однако предоставляет гораздо больше возможностей, в частности исполнение скриптов. Прерывание фиолетового порта PS2 выделено красным. Функция которая его обрабатывает называется I8042KeyboardInterruptService, которая находится в файле i8042prt.sys.
BOOLEAN
I8042KeyboardInterruptService(
IN PKINTERRUPT Interrupt,
IN PVOID Context
);
Routine Description:
This is the interrupt service routine for the keyboard device when
scan code set 1 is in use.
Arguments:
Interrupt - A pointer to the interrupt object for this interrupt.
Context - A pointer to the device object.
Return Value:
Returns TRUE if the interrupt was expected (and therefore processed);
otherwise, FALSE is returned.
Сейчас возникает вопрос, откуда у обработчика прерываний аргумент? Кто его передаёт? Ведь CPU ничего не знает о нём. Если поставите в неё breakpoint, то удивитесь ещё больше увидев несколько функций выше по стеку:
0: kd> kC
# Call Site
00 i8042prt!I8042KeyboardInterruptService
01 nt!KiCallInterruptServiceRoutine
02 nt!KiInterruptSubDispatch
03 nt!KiInterruptDispatch
04 nt!KiIdleLoop
Объяснение здесь простое – это не та функция которая сохранена в регистре IDT процессора. То что вы видите на картинке выше на самом деле объекты типа _KINTERRUPT. В таблице прерываний сохранён специальный ассемблерный код (nt!KiIdleLoop), который знает как найти объект описывающий прерывание в памяти. Что же интересного есть в нём?
- Указатель на объект представляющий драйвер в памяти.
- Указатель на функцию i8042prt!I8042KeyboardInterruptService, которая и вызывает код считывающий данные из порта PS2 через ассемблерную команду IN AL, 0x60 – сохранить значение из порта номер 0x60 в регистре AL.
- Функция dispatcher – ей передаётся указатель функцию из пункта №2 и она вызывает её.
- Состояние регистров CPU. Перед вызовом прерывания состояние CPU будет сохранено сюда, и отсюда же будет восстановлено.
- Приоритет прерывания. Не тот который определяет контроллер прерываний, а тот который Windows считает нужным. Это IRQL (Interrupt Request Level) – абстракция над IRQ.
Как только обработчик прерываний клавиатуры будет вызван, он уведомит драйвер клавиатуры о полученных данных, после чего будет уведомлено ядро ОС, которое обработав данные отправит их дальше по стеку ввода, где они могут быть доставлены приложению, которое на них отреагирует, или перед этим в обработчик языков (азиатские иероглифы, автокоррекция, автозаполнение).
Ядро ОС напрямую не взаимодействует с драйвером клавиатуры, для этих целей используется Plug’n’Play Manager. Этот компонент предоставляет API IoRegisterPlugPlayNotification, который вызовет предоставленную callback-функцию когда устройство будет добавлено или удалено.
Пару слов о USB
Ознакомление с работой порта USB потребовало бы отдельной статьи описывающей его работу и плюс описание обработки данных HID на Windows. Это очень сильно усложнило бы материал, к тому же уже есть хорошие статьи по теме, поэтому PS2 идеальный пример из-за своей простоты.
USB создавался как универсальный порт для всех устройств, будь то клавиатура, фотоаппарат, сканнер, игровой руль с педалями, принтер и пр. Вдобавок он поддерживает вложенность портов – USB материнки => монитор с USB => клавиатура с USB к которой подключена мышка, флешка и USB-hub к которому подключен жёсткий диск. Взглянув на контакты USB 2.0 вы увидите что они не заточены под передачу каких-то определённых данных, как у PS2. Их всего четыре – витая пара для передачи битов данных, плюс и минус питания.
Провода кабеля USB 2.0
USB 3.0 быстрее за счёт дополнительных пяти контактов. Как видите там нету линии CLOCK для синхронизации, поэтому логика передачи данных сложнее. Слева USB 2.0 и справа USB 3.0 для сравнения.
Все данные передаются через протокол HID (Human Interface Device), который описывает форматы, порядок взаимодействия и передачи данных и всё остальное. Стандарт USB 2.0 занимает 650 страниц, документ HID Class Specification, описывающий работу устройств (мыши, клавиатуры и пр) – 97 страниц, их рекомендуется изучить если вы работаете с USB.
Первым делом подключенное устройство должно рассказать о себе, для этого оно отправляет несколько структур данных, в которых указывается ID устройства и ID производителя по которым Plug’n’Play manager может найти в реестре информацию, загрузить и соединить драйвера. USB устройства пассивны, т.е. хост должен сам с определённым интервалом проверять наличие данных. Частота опроса и размер пакета данных задаются в одном из дескрипторов устройства USB. Максимальный размер пакета – 64 байта, что для информации о нажатых клавишах более чем достаточно.
В Windows есть встроенная поддержка HID, она не такая простая как связь драйвера порта PS2 с драйвером клавиатуры, потому что драйвер HID должен уметь обрабатывать все поддерживаемые протоколом сценарии. Вне зависимости от провайдера данных — порты PS2, USB или Remote Desktop или виртуальная машина – на самом верху driver node будет находится Kbdclass, от которого ядро ОС и будет получать информацию. Уведомление о подсоединении клавиатуры будет обрабатываться через Plug’n’Play Manager, так что для ядра Windows не имеет значение какой порт или источник данных от устройства используется.
ч.1 — Основы ОС и компьютера
ч.2 — Как работает материнская плата и клавиатура через порт PS2
По сути, работа в безопасном режиме – это запуск ОС с ограниченными параметрами и функционалом. Так, например, Windows, загружается в таком режиме без запуска сетевых драйверов. Часто пользователи обращаются к этому варианту системной загрузки, если ОС работает некорректно в обычном режиме. Таким образом, можно попробовать исправить различные системные проблемы.
Некоторые программы в безопасном режиме могут по-прежнему работать полноценно. Тем не менее, производить установку или скачивание ПО настоятельно не рекомендую. Чаще всего подобная установка приводит к ещё более серьёзным проблемам с системой. Сегодня я хочу рассказать о том, что такое Безопасный режим и как можно войти в него через BIOS. Рассмотрим более подробно его функционал и возможности. См. также: как зайти в безопасный режим другими способами.
Что представляет собой безопасный режим?
Основное его назначение, как я упомянула выше, решение внутрисистемных проблем. А вот для повседневной работы, будь то редактирование документов, интернет-серфинг, скачивание и установка приложений, он не совсем пригоден. По сути, это режим упрощённой работы ОС с загрузкой лишь необходимых программных компонентов.
Запускать режим можно не только из меню BIOS. К примеру, если вы находитесь в системе и обнаружили ошибки в её работе, можно попробовать исправить их, перейдя в Безопасный режим при помощи командной строки. При этом не потребуется даже перезагрузка ОС.
А случается и так, что в системе возникли неполадки, и вход в неё, то есть нормальная загрузка, теперь невозможна. Лучшим и безопасным решением этой проблемы будет войти в Безопасный режим через BIOS. Предлагаю рассмотреть несколько простых способов, как можно это сделать.
Используем горячие клавиши во время загрузки ПК
Это наиболее простой и распространённый вариант. Для начала нам потребуется перезапуск ПК, если он уже работал. Прежде чем начнётся загрузка ОС, то есть через несколько секунд после старта, нажимаем клавишу F8 либо сочетание клавиш Shift+F8. Перед нами появится меню с выбором варианта загрузки ОС (как показано на картинке ниже).
Выбираем подходящий вариант загрузки в Безопасном режиме
Помимо стандартного режима в списке будет предложен ряд вариантов загрузки в Безопасном режиме. Иной раз указанная комбинация клавиш не срабатывает. Это обусловлено тем, что в самой ОС данная функция отключена. В таком случае у пользователя может быть возможность активировать ее (но не всегда). При этом потребуется войти в систему обычным способом. Но опять же, если Безопасный режим потребовался из-за неработоспособности ОС при стандартной загрузке, сделать это никак не получится.
В остальных же случаях нужно выполнить следующие действия для активации сочетания Shift+F8:
- Находясь в системе, открываем службу выполнить (Win+R). В строке «Открыть» появившегося окна пишем cmd. Нажимаем ОК или Enter на клавиатуре для выполнения команды.
Открываем службу «Выполнить» и прописываем команду «cmd»
- Перед нами откроется окно командной строки. В нём прописываем такую строчку:
bcdedit /set {default} bootmenupolicy legacy
- Далее жмём Enter, чтобы выполнить системную команду. Если в дальнейшем потребуется откат сделанных изменений, можно прописать в командной строке такую строчку:
bcdedit /set default bootmenupolicy
Важно не забывать, что для некоторых версий системных плат BIOS не поддерживает работу с Безопасным режимом посредством сочетания Shift+F8. Справедливо отметить, что такие БИОСы сегодня встречаются весьма редко.
Загрузка …
Используем загрузочный диск
Это более сложный вариант, однако и более надёжный. Чтобы произвести вход в Безопасный режим, нужно воспользоваться внешним накопителем данных, на котором записан образ/установщик ОС Windows. Вставляем флеш-накопитель или DVD-диск с системой после чего перезагружаем ПК.
В иных случаях после перезагрузки меню Мастера установки Windows вы можете не увидеть. Чтобы исправить это, потребуется перераспределить приоритеты загрузки. В БИОСе для этого необходимо будет найти пункт Boot Manager или раздел с похожим названием, где потребуется отыскать опцию «Hard Disk Boot Priority». В приоритетах нужно будет выбрать USB или дисковый привод в качестве первичного источника загрузки.
Итак, предположим, мы сделали всё верно, и перед нами появился установщик Windows. Рассмотрю пример с установщиком Windows 10/8.1:
- Сначала система предложит нам выбрать язык, а также настроить дату, время и часовой пояс. Настраиваем параметры и жмём «Далее».
- Мы попадаем в окно установки системы. Поскольку нам не требуется установка системы, нас интересует пункт «Восстановление» (левый нижний угол экрана).
В установщике Windows выбираем «Восстановление системы»
- Далее мы попадаем в меню действий, где нас интересует «Диагностика».
- Теперь мы получим список из ещё нескольких функций. Нам нужна «Командная строка».
Выбираем пункт «Командная строка» и далее прописываем соответствующую команду
- В открытом окне командной строки необходимо прописать следующую команду и нажать Enter:
bcdedit / set globalsettings
Таким образом, мы запускаем вариант загрузки ОС в Безопасном режиме. Далее закрываем Командную строку и возвращаемся к меню с выбором Диагностики. Теперь вместо неё мы выбираем «Продолжить».
Теперь выбираем пункт «Продолжить» и переходим к загрузке ОС в Безопасном режиме
- Система начнёт загружаться. Перед нами появится ряд вариантов загрузки, включая Безопасный режим. Иной раз может потребоваться нажать F8 или F4, чтобы корректно произвести загрузку в этом случае.
- По окончании работы в Безопасном режиме необходимо, оставаясь в системе, открыть командную строку (как было описано выше) и ввести следующую строку:
bcdedit /deletevalue {globalsettings} advancedoptions
Таким образом, мы завершаем все процессы в безопасном режиме и возвращаем приоритет загрузки системы в нормальный режим.
Загрузка …
Загрузка …
Post Views: 31 397
Как запустить компьютер в безопасном режиме
Обновлено:
Опубликовано:
Используемые термины: безопасный режим, Windows.
Данный режим загрузки компьютера позволяет решать проблемы с системой, так как в нем не запускается большинство компонентов, которые могут привести к этим проблемам. Вариант загрузки зависит от операционной системы Windows, установленной на компьютере.
Ваша операционная система — Windows 7
Инструкции по версиям:
А также:
Активация F8 через командную строку для Windows 11 / 10 / 8
Универсальный способ (для всех систем Windows)
Если безопасный режим не запускается
Windows 7 / Vista / XP
Во время загрузки компьютера (после начальной заставки и загрузки БИОС, но до заставки Windows) зажать клавишу F8;
Из предложенных вариантов выбрать Безопасный режим;
Выбрать операционную систему (данной опции может не быть). Если она у вас одна, просто нажать Enter:
Дождаться запуска безопасного режима.
Некоторые версии BIOS при нажатии F8 предлагают выбрать носитель, с которого загрузить систему. Если Вы поторопились с нажатием данной клавиши и выскочило окно выбора носителя, просто выбираем жесткий диск с системой и продолжаем нажимать F8.
Windows 11 / 10 / 8
Безопасный режим в Windows, начиная с версии 8 запускается через «Особые варианты загрузки». Как в предыдущих версиях, клавиша F8 больше не работает. Нам нужно выполнить 2 шага:
- Войти в меню выбора режима загрузки системы.
- Выбрать загрузку в безопасном режиме.
Оба шага в Windows 8-11 выполняются с незначительными отличиями.
Шаг 1.1. Если система загружается нормально
Если наша система может запуститься, необходимо ее перезагрузить с вызовом особых вариантов загрузки. Для этого либо отправьте компьютер в перезагрузку с зажатой клавишей Shift:
… либо выполните инструкцию ниже.
а) для Windows 10:
Нажимаем Пуск — Параметры:
Переходим в раздел Обновление и безопасность:
В разделе Восстановление кликаем по Перезагрузить сейчас:
Переходим к шагу 2.
б) для Windows 8:
Переводим курсор в правый нижний угол и поднимем его — Параметры — Изменение параметров компьютера — Обновление и восстановление — Восстановление — Перезагрузить сейчас.
Переходим к шагу 2.
Шаг 1.2. Если Windows не загружается
После нескольких неудачных попыток загрузить систему, мы увидим «Подготовка автоматического восстановления»:
* если этого не происходит, 2-3 раза прервите загрузку системы самостоятельно кнопкой Reset или зажав Power.
Затем «Диагностика компьютера»:
В открывшемся окне нажимаем по Дополнительные параметры:
Переходим к шагу 2.
Шаг 2. Выбираем загрузку безопасного режима
Вместо перезагрузки мы увидим окно «Выбор действия» — нажимаем по Поиск и устранение неисправностей (Windows 10):
или Диагностика (Windows 8):
Затем по Дополнительные параметры:
И Параметры загрузки:
В открывшемся окне просто нажимаем по кнопке Перезагрузить:
Компьютер перезагрузится и откроется окно «Параметры загрузки». Выбираем Включить безопасный режим (цифра 4):
Дополнительный способ — через командную строку (активация F8)
По сути, данный способ активирует классический способ захода в безопасный режим при помощи клавиши F8.
Кликаем правой кнопкой по Пуск и выбираем запуск командной строки или powershell от имени администратора:
В открывшемся окне вводим следующее.
В обычной командной строке:
bcdedit /set {default} bootmenupolicy legacy
В Powershell:
cmd /C «bcdedit /set {default} bootmenupolicy legacy»
Теперь в момент загрузки системы можно выводить дополнительное меню клавишей F8 с возможностью выбора безопасного режима, как в предыдущих версиях Windows.
Универсальный метод
Данный метод подойдет для любой системы семейства Windows. Его минус в необходимости нормальной загрузки системы.
Открываем «Конфигурацию системы» — для этого вводим команду msconfig:
В открывшемся окне переходим на вкладку Загрузка и ставим галочку Безопасный режим:
Перезагружаем компьютер — он будет всегда запускаться в безопасном режиме. Чтобы вернуть обычную загрузку, выполните обратные операции.
Если безопасный режим не работает
В случае повреждения реестра или части системы, которая отвечает за загрузку безопасного режима можно сделать следующее:
1. Скачиваем утилиту AVZ. Запускаем ее от имени администратора. Кликаем по Файл — Восстановление системы. В открывшемся окне выбираем 10. Восстановление настроек загрузки в SafeMode — кликаем по Выполнить отмеченные операции.
2. Можно восстановить реестр в полу ручном режиме. Для этого скачиваем архив RepairSafeBoot и распаковываем его. Внутри находим файл, соответствующий операционной системе и запускаем его. На запрос о слиянии реестра отвечаем утвердительно:
Перезагружаем компьютер и пробуем запустить безопасный режим.
3. Скачиваем утилиту SafeBootKeyRepair, запускаем и после завершения ее работы, перезагружаем компьютер. Пробуем зайти в безопасный режим.
4. Если наша система не грузится в обычном режиме, то предыдущие советы нам не помогут. В случае проблем при разгрузке любых режимов, создаем загрузочную флешку с Windows LiveCD, загружаем с нее компьютер и пробуем восстановить систему с использованием точек восстановления.
Безопасный режим и безопасная загрузка — это два важных инструмента, которые могут помочь защитить ваш компьютер от вирусов и других мошеннических программ — или решить ситуации, когда ноутбук не включается после обновлений Windows. В нашей статье мы разберем, чем безопасный режим отличается от безопасной загрузки, как их использовать, включать и отключать.
Безопасный режим и безопасная загрузка — что это?
Современные операционные системы линейки Windows поддерживают две важные функции, нацеленные на обеспечение безопасности и стабильности работы ОС. Это Secure Boot или «безопасная загрузка» и Safe Mode или «безопасный режим». Некоторые пользователи путают эти два понятия, потому что на русском термины звучат почти одинаково. Но это серьезная ошибка: они означают совершенно разные возможности операционной системы.
Secure Boot или безопасная загрузка — это функция безопасности, которая позволяет избежать загрузки ПО, направленного на то, чтобы получить управление компьютером пользователя или украсть его данные. Она обеспечивает проверку целостности запускаемого кода и наличия у него валидной цифровой подписи на всем этапе загрузки. Функция работает таким образом, что различные элементы загрузчика по цепочке проверяют другие компоненты, не допуская внедрения в ядро операционной системы и в сам загрузчик вредоносного кода.
Safe Mode или загрузка в безопасном режиме — это специальный режим работы операционной системы, при котором загружаются только самые необходимые для работы Windows компоненты. Это, фактически, не слишком нестандартная загрузка ОС, она не сильно отличается от того, что мы привыкли видеть в обычном режиме (если, конечно, вы не выбрали режим работы исключительно с командной строкой). Но большая часть ненужных функций вроде персонализации в Safe Mode отключаются, остаются только самые необходимые, без которых система просто не будет работать.
В отличие от Safe Mode Secure Boot работает независимо от пользователя и является важной частью системы безопасности ОС. Так, Windows 11 официально не рекомендуется устанавливать на компьютеры, которые не поддерживают безопасную загрузку — во время установки ОС она предупредит о том, что компьютер не соответствует минимальным требованиям. Загрузка в безопасный режим происходит по желанию пользователя.
Безопасный режим (Safe Mode): зачем он нужен и как им пользоваться
Безопасный режим позволяет диагностировать и устранять проблемы с операционной системой, которые могут быть вызваны поврежденными или несовместимыми драйверами или программным обеспечением. Если ваш компьютер не загружается в обычном режиме, вы можете загрузить его в безопасном с помощью нажатия специальной комбинации клавиш при загрузке.
Как правило, загрузка Window в безопасный режим происходит, если пользователю требуется выполнить конкретную задачу, касающуюся восстановления операционной системы. А именно:
откатить обновления, которые установились неудачно;
удалить или переустановить драйверы, программное обеспечение;
запустить антивирус, чтобы просканировать операционную систему;
использовать точки восстановления для устранения неудачных изменений в Windows.
Если пользователю необходимо войти в безопасный режим в версиях Windows 7 и ранее, нужно перезагрузить компьютер и нажать клавишу F8. Должно появиться меню дополнительных вариантов загрузки. В нем достаточно выбрать «Безопасный режим» (или Safe Mode) и подтвердить свое решение с помощью клавиши Enter. Далее компьютер загрузится, позволяя вам решать задачи, ради которых вы запустили Safe Mode.
В Windows 10 войти в безопасную загрузку можно как через конфигуратор системы, так и через комбинацию клавиш или особые варианты разгрузки. <
Конфигуратор вызывается сочетанием клавиш Win+R, где в окне нужно ввести команду msconfig и на вкладке «Загрузка» активировать флажок напротив надписи «Безопасный режим». Тут также можно выбрать режим, указать особенности оболочки, включить режим без оболочки (просто с консолью), активировать журнал загрузки и так далее. Дальше останется только нажать OK и перезагрузиться. Таким же образом — с помощью снятия флажка — удастся выйти из безопасной загрузки, как только вы завершите все задачи, ради которых перешли в Safe Mode.
Окно конфигуратора, вызываемое по команде msconfig
Второй удобный способ, которым можно воспользоваться, — загрузка через особые варианты. Для этого разверните меню «Пуск» и в нем откройте вариант «Перезагрузка». Нажмите на него, зажав клавишу Shift.
Меню выбора перезагрузки в меню «Пуск»
Компьютер перезагрузится и покажет вам меню выбора вариантов загрузки. Укажите пункт «Поиск и устранение неисправностей». Благодаря этому пункту вы сможете вернуть компьютер в исходное состояние после неудачного обновления или использовать другие дополнительные средства устранения неисправностей.
Меню выбора вариантов загрузки
На следующем этапе выберите пункт «Дополнительные параметры».
Выбор варианта «Дополнительные параметры»
В «Дополнительных параметрах» выделите пункт «Параметры загрузки», чтобы указать ОС нужные параметры загрузки операционной системы. На этом шаге их указать нельзя, но тут перечислены варианты особой загрузки, из которых вы сможете выбрать на следующем шаге.
Меню «Дополнительных параметров»
На следующем экране вы увидите список особенностей режима, в котором будет загружена операционная система. Если вас все устраивает, нажмите «Перезагрузить».
Параметры безопасной загрузки
Нажмите на следующем экране кнопку F4, F5, F6 в зависимости от того, какой вариант безопасной загрузки вам нужен.
Выбор варианта загрузки ОС
Выйти из безопасного режима можно стандартным способом — просто перезагрузить компьютер и дать ему запустить операционную систему в обычном режиме.
Безопасный режим — это полезный инструмент, который может помочь вам устранить многие проблемы с операционной системой. Если у вас возникла проблема с компьютером или драйверами, попробуйте перезагрузиться в Safe Mode, чтобы откатить обновления или переустановить неудачно установленные приложения.
Безопасная загрузка — что это и как она работает
Интерфейс настройки Secure Boot в BIOS (UEFI)
Безопасная загрузка, которую также называют Secure Boot — это технологическое решение, которое направлено на то, чтобы защитить пользовательское устройство от вредоносного программного обеспечения, которое загружается вместе с операционной системой. Режим безопасной загрузки управляется системой БИОС, а, если быть точнее, то более современной ее версии UEFI. Вот как происходит весь процесс:
- Когда компьютер запускается, он обращается к UEFI, которая является программным обеспечением, которое управляет процессом загрузки.
- UEFI выполняет проверку загрузчика ОС.
- Загрузчик ОС в свою очередь проверяет целостность ядра и наличие у него цифровой подписи.
- Ядро обеспечивает проверку на наличие цифровой подписи загружаемых драйверов и других компонентов.
Если цифровая подпись у какого-то элемента цепочки отсутствует или недействительна, проверяющий не позволяет загружать этот компонент. В этом случае он либо не будет загружен, либо загрузка операционной системы будет прервана.
Цифровые подписи используются для проверки подлинности программного кода (приложений). Они создаются с помощью специального программного обеспечения, которое называется цифровым сертификатом. Цифровой сертификат выдается доверенным органом, например, Microsoft или Intel. Подделать цифровую подпись довольно сложно, поэтому программам, которые подписаны с их помощью, можно доверять.
Secure Boot является стандартом, который поддерживается большинством производителей компьютеров. Он включен с момента установки загрузчика в большинстве новых компьютеров, работающих под управлением Windows 10 или Windows 11. Безопасная загрузка не является абсолютной защитой от вредоносного ПО. Однако она может значительно снизить риск заражения компьютера. Перечислим несколько типичных угроз, которых можно избежать, используя безопасную загрузку:
- Rootkit. Это тип вредоносного программного кода, который внедряется в операционную систему на низком уровне. Это позволяет rootkit-у скрыть свое присутствие от антивирусного программного обеспечения и других средств защиты. Такие программы могут получать полный контроль над компьютером, мониторить активность пользователя и красть пароли;
- Bootkit. Это тип программного обеспечения, что модифицирует загрузчик операционной системы. Это позволяет bootkit-у загружаться до операционной системы и получать полный контроль над компьютером. Как правило, bootkit используется, чтобы изменить системные настройки или загрузить другие вредоносные программы.
В целом, безопасная загрузка является полезной технологией, которая, однако, не может считаться панацеей. Поэтому, даже если вы разобрались, как включить безопасную загрузку и активировали ее, не стоит ослаблять бдительность.
Как понять работает ли Secure Boot
Режим безопасной загрузки работает независимо от пользователя, поэтому вы не можете сказать, просто глядя на операционную систему, работает ли он. Для этого необходимо использовать специальное программное обеспечение. К примеру, можно запустить входящую в состав ОС Windows утилиту: нажмите Win+R и наберите msinfo32 в поле, а после нажмите «ОК». На первой же вкладке «Сведения о системе» нужно смотреть на раздел «Состояние безопасной загрузки». Значение может быть «Вкл.», «Откл.» или «Не поддерживается».
Окно утилиты, позволяющей увидеть, работает ли безопасная загрузка
Как включить и выключить Secure Boot
Некоторые пользователи считают, что Secure Boot может отнимать ресурсы системы, но это не так. Режим безопасной загрузки работает в БИОС (UEFI), поэтому не использует ресурсы ОС. Отключать защиту компьютера крайне не рекомендуется. Кроме того, на некоторых устройствах вы просто не сможете отключить этот режим — будет выдана ошибка безопасной загрузки и все параметры сохранятся в том варианте, в котором были до попыток их изменить.
Отключение безопасной загрузки требуется в специфических случаях, например, если вы хотите установить несколько операционных систем, запустить предыдущие версии ОС или загрузиться со съемного носителя. В ситуации, когда вам потребовалось отключение Secure Boot, то выключить безопасную загрузку можно через БИОС (UEFI). Для этого необходимо:
- Войти в BIOS/UEFI тем способом, который подходит для вашего устройства. Подробнее об этой системе мы писали в отдельной статье.
- Переключиться на режим Advanced Mode с помощью иконки в правом нижнем углу или F7 на клавиатуре.
- Перейти в зону «Состояние безопасной загрузки». Если там указана характеристика «Включено», значит, двигаемся дальше. Если значение иное, ничего выключать не нужно — режим и так деактивирован.
- Выбрать «Управление ключами» и нажать «Очистить ключи…». А после — подтвердить внесенные корректировки.
- Сохраните изменения, нажав на «Сохранить изменения и перезагрузиться» в разделе «Выход».
После внесенных изменений компьютер перезагрузится и вы сможете работать без режима безопасной загрузки. Если вам нужно будет включить Secure Boot снова, то необходимо войти в UEFI и вместо пункта «Очистить ключи» выбрать вариант «Установка ключей безопасной …». Следующим шагом действие подтверждается кликом по надписи «Да» или Yes. После сохранения в разделе Exit и перезагрузки безопасный режим должен снова заработать.
Обратите внимание, что у разных компьютеров и ноутбуков различный интерфейс UEFI. Поэтому вы можете не увидеть указанных в инструкции выше пунктов, они могут называться иначе. Для получения более подробной информации изучите документацию по вашему устройству.
Если вы отключите безопасную загрузку, то система не сможет контролировать компоненты и может запустить как обычные программы, так и вредоносные. Помните об этом, отключая настолько важный элемент безопасности Windows. Если компьютер используется постоянно и на нем хранится конфиденциальная информация, она всегда будет находиться под угрозой.
Мы рассмотрели, что значит безопасная загрузка и безопасный режим в компьютере. Надеемся, что вы сможете использовать инструкцию в статье, чтобы восстановить Windows в режиме Safe Mode и включить и выключить функцию Secure Boot по необходимости. Не забывайте, что, если у вас собственный бизнес, заниматься обслуживанием компьютерной техники самостоятельно вовсе не обязательно. Отдайте обслуживание компьютеров на аутсорсинг и вам не придется задумываться о том, зачем нужна безопасная загрузка через БИОС и как ее включить или выключить.