Grub4Dos
Grub4DOS

Grub4DOS (англ. GRUB for DOS) — свободный загрузчик с открытым исходным кодом, основанный на GNU GRUB Legacy (версия 0.97). Проект разработан для интеграции в среду DOS и предоставляет расширенные возможности загрузки операционных систем, включая мультизагрузку[1], работу с образами дисков[1], сетевыми ресурсами и поддержку устаревших систем. Grub4DOS сохраняет актуальность в нишевых сферах, таких как восстановление данных, эмуляция ретро-систем и управление загрузкой на промышленном оборудовании.
История разработки
Начало проекта (2003–2005)
Grub4DOS был создан в 2003 году китайским разработчиком Чэн Юйцзя (псевдоним Tinybit) как форк GNU GRUB. Основная цель — адаптация загрузчика для работы в среде DOS, что позволяло запускать современные операционные системы (например, Windows XP и Linux) на компьютерах без поддержки загрузки с USB или CD/DVD.
- 2004 год: Добавлена поддержка NTFS через драйвер ntfs-3g, что стало ключевым преимуществом перед другими загрузчиками для DOS.
- 2005 год: Реализована функция эмуляции дисков (
map --mem), позволяющая загружать ОС напрямую из ISO-образов без их записи на физические носители.
Расцвет и сообщество (2006–2010)
В этот период проект привлёк внимание энтузиастов и корпоративных пользователей.
- 2006 год: Интеграция с PXE для сетевой загрузки, что упростило развёртывание ОС в локальных сетях.
- 2008 год: Появление графического интерфейса WINGRUB для упрощённой настройки
menu.lst. - 2009 год: Tinybit покинул проект, но разработку продолжили Huan Ren и Bean, добавив поддержку GPT и дисков объёмом более 2 ТБ.
Современная эпоха (2011–настоящее время)
С 2011 года активная разработка замедлилась, но сообщество продолжает поддерживать проект:
- 2015 год: Экспериментальная сборка для UEFI (неофициальный форк Grub4DOS-EFI).
- 2020 год: Выпуск последней стабильной версии 0.4.6a с исправлениями ошибок.
- 2023 год: Grub4DOS остаётся частью инструментов восстановления, таких как Hiren’s Boot CD и Sergei Strelec WinPE.
Технические особенности
Архитектура
Grub4DOS сохранил модульную структуру GRUB Legacy, но добавил уникальные функции:
- Режимы работы:
- Реальный режим x86: Запуск через
grub.exeв среде DOS. - Цепочка загрузки: Интеграция с Windows Boot Manager (NTLDR) и Linux (GRUB2).
- Реальный режим x86: Запуск через
- Динамическая загрузка модулей: Поддержка дополнительных драйверов (например, USB в DOS через DUSE).
Поддержка файловых систем
Grub4DOS поддерживает широкий спектр файловых систем, что делает его универсальным для работы с различными носителями:
- FAT12/16/32:
- Базовая поддержка для DOS-носителей.
- Ограничение: Максимальный размер файла — 4 ГБ (из-за ограничений FAT32).
- NTFS:
- Чтение и запись через драйвер ntfs-3g.
- Поддержка сжатых файлов и символических ссылок.
- ext2/3/4:
- Полная совместимость с Linux-разделами.
- Ограничение: Нет поддержки журналирования ext4 (только чтение).
- ISO9660/UDF:
- Загрузка напрямую из ISO-образов CD/DVD.
- Поддержка многосессионных дисков.
- exFAT и ReFS:
- Экспериментальная реализация через патчи сообщества.
- Нестабильная работа с большими файлами (>32 ГБ).
- Сетевые файловые системы:
- Доступ через TFTP и NFS (требует настройки PXE).
Команды и конфигурация
Grub4DOS использует файл menu.lst для настройки меню загрузки. Пример расширенной конфигурации:
# Загрузка Windows 10 с NTFS-раздела title Windows 10 find --set-root /bootmgr chainloader /bootmgr # Запуск Ubuntu Live из ISO-образа title Ubuntu 22.04 Live map --mem /iso/ubuntu.iso (0xff) map --hook root (0xff) kernel /casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu.iso initrd /casper/initrd.img # Сетевая загрузка Debian через PXE title Debian NetInstall pxe detect kernel tftp://192.168.1.1/debian/linux initrd tftp://192.168.1.1/debian/initrd.gz
Работа с образами дисков
- Эмуляция дискет и жёстких дисков:
map --mem /image.img (fd0): Загрузка образа дискеты в виртуальный дисковод.map --heads=2 --sectors=18 /image.vhd (hd0): Эмуляция жёсткого диска с заданными параметрами.
- Сжатие образов: Поддержка форматов GZIP, LZMA и XZ для экономии места.
Сообщество и поддержка
Ресурсы и документация
- Официальные источники:
- Форумы:
- BootLand: Обсуждение тонкой настройки и устранения ошибок.
- MSFN: Гайды по созданию мультизагрузочных USB.
Производные проекты
- Easy2Boot: Мультизагрузочный USB-инструмент с поддержкой UEFI и BIOS.
- Clover EFI: Интеграция Grub4DOS в загрузчик Hackintosh.
- ReactOS Loader: Использование кодовой базы Grub4DOS для загрузки ReactOS.
Критика и ограничения
- Устаревшая кодовая база:
- Основан на GRUB Legacy, который официально признан устаревшим в 2015 году.
- Нет поддержки современных стандартов, таких как Secure Boot.
- Ограниченная поддержка оборудования:
- Сложность для новичков:
- Требуется ручное редактирование
menu.lst. - Отсутствие графического редактора конфигураций в официальной сборке.☢
- Требуется ручное редактирование
Применение в современных сценариях
Восстановление данных
- Интеграция с TestDisk и PhotoRec: Загрузка утилит напрямую из ISO-образов.
- Работа с RAID-массивами: Поддержка программных RAID-контроллеров.
Виртуализация и эмуляция
- QEMU/VirtualBox: Использование Grub4DOS для тестирования загрузочных образов.
- Retro-игры: Запуск DOS-игр через эмулируемые дискеты.
Промышленные системы
- Управление встроенными ПК: Загрузка специализированных ОС на оборудовании с устаревшим BIOS.
- Киоски и терминалы: Настройка автозапуска приложений через
autoexec.bat.
Сравнение с аналогами
| Характеристика | Grub4DOS | GNU GRUB 2 | Syslinux |
|---|---|---|---|
| Поддержка DOS | Да | Нет | Через DOSAPI |
| Загрузка из ISO | Да | Частично | Нет |
| Сеть (PXE) | Да | Да | Да |
| UEFI | Экспериментально | Да | Да |
| Простота настройки | Средняя | Сложная | Высокая |
Будущее проекта
Несмотря на прекращение активной разработки, Grub4DOS остаётся востребованным в нишевых областях. Сообщество сосредоточено на:
Ссылки и источники
- https://github.com/chenall/grub4dos оффициальный репозиторий проекта
- GRUB for DOS — Summary
- https://sourceforge.net/projects/grub4dos/ SourceForge страница проекта
- https://ru.wikibooks.org/wiki/Grub4dos Описание Grub4Dos на wikibooks
- https://drumbumbum.livejournal.com/263780.html статья о Grub4dos на LiveJournal
- https://habr.com/ru/articles/253260/ статья с инструкцией по установке Grub4dos на Habr
- https://wiki.osdev.org/GRUB Описание основы Grub4dos (GRUB) на сайте osdedv.org
Примечания
Дополнительная литература
- Приходько Д.И. ИССЛЕДОВАНИЕ ЗАГРУЗОЧНОЙ СИСТЕМЫ НА БАЗЕ ЗАГРУЗЧИКА GRUB4DOS // Фундаментальные и прикладные научные исследования: актуальные вопросы, достижения и инновации. сборник статей XI Международной научно-практической конференции: в 3 частях. : Сборник статей. — 2018. — С. 39—40.