Позвольте ещё раз коснуться сути проблемы, уточнить её,
11 Сен 2006 - 20:36 Unknown BIOS
Позвольте ещё раз коснуться сути проблемы, уточнить её, внести некоторую ясность.
Буду придерживаться такого плана:
1 - как всё выглядет при использовании BCDWizard(bootcd.narod.ru).
2 - как это работает
3 - что требуется
4 - возможное решение
Итак,
1) Создаётся загрузочный образ СД-диска. В образ записывается BCDW и куча полезных образов (дискет). Создаётся специальный ini-file в котором все настройки менеджера BCDW. Далее образ пишетсяна СД-диск. Загружаемся с СД, видем менюшку со списком образов дискеток (или даже париций...загрузчиков). Выбираем нужный. Далее уже идёт загрузка с этого образа, словно это полноценная дискета, вставленная в дисковод А:. После загрузки (в случае если это был образ ДОСа и т.п.)видим, что в дисководе А: находится вставленный образ, словно дискетка, т.е. всё содержимое дискеты, с которой сделан образ, находится в А:. Запись туда запрещена. При чтении файлов идёт обращение к СД-диску. Реальному дисководу назначается B: letter. Всё!
2)Разберёмся, что собой представляет BCDW и как оно работает.
Менеджер состоит из следующего - а) таблицы кодировок (чарсеты), б) набор шрифтов, в)bcdw.ini - основные настройки путей - путь к фонту, к чарсету, к фалу с меню (инишник специальный), г)bcdw.bin - сам менеджер, д) файл с пользовательскими настройками менюшки и пр. визуальности, е) собствнно загрузочный сектор, записываемый на СД-диск - bcdwboot.bin.
а,б - нам неинтересны. в,г - должны располагаться строго в /BCDW/.
Пути к образам прописываются в инишнике с менюшкой.
Самое заслуживающее пристального внимания, это пункты г,е и формат путей, прописываемых в инишках.
Рассмотрим г,е. (далее пошли мои логические предположения)
е) - файл bcdwboot.bin (записывается на СД как бутблок). 2048 bytes. Собственно, он первым получает управление от БИОСа, ищет на СД-диске файл /bcdw/bcdw.bin и считав его в ОЗУ передаёт бразды правления. Возможно он также вешает обработчик БИОСовского прерывания, используемого для еализации служб работы с дисководом/дискетой, для последующего эмулирования.
г) - файл /bcdw/bcdw.bin. ~27 KBytes.
Это сам менеджер мультизагрузки с СД-диска.
Он считывает /BCDW/bcdw.ini и узнаёт путь к menu.ini. Считав menu.ini, Узнаёт все настройки и пути к образам. После выбора образа пользователем, осуществляет монтирование образа в А: и загрузку с последнего.
Как происходит эмуляция? Я думаю, что при обращении к перехваченным функциям БИОСа (а именно через них работает ДОС/загрузчик Винды/большинство прочего софта), на запросы чтения/записи секторов выдаются блоки из файла-образа расположенного на СД.
3) Что же требуется?
Чтобы bcdwboot.bin искал bcdw.bin не на СД, а на ActivePrimaryPartition(FAT16/32), а сам bcdw.bin работал не с СД, а с тем же ActivePrimaryPartition(FAT16/32).
1 - загрузчик BCDW заточен под CDFS, следовательно нужна возможность работы с другими ФС (FAT16/32 - достаточно).
2 - менеджер также заточен под CDFS + стандартные пути к инишкам.
значит и его придётся заставлять работать с другими ФС (FAT16/32-норма).
!! - И ещё было бы здорово, если бы монтированный образ копировался в ОЗУ и обращения на запись к дисководу А: не блокировались, а поизводились над образом в ОЗУ. Хотя, если это переделать для работы с хардом, тогда и в ОЗУ копировать не обязательно - просто при записи на А: происходила бы запись в соответствующие записываемым секторам блоки файла-образа расположенного на харде (ведь это только на СД писать-то нельзя).
4)Возможные решения
1. Брать в руки ИДА или что-то подобное и лезть внутрь
2. Писать такое же, но своё
3. Просить создателя расширить функционал
4. Искать готовое решение
5. альтернатива
1. - всё чаще склоняюсь сюда, но пока ещё надеюсь...
2. - уже возникали мысли, и они всё сильнее
3. - нет связи. мыло уже того. наверное достали его насмерть
4. - вот пока не нашёл
5. - навряд ли возможна, хотя ещё пытаюсь придумать или найти...
На этот раз сказал ВСЁ!
Уж извините за такой объём, но меньше не получилось.
Позвольте ещё раз коснуться сути проблемы, уточнить её, внести некоторую ясность.
Буду придерживаться такого плана:
1 - как всё выглядет при использовании BCDWizard(bootcd.narod.ru).
2 - как это работает
3 - что требуется
4 - возможное решение
Итак,
1) Создаётся загрузочный образ СД-диска. В образ записывается BCDW и куча полезных образов (дискет). Создаётся специальный ini-file в котором все настройки менеджера BCDW. Далее образ пишетсяна СД-диск. Загружаемся с СД, видем менюшку со списком образов дискеток (или даже париций...загрузчиков). Выбираем нужный. Далее уже идёт загрузка с этого образа, словно это полноценная дискета, вставленная в дисковод А:. После загрузки (в случае если это был образ ДОСа и т.п.)видим, что в дисководе А: находится вставленный образ, словно дискетка, т.е. всё содержимое дискеты, с которой сделан образ, находится в А:. Запись туда запрещена. При чтении файлов идёт обращение к СД-диску. Реальному дисководу назначается B: letter. Всё!
2)Разберёмся, что собой представляет BCDW и как оно работает.
Менеджер состоит из следующего - а) таблицы кодировок (чарсеты), б) набор шрифтов, в)bcdw.ini - основные настройки путей - путь к фонту, к чарсету, к фалу с меню (инишник специальный), г)bcdw.bin - сам менеджер, д) файл с пользовательскими настройками менюшки и пр. визуальности, е) собствнно загрузочный сектор, записываемый на СД-диск - bcdwboot.bin.
а,б - нам неинтересны. в,г - должны располагаться строго в /BCDW/.
Пути к образам прописываются в инишнике с менюшкой.
Самое заслуживающее пристального внимания, это пункты г,е и формат путей, прописываемых в инишках.
Рассмотрим г,е. (далее пошли мои логические предположения)
е) - файл bcdwboot.bin (записывается на СД как бутблок). 2048 bytes. Собственно, он первым получает управление от БИОСа, ищет на СД-диске файл /bcdw/bcdw.bin и считав его в ОЗУ передаёт бразды правления. Возможно он также вешает обработчик БИОСовского прерывания, используемого для еализации служб работы с дисководом/дискетой, для последующего эмулирования.
г) - файл /bcdw/bcdw.bin. ~27 KBytes.
Это сам менеджер мультизагрузки с СД-диска.
Он считывает /BCDW/bcdw.ini и узнаёт путь к menu.ini. Считав menu.ini, Узнаёт все настройки и пути к образам. После выбора образа пользователем, осуществляет монтирование образа в А: и загрузку с последнего.
Как происходит эмуляция? Я думаю, что при обращении к перехваченным функциям БИОСа (а именно через них работает ДОС/загрузчик Винды/большинство прочего софта), на запросы чтения/записи секторов выдаются блоки из файла-образа расположенного на СД.
3) Что же требуется?
Чтобы bcdwboot.bin искал bcdw.bin не на СД, а на ActivePrimaryPartition(FAT16/32), а сам bcdw.bin работал не с СД, а с тем же ActivePrimaryPartition(FAT16/32).
1 - загрузчик BCDW заточен под CDFS, следовательно нужна возможность работы с другими ФС (FAT16/32 - достаточно).
2 - менеджер также заточен под CDFS + стандартные пути к инишкам.
значит и его придётся заставлять работать с другими ФС (FAT16/32-норма).
!! - И ещё было бы здорово, если бы монтированный образ копировался в ОЗУ и обращения на запись к дисководу А: не блокировались, а поизводились над образом в ОЗУ. Хотя, если это переделать для работы с хардом, тогда и в ОЗУ копировать не обязательно - просто при записи на А: происходила бы запись в соответствующие записываемым секторам блоки файла-образа расположенного на харде (ведь это только на СД писать-то нельзя).
4)Возможные решения
1. Брать в руки ИДА или что-то подобное и лезть внутрь
2. Писать такое же, но своё
3. Просить создателя расширить функционал
4. Искать готовое решение
5. альтернатива
1. - всё чаще склоняюсь сюда, но пока ещё надеюсь...
2. - уже возникали мысли, и они всё сильнее
3. - нет связи. мыло уже того. наверное достали его насмерть
4. - вот пока не нашёл
5. - навряд ли возможна, хотя ещё пытаюсь придумать или найти...
На этот раз сказал ВСЁ!
Уж извините за такой объём, но меньше не получилось.