Введение

Конечно, возможно, у читателя этой статьи первым делом возник вопрос "зачем?"
Если вы кликнули на эту статью, то, скорее всего, он относится не к тому, зачем понадобилась DOS ( :D, а к тому, почему именно QEMU?

  1. Вы получите полный контроль над железом, которого вы в DOSBox'е и прочих приложениях не добьётесь

  2. Вы получите гибкость...

  3. ...и, лично я считаю, что устанавливать системы вручную — это весело!

Если мне удалось вас убедить... поехали!

Структура

Если вы читали мою предыдущую статью, вы наверняка помните структуру, которую я использовал :)
Но, так как капелька занудства не помешает и мы кое-что поменяем, я повторюсь.

?️ Имя виртуальной машины
	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)


  1. lieff
    17.10.2025 10:55

    Можно еще упомянуть про dosbox,старые игры обычно эмулируют именно им.


    1. vovhrb Автор
      17.10.2025 10:55

      Ну я и умомянул. В начале статьи когда рассказывал почему именно этот способ. Обычно это наипервейший вариант который все узнают, так что.. я решил не распространяться.

      Но спасибо за совет.


  1. BiTL
    17.10.2025 10:55

    Так... А комп в карман-то как засунуть?


    1. unreal_undead2
      17.10.2025 10:55

      Видимо как то так.


    1. vovhrb Автор
      17.10.2025 10:55

      Или Limbo x86 :]

      Но вообще это конечно чисто для заголовка


  1. AcidWave
    17.10.2025 10:55

    Вообще хорошая идея. Спасибо. У сына запустил 98 винду. Сын рад до безумия


    1. m0tral
      17.10.2025 10:55

      Чему рад то?)


  1. Timick
    17.10.2025 10:55

    на вопрос:

    а к тому, почему именно QEMU?

    отсутствует ответ почему именно QEMU, а не PCem, 86box или, например, древний bochs


  1. 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, экономя драгоценную нижнюю память ;)