Загрузка с флэхи произвольного ISO

Автор Barvinok, 29 Июня 2009, 22:56:25

0 Пользователей и 1 Гость просматривают эту тему.

Barvinok

Постановка задачи:
Есть набор из нескольких загрузочных дисков. Хочется сделать из них iso-образы и грузиться с флэхи.
При этом хотелось бы что бы ассортимент этих образов можно было бы произвольно менять/добавлять без необходимости перепрограммирования контроллера и прочих сложностей.

Давайте поразмышляем на заданную тему.
Сформулирую грабли и постулаты:
1. Нам в любом случае придётся перепрограммировать контроллер в mode 21 (2 раздела: стандартный накопитель (чтение/запись) и CD раздел (чтение)). Причина сформулирована автором загрузчика syslinux Питером Энвином (Peter Anvin): "эмуляция будет работать только до тех пор, пока операционная система обращается к виртуальному диску посредством BIOS. После загрузки операционной системой собственных драйверов весьма вероятно, что виртуальный диск перестанет быть доступным. И пока нет средств изменить это поведение".
Т.е. если мы будем эмулировать виртуальный CD-ROM программно - он будет видится ровно до тех пор, пока винда не возмёт управление на себя. После чего увидит, что на самом деле CD-ROM'a нет и опечалится без меры...
Значит CD-ROM должен быть.
2. Другой вопрос - как произвольно менять его содержимое?
Никак.
Содержимое раздела, отводимого под виртуальный CD-ROM записывается на шаге 2 при программировании контроллера и мы должны с этим смириться.

Таким образом существует только один путь, который нам необходимо проверить до конца:
позволяет ли спецификация CDFS делать некое подобие simlink (прозрачной ссылки) на образ, расположенный на втором разделе флэхи?
А уж имена этих образов мы можем менять произвольно, так что загружаться всегда будем с какого нибудь boot.iso

novo

bcdw 2.0 некоторые iso загружает. Если сделать маленький CD-раздел с bcdw, в главном ini которого ссылка на другой ini лежащий на fat-разделе флэшки (какая буква тока будет?) ну и iso-образы там же?

Barvinok

Цитата: novo от 29 Июня 2009, 23:24:30
bcdw 2.0 некоторые iso загружает. Если сделать маленький CD-раздел с bcdw, в главном ini которого ссылка на другой ini лежащий на fat-разделе флэшки (какая буква тока будет?) ну и iso-образы там же?
Непойдёт.
BCDW - это некий менеджер загрузки.
Т.е. первоначально то мы установку винды запустим, но вот когда винда возмёт управление на себя, она обратится к CD-ROM'у и увидит там файлы BCDW.
А надо, что бы при совершенно произвольном обращении (без запуска какой то определённой програмной оболочки) видилось содержимое ISO-образа.
Всё дожно быть сделано на уровне системных запросов.
Ядро операционной системы (в оперативной памяти) обращается (запрос read) посредством драйвера к компакт-диску, находящемуся в приводе. Драйвер (ATAPI) призводит чтение файлов с файловой системы. Вот в этот момент и должна производиться переадресация. Что то навроде софт- или хард-линка в Линуксовых ФС.
Если на "Шаге 2" на флэху копируется именно ISO-образ, а не его содержимое, то вполне можно попробовать перелинковать...

gryu

Коллеги, а если пойти по реализации следующего пути.
Не флешку перешить, а картридер.
Перешить что бы он читался биосом как USB CD-Rom.
... а?
Тогда устройство CD-Rom, а что воткнёшь то содержимое этого CD-rom и будет....
::)