Здравствуйте!
Облазил наверно весь инет и на спец.форумах побывал, но нигде не нашёл информации, никто не навёл на путь истинный.
Проблема.
Имеется на свете куча полезных загрузочных дискеток. Это могут быть - установочные дискеты для ОС, тесты разные (MemTest86+,), утилиты (cia,offline,pqpm...), рекавери-утиль и пр. без чего жить трудно.
Дискеты вещь ненадёжная и тормозная, хрупкая и объёмная. Иметь с ними дело не охота.
Всем известно, что можно создать образы дискеток (*.IMA,*.IMZ,*.FLP, *.IMG...), например, WinImage'ем.
Существут также великолепная софтина BootCD Wizard, позволяющая создавать мультизагрузочные компакты, при загрузке с которых производится эмуляция FDD, и предоставляется возможность выбора любого образа (IMA,IMG...ISO) для загрузки с этого самого образа, будто бы с реальной дискеты... Т.о. отпадает необходимость использования физических дискеток!
Но вопрос вот в чём.
Эта софтина заточена под CD/DVD. А я хочу использовать подобные возможности без CD-ROM'a. Заместо CD требуется загрузка с HDD партиции, с возможностью выбора образа для загрузки с эмулированного дисковода.
Как это должно выглядеть. Загружаюсь с партиции HDD, появляется менюшка со списком образов (или лучше с возможностью ыбора из любого каталого диска C:), и выбрав образ осуществляется загрузка будто с обычной дискеты.
Сама прога BCDWizard имеет основной модуль, который выполняет эмуляцию, показывает меню и обрабатывает *.ini. Но он заточен для работы с CD. Также имеется начальный загрузчик, который пишется как бутблок на CD (2048 Bytes). Он естественно тоже заточен под CD.
Т.о. не получится записать его в виде BootRecord на партицию HDD...
Есть два пути решения задачи.
1. Дизассемблить эти модули и переделать на работу с ХДД.
2. Найти готовое решение.
Первый способ навряд ли мне под силу (времени уйдёт тьма! а я спешу). Да и нереально будет разобраться с большим модулем (~30K).
Хотя с самим загрузчиком вполне реально (2K).
Второй способ. Собственно на него я и расчитываю. Поэтому я здесь.
Принимаются любые подсказки...
ISO buster не позволяет вытащить из образа файлы?
Или в Alcogol120 загрузить.
Есть прога для образов дискет - в системе появляется несколько дисководов в котрые можно в ставить образы. Название сейчас не вспомню - поставилось с TotalCommander Podarok Edition
JAV а толку? Тут речь о том, чтобы грузить именно образы. А из memtest86+ вы нікакім образом нічего не вытащите
ex-K9
Занялся этим. Пока не нашёл.
Будем считать что через БИОС. Я предполагаю, что именно так и работает вышеупомянутый мною BCDWizard, т.к. он грузится с CD-ROM, ещё до загрузки ДОС. А имитировать или подменять обращение к портам дисковода - я уверен что это нереальный путь.
Давайте исключим эти редкие случаи из обсуждения.
Насколько я понял, Вы предложили просто альтернативный вариант Грабу. Зачем же эти заморочки, если есть Граб?
Что это такое? Не понял совсем.
Пока ещё не разобрался с Грабом, но всё же отвечу.
Каким образом Граб передаёт управление образу? Он считывает его целиком в ОЗУ и делает джамп на начало? Или он считывает только загрузочную часть образа и делает джамп?... В любом случае, рассмотрим пример с тем же мемтестом. Как идёт загрузка с флопика? Просто - загрузочный сектор 512 байт считывается БИОСом в ОЗУ по адресу 0x0000:0x7C00, далее идёт джамп туда же. Очевидно, что эти первые 512 байт образа должны прочитать оставшуюся часть из дискеты в ОЗУ и передать управление далее по цепочке. Или прочитать конкретные файлы на дискете... Как бы то ни было, загрузчик (512 байт начала образа) заточен на работу с дискетой! Либо хардом, либо СД-РОМ, либо другим носителем - зависит от конкретного образа, с какого носителя он снят. В случае МемТеста это флопик. Следовательно, если передать управление на начало образа, считанного в ОЗУ, то код, расположенный там, полезет к ФДД! Следовательно, нужно обеспечить трансляцию запросов к ФДД в запросы к образу, и не важно где этот образ - в ОЗУ или на носителе.
Так вот, не уверен что Граб и пр. вышеприведённое софтино делает эту трансляцию. Хотя непременно воспользуюсь всеми советами и не поленюсь разобраться.
Не понял, raw - альтернатива himem? raw - под какую ОС? ДОС? Чёто запутался я...
Понимаете ли, JAV, есть какие-то нестандартные образы, у них какая-то непонятная ФС, либо полное её отсутствие. Дискета может быть создана в разных ОС, разным софтом, иметь разную структуру... А образ - это полная посектарная копия дискеты, либо её части.
2)Образы то вставить можно, ноу проблем, но вот загрузить с вставленных таким образом образов (сори за каламбур) операционку, записанную на последних, не представляется возможным.
abboot как тут уже разжевали, есть два типа образов
1) Самодостаточный бинарник содержащий ядро ОС + функциональную часть, который достаточно просто загрузить в память и передать ему управление - с нулевого байта.
Примеры: ядро linux, memtest86+ построеный на основе ядра linux или memdisk о котором далее....
Грузится с помощью GRUB, при этом бинарный описывается в конфиге как ядро ОС - GRUB копирует его в память и передает управление ему.
2) Образ блочного устройства содержащий фаловую систему и загрузочный сектор.
Тут чуть сложнее - необходімо чтобы что-то эмулировало это самое блочное устройство со всеми его атрибутами - тип INT13, геометрии и т.п. Для эмуляции блочного устроства используется memdisk. Для загрузки memdisk используется GRUB.
При этом memdisk описывается как ядро операціонной системы, а интересующий нас образ блочного устройства - как initrd. Inintrd - это собственно initial ramdisk. GRUB загружает в память ядро + initrd (т.е. memdisk + образ вашей условной дискетки), далее управление передается memdisk, при этом в качестве параметров ему передается расположение initrd в памяти + стандартный cmdline в котором для memdisk могут быть переданы некоторые параметры. Получив управление, memdisk далее выполняет процедуры по эмуляции блочного устройства и передает управление загрузочному секторы образа дисктеки, после чего код BR DOS работает пребывая в полной уверенности, что загрузка происходит с чего-то стандартного.
ex-K9
Позвольте ещё раз коснуться сути проблемы, уточнить её, внести некоторую ясность.
Буду придерживаться такого плана:
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. Ну при наличи массы свободного времени это было бы возможно позновательно
2. Алтернатівный варіант велосипеда изобрели уже?
3. Это проўе всего
4. Он есть и его вам описали.
5. Простіте, чем вас не устрівает варіант с GRUB ?
Я пока не понял честно говоря чего вы так прівязалісь к BCDW - вам описали как можно на коленке при помощи grub и memdisk организовать загрузку чего угодно и откуда угодно. С менюшками, картинками, рюшечками и возможностью правки параметров перед загрузкой, если это надо. В качестве побочного эффекта - можно в командном режиме GRUB вообще грузить что угодно, а не только прописанные в конфиге образы. Поясните мне пожалуйста, что вам не понятно в моем описании ілі чем вам предложеный рецепт не нравится. Если у вас есть вопросы в духе "а можно ли сделать так" - то задавайте их. А то создается впчатление, что у вас некая религиозная привязанность к BCDW
ex-K9
2 K9
Пока я постил, Вы ответили уже, а я и не заметил! Вот только что перечитывал тему, гляжу, а Вы успели ответить ещё раз, а пост остался на 1-й странице. Но зато высказался от души я!
Уже скачал memdisk. Щас граб найду и буду изучать всё это.
Судя по всему, Вы попали в точку.
К BCDW я привязался лишь потому, что много опыта с ним имел, он предоставлял удобные возможности... вот и породнился я с ним. Конечно есть и другой подобный утиль, но с ним опыта у меня нету, поэтому пример однобокий получился.
Ладно, иду пробовать...
С уважением.
Добавлено спустя 1 день 14 часов 32 минуты:
Всё получилось!
Всё как я хотел. Даже больше перспектив и свободы. GrUB (+MemDisk) - super!
Успел попробовать несколько образов грузануть (W98, CIA Man., ...) всё пошло. Первый казус возник при попытке грузануть образ DocMem22. Лезет к FDD гад и виснит. Надо ещё разобраться, но помоему напрямую валИт...
Благодарю всех ответивших. Вы мне очень помогли.
Отдельное спасибо 2 K9 ! Не поленился разжевать.
Кстати, у grub есть забавная опция device - возможно получится обойтись без memdisk, хотя врядлі конечно, но кто его знает...
ex-K9
Порой в интернет насчёт Ammo SuperDOS - там загружается образ доса. Очень прикольно сделано я так и не понял как но работает.
superdos.borda.ru/
Дрессируем коров
Отправить комментарий