Создание загрузочного флэш-накопителя USB из загрузочных файлов PXE
Огляделся и погуглил, но не смог найти похожий вопрос. Кажется, что большинство людей хотят взять загрузочный флэш-накопитель USB и преобразовать его в загрузочный образ PXE. На самом деле мне нужно пойти в противоположном направлении, то есть создать загрузочный флеш-накопитель USB из загрузочных файлов PXE.
У меня есть PXE-сервер, используемый для создания образа диска. Некоторые устройства в моей сети не могут загрузить PXE, потому что 1) PXE уже используется кем-то еще в их подсети или 2) их сетевой адаптер не поддерживает PXE. Мой единственный вариант - захватить все файлы, которые используются для загрузки устройства PXE, и попытаться создать загрузочный флэш-накопитель USB.
У меня есть доступ к серверу PXE, который использует PXELinux. Вот что находится в файле "по умолчанию", используемом PXELinux.
default imaging
prompt 0
noescape 1
label imaging
kernel kernel/bzImage
append initrd=kernel/init.gz root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=10.10.10.5 storage=10.10.10.211:/imaging/images/ driversstorage=10.10.10.211:/imaging/drivers/ imaging_server=10.10.10.211:20444 symmetric_key=KsqRwghBK+l/LGQ83kOp3Gl8Xos9mrTItQ69MJabgAv5DqcKakVCwNpE4QJ+A9zzDoSAhdREIVK4lkUZP67XXg loglevel=4a
Я в основном парень из Windows/Mac, но могу обойтись в Linux, и мне удобно работать с командной строкой в терминале. Я почти ничего не знаю ни о процессе загрузки Linux, ни о том, как создать загрузочный флэш-накопитель USB. Из приведенного выше файла конфигурации PXELinux я понял, что файлы bzImage и init.gz необходимы для загрузки клиентского устройства PXE. Есть ли способ использовать эти 2 файла и информацию из конфигурации PXELinux для создания загрузочного USB-накопителя?
Спасибо
1 ответ
Вы не можете легко сделать это; даже если вам удастся создать загрузочный USB-диск, загружающий ядро и initrd, для параметров initrd все равно потребуются сетевые ресурсы. из вашего примера
append initrd=kernel/init.gz root=/dev/ram0 rw ramdisk_size=127000 ip=dhcp dns=10.10.10.5 storage=10.10.10.211:/imaging/images/ driversstorage=10.10.10.211:/imaging/drivers/ imaging_server=10.10.10.211:20444 symmetric_key=KsqRwghBK+l/LGQ83kOp3Gl8Xos9mrTItQ69MJabgAv5DqcKakVCwNpE4QJ+A9zzDoSAhdREIVK4lkUZP67XXg loglevel=4a
init.gz
принимает в качестве параметра ip=dhcp
сообщая руководителю загрузки, чтобы он получил свой IP по DHCP, затем он загружается storage=10.10.10.211:/imaging/images/
сообщить руководителю загрузки, что остальные компоненты загрузки / установки хранятся в сети и т. д. и т. д.
Как видите, попытка сделать то, что вы хотите, требует редактирования вашего initrd
параметры (зависит от дистрибутива) и удаление всех сетевых ссылок; не тривиальная задача, которая может быть выполнена только с помощью консервированной утилиты.