Автоопределение ATA диска из MBR

Описания, советы, ремонт, эксплуатация старых IBM PC-совместимых ПК
i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Автоопределение ATA диска из MBR

Сообщение i8088 » 17.09.2020,08:18

Новая версия, V32.
Изменения

1. Переделан метод компиляции, теперь atadet.bin и ambr.bin получаются из одного исходника, и
смещения вручную переносить не надо. Константа задержки в первых 2-х байтах atadet.bin

2. Возвращен 286 код в atadet.bin, тк вызов его обходится, если машина non-AT.

3. На всякий случай количество цилиндров в HDPT ограничивается 1024

4. В AUTODI.EXE добавлен новый ключ FM (FIXMBR). Это восстанавливает код загрузчика из файла
mbr.bin, не трогая Partition Table. Похоже на FDISK/MBR, но код загрузки берется не изнутри программы,
а из MBR.BIN. Может быть полезен для старых версий DOS (2, 3, 4), где ключа FDISK /MBR не было, а
также для DRDOS, где это ключ не всегда корректно работает, и иногда портит флаг активности, что
приводит к Invalid Partitiion Table

5. Более подробные диагностические сообщения в AUTODI.EXE


Для чистой установки DOS делаем так.

1. Ставим загрузчик, и загружаемся с дискеты (по 'F', а не средствами BIOS!)

2. Делаем все что нужно в FDISK (размечаем диск).

3. Если после перезагрузки обнаружилось, что FDISK заменил загрузчик на стандартный,
ставим загрузчик заново

4. Далее все как обычно, но загружаться с дискеты только по 'F'. При загрузке средствами BIOS
HDD будет недоступен
Вложения
ad_v32.zip
(10.76 КБ) 98 скачиваний

stanki27
Advanced Member
Сообщения: 441
Зарегистрирован: 21.08.2019,17:34
Откуда: Хабаровск

Автоопределение ATA диска из MBR

Сообщение stanki27 » 17.05.2021,22:46

Уважаемый i8088,

Скажите - допускает ли загрузчик "AUTODI" возможность использовать флэшки емкостью большей чем "1024/16/63"?

Так например имеется ноут "Siemens Nixdorf PCD-5ND", у которого BIOS понимает LBA:
BIOS_version.jpg
LBA_in_BIOS.jpg

Пробовал скармливать ему флэшку "2 GB" без "AUTODI" загрузчика
(про которую запущенный с дискеты "IDEINFO" говорит, что она 4074/16/63):
прописал в BIOS ее параметры CHS, установил LBA в "Enable" - но ноут знать ее не хочет.

Загрузился с дискеты, прописал "AUTODI" на на флэшку, но все равно при загрузке до нажатия буквы "F" не доходит по причине зависания.
(с меньшими, чем "1024/16/63" все работает).


P.S. Также прошу Вашего мнения о ресурсе области пямяти флэшки, которая принимает в себя запись mbr.
В процессе экспериментов на одних и тех-же флэшках переписывал по несколько раз загрузчики "autobv14", "cfiv11" и "AD_V32", попеременно еще делая "fdsik mbr".
При этом несколько флэшек не пережили более 10 перезаписей и mbr на них больше не пишется и не стирается - выдает ошибку (фото я не сделал, но при необходимости повторю эксперименты и предоставлю их).
В то-же время эти флэшки на десктопе с "windows 10" нормально форматируются и позволяют на себя писать/стирать.
У меня сложилось мнение, что ресурс перезаписи для области mbr похуже, чем основная память флэшки.
Так ли это, или мне просто попались не лучшие экземпляры?


P.P.S. Также столкнулся с такой штукой, что при работе с флэшкой (меньшей, чем "1024/16/63"), иногда при установке дистрибутивов программ (подмечено на "ms office 4.3", "phtoshop 3" и др., а также установки w31) возникает ошибка работы, приводящая либо к зависанию ноута, либо сообщающая, что "файл не найден" и позволяющая продолжить, очевидно после успешной попытки прочитать его еще раз, хотя после такой установки scandisk сыплет ошибками.
Может ли загрузчик влиять на это? или это также проблема только не лучших экземпляров флэшек.

Чтобы исключить неполадки с контроллером или шлейфом я заменил флэшку на HDD и w31 с софтом успешно установились, затем переписал их на флэшку и она их отлично загружала (то есть проблема возникала именно при установке).

Ранее, у меня на "Compaq Contura 4/25CX" и "Toshiba T2115CS" с 486 процессорами BIOS самостоятельно (без использования загрузчика, так как тогда я про Ваш проект еще не знал) подцепил некоторые флэшки
(я просто перебирал одну за другой, и даже одинакового объема, но разных изготовителей, в поисках той, которую увидит fdisk и с которой после установки загрузится DOS [на некоторых увиденных "DOS-6.22" после установки стартовать не хотел, хотя после загрузки с дискеты файловая система на флэшке была доступна])
и на этих флэшках таких ошибок с не найденными файлами не наблюдалось и w31 и w95 успешно ставились.

i8088
Advanced Member
Сообщения: 4383
Зарегистрирован: 30.01.2015,17:06
Откуда: г. Баку, Азербайджан

Конкурсы

Вклад в сообщество

Автоопределение ATA диска из MBR

Сообщение i8088 » 18.05.2021,11:23

stanki27, проект исходно не предназначался для таких современных машин, все это делалось
для 286-386, где нету Autodetect и даже user-type типов дисков. И конечно, использование носителей
больше 1024/16/63 не предполагалось и не проверялось. Точнее я подключал даже 40GB HDD, он хорошо работал
с загрузчиком, геометрия при этом соответствует 1024/16/63 (загрузчик пишет реальную геометрию (8GB) просто
для информации).

Для справки - все ATA диски более 8GB отдают CHS геометрию ~8Gb - 16384(3)/16/63 для совместимости с
ограничением BIOS (1024/255/63, тоже ~8GB). Хотя при CHS вызове ATA позволяла бы теоретически
~32GB - 65536/16/63.~128GB - 65536/16/255. Однако в транслированной HDPT ограничение
~32GB - 65536/16/63.

Загрузчик модифицирует основную таблицу диска, но при ее использовании невозможно задать более
1024/16/63 без трансляции (те преобразования параметров, а это требует уже транслированной таблицы,
она по формату отличается от обычной), а как это делать для формирования таблицы, зависит от принятого
в данной конкретной версии BIOS алгоритма трансляции. Кстати, IIRC, у Phoenix какой-то своеобразный
способ. Более того, в последней версии я
i8088 писал(а): 17.09.2020,08:18 3. На всякий случай количество цилиндров в HDPT ограничивается 1024
Поэтому использование загрузчика на таких машинах может привести к недоступности пространства
за 1023 цилиндром.
stanki27 писал(а): 17.05.2021,22:46 У меня сложилось мнение, что ресурс перезаписи для области mbr похуже, чем основная память флэшки.
Так ли это, или мне просто попались не лучшие экземпляры?
CF Flash - аналог HDD, это просто массив запоминающих ячеек (cекторов), ей все равно для чего они используются.
Тем более, что в промышленных изделиях там вообще может быть все что угодно, необязательно наличие MBR и FS.
Flash лучше используйте промышленные, можно даже Б/У, а не бытовые flash для фотоаппаратов итп. В ходе работы над проектом перезаписей было очень много, ничего такого не наблюдалось. CF у меня промышленные.

Или flash износилась, или сбой какой-то. Может даже просто температура в момент сбоя была выше

И еще раз подчеркну, загрузчик ничего не изменяет в работе BIOS и не потребляет RAM,
те если машина не работала без загрузчика при ручном выставлении параметров, то загрузчик
тоже не поможет. В Вашем BIOS же есть AUTO, так не работает?
stanki27 писал(а): 17.05.2021,22:46 P.P.S. Также столкнулся с такой штукой, что при работе с флэшкой (меньшей, чем "1024/16/63"), иногда при установке дистрибутивов программ (подмечено на "ms office 4.3", "phtoshop 3" и др., а также установки w31) возникает ошибка работы, приводящая либо к зависанию ноута, либо сообщающая, что "файл не найден" и позволяющая продолжить, очевидно после успешной попытки прочитать его еще раз, хотя после такой установки scandisk сыплет ошибками.
Может ли загрузчик влиять на это? или это также проблема только не лучших экземпляров флэшек.

Чтобы исключить неполадки с контроллером или шлейфом я заменил флэшку на HDD и w31 с софтом успешно установились, затем переписал их на флэшку и она их отлично загружала (то есть проблема возникала именно при установке).
Если с HDD все нормально, то проблема с flash. Вообще, по моему опыту, на flash все таки нельзя полностью
положиться, потенциально это более проблемное устройство, чем HDD. Однако незаменимая вещь, когда нужно
постоянно дергать питание, для HDD это нежелательно лишний раз делать.

При установке OS и программ все-же R/W операций больше, чем при штатной работе. У меня было, что при копировании
очень большого количества файлов на CF (без загрузчика, этого проекта тогда еще вообще не было), выскочил сбой операции
записи, но повторение прошло успешно.
stanki27 писал(а): 17.05.2021,22:46 Пробовал скармливать ему флэшку "2 GB" без "AUTODI" загрузчика
(про которую запущенный с дискеты "IDEINFO" говорит, что она 4074/16/63):
прописал в BIOS ее параметры CHS, установил LBA в "Enable" - но ноут знать ее не хочет.
Записывать надо транслированные параметры, здесь надо AUTO ставить. LBA здесь просто
означает LBA assisted, реально LBA может и не использоваться

UPD.
stanki27 писал(а): 17.05.2021,22:46 [на некоторых увиденных "DOS-6.22" после установки стартовать не хотел, хотя после загрузки с дискеты файловая система на флэшке была доступна])
Но это же класический CF баг, про который я много писал, и про устранение его.
https://www.phantom.sannata.org/viewtop ... 12&t=36525

Ответить