Windows 7 mbr nt5 или nt6

Полезные лайфхаки и программы для Windows, решение проблем с различным компонентами операционной системы.

      Для установки операционной системы на различные накопители существует очень известная утилита WinNTSetup. По использованию данной программы написано огромное множество статей, но в них не описаны ошибки при работе с этой программой, из-за этого в комментариях пользователи задают одни и те же вопросы.

      В этой статье мы разберем самые частые вопросы пользователей, которые возникают при работе с программой. Основные проблемы возникают при выборе загрузочного диска. В правой части данного пункта находятся 3 зеленых огонька. Чтобы программа правильно установила ОС, а она затем запустилась они должны быть зелеными. Но у некоторых пользователей они имеют желтый или красный цвет, именно эти проблемы мы и будем решать.

Типичные проблемы:

 MBR горит красным или желтым 

 BOOTMRG PBR горит красным или желтым

 WinNTSetup горит красным или желтым 

      Данные индикаторы меняют свой цвет при указании диска, на который будет установлен загрузчик. каждый пункт означает определенную настройку носителя.

      Когда горят 3 зеленых огонька, то такой загрузочный сектор создан правильно, и система успешно загрузиться с такой флешки. А вот если они горят другими цветами, то нужно настраивать загрузочный диск. И так

MBR горит красным или желтым 

      В этом случае диск был отформатирован правильно, но на нем не установлена загрузочная запись. Чтобы это исправить, понадобиться программа bootice. Скачать ее можно по ссылке ниже или с официального сайта разработчика.

bootice скачать с нашего сайта или с сайта разработчика

      После того как вы скачали программу, распаковываем архив в любое удобное место, и в зависимости от разрядности системы запускаем BOOTICEx64_2016.06.17_v1.3.4.0.exe для 64 разрядных систем и BOOTICEx86_2016.06.17_v1.3.4.0.exe для 32 разрядных.

      После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

      Затем нажимаем кнопку «Process MBR», откроется окно с выбором типа загрузочной записи, выбираем последний вариант, как на картинке ниже, и нажимаем кнопку «Instal/Config»

      Затем в открывшемся окошке нажимаем на кнопку «Windows NT 6.x MBR».

      После завершения процесса записи загрузочной части утилита уведомит вас об этом уведомлением. Нажимаем ОК.

      После этого закрываем программу и заново выбираем диск в WinNTSetup. Теперь огонек около MBR, должен гореть зеленым.

BOOTMRG PBR горит красным или желтым

      Данная ошибка достаточно редкая, и исправляется переформатированием раздела разгрузчика, для этого нужно нажать кнопку «F» рядом с кнопкой выбрать, и выставить правильные настройки, затем нажать форматирование.

      Для флешек распространенной ошибкой является форматирование в FAT16 FAT32, а для Windows оба раздела должны быть отформатированы в NTFS.

      Ниже представлен один из примеров:

BOOT PART горит красным или желтым

      Данная ошибка тоже достаточно часто возникает у пользователей. Она возникает из-за того, что выбран «Активным» не тот диск. Чтобы система успешно установилась «Активным» должен быть выбран загрузочный диск. Решается она также как и первая, с помощью программы bootice.

      Запускаем программу bootice

      После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

      Затем нажимаем кнопку «Part Manage», откроется окно с редактором дисков для выбранного накопителя. Часто проблема заключается в том, что активням является не загрузочный раздел. Тоесть как можно увидеть на картинке ниже буковка A в графе Act. стоит напротив диска D объемом 29.7 ГБ куда будет устанавливаться система. А должна стоять напротив диска J, размером 100 мб.

      Имена с дисков могут меняться быть другими, не как в нашем примере.

      Чтобы исправить эту проблему, выделяем диск J  и нажимаем внизу кнопку «Activate». После завершения операции программа покажет уведомление.

      Все, теперь закрываем bootice, и заново в программе WinNTSetup выбираем наш загрузочный диск. Проблема должна решиться.


  • PCI Express 2.0 vs PCI Express 3.0 vs PCI Express 4.0

    < Назад

  • Как определить разрядность операционной системы

    Вперёд >

Автор : btamedia

Содержание

  1. Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС
  2. Принципы загрузки операционных систем
  3. Типы MBR
  4. Разнообразие PBR
  5. ПК-Дайджест
  6. MBR горит красным или желтым
  7. BOOTMRG PBR горит красным или желтым
  8. WinNTSetup горит красным или желтым
  9. MBR горит красным или желтым
  10. bootice скачать с нашего сайта или с сайта разработчика
  11. BOOTMRG PBR горит красным или желтым
  12. BOOT PART горит красным или желтым
  13. ПК-Дайджест
  14. MBR горит красным или желтым
  15. BOOTMRG PBR горит красным или желтым
  16. WinNTSetup горит красным или желтым
  17. MBR горит красным или желтым
  18. bootice скачать с нашего сайта или с сайта разработчика
  19. BOOTMRG PBR горит красным или желтым
  20. BOOT PART горит красным или желтым

Все, что вы хотели знать про загрузку Windows, загрузчики и восстановление загрузки ОС

В этой статье я не планирую подробно рассказывать обо всех типах загрузчиков, но хочу свести воедино всю необходимую информацию, которую нужно знать для создания загрузочных дисков, флэшек, а также для восстановления загрузчиков.

Принципы загрузки операционных систем

При включении компьютера управление процессором получает BIOS, и если он настроен на загрузку (boot) с винчестера, то он подгружает в оперативную память компьютера первый сектор диска (MBR) и передает управление ему. Если у вас несколько жестких дисков, то каждый из них содержит свою MBR. В этом случае можно или менять порядок загрузки дисков в BIOS, или же прописать все операционные системы с разных дисков в один PBR загрузчик, об этом ниже.

Сразу оговоримся, что если у BIOS у вас включен режим загрузки UEFI, то структура разделов диска у вас должна быть не MBR, а GPT. GPT имеет не только другую структуру разделов, но и другую структуру загрузочной области. Там в первый сектор записывается «заглушка» для BIOS (Protective MBR), которая служит для того, чтобы старый Legacy BIOS мог загрузиться с GPT диска в режиме совместимости, если ОС была установлена на GPT (часто в BIOS его называют CSM – Compatibility Support Module). Однако, вы никогда не сможете загрузить ОС с MBR диска, если в BIOS выставлена загрузка в режиме UEFI.

При загрузке операционной системы, сначала считывается первый сектор с устройства загрузки, представляющий собой главную загрузочную запись (Master Boot Record — MBR). Стандартно, в качестве MBR выступает первый сектор загрузочного диска. MBR содержит список разделов, признак активного раздела (раздела, с которого будет выполняться загрузка ОС), некоторые служебные данные, а также программный код для считывания в память загрузочного сектора активного раздела (Partition Boot Record — PBR) и передачи ему управления.

Размер сектора на жестком диске — 512 байт. В секторе MBR хранятся данные, которые должны заканчиваться специальной сигнатурой. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена.

Общая структура MBR может быть представлена следующей таблицей:

Смещение Длина Описание

000h 446 Код загрузчика

1BEh 64 Таблица разделов

1CEh 16 Раздел 2

1DEh 16 Раздел 3

1EEh 16 Раздел 4

1FEh 2 Сигнатура (55h AAh)

Длина указана в байтах.

Как видно, MBR может содержать информацию максимум о 4 разделах. Каждый 16-байтовый блок, содержащий информацию о разделах, в своем начале содержит признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — может иметь значения 80h (раздел активен) и 00h (раздел не активен). Количество активных разделов должно быть не более одного.

Шестнадцатеричный однобайтовый код далее указывает на тип (ID) раздела. Например, 07h – раздел типа NTFS, 0Bh – FAT32, 17h – скрытый NTFS раздел, 27h – системный скрытый NTFS раздел для восстановления системы.

Типы MBR

Выше мы увидели, что в сектор MBR записывается код загрузчика. Что же это? Дело в том, что в MBR может быть записан как «стандартный» загрузчик, так и альтернативные загрузчики.

Существуют следующие распространенные типы MBR:

  • Windows NT версий 5.х и 6.x, занимает 1 сектор. Может загружать ОС только с первичного активного раздела.
  • GRUB4DOS версий 5.х и 6.x – занимает 16 секторов. Представляет собой файл gbldr.mbr. также его можно установить в качестве PBR прямо в раздел.
  • GRUB 2.0 – универсальный загрузочный менеджер, занимает 63 сектора. Состоит из файлов boot.img и core.img. Может работать с любыми файловыми системами и загружать ОС как с первичных, так и логических разделов.
  • PLoP – занимает 62 сектора и имеет продвинутый интерфейс. Позволяет организовать загрузку с CD/Floppy/USB без поддержки и обращения к BIOS.
  • UltraISO USB-HDD – занимает 1 сектор и позволяет выполнять загрузку с внешних USB HDD дисков.

Конечно, с учетом многообразия ОС, существует масса других MBR, но они не так популярны.

Операционные системы дружат только с определёнными типа загрузчиков, однако это не значит, что их нельзя модифицировать для поддержки других ОС. Так, в Windows MBR можно добавить информацию о Linux разделе, но этого недостаточно, чтобы Linux стал грузиться. Для этого также потребуется редактировать и PBR. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки, то есть если у вас загрузочная запись Windows NT MBR, а загрузчик GRUB, то такая схема работать не будет. Виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR, поэтому они могут грузиться и через GRUB MBR.

Главное, что вам нужно понять, что MBR содержит микрокод, инструкции для процессора, а не файлы. PBR же указывает на загрузчик, который является файлом.

Разнообразие PBR

Мы с вами выяснили, что MBR передает управление на активный раздел с PBR. PBR (Partition Boot Record), так же называют volume boot record (VBR) – это микрокод в начальном секторе раздела диска (часто это сектор 63), который содержит информацию, какой же загрузчик искать.

Существуют следующие загрузчики:

Тип MBR — NT 5.x/6.x, 1 сектор

  • io.sys для MS-DOS, Windows 95/98/МЕ
  • ntldr для Windows 2000/XP/2003
  • bootmgr для Windows Vista/7/8/8.1/10

Тип MBR — Grub4DOS, 18 секторов

Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов зависит от версии и количества файлов)

  • ldlinux.sys – основной базовый модуль
  • syslinux.sys — для загрузки с FAT, FAT32, NTFS
  • isolinux.bin — для загрузки с iso9660
  • pxelinux — для загрузки по PXE
  • extlinux для загрузки с ext2/ext3/ext4 или btrfs

Как я сказал выше, загрузчик является не загрузочной областью, а бинарным файлом.

  • Файлы Windows NTLDR или BOOTMGR должны лежать в корне активного системного раздела и работают они по-разному. Об этом ниже.
  • Файл GRLDR используется Grub4DOS также должен лежать в корне партиции, с котрой выполняется загрузка
  • Syslinux – универсальный загрузчик, содержащий много модулей и поддерживающий загрузку с файловых систем ext2/¾, FAT, NTFS, CD/DVD дисков, по сети через PXE. Позволяет организовать текстовое или графическое загрузочное меню.
    Чаще всего этот загрузчик используют для запуска Linux с файловых систем FAT/NTFS или же создания мультизагрузочных USB флэшек, позволяющих загружать как Linux-совместимые приложения под DOS, так и Windows PE.

Например, типичные пример создания мультизагрузочной флэшки – Multiboot USB 2k10, создаваемые уважаемыми conty9 & korsak7. Мультизагрузочный диск системного администратора с возможностью загрузки c CD/DVD, флешки, USB-HDD и обычного HDD и состоящий из нескольких Windows PE-сборок, а также DOS версий продуктов компании Acronis – например Acronis True Image (выполнены на Linux-ядре). Именно из-за этого смешанного зоопарка систем и приходится использовать загрузчик Syslinux (хотя можно и Grub4DOS).

В своем арсенале вам необходимо обязательно иметь утилиту BootICE. Уникальная в своём роде утилита для изменения или бэкапа/восстановления MBR (Master Boot Record) или PBR (Partition Boot Record). С BOOTICE, вы можете легко изменять тип MBR/PBR. Поддерживается загрузочные записи: Grub4DOS, SysLinux, PLoP, MS NT52/60… Например, с помощью этой утилиты, вы можете установить Grub4DOS вашим MBR или PBR, установить NTLDR или BOOTMGR к вашему PBR, установить SYSLINUX на PBR, и так далее.

ПК-Дайджест

Для установки операционной системы на различные накопители существует очень известная утилита WinNTSetup. По использованию данной программы написано огромное множество статей, но в них не описаны ошибки при работе с этой программой, из-за этого в комментариях пользователи задают одни и те же вопросы.

В этой статье мы разберем самые частые вопросы пользователей, которые возникают при работе с программой. Основные проблемы возникают при выборе загрузочного диска. В правой части данного пункта находятся 3 зеленых огонька. Чтобы программа правильно установила ОС, а она затем запустилась они должны быть зелеными. Но у некоторых пользователей они имеют желтый или красный цвет, именно эти проблемы мы и будем решать.

MBR горит красным или желтым

BOOTMRG PBR горит красным или желтым

WinNTSetup горит красным или желтым

Данные индикаторы меняют свой цвет при указании диска, на который будет установлен загрузчик. каждый пункт означает определенную настройку носителя.

Когда горят 3 зеленых огонька, то такой загрузочный сектор создан правильно, и система успешно загрузиться с такой флешки. А вот если они горят другими цветами, то нужно настраивать загрузочный диск. И так

MBR горит красным или желтым

В этом случае диск был отформатирован правильно, но на нем не установлена загрузочная запись. Чтобы это исправить, понадобиться программа bootice. Скачать ее можно по ссылке ниже или с официального сайта разработчика.

bootice скачать с нашего сайта или с сайта разработчика

После того как вы скачали программу, распаковываем архив в любое удобное место, и в зависимости от разрядности системы запускаем BOOTICEx64_2016.06.17_v1.3.4.0.exe для 64 разрядных систем и BOOTICEx86_2016.06.17_v1.3.4.0.exe для 32 разрядных.

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Затем нажимаем кнопку «Process MBR», откроется окно с выбором типа загрузочной записи, выбираем последний вариант, как на картинке ниже, и нажимаем кнопку «Instal/Config»

Затем в открывшемся окошке нажимаем на кнопку «Windows NT 6.x MBR».

После завершения процесса записи загрузочной части утилита уведомит вас об этом уведомлением. Нажимаем ОК.

После этого закрываем программу и заново выбираем диск в WinNTSetup. Теперь огонек около MBR, должен гореть зеленым.

BOOTMRG PBR горит красным или желтым

Данная ошибка достаточно редкая, и исправляется переформатированием раздела разгрузчика, для этого нужно нажать кнопку «F» рядом с кнопкой выбрать, и выставить правильные настройки, затем нажать форматирование.

Для флешек распространенной ошибкой является форматирование в FAT16 FAT32, а для Windows оба раздела должны быть отформатированы в NTFS.

Ниже представлен один из примеров:

BOOT PART горит красным или желтым

Данная ошибка тоже достаточно часто возникает у пользователей. Она возникает из-за того, что выбран «Активным» не тот диск. Чтобы система успешно установилась «Активным» должен быть выбран загрузочный диск. Решается она также как и первая, с помощью программы bootice.

Запускаем программу bootice

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Затем нажимаем кнопку «Part Manage», откроется окно с редактором дисков для выбранного накопителя. Часто проблема заключается в том, что активням является не загрузочный раздел. Тоесть как можно увидеть на картинке ниже буковка A в графе Act. стоит напротив диска D объемом 29.7 ГБ куда будет устанавливаться система. А должна стоять напротив диска J, размером 100 мб.

Имена с дисков могут меняться быть другими, не как в нашем примере.

Чтобы исправить эту проблему, выделяем диск J и нажимаем внизу кнопку «Activate». После завершения операции программа покажет уведомление.

Все, теперь закрываем bootice, и заново в программе WinNTSetup выбираем наш загрузочный диск. Проблема должна решиться.

ПК-Дайджест

Для установки операционной системы на различные накопители существует очень известная утилита WinNTSetup. По использованию данной программы написано огромное множество статей, но в них не описаны ошибки при работе с этой программой, из-за этого в комментариях пользователи задают одни и те же вопросы.

В этой статье мы разберем самые частые вопросы пользователей, которые возникают при работе с программой. Основные проблемы возникают при выборе загрузочного диска. В правой части данного пункта находятся 3 зеленых огонька. Чтобы программа правильно установила ОС, а она затем запустилась они должны быть зелеными. Но у некоторых пользователей они имеют желтый или красный цвет, именно эти проблемы мы и будем решать.

MBR горит красным или желтым

BOOTMRG PBR горит красным или желтым

WinNTSetup горит красным или желтым

Данные индикаторы меняют свой цвет при указании диска, на который будет установлен загрузчик. каждый пункт означает определенную настройку носителя.

Когда горят 3 зеленых огонька, то такой загрузочный сектор создан правильно, и система успешно загрузиться с такой флешки. А вот если они горят другими цветами, то нужно настраивать загрузочный диск. И так

MBR горит красным или желтым

В этом случае диск был отформатирован правильно, но на нем не установлена загрузочная запись. Чтобы это исправить, понадобиться программа bootice. Скачать ее можно по ссылке ниже или с официального сайта разработчика.

bootice скачать с нашего сайта или с сайта разработчика

После того как вы скачали программу, распаковываем архив в любое удобное место, и в зависимости от разрядности системы запускаем BOOTICEx64_2016.06.17_v1.3.4.0.exe для 64 разрядных систем и BOOTICEx86_2016.06.17_v1.3.4.0.exe для 32 разрядных.

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Затем нажимаем кнопку «Process MBR», откроется окно с выбором типа загрузочной записи, выбираем последний вариант, как на картинке ниже, и нажимаем кнопку «Instal/Config»

Затем в открывшемся окошке нажимаем на кнопку «Windows NT 6.x MBR».

После завершения процесса записи загрузочной части утилита уведомит вас об этом уведомлением. Нажимаем ОК.

После этого закрываем программу и заново выбираем диск в WinNTSetup. Теперь огонек около MBR, должен гореть зеленым.

BOOTMRG PBR горит красным или желтым

Данная ошибка достаточно редкая, и исправляется переформатированием раздела разгрузчика, для этого нужно нажать кнопку «F» рядом с кнопкой выбрать, и выставить правильные настройки, затем нажать форматирование.

Для флешек распространенной ошибкой является форматирование в FAT16 FAT32, а для Windows оба раздела должны быть отформатированы в NTFS.

Ниже представлен один из примеров:

BOOT PART горит красным или желтым

Данная ошибка тоже достаточно часто возникает у пользователей. Она возникает из-за того, что выбран «Активным» не тот диск. Чтобы система успешно установилась «Активным» должен быть выбран загрузочный диск. Решается она также как и первая, с помощью программы bootice.

Запускаем программу bootice

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Затем нажимаем кнопку «Part Manage», откроется окно с редактором дисков для выбранного накопителя. Часто проблема заключается в том, что активням является не загрузочный раздел. Тоесть как можно увидеть на картинке ниже буковка A в графе Act. стоит напротив диска D объемом 29.7 ГБ куда будет устанавливаться система. А должна стоять напротив диска J, размером 100 мб.

Имена с дисков могут меняться быть другими, не как в нашем примере.

Чтобы исправить эту проблему, выделяем диск J и нажимаем внизу кнопку «Activate». После завершения операции программа покажет уведомление.

Все, теперь закрываем bootice, и заново в программе WinNTSetup выбираем наш загрузочный диск. Проблема должна решиться.

В этой статье я не планирую подробно рассказывать обо всех типах загрузчиков, но хочу свести воедино всю необходимую информацию, которую нужно знать для создания загрузочных дисков, флэшек, а также для восстановления загрузчиков.

Принципы загрузки операционных систем

При включении компьютера управление процессором получает BIOS, и если он настроен на загрузку (boot) с винчестера, то он подгружает в оперативную память компьютера первый сектор диска (MBR) и передает управление ему. Если у вас несколько жестких дисков, то каждый из них содержит свою MBR. В этом случае можно или менять порядок загрузки дисков в BIOS, или же прописать все операционные системы с разных дисков в один PBR загрузчик, об этом ниже.

Сразу оговоримся, что если у BIOS у вас включен режим загрузки UEFI, то структура разделов диска у вас должна быть не MBR, а GPT. GPT имеет не только другую структуру разделов, но и другую структуру загрузочной области. Там в первый сектор записывается «заглушка» для BIOS (Protective MBR), которая служит для того, чтобы старый Legacy BIOS мог загрузиться с GPT диска в режиме совместимости, если ОС была установлена на GPT (часто в BIOS его называют CSM – Compatibility Support Module). Однако, вы никогда не сможете загрузить ОС с MBR диска, если в BIOS выставлена загрузка в режиме UEFI.

При загрузке операционной системы, сначала считывается первый сектор с устройства загрузки, представляющий собой главную загрузочную запись (Master Boot Record — MBR). Стандартно, в качестве MBR выступает первый сектор загрузочного диска. MBR содержит список разделов, признак активного раздела (раздела, с которого будет выполняться загрузка ОС), некоторые служебные данные, а также программный код для считывания в память загрузочного сектора активного раздела (Partition Boot Record — PBR) и передачи ему управления.

Размер сектора на жестком диске — 512 байт. В секторе MBR хранятся данные, которые должны заканчиваться специальной сигнатурой. Этим словом называется специальная, строго установленная, последовательность из 2 байт с шестнадцатеричными значениями 55h AAh, которая записывается в последние 2 байта сектора и соответственно имеет смещение от начала сектора 1FEh. Если хотя бы один из двух последних байтов отличается по значению, считается, что первый сектор не является MBR и не содержит осмысленной информации. Если компьютер при старте, прочитав первый сектор, не обнаружит правильной сигнатуры, он не будет передавать управление располагающемуся там коду, даже если он правильный, а выдаст сообщение о том, что главная загрузочная запись не найдена.

Общая структура MBR может быть представлена следующей таблицей:

Смещение Длина Описание

000h      446  Код загрузчика

1BEh       64  Таблица разделов

                16  Раздел 1

1CEh       16  Раздел 2

1DEh       16  Раздел 3

1EEh       16  Раздел 4

1FEh        2  Сигнатура (55h AAh)

Длина указана в байтах.

Как видно, MBR может содержать информацию максимум о 4 разделах. Каждый 16-байтовый блок, содержащий информацию о разделах, в своем начале содержит признак активности раздела — т.е. признак того, что операционную систему следует загружать именно из этого раздела — может иметь значения 80h (раздел активен) и 00h (раздел не активен). Количество активных разделов должно быть не более одного.

Шестнадцатеричный однобайтовый код далее указывает на тип (ID) раздела. Например, 07h – раздел типа NTFS, 0Bh – FAT32, 17h – скрытый NTFS раздел, 27h – системный скрытый NTFS раздел для восстановления системы.

Типы MBR

Выше мы увидели, что в сектор MBR записывается код загрузчика. Что же это? Дело в том, что в MBR может быть записан как «стандартный» загрузчик, так и альтернативные загрузчики.

Существуют следующие распространенные типы MBR:

  • Windows NT версий 5.х и 6.x, занимает 1 сектор. Может загружать ОС только с первичного активного раздела.
  • GRUB4DOS версий 5.х и 6.x – занимает 16 секторов. Представляет собой файл gbldr.mbr. также его можно установить в качестве PBR прямо в раздел.
  • GRUB 2.0 – универсальный загрузочный менеджер, занимает 63 сектора. Состоит из файлов boot.img и core.img. Может работать с любыми файловыми системами и загружать ОС как с первичных, так и логических разделов.
  • PLoP – занимает 62 сектора и имеет продвинутый интерфейс. Позволяет организовать загрузку с CD/Floppy/USB без поддержки и обращения к BIOS.
  • UltraISO USB-HDD – занимает 1 сектор и позволяет выполнять загрузку с внешних USB HDD дисков.

Конечно, с учетом многообразия ОС, существует масса других MBR, но они не так популярны.

Операционные системы дружат только с определёнными типа загрузчиков, однако это не значит, что их нельзя модифицировать для поддержки других ОС. Так, в Windows MBR можно добавить информацию о Linux разделе, но этого недостаточно, чтобы Linux стал грузиться. Для этого также потребуется редактировать и PBR. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки, то есть если у вас загрузочная запись Windows NT MBR, а загрузчик GRUB, то такая схема работать не будет. Виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR, поэтому они могут грузиться и через GRUB MBR.

Главное, что вам нужно понять, что MBR содержит микрокод, инструкции для процессора, а не файлы. PBR же указывает на загрузчик, который является файлом.

Разнообразие PBR

Мы с вами выяснили, что MBR передает управление на активный раздел с PBR. PBR (Partition Boot Record), так же называют volume boot record (VBR) – это микрокод в начальном секторе раздела диска (часто это сектор 63), который содержит информацию, какой же загрузчик искать.

Существуют следующие загрузчики:

Тип MBR — NT 5.x/6.x, 1 сектор

  • io.sys для MS-DOS, Windows 95/98/МЕ
  • ntldr для Windows 2000/XP/2003
  • bootmgr для Windows Vista/7/8/8.1/10

Тип MBR — Grub4DOS, 18 секторов

  • grldr для Grub4DOS

Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов зависит от версии и количества файлов)

  • ldlinux.sys – основной базовый модуль
  • syslinux.sys — для загрузки с FAT, FAT32, NTFS
  • isolinux.bin — для загрузки с iso9660
  • pxelinux — для загрузки по PXE
  • extlinux для загрузки с ext2/ext3/ext4 или btrfs

Как я сказал выше, загрузчик является не загрузочной областью, а бинарным файлом.

  • Файлы Windows NTLDR или BOOTMGR должны лежать в корне активного системного раздела и работают они по-разному. Об этом ниже.
  • Файл GRLDR используется Grub4DOS также должен лежать в корне партиции, с котрой выполняется загрузка
  • Syslinux – универсальный загрузчик, содержащий много модулей и поддерживающий загрузку с файловых систем ext2/3/4, FAT, NTFS, CD/DVD дисков, по сети через PXE. Позволяет организовать текстовое или графическое загрузочное меню.
    Чаще всего этот загрузчик используют для запуска Linux с файловых систем FAT/NTFS или же создания мультизагрузочных USB флэшек, позволяющих загружать как Linux-совместимые приложения под DOS, так и Windows PE.

Например, типичные пример создания мультизагрузочной флэшки – Multiboot USB 2k10, создаваемые уважаемыми conty9 & korsak7. Мультизагрузочный диск системного администратора с возможностью загрузки c CD/DVD, флешки, USB-HDD и обычного HDD и состоящий из нескольких Windows PE-сборок, а также DOS версий продуктов компании Acronis – например Acronis True Image (выполнены на Linux-ядре). Именно из-за этого смешанного зоопарка систем и приходится использовать загрузчик Syslinux (хотя можно и Grub4DOS).

В своем арсенале вам необходимо обязательно иметь утилиту BootICE. Уникальная в своём роде утилита для изменения или бэкапа/восстановления MBR (Master Boot Record) или PBR (Partition Boot Record). С BOOTICE, вы можете легко изменять тип MBR/PBR. Поддерживается загрузочные записи: Grub4DOS, SysLinux, PLoP, MS NT52/60… Например, с помощью этой утилиты, вы можете установить Grub4DOS вашим MBR или PBR, установить NTLDR или BOOTMGR к вашему PBR, установить SYSLINUX на PBR, и так далее.

Редактирование и установка MBR
Редактирование и установка загрузчика
Установка MBR GRUB4DOS

Помимо работы с MBR и PBR, BootICE позволяет редактировать разделы диска, выполнять ручное разбиение и форматирование, модифицировать тип раздела, сохранять и восстанавливать из бэкапа таблицу разделов.

Работа с таблицей разделов в BootICE

Кратко о загрузчике Syslinux

Обратите внимание, что загрузчик Syslinux сам по себе не может быть установлен в MBR, однако в пакете syslinux имеются два файла, из которых можно установить загрузочный код Syslinux в 440-байтную область загрузочного кода MBR: mbr.bin или gptmbr.bin. Конечно, это имеет смысл только для Linux.

Кстати, syslinux может быть использовать с UEFI – для него загрузчик называется syslinux.efi, однако он еще достаточно сырой.

Итак, Syslinux состоит из файла загрузчика и файла конфигурации меню syslinux.cfg. Файл меню может вызывать графическое меню через подгрузку файла vesamenu.c32.

Установка Syslinux под Windows на другой диск выполняется достаточно просто: используется файл «[bios/]win32/syslinux.exe» для 32-х битных систем и «[bios/]win64/syslinux64.exe» для 64-х битных систем.

syslinux.exe —install a: — установка на флоппи-диск

syslinux.exe —mbr —active —directory /boot/syslinux/ —install z:    — установка на диск z:, например флешку, где

— в качестве разделителей должны быть использованы именно /, а не

— в каталоге z:bootsyslinux будет размещён файл-загрузчик «ldlinux.sys»

— и раздел z: помечен как активный

— для организации меню должен быть создан файл z:bootsyslinuxsyslinux.cfg

Установка загрузчика Syslinux

Через BootICE вы также можете установить загрузчик Syslinux, указав в опциях альернативное местоположение файлов ldlinux.sys и и файла меню syslinux.cfg.

Конечно, основное внимание мы уделим загрузчикам для Windows.

Загрузчик NTLDR использовался до появления операционной системы Windows Vista. В процессе начальной загрузки, программный код загрузочного сектора раздела (PBR — Partition Boot Sector) обеспечивал поиск, считывание в память и передачу управления файлу ntldr, который размещался в корневом разделе загрузочного диска. Конфигурирование загрузчика ntldr выполнялось с помощью простого текстового файла boot.ini, содержимое которого задавало список загружаемых операционных систем, их параметры загрузки, размещение системных файлов и т.п. В операционных системах Windows Vista /Server 2008 и более поздних, загрузчик ntldr не используется, и заменен диспетчером загрузки BOOTMGR. Соответственно, изменился и программный код загрузочного сектора раздела, обеспечивающий передачу управления файлу bootmgr. Новый диспетчер загрузки использует собственные данные конфигурации загрузки (Boot Configuration Data — BCD) и может выполнять, при определенных настройках, загрузку любых операционных систем семейства Windows. Загрузчик ntldr не поддерживает возможность загрузки Windows Vista и старше.

Также, хочу отметить, что все современные Windows PE любых версий также используют загрузчик bootmgr. Цепочка стадий загрузки MBR — PBR — BOOTMGR — это минимально необходимое условие для того, чтобы загрузка операционной системы могла начаться. Дальнейший же ее ход, определяется диспетчером загрузки BOOTMGR, который считывает данные конфигурации загрузки из файла BOOTBCD активного раздела и выполняет загрузку в соответствии с их содержимым.

Для Windows 7 он запускает файл WINDOWSsystem32winload.exe

Загрузка WINDOWSsystem32winload.exe

Диспетчер загрузки bootmgr позволяет выполнить загрузку как с обычного системного диска, так и из загрузочных образов, виртуальных дисков, загрузку с использованием загрузчиков других операционных систем. Это позволяет использовать bootmgr для загрузки Windows PE. В соответствии с конфигурацией загрузки, диспетчер BOOTMGR может выполнить загрузку ядра Windows или, например, Linux, обеспечить выход из режима гибернации, загрузить диагностические программы, выполнить загрузку ядра с измененными параметрами и т.п.

Обычно файл bootmgr имеет атрибуты «скрытый» и «системный». По типу структуры, файл BootBCD является кустом реестра и отображается в редакторе реестра Windows как раздел

HKEY_LOCAL_MACHINEBCD00000000.

Обычно именно конфигурация BCD становится наибольшим камнем преткновения.

Конфигурирование BOOTMGR и BCD

Для работы с загрузчиком Windows вам понадобятся системные утилиты:

Команда BCDEDIT применяется в операционных системах Windows Vista и старше для редактирования BCD. Подробную инструкцию по использованию этой утилиты можно найти здесь.

Однако, я вам крайне рекомендую использовать очень удобную программу EasyBCD для редактирования BCD. Например, с помощью нее вы легко можете добавить Linux раздел в меню загрузки. Вот статья о том, как добавить в BCD конфигурацию Windows 7 пункт загрузки Linux Ubuntu.

При запуске EasyBCD в окне View Settings можно посмотреть текущую конфигурацию BCD. На скриншоте видно, что в текущий момент на диске установлена одна Windows 7, GUID которой {9079c27c-fa49-11e5-8c8e-3417ebc2574d} и вручную добавленный пункт меню для запуска установки Windows из WIM файла:

BCD menu для загрузки Windows и установки из WIM файла

А вот BCD меню загрузочной флэшки, на которой присутствуют инсталляторы Windows 7 x86 и x64, а также две среды MSDaRT x86 + x64:

BCD меню загрузочной флэшки, overview
BCD menu — установка Windows из WIM файла x86 и x64
Запуск среды восстановления Windows RE с загрузочной флэшки

Утилита BOOTSECT.EXE позволяет изменить программный код загрузчика Windows для переключения между двумя вариантами диспетчера загрузки — BOOTMGR или NTLDR – или восстановить поврежденный загрузчик!

Например,

Команда bootsect /nt60 E: /mbr /force – создает на диске E: (например, флэшке) записи MBR и PBR и устанавливает загрузчик bootmgr.

Ну и третья, крайне важная утилита — BootRec входит в состав средств среды восстановления Windows (Windows Recovery Environment) и применяется для восстановления загрузки операционной системы. Найди ее вы можете, загрузившись с установочного диска Windows и выбрав вместо установки опцию «Восстановление системы». Появится окно MSDaRT, откуда можно запустить командную строку и набрать там BootRec.exe. MSDaRT также можно скачать отдельно (это бесплатный продукт Microsoft) и сделать загрузочную флэшку/диск с ним.

Команда Bootrec /FixMbr – записывает основную загрузочную запись (MBR) системного раздела, совместимую с Windows. При этом существующая таблица разделов не перезаписывается.

Bootrec /FixBoot – записывает в системный раздел новый загрузочный сектор, совместимый с Windows.

bootrec /RebuildBCD – перестроить хранилище конфигурации загрузки на данном компьютере. Удобно использовать для изменения конфигурации BCD при добавлении нового диска с установленной Windows, или для внесения изменений в существующую конфигурацию загрузки новых или ранее не использовавшихся ОС.

Загрузчик GRUB4DOS

Это один из наиболее универсальных загрузчиков, способных загружать почти любую операционную систему с любого носителя. Пользователям Linux установка GRUB очевидна, для Windows все не так просто. GRUB имеет смысл использовать, например, одним из загрузчиков мультизагрузочной флэшки, ведь он поддерживает chainloader — передачу управления на другой загрузчик по цепочке. Таким образом, на флэшке можно установить GRUB MBR, который будет обращаться к загрузчику grldr, который в свою очередь через меню позволяет перенаправить запросы на bootmgr, например, для установки Windows.

Загрузчик состоит из следующих файлов:

  • default
  • grldr
  • menu.lst

Файл grldr.mbr нужен для установки GRUB в качестве MBR. Итак, GRUB можно установить руками под Windows или же воспользоваться различными утилитами.

Установка GRUB загрузчика под Windows

Представим, что у вас уже есть Windows с загрузчиком bootmgr. Вам необходимо будет добавить в BCD записи о новом загрузчике, чтобы не лишаться существующего. Порядок действий:

  1. Файлы загрузчика Grub4dos — grldr.mbr и grldr — размещаются в доступном месте, например в корне диска C: (может быть FAT32, NTFS). Скачать файлы можно с официального репозитария.
  2. Далее добавляем загрузчик в BCD или через командную строку и команду bcdedit, о которой шла речь выше, или утилиты BootICE/EasyBCD. В командной строке выполняются следующие команды:
    > bcdedit /create /d "Grub4Dos" /application bootsector       - создание новой записи с именем "Grub4Dos" в хранилище данных конфигурации загрузки, 
    запомните GUID новой записи > bcdedit /set {id} device partition=C: - описание свойств новой записи, {id} - GUID, который вы запомнили выше > bcdedit /set {id} path grldr.mbr - {id} это идентификатор созданной записи, выданный первой командой > bcdedit /displayorder {id} /addlast - (опционально) смещение новой записи в конец меню
  3. Создаётся меню загрузчика Grub4dos - C:menu.lst

Вот и все, не так и сложно.

Сложнее отредактировать меню menu.lst. Вот список основных команд консоли GRUB (их можно исполнять как вручную из командной строки, так и из файла меню):

  # комментарий                                   - знак решётки - указание загрузчику не обрабатывать строку
  boot                                            - передача управления ядру, загруженному командой kernel или "следующему" загрузчику, по команде chainloader
  color light-gray/black yellow/green light-cyan/black light-green/black     - задаёт цвета меню
  chainloader /ntldr                              - передает управление загрузчику, в примере /ntldr
  chainloader (hd0)+1                             - передает управление на загрузочный сектор устройства (hd0)
  chainloader +1                                  - передает управление на загрузочный сектор корневого устройства
  configfile /cfg/next.lst                        - открывает файл конфигурации, перейти в субменю
  default 0                                       - установка пункта меню по умолчанию, выполняемого по истечении таймаута
  fallback 1                                      - установка пункта меню выполняемого, если невозможна загрузка по умолчанию
  find --set-root /file                           - поиск файла и установка раздела на котором он расположен в качестве корневого
  halt                                            - выключение рабочей станции
  gfxmenu /boot/message33.gz                      - установка фоновой графической картинки, оно же русификация меню
  quit                                            - выход из GRUB, в DOS
  map (hd0) (hd1)                                 - "свопирование" разделов для обеспечения возможности загрузки windows со второго и последующих дисков
  map (hd1) (hd0)
  timeout 20                                      - установка времени в секундах до выполнения команды следующей команды
  title Boot Name                                 - название пункта меню
  pause                                           - ожидание нажатия клавиши
  rootnoverify (hd0,0)                            - отмена проверки тип файловой системы диска выбранного командой root
  root (hd0,1)                                    - выбор корневого (текущего) диска
  reboot                                          - перезагрузка рабочей станции

Приведу примеру рабочих кусков кода из файла меню:

1
2
3
4
5
6
7
8
title Установка Windows XP with SP3 x86 RUS. 
root (hd0,0)
map --mem /WINSETUP/XPpSP3.ISO (0xff)
map (hd0) (hd1)
map (hd1) (hd0)
map --hook
root (0xff)
chainloader /I386/SETUPLDR.BIN
1
2
3
4
title Установка Windows 7 with SP1 x86-x64 + MSDaRT 7.0 RUS. 
find --set-root /bootmgr
chainloader /bootmgr
boot
1
2
3
4
5
6
7
title Загрузка WinPe RusLive Special Edition 2k10 RUS.
find --set-root --ignore-floppies /2K10/WINPE/RLPE.BIN
chainloader /2K10/WINPE/RLPE.BIN
title Acronis DD 11 and True Image Home 2012 RUS.
map /PROG/ATIH2012PP_6151_ADDH11_2343_ru-RU.iso (0xFF) || map --mem /PROG/ATIH2012PP_6151_ADDH11_2343_ru-RU.iso (0xFF)
map --hook
chainloader (0xFF)
1
2
3
4
5
6
7
8
title Hiren's BootCD v.15.1 RUS.
find --set-root /PROG/hiren.ima
map /PROG/hiren.ima (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
map --floppies=1
boot
1
2
3
4
5
6
7
title Victoria v.3.52 RUS.
find --set-root /PROG/vcr352r.iso
map --mem /PROG/vcr352r.iso (0xff)
map --hook
root (0xff)
chainloader (0xff)
boot
1
2
3
title Alkid Live CD
root (hd0,0)
chainloader (hd0,0)/minint/setuplns.bin

Если вам совсем не хочется, существует программа GRUB4DOS Installer, и даже удобный русский инсталятор для нее, но этот вариант вам не позволит сделать комбинированный загрузчик. Он задаст вопрос, куда распаковать файлы и куда установить загрузчик, после чего сделает все сам: отформатирует, установить MBR, скопирует файлы. Но я лично против такой «автоматизации».

Также, для любителей конфигурировать загрузчик из-под Windows, существует утилитка WinGRUB, которая устанавливает GRUB без форматирования флэшки.

Если все-таки вам не хватило нервов и сил разобраться в написании меню, то есть программки, которые сделают меню загрузки и установят загрузчик за вас, вам нужно только выбрать ISO файлы дистрибутивов, которые надо добавить:

  • WinSetupFromUSB
  • SARDU
  • Easy2Boot

Для желающих создать подобные флэшки рекомендую также почитать профильные сайты: greenflash.su, flashboot.ru и usbtor.ru.

Выводы

Итак, чтобы была возможность загрузить ОС, необходимо, чтобы был установлен корректный загрузчик MBR, который заканчивается валидной сигнатурой, должна быть таблица разделов, и хотя бы один раздел должен быть помечен как активный. А в самом разделе, куда MBR передаст управление, должна быть валидная загрузочная запись, которая укажет, какой системный файл необходимо загрузить в память для начала загрузки самой ОС. Кроме того, должно быть загрузочное меню, которое укажет на местоположение загрузочных файлов ОС.

[Посещений: 19 048, из них сегодня: 12]


Статья от SunOK
MBR (Master Boot Record) — первый сектор (или последовательность первых секторов) диска, в котором находится исполняемый код, он содержит сведения для поиска PBR или файла-загрузчика (Loader) и передает им управление. Также в MBR содержится таблица разделов.
Так, используя утилиты, например Bootice, можно прописать то, что вы видите на скриншоте ниже. И тем самым область Master Boot Record сообщает процессору какой раздел активный и что с него загружать.
PBR (Partition Boot Record), так же называют volume boot record (VBR) — микрокод в начальном секторе раздела диска (часто это сектор 63). Тоже содержит информацию, какой загрузчик искать.
Таким образом, мы можем иметь несколько исполняемых кодов. Один основной. И другой, как бы резервный, на случай отсутствия первого. Однако линуксовый LDLINUX.SYS требует наличия своего микрокода в MBR, чтобы обращаться к нему в процессе загрузки; виндовсовые загрузчики могут обойтись без наличия соответствующего микрокода в MBR.
Соответствие загрузчиков и ОС:
Тип MBR — NT 5.x/6.x, 1 сектор

  • io.sys для MS-DOS, Windows 95/98/МЕ
  • ntldr для Windows XP
  • bootmgr для Windows Vista/7/8/8.1

Тип MBR — Grub4DOS, 18 секторов

  • grldr для Grub4DOS

Тип MBR — LILO/GRUB и др. линуксовые (к-во секторов по разному)

  • syslinux.sys
  • ldlinux.sys
  • isolinux.bin

Наглядный пример содержимого жесткого диска:


Если прописано MBR = NT5.x, PBR = bootmgr и одновременно присутствует NTLDR c BOOTMGR, то загрузится Bootmgr. Но если только NTLDR присутствует, то он и загрузится, потому что PBR = bootmgr ищет второй загрузчик при отсутствии первого. PBR = ntldr такого не умеет.
Загрузчик является не загрузочной областью, а файлом (типа ЕХЕшника, бинарный). Загрузочные области содержат исполняемый код для процессора, который файлом не является. Но если такой код поместить в файл, то Grub4DOS способен заставить процессор его выполнить. Название файла загрузчика вовсе не обязательно должно совпадать с его MBR, таким образом, можно не меняя MBR/PBR поменять загрузчик.
В некоторых BIOS используется только 28-битная адресация в режиме LBA, в таком случае для загрузчику будут доступны только первые 128 Гб. Так что не стоит на емком ЖД далеко располагать файл загрузчика.
Отдельное спасибо Metemorf`у за шаблон этой статьи. Полезные ссылки:
http://akina.hop.ru/mbr.php3
http://dsme.narod.ru/mbrfaq.xhtml

Master Boot Record (MBR) — это так называемая главная загрузочная запись, то есть блок кода и данных, размещаемый на первом физическом секторе носителя информации, обеспечивающий начальный этап загрузки [операционной системы] и дополнительно описывающий схему разбиения носителя на разделы.

В алгоритме загрузки IBM-PC-совместимых персональных компьютеров, использующих классический принцип загрузки, непосредственно после включения питания начинает исполняться код Базовой системы ввода-вывода (БИОС, BIOS). Почему я акцентировал внимание на термине «классический», дело в том, что в последнее время интенсивно разрабатывается спецификация Extensible Firmware Interface (EFI), которая призвана прийти на смену базовой системе ввода-вывода (BIOS). Однако в данной статье мы поведем рассказ именно о классическом методе загрузки (иначе называемом legacy boot), исторически сложившемся сценарии запуска посредством BIOS с использованием MBR-сектора. На финальной стадии работы BIOS, после инициализации и тестирования оборудования (POST), происходит выбор устройства, с которого предполагается дальнейшая загрузка пользовательского кода (операционной системы). Загрузочным устройством может служить любой тип накопителя, доступный для загрузки: гибкий диск, жесткий диск, флеш-диск, компакт-диск, карта памяти и некоторые другие. После того, как загрузочное устройство инициализировано (выбрано), код BIOS считывает с него первый физический сектор (цилиндр:головка:сектор (CHS) которого = 0:0:1 или адрес логического блока (LBA) = 0), в память по адресу 0000:7C00, затем проверяет сигнатуру 55AAh в последних двух байтах (смещение 1FEh), и если сигнатура присутствует, то управление передается по адресу 0000:7C00. Если же сигнатура не найдена, то управление получает собственный специализированный код BIOS, сигнализирующий об отсутствии операционной системы на носителе.

Каково назначение сигнатуры 55AAh? Представьте себе ситуацию, когда валидный код MBR в следствии какого-либо сбоя не был записан в первый сектор диска, или туда по каким-то причинам попал «мусор». После того, как BIOS передаст на подобный «код» управление, система с большой вероятностью зависнет!! Как раз с целью исключить подобные ситуации и была введена сигнатура MBR — 55AAh, на основании которой код BIOS может хоть как-то идентифицировать сектор перед передачей управления. Если идентификатор не найдет, то диск считается не загрузочным.

Поскольку размер физического сектора равен 512 байт, а MBR в классическом понимании ограничивается одним сектором, то и размер MBR, соответственно, равен 512 байт. Кстати, никто не запрещает разработчику изменить структуру MBR таким образом, что он будет занимать более одного сектора последовательно (или не последовательно) на пространстве диска, что, в некоторых случаях, упрощает и алгоритм работы. В подобных ситуациях под MBR понимают весь загрузочный код, а первые 512 байт (то есть первый сектор) называют MBS (Master Boot Sector). Поскольку в загрузчиках Windows подобный подход не используется, термины MBS и MBR для нас абсолютно идентичны.
Теперь давайте перейдём к изучению функциональных особенностей сектора и в данной статье мы с вами будем исследовать загрузочный сектор одной из операционных систем линейки Windows — Microsoft Windows 7. С самого начала, немного забегая вперед, давайте посмотрим на общую структуру размещения функциональных блоков кода в секторе MBR Windows 7:

Смещение Длина, байт Описание
0000h 355 Код загрузчика
0163h 80 Сообщения об ошибках
01B3h 2 Заполнители (00)
01B5h 3 Каждый байт из этих трех является указателем на сообщение об ошибке. Значение 0700h + значение байта определяет смещение сообщения в текущем сегменте данных: 0763h, 077Bh, 079Ah.
01B8h 4 Сигнатура диска (NT Disk Signature) или Идентификатор тома (Volume ID) или Серийный номер диска (Drive Serial Number). Используется самой системой Windows для однозначной идентификации носителя информации, а так же для сопоставления литеры (буквы) устройству. Так же может использоваться различного рода защитами с целью привязки устанавливаемого программного обеспечения к компьютеру.
01BCh 2 Заполнитель (обычно нули). Возможно зарезервировано для будущего использования.
01BEh 16 Таблица разделов (Partition Table, PT). Описывает каждый из четырех возможных для MBR-разметки разделов накопителя.
Раздел 1
01CEh 16 Раздел 2
01DEh 16 Раздел 3
01EEh 16 Раздел 4
01FEh 2 Сигнатура (55AAh). Последние 2 байта сектора.

Как раз по этой структуре можно проследить, что помимо загрузочного кода в MBR содержатся еще и данные о разметке диска, так называемая таблица разделов, каждая запись в которой описывает параметры одного раздела.

Фактически MBR можно считать миниатюрной программой, содержащей в своих данных еще и схему разбиения диска на разделы.

Возможно, небольшие вопросы по структуре оставляют попытки использовать замысловатый триггер на сообщения об ошибках и размещение таблицы разделов непосредственно в MBR-секторе (устоявшаяся традиция), однако в остальном можно отдать должное лаконичности и логичности размещения кода в миниатюрном 512-байтовом пространстве, в таком пространстве особо не разбежишься, как говорится.
Не мешало бы тут же привести и общий алгоритм работы сектора:

  1. Код BIOS загружает 512 байт сектора MBR в память по адресу 0000:7C00.
  2. Код MBR копирует себя (собственный код) по адресу 0000:0600 и передает управление на этот адрес. Стек инициализируется в значение 0000:7C00.
  3. Парсим (разбираем) таблицу разделов. В таблице разделов ищется запись активного раздела. Если раздел найден, то запоминаем его. Если найдено несколько активных разделов, или активного раздела вовсе нет, то выводим ошибку.
  4. Проверяем наличие расширений прерывания int 13h.
  5. Грузим загрузочный сектор активного раздела (PBR) по адресу 0000:7C00.
  6. Включаем адресную линию A20.
  7. Проверяем наличие TPM версии 1.02.
  8. Уходим на дальнейшую загрузку ОС: передаем управление на уже загруженный к этому моменту код PBR по адресу 0000:7C00.

Теперь давайте взглянем на код внимательнее и попробуем углубиться в логику работы MBR Windows 7. В целях изучения с загрузочного диска нам необходимо этот самый MBR сектор каким-либо образом извлечь и записать в файл, а затем выполнить дизассемблирование кода MBR, то есть перевод его из шестнадцатеричного представления в понятный человеку язык Ассемблера. Для сохранения загрузочной записи MBR с диска я подумал использовать что-нибудь легковесное и, по возможности, не требующее инсталляции.. и инструмент был довольно быстро найден — им оказалась утилита DM Disk Editor and Data Recovery. Спасибо огромное автору за хороший и простой в освоении инструментарий.
У меня получилось выгрузить сектор MBR Windows 7 в виде .bin-файла, в итоге, после данной процедуры я получил 512 байт кода сектора. Теперь можно взглянуть на получившийся шестнадцатеричный дамп (блок кода/данных сектора, представленный в шестнадцатеричной системе счисления):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

0000000000: 33 C0 8E D0 BC 00 7C 8E  C0 8E D8 BE 00 7C BF 00  .Рј.|.А.Шѕ.|..

0000000010: 06 B9 00 02 FC F3 A4 50  68 1C 06 CB FB B9 04 00  ...ьу.Ph..Лы№..

0000000020: BD BE 07 80 7E 00 00 7C  0B 0F 85 0E 01 83 C5 10  Ѕѕ..~..|.....ѓЕ.

0000000030: E2 F1 CD 18 88 56 00 55  C6 46 11 05 C6 46 10 00  всН..V.UЖF..ЖF..

0000000040: B4 41 BB AA 55 CD 13 5D  72 0F 81 FB 55 AA 75 09  .A...]r..ыUЄu.

0000000050: F7 C1 01 00 74 03 FE 46  10 66 60 80 7E 10 00 74  чБ..t.юF.f`.~..t

0000000060: 26 66 68 00 00 00 00 66  FF 76 08 68 00 00 68 00  &fh….fяv.h..h.

0000000070: 7C 68 01 00 68 10 00 B4  42 8A 56 00 8B F4 CD 13  |h..h..ґB.V.‹фН.

0000000080: 9F 83 C4 10 9E EB 14 B8  01 02 BB 00 7C 8A 56 00  џ.Д..л.ё..».|.V.

0000000090: 8A 76 01 8A 4E 02 8A 6E  03 CD 13 66 61 73 1C FE  Љv.ЉN.Љn.Н.fas.ю

00000000a0: 4E 11 75 0C 80 7E 00 80  0F 84 8A 00 B2 80 EB 84  N.u..~…„..І.л„

00000000b0: 55 32 E4 8A 56 00 CD 13  5D EB 9E 81 3E FE 7D 55  U2д.V.Н.]л..>ю}U

00000000c0: AA 75 6E FF 76 00 E8 8D  00 75 17 FA B0 D1 E6 64  .unяv.и..u.ъ.Сжd

00000000d0: E8 83 00 B0 DF E6 60 E8  7C 00 B0 FF E6 64 E8 75  и…Яж`и|..яжdиu

00000000e0: 00 FB B8 00 BB CD 1A 66  23 C0 75 3B 66 81 FB 54  .ыё..Н.f.Аu;f.ыT

00000000f0: 43 50 41 75 32 81 F9 02  01 72 2C 66 68 07 BB 00  CPAu2.щ..r,fh.».

0000000100: 00 66 68 00 02 00 00 66  68 08 00 00 00 66 53 66  .fh....fh....fSf

0000000110: 53 66 55 66 68 00 00 00  00 66 68 00 7C 00 00 66  SfUfh....fh.|..f

0000000120: 61 68 00 00 07 CD 1A 5A  32 F6 EA 00 7C 00 00 CD  ah...Н.Z2цк.|..Н

0000000130: 18 A0 B7 07 EB 08 A0 B6  07 EB 03 A0 B5 07 32 E4  . ·.л. .л. µ.

0000000140: 05 00 07 8B F0 AC 3C 00  74 09 BB 07 00 B4 0E CD  ...‹р.<.t »..ґ.Н

0000000150: 10 EB F2 F4 EB FD 2B C9  E4 64 EB 00 24 02 E0 F8  .лтфлэ+Йдdл.$.аш

0000000160: 24 02 C3 49 6E 76 61 6C  69 64 20 70 61 72 74 69  $.ГInvalid parti

0000000170: 74 69 6F 6E 20 74 61 62  6C 65 00 45 72 72 6F 72  tion table.Error

0000000180: 20 6C 6F 61 64 69 6E 67  20 6F 70 65 72 61 74 69   loading operati

0000000190: 6E 67 20 73 79 73 74 65  6D 00 4D 69 73 73 69 6E  ng system.Missin

00000001a0: 67 20 6F 70 65 72 61 74  69 6E 67 20 73 79 73 74  g operating syst

00000001b0: 65 6D 00 00 00 63 7B 9A  DC 09 A9 7E 00 00 80 20  em...c{.Ь .~..Ђ

00000001c0: 21 00 07 DF 13 0C 00 08  00 00 00 20 03 00 00 DF  !..Я....... ...Я

00000001d0: 14 0C 07 FE FF FF 00 28  03 00 00 30 35 3A 00 00  ...юяя.(...05:..

00000001e0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ................

00000001f0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 AA  ..............

Собственно, как вы поняли, этот блок данных есть ни что иное, как шестнадцатеричное представление 512 байт сектора. Что же, дамп сектора у нас имеется, теперь самое время воспользоваться дизассемблером с целью трансляции кода сектора. На этом этапе мной был использован достаточно популярный и проверенный дизассемблер IDA, один из наиболее мощных в своем классе. С другой стороны, в коде MBR Windows 7 ничего сверхсложного нет, поэтому можно было бы использовать абсолютно любые доступные в сети дизассемблеры (в том числе онлайновые). После того, как исходный код MBR получен, мы попытаемся понять логику его работы.

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

Итак, BIOS, посредством прерывания 19h, производит загрузку первого сектора устройства в память, затем передает на только что загруженный код управление. Управление получено, и в этой точке мы имеем следующее состояние:

  • реальный режим (real mode) работы процессора;
  • значение регистра CS = 0;
  • значение регистра IP = 7C00;
  • значение регистра DL = номер «текущего» диска (с которого была выполнена загрузка сектора);
  • значение регистра DH = бит5 = 0: загрузочное устройство поддерживается INT 13h; иначе: (все 0) — не важно;
  • (для PnP BIOS): пара ES:DI = указатель на структуру PnP Installation check;
  • Прерывания запрещены.

Так уж сложилось, что любой код (функционирующий в реальном режиме) на старте производит подготовку собственного рабочего окружения: инициализацию сегментных регистров. Не далеко ушел от этого постулата и код сектора MBR Windows 7, тут мы видим инициализацию сегмента стека, данных, дополнительного сегмента. Затем производится копирование блока размером в 512 байт (самого себя) с адреса 0000:7C00 по адресу 0000:061C. Делается это по той причине, что впоследствии, на очередном этапе загрузки, код MBR по адресу 0000:7C00 будет перезаписан (затерт) кодом из PBR (загрузочного сектора раздела). После копирования кода управление передается по адресу 0000:061C.

0000:7C00    xor ax, ax

0000:7C02    mov ss, ax

0000:7C04    mov sp, 7C00h

0000:7C07    mov es, ax

0000:7C09    mov ds, ax

0000:7C0B    mov si, 7C00h

0000:7C0E    mov di, 600h

0000:7C11    mov cx, 200h

0000:7C14    cld

0000:7C15    rep movsb

0000:7C17    push ax

0000:7C18    push 61Ch

0000:7C1B    retf

  1. Обнуляем регистр AX. Этот регистр использоваться для дальнейшей инициализации сегментных регистров;
  2. Обнуляем сегмент стека SS;
  3. Устанавливаем указать стека SP в значение 7C00h. Не смотря на то, что по этому адресу у нас располагается первая инструкция, стек у нас не будет пересекаться с кодом, поскольку перед выполнением команда помещения в стек и SP уменьшается;
  4. Обнуляем сегментный регистр ES;
  5. Обнуляем сегментный регистр DS;
  6. Устанавливаем SI в значение 7C00h;
  7. Устанавливаем DI в значение 0600h. Значение 0600h будет использоваться как смещение адреса назначения для пересылки 512 байт далее по коду;
  8. Устанавливаем CX в значение 0200h. Это количество копируемых байт (512 в десятичной системе);
  9. Устанавливаем флаг направления cld. Направление «вперед» для инструкции movsb;
  10. Переносим 512 байт;
  11. Записываем в стек содержимое AX, который равен 0 (сегмент для перехода);
  12. Записываем в стек значение 061Ch (смещение для перехода);
  13. Командой retf делаем «дальний возврат» из процедуры. На самом деле, наш код никакой процедуры не вызывал, чтобы потом из нее «вернуться». Это просто распространенный прием, используемый для перехода по адресу, записанному в стеке (в нашем случае — 0000:061Ch), то есть ровно в то местоположение, в которое мы только что скопировали код.

Поскольку мы передали управление по адресу 0000:061C, с этого момента будет логичнее продолжить адресацию уже относительно нового адреса, куда мы, собственно и переместились после копирования участка кода.

Следующий блок кода MBR Windows 7 предназначен для организации поиска активного раздела на текущем (физическом) диске. Любой физический диск может быть разделен на блоки, называемые разделами (partitions). Разделы могут быть двух типов:

  • Основной (Primary) — (в первую очередь) используется для размещения файлов/каталогов ОС (тем не менее может размещать все что угодно) и может быть «активным», соответственно и «загрузочным»;
  • Расширенный (Extended) — используется для размещения любой информации (в том числе и файлов/каталогов ОС), однако не может маркироваться в качестве «активного», соответственно загрузочным быть не может. Может разбиваться на логические (Logical) подразделы;

Для организации разбиения диска на разделы используется структура под названием таблица разделов, располагающаяся внутри MBR по смещению 01B8h от начала сектора. Активный (загрузочный) раздел требуется найти для того, чтобы считать (и в дальнейшем запустить) с него код уже [другого] загрузочного сектора раздела, носящего несколько имен: VBR (Volume Boot Record), PBR (Partition Boot Record) и даже PBS (Partition Boot Sector). Поскольку максимальное количество основных разделов равно 4, то таблица разделов у нас имеет 4 записи (по 16 байт каждая), описывающих каждый раздел на диске. Признак загрузочного раздела — это наличие значения 80h в первом байте записи. Значение 00h указывает на незагрузочный раздел. Любое другое значение кроме 00h и 80h считается некорректным и игнорируется.
Давайте, сначала, рассмотрим структуру 16-байтовой записи таблицы разделов:

Смещение Длина Описание
00h 1 Признак активности раздела. 80h — активный (загрузочный) раздел. 00h — неактивный раздел.
01h 1 Начало раздела — головка. Для совместимости со старыми функциями int 13h, работающими в формате CHS.
02h 1 Начало раздела — сектор (биты 0—5), цилиндр (биты 6, 7). Для совместимости со старыми функциями int 13h, работающими в формате CHS.
03h 1 Начало раздела — цилиндр (старшие биты 8, 9 хранятся в байте номера сектора). Для совместимости со старыми функциями int 13h, работающими в формате CHS.
04h 1 Код типа раздела.
05h 1 Конец раздела — головка. Для совместимости со старыми функциями int 13h, работающими в формате CHS.
06h 1 Конец раздела — сектор (биты 0—5), цилиндр (биты 6, 7). Для совместимости со старыми функциями int 13h, работающими в формате CHS.
07h 1 Конец раздела — цилиндр (старшие биты 8, 9 хранятся в байте номера сектора). Для совместимости со старыми функциями int 13h, работающими в формате CHS.
08h 4 Номер первого сектора в формате LBA. С какого сектора раздел начинается.
0Ch 4 Количество секторов раздела (длина раздела).

Ну а теперь, собственно, сам код поиска активного раздела:

0000:061C    sti

0000:061D    mov cx, 4

0000:0620    mov bp, 7BEh

0000:0623  loc_623:

0000:0623    cmp byte ptr [bp+0], 0

0000:0627    jl short loc_634

0000:0629    jnz loc_73B

0000:062D    add bp, 10h

0000:0630    loop loc_623

0000:0632    int 18h

  1. Разрешить асинхронные прерывания (аппаратные, от «внешних» устройств).
  2. Задаем счетчик записей (4) в регистре CX.
  3. задаем в BP смещение таблицы разделов (07BEh = 0600h + 01BEh). помните, мы переместили код по адресу 0000:0600h? значит теперь любые смещения у нас скорректированы относительно адреса 0600h.
  4. сравниваем первый байт первого раздела со значением 0.
  5. (знаковое) если меньше (то есть значение попадает в диапазон 80h-0FFh), то мы, предположительно, нашли загрузочную запись, и переходим на 0000:0634 для дальнейшей проверки.
  6. если не равно (с учетом первого сравнения jl — или больше, то есть значение попало в диапазон 01h-79h), то переходим на процедуру выдачи ошибки Invalid partition table.
  7. добавляем к BP значение 10h (16) для того, чтобы сместить указатель на следующую запись в таблице разделов;
  8. цикл на 0623h. то есть проверяем все четыре раздела, пока cx не будет равен 0;
  9. если мы проверили все 4 записи и не нашли среди них ни одной активной — то вызываем прерывание 18h. На многих современных BIOS просто выдается текст PRESS ANY KEY TO REBOOT, на очень старых моделях IBM PC вызывался встроенный интерпретатор языка BASIC.

Активный раздел найден. Но перед тем как перейти непосредственно к чтению с найденного раздела загрузочного сектора раздела (PBR), обеспечивающего дальнейшее выполнение загрузки, необходимо выбрать метод чтения. Часть кода MBR Windows 7, описанная ниже, предназначена для проверки факта поддержки BIOS так называемых «расширений прерывания 13h». Почему именно «расширения» и зачем они потребовались разработчикам из Microsoft? От чего же, к примеру, не использовать старые-добрые стандартные функции чтения секторов? Я постараюсь, в меру собственного понимания вопроса дать исчерпывающее пояснение. История этого события, как я полагаю, уходит корнями в то время, когда для дисков в BIOS существовало ограничение на количество адресуемых секторов — 16515072, поскольку в интерфейсе int 13h для номера цилиндра отводилось 10 бит (1024), для номера головки — 8 бит (256), для номера сектора — 6 бит (63), то есть всего 24 бита, что позволяло адресовать не более 8455716864 байт (8064 Мб или 7,875 Гб). Но диски неуклонно росли в «объемах», очевидно что требовалось что-то в данной ситуации менять. Вот именно тогда и были добавлены дополнительные (расширенные) функции, которые предусматривали использование так называемого режима LBA (Logical Block Addressing), который обеспечивал автоматическое изменение геометрии жестких дисков и позволял адресовать сектор уже как 64-битное целое число. LBA адресовал любой сектор на носителе линейным адресом, в отличии от старого неудобного стандарта CHS, в котором сектор адресовался посредством трех параметров — цилиндра, головки и номера сектора как такового. Этот режим LBA, судя по всему, не поддерживался стандартными (устаревшими) функциями прерывания int 13h, для его то поддержки и требуются «расширения».

0000:0634    mov [bp+0], dl

0000:0637    push bp

0000:0638    mov byte ptr [bp+11h], 5

0000:063C    mov byte ptr [bp+10h], 0

0000:0640    mov ah, 41h

0000:0642    mov bx, 55AAh

0000:0645    int 13h

  1. Регистр DL содержит номер текущего диска (мы не «портили» регистр DX в коде выше), который он получает от кода BIOS. Записываем его значение в память по адресу ds:[bp+0]. Соответственно, локальная переменная, адресуемая как [bp+0] — номер текущего диска. Если в системе один диск и загрузка происходит с него, то значение равно 80h, если же дисков много и загрузка происходит не с первого диска, то, вероятно, значение может быть иным.
  2. Сохраняем значение регистра BP в стек.
  3. [bp+11h] — локальная переменная, содержащая счетчик попыток чтения диска. Задаем 5 попыток.
  4. [bp+10h] — локальная переменная, указывающая на наличие/отсутствие расширений прерывания 13h.
  5. Записываем в аккумулятор AX значение 41h. Эта функция проверяет наличие расширений прерывания int 13h в BIOS.
  6. В регистре BX должно быть значение 55AAh.
  7. Вызываем прерывание.

Далее в MBR Windows 7 следует блок кода, который предназначается для обработки возвращенных функцией 41h прерывания 13h значений. На этом этапе мы и понимаем, если ли в BIOS расширения, или их нет. Не все BIOS (особенно старые реализации) поддерживают расширения, поэтому нам надо подобный вариант предусмотреть. Если возвращается сброшенный carry flag (CF=0) и значение регистра BX меняется на AA55h, то это означает наличие расширений. Версия возвращается в регистре AH. В регистре CX возвращается битовая карта поддерживаемого функционала.

0000:0647    pop bp

0000:0648    jb short loc_659

0000:064A    cmp bx, 0AA55h

0000:064E    jnz short loc_659

0000:0650    test cx, 1

0000:0654    jz short loc_659

0000:0656    inc byte ptr [bp+10h]

0000:0659  loc_659:

0000:0659    pushad

0000:065B    cmp byte ptr [bp+10h], 0

0000:065F    jz short loc_687

  1. Восстанавливаем из стека регистр BP.
  2. Условие (беззнаковое) «если меньше», то есть если флаг CF=1 (установлен), то расширений нет и мы передаем управление по адресу 0000:0659.
  3. Еще одна проверка на отсутствие ошибки выполнения функции: проверяем BX на значение 0AA55h;
  4. Если нет — то передаем управление на 0000:0659.
  5. Заключительная проверка — тест значения в регистре CX на установленный нулевой бит;
  6. Если бит не взведен (0), то расширения не обнаружены и код прыгает на метку 0000:0659;
  7. Иначе, проверка прошла успешно, расширения есть. Увеличим на единицу содержимое ячейки [bp+10]. Вспомним, что она используется как внутренняя переменная, описывающая наличие или отсутствие расширений int 13h.
  8. Сохраняем все 32-битные регистры общего назначения в стек.
  9. Сравниваем локальную переменную [bp+10h] (которая определяет наличие расширений), с нулем;
  10. если 0 — то мы не можем использовать расширения и переходим под адресу 0000:0687. Иначе идем далее по коду.

Описанный далее код выполняет в случае присутствия расширений и использует функцию 42h прерывания int 13h под названием “Extended Read” (расширенное чтение), которая предназначается для считывания секторов с диска в режиме LBA. А считываем мы первый сектор активного раздела (PBR). Тут используется один не совсем стандартный прием: весь пакет DAP записывается в стек (то есть для задания параметров функции используется стек) и функции перед вызовом дается на этот блок данных указатель. Стоит помнить, что информация в стеке формируется в обратном порядке.

0000:0661    push 00000000

0000:0667    push dword ptr [bp+8]

0000:066B    push 0

0000:066E    push 7C00h

0000:0671    push 1

0000:0674    push 10h

0000:0677    mov ah, 42h

0000:0679    mov dl, [bp+0]

0000:067C    mov si, sp

0000:067E    int 13h

данные, формирующие блок DAP (Disk Address Packet, Адресный пакет диска) следующие:

смещение размер описание
00h 1 байт длина DAP. 10h или 18h (16 или 24 байта).
01h 1 байт зарезервировано, не используется. должно быть 0.
02h..03h 2 байта количество секторов для чтения (некоторые BIOS имеют ограничение).
04h..07h 4 байта сегмент:смещение буфера памяти для чтения секторов (в x86 сначала задается смещение, потом сегмент)
08h..0Fh 8 байт абсолютный номер стартового сектора для чтения (1 сектор диска имеет номер 0)
10h 8 байт Опционально. 64-битный адрес буфера трансфера. используется только тогда, когда двойное слово по смещению 04h DAP имеет значение FFFF:FFFF

* Поскольку у нас используется стандартный, 16-байтный пакет DAP, то последнее поле расширенного пакета DAP в нашем случае не задействовано.

  1. Поместим в стек старшие 4 байта номера стартового сектора для чтения (00000000);
  2. Поместим в стек младшие 4 байта номера стартового сектора для чтения сразу из переменной [bp+8]. Это у нас смещение в записи таблицы разделов?
  3. Поместим в стек сегмент буфера для чтения;
  4. Поместим в стек смещение буфера для чтения;
  5. Поместим в стек количество секторов для чтения (в нашем случае 1);
  6. Поместим в стек длину блока DAP (в нашем случае 10h = 16 байт);
  7. Инициализируем AH = 42h. (номер функции расширенного чтения);
  8. В DL поместим индекс (номер) диска. он у нас лежим в [bp+0];
  9. А теперь DS:SI приравняем к SS:SP, чтобы они указывали на блок DAP;
  10. Вызываем функцию прерывания;

Блок кода, описанный ниже предназначен для корректировки указателя стека, иными словами для «освобождения» стека от занесенных туда 20 байт параметров при вызове функции, но только так, чтобы не затронуть флаги. Если carry flag (CF) сброшен и AH=0, то функция завершилась удачно. В случае возникновения ошибки CF=1, а AH содержит код ошибки. В обеих случаях, поле счетчика блоков DAP содержит количество фактически считанных блоков.

0000:0680    lahf

0000:0681    add sp, 10h

0000:0684    sahf

0000:0685    jmp short loc_69B

  1. Сохраняем флаги в регистр AH.
  2. Оригинальным образом исключаем все данные блока DAP из стека просто «сдвигом» указателя стека на 10h (десятичное 20).
  3. Восстановим флаги из регистра AH. Таким образом, операция сложения не тронула флаги.
  4. Переход на метку по адресу 0000:069B. Там у нас в коде сектора MBR Windows 7 располагает код проверки успешности чтения.

Что мы видим далее? Приведенный ниже блок кода выполняется в том случае, если расширения int 13h не были найдены. В современных машинах трудно представить подобную ситуацию, однако разработчики, видимо, решили обеспечить совместимость со старым оборудованием, либо просто передрали код из старых версий :) Код считывает загрузочный сектор активного раздела (PBR) при помощи стандартной функции 02h прерывания int 13h. В регистре AL указывается количество секторов для чтения. DL = диск, DH = головка, CL = сектор, CH = цилиндр.

0000:0687    mov ax, 0201h

0000:068A    mov bx, 7C00h

0000:068D    mov dl, [bp+0]

0000:0690    mov dh, [bp+1]

0000:0693    mov cl, [bp+2]

0000:0696    mov ch, [bp+3]

0000:0699    int 13h

  1. Инициализируем AX. AL=1, значит читаем одни сектор;
  2. В BX = смещение буфера для чтения 7C00h;
  3. Инициализируем DL = [bp+0] — номер (индекс) диска;
  4. Инициализируем DH = [bp+1] — номер головки;
  5. Инициализируем CL = [bp+2] — номер сектора;
  6. Инициализируем CH = [bp+3] — номер цилиндра;
  7. Вызываем функцию прерывания.

Ну а далее, судя по всему, в секторе MBR у нас присутствует блок проверки на успешность считывания стандартной функцией чтения. Это часть большого цикла.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

0000:069B    popad

0000:069D    jnb short loc_6BB

0000:069F    dec byte ptr [bp+11h]

0000:06A2    jnz short loc_6B0

0000:06A4    cmp byte ptr [bp+0], 80h

0000:06A8    jz loc_736

0000:06AC    mov dl, 80h

0000:06AE    jmp short loc_634

0000:06B0  loc_6B0:

0000:06B0    push bp

0000:06B1    xor ah, ah

0000:06B3    mov dl, [bp+0]

0000:06B6    int 13h

0000:06B8    pop bp

0000:06B9    jmp short loc_659

0000:06BB  loc_6BB:

0000:06BB    cmp word ptr ds:7DFEh, 0AA55h

0000:06C1    jnz short loc_731

0000:06C3    push word ptr [bp+0]

  1. Восстанавливаем все 32-битные регистры общего назначения из стека. Напомню, что незадолго до этого мы их сохраняли.
  2. Проверяем успешность выполнения функции 02h прерывания 13h. (беззнаковое) «если не меньше», то уходим на проверку считывания именно загрузочного сектора (0000:06BB).
  3. Уменьшаем счетчик попыток чтения сектора (байт по адресу [bp+11]).
  4. Если счетчик попыток не исчерпан еще (не 0), то передаем управление по адресу 0000:06B0 (сброс диска);
  5. Иначе сравниваем индекс текущего диска ([bp+0]) с 80h. первый диск?
  6. Если диск первый (+ с учетом всех вышеописанных условий) — то уходим на ошибку Error loading operating system;
  7. Загрузим в DL значение 80h (первый жесткий диск в системе);
  8. Возвращаемся на проверку расширений int 13h (0000:0634);
  9. Сохраняем BP. он у нас используется как база адресации внутренних переменных;
  10. Функция AH=0 — инициализация (сброс) диска;
  11. В DL поместим значение байта по адресу [bp+0], это у нас индекс (номер) диска;
  12. Вызываем функцию 0 прерывания 13h;
  13. Восстанавливаем значение регистра BP.
  14. Передаем управление код по адресу 0000:0659 (считывание сектора);
  15. Сюда мы перешли после считывания сектора стандартной функцией. Проверим на наличие в последних двух байтах считанного сектора (ds:7DFEh) значения AA55h (сигнатура MBR). А действительно ли мы считали PBR (VBR)?
  16. Если нет сигнатуры MBR, то вероятно, что по какой-то причине сектор не был считан, либо считан не тот сектор — уходим на ошибку Missing operating system;
  17. Сохраним индекс (номер) диска в стеке;

Следующий блок кода сектора Windows 7 MBR является подготовительным перед проверкой наличия TPM (подробнее о TPM ниже). Для проверки наличия TPM, сперва требуется включить адресную линию A20 (которая обеспечивает, помимо прочего, возможность передачи 21-го бита на адресной шине, соответственно открывая доступ к расширенной памяти). Управлением этой линией в IBM-PC-совместимых системах занимается контроллер клавиатуры (исторически?), поэтому с ним мы и будем работать напрямую через порты.

0000:06C6    call sub_756

0000:06C9    jnz short loc_6E2

0000:06CB    cli

0000:06CC    mov al, 0D1h

0000:06CE    out 64h, al

0000:06D0    call sub_756

0000:06D3    mov al, 0DFh

0000:06D5    out 60h, al

0000:06D7    call sub_756

0000:06DA    mov al, 0FFh

0000:06DC    out 64h, al

0000:06DE    call sub_756

0000:06E1    sti

  1. Вызываем процедуру по адресу 0000:0756. Она является частью кода по включению линии A20 и ожидает готовности контроллера клавиатуры к приему очередного байта;
  2. Если функция вернула не 0 (то есть линия уже включена), то сразу уходим по адресу 0000:06E2;
  3. Маскируем прерывания;
  4. Инициализируем AL значением 0D1h. Это команда управления линией A20. выдачи данных в порт 2 контроллера, то есть мы говорим, что хотим записать байт статуса;
  5. Запишем в порт 64h это значение;
  6. Вызовем подпрограмму по адресу 0000:0756. Она предназначена для ожидания готовности;
  7. Инициализируем AL значением 0DFh. это данные для порта 2. мы хотим открыть линию A20;
  8. Запишем в порт 60h это значение;
  9. Вызовем подпрограмму по адресу 0000:0756. Ожидание готовности;
  10. Инициализируем AL значение 0FFh: сброс клавиатуры и запуск диагностики;
  11. Запишем в порт 64h это значение;
  12. Вызовем подпрограмму по адресу 0000:0756. Ожидание готовности;
  13. Разрешим прерывания.

Затем у нас следует блок определения наличия интерфейса TPM (Trusted Platform Module) версии 1.2. Что это за интерфейс и почему разработчики вынуждены были включить его поддержку в и без того переполненные 512 байт сектора MBR Windows 7?

TPM (Доверяемый Платформенный Модуль, Trusted Platdorm Module) — криптографический процессор, предоставляющий инструментарий: генератор случайных чисел, генератор ключей RSA, генератор хешей SHA-1, подсистема шифрования, цифровой подписи. Физически это чип на материнской плате, в энергонезависимой/оперативной памяти которого хранятся корневые/производные ключи. Используется для организации «корня доверия» для технологии шифрования разделов Microsoft BitLocker Drive Encryption.

Именно по этой причине TPM нам требуется на столь раннем этапе загрузки, иначе мы не сможем в нужный момент расшифровать раздел, а соответственно и продолжить с него загрузку операционной системы. Функция BB00h прерывания int 1Ah (TCG_StatusCheck) возвращает в EAX=0, если TPM поддерживается, при этом регистр EBX должен содержать строку ‘TCPA’ (шестнадцатеричное: 54 43 50 41). Если значение не совпадает, то выходим из TCG-кода. Делаем проверку версии в регистре CX, если версия не 1.02, то так же выходим из TCG-кода. Если нужная версия найдена, то вызываем функцию TCG_CompactHashLogExtendEvent. При возврате из функции мы получаем имеем выходные данные в регистрах EAX и EDX.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

0000:06E2  loc_6E2:

0000:06E2    mov ax, 0BB00h

0000:06E5    int 1Ah

0000:06E7    and eax, eax

0000:06EA    jnz short loc_727

0000:06EC    cmp ebx, 41504354h

0000:06F3    jnz short loc_727

0000:06F5    cmp cx, 102h

0000:06F9    jb short loc_727

0000:06FB    push 0000BB07h

0000:0701    push 00000200h

0000:0707    push 00000008

0000:070D    push ebx

0000:070F    push ebx

0000:0711    push ebp

0000:0713    push 00000000

0000:0719    push 00007C00h

0000:071F    popad

0000:0721    push 0000

0000:0724    pop es

0000:0725    int 1Ah

  1. Теперь начинаем проверку. AX=BB00h. Функция TCG_StatusCheck;
  2. Вызываем функцию прерывания;
  3. Логическое «И» над EAX. Для проверки, вернула ли функция 0 в регистре EAX. Поддерживается ли TPM?
  4. Если не поддерживается, то уходим на 0000:0727;
  5. Продолжаем проверку. Сравниваем EBX со значением 41504354h (TCPA);
  6. Если не равно, то уходим на код по адресу 0000:0727;
  7. Продолжаем проверку. сравниваем CX со значением 102h. Версия 1.02 TPM?
  8. (беззнаковое) «если меньше», то уходим на код по адресу 0000:0727;
  9. TPM найдена нужной версии. готовим вызов функции TCG_CompactHashLogExtendEvent. Заносим параметры через стек. AH=0bbh, AL=07h.
  10. Занесем в стек значение 00000200h. 0200h — 512 в десятичном.
  11. Занесем в стек значение 00000008. старшее слово 0000, младшее слово 0008;
  12. Занесем в стек содержимое регистра EBX.
  13. Занесем в стек содержимое регистра EBX.
  14. Занесем в стек содержимое регистра EBP.
  15. Занесем в стек значение 00000000;
  16. Занесем в стек значение 00007C00;
  17. Восстановим из стека основные 32-разрядные регистры. Вот для чего мы заносили все эти значения в стек, чтобы потом одной командой popad инициализировать сразу все регистры, необходимые для вызова функции BB07h прерывания int 1Ah. получается AX = BB07h, DI = смещение буфера для хеширования (7C00h), ECX = длина буфера (0200h=512), EDX = номер PCR (Platform Configuration Registry) = 8, SI = значение для лога событий = 0, EBX = 41504354h;
  18. Занесем в стек значение 0000;
  19. Восстановим значение из стека в регистр ES, тем самым инициализировав его в значение 0000 (es=0000);
  20. Вызовем функцию BB07h прерывания 1Ah.

Нижеприведенная часть кода сектора является подготовительной. Она подготавливает регистр DL для последующего применения его уже кодом PBR (VBR) и выполняет переход на код PBR, который был загружен в коде MBR Windows 7 ранее. Помните?

0000:0727  loc_727:

0000:0727    pop dx

0000:0728    xor dh, dh

0000:072A    jmp far ptr 0:7C00h

0000:072F    int 18h

  1. Восстанавливаем из стека слово в регистр DX. там у нас слово [bp+0], а это текущий диск. Обычно значение 80h;
  2. Обнуляем DH, ведь для нас важен только DL;
  3. Выполняем «длинный прыжок» по адресу 0000:7C00, куда мы считали загрузочный сектор активной партиции (Partition Boot Record);
  4. Вызов прерывания 18h. Похоже, что сюда никогда не передается управление и эта часть кода написана «на всякий случай»?

Теперь в секторе следует блок кода, который отвечает у нас за вывод сообщений об ошибках. Ошибки критические, то есть после их вывода возвращаться в основную программу уже нет никакого смысла. Поэтому стоит отметить, что инструкции под адресам 0748, 0753, 0754 вводят машину в бесконечный цикл. Соответственно, потребуется ручная перезагрузка. Для вывода символов на экран используется функция 0Eh (телетайп) прерывания int 10h.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

0000:0731  loc_731:

0000:0731    mov al, ds:byte_7B7

0000:0734    jmp short loc_73E

0000:0736  loc_736:

0000:0736    mov al, ds:byte_7B6

0000:0739    jmp short loc_73E

0000:073B  loc_73B:

0000:073B    mov al, ds:byte_7B5

0000:073E  loc_73E:

0000:073E    xor ah, ah

0000:0740    add ax, 700h

0000:0743    mov si, ax

0000:0745  loc_745:

0000:0745    lodsb

0000:0746    cmp al, 0

0000:0748    jz short loc_753

0000:074A    mov bx, 7

0000:074D    mov ah, 0Eh

0000:074F    int 10h

0000:0751    jmp short loc_745

0000:0753  loc_753:

0000:0753    hlt

0000:0754    jmp short loc_753

  1. Занесем в регистр AL смещение первого сообщения, которое размещается по адресу ds:07B7. Сообщение: Invalid partition table;
  2. Перейдем на процедуру подготовки вывода по адресу 0000:073E;
  3. Занесем в AL смещение второго сообщения, которое размещается по адресу ds:07B6. Сообщение: Error loading operating system;
  4. Перейдем на процедуру подготовки вывода по адресу 0000:073E;
  5. Занесем в AL смещение третьего сообщения, которое размещается по адресу ds:07B5. Сообщение: Missing operating system;
  6. Обнулим AH.
  7. Прибавим к ax значение 0700h, чтобы скорректировать смещение сообщений;
  8. SI = смещение сообщения;
  9. Загрузим в AL байт из ячейки по адресу DS:SI;
  10. AL=0? это конец строки?
  11. Если да, то переходим на метку 0000:0753;
  12. BX=7 — BH-страница, BL-цвет символа;
  13. AH=0Eh — функция 0Eh прерывания 10h. Вывод на экран в режиме телетайпа;
  14. Вызываем функцию прерывания;
  15. Тут организуется цикл с адресом 0000:0745, выход из цикла по условию достижения конца строки, чтобы допечатать строку по одному символу;
  16. Команда hlt — приостановка процессора;
  17. Короткий переход на 0753. Зацикливаем hlt. Требуется аппаратная перезагрузка.

Оставшаяся часть кода MBR Windows 7 — это дополнение для включения линии A20: процедура, ожидающая готовность контроллера клавиатуры к приему очередного байта. Выше, в коде открытия линии A20 мы постоянно вызывали её для ожидания готовности.

0000:0756  sub_756 proc near

0000:0756    sub cx, cx

0000:0758  loc_758:

0000:0758    in al, 64h

0000:075A    jmp short $+2

0000:075C    and al, 2

0000:075E    loopne loc_758

0000:0760    and al, 2

0000:0762    retn

  1. Обнулим регистр CX;
  2. Считываем байт из порта 64h в регистр AL;
  3. Делаем небольшую паузу;
  4. Логическое И: проверка флага готовности;
  5. Если он не активен (бит выставлен) и счетчик в CX не равен 0, то выполняем очередную итерацию цикла ожидания;
  6. Иначе опять логическое И;
  7. Возврат из процедуры.

На этом код MBR заканчивается и далее в секторе располагаются разнообразные данные, как я уже и говорил ранее. Их можно увидеть на общем дампе MBR Windows 7, приведенном в начале статьи. Эти данные представляют из себя сообщения об ошибках, различные внутренние переменные и таблица партиций, а так же — завершающий сектор байт со значением AA55h — сигнатура MBR, записанная в обратном порядке (в силу особенностей архитектуры процессоров Intel x86).

Ошибка «No bootable device insert boot disk and press any key» или как создать универсальную загрузочную флешку, совместимую как с Legacy, так и с UEFI, с помощью программы Bootice

Письмо от читателя:

Здравствуйте, админ. Прочитал вашу статью о создании загрузочной флешки с Windows 10, буквально на следующий день купил новую флешку, форматировал её в FAT32 и точно так, как показано в вашей статье скопировал на неё все файлы Windows 10, затем перезагрузился, и вошёл в загрузочное меню своего компьютера, выбрал для загрузки флешку, но загрузки с флешки не произошло, на экране монитора вышла ошибка «No bootable device insert boot disk and press any key» другими словами «Отсутствует загрузочное устройство». Что интересно, попытался с этой же флешки загрузить ноутбук с БИОСом UEFI и попал в программу установки Windows 10, то есть флешка всё-таки загрузочная! Ещё раз проверил флешку на другом обычном компьютере и с флешки не удалось загрузиться. Не могу понять, в чём же дело? Где-то на вашем сайте Владимир объяснял причину, но не найду такой статьи.

Ошибка «No bootable device insert boot disk and press any key» или как создать универсальную загрузочную флешку, совместимую как с Legacy, так и с UEFI, с помощью программы Bootice

Привет всем! Меня зовут Владимир и я отвечу на этот вопрос. В статье «Как создать загрузочную флешку с Windows 10» админ написал, что для создания флешки достаточно скопировать файлы образа Windows 10 на накопитель и флешка автоматически станет загрузочной. Для компьютеров с включенным UEFI это так. Для компьютеров с обычным BIOS или выключенным интерфейсом UEFI это не так. Коротко объясняю почему, уверен, вы всё поймёте. Установку операционных систем Windows (от Vista до 10) запускает загрузчик BOOTMGR, который находится в, скопированном на флешку, дистрибутиве. Но флешку BIOS видит как HDD. И чтобы BIOS передал управление загрузкой нашему BOOTMGR, на флешке должна быть создана MBR c кодом загрузчика BOOTMGR (Windows NT 6.x) и активный раздел с PBR (загрузочной записью раздела) BOOTMGR.

При обычном форматировании флешки средствами Windows (в файловую систему NTFS или FAT32) PBR станет BOOTMGR, а MBR какой была до форматирования такой и останется (то есть новая флешка не будет загрузочной после простого копирования на неё файлов Windows 10). У админа получилось потому, что он всё проделал на старой флешке, когда-то уже бывшей загрузочной и на ней были ранее установлен нужный код и раздел был активный. Обновить коды и сделать раздел на флешке активным можно и после копирования файлов Windows на флешку. Сделать это можно двумя способами: с помощью утилиты Bootice, а также командной строки. Показываю оба способа.

Обновляем коды и делаем раздел на флешке активным с помощью утилиты BOOTICE

Итак, поставим себя на место нашего читателя. Подсоединяем новую флешку к компьютеру и форматируем её в файловую систему FAT32,

затем копируем на неё содержимое ISO-образа Windows 10.

Файлы Windows скопированы на флешку.

Если у вас новый ноутбук с включенным интерфейсом UEFI, то ноутбук прекрасно загрузится с этой флешки, но если UEFI отключен или вы пытаетесь загрузить обычный компьютер с простым BIOS, то появится ошибка при загрузке «No bootable device insert boot disk and press any key». Открываем утилиту WinSetupFromUSB

выбираем в списке накопителей нашу флешку и жмём на кнопку Bootice.

Выбираем в списке нашу флешку. Жмём Parts Manage.

 

Как видим, на флешке нет активного раздела (в пункте Act. отсутствует буква A).

Создаём активный раздел на флешке. Выделяем флешку левой мышью и жмём кнопку Activate. 

 

В пункте Act. появляется буква A).

Close

Жмём Process PBR.

На флешке должен быть активный раздел с PBR (загрузочной записью раздела) BOOTMGR. Отмечаем пункт BOOTMGR boot record, нажимаем Install /Config Close.

 

Жмём Process MBR

На флешке должен быть активный раздел с MBR c кодом загрузчика BOOTMGR (Windows NT 6.x). Отмечаем пункт Windows NT 5.x/6.x MBR, нажимаем Install /Config Close.

Exit

Всё! Теперь с этой универсальной флешки можно загрузить любой компьютер или ноутбук с включенным интерфейсом UEFI или простым BIOS. 

Альтернативный способ с использованием вместо Bootice командной строки 

Обновляем коды и делаем раздел на флешке активным с помощью командной строки. Активным раздел делается с помощью diskpart:

diskpart

lis vol

sel vol 6 (6 номер тома флешки, в вашем случае может быть другим).

active

Ещё загрузочные коды можно обновить с помощью консольной bootsect:

bootsect /nt60 x: /mbr

x буква флешки

В Windows 7 запустить утилиту можно из дистрибутива смонтированного в виртуальный привод, команда:

y:bootbootsect /nt60 x: /mbr

y буква привода.

Можно использовать и команду:

x:bootbootsect /nt60 x: /mbr

Коды будут обновлены, но будет сообщение что код обновлён ненадёжно, так как при обновлении кода не был отключён диск.

Вот и всё.

Содержание

  1. ПК-Дайджест
  2. MBR горит красным или желтым
  3. BOOTMRG PBR горит красным или желтым
  4. WinNTSetup горит красным или желтым
  5. MBR горит красным или желтым
  6. bootice скачать с нашего сайта или с сайта разработчика
  7. BOOTMRG PBR горит красным или желтым
  8. BOOT PART горит красным или желтым
  9. Статьи Как установить Windows XP, 7, 8, 10 на флешку
  10. Dragokas
  11. Статьи Как установить Windows XP, 7, 8, 10 на флешку
  12. Dragokas
  13. Не удалось найти среду восстановления

ПК-Дайджест

WinNTSetap

Для установки операционной системы на различные накопители существует очень известная утилита WinNTSetup. По использованию данной программы написано огромное множество статей, но в них не описаны ошибки при работе с этой программой, из-за этого в комментариях пользователи задают одни и те же вопросы.

В этой статье мы разберем самые частые вопросы пользователей, которые возникают при работе с программой. Основные проблемы возникают при выборе загрузочного диска. В правой части данного пункта находятся 3 зеленых огонька. Чтобы программа правильно установила ОС, а она затем запустилась они должны быть зелеными. Но у некоторых пользователей они имеют желтый или красный цвет, именно эти проблемы мы и будем решать.

Sn 25

MBR горит красным или желтым

BOOTMRG PBR горит красным или желтым

WinNTSetup горит красным или желтым

Данные индикаторы меняют свой цвет при указании диска, на который будет установлен загрузчик. каждый пункт означает определенную настройку носителя.

Когда горят 3 зеленых огонька, то такой загрузочный сектор создан правильно, и система успешно загрузиться с такой флешки. А вот если они горят другими цветами, то нужно настраивать загрузочный диск. И так

MBR горит красным или желтым

В этом случае диск был отформатирован правильно, но на нем не установлена загрузочная запись. Чтобы это исправить, понадобиться программа bootice. Скачать ее можно по ссылке ниже или с официального сайта разработчика.

bootice скачать с нашего сайта или с сайта разработчика

После того как вы скачали программу, распаковываем архив в любое удобное место, и в зависимости от разрядности системы запускаем BOOTICEx64_2016.06.17_v1.3.4.0.exe для 64 разрядных систем и BOOTICEx86_2016.06.17_v1.3.4.0.exe для 32 разрядных.

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Sn 1

Затем нажимаем кнопку «Process MBR», откроется окно с выбором типа загрузочной записи, выбираем последний вариант, как на картинке ниже, и нажимаем кнопку «Instal/Config»

Sn 2

Затем в открывшемся окошке нажимаем на кнопку «Windows NT 6.x MBR».

Sn 3

После завершения процесса записи загрузочной части утилита уведомит вас об этом уведомлением. Нажимаем ОК.

Sn 4

После этого закрываем программу и заново выбираем диск в WinNTSetup. Теперь огонек около MBR, должен гореть зеленым.

BOOTMRG PBR горит красным или желтым

Данная ошибка достаточно редкая, и исправляется переформатированием раздела разгрузчика, для этого нужно нажать кнопку «F» рядом с кнопкой выбрать, и выставить правильные настройки, затем нажать форматирование.

Для флешек распространенной ошибкой является форматирование в FAT16 FAT32, а для Windows оба раздела должны быть отформатированы в NTFS.

Sn 5

Ниже представлен один из примеров:

Sn 6

BOOT PART горит красным или желтым

Данная ошибка тоже достаточно часто возникает у пользователей. Она возникает из-за того, что выбран «Активным» не тот диск. Чтобы система успешно установилась «Активным» должен быть выбран загрузочный диск. Решается она также как и первая, с помощью программы bootice.

Запускаем программу bootice

После запуска в разделе «Destination disk» нужно выбрать свой накопитель, на который вы будете или уже установили Windows. В нашем случае это флешка.

Sn 1

Затем нажимаем кнопку «Part Manage», откроется окно с редактором дисков для выбранного накопителя. Часто проблема заключается в том, что активням является не загрузочный раздел. Тоесть как можно увидеть на картинке ниже буковка A в графе Act. стоит напротив диска D объемом 29.7 ГБ куда будет устанавливаться система. А должна стоять напротив диска J, размером 100 мб.

Sn 7

Имена с дисков могут меняться быть другими, не как в нашем примере.

Чтобы исправить эту проблему, выделяем диск J и нажимаем внизу кнопку «Activate». После завершения операции программа покажет уведомление.

Sn 8

Все, теперь закрываем bootice, и заново в программе WinNTSetup выбираем наш загрузочный диск. Проблема должна решиться.

Источник

Статьи Как установить Windows XP, 7, 8, 10 на флешку

6966

Dragokas

Very kind Developer

Очень часто владельцы персональных компьютеров задаются вопросом об установке Windows на флешку. Операционная система Windows не предназначена для установки на USB накопитель, поэтому установить ее на флешку как на обычный HDD или SDD диск просто так не выйдет.

Чтобы помочь пользователям ПК справиться с задачей установки Windows на флешку, мы подготовили материал с подробными примерами. Рассмотренные примеры будут описывать процесс установки на флешку для всех актуальных ОС Windows, начиная с ХР и заканчивая десяткой. Ознакомившись с материалом, вы без труда сможете создавать загрузочные флешки с различными ОС Windows.

Установка на USB накопитель операционных систем Windows 7, 8, 10
Установочные диски операционных систем Windows 7, 8, 10 не позволяют производить установку на флешку. Чтобы произвести установку на флешку, необходимо воспользоваться сторонним программным обеспечением. Наиболее подходящей программой для нашей задачи является WinNTSetup. Утилита распространяется и поддерживается на форуме интернет портала www.msfn.org. Скачать ее можно со страницы форума www.msfn.org/board/topic/149612-winntsetup-v386.

Самой актуальной версией на момент написания статьи является WinNTSetup v3.8.6. Утилита распространяется в RAR архиве «WinNTSetup3.rar». После распаковки архива можно увидеть два исполняемых файла «WinNTSetup_x64.exe» и «WinNTSetup_x86.exe». Из названия файлов понятно, что каждый из них предназначен для запуска на системе с соответствующей разрядностью. В нашем случае мы запустим файл для 64 разрядной операционной системы. При запуске утилита выдаст сообщение, в котором попросит вас скачать ADK файлы для правильной работы программы.

1 jpg

Скачаем ADK файлы, нажав кнопку OK, после чего утилита запустится.

Теперь подготовим папку с установочными файлами Windows и USB накопитель. Для примера мы возьмем установочный диск с Windows 7 и поставим его в DVD привод.

После этого вернемся к утилите WinNTSetup на вкладку «Windows Vista/7/8/10/2008/2012». Теперь укажем путь к установочному файлу «install.wim».

2 jpg

На втором этапе нам нужно выбрать флешку, на которую будем устанавливать Windows 7. Перед тем как ее выбрать, форматируем флешку в файловой системе NTFS.

3 jpg

Теперь выберем в WinNTSetup место, куда будет установлен загрузчик и сама Windows, а именно — нашу флешку.

После этих действий можно приступать к установке Windows 7 на USB накопитель. Для этого кликнем по кнопке Установка в нижней области окна утилиты, после чего появится сообщение, с дополнительными параметрами установки.

4 jpg

Не меняя параметров, подтвердим это сообщение, запустив при этом установку на флешку.

Перед запуском установки на флешку вы можете оптимизировать ОС, отключив или включив ее функции. Это можно сделать, кликнув по кнопке Оптимизация ОС >>>.

5 jpg

Закончив установку, дальнейшим нашим шагом будет перезагрузка компьютера. До старта операционной системы загрузимся с нашего USB накопителя. На разных компьютерах это делается с помощью клавиш F11 и F12 или с помощью настроек в BIOS в разделе BOOT. Система должна загрузиться до этапа выбора имени пользователя и компьютера.

6 jpg

Таким же образом можно поставить на портативный жесткий USB диск или флешку операционные системы Windows 8 и 10.

В рассмотренном примере мы использовали тот же диск, как для загрузчика, так и для операционной системы.

Установка на USB накопитель операционной системы Windows XP

Установка Windows XP в программе WinNTSetup очень похожа на установку семерки в предыдущем примере. Поэтому отформатируем флешку в файловой системе NTFS и вставим установочный диск с Windows XP в DVD привод. Запустим программу WinNTSetup на вкладке «Windows 2000/XP/2003».

Теперь выберем в качестве папки с нашими установочными файлами наш диск, а также выберем флешку для записи загрузчика и установки XP.

7 jpg

Как и в примере с семеркой нажимаем кнопку Установка и подтверждаем сообщение, после чего начнется установка XP на USB накопитель. Также, как и для семерки, в XP можно произвести оптимизацию ОС.

После завершения работы WinNTSetup перезагрузим компьютер и загрузимся с нашего USB накопителя. Дальнейший этап установки Windows XP будет продолжаться с того места, когда установщик копирует файлы на диск. Весь дальнейший процесс установки такой же, как и при обычной установке XP, поэтому описывать дальнейший процесс не имеет смысла.

8 jpg

Windows To Go и Rufus
Начиная с восьмерки, разработчики из Microsoft внедрили новую технологию под названием Windows To Go. Эта технология разработана для того, чтобы пользователь, использующий компьютер с операционной системой Windows 10 или 8 смог создать USB накопитель с установленной ОС.

ОС, созданная при помощи Windows To Go, представляет собой зеркало системы, на которой производилось создание флешки. Из этого следует, что на такой системе будут сохранены все настройки и установленные программы. Особенно удобно использовать такую технологию в организациях, где нужно быстро подготовить и настроить ОС для сотрудника.

Рассмотрим пример создания флешки в Windows 8.

Для этого запустим поиск и наберем в нем «To Go». Запустим найденный мастер. Сразу после запуска мастер будет искать совместимые USB накопители с технологией Windows To Go.

9 jpg

На следующем этапе нам нужно вставить установочный диск в DVD привод и указать в мастере путь к файлу «install.wim». Если в вашем дистрибутиве такого файла нет, то воспользоваться данным методом не получится.

10 jpg

Далее мастер предложит зашифровать систему с помощью BitLocker, если вам это нужно.

11 jpg

В последнем окне необходимо нажать кнопку Создать, после чего начнется создание флешки с Windows 8. Процесс создания зависит от скорости записи USB накопителя.

12 jpg

Дальнейшим нашим действием будет нажатие на кнопку в форме DVD-диска. Это нужно для того, чтобы выбрать образ Windows. В нашем случае мы взяли для примера образ десятки. Образ диска можно сделать с установочного диска или скачать его с сайта www.microsoft.com.

13 jpg

После этих действий должна появиться радиокнопка «Windows To Go», которую нужно выбрать. Завершающим шагом будет нажатие кнопки Старт, после чего начнется создание флешки с десяткой.

Из примера видно, что используя первый и второй способ, несложно создать портативную ОС. Но если вы будете использовать утилиту Rufus, вы значительно расширите функционал загрузки портативной операционной системы.

14 jpg

В открывшемся окне программы выберем первый пункт и нажмем кнопку Next. На этом этапе утилита просит от нас выбрать файл «install.wim». В нашем случае мы используем файл из установочного диска Windows 7.

15 jpg

После проделанных действий также нажмем кнопку Next и перейдем к выбору USB накопителя.

16 jpg

На последнем этапе настройки выберем нашу флешку для записи загрузчика и нажмем кнопку Install. После этого начнется процесс создания портативной ОС.

17 jpg

Из примера видно, что программа PWBoot имеет довольно простой интерфейс и ограниченный функционал. Из этого следует, что программа будет незаменимым помощником в создании портативной ОС для начинающего пользователя ПК.

Оптимизация операционной системы при работе на флешке
Если вы создадите флешку с ОС Windows, то вы должны знать, что система постоянно записывает и перезаписывает временные файлы. Поэтому используя флешку таким образом, вы рискуете тем, что через короткий промежуток времени она станет негодной. Это происходит от того, что количество перезаписей на флешку ограничено.

Если вы хотите продлить жизнь своей флешки, произведите такие операции в операционной системе:

Подводим итог
Из всех рассмотренных примеров видно, что создать портативный накопитель с Windows 10 или с XP под силу каждому. Также хочется предостеречь пользователей при использовании таких систем. Использование таких портативных операционных систем рано или поздно сократит срок службы вашей флешки. Поэтому советуем в качестве накопителя для такой системы использовать портативный USB HDD.

Наиболее популярными представителями портативных ОС семейства Linux являются:

Источник

Статьи Как установить Windows XP, 7, 8, 10 на флешку

6966

Dragokas

Very kind Developer

Очень часто владельцы персональных компьютеров задаются вопросом об установке Windows на флешку. Операционная система Windows не предназначена для установки на USB накопитель, поэтому установить ее на флешку как на обычный HDD или SDD диск просто так не выйдет.

Чтобы помочь пользователям ПК справиться с задачей установки Windows на флешку, мы подготовили материал с подробными примерами. Рассмотренные примеры будут описывать процесс установки на флешку для всех актуальных ОС Windows, начиная с ХР и заканчивая десяткой. Ознакомившись с материалом, вы без труда сможете создавать загрузочные флешки с различными ОС Windows.

Установка на USB накопитель операционных систем Windows 7, 8, 10
Установочные диски операционных систем Windows 7, 8, 10 не позволяют производить установку на флешку. Чтобы произвести установку на флешку, необходимо воспользоваться сторонним программным обеспечением. Наиболее подходящей программой для нашей задачи является WinNTSetup. Утилита распространяется и поддерживается на форуме интернет портала www.msfn.org. Скачать ее можно со страницы форума www.msfn.org/board/topic/149612-winntsetup-v386.

Самой актуальной версией на момент написания статьи является WinNTSetup v3.8.6. Утилита распространяется в RAR архиве «WinNTSetup3.rar». После распаковки архива можно увидеть два исполняемых файла «WinNTSetup_x64.exe» и «WinNTSetup_x86.exe». Из названия файлов понятно, что каждый из них предназначен для запуска на системе с соответствующей разрядностью. В нашем случае мы запустим файл для 64 разрядной операционной системы. При запуске утилита выдаст сообщение, в котором попросит вас скачать ADK файлы для правильной работы программы.

1 jpg

Скачаем ADK файлы, нажав кнопку OK, после чего утилита запустится.

Теперь подготовим папку с установочными файлами Windows и USB накопитель. Для примера мы возьмем установочный диск с Windows 7 и поставим его в DVD привод.

После этого вернемся к утилите WinNTSetup на вкладку «Windows Vista/7/8/10/2008/2012». Теперь укажем путь к установочному файлу «install.wim».

2 jpg

На втором этапе нам нужно выбрать флешку, на которую будем устанавливать Windows 7. Перед тем как ее выбрать, форматируем флешку в файловой системе NTFS.

3 jpg

Теперь выберем в WinNTSetup место, куда будет установлен загрузчик и сама Windows, а именно — нашу флешку.

После этих действий можно приступать к установке Windows 7 на USB накопитель. Для этого кликнем по кнопке Установка в нижней области окна утилиты, после чего появится сообщение, с дополнительными параметрами установки.

4 jpg

Не меняя параметров, подтвердим это сообщение, запустив при этом установку на флешку.

Перед запуском установки на флешку вы можете оптимизировать ОС, отключив или включив ее функции. Это можно сделать, кликнув по кнопке Оптимизация ОС >>>.

5 jpg

Закончив установку, дальнейшим нашим шагом будет перезагрузка компьютера. До старта операционной системы загрузимся с нашего USB накопителя. На разных компьютерах это делается с помощью клавиш F11 и F12 или с помощью настроек в BIOS в разделе BOOT. Система должна загрузиться до этапа выбора имени пользователя и компьютера.

6 jpg

Таким же образом можно поставить на портативный жесткий USB диск или флешку операционные системы Windows 8 и 10.

В рассмотренном примере мы использовали тот же диск, как для загрузчика, так и для операционной системы.

Установка на USB накопитель операционной системы Windows XP

Установка Windows XP в программе WinNTSetup очень похожа на установку семерки в предыдущем примере. Поэтому отформатируем флешку в файловой системе NTFS и вставим установочный диск с Windows XP в DVD привод. Запустим программу WinNTSetup на вкладке «Windows 2000/XP/2003».

Теперь выберем в качестве папки с нашими установочными файлами наш диск, а также выберем флешку для записи загрузчика и установки XP.

7 jpg

Как и в примере с семеркой нажимаем кнопку Установка и подтверждаем сообщение, после чего начнется установка XP на USB накопитель. Также, как и для семерки, в XP можно произвести оптимизацию ОС.

После завершения работы WinNTSetup перезагрузим компьютер и загрузимся с нашего USB накопителя. Дальнейший этап установки Windows XP будет продолжаться с того места, когда установщик копирует файлы на диск. Весь дальнейший процесс установки такой же, как и при обычной установке XP, поэтому описывать дальнейший процесс не имеет смысла.

8 jpg

Windows To Go и Rufus
Начиная с восьмерки, разработчики из Microsoft внедрили новую технологию под названием Windows To Go. Эта технология разработана для того, чтобы пользователь, использующий компьютер с операционной системой Windows 10 или 8 смог создать USB накопитель с установленной ОС.

ОС, созданная при помощи Windows To Go, представляет собой зеркало системы, на которой производилось создание флешки. Из этого следует, что на такой системе будут сохранены все настройки и установленные программы. Особенно удобно использовать такую технологию в организациях, где нужно быстро подготовить и настроить ОС для сотрудника.

Рассмотрим пример создания флешки в Windows 8.

Для этого запустим поиск и наберем в нем «To Go». Запустим найденный мастер. Сразу после запуска мастер будет искать совместимые USB накопители с технологией Windows To Go.

9 jpg

На следующем этапе нам нужно вставить установочный диск в DVD привод и указать в мастере путь к файлу «install.wim». Если в вашем дистрибутиве такого файла нет, то воспользоваться данным методом не получится.

10 jpg

Далее мастер предложит зашифровать систему с помощью BitLocker, если вам это нужно.

11 jpg

В последнем окне необходимо нажать кнопку Создать, после чего начнется создание флешки с Windows 8. Процесс создания зависит от скорости записи USB накопителя.

12 jpg

Дальнейшим нашим действием будет нажатие на кнопку в форме DVD-диска. Это нужно для того, чтобы выбрать образ Windows. В нашем случае мы взяли для примера образ десятки. Образ диска можно сделать с установочного диска или скачать его с сайта www.microsoft.com.

13 jpg

После этих действий должна появиться радиокнопка «Windows To Go», которую нужно выбрать. Завершающим шагом будет нажатие кнопки Старт, после чего начнется создание флешки с десяткой.

Из примера видно, что используя первый и второй способ, несложно создать портативную ОС. Но если вы будете использовать утилиту Rufus, вы значительно расширите функционал загрузки портативной операционной системы.

14 jpg

В открывшемся окне программы выберем первый пункт и нажмем кнопку Next. На этом этапе утилита просит от нас выбрать файл «install.wim». В нашем случае мы используем файл из установочного диска Windows 7.

15 jpg

После проделанных действий также нажмем кнопку Next и перейдем к выбору USB накопителя.

16 jpg

На последнем этапе настройки выберем нашу флешку для записи загрузчика и нажмем кнопку Install. После этого начнется процесс создания портативной ОС.

17 jpg

Из примера видно, что программа PWBoot имеет довольно простой интерфейс и ограниченный функционал. Из этого следует, что программа будет незаменимым помощником в создании портативной ОС для начинающего пользователя ПК.

Оптимизация операционной системы при работе на флешке
Если вы создадите флешку с ОС Windows, то вы должны знать, что система постоянно записывает и перезаписывает временные файлы. Поэтому используя флешку таким образом, вы рискуете тем, что через короткий промежуток времени она станет негодной. Это происходит от того, что количество перезаписей на флешку ограничено.

Если вы хотите продлить жизнь своей флешки, произведите такие операции в операционной системе:

Подводим итог
Из всех рассмотренных примеров видно, что создать портативный накопитель с Windows 10 или с XP под силу каждому. Также хочется предостеречь пользователей при использовании таких систем. Использование таких портативных операционных систем рано или поздно сократит срок службы вашей флешки. Поэтому советуем в качестве накопителя для такой системы использовать портативный USB HDD.

Наиболее популярными представителями портативных ОС семейства Linux являются:

Источник

Не удалось найти среду восстановления

Решил восстановить работу компьютера без удаления файлов. Выполнял это мероприятие неоднократно. И тут. «не удалось найти среду восстановления». Подскажите, что делать.
Windows 8.1
HP ENVY m6 Notebook PC

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Не удалось найти среду восстановления
Не могу восстановить систему из скрытого раздела восстановления. До этого, я разбивал диск C на две.

tickНе удалось найти среду восстановления
Здравствуйте. Интересует следующая проблемка. Решила откатить на компьютере систему Win 8.1 к.

Не удалось найти среду восстановления
После очередной загрузки обновлений Windows 8.1 попросил перезагрузки. После перезагрузки ОС.

Это уже выходит за рамки проблемы, вы сами должны знать, как загружаться с флешек на вашем ноутбуке. Отключите в биосе Secure Boot, сохраните изменения, в начале загрузки нажимайте F9 и в появившемся меню выбрать флешку.

Добавлено через 6 минут

так и сделал. При чем и в архиве пробовал, и в разархивированном виде.

tickНе удалось найти среду восстановления
Здравствуйте,у меня такая ситуация. С начала было «Диск на котором установлена Виндовс.

tickНе удалось найти среду восстановления
Доброго времени суток. Прошу помощи в этом не понятном для меня вопросе. Система Windows 8.1.

Не удалось найти среду восстановления
Здраствуйте.У меня такая же проблема,система моего ноутбука Процессор: Intel(R) Core(TM) i5-3337U.

Не удалось найти среду восстановления
Добрый день, требуется помощь как я понимаю пользователя olen6. Требуется: Откатить ноутбук.

Не удалось найти среду восстановления на windows 8.1
При попытке отката ноута выдаёт что не удаётся найти среду восстановления,на форуме нашлись темы по.

Источник

Понравилась статья? Поделить с друзьями:
  • Windows 7 maximum x64 скачать торрент чистая
  • Windows 7 maximum x64 скачать торрент для флешки
  • Windows 7 maximum x64 скачать торрент iso
  • Windows 7 maximum x64 оригинальный образ
  • Windows 7 maximum x32 скачать торрент