Введение
Конечно, возможно, у читателя этой статьи первым делом возник вопрос "зачем?"
Если вы кликнули на эту статью, то, скорее всего, он относится не к тому, зачем понадобилась 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 32M -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 8M \
\
-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=T6 A220 I5 D1 H5
Учтите, строки 5 и 12 спецефичны для моей конфигурации (а насчёт последней я вообще не уверен :)!
Для первого варианта вам понадобятся Enhanced Tools в папке Tools, а для второго созданная папка USR в корне!
Заключение
Вот и всё, осталось только любоваться :D
Кстати, открепить ВМ от терминала можно добавив & disown к ./run
P. S. Если у вас возникнут проблемы или вопросы, пишите в комментарии!
