Может ли Windows bootmgr (загрузчик Windows используется с Vista *) загружать Linux напрямую, без загрузки GRUB или другого загрузчика?
- ответы относительно старых NTLDR тоже приветствуются
Может ли Windows bootmgr (загрузчик Windows используется с Vista *) загружать Linux напрямую, без загрузки GRUB или другого загрузчика?
Проще говоря, нет. Загрузка Linux немного сложнее, чем просто копирование некоторых данных в память и переход к началу этой области памяти, и Microsoft по понятным причинам решила не добавлять поддержку этого в свой загрузчик.
Однако, если вы хотите просто использовать загрузчик Windows в качестве основного загрузчика, существуют различные методы, которые можно использовать для загрузки различных версий GRUB из загрузчика Windows. Вы также можете поэкспериментировать с использованием GRUB4DOS, который имеет двоичный формат, который может быть напрямую загружен с NTLDR. Или вы можете загрузить загрузочный сектор реального режима для любой версии GRUB из bootmgr или NTLDR.
Теперь вы, вероятно, задавали вопрос из любопытства больше всего на свете, и это также разозлило мое любопытство. Исследуя этот вопрос, я нашел хорошее описание процесса загрузки Linux. В нем упоминается устаревший загрузочный сектор ядра, который исторически использовался при загрузке ядра непосредственно с дискеты. Однако это поле больше не используется, как вы скоро увидите. Вероятно, потому что ядро стало больше, чем 1,44 МБ в эти дни.
Я попытался распаковать ядро и загрузить его двумя способами. Сначала с chainloader /vmlinux
из GRUB4DOS (хотя любой другой grub может работать одинаково, опять же, если вы распакуете файл. Результат: я получаю следующее сообщение:
Direct booting from floppy is no longer supported.
Please use a boot loader instead.
Remove disk and press any key to reboot . . .
Я также попробовал C:\vmlinux="boot test"
в XP boot.ini
но он просто завис.
Тем не менее, возникает вопрос, возможно ли создать специальную сборку ядра, которая действительно может быть загружена непосредственно с одного из загрузчиков Windows с небольшим количеством клея для перехода в точку входа ядра realmdoe, а также с несколькими другими исправлениями возможно.
Однако это все равно было бы очень неудобно, поскольку в этом методе не хватало бы всех современных товаров, которые ядро обычно получает из загрузчика, таких как параметры ядра и initrd. Это может просто не стоить усилий.