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 🙂
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:
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
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
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 😉
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?
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.
Sorry,
I’ve found a solution.
http://www.syslinux.org/wiki/index.php?title=PXELINUX
lpxelinux.0 is needed to be used not gpxelinux.0
Great that you were able to find the solution.
Thanks for sharing it 🙂
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.
z1mEk dnsmasq.cnf sproboj skonfigurowac na routerze ktory jest serverem DHCP. Pobieranie adresu ip zalezy od konfiguracji sieci.
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).
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).
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
Tak mi się wydaje tylko pamiętaj ze wtedy tam musisz mieć gpxelinux.0 i inne pliki.