Введение
Конечно, возможно, у читателя этой статьи первым делом возник вопрос "зачем?"
Если вы кликнули на эту статью, то, скорее всего, он относится не к тому, зачем понадобилась DOS ( :D, а к тому, почему именно QEMU?
Вы получите полный контроль над железом, которого вы в DOSBox'е и прочих приложениях не добьётесь
Вы получите гибкость...
...и, лично я считаю, что устанавливать системы вручную — это весело!
Если мне удалось вас убедить... поехали!
Структура
Если вы читали мою предыдущую статью, вы наверняка помните структуру, которую я использовал :)
Но, так как капелька занудства не помешает и мы кое-что поменяем, я повторюсь.
?️ Имя виртуальной машины
HD.qcow2 наш ЖД
? Installer установщик и все его хвосты
? Boot.img первая дискета, она же загрузочная
? 2.img
? 3.img
...
? Tools.img если есть Enhanced Tools
run скрипт запуска
Лично я, для примера, буду использовать MS-DOS 6.22, но так как они все похожи.. вы можете взять любую другую DOS!
Самый популярный источник подобных дискет — это WinWorldPC, откуда я и скачивал образы.
Жёсткий диск, создаётся этой командой (выставьте удобный вам размер вместо 16M):
qemu-img create HD.qcow2 16M -f qcow2
Если вы уже всё создали, и лишь ждёте, когда же я уже закончу разглагольствовать — перейдём дальше!
Создание run
Теперь, когда мы всё подготовили, настало время уделить внимание "голове" нашей ВМ — скрипту run
Вот его код (вы можете добавить или изменить что-то, либо использовать как есть):
#!/bin/sh
qemu-system-x86_64 \
-name "DOS" \
-boot menu=on \
\
-hda "HD.qcow2" \
-fda "Installer/Boot.img" \
-fdb "" \
\
-cpu 486 \
-m 2M \
\
-audio драйвер,model=sb16
Нужны пояснения?
#!/bin/sh
qemu-system-x86_64 \
# Имя виртуальной машины которое будет отображаться над окном
-name "DOS" \
# Включаем загрузочное меню по клавише Esc
-boot menu=on \
\
# Жёсткий диск и дискеты, fdb параметр ОБЯЗАТЕЛЕН, иначе у вас не будет диска B:
-hda "HD.qcow2" \
-fda "Installer/Boot.img" \
-fdb "" \
\
# Intel 80486 - самая рабочая из всех ранних моделей в QEMU
-cpu 486 \
# Оперативная память
-m 2M \
\
# Аудио, SoundBlaster 16 самая популярная в те годы модель, поэтому под неё больше драйверов
-audio драйвер,model=sb16
ВНИМАНИЕ!
Так как этот конфиг универсальный, вы должны подставить аудиодрайвер на нужное место в run (для Windows winwave, для macOS - coreaudio, для Linux - pa)
БОНУС
Вот и всё, осталось лишь запустить ВМ, и вуаля (надеюсь как устанавливать DOS вы знаете:)!
Тем временем для тех, у кого всё получилось, я подготовил CONFIG.SYS и AUTOEXEC.BAT которые обычно использую я:
CONFIG.SYS
; CONFIG.SYS
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\ANSI.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE
AUTOEXEC.BAT
:: AUTOEXEC.BAT
@ECHO OFF
SET PATH=C:\DOS;C:\TOOLS
PROMPT $E[1;34m$P$E[0m $G
SET DIRCMD=/W /P
SET FORMATCMD=/Q
DOSKEY
SMARTDRV A+ B+ C+
CD USR
CLS
ECHO "Welcome!"
SET BLASTER=A220 I7 H1 T6
Учтите, строки 5 и 12 спецефичны для моей конфигурации (а насчёт последней я вообще не уверен :)!
Для первого варианта вам понадобятся Enhanced Tools в папке Tools, а для второго созданная папка USR в корне!
Заключение
Вот и всё, осталось только любоваться :D
Кстати, открепить ВМ от терминала можно добавив & disown к ./run
P. S. Если у вас возникнут проблемы или вопросы, пишите в комментарии!
Комментарии (9)

Timick
17.10.2025 10:55на вопрос:
а к тому, почему именно QEMU?
отсутствует ответ почему именно QEMU, а не PCem, 86box или, например, древний bochs

axe_chita
17.10.2025 10:55; CONFIG.SYS DEVICE=C:\DOS\SETVER.EXE DEVICE=C:\DOS\ANSI.SYS DEVICE=C:\DOS\HIMEM.SYS DEVICE=C:\DOS\EMM386.EXEВ данном конфиге явно не хватает DOS=HIGH,UMB и FILES/BUFFERS
далее, сугубо опциональные SETVER.EXE и ANSI.SYS, лучше загружать драйверы в UMB используя DEVICEHIGH, экономя драгоценную нижнюю память ;)
lieff
Можно еще упомянуть про dosbox,старые игры обычно эмулируют именно им.
vovhrb Автор
Ну я и умомянул. В начале статьи когда рассказывал почему именно этот способ. Обычно это наипервейший вариант который все узнают, так что.. я решил не распространяться.
Но спасибо за совет.