Образы ОС для Bochs: выбор, создание и настройка

Эмулятор 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?
MS-DOS / FreeDOS
Windows 95/98/XP
Лёгкий Linux
Своя учебная ОС / загрузчик

Создание собственного образа диска

В комплект Bochs входит утилита bximage, которая создаёт пустые образы дисков нужного размера и формата. Это самый контролируемый способ: вы точно знаете геометрию диска и его тип, что исключает половину проблем с загрузкой.

Утилита работает в интерактивном режиме — запустите её и ответьте на вопросы о типе образа (hd, floppy или cdrom), формате (рекомендуется flat) и размере в мегабайтах:

bximage

Далее: выбрать hd → flat → указать размер, например 512 МБ

После создания bximage выводит готовую строку для конфигурационного файла — её удобно скопировать напрямую в bochsrc. Для старых ОС размер диска лучше не завышать: системам эпохи DOS и Windows 9x достаточно от нескольких сотен мегабайт до пары гигабайт, а слишком большие диски они могут просто не распознать.

☑️ Подготовка образа диска для Bochs

Выполнено: 0 / 5

Настройка 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
QCOW2QEMUЧерез конвертацию qemu-img
VMDKVMwareЧерез конвертацию qemu-img
VDIVirtualBoxЧерез конвертацию 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 с аппаратным ускорением.