Объедините squashFS и initrd в один файл (загрузка PXE)

1396
sebastian nielsen

У меня есть initrd и cloop (squashFS). Какой самый простой способ - объединить эти 2 файла в один файл initrd с целью PXE-загрузки всего образа сразу без какого-либо процесса начальной загрузки?

Конечно, это будет живая система Linux, поэтому она ДОЛЖНА быть доступна только для чтения. Ограничения по размеру не имеют значения, так как целевая система имеет много оперативной памяти и сеть, по которой она будет загружаться, очень быстрая.

0

1 ответ на вопрос

0
Pat

What you are trying to do is not a good approach; it will force a surely too big TFTP transfer.

It is better if you mod the initrd in order to turn on the SAMBA/NFS client or even using wget for an HTTP transfer that will bring at boot time your squashfs file.

You can see how this approach is used by Serva (I'm related to Serva development) when PXE booting/installing most of the live distros available today.

http://vercot.com/~serva/an/NonWindowsPXE3.html

you do not need to assembly a completely new initrd just create a complementary one adding the missing components (if any) and the correspondingly updated init script.

Я понимаю, что это сделает большую передачу TFTP, но я предпочел бы это вместо двухэтапного процесса. Причина в том, что в цикле есть процесс аутентификации, прежде чем PXE отключается. Можно аутентифицировать образ TFTP, чтобы его могли получить только авторизованные компьютеры или пользователи, но невозможно передать детали аутентификации в HTTP-запрос без значительных изменений сервера TFTP или загрузки одного изображения на пользователя и компьютер. Таким образом, я хочу сделать все за один шаг. sebastian nielsen 10 лет назад 0
Если передача TFTP становится большой (> ~ 800Mb) в зависимости от состояния вашей сети, у вас будут проблемы. Неважно, что вы можете сделать все за один шаг аутентификации, если передача TFTP часто прерывается. Доверьтесь мне; Ваш дизайн с точки зрения PXE не очень хорош. Pat 10 лет назад 0
Это не 800 МБ. Это меньшее изображение, как 200-300 МБ. sebastian nielsen 10 лет назад 0
затем вы сделаете «ОК», просто создадите дополнительный initrd, содержащий файл squashfs, и последовательно загрузите его после основного initrd в строке «append» (посмотрите, как это делает Serva). Pat 10 лет назад 0
Тогда PXE-клиент также не пройдет аутентификацию на втором шаге. Если вы посмотрите на DSL, у них есть initrd, который содержит ВСЕ, необходимое для запуска всей системы, включая рабочий стол, в одном файле. (dsl-4.4.10-initrd.iso), где вся файловая система находится внутри initrd с именем minirt24. sebastian nielsen 10 лет назад 0
нет второго шага; только 2 TFTP передает 2 initrd. если вам не нравится подход 2 initrd, переходите к 1 initrd. Получайте удовольствие, изменяя сценарий инициализации. Ваша система аутентификации - беспорядок; то, что вы пытаетесь сделать, это беспорядок. Pat 10 лет назад 0
iPXE (http://ipxe.org) - это NPB с поддержкой http, больше не требующий медленной передачи tftp, кроме начальной загрузки ipxe. NiKiZe 9 лет назад 0
iPXE не является стандартным, он сильно глючит и имеет только частичную поддержку UEFI; не очень хороший вариант. Pat 9 лет назад 0