Загрузите iso-файл через uEFI вызывая исполняемый файл EFI внутри iso

Эквивалентный Telnet является rlogin, королями и rsh

безопасная альтернатива является SSH

5
26.07.2015, 04:13
3 ответа

Это не будет работать для всех ISO, но вы можете использовать MEMDISK из syslinux, чтобы скопировать ISO в память как образ RAMDISK . Вызовы BIOS будут видеть RAMDISK, и Linux тоже распознает RAMDISK. Для этого вам нужно будет скопировать syslinux.efi и связанные файлы куда-нибудь в системный раздел EFI (ESP), например EFI / syslinux . Затем в /EFI/syslinux/syslinux.cfg создайте набор опций памяти memdisk для ваших файлов ISO, как показано в примерах на странице MEMDISK .

1
27.01.2020, 20:42

Да и нет. Вы можете загрузиться в предзагрузочную среду ( grub , iPXE и ​​т.д.) , но это действительно только усложнит ситуацию. На большинстве живых дисков нет файлов, о которых вы говорите - не совсем так. То, что делают большинство изогибридных дисков, похоже на то, что описано в другом ответе здесь - они монтируют файл образа, в котором реальные исполняемые файлы находятся на устройстве цикла на RAM-диске, а затем вызывают это ядро. Предполагается, что суть всего этого усложнения заключается в совместимости с системами BIOS. Если вас это не касается, вам, вероятно, лучше просто вытащить несколько файлов из каждого iso и загрузиться напрямую. В системе EFI - потому что в этом случае прошивка является вашим загрузчиком.

Итак, вам нужен USB-накопитель в формате FAT. Вы можете смонтировать рассматриваемые isos, найти их файл корневого образа x86 .sfs , найти их initramfs и ядро ​​ (вам, вероятно, понадобится цикл монтирования другого образа внутри iso mount) - вот и все. Ядро linux является исполняемым файлом EFI - вам не нужен загрузчик, потому что прошивка может запускать ваше ядро. И первая корневая файловая система ядра монтируется из образа initramfs. Далее идет архив .sfs. Вот как это работает.

Здесь довольно расплывчато, но есть довольно подробное пошаговое руководство, как сделать то же самое с установочным носителем Arch Linux здесь .

(процесс очень мало отличается в зависимости от дистрибутива в целом)

1
27.01.2020, 20:42

Когда вы загружаетесь непосредственно с ISO-образа, после загрузки ядра Linux ему необходимо будет получить squashfs из ISO-образа. Для этого ядро ​​Linux и скрипты должны будут смонтировать ISO как петлевое устройство. Для этого ему необходимо знать путь и имя файла ISO. Полный путь обычно указывается в параметрах ядра, например. iso-scan/filename=/images/ubuntux64.iso

Некоторые ISO-образы Ubuntu содержат файл /boot/grub/loopback.cfg, и они предполагают, что переменная grub2 уже была предустановлена ​​с помощью полный путь к файлу ISO.

Таким образом, с этими файлами ISO у нас есть общий способ заставить их загружаться — просто установите переменную grub2 с полным путем к файлу ISO и запустите файл loopback.cfg.

Таким образом, можно иметь файл grub2.cfg, в котором перечислены все файлы ISO в папке /images и который позволяет пользователю выбрать один из них и загрузиться с него. . Единственная проблема заключается в том, что они должны содержать файл /boot/grub/loopback.cfg, а очень немногие ISO-образы, отличные от Ubuntu, содержат!

Если бы только больше разработчиков дистрибутивов включали файл loopback.cfg в свои ISO-образы, то то, что вы хотите, было бы возможно!

http://www.rmprepusb.com/tutorials/136_uefi_ubuntu может помочь. Также http://rmprepusb.blogspot.co.uk/2017/02/make-generic-grub2-boot-menu-using.html

1
27.01.2020, 20:42

Теги

Похожие вопросы