Linux/Tipps/Gentoo/PXE: Unterschied zwischen den Versionen

Aus VivaLV
< Linux‎ | Tipps‎ | Gentoo
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
Keine Bearbeitungszusammenfassung
Zeile 13: Zeile 13:
Hier wird von folgendem ausgegangen:
Hier wird von folgendem ausgegangen:
* Server-IP = 192.168.0.7
* Server-IP = 192.168.0.7
* Server-Name = backend
* Client-IP = 192-168.0.5
* Client-IP = 192-168.0.5
* Client-Mac-Adresse: 00:1B:21:0A:FC:0C
* Client-Name = frontend
* Gateway-IP = 192.168.0.1
* Gateway-IP = 192.168.0.1
* DNS-IP = 192.168.0.1
* DNS-IP = 192.168.0.1
* Server-Verzeichnis für den Client: /pxe/frontend
* Server-NFS-Verzeichnis für den Client: /pxe/frontend
* Server-Verzeichnis für tftp: /tftpboot
* Server-Verzeichnis für tftp: /tftpboot
Ich habe das mit Gentoo und Fedora Core 5 als Server getestet. Die Vorgehensweise ist praktisch identisch, ich beschreibe hier aber Gentoo. Außerdem ist bei mir der Server alles in einem (NFS-Server, DHCP-Server, TFTP-Server).


==Installation des Servers==
==Installation des Servers==
Ich habe das mit Gentoo und Fedora Core 5 als Server getestet. Die Vorgehensweise ist praktisch identisch, ich beschreibe hier aber Gentoo. Außerdem ist bei mir der Server alles in einem (NFS-Server, DHCP-Server, TFTP-Server).
 
===NFS===
emerge nfs-utils
'''/etc/exports''':
/pxe/frontend 192.168.0.5(rw,sync,no_root_squash)
Dann:
rc-update add nfs default
/etc/init.d/nfs start


===DHCP-Server===
===DHCP-Server===
Zeile 46: Zeile 58:
  filename "pxelinux.0";
  filename "pxelinux.0";
  }
  }
Dann:
rc-update add dhcpd default
/etc/init.d/dhcpd start


===TFTP===
===TFTP===
Das ist der Teil, von dem die Netzwerkkarte initial den Loader holt.
emerge tftp-hpa
'''/etc/conf.d/in.tftpd''':
INTFTPD_PATH="/tftpboot"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"
Dann:
mkdir /tftpboot
chmod 777 /tftpboot
rc-update add in.tftpd default
/etc/init.d/in.tftpd start


===pxelinux===
===pxelinux===
Das ist der Teil, der per tftp als erstes an den Client geliefert wird. Es gibt auch noch pxegrub, aber das lief mit meinem Client-Rechner nicht.
Das ist der Teil, der per tftp als erstes an den Client geliefert wird. Es gibt auch noch pxegrub, aber das lief mit meinem Client-Rechner nicht.
 
emerge syslinux
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
mkdir /tftpboot/


==Installation des Clients==
==Installation des Clients==
Am besten installiert man den Client in einem Verzeichnis auf dem Server mit [[Linux/Tipps/Allgemein#chroot|chroot]]. Das geht natürlich unter Gentoo sehr gut mit einem [[Linux/Tipps/Gentoo/Installation#Mit_Stage3_Tarball|Stage 3 Tarball]].
Am besten installiert man den Client in einem Verzeichnis auf dem Server mit [[Linux/Tipps/Allgemein#chroot|chroot]]. Das geht natürlich unter Gentoo sehr gut mit einem [[Linux/Tipps/Gentoo/Installation#Mit_Stage3_Tarball|Stage 3 Tarball]]. Dabei wird prinzipiell normal installiert, bis auf den Bootloader.


/etc/conf.d/net
/etc/fstab
/etc/fstab
Coldplug
Coldplug

Version vom 20. Januar 2008, 22:03 Uhr

Allgemeines

Quellen: http://www.gentoo.org/doc/en/altinstall.xml#doc_chap4 + http://www.linux-sxs.org/internet_serving/pxeboot.html

Mit PXE kann man einen Rechner (Client) über das Netzwerk von einem Server booten, sodass er selbst keine Festplatte benötigt.

Voraussetzungen

  • bootfähige (PXE-fähige) Netzwerkkarte (onboard oder z.B. Intel Pro/1000 GT) im Client
  • Server mit NFS-Share
  • DHCP-Server
  • TFTP-Server

Die letzten 3 Punkte können alle der selbe Rechner sein.

Hier wird von folgendem ausgegangen:

  • Server-IP = 192.168.0.7
  • Server-Name = backend
  • Client-IP = 192-168.0.5
  • Client-Mac-Adresse: 00:1B:21:0A:FC:0C
  • Client-Name = frontend
  • Gateway-IP = 192.168.0.1
  • DNS-IP = 192.168.0.1
  • Server-NFS-Verzeichnis für den Client: /pxe/frontend
  • Server-Verzeichnis für tftp: /tftpboot

Ich habe das mit Gentoo und Fedora Core 5 als Server getestet. Die Vorgehensweise ist praktisch identisch, ich beschreibe hier aber Gentoo. Außerdem ist bei mir der Server alles in einem (NFS-Server, DHCP-Server, TFTP-Server).

Installation des Servers

NFS

emerge nfs-utils

/etc/exports:

/pxe/frontend 192.168.0.5(rw,sync,no_root_squash)

Dann:

rc-update add nfs default
/etc/init.d/nfs start

DHCP-Server

Wichtig ist, dass im Netz kein anderer DHCP-Server läuft (z.B. in einem Router).

emerge dhcp

/etc/dhcp/dhcpd.conf:

ddns-update-style none;
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.3 192.168.0.254;
default-lease-time 3600;
max-lease-time 4800;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
option subnet-mask 255.255.255.0;
option domain-name "localdomain";
allow booting;
allow bootp;
next-server 192.168.0.7;
}

host frontend {
hardware ethernet 00:1B:21:0A:FC:0C;
fixed-address 192.168.0.5;
option host-name "frontend";
filename "pxelinux.0";
}

Dann:

rc-update add dhcpd default
/etc/init.d/dhcpd start

TFTP

Das ist der Teil, von dem die Netzwerkkarte initial den Loader holt.

emerge tftp-hpa

/etc/conf.d/in.tftpd:

INTFTPD_PATH="/tftpboot"
INTFTPD_USER="nobody"
INTFTPD_OPTS="-u ${INTFTPD_USER} -l -vvvvvv -p -c -s ${INTFTPD_PATH}"

Dann:

mkdir /tftpboot
chmod 777 /tftpboot
rc-update add in.tftpd default
/etc/init.d/in.tftpd start

pxelinux

Das ist der Teil, der per tftp als erstes an den Client geliefert wird. Es gibt auch noch pxegrub, aber das lief mit meinem Client-Rechner nicht.

emerge syslinux
cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
mkdir /tftpboot/

Installation des Clients

Am besten installiert man den Client in einem Verzeichnis auf dem Server mit chroot. Das geht natürlich unter Gentoo sehr gut mit einem Stage 3 Tarball. Dabei wird prinzipiell normal installiert, bis auf den Bootloader.

/etc/conf.d/net /etc/fstab Coldplug