Запуск Bochs впервые часто заканчивается окном с ошибкой «couldn't open ROM image file» или просто чёрным экраном — почти всегда причина в том, что эмулятор не нашёл файл BIOS или конфигурация bochsrc содержит неверные пути. Bochs, в отличие от VirtualBox или VMware, не имеет удобного мастера настройки: вся виртуальная машина описывается текстовым конфигурационным файлом, и именно это вызывает больше всего вопросов у новичков.
Bochs — это эмулятор аппаратной платформы x86 с открытым исходным кодом. Он не виртуализирует, а именно эмулирует процессор, что делает его медленнее решений с аппаратной виртуализацией, но позволяет запускать гостевые системы на архитектурах, отличных от x86 (например, на ARM-устройствах), и точно воспроизводить поведение старого «железа». Ниже разберём установку, создание конфигурации, запуск операционной системы и решение типичных проблем.
Что такое Bochs и для чего он нужен
Bochs эмулирует полный компьютер: процессор x86 (включая старые режимы), память, диски, видеоадаптер, клавиатуру и прочую периферию. Это делает его полезным в нескольких сценариях.
- 🖥️ Запуск старых операционных систем — MS-DOS, Windows 95/98, ранних дистрибутивов Linux — в исследовательских или ностальгических целях.
- 🐞 Отладка операционных систем и загрузчиков: встроенный отладчик Bochs позволяет пошагово выполнять код на уровне инструкций процессора.
- 📱 Эмуляция x86 на устройствах с другой архитектурой — существуют порты Bochs для Android.
- 🎓 Обучение низкоуровневому программированию: написание собственного загрузчика или ядра удобно тестировать именно в Bochs.
Если вам нужна просто виртуальная машина для повседневных задач на ПК с Windows или Linux — практичнее выбрать VirtualBox или VMware. Bochs оправдан там, где важна точная эмуляция железа или отладка на уровне инструкций.
Установка Bochs на Windows и Linux
На Windows установка сводится к загрузке инсталлятора с официального сайта проекта (страница bochs.sourceforge.io) и стандартной установке. Вместе с программой ставятся необходимые BIOS-образы — файлы BIOS-bochs-latest и VGABIOS, без которых эмулятор не стартует. Запомните папку установки: пути к этим файлам понадобятся в конфигурации.
В дистрибутивах Linux Bochs обычно доступен из репозиториев. Например, в Debian и Ubuntu установка выполняется одной командой:
sudo apt install bochs bochs-x
Пакет bochs-x добавляет графический интерфейс на X11. Проверить установку можно командой bochs --version в терминале. Точные имена пакетов могут отличаться в зависимости от дистрибутива — при отсутствии пакета сверьтесь с документацией вашей системы.
⚠️ Внимание: не скачивайте «сборки Bochs» со сторонних сайтов, особенно для Android — среди них встречаются модифицированные версии с вредоносным кодом. Используйте только официальные источники проекта или репозитории вашего дистрибутива.
Создание образа диска
Перед запуском гостевой ОС нужен виртуальный жёсткий диск — файл-образ. В комплект Bochs входит утилита bximage, которая создаёт такие образы в интерактивном режиме. Запустите её из терминала или командной строки:
bximage
Утилита последовательно спросит: тип образа (выберите hd для жёсткого диска), формат (для новичков проще flat — обычный файл фиксированного размера), размер в мегабайтах и имя файла. В конце bximage выведет строку с параметрами диска — эту строку нужно скопировать, она понадобится для конфигурационного файла.
Для установки ОС также потребуется загрузочный носитель: ISO-образ диска (подключается как виртуальный CD-ROM) или образ дискеты для совсем старых систем вроде MS-DOS.
Настройка конфигурационного файла bochsrc
Сердце Bochs — текстовый файл конфигурации, по традиции называемый bochsrc.txt или просто bochsrc. Создайте его в любом текстовом редакторе и укажите ключевые параметры виртуальной машины. Минимальный рабочий вариант выглядит примерно так:
megs: 128
romimage: file="BIOS-bochs-latest"
vgaromimage: file="VGABIOS-lgpl-latest"
ata0-master: type=disk, path="c.img", mode=flat
ata0-slave: type=cdrom, path="install.iso", status=inserted
boot: cdrom, disk
floppya: status=ejected
Разберём основные строки. Параметр megs задаёт объём оперативной памяти гостя в мегабайтах. romimage и vgaromimage — пути к файлам BIOS и видео-BIOS; если эмулятор не находит их, укажите полные абсолютные пути. Строка ata0-master подключает созданный образ диска, а ata0-slave — установочный ISO. Директива boot определяет порядок загрузки: сначала CD для установки системы, затем жёсткий диск.
- 📁 Все пути к файлам указывайте либо абсолютными, либо относительно рабочей папки, из которой запускаете Bochs.
- 🔢 Параметры геометрии диска (cylinders/heads/spt) возьмите из вывода
bximage— для современных версий Bochs они часто определяются автоматически, но со старыми образами могут понадобиться. - 🖱️ Для перехвата мыши в окне эмулятора используется параметр
mouse: enabled=1.
☑️ Проверка bochsrc перед запуском
Запуск эмулятора и установка системы
Запуск выполняется из каталога, где лежит конфигурация, командой:
bochs -f bochsrc.txt
Если Bochs запущен без параметров, он откроет текстовое меню, где можно выбрать пункт загрузки конфигурации и старт эмуляции. После старта появится окно виртуального дисплея: гостевая система пройдёт POST, загрузится с CD и начнётся установка ОС — дальше всё происходит так же, как на реальном компьютере.
Учтите особенность: из-за полной эмуляции процессора скорость работы заметно ниже, чем в VirtualBox. Установка Windows 98 может занять ощутимо больше времени, чем на реальном железе той эпохи. Это нормально и не является признаком зависания — ориентируйтесь на активность индикатора диска в строке состояния окна Bochs.
После завершения установки измените в конфигурации порядок загрузки на boot: disk, чтобы система стартовала с виртуального жёсткого диска, а установочный ISO можно отключить.
Типичные ошибки и их решение
Большинство проблем при работе с Bochs связаны с конфигурацией. Ниже — самые частые симптомы и способы их устранения.
| Ошибка / симптом | Вероятная причина | Решение |
|---|---|---|
| couldn't open ROM image | Неверный путь к BIOS | Указать полный путь к файлу BIOS в romimage |
| Чёрный экран после старта | Не найден VGABIOS или нет загрузочного диска | Проверить vgaromimage и порядок boot |
| ata0-master: could not open | Неверный путь к образу диска | Проверить имя и расположение файла образа |
| No bootable device | ISO не подключён или не загрузочный | Проверить строку ata0-slave и сам образ |
| Очень медленная работа | Особенность полной эмуляции | Норма для Bochs; уменьшить megs при избытке памяти |
⚠️ Внимание: редактируйте bochsrc только в редакторе, сохраняющем чистый текст без форматирования (Notepad++, VS Code, nano). Сохранение конфигурации из Word или WordPad добавляет служебные символы, из-за которых Bochs выдаёт ошибки парсинга.
Если ошибка неочевидна, запускайте Bochs из терминала — весь диагностический вывод печатается в консоль, и по нему почти всегда видно, на какой строке конфигурации эмулятор споткнулся.
Как включить встроенный отладчик Bochs
Соберите или установите версию с поддержкой отладчика и запустите bochs с параметром -dbg (или раскомментируйте строку debugger в конфигурации). Отладчик позволяет ставить точки останова на физические адреса, просматривать регистры и пошагово выполнять инструкции — это основной инструмент при разработке загрузчиков.
Особенности Bochs на Android
Порты Bochs для Android позволяют запускать x86-системы на смартфонах и планшетах. Общий принцип тот же: нужен конфигурационный файл, образ диска и BIOS-файлы, которые размещаются в памяти устройства. Пути в конфигурации указываются с учётом файловой системы Android, например в каталоге на карте памяти.
Конкретные пути, названия папок и пункты настроек зависят от конкретного порта и его версии — единого стандарта здесь нет, поэтому сверяйтесь с инструкцией именно вашей сборки. Общие практические моменты: производительность на мобильном железе ниже, чем на ПК, поэтому реалистичный сценарий — DOS и лёгкие системы; тяжёлые гостевые ОС будут работать крайне медленно. Также заранее продумайте управление: экранная клавиатура и эмуляция мыши настраиваются в интерфейсе конкретного порта.
Полезные приёмы работы
Несколько рекомендаций, которые упрощают повседневное использование эмулятора. Во-первых, храните несколько готовых конфигураций под разные задачи — одну для DOS, другую для Windows 98, третью для отладки. Переключение между ними сводится к указанию нужного файла в команде запуска.
Во-вторых, делайте копии образов дисков перед экспериментами: файл-образ формата flat — это обычный файл, который легко скопировать и откатить. Это надёжнее любых снапшотов. В-третьих, если гостевая система работает слишком медленно, попробуйте уменьшить объём выделяемой памяти до реально необходимого — лишние мегабайты в эмуляторе не ускоряют, а иногда замедляют работу.
⚠️ Внимание: не редактируйте файл образа диска сторонними утилитами, пока виртуальная машина запущена, — это почти гарантированно повредит файловую систему гостя. Всегда завершайте работу Bochs перед любыми операциями с образом.
Часто задаваемые вопросы
Чем Bochs отличается от QEMU и VirtualBox?
Bochs — чистый эмулятор: он программно исполняет каждую инструкцию процессора, что медленно, но точно и работает на любой архитектуре. VirtualBox использует аппаратную виртуализацию и гораздо быстрее, но только на x86-хостах. QEMU занимает промежуточное положение и умеет оба режима.
Где взять файлы BIOS для Bochs?
Они входят в комплект поставки эмулятора: файлы BIOS-bochs-latest и VGABIOS-lgpl-latest лежат в папке установки (на Linux — обычно в системном каталоге данных пакета). Скачивать BIOS отдельно не требуется.
Почему Bochs пишет «no bootable device»?
Эмулятор не нашёл загрузочный носитель. Проверьте, что ISO или образ диска подключён в конфигурации, путь к файлу верный, а сам образ действительно загрузочный. Также убедитесь, что порядок загрузки в директиве boot соответствует подключённому носителю.
Можно ли ускорить работу Bochs?
Радикально — нет, скорость ограничена самой природой полной эмуляции. Можно уменьшить объём памяти гостя до необходимого минимума и отключить неиспользуемую периферию в конфигурации. Если нужна скорость на x86-хосте, для этой задачи лучше подойдут VirtualBox или QEMU с KVM.
Подходит ли Bochs для запуска современных Windows?
Теоретически конфигурация позволяет выделить много памяти и запустить современную ОС, но на практике скорость эмуляции делает такой сценарий непригодным. Реальная ниша Bochs — старые системы, отладка и обучение низкоуровневому программированию.