Назад | Перейти на главную страницу

Как выполнить сценарий bash через загрузку pxe

Может ли кто-нибудь сказать мне, как выполнять сценарии bash через загрузку pxe. Что я пытаюсь сделать, это когда загружается Raw Server, я хочу развернуть клонированный образ на жестком диске с помощью загрузки PXE. Я знаю, что есть такие инструменты, как Fog, которые делают то же самое. Но я пытаюсь сделать это с помощью dd в рамках университетского проекта. Приветствуется любая помощь.

Редактировать:

I followed following procedure.
1. Copied vmlinuz and initrd to tftp directory
2. Unpacked initrd (Using https://www.novell.com/documentation/zenworks7/dm7admin/data/b2cdjzb.html)

3. Added following lines in init script

echo "Deploying image of an ESXi Hypervisor"
echo "Downloading image"
wget http://192.168.1.250/backup/esxi -O /bin/esxi
echo "Deploying image"
sudo dd if=~/bin/esxi of=/dev/rdisk2 bs=1m
echo "Process Complete"

4. Repacked initrd

5. Added both files initrd and vmlinuz under boot folder /tftpboot/boot

6. Added following lines in pxe default file

label VMware ESXi (Last Backup 1)
        KERNEL boot/vmlinuz
        APPEND initrd=boot/initrd 
But it still gives error "mountinng /sys on /root/sys failed"

Что мне здесь не хватает?

Вот пошаговое руководство по созданию собственного загрузочного живого компакт-диска, который теоретически можно было бы собрать, чтобы делать все, что захотите.

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

http://ubuntuforums.org/showthread.php?t=688872

Затем вы просто загружаете этот iso с сервера pxe.

https://help.ubuntu.com/community/PXEInstallServer

Я указал ubuntu в качестве операционной системы только потому, что она очень хорошо документирована.

Удачи!

Получите ядро ​​и initrd.gz из любого дистрибутива с поддержкой PXE, например Ubuntu. Каждый initrd имеет init скрипт, который обычно загружает сетевые драйверы, отображает диски и т. д. и т. д. и т. д. и т. д. вы вполне можете создать дополнительное переопределение initrd init добавление вашего кода. Когда вы загружаете свой клиент с помощью pxeboot, например, pxelinux, вы можете загружать оба initrd, разделенные запятыми последовательно. Содержимое второго initrd перезапишет содержимое исходного. Этот метод имеет несколько преимуществ: вам не нужно трогать исходный initrd. Собрать вторичный initrd легко / быстро, потому что это очень маленький файл и т. Д. И т. Д.

РЕДАКТИРОВАТЬ:

init обычно представляет собой сложный сценарий, вызывающий несколько модулей. Как я уже сказал ранее, он загружает сетевые драйверы, отображает диски и т. Д. И т. Д. Для PXE-загрузки вашего набора kernel / initrd вам обязательно нужно будет передать дополнительные параметры в append линия; пожалуйста, посмотри как Serva PXE-загрузка / установка нескольких дистрибутивов Linux (нужные параметры можно взять оттуда). Учтите, что initrd может в конечном итоге отобразить определенное меню установки или что-то подобное; вы должны следовать коду инициализации и вставлять «свой» код прямо перед тем, как это произойдет. Эта задача требует хорошего знания Bash и Linux в целом. Пожалуйста, не ожидайте 5-минутной работы.