Эмулятор Bochs не запустит ни одну операционную систему, пока вы не подключите к нему корректный образ диска — чаще всего ошибка «no bootable device» появляется именно из-за неправильно указанного пути или несовместимого формата образа. Поэтому первое действие при настройке — проверить, что файл образа существует, имеет поддерживаемый формат и прописан в конфигурационном файле bochsrc без опечаток.
Bochs — это программный эмулятор архитектуры x86, который полностью имитирует процессор и оборудование, а не просто виртуализирует ресурсы хост-системы. Из-за этого он работает медленнее решений вроде VirtualBox, зато позволяет запускать старые ОС, тестировать загрузчики и изучать низкоуровневое программирование. Все эти задачи начинаются с одного — с правильно подготовленного образа операционной системы.
Какие форматы образов поддерживает Bochs
В отличие от многих эмуляторов, Bochs изначально ориентирован на «сырые» образы дисков. Основной и наиболее совместимый формат — flat (сырой образ, аналог .img или .raw), где данные записаны сектор за сектором без сжатия и метаданных.
Помимо flat, эмулятор понимает и другие типы, которые указываются параметром mode или типом образа в конфигурации:
- 💾 flat — классический сырой образ фиксированного размера, максимальная совместимость;
- 📦 growing — образ, который увеличивается по мере заполнения данными, экономит место на диске;
- 🗜️ sparse — разреженный файл, где пустые блоки не занимают физическое пространство;
- 🔄 undoable и volatile — режимы с откатом изменений, полезные для экспериментов;
- 💿 vvfat — виртуальная файловая система FAT, отображающая папку хоста как диск.
Образы CD-ROM подключаются в стандартном формате ISO — именно так чаще всего загружают установщики операционных систем. Дискетные образы используют формат сырого дампа дискеты размером 1,44 МБ, что актуально для совсем старых систем вроде MS-DOS или ранних версий Windows.
Где взять готовые образы ОС
Готовые образы для Bochs обычно ищут в трёх ситуациях: для быстрой проверки эмулятора, для запуска лёгкой ОС на слабом устройстве (например, на Android через порт Bochs) или для изучения старых систем. Источников несколько, и к каждому стоит относиться внимательно.
Первый и самый безопасный путь — официальные дистрибутивы ОС в виде ISO, которые вы устанавливаете на виртуальный диск сами. Миниатюрные системы вроде FreeDOS, KolibriOS или лёгких сборок Linux распространяются свободно и отлично работают под Bochs. FreeDOS вообще считается классическим выбором для проверки эмулятора: он бесплатен, легален и неприхотлив.
Второй вариант — готовые образы, которые энтузиасты выкладывают на форумах и в тематических сообществах. Здесь кроется риск: внутри такого файла может оказаться что угодно, а лицензионный статус образов Windows сомнителен. Скачанный из непроверенного источника образ стоит запускать только в изолированной среде, без доступа к реальной сети и личным данным.
⚠️ Внимание: готовые образы из файлообменников и незнакомых сайтов могут содержать вредоносный код. Даже внутри эмулятора вредоносная система способна взаимодействовать с сетью, если вы её настроили. Проверяйте источник и предпочитайте официальные дистрибутивы.
Создание собственного образа диска
В комплект Bochs входит утилита bximage, которая создаёт пустые образы дисков нужного размера и формата. Это самый контролируемый способ: вы точно знаете геометрию диска и его тип, что исключает половину проблем с загрузкой.
Утилита работает в интерактивном режиме — запустите её и ответьте на вопросы о типе образа (hd, floppy или cdrom), формате (рекомендуется flat) и размере в мегабайтах:
bximage
Далее: выбрать hd → flat → указать размер, например 512 МБ
После создания bximage выводит готовую строку для конфигурационного файла — её удобно скопировать напрямую в bochsrc. Для старых ОС размер диска лучше не завышать: системам эпохи DOS и Windows 9x достаточно от нескольких сотен мегабайт до пары гигабайт, а слишком большие диски они могут просто не распознать.
☑️ Подготовка образа диска для Bochs
Настройка bochsrc: подключаем образ к эмулятору
Вся конфигурация Bochs описывается текстовым файлом bochsrc. Именно здесь указывается, какой образ считается жёстким диском, какой — компакт-диском и откуда грузиться. Типовой фрагмент выглядит так:
ata0-master: type=disk, path="dos.img", mode=flat
ata0-slave: type=cdrom, path="freedos.iso", status=inserted
boot: cdrom, disk
Обратите внимание на три момента. Путь к файлу указывается либо абсолютный, либо относительно каталога, из которого запускается Bochs, — ошибка в пути даёт сообщение о невозможности открыть образ. Параметр mode=flat должен соответствовать реальному формату файла. А директива boot определяет порядок загрузки: для установки ОС первым ставят cdrom, после установки меняют на disk.
Также в конфигурации задаётся объём оперативной памяти (директива megs) и модель процессора. Для старых систем избыточное количество памяти иногда вредит: часть программ эпохи DOS рассчитана на ограниченные объёмы и ведёт себя некорректно, если памяти «слишком много».
Конвертация образов из других форматов
Если у вас уже есть виртуальная машина в другом эмуляторе, её диск можно преобразовать в понятный Bochs формат. Для этого обычно используют утилиту qemu-img из состава QEMU — она умеет читать VMDK, VDI, QCOW2 и записывать сырой формат:
qemu-img convert -f vmdk -O raw disk.vmdk disk.img
Обратное преобразование тоже возможно — образ, созданный для Bochs, легко переносится в QEMU или конвертируется под VirtualBox. Сырой формат здесь выступает универсальным «посредником», поскольку не содержит специфических метаданных.
| Формат | Родная среда | Поддержка в Bochs |
|---|---|---|
| flat / raw (.img) | Bochs, QEMU | Нативная, рекомендуется |
| ISO | Универсальный | Как CD-ROM |
| QCOW2 | QEMU | Через конвертацию qemu-img |
| VMDK | VMware | Через конвертацию qemu-img |
| VDI | VirtualBox | Через конвертацию qemu-img |
⚠️ Внимание: при конвертации сырой образ занимает столько места, сколько составляет полный объём виртуального диска, даже если он почти пуст. Убедитесь, что на накопителе достаточно свободного пространства, прежде чем запускать qemu-img.
Типичные ошибки при работе с образами
Большинство проблем при запуске ОС в Bochs сводится к нескольким повторяющимся причинам. Разберём их в порядке частотности.
Сообщение о невозможности открыть образ почти всегда означает неверный путь или отсутствие прав на чтение файла. Проверьте имя файла посимвольно — лишний пробел или неверное расширение ломают всю конфигурацию. Вторая частая ситуация — «чёрный экран» после BIOS: обычно это признак того, что загрузочный сектор образа пуст или повреждён, либо порядок загрузки в boot не соответствует вашей задаче.
Третья группа проблем — несовпадение геометрии диска. Старые ОС определяют диск по параметрам цилиндры/головки/секторы, и если образ создавался в другой программе с иной геометрией, система может не загрузиться. Самый надёжный способ избежать проблем с геометрией — создавать образ штатной утилитой bximage и устанавливать ОС прямо внутри Bochs, а не переносить диски между эмуляторами.
⚠️ Внимание: не редактируйте файл образа, пока Bochs запущен, и не запускайте два эмулятора с одним и тем же образом одновременно — это почти гарантированно повреждает файловую систему гостевой ОС.
Что делать, если ОС установилась, но не грузится после перезагрузки
Проверьте, что в директиве boot первым указан disk, а не cdrom. Убедитесь, что установщик записал загрузчик на виртуальный диск — для этого можно временно загрузиться с ISO и проверить содержимое диска. Если образ создавался в другом эмуляторе, вероятна проблема геометрии: пересоздайте диск через bximage и повторите установку внутри Bochs.
Выбор ОС под возможности Bochs
Из-за полной программной эмуляции процессора Bochs работает заметно медленнее гипервизоров, поэтому тяжёлые современные системы в нём практически непригодны. Реалистичные сценарии — это системы, рассчитанные на скромное железо.
- 🕹️ FreeDOS и MS-DOS — работают быстро, идеальны для старого софта и игр;
- 🖥️ Windows 95/98 — запускаются приемлемо, подходят для ретро-экспериментов;
- 🐧 Минималистичные Linux-дистрибутивы — консольные варианты работают вполне сносно;
- 🔬 Учебные ОС и собственные загрузчики — исторически основное применение Bochs благодаря встроенному отладчику.
Именно встроенный отладчик — то, ради чего многие выбирают Bochs вместо более быстрых альтернатив. Он позволяет пошагово исполнять код, ставить точки останова на уровне инструкций процессора и наблюдать за регистрами, что незаменимо при разработке загрузчиков и изучении работы ОС.
Часто задаваемые вопросы
Можно ли использовать ISO-образ как жёсткий диск в Bochs?
Нет. ISO предназначен для подключения как CD-ROM (параметр type=cdrom). Для жёсткого диска нужен образ формата flat или другого поддерживаемого типа, созданный, например, через bximage.
Почему Bochs пишет, что не может открыть образ?
Чаще всего причина в неверном пути к файлу в bochsrc, опечатке в имени или недостаточных правах доступа. Проверьте путь, убедитесь, что файл существует и не занят другой программой.
Какой размер образа диска выбрать для старой ОС?
Для DOS-подобных систем достаточно нескольких сотен мегабайт, для Windows 9x — обычно от одного до нескольких гигабайт. Слишком большие диски старые системы могут не распознать, поэтому разумнее ориентироваться на требования конкретной ОС.
Можно ли перенести образ из VirtualBox в Bochs?
Да, через конвертацию утилитой qemu-img: сначала VDI преобразуется в сырой формат raw, который Bochs понимает как flat. Учтите, что из-за возможного несовпадения геометрии диска загрузка не гарантирована — надёжнее устанавливать ОС заново внутри Bochs.
Запустится ли современная Windows в Bochs?
Технически эмулятор способен исполнять код современных систем, но скорость полной программной эмуляции делает такой запуск практически бесполезным — загрузка может занимать очень долгое время. Для современных ОС используйте VirtualBox, VMware или QEMU с аппаратным ускорением.