Есть старенький ноут (AST 486SX/25-4mb) с помирающим "родным" винтом на 160 метров.
На замену ему удалось найти ST91685A на 1.6 гб.
Ну и разумееется BIOS ноута его не видит. Причем в силу своей "брендовости" не дает забить прарметры винта вручную или выставить на "меньший" обьем. ( с тем чтобы заюзать что то вроде DiskManager) (
Но машинка, не найдя винта, тем не менее пытается грузанутсься с дискетки.
Так вот. Есть ли такая разновидность дисковых менеджеров, которая пишет свою резидетную часть на дискетку и позволяет "подхватить" неопределившийся винт? Или что то вроде досовского "драйвера винчестера", который заставит работать этот винт уже после загрузки ДОСа?
Если ничего такого нет, то придется смотреть на древние *NIXы. Ядро, пусканувшись с дискеты, винт думаю подхватит. Но хочется старый ДОСовский софт/игры на этой машинке погонять... А эмуляция на ней ДОСа из под никсов - жестокое дело...
Все гораздо хуже.
Поскольку автоопределение винта намертво забито в Биос, в этом пункте обмануть машинку мы не можем. Беда в том, что эти брэнды могли понимать винчестеры объемом не больше 512 МВ. То есть, никакого ЛБА вообще. Это подразумевает геометрию вида: 1024 цилиндра, 16 голов, 63 сектора по максимуму... и финиш. Большего числа битиков ни для чилиндеров, ни для голов, ни для секторов не отведено. И значит, геометрию большего винта машинка не определит: переполнение по одному из параметров.
Далее. Загрузка IBM-совместимой машинки происходит так (© Питер Нортон):
- опрашиваем устройства.
- если есть винчестер, считываем его PARTITION TABLE (!) по определенному фиксированному адресу. После этого и до следующей перезагрузки данный адрес залочен наглухо и для всех. Не зря даже последние Partition Magics требуют насильственной перезагрузки компа при выходе из программы.
Наша же дурдочка винчестера не видит. До загрузки системы еще - как до Солнца. Потому как еще Биос-процедуры не все отработали. А этот заветный адресок (как только не увидели винчестера) уже залочен. А любое обращение к винчестеру под любой ОС начинается с опроса этого заветного адреска: стоит там флаг наличия винчестера или нет. Ежели флаг стоит - плевать, что в PARTITION TABLE абракадабра - переписать можно. А вот ежели нет там того флага... никакими силами мы этот винчестер не увидим.
Так что, увы - никакие *NIX-ы не помогут. Единственное решение (не считая СУПЕР-экзотических, типа ручками подправить фирмварю винчестера или Биос ноута) - искать винт объемом ДО 500 мегабайт.
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
To geodimetr: Нортона оччень давно не читал, зато смею думать, что отлично знаю процедуру участия BIOS в загрузке ОС. После слова "далее" - расходится с моими убеждениями До этого слова - согласен. Хорошо еще, что не виснет.
Мысль про *nix с дискеты считаю вполне здравой. Единственное - у загружаемого никса должна все же быть в ядре поддержка веников. У многих "дискетных линукс-роутеров" ее нет.
А кому счас легко...
Небольшой отчет. В результате гугления удалось найти програмулину Sevilija
web.ssmu.ru/er/zip/sevilija.zip
которая все же является своеобразным "драйвером винчестера". Работает(опционально, но что и требовалось) напрямую с IDE контроллером и позволяет "подключать" разделы с винта)
Что имеем:
+ Программы, работающие через функции ДОС с диском благополучно работают
+ Удалось запустить BasicLinux (ядро и корневая ФС в loopе лежат на FATе, "примонтированном" про помощи этой проги). Ядро стартануло через loadlin а дальше уже само стало рулить контроллером)
+ Windows 3.11 запустилась, но долго ругалась на "необнаруженный винчестер" и откзывалась положить своп на винт(
Оказалось что диск по умолчанию прогой подключаем как сьемный) Сделал его "обычным" ( /с ) и своп разместился) Правда временный и при 16разрядном методе доступа к диску ( драйвера 32битного режима лоступа - а пробовал разные - винт не разглядели? видимо доверяя БИОСу). Но работает)
Вроде сносное решение)
Что залочивается - адрес в ОЗУ, куда загружена MBR, или 0-я дорожка HDD?
---
С уважением,
Андрей aka Angel07
Адрес, естественно ! Поэтому можно, конечно, логические диски подключить отдельно, как некие устройства без MBR, но полноценного видения винчестера как загрузочного устройства не будет. Нулевую дорожку лочат некоторые антивирусы, в том числе и встроенные в Биос - но это уже совсем другая история.
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
Правильно ли я понимаю процесс загрузки с HDD:
1. Загрузка BIOS-ом в ОЗУ 0-й дорожки MBR, содержащей загрузчик
и Partition table, и передача управления загрузчику.
2. Чтение загрузчиком MBR таблицы разделов, определение активного раздела и загрузка 2-го загрузчика (аналогичного загрузчику на 0-й дорожке гибкого диска) с "0-й дорожки" раздела (первая "дорожка" логического диска), и передача управления этому загрузчику;
3. и далее - в зависимости от типа и версии ОС
---
С уважением,
Андрей aka Angel07
1. Загрузка BIOS-ом в ОЗУ 0-й дорожки MBR, содержащей загрузчик
и Partition table, и передача управления загрузчику...
Правильно. Только загрузка идет не просто скопом, а определенных порций MBR по определенным адресам, и после этого процесса - передача управления записанным в той же самой MBR первым (уже не помню скольким) байтам, в которых и прописан JMP на бут-сектор (а при наличии бутового вируса или Диск-Менеджера, или Даблспейса, или прочей нестандартной хрени - на сектор, с которого начинает загружаться эта хрень. Как правило, ей хватает 62-х резервных секторов от MBR до BOOT-сектора).
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
А при использовании fdisk с ключиком /MBR восстанавливается только загрузчик MBR? Partition Table останется в сохранности???
---
С уважением,
Андрей aka Angel07
Ага.
У вас прекрасные дети ! Но все, что вы делаете РУКАМИ - никуда, никуда не годится !
Отправить комментарий