Запутался насчет boot.ini
Я недавно прочитал немного о 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), и выполнить его так, как если бы этот файл был исходным загрузчиком. Теоретически вы можете сформировать цикл, где загрузчик загружает другой, который загружает оригинал, и так далее...
Здесь очень хорошее описание процесса запуска в статье в Википедии.
Насколько я понимаю, загрузка для IBM-совместимого ПК выглядит следующим образом:
- Компьютер запускает самотестирование при включении.
- BIOS компьютера находит загрузочное устройство, загружает и запускает MBR (Master Boot Record).
Современные системы могут иметь EUFI, а не BIOS. UEFI может загружать как MBR, так и GPT диски. Я буду игнорировать их сейчас. - MBR содержит таблицу разделов для диска. Один из разделов будет помечен как "активный". BIOS загружает загрузочный сектор из этого активного раздела в память и затем выполняет его.
- Если это был более старый загрузочный сектор Windows, тогда программа в загрузочном секторе запустится и инициализирует файл NTLDR, который является загрузчиком операционной системы.
- NTLDR использует boot.ini для представления параметров
Вы можете указать загрузчик NT (ntldr) на другую установку. Например, если ваш старый boot.ini выглядит так:
[загрузчик] Тайм-аут =10 по умолчанию = несколько (0) диск (0) RDISK (0) раздел (1)\WINNT [операционные системы] раздел с несколькими (0) дисками (0)rdisk(0) (1)\WINNT="Рабочая станция Windows NT версии 4.00" многодисковый (0) дисковый (0)rdisk(0) раздел (1)\WINNT="Рабочая станция Windows NT версии 4.00 [режим VGA]" /basevideo /sos C:\="MS-DOS"
тогда вы можете добавить строку с C:\bootsect.lnx="Boot Linux
и поместите загрузочный сектор Linux в файл c:\bootsect.lnx. Затем вы можете использовать то же меню для выбора между параметрами загрузки Windows и Linux. Выбор параметра загрузки linux вызовет любые команды в этом файле, которые могут быть загрузчиком GNU/Linux. Это даст вам второе (и, возможно, нежелательное) меню для выбора.
Это означает, что nltdr на самом деле не загружает ничего, кроме windows, но вы можете позволить ему передать процесс загрузки другому загрузчику.
Загрузчик Windows по умолчанию устанавливается в основную загрузочную запись первого загрузочного диска.
Процесс загрузки использует файл boot.ini для настройки параметров, отображаемых при загрузке.
Загрузчик Windows значительно упрощен по сравнению с GRUB.
Boot.ini имеет некоторое сходство с menu.lst, но сходство - это скорее конвергентная эволюция, чем что-либо еще.
Возможно, хотя и не совсем тривиально, заставить загрузчик Windows запускать другую ОС. Чтобы добиться этого, вам нужна копия загрузочных записей для загрузочного диска другой ОС, затем вы можете добавить ссылку на это в boot.ini, которая позволит выполнить эту загрузочную запись для загрузки другой ОС. Смотрите последнюю запись в этом обсуждении для более подробной информации.
Даже GRUB на самом деле не пытается на самом деле загрузить Windows, он просто отдает (цепочки) загрузчику Windows.