Автор: Unknown BIOS (не проверено) , 3 октября 2005
Есть старенький ноут (AST 486SX/25-4mb) с помирающим "родным" винтом на 160 метров.
На замену ему удалось найти ST91685A на 1.6 гб.
Ну и разумееется BIOS ноута его не видит. Причем в силу своей "брендовости" не дает забить прарметры винта вручную или выставить на "меньший" обьем. ( с тем чтобы заюзать что то вроде DiskManager) (
Но машинка, не найдя винта, тем не менее пытается грузанутсься с дискетки.

Так вот. Есть ли такая разновидность дисковых менеджеров, которая пишет свою резидетную часть на дискетку и позволяет "подхватить" неопределившийся винт? Или что то вроде досовского "драйвера винчестера", который заставит работать этот винт уже после загрузки ДОСа?

Если ничего такого нет, то придется смотреть на древние *NIXы. Ядро, пусканувшись с дискеты, винт думаю подхватит. Но хочется старый ДОСовский софт/игры на этой машинке погонять... А эмуляция на ней ДОСа из под никсов - жестокое дело...
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

geodimetr

20 лет 4 месяца назад

Все гораздо хуже.

Поскольку автоопределение винта намертво забито в Биос, в этом пункте обмануть машинку мы не можем. Беда в том, что эти брэнды могли понимать винчестеры объемом не больше 512 МВ. То есть, никакого ЛБА вообще. Это подразумевает геометрию вида: 1024 цилиндра, 16 голов, 63 сектора по максимуму... и финиш. Большего числа битиков ни для чилиндеров, ни для голов, ни для секторов не отведено. И значит, геометрию большего винта машинка не определит: переполнение по одному из параметров.

Далее. Загрузка IBM-совместимой машинки происходит так (© Питер Нортон):

- опрашиваем устройства.
- если есть винчестер, считываем его PARTITION TABLE (!) по определенному фиксированному адресу. После этого и до следующей перезагрузки данный адрес залочен наглухо и для всех. Не зря даже последние Partition Magics требуют насильственной перезагрузки компа при выходе из программы.

Наша же дурдочка винчестера не видит. До загрузки системы еще - как до Солнца. Потому как еще Биос-процедуры не все отработали. А этот заветный адресок (как только не увидели винчестера) уже залочен. А любое обращение к винчестеру под любой ОС начинается с опроса этого заветного адреска: стоит там флаг наличия винчестера или нет. Ежели флаг стоит - плевать, что в PARTITION TABLE абракадабра - переписать можно. А вот ежели нет там того флага... никакими силами мы этот винчестер не увидим.

Так что, увы - никакие *NIX-ы не помогут. Единственное решение (не считая СУПЕР-экзотических, типа ручками подправить фирмварю винчестера или Биос ноута) - искать винт объемом ДО 500 мегабайт.

savely

20 лет 4 месяца назад

To geodimetr: Нортона оччень давно не читал, зато смею думать, что отлично знаю процедуру участия BIOS в загрузке ОС. После слова "далее" - расходится с моими убеждениями :wink: До этого слова - согласен. Хорошо еще, что не виснет.

Мысль про *nix с дискеты считаю вполне здравой. Единственное - у загружаемого никса должна все же быть в ядре поддержка веников. У многих "дискетных линукс-роутеров" ее нет.

Sergei_S

20 лет 4 месяца назад

Небольшой отчет. В результате гугления удалось найти програмулину Sevilija
http://web.ssmu.ru/er/zip/sevilija.zip
которая все же является своеобразным "драйвером винчестера". Работает(опционально, но что и требовалось) напрямую с IDE контроллером и позволяет "подключать" разделы с винта)
Что имеем:
+ Программы, работающие через функции ДОС с диском благополучно работают
+ Удалось запустить BasicLinux (ядро и корневая ФС в loopе лежат на FATе, "примонтированном" про помощи этой проги). Ядро стартануло через loadlin а дальше уже само стало рулить контроллером)
+ Windows 3.11 запустилась, но долго ругалась на "необнаруженный винчестер" и откзывалась положить своп на винт(
Оказалось что диск по умолчанию прогой подключаем как сьемный) Сделал его "обычным" ( /с ) и своп разместился) Правда временный и при 16разрядном методе доступа к диску ( драйвера 32битного режима лоступа - а пробовал разные - винт не разглядели? видимо доверяя БИОСу). Но работает)

Вроде сносное решение)

Angel07

20 лет 4 месяца назад


- если есть винчестер, считываем его PARTITION TABLE (!) по определенному фиксированному адресу. После этого и до следующей перезагрузки данный адрес залочен наглухо и для всех.

Что залочивается - адрес в ОЗУ, куда загружена MBR, или 0-я дорожка HDD?

geodimetr

20 лет 4 месяца назад

Адрес, естественно ! Поэтому можно, конечно, логические диски подключить отдельно, как некие устройства без MBR, но полноценного видения винчестера как загрузочного устройства не будет. Нулевую дорожку лочат некоторые антивирусы, в том числе и встроенные в Биос - но это уже совсем другая история.

Angel07

20 лет 4 месяца назад

Правильно ли я понимаю процесс загрузки с HDD:

1. Загрузка BIOS-ом в ОЗУ 0-й дорожки MBR, содержащей загрузчик
и Partition table, и передача управления загрузчику.

2. Чтение загрузчиком MBR таблицы разделов, определение активного раздела и загрузка 2-го загрузчика (аналогичного загрузчику на 0-й дорожке гибкого диска) с "0-й дорожки" раздела (первая "дорожка" логического диска), и передача управления этому загрузчику;

3. и далее - в зависимости от типа и версии ОС :-)

geodimetr

20 лет 4 месяца назад

Правильно ли я понимаю процесс загрузки с HDD:

1. Загрузка BIOS-ом в ОЗУ 0-й дорожки MBR, содержащей загрузчик
и Partition table, и передача управления загрузчику...


Правильно. Только загрузка идет не просто скопом, а определенных порций MBR по определенным адресам, и после этого процесса - передача управления записанным в той же самой MBR первым (уже не помню скольким) байтам, в которых и прописан JMP на бут-сектор (а при наличии бутового вируса или Диск-Менеджера, или Даблспейса, или прочей нестандартной хрени - на сектор, с которого начинает загружаться эта хрень. Как правило, ей хватает 62-х резервных секторов от MBR до BOOT-сектора).

Angel07

20 лет 4 месяца назад

А при использовании fdisk с ключиком /MBR восстанавливается только загрузчик MBR? Partition Table останется в сохранности???

geodimetr

20 лет 4 месяца назад

Ага.