Как создать средствами linux загрузочный образ диска с DOS 6.22

топ 100 блогов dlinyj — 24.04.2024 Мне казалось, что это простая и понятная задача, тяп-ляп и в дамках, но потратив два полных дня и всё свободное рабочее время, понял что не всё так просто. А самое удивительное, что нет толковых рабочих мануалов!

Как создать средствами linux загрузочный образ диска с DOS 6.22
Наконец работающий образ, готовый к dd на флешку


В предыдущем посте я ругался на проблемы с CF-картами и сюда же наслаивается другая проблема - сложность создания рабочего образа. Чтобы отделить одно от другого, здесь буду говорить строго о создании рабочего образа (файла), который в последствии можно будет бинарно перенести на CF и всё будет работать.

Казалось бы, что может быть проще: у меня есть точно работающий образ 16 МБ флешки (обратите внимание на разницу между МБ и МиБ, я говорю о МБ и далее всё будет в МБ). Далее можно создать пустой образ CF с помощью команды dd, truncate или mkdiskimage:

dd if=/dev/zero of=4gb.img bs=1K count=3915576 status=progress
truncate --size 4009549824 4gb.img
mkdiskimage 4gb.img 7769 16 63

Все делают разное, но в сути нам пойдёт любой вариант. truncate самый быстрый. И после, казалось бы, делаем вот что:

qemu-system-i386 -hda mydos.img -hdb 4gb.img

Загружаемся с рабочего образа, fdisk под ДОС размечаем всё, и после форматируем полученный диск с переносом системных файлов, командой format d:/s . Всё подробно описано тут.

И всё красиво, элегантно, но это НЕ РАБОТАЕТ. Файлы переносятся, но на диск загрузки потом не идёт...

Да, ограничение в 2 ГБ есть, но это прекрасно учитывает сам fdisk, он не позволяет создать раздел больше чем 2 ГБ. Поэтому там делаешь несколько разделов. Образ рабочий, файлы видны с другого диска, можно монтировать в linux. Но загрузка не идёт. Знаю про пометку диска загрузочным, но как я понимаю эту пометку ставит команда format.

Итак, рассказываю рабочий рецепт

Почему именно он рабочий я не знаю, как его повторить другим способом, тоже пока не ясно.

1. Качаем комплект установочных дискет ДОС 6.22 отсюда. Распаковываем их в папку 622.
2. Стартуем qemu с дискетки, с возможность ввода команд.

qemu-system-i386 -fda 622/disk01.img -hda 4gb.img -boot a -monitor stdio

Для смены диска в консоли qemu вводим команду:

(qemu) change floppy0 622/disk02.img

И так для всех дискет.

После этого мы получаем работающий образ диска, на который qemu успешно грузится (команда qemu-system-i386 -hda 4gb.img).

А теперь, следите за руками! После загрузки смотрим как видит fdisk этот носитель. А видит его как 500 МБ носитель! Никаких расширенных разделов 640 килобайт 500 МБ хватит всем!

Как создать средствами linux загрузочный образ диска с DOS 6.22


Разметить так ручками ни в DOS, ни в Linux мне не удалось. Анализ скриптов на дискетках не дал результата. Вот такая вот магия.

Осталось проверить, будет ли это работать на рельном железе (FreeDOS, таким образом установленный, не захотел запускаться).

Оставить комментарий

Архив записей в блогах:
Мало кто знает что одним из источников вдохновения для меня являются джунгли. У меня они ассоциируются с океаном, только зелёным и состоящим не из воды, а из растений. В них очень много  опасности, загадочности, жизни, явной и скрытой природной ...
Долгожданный обзор по новому кроссоверу от японской компании Fuji Heavy Industries. Модель XV пришла на замену Impreza XV, которая отличалась от обычной Импрезы всего лишь дополнительным пластиковым обвесом и увеличенным дорожным просветом. Новая XV внешне ...
этот сериал сейчас обсуждают все, кому не лень. но не хочется об идеологии, ...
Кадр из фильма *Операция Ы и другие приключения Шурика*, 1965 | Фото: fenixclub.com 19 июня 1945 г. родилась актриса, которую чаще называют именем ее экранной героини – Лиды из ...
Игумен Филипп (Симонов), заведующий кафедрой церковной истории исторического факультета МГУ им. М.В. Ломоносова, аудитор Счетной палаты РФ, размышляет о возможности объективного отношения к советскому прошлому.И мне кажется, что замазывание ...