LINUX.ORG.RU
ФорумTalks

эмуляция cdrom\монтирование iso в uefi

 


0

2

Собственно, существует ли возможность как-нибудь грузиться с iso образов через uefi? Да, я знаю что в материнках с bmc такое есть, но хотелось иметь такое и на платах без оного. Да, драйвера uefi позволяет подгружать из шелла, и в природе есть драйвера для ext2/3/4 и ntfs, так что даже объемные образы можно подцепить. И макет ёрш эмулятор мог был быть драйвером, загружаемым из uefi shell'а

Конечно, недостаточно просто смонтировать образ и запустить с него загрузчик - надо эмулировать cdrom.
Да, я знаю что grub умеет грузить iso, но вроде бы он грузит их в память, а сие не есть гуд, оперативки может и не хватить в случае особо жирного образа.
PS: не в технический раздел, ибо с линуксом связанно косвенно

Монтировать

Да, я знаю что grub умеет грузить iso

Насколько я знаю GRUB умеет монтировать ISO, но не грузить сам образ в память целиком под видом оптического привода. Если мне надо загрузить ОС из ISO на флешке, то в grub.cfg я прописываю, что этот ISO надо смонтировать, где на нём взять linux, initrd и squashfs, с которыми потом linux будет работать. И таки загрузка будет успешной только если ОС для работы достаточно initrd и squashfs. Строго говоря не каждый LiveCD такое умеет.

Camel ★★★★★
()

Эмуляция CD-ROM или монтирование? Написать драйвер loop под efi достаточно просто.

Конечно, недостаточно просто смонтировать образ и запустить с него загрузчик - надо эмулировать cdrom.

Вот этот момент подробнее раскрой.

gadfly ★★
()
Ответ на: комментарий от gadfly

Вот этот момент подробнее раскрой.

Он хочет грузиться с произвольной iso'шки. Ваш дежурный К.О. Он не понимает, что для общего случая ему нужен полноценный гипервизор, который будет эмулировать CD/DVD-ROM. Или понимает. Но я таких гипервизоров, встроенных в загрузчик, не встречал.

atrus ★★★★★
()
Последнее исправление: atrus (всего исправлений: 1)
Ответ на: комментарий от atrus

uefi-загрузчику совершенно фиолетово CD это, хард или даже сеть, он через EFI_SIMPLE_FILE_SYSTEM_PROTOCOL (а тот поверх BLOCK_IO) должен работать.

gadfly ★★
()
Ответ на: комментарий от gadfly

uefi-загрузчику совершенно фиолетово CD это, хард или даже сеть

И?!

Ну вот считал uefi данные из начала iso, загрузил их в память и передал им управление. Что дальше? Код из iso'шки начинает работать, пытается подгрузить остальное с компакт-диска и?.. Откуда ему читать? uefi каким-то волшебным образом остаётся в памяти и эмулирует привод, читая данные из iso?

atrus ★★★★★
()
Ответ на: комментарий от atrus

uefi не передает загрузку другому загрузчику, он запускает «приложение» которое может быть чем угодно в том числе и загрузчиком ядра ОС.
/Если я вас правильно непонял

uin ★★★
()
Последнее исправление: uin (всего исправлений: 2)
Ответ на: комментарий от uin

Если я вас правильно непонял

Нет, конечно. Есть iso, снятый с компакт диска. С какого угодно. Там может быть например NT4 установочный образ, который про uefi слышать не слышал.

Периодически у народа возникают идеи в стиле «как бы мне загрузиться с iso и установить/использовать livecd».

atrus ★★★★★
()
Ответ на: комментарий от atrus

Там может быть например NT4 установочный образ, который про uefi слышать не слышал.

Для legacy есть grub4dos. UEFI тут вообще не при чем.

gadfly ★★
()
Ответ на: комментарий от gadfly

Вы по моему специально не хотите понять. Как вы для общего случая системы, грузящейся с CD, обеспечите его загрузку и работу с образа в iso, без использования средств виртуализации для эмуляции оборудования (привода CD-ROM)?

atrus ★★★★★
()

Попробуй монтирование ISO в GRUB4DOS.

CYB3R ★★★★★
()
Ответ на: Монтировать от Camel

Насколько я знаю GRUB умеет монтировать ISO, но не грузить сам образ в память целиком под видом оптического привода.

Груб умеет и так, и так.
Но другие оси надо грузить в память и по крайней мере винды так успешно инсталлировались(после копирования в память груб передавал управление загрузчика винды с образа), но только если образ в ОЗУ влезал. И ещё минус - образ долго копировать
Линукс конечно можно «напрямую» из образа загрузить. Но это неуниверсально.

Nightwing
() автор топика
Ответ на: комментарий от atrus

isostick?

Про аппаратные эмуляторы знаю, но хочется узнать, можно ли софтово провернуть. Кризис...

Nightwing
() автор топика
Ответ на: комментарий от andrewzvn

Под офтопик есть DirectGrub со всеми нужными хотелками.

Насколько я понимаю, это очередная обертка над grub4dos, однако оно не умеет uefi.
Самое подходящее что из подобных оберток находил - easy2boot, там предполагается конвертация в образ с fat32 внутри, плюс некая магия с подстановкой mbr прямо из менюшки груба. Но это не очень удобно, потенциально опасно для таблицы разделов и вообще костыль. Ну и требует, чтобы образы лежали на носителе последовательно, что требует дефрагментации.
Но по uefi грузиться позволяет.

Nightwing
() автор топика
Ответ на: комментарий от gadfly

Эмуляция CD-ROM или монтирование? Написать драйвер loop под efi достаточно просто.
Вот этот момент подробнее раскрой.

Loop драйвер даст запустить efi приложение. Например ефишный груб. Но! Ему ведь нужно ядро, initrd и все прочее содержимое fs образа. И как-то надо это дело ему скормить. Да, можно грузить ядро напрямую, но ему надо свою ФС, а она-то в образе.
Нужно её как-то «представить» ядру или загрузчику.

Nightwing
() автор топика
Ответ на: комментарий от uin

uefi не передает загрузку другому загрузчику, он запускает «приложение» которое может быть чем угодно в том числе и загрузчиком ядра ОС.

/Если я вас правильно непонял
Efi-приложению-загрузчику требуется прочее содержимое образа. Вопрос в том, как его подсунуть его этому приложению-загрузчику.

Nightwing
() автор топика
Ответ на: комментарий от Nightwing

Если вы ограничиваетесь только Linux, то надо искать решения под grub. Во всяких arch/gentoo wiki встречались. Если что-то иное, то только аппаратное или гипервизор. Xen там какой. Потому что после того, как начнёт работать система с образа она или должна понимать, что её загрузили из iso или кто-то cd-rom должен эмулировать.

atrus ★★★★★
()
Последнее исправление: atrus (всего исправлений: 1)
Ответ на: комментарий от Nightwing

I see. Груб не проблема, он тоже не сам CD дергает, а тот же BLOCK_IO использует, но у ядру уже надо initrd с поддержкой loop.

gadfly ★★
()
Ответ на: комментарий от atrus

Он хочет грузиться с произвольной iso'шки.

Не произвольной. Там должна быть ось с поддержкой uefi. Образы с классическим загрузчиком и ОС, uefi не поддерживающей уметь грузить необязательно.

Ваш дежурный К.О. Он не понимает, что для общего случая ему нужен полноценный гипервизор, который будет эмулировать CD/DVD-ROM. Или понимает. Но я таких гипервизоров, встроенных в загрузчик, не встречал.

Понимаю, что требуется некоторая магия) Но это не совсем полноценный гипервайзор. Но похоже на оный - и имя этой магии uefi runtime services. И насколько я понимаю, спеки uefi предполагают даже драйвера к железу, например к рейд-контроллеру. И оно небязательно должно быть встроено в сам уефишный биос и лежать на чипе его содержащем, оно может быть запущено из oprom'a какого-нибудь девайса(например рейде контроллера). Ну или с fat32-раздела через efi shell, в нашем случае. Да, сейчас такая схема не шибко используется, но вроде как линукс и винда как минимум умеют работать с такими драйверами.
Хотя может есть и другие способы.

Nightwing
() автор топика
Ответ на: комментарий от atrus

Увы, я не программист, тем более не системный.

Nightwing
() автор топика
Ответ на: комментарий от atrus

Хммм. И все же, easy2boot может грузить iso напрямую. Сейчас включил csm - и правда работает. Правда с чистым uefi это не работает, требуется конвертация образа и шаманство с разделами. Но все же, как оно работает без гипервизора и всяких аппаратных поддержек?

Nightwing
() автор топика
Ответ на: комментарий от Nightwing

Но все же, как оно работает без гипервизора и всяких аппаратных поддержек?

У них же написано. 100500 сценариев для разных случаев. Как правило они подкидывают в систему скрипт который подключает iso (linux, winpe) или в winxp создают виртуальный диск, куда перекачивают iso.

Оригинально и не плохо, если ваш случай покрывается этими скриптами.

atrus ★★★★★
()
Ответ на: комментарий от Nightwing

И насколько я понимаю, спеки uefi предполагают даже драйвера к железу, например к рейд-контроллеру.

Что-то я такого не припомню. Это в каком разделе спекцификации?

gadfly ★★
()

Ну, похоже это будет возможно только в фирмварях с поддержкой acpi 6.0 и с осями, поддерживающими оный

Обещал рассказать, чем поддержка NVDIMM чревата простому пользователю — и расскажу. Даже без самой NVDIMM (о плюсах которой можно почитать, например, здесь) таблица NFIT позволит прошивке отобразить любой непрерывный файл в память и сообщить ОС, что он там и что с него можно загрузиться. Это, в свою очередь, позволит UEFI загружаться не только с физических носителей, но и из ISO-образов, с виртуальных дисков, с любых блочных устройств (даже без ФС) и т.п. Фишку, скорее всего, подсмотрели у GRUB'а, который так умеет уже лет десять, но она от этого не становится менее полезной

https://m.habrahabr.ru/post/259477/

Nightwing
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.