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

Наконец работающий образ, готовый к dd на флешку
В предыдущем посте я ругался на проблемы с CF-картами и сюда же наслаивается другая проблема - сложность создания рабочего образа. Чтобы отделить одно от другого, здесь буду говорить строго о создании рабочего образа (файла), который в последствии можно будет бинарно перенести на CF и всё будет работать.
Казалось бы, что может быть проще: у меня есть точно работающий образ 16 МБ флешки (обратите внимание на разницу между МБ и МиБ, я говорю о МБ и далее всё будет в МБ). Далее можно создать пустой образ CF с помощью команды dd, truncate или mkdiskimage:
Все делают разное, но в сути нам пойдёт любой вариант. truncate самый быстрый. И после, казалось бы, делаем вот что:
Загружаемся с рабочего образа, fdisk под ДОС размечаем всё, и после форматируем полученный диск с переносом системных файлов, командой format d:/s . Всё подробно описано тут.
И всё красиво, элегантно, но это НЕ РАБОТАЕТ. Файлы переносятся, но на диск загрузки потом не идёт...
Да, ограничение в 2 ГБ есть, но это прекрасно учитывает сам fdisk, он не позволяет создать раздел больше чем 2 ГБ. Поэтому там делаешь несколько разделов. Образ рабочий, файлы видны с другого диска, можно монтировать в linux. Но загрузка не идёт. Знаю про пометку диска загрузочным, но как я понимаю эту пометку ставит команда format.
Итак, рассказываю рабочий рецепт
Почему именно он рабочий я не знаю, как его повторить другим способом, тоже пока не ясно.
1. Качаем комплект установочных дискет ДОС 6.22 отсюда. Распаковываем их в папку 622.
2. Стартуем qemu с дискетки, с возможность ввода команд.
Для смены диска в консоли qemu вводим команду:
И так для всех дискет.
После этого мы получаем работающий образ диска, на который qemu успешно грузится (команда qemu-system-i386 -hda 4gb.img).
А теперь, следите за руками! После загрузки смотрим как видит fdisk этот носитель. А видит его как 500 МБ носитель! Никаких расширенных разделов640 килобайт 500 МБ хватит всем!

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

Наконец работающий образ, готовый к 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 МБ носитель! Никаких расширенных разделов

Разметить так ручками ни в DOS, ни в Linux мне не удалось. Анализ скриптов на дискетках не дал результата. Вот такая вот магия.
Осталось проверить, будет ли это работать на рельном железе (FreeDOS, таким образом установленный, не захотел запускаться).
no subject
Date: 2024-04-24 04:18 pm (UTC)Знаю про пометку диска загрузочным, но как я понимаю эту пометку ставит команда format.
Активным раздел делается через fdisk.
no subject
Date: 2024-04-24 04:19 pm (UTC)Да, мне уже сказали что надо делать fdisk /mbr. Но я буду рад полной версии команды.
no subject
Date: 2024-04-24 04:24 pm (UTC)Notes on DOS FDISK Command
www.rigacci.org
см.
Some Example Screen Dumps From DOS 6.22 FDISK
MS-DOS Version 6
Fixed Disk Setup Program
(C)Copyright Microsoft Corp. 1983 - 1993
FDISK Options
Current fixed disk drive: 1
Choose one of the following:
1. Create DOS partition or Logical DOS Drive
2. Set active partition * (Does not disturb data on drive)
3. Delete partition or Logical DOS Drive
4. Display partition information
5. Change current fixed disk drive * (If only one drive is present,
this option does not appear)
Enter choice: [1]
Press Esc to exit FDISK
2й пункт — Set active partition.
То есть надо записать mbr и назначить раздел активным.
no subject
Date: 2024-04-24 04:27 pm (UTC)Второй я делал, а вот как записать mbr?
no subject
Date: 2024-04-24 04:28 pm (UTC)no subject
Date: 2024-04-24 04:31 pm (UTC)По той же ссылке
FDISK /MBR is an undocumented parameter that will create a new Master
Boot Record.
no subject
Date: 2024-04-24 04:43 pm (UTC)Я не поленился, проверил, в qemu это не помогло. Надо ещё указать номер диска:
no subject
Date: 2024-04-24 04:43 pm (UTC)В любом случае этот вариант не работает.
no subject
Date: 2024-04-24 11:30 pm (UTC)Это странно, емнип всегда без номера диска работало.
Вот и в интернета пишут что:
FDISK /MBR [MS-DOS 6.00 and above ONLY]
FDISK /MBR recreates the boot sector of the first (bootable) hard disk overwriting it with a fresh copy, by writing a new Master Boot Record (MBR) based on existent disk structure, without altering the partition table information.
http://secrets.mysfyts.com/index.asp?Page=Fdisk (http://secrets.mysfyts.com/index.asp?Page=Fdisk)
Или у тебя линуксовый fdisk?
А. Понял, ты ж грузился так что твой диск вторым был, без параметров оно тебе на С: мбр правило %)
no subject
Date: 2024-04-24 11:51 pm (UTC)Не вполне понятно что значит "Файлы переносятся, но на диск загрузки потом не идёт..."
Не помню как в qemu, а в биосе надо было правильно выбрать загрузочный диск, по дефолту вроде первый хдд использовался или дискеты... Но это неточно.
Если ты просто перегружал систему запущенную как "qemu-system-i386 -hda mydos.img -hdb 4gb.img" то по идее оно должно было продолжать с оригинального образа загружаться.
Там система такая была — биос смотрит какой диск выбран загрузочным(или первым, или перемычками первым выставлен) и ищет на нем активный МБР раздел, если такой есть — грузит МБР сектор в память и делает jump в загруженный сектор, дальше код из МБР(в случае доса) грузит два системных файла(которые копирует format /s) и запускает command.com. Вроде так.
no subject
Date: 2024-04-25 09:17 am (UTC)опция /MBR просто записывает стандартную загрузочную программу в начало сектора 0/0/1 активного HDD. Таблица разделов диска находится в конце сектора 0/0/1. Если туда записана нестандартная загрузочная программа, например, для исправления устаревшего BIOS, или создана кривая таблица разделов, то fdisk /mbr только навредит. Указание номера диска после /MBR в DOS 6.22 не работает!
Может, все же попробовать fdisk /CMBR 2 из DOS 7.1 или утилиту MBRWizard?
https://thestarman.pcministry.com/asm/mbr/switches.htm (https://thestarman.pcministry.com/asm/mbr/switches.htm)
а еще лучше — ставить PTS-DOS 6.7 )))
no subject
Date: 2024-04-25 10:08 am (UTC)no subject
Date: 2024-04-25 10:10 am (UTC)no subject
Date: 2024-04-25 11:39 am (UTC)Сдается, что не получится стандартными утилитами из коробки.
no subject
Date: 2024-04-25 12:35 pm (UTC)no subject
Date: 2024-04-25 07:43 pm (UTC)> Осталось проверить, будет ли это работать на реальном железе (FreeDOS, таким образом установленный, не захотел запускаться).
Я понял, что или не проверили пока, или постигла неудача
no subject
Date: 2024-04-26 05:45 am (UTC)На реальном железе, включая параметры карточки, что она четыре гб.
Видит как два, так как в BIOS я её забыл прописать, а там была двухгиговая. Но можно перемножить спектра, головки, блины на 512 и убедится что это 4ГБ
no subject
Date: 2024-04-26 11:48 am (UTC)Новость в тему https://habr.com/ru/news/810613/ (https://habr.com/ru/news/810613/)
no subject
Date: 2024-05-06 01:43 pm (UTC)