26 (edytowany przez m80 2014-02-21 21:26:55)

Odp: PXE boot na OpenWRT

Na początek pobierz plik undionly.kpxe (około 67KB) i umieść go gdzieś w pamięci flash routera albo na dysku do niego podłączonym (później ustawisz w konfigu ten katalog w którym umieściłeś undionly.kpxe jako "tftp root"). Włącz na routerze serwer tftp (instrukcja jest na forum:), w Luci ustawia się to bardzo prosto), ustaw katalog "tftp root" na ścieżkę gdzie ma być główny katalog z plikami do bootowania i wskaż plik jaki będzie wysyłany do klientów, w tym przypadku undionly.kpxe (już bez ścieżki, sama nazwa pliku). Możesz dodatkowo zrobić restart dnsmasq.

Jak zbootujesz kompa przez PXE (ustaw kolejność w biosie albo za pomocą boot menu) to załaduje się iPXE z routera. Poczekaj aż zrobi się inicjalizacja kart sieciowych, później pojawi się napis o wejściu do konsoli "Ctrl-B" - nie naciskaj jeszcze tej kombinacji, dopiero gdy pojawi się drugi raz "Ctrl-B" wtedy naciśnij. Będziesz wtedy w konsoli ipxe. Wpisz "ifstat" jeżeli pojawi informacja, że interfejs jest otwarty (po prawej stronie ekranu) wtedy możesz wydać polecenie bootowania np:

iPXE> sanboot http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso

Możesz teraz uruchamiać systemy live / systemy instalacyjne z serwerów w internecie (debian, debian/live, slitaz, ubuntu). Pamiętaj, że obraz iso musi się zmieścić cały w pamięci RAM komputera! - wyjątek to obrazy udostępniane przez AoE (wtedy jest tak, jakby kabel ethernetowy "zastępował" kabel pata/sata... całą pamięć masową zabezbieczoną raid'em masz na serwerze w lanie i jej wycinki udostępniasz stacjom klienckim, każda widzi swój wycinek jak swój dysk lokalny)

Jeżeli chcesz mieć to samo w sieci lokalnej wystarczy, że będziesz miał w lanie serwer www (na routerze albo na innym komputerze) i udostępnisz po http katalog z obrazami iso.
Do tego nada się standardowy uhttpd lub zainstaluj inny serwer www jaki ci odpowiada.
Wtedy bootujesz obrazy następująco:

iPXE> sanboot http:/192.168.1.1/boot/images/linux.iso

Żeby nie wklepywać za każdym razem poleceń w konsoli ipxe, stosuje się skrypty (ciąg poleceń jak byś je wpisywał ręcznie). Skrypt można dołączyć przy kompilacji undionly.kpxe, jako initrd, jako plik w obrazie ipxe.iso. Tutaj i tutaj jest opis jak używać skryptów.

Pozdrawiam
Michał

27

Odp: PXE boot na OpenWRT

Spróbuję jutro się za to zabrać.

Jednak męczy mnie jeszcze jedno zasadnicze pytanie:

czy w ten sposób po zabotowaniu np "czystego"  Netbooka po PXE do Routera

pokaże mi się do wyboru lista systemów do instalacji bez wpisywania czegokolwiek?

28

Odp: PXE boot na OpenWRT

W moim przypadku obrazy mam na dysku usb podłączonym do routera.

Jeżeli w Gargulcu jest zainstalowany uhttpd, to czy ścieżki dostępu mam ustawić
w pliku /etc/config/uhttpd.cfg i obrazy systemów będą widziane w lokalnym lanie
po zabotowaniupo PXE ? ( Tak na marginesie faktycznie w LUCI wygląda to bardzo prosto) , ale przyzwyczaiłem się już do Gargoulca wink

Pozdrawiam

29 (edytowany przez m80 2014-02-22 20:22:30)

Odp: PXE boot na OpenWRT

Nie sprawdzałem tego czy iPXE może korzystać z portów innych niż 80.
Masz dwie możliwości: albo zmienić port interfejsu www Gargoyle'a na inny niż 80 (np:8080) albo dodać alias oryginalnego adresu routera, pod którym będą udostępniane pliki z katalogu na dysku.

Jeżeli Twój router ma adres 192.168.1.1 to dodanie aliasu (192.168.1.2) będzie wyglądało tak:

uci add network alias
uci set network.@alias[-1].interface=lan
uci set network.@alias[-1].proto=static
uci set network.@alias[-1].ipaddr=192.168.1.2
uci set network.@alias[-1].netmask=255.255.255.0
uci commit network
/etc/init.d/network restart  

Odpalasz nową instancję serwera www na porcie 81, która serwuje pliki z katalogu /mnt/hdd/iso:

httpd_gargoyle -p 81 -d /mnt/hdd/iso

Żeby serwer uruchamiał się przy każdym starcie routera dodaj powyższą linijkę do /etc/rc.local (przed exit 0):

Tworzysz przekierowanie z 192.168.1.2:80 na 192.168.1.1:81

uci add firewall redirect
uci set firewall.@redirect[-1].name=isoserv
uci set firewall.@redirect[-1].target=DNAT
uci set firewall.@redirect[-1].proto=tcp
uci set firewall.@redirect[-1].src=lan
uci set firewall.@redirect[-1].src_dip=192.168.1.2
uci set firewall.@redirect[-1].src_dport=80
uci set firewall.@redirect[-1].dest=lan
uci set firewall.@redirect[-1].dest_ip=192.168.1.1
uci set firewall.@redirect[-1].dest_port=81
uci commit firewall
/etc/init.d/firewall restart

Teraz w masz dostęp do katalogu /mnt/hdd/iso pod adresem http://192.168.1.2 i takiego adresu używasz przy bootowaniu obrazów z ipxe (np: http://192.168.1.2/debian.iso).

Co do menu to można je zrobić na kilka sposobów. Wybór sposobu zależy od tego czy karta z której chcesz bootować kompa jest obsługiwana natywnie przez ipxe czy trzeba korzystać z interfejsu undi/pxe. Do stworzenia menu można wykorzystać samo ipxe, syslinuxa albo grub4dos....
Na tej stronie masz pokazane jak wygląda przykładowe menu.

30

Odp: PXE boot na OpenWRT

Natknąłem się na coś takiego http://www.fogproject.org/. Ciekawe czy na Gargoylu da radę to odpalić?

Zyxel EX5601-T0 @ OpenWrt 24.10-SNAPSHOT 571dcd
TP-Link TL-WDR3600 v1 @ OpenWrt 23.05-SNAPSHOT r23893-08becaf62f
Netgear R6220 @ OpenWrt 24.10-SNAPSHOT r28432-7609571dcd
Zyxel NAS326

31

Odp: PXE boot na OpenWRT

Zainstalowałem na Debianie, działa. Na pewno nie odpalisz zbyt łatwo, bo to chce kompilować sobie jakieś pakiety(były kłopoty na debianie nawet), myślę że jak ktoś ma bardzo dużo czasu, na kompilacje co trzeba to da rad odpalić.
Teraz chce to po-testować ale nie mogę sie w tym odnaleźć. Nie wiem czy nie trzeba pozmieniać czegoś w serwerze DHCP żeby bootował z innego urządzenia a nie z serwera DHCP ma routerze.

RB760iGS + RB260GS / Ryzen 5 2660 / 16G DDR4 / MiniITX - Inea 1G (https://i.imgur.com/TLbJVDw.png)
RB951-2HnD / Celeron J1900 / 4G DDR3 / MiniITX - Satpol 100M

32

Odp: PXE boot na OpenWRT

Na próbę przsiedłem się na Openwrt z LUCI, żeby się przekonać jak działa tfpt i na kliencie po zabotowaniu z karty lan Ctrl+b (za drugim razem) oraz wydaniu komendy: ifstat mam informację closed. Robiłem "restart dnsmasq"

33

Odp: PXE boot na OpenWRT

Jaki plik serwujesz przez tftp? undionly.kpxe?

Wpisz w konsoli ipxe "config" i zobacz czy karta dostała adres, maskę, dns i bramę

34

Odp: PXE boot na OpenWRT

Tak. undionly.kpxe

I otrzymuję wszystko co trzeba :adres, maskę,  bramę i status closed

35

Odp: PXE boot na OpenWRT

to spróbuj:

ifopen net0
sanboot http://serwer/jakis-obraz.iso

36 (edytowany przez enrike4 2014-02-25 21:19:09)

Odp: PXE boot na OpenWRT

Niestety nic. Dostaję adres z serwera dhcp , łącze się i tyle

Ustawienia w LUCI:

Katalog Root`a dla plików udostępnianych przez TFTP : /mnt/sdb2/Systemy iso/Win/

Sieciowy obraz startowy :  undionly.kpxe

Oczywiście składnia "sanboot http://serwer/jakis-obraz.iso" wg moich ścieżek.

Odpalam na 2 różnych komputerach

37 (edytowany przez m80 2014-02-26 09:41:44)

Odp: PXE boot na OpenWRT

Niestety nic. Dostaję adres z serwera dhcp , łącze się i tyle

Jakiś error wyskakuje jak próbujesz sanboot? np: "Permission denied" ?

Skompilowałem nowszą wersję, może ruszy. Jaki masz bios na tej maszynce? EFI czy tradycyjny?

Wpisz "iwstat" i zobacz czy wyświetla się jakiś interfejs wifi, bo może być tak, że załadujesz ipxe z routera po ethernecie a ipxe wykryje dodatkowo kartę bezprzewodową, jak nie ustawisz ssid i hasła to interfejs będzie zamknięty.

38

Odp: PXE boot na OpenWRT

Nie pokazują się takie błędy. np: "Permission denied" , udało mi się w końcu połączyć.

Ale po wywołaniu "chain http://boot.org/demo/boot.php' mam "Connection Time out"

A po próbie dostania się do plików iso. na swoim dysku na routerze otrzymuję komunikat

świadczący chyba o błędach składni , ale nie wydaje mi się . Katalog z plikami iso jest taki jak w poście 41.

39

Odp: PXE boot na OpenWRT

Może ta spacja w "Systemy iso" Przeszkadza? Dałeś całość w nawias? Pokombinuj z tą spacją, np zastąp ją kładką (folder też)

40

Odp: PXE boot na OpenWRT

Zmieniłem katalog i ścieżki . Faktycznie po usunięciu spacji w nazwie katalogu niema informacji o błędzie składni , ale mam cały czas komunikat Connection time out.

41

Odp: PXE boot na OpenWRT

Polecenie "iwstat" pokazuje jakieś interfejsy?

42

Odp: PXE boot na OpenWRT

iwstat  - commant not fount

43 (edytowany przez m80 2014-02-27 11:26:06)

Odp: PXE boot na OpenWRT

Czyli nie wykrył żadnych kart wifi, ok.
wpisz:

ifstat

i podaj wartości przy RX i RXE.

następnie wpisz:

route

co wyświetla?

Jak zbootujesz ipxe to czy dochodzą pingi do tej maszynki np: z routera albo innego kompa w sieci?

44 (edytowany przez enrike4 2014-02-27 12:29:00)

Odp: PXE boot na OpenWRT

route
net0 192.168.1.217/255.255.255.0 gw 192.168.1.1 (inaccessible)

ping 192.168.1.1 command not fount  (więc nie działa)

pingi z innych maszyn w sieci też nie dochodza.

Link  wszystkie RX TX....... =0

Ciekawe,że przy starcie po pokazaniu się ctrl-b  na końcu pojawia się open, a potem po

naciśnięciu ctrl-b i wydaniu komendy ifstat jest closed

45

Odp: PXE boot na OpenWRT

To wejdź do konsoli przy pierwszym Ctrl+B i wpisz:

ifstat
dhcp
route
ifstat

46

Odp: PXE boot na OpenWRT

ifstat: net0 mac karty using undionly on UNDI-PCI00:19.0(closed)
          Link up Tx i reszta same zera
dhcp: net0 mac karty .............ok
route: net0 192.168.1.217/255.255.255.0 gw 192.168.1.1

ifstat: nat0 mac karty using undionly on UNDI-PCI00:19.0(open)
          [Link:up TX:3 TXE:0 RX:5 RXE:2]
          [RXE:2x "The socketis not conected(http://ipxe.org/380f6001"]

kolejne komendy ifstat,generują  na końcu open

47

Odp: PXE boot na OpenWRT

A jak z wydajnością takiego rozwiązania? Spróbował ktoś instalować z tego windowsa? Zakładając że ma się 4GB ram lub mniej.

48 (edytowany przez m80 2014-02-27 20:35:41)

Odp: PXE boot na OpenWRT

@enrike4
no to jak masz open to spróbuj coś uruchomić:

chain http://boot.ipxe.org/demo/boot.php

albo

sanboot http://mirror.slitaz.org/iso/4.0/slitaz-4.0.iso

@Skajper4
W dużym skrócie bootowanie obrazu z sieci lub z dysku odbywa się przez wgranie go do ramdysku spreparowanego przez loader (memdisk z opcją iso lub w przypadku grub4dos'a polecenie map z opcją --mem) a następnie uruchomienie z niego systemu. Problem w tym, że załadowany system musi umieć wykryć obecność takiego ramdysku bo inaczej nie będzie wiedział jak ma się dostać do reszty swoich plików. Większość dystrybucji linuxa jest świadoma tego faktu - wykrywa ramdysk poprawnie i ładowanie systemu przebiega bez przeszkód. Z Windowsem jest ten problem, że on tego nie umie, dlatego stosuje się specjalne sterowniki (WinVBlock lub Firadisk), które potrafią wykryć taki ramdysk i przekazać go Windowsowi jako widzialny dla niego dysk. Przed bootowaniem obrazu iso, podmontowuje się obraz dyskietki ze sterownikiem trybu tekstowego (WinVBlock lub Firadisk), później bootuje się iso Windowsa. Uruchamia się instalator Windowsa, który automatycznie wykrywa obecność dyskietki ze sterownikiem i ładuje go do pamięci. Sterownik wykrywa ramdysk przez co staje się on widoczny dla instalatora. Można tak np zainstalować Windows do pliku VHD lub z iso znajdującego się na serwerze. Możliwe jest także zintegrowanie sterownika z systemem wtedy nie potrzebujemy już obrazu dyskietki.

49

Odp: PXE boot na OpenWRT

m80

Oczywiście próbowałem, bezskutecznie z dwóch kompów .

50

Odp: PXE boot na OpenWRT

Gorzej z takim obrazem 7-ki lub ubuntu który waży 4,7GB i więcej smile Słabo.. Czyli nie nada się to do mojego zastosowania..