PXEBootInstall

instalacji przy użyciu sieciowego rozruchu nie należy mylić z DebianNetworkInstall. W instalacji sieciowej, zaczynasz od płyty CD (lub pamięci flash USB lub podobnej), aby zainstalować minimalny system Linux, zanim przejdziesz do pobierania kolejnych pakietów przez sieć.

instalacja przy użyciu rozruchu sieciowego różni się również od korzystania z sieci do rozruchu już zainstalowanego systemu: w takim przypadku maszyna kliencka pozostaje zależna od tego, czy serwer jest uruchomiony przy każdym przyszłym rozruchu. Na przykład Linux Terminal Server Project (LTSP) działa w ten sposób.

ta strona opisuje instalację nowego systemu Debian bez CD, DVD, USB w ogóle. Pod koniec procesu instalacji nowa maszyna jest w stanie działać bez wsparcia serwera. Podczas instalacji będziesz potrzebować sieciowego serwera rozruchowego.

ponieważ w dziczy nie ma serwerów startowych fiducial, musisz skonfigurować swój własny. Jest to znacznie bardziej skomplikowane niż instalacja Debiana z CD (skrót od CD lub USB lub …). Zwykle rozruch sieci jest używany tylko wtedy, gdy naprawdę nie ma sposobu na rozruch z płyty CD. Jeśli rozruch z płyty CD nie powiedzie się, może to być spowodowane problemami z BIOS-em, które w równym stopniu uniemożliwiają rozruch sieciowy (typowe próby rozwiązywania problemów obejmują wyłączenie bezpiecznego rozruchu, przełączenie z UEFI do starszego trybu rozruchu i podobne).

w Internecie można znaleźć kilka artykułów, które opisują mniej lub bardziej szczegółowo, jak skonfigurować serwer rozruchowy sieci. Wszyscy mają tę samą słabość: wymagane jest wykonanie długiej listy instrukcji bez uzyskiwania żadnych informacji zwrotnych przed samym końcem procedury podczas próby rozruchu. Jeśli to zadziała, w porządku. Jeśli nie, debugowanie stanie się bardzo trudne. Dlatego w poniższym rozdziale podzielimy procedurę na kroki, które można debugować osobno.

http://www.debian.org/releases/stable/amd64/ch04s05 – Przewodnik instalacji Debiana – 4.5. Przygotowanie plików do TFTP Net Booting

Uwaga: Jeśli Twój system obsługuje iPXE, to użyj netboot.xyz prawdopodobnie będzie znacznie prostszy.

komputer, na którym chcesz zainstalować, zostanie nazwany klientem.

komputer, z którego instalujesz, będzie nazywany serwerem. Zakładamy, że na serwerze działa Debian.

mówiąc dokładniej, Zakładamy, że klient i serwer są częścią sieci LAN o następujących adresach IP:

wartość X poznasz później.

zauważ, że wiele routerów zapewnia również serwer DHCP: będziesz musiał go wyłączyć, ponieważ tylko jeden serwer DHCP może działać w danej sieci LAN. Chyba że można skonfigurować serwer DHCP routera tak, aby był zgodny z poniższą konfiguracją serwera DHCP ISC, ale nie jest to objęte zakresem niniejszego dokumentu.

możliwe jest również, że router i serwer to ta sama maszyna, tzn. że serwer Debiana jest domyślną bramą dla tej sieci LAN. To zadziała.

poniższe instrukcje zostały przetestowane z Debianem 8.2 (Jessie) we wrześniu 2015 roku.

Aktywuj PXE boot

Skonfiguruj menu startowe BIOS klienta, aby uruchomić go z sieci.

restart. W większości systemów generuje to dane wyjściowe zawierające adres MAC klienta. Następnie zakończy się niepowodzeniem z

 PXE-E53: no boot filename received.

zwróć uwagę na adres MAC; będzie to pomocne w interpretacji komunikatów dziennika.

na wielu serwerach możliwe jest również tymczasowe przełączenie na PXE boot bez trwałej zmiany ustawień BIOS-u. Będzie jakieś naciśnięcie klawisza podczas postu BIOS-u. Na serwerach Dell, F12 zrobi sztuczkę (lub Esc następnie @ z konsoli szeregowej lub IPMI).

Skonfiguruj serwer DHCP

na serwerze musimy skonfigurować serwer DHCP.

obecnie najlepszą praktyką wydaje się używanie pakietu isc-dhcp-server, który dostarcza demona dhcpd.

jego plik konfiguracyjny to/etc/dhcp / dhcpd.conf. Dostosuj adresy IP i MAC do swoich lokalnych potrzeb:

po każdej modyfikacji powyższego, uruchom ponownie serwer DHCP z

 # /etc/init.d/isc-dhcp-server restart

lub z odpowiednikiem systemd

 # systemctl restart isc-dhcp-server

sprawdź, czy faktycznie działa:

 # pgrep -lf dhcpd 32277 /usr/sbin/dhcpd -q

lub

 # systemctl status isc-dhcp-server

co daje nieco więcej informacji.

przed ponownym uruchomieniem klienta możesz uruchomić

 # journalctl -fu isc-dhcp-server

, który pokazuje kilka ostatnich linii dziennika serwera DHCP, a następnie aktualizuje ekran z każdym nowym wpisem dziennika. (Jeśli nie chcesz „śledzić” dziennika, po prostu pomiń „f”)

 PXE-E32: TFTP open timeout

i jednocześnie zobaczysz komunikaty dziennika na ekranie serwera pokazujące żądania DHCP i oferty podobne do wyjścia poniżej alternatywne polecenie poniżej

Jeśli wolisz nie używać systemd lub chcesz porównać tradycyjne wyjście dziennika do celów diagnostycznych, możesz wyszukać /var/log/syslog, na przykład za pomocą tego polecenia. polecenie

 # grep DHCP /var/log/syslog
  • gdzie powinieneś zobaczyć coś takiego:

(zauważ, że wcześniejsze wydania Debiana używały /var/log/daemon.log zamiast syslog)

Jeśli w logu nie pojawia się żadne polecenie, Sprawdź połączenia sieciowe pomiędzy serwerem a klientem. Zauważ, że niektóre przełączniki sieciowe mogą nakładać poważne ograniczenia na ruch DHCP; w przypadku przełączników Cisco użyj”portfast”, jeśli to możliwe (patrz http://www.cisco.com/en/US/products/hw/switches/ps708/products_tech_note09186a00800b1500.shtml).

Skonfiguruj serwer TFTP

następnie musimy skonfigurować serwer TFTP na serwerze.

ponownie, Istnieje kilka pakietów, które zapewniają TFTP (trivial FTP, unsafe, do użycia tylko w sieciach LAN). Najlepszą praktyką wydaje się używanie pakietu tftpd-hpa. Podczas instalacji zadawane jest kilka pytań. Odpowiedź na te pytania znajduje się w pliku konfiguracyjnym /etc/default/tftpd-hpa. Nie powinno być potrzeby modyfikowania następującej domyślnej zawartości:

 TFTP_USERNAME="tftp" TFTP_DIRECTORY="/srv/tftp" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure"

Ignoruj starsze strony internetowe, które instruują Cię, aby wstawić coś w stylu 'RUN_DAEMON=”Yes”’.

Po każdej modyfikacji powyższego pliku konfiguracyjnego uruchom ponownie serwer TFTP za pomocą

 # /etc/init.d/tftpd-hpa restart

lub

 # systemctl restart tftpd-hpa

w Jessie zostanie automatycznie utworzony katalog /srv/TFTP. Oznacza to, że kolejne dwa kroki nie są konieczne, jeśli używasz Jessie.

początkowo, w wersjach Pre-Jessie, ponowne uruchomienie serwera TFTP może się nie udać z Komunikatem takim jak

 Restarting HPA's tftpd: in.tftpd/srv/tftp missing, aborting.

dlatego, jako root, utwórz katalog/srv / TFTP. Uruchom ponownie demona TFTP. Sprawdź, czy faktycznie działa:

 # pgrep -lf tftpd 12555 /usr/sbin/in.tftpd

lub

 # systemctl status tftpd-hpa

Co ponownie daje kilka wierszy dziennika, a nie tylko fakt, że zadanie jest (nie jest) uruchomione.

przydatne jest przetestowanie serwera TFTP z klientem TFTP; możesz po prostu użyć do tego celu pakietu tftp-hpa:

 # cd /tmp # uname -a >/srv/tftp/test # tftp 192.168.0.2 tftp> get test tftp> quit # diff test /srv/tftp/test (nothing, they are identical)

przydatne jest również sprawdzenie, jakie wpisy logów otrzymujesz, gdy pobierasz plik, który istnieje, a gdy próbujesz pobrać plik, który nie istnieje. Podczas korzystania z tftp do testowania serwera tftpd, spróbuj śledzić swoje eksperymenty ze starymi i nowymi formami polecenia log podczas korzystania z klienta TFTP do pobierania plików, które istnieją, jak również plików, które nie istnieją.

tradycyjne polecenie na Jessie

 # tail -f /var/log/syslog

(zauważ, że wcześniejsze wydania Debiana używały/var/log / daemon.log zamiast syslog.)

On systemd

 # journalctl -fu tftpd-hpa

Niestety, wydaje się, że wyniki te dają różne wyniki, począwszy od stycznia 2017. Polecenie systemd nie wyświetla żądań plików dla plików, które nie istnieją.

warto wiedzieć, o co prosi klient, ponieważ pomaga to przenieść pliki do oczekiwanej lokalizacji, jeśli później popełnisz błędy. Obecnie prawdopodobnie warto skorzystać z tradycyjnego sposobu śledzenia logów dla TFTPD.

Uruchom ponownie Klienta. Powinieneś zobaczyć komunikaty o błędach na ekranie klienta, zaczynając od

 PXE-T01: File not found

, co jest całkiem poprawne, ponieważ nie udostępniliśmy jeszcze żadnych plików. Na ekranie serwera zobaczysz dokładnie, o co poprosił klient.

podaj obraz rozruchowy

Pobierz netboot/netboot.smoła.gz z serwera lustrzanego Debiana (patrz http://www.debian.org/distrib/netinst#netboot).

opcjonalne: aby zweryfikować podpis cyfrowy, wpisz następujące polecenia:

Rozpakuj netboot.smoła.gz do / srv/tftp, który powinien teraz zawierać

 debian-installer/ pxelinux.0@ pxelinux.cfg@ version.info

może być konieczne chmod-R A+R*, aby wszystkie pliki w tym katalogu były czytelne dla demona TFTP.

Możesz również edytować grub/grub.cfg w celu ustawienia konsoli szeregowej, w razie potrzeby (wymieniłem sekcję o terminalu graficznym):

serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1terminal_input console serialterminal_output console serial

jak również konsola szeregowa Dla debian-Installera, dołączając to do wiersza poleceń jądra:

console=ttyS1,115200n8r console=tty1

Uruchom ponownie demona TFTP i ponownie możesz śledzić wpisy dziennika tak, jak się pojawiają

 # tail -f /var/log/syslog

następnie uruchom ponownie klienta. Powinieneś przejść do ekranu instalacji Debiana.

Jeśli zajrzysz do /var/log/syslog, zobaczysz, co zostało pobrane z serwera TFTP przez bootloader PXE, a następnie przez SYSLINUX. Możesz również zobaczyć kilka odpowiedzi „NAK”, gdy SYSLINUX zapyta o pliki, które nie istnieją (próbuje kilka lokalizacji dla niektórych ważnych plików).

PXE loader (firmware w BIOSie lub kontroler sieciowy klienta) próbuje załadować w następującej kolejności:

  • pxelinux.0 (lub dokładniej, to, co kazałeś mu pobrać w polu 'filename’ odpowiedzi DHCP)

następnie SYSLINUX/PXELINUX spróbuje przeszukać jego konfigurację w różnych ścieżkach, od najbardziej specyficznych do najmniej:

  • pxelinux.cfg / GUID
  • pxelinux.cfg / MAC
  • pxelinux.cfg / default

i jeśli menu konfiguracyjne zależy od innych elementów konfiguracji, są one również pobierane. Debian będzie potrzebował przynajmniej ’ bootmenu.txt ’ plik, który jest głównym menu.

domyślnie pojawi się ekran graficznego menu Start instalacji Debiana. Naciśnij „enter”, aby rozpocząć instalację. Bądź cierpliwy: może minąć minuta, zanim pojawi się następny ekran („Wybierz język”).

alternatywny sposób uzyskania obrazu rozruchowego

Jeśli masz system Debian tego samego Wydania, które chcesz zainstalować, możesz zainstalować obraz rozruchowy za pomocą apt.

teraz skieruj serwer tftp na /usr/lib/debian-installer/images/$VERSION/$ARCH/$INTERFACE gdzie INTERFACE=text dla instalatora trybu tekstowego lub INTERFACE=GTK dla instalatora graficznego. Prostym sposobem na osiągnięcie tego celu jest przekształcenie /srv/TFTP w dowiązanie symboliczne.

inny sposób – użyj Dnsmasq

dnsmasq to lekki, łatwy w konfiguracji spedytor DNS i serwer DHCP z funkcją BOOTP/TFTP/PXE. Oznacza to, że możesz zastąpić isc-dhcp-server i tftpd-hpa Dnsmasq.

Poniżej znajduje się/etc / dnsmasq.conf zapewnia taką samą funkcjonalność jak opisana powyżej metoda instalacji i konfiguracji isc-dhcpd-server oraz tftpd-hpa.

Pobierz netboot.smoła.gz i rozpakować go w / srv / tftp jak w poprzednim opisie.

potencjalne problemy

jeśli jądro w obrazie netboot zostanie zsynchronizowane z pakietami modułów jądra, Moduły nie zostaną załadowane i instalacja nie powiedzie się, zwykle objawy są takie, że komunikaty o „brakujących symbolach” pojawiają się w konsoli ctrl-alt-F4.

aby to naprawić, zaktualizuj jądro i initrd na serwerze netboot.

prawdopodobnie jest otwarty problem z Debian BTS, ale nie mogę go teraz znaleźć.

Zobacz także

  • http://www.debian.org/releases/stable/amd64/ch04s05 – Przewodnik instalacji Debiana – 4.5. Przygotowanie plików do TFTP Net Booting

  • di-netboot-assistant automatyzuje większość kroków opisanych powyżej: DebianInstaller/NetbootAssistant

  • Instalator Lenny w netboot.smoła.gz domyślnie nie obsługuje instalacji przy użyciu konsoli szeregowej. Więcej informacji na ten temat oraz łatkę umożliwiającą dostęp do konsoli szeregowej można znaleźć w 309223.

  • https://networkboot.org/

Dodaj komentarz

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