gPXE boot na OpenWRT 12


Zaciekawiony wątkiem na forum eko.one.pl  w którym było opisane jak uruchomić PXE na openwrt postanowiłem uruchomić taką usługę w swojej sieci ponieważ często korzystam z różnych narzędzi na uszkodzonych np. wirusami komputerach 🙂

pxe1

Na obrazku powyżej można zaobserwować screen działającego już menu uruchomionego poprzez sieć. U mnie openwrt jest na routerze Linksys WRT160NL z exrootem na pendrive 4 GB.

A teraz do rzeczy, po pierwsze potrzebujemy pliki:

tftpboot.zip

Wewnątrz tego archiwum znajdują się wszystkie niezbędne nam do uruchomienia usługi pliki wraz z kilkoma podstawowymi narzędziami.

Teraz logujemy się poprzez ssh (np putty) do naszego routera i edytujemy plik /etc/dnsmasq.conf:

# nano /etc/dnsmasq.conf

i na jego końcu wklejamy poniższe linijki kodu:

enable-tftp
tftp-root=/tftpboot
dhcp-boot=gpxelinux.0,192.168.1.1

W moim wypadku kiedy używam exroota na moim routerze (opis exroota na openwrt), mam wystarczajaco dużo wolnego miejsca w pamięci wiec nie muszę używać dodatkowych nośników usb i wszystkie pliki znajdują się po prostu w katalogu /tftpboot. Jeśli nie używasz exroota a wolisz mieć podłączona dodatkową pamięć to w pliku dnsmasq.conf zmień wartość tftp-root z /tftpboot na np. /mnt/pendrive. Gdzie /mnt/pendrive to ścieżka pod jaką masz zamontowany swój nośnik danych, a adres 192.168.1.1 to adres naszego routera na którym działa usługa dhcp.

Pobrane archiwum rozpakowujemy i wrzucamy jego zawartość bezpośrednio do tego katalogu w który skonfigurowaliśmy w pliku dnsmasq.conf.

Następnie uruchamiamy ponownie usługę poleceniem:

# /etc/init.d/dnsmasq reload

Gratulacje 🙂

Podstawowe programy które są w tym archiwum już działają.

A teraz przejdźmy do konfiguracji dodatkowych tych które również są na liście w naszym menu:

– Hiren’s Boot CD 15.2 należy pobrać z zewnętrznego serwer (dowolnego), zmienić nazwę pliku iso na hirensbootcd15_2.iso i wkleić go do przygotowanego już katalogu hirensbootcd

Niektóre pliki należy umieścić na serwerze www, może być ten zawarty w openwrt jeśli mamy na tyle miejsca. Ja wrzuciłem te pliki na swój osobny serwer www który znajduje się w mojej sieci lokalnej pod adresem 192.168.1.2 a pliki jakie tam wrzuciłem możecie obejrzeć oraz pobrać pod adresem http://sloniupl.eu/pxe/ 

Należy pamiętać o zmianie w pliku konfiguracyjnym który znajduje się w podkatalogu pxelinux.cfg a nazwa pliku konfiguracyjnego to default.

– Arch linux – wpis menu wygląda następująco

LABEL ArchLinux x86_64
    MENU LABEL ArchLinux x86_64
    KERNEL http://192.168.1.2/pxe/archlinux/x86_64/vmlinuz
    INITRD http://192.168.1.2/pxe/archlinux/x86_64/archiso.img
    APPEND ip=dhcp archiso_http_srv=http://192.168.1.2/pxe/ archisobasedir=archlinux/ checksum=y
TEXT HELP
  * ArchLinux 64 bitowy
ENDTEXT

Należy w nim zmienić adres 192.168.1.2 na adres ip swojego serwera www oraz upewnić się czy ścieżki do plików są prawidłowe. Ja korzystałem z tego poradnika:

http://ebalaskas.gr/blog/2013/02/25/add-archlinux-to-your-pxe-server/

– Clonezilla – tu również należy zmienić adres ip serwera www oraz na serwer wgrać plik filesystem.squashfs, wpis menu w pliku default wygląda następująco:

label Clonezilla-live
MENU LABEL Clonezilla Live (Ramdisk)
KERNEL clonezilla/vmlinuz
APPEND initrd=clonezilla/initrd.img boot=live config noswap nolocales edd=on nomodeset ocs_live_run="ocs-live-general" ocs_live_extra_param="" keyboard-layouts="" ocs_live_batch="no" locales="" vga=788 nosplash noprompt fetch=http://192.168.1.2/pxe/clonezilla/filesystem.squashfs
TEXT HELP
  * Clonezilla to narzedzie do klonowania partycji oraz dyskow,
  * na inne dyski badz do obrazow.
ENDTEXT

– Gparted – podobnie jak clonezilla posiada swój plik filesystem.squashfs na serwerze www, a wpis w menu wygląda następująco:

label GParted Live
  # MENU HIDE
  MENU LABEL GParted Live
  # MENU PASSWD
  kernel /gparted/vmlinuz
  append initrd=/gparted/initrd.img boot=live config  noswap noprompt  nosplash i915.blacklist=yes radeonhd.blacklist=yes nouveau.blacklist=yes vmwgfx.blacklist=yes fetch=http://192.168.1.2/pxe/gparted/filesystem.squashfs
  TEXT HELP
  * GParted live version: 0.16.1-1-i686-pae.
  * Disclaimer: GParted live comes with ABSOLUTELY NO WARRANTY
  ENDTEXT

Posiadając odpowiednio dużą ilość miejsca na tftp oraz na serwerze www możemy wrzucić wiele więcej przydatnych narzędzi lub po prostu instalek systemów abyśmy nie musieli instalować kolejny raz z płyty lub pendrive.

 

Linkografia:

http://eko.one.pl/forum/viewtopic.php?id=2931

http://ebalaskas.gr/blog/2013/02/25/add-archlinux-to-your-pxe-server/

https://www.bytebang.at/Blog/TFTP+boot+with+OpenWRT+and+a+Synology+NAS+as+storage


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

12 komentarzy do “gPXE boot na OpenWRT

  • Marcin

    witam
    próbowałem dodać na własne potrzeby ubuntu i windowsy ale bez powodzenia.
    mógłbyś kolego rozszerzyć tutorial o te właśnie pozycje?

    dzięki z góry

  • Mścisław

    Cześć.
    Skorzystałem z Twojego opisu, postawiłem na routerze OpenWRT z exrootem, skonfigurowałem PXE, serwer www w sieci lokalnej na który wrzuciłem obrazy iso i mam pewien problem. PXE się bootuje, po wybraniu obrazu (przykładowo DOS 6.22) następuje ładowanie pliku img które kończy się restartem komputera. Dotychczas wyczytałem iż prawdopodobnie występuje problem ze sterownikami karty sieciowej – brakuje ich w ładowanym obrazie. Zastanawiam się jak to ugryźć, proszę o pomoc 😉

    • sloniupl Autor wpisu

      A jaki obraz iso próbujesz odpalić? Może dodaj jakiś nowy obraz debiana aby miał aktualne w miarę jądro i sprawdź wtedy. Masz nowy komputer czy raczej już kilkuletni?

      • Mścisław

        Cześć. Próbuję to odpalić na różnych urządzeniach, między innymi na laptopie Lenovo G510. Gparted, hiren’s boot, mini-dos – zawsze po załadowaniu obrazu następuje reset komputera.

  • Vlad

    Hello

    I don’t speek Polish, sorry.

    I’ve setup pxelinux.0 in my TP-LINK ac1750 on OpenWRT 15.05.

    The option pxelinux.0 is working with no issue.

    However, I’ve failed to force gpxelinux.0 to work. With the gpxelinux option the system is starting to boot and hangs not being able to go to the 'menu’ stage.

    I’m using Syslinux 6.03 version.

  • sloniupl Autor wpisu

    z1mEk dnsmasq.cnf sproboj skonfigurowac na routerze ktory jest serverem DHCP. Pobieranie adresu ip zalezy od konfiguracji sieci.

  • z1mEk

    Witam,

    Mam dwa routery. Na jednym (192.168.1.1) jest brama do internetu i DHCP, natomiast drugi (192.168.1.2) jest mostem wds.
    W routerze 2 podłączony dysk USB i tam umieszczone pliki z archiwum tftpboot. Plik dnsmasq.conf wyedytowałem na routerze 2 i można pobrać plik z tftp 192.168.1.2.

    –code–
    enable-tftp
    tftp-root=/nfs/dysk/tftpboot
    dhcp-boot=gpxelinux.0,192.168.1.2
    ——–

    Co zrobiłem źle, że komputer podczas bootowania z sieci zwraca informację, że nie znalazł bootowalnego pliku? Także pobieranie adresu dhcp trwa dosyć długo (około 30 sec).

  • z1mEk

    Witam,

    Mam dwa routery. Na jednym (192.168.1.1) jest brama do internetu i DHCP, natomiast drugi (192.168.1.2) jest mostem wds.
    W routerze 2 podłączony dysk USB i tam umieszczone pliki z archiwum tftpboot. Plik dnsmasq.conf wyedytowałem na routerze 2 i można pobrać plik z tftp 192.168.1.2.

    Co zrobiłem źle, że komputer podczas bootowania z sieci zwraca informację, że nie znalazł bootowalnego pliku? Także pobieranie adresu dhcp trwa dosyć długo (około 30 sec).

  • Bieniu

    Witam. Ciekawy poradnik. A co jesli chciałbym by serwerem tftp była inna maszyna w sieci lokalnej niż router? Mam serwer Synology i on ma możliwość uruchomienia tftp. Wystarczy do dnsmasq.conf dodać:
    dhcp-boot=gpxelinux.0,ip_serwera_nas