Я недавно прочитал немного о boot.ini, и я немного запутался. Из того, что я понял, boot.ini для GRUB работает как menu.lst (или любой другой файл, который нужен GRUB). Итак, если boot.ini до загрузки компьютера в Windows (или любую другую операционную систему), может ли он использоваться вместо GRUB? Если так, то boot.ini - это не «вещь Windows», не так ли? (Так как он может использоваться полностью независимо от Windows). Может быть, я что-то упустил, и то, что я сказал здесь, полная чушь Может кто-то объяснить это мне? Спасибо!
3 ответа
Файл boot.ini
является частью NTLDR, загрузчика, используемого в Windows NT до XP и Sever 2003 (т.е. до основной версии ядра NT 5). Это очень «Windows-вещь» в том, что она распространяется с Windows и предназначена для использования с Windows. Однако он может загружать GRUB и любой другой загрузчик.
В более поздних версиях Windows (Vista, 7) используется BOOTMGR, который опирается на хранилище BCD (Boot Configuration Data), а не на простой текстовый файл boot.ini
. Он снова может быть использован для цепной загрузки GRUB или других загрузчиков. На самом деле, такие программы, как EasyBCD и Visual BCD Editor, обеспечивают очень простой процесс добавления записи в GRUB.
Цепная загрузка в основном может быть описана как загрузчик, заменяющий себя в памяти другим. Если загрузчик поддерживает загрузку по цепочке, вы можете в основном направить его на загрузку любого файла, который он может прочитать (в файловой системе FAT/NTFS в случае загрузчиков Windows), и выполнить его так, как если бы файл был исходным загрузчиком. Теоретически вы можете сформировать цикл, где загрузчик загружает другой, который загружает оригинал, и так далее ...
Там очень хорошее описание процесса запуска в статье Википедии здесь.
Загрузчик Windows по умолчанию устанавливается в основную загрузочную запись первого загрузочного диска.
Процесс загрузки использует файл boot.ini для настройки параметров, отображаемых при загрузке.
Загрузчик Windows значительно упрощен по сравнению с GRUB.
Boot.ini имеет некоторое сходство с menu.lst, но сходство - это скорее конвергентная эволюция, чем что-либо еще.
Возможно, хотя и не совсем тривиально, заставить загрузчик Windows запускать другую ОС. Чтобы добиться этого, вам нужна копия загрузочных записей для загрузочного диска другой ОС, затем вы можете добавить ссылку на нее в boot.ini, которая позволит выполнить эту загрузочную запись для загрузки другой ОС. Смотрите последнюю запись в этом обсуждении для более подробной информации.
Даже GRUB на самом деле не пытается на самом деле загрузить Windows, он просто отдает (цепочки) загрузчику Windows.
Насколько я понимаю, загрузка для IBM-совместимого ПК выглядит следующим образом:
- Компьютер запускает самотестирование при включении питания.
- BIOS компьютера находит загрузочное устройство, загружает и запускает MBR (Master Boot Record).
Современные системы могут иметь EUFI, а не BIOS. UEFI может загружать как MBR, так и GPT диски. Я буду игнорировать их сейчас. - MBR содержит таблицу разделов для диска. Один из разделов будет помечен как «активный». BIOS загружает загрузочный сектор из этого активного раздела в память и затем выполняет его.
- Если это был старый загрузочный сектор Windows, тогда программа в загрузочном секторе запустится и инициализирует файл NTLDR, который является загрузчиком операционной системы.
- NTLDR использует boot.ini для представления параметров
Вы можете указать загрузчик NT (ntldr) на другую установку. Например, если ваш старый boot.ini выглядит так:
[boot loader] timeout=10 default=multi(0)disk(0)rdisk(0)partition(1)\WINNT [operating systems] multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00" multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos C:\="MS-DOS"
затем вы можете добавить строку с C:\bootsect.lnx="Boot Linux
и поместить загрузочный сектор linux в файл c:\bootsect.lnx. Затем вы можете использовать то же меню для выбора между параметрами загрузки Windows и Linux. Выбор параметра загрузки linux вызовет любые команды в этом файле, которые могут быть загрузчиком GNU/Linux. Это даст вам второе (и, возможно, нежелательное) меню для выбора.
Это означает, что nltdr на самом деле не загружает ничего, кроме windows, но вы можете позволить ему передать процесс загрузки другому загрузчику.