You are not logged in.

Dear visitor, welcome to VDR Portal. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Monday, October 31st 2005, 4:23pm

[HOWTO] VDR Client via Netz per NFS booten (Neu: mit debootstrap Installation)

Da ich meinen VDR gerade auf diskless umgestellt habe (das vdr System bootet jetzt
komplett per Netzwerkkarte via TFTP und NFS vom Fileserver - Root over NFS), hier mal
ein kleines HOWTO, wie ich vorgegangen bin.

Update 2007-01-27: Anmerkungen -> c. Client per debootstrap installieren

Dazu passend:

[HOWTO] Debian Etch mit VDR von e-tobi installieren (Schritt für Schritt)

[HOWTO] VDR NFS Client auf Debian 5.0 lenny mit debootstrap Installation

Update 2006-10-22: Anmerkungen -> b. Wake on Lan (WoL) mit reboot OBSOLET!

Update 2006-02-22: Anmerkungen -> b. Wake on Lan (WoL) mit reboot - nvram-wakeup


Update 2006-01-30: Anmerkungen -> a. Kernel-Update

Ich habe:
¹ User mit älterer Hardware, bei denen das PXE booten Probleme macht, werfen bitte
auch einen Blick in dieses Posting ff.

Die folgenden Befehle sind grundsätzlich als User root auszuführen.


CLIENT

Im Kernel (ich nutze linux-2.6.20) des vdr Systems müssen folgende Optionen aktiviert sein:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-> Networking
 -> Networking support (NET [=y])
  -> Networking options
   -> TCP/IP networking (INET [=y])   
    -> IP: kernel level autoconfiguration (CONFIG_IP_PNP=y)
    -> IP: DHCP support (CONFIG_IP_PNP_DHCP=y)

-> File systems
 -> Network File Systems
  -> NFS file system support (CONFIG_NFS_FS=y)
   -> Root file system on NFS (CONFIG_ROOT_NFS=y)

-> Device Drivers
 -> Network device support
  -> Network device support (NETDEVICES [=y])
   -> Ethernet (1000 Mbit)
     -> E1000 [=y]


Netzwerkkartentreiber an die eigene Karte anpassen!
Zusätzlich baue ich z.B. auch ext2(3) fest in den Kernel ein, da ich initrd nicht mag. ;)
Das System muß mit dem neuen Kernel wie gewohnt laufen, bevor man fortfährt.


SERVER

Auf dem Server (Debian sarge) sind folgende Dienste zu installieren (von mir genutze Version):
  • NFS-Kernel-Server (1.0.6-3.1)
  • DHCP-Server (V3.0.1)
  • TFTP-Server (tftpd-hpa 0.40)
  • Datei pxelinux.0 (z.B. aus dem syslinux Paket)

Aktuelle Linux-Distributionen sollten alles als fertige Pakete liefern. Derzeit nutze ich:

Source code

1
2
server:/# cat /etc/debian_version
3.1


Auf dem Fileserver (hier 172.17.42.4) erstellt man ein Verzeichnis für das vdr System:

Source code

1
server:/# mkdir -p /netboot/nfsroot/client
Statt client kann man einen beliebigen anderen Namen für das Verzeichnis festlegen.
Dies muß aber bei den anderen Konfigurationsdateien berücksichtigt werden.

Ein weiterer Vorteil ist, daß man nun relativ einfach ein komplettes Backup des vdr
Systems erstellen kann, indem man (z.B. mit tar, cp, ...) Das Verzeichnis
/netboot/nfsroot/client auf dem Server sichert.

Jetzt erfolgt die Freigabe des Verzeichnisses /netboot/nfsroot/client für den vdr Client
(hier 172.17.42.3) per NFS:

Source code

1
2
3
server:/# cat /etc/exports
#
/netboot/nfsroot/client         172.17.42.3/255.255.255.0(rw,no_root_squash,no_all_squash,sync)
nfsd HUPen oder restarten:

Source code

1
server:# /etc/init.d/nfs-kernel-server reload

Der tftpd wird per inetd gestartet:

Source code

1
2
server:/# grep ^tftp /etc/inetd.conf
tftp            dgram   udp     wait    root    /usr/sbin/tcpd  /usr/sbin/in.tftpd -v -v -s /var/lib/tftpboot/


CLIENT

Um die Daten vom Client zum Server zu kopieren, mountet man das freigegebene
Verzeichnis auf dem Client:

Source code

1
2
client:/# mkdir /mnt/server
client:/# mount 172.17.42.4:/netboot/nfsroot/client /mnt/server

Jetzt werden folgende Verzeichnisse (nach Bedarf) generiert:
  • initrd
  • media
  • mnt
  • proc
  • sys

Source code

1
2
client:/# cd /mnt/server
client:/# mkdir initrd media mnt proc sys

Für das Kopieren der restlichen Verzeichnisse nutzt man z.B. mc oder einfach cp (-a):

Source code

1
client:/# cp -a /bin /boot /dev /etc /home /lib /opt /root /sbin /srv /tmp /usr /var /mnt/server
Wer den Kopiervorgang verfolgen möchte, tippt cp -av ...

Jetzt muß noch die fstab den neuen Gegebenheiten angepaßt werden:

Source code

1
2
3
4
5
6
client:/# cat /mnt/server/etc/fstab
# /etc/fstab: static file system information.
#
/dev/loop/0      none            swap    sw,noauto              0       0
server:/netboot/nfsroot/client / nfs  defaults,hard,intr,rsize=65536,wsize=65536 0 0
server:/video /video          nfs     auto,rw,nosuid,hard,intr,rsize=65536,wsize=65536 0 0
Vorgehenswesie zur swap Einrichtung siehe weiter unten.


SERVER

Auszug aus der /etc/dhcp3/dhcpd.conf des Servers:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
subnet 172.17.42.0 netmask 255.255.255.0 {
        option routers                  172.17.42.42;
        option subnet-mask              255.255.255.0;
        option domain-name              "domain.tld";
        option domain-name-servers      172.17.42.4;
        option time-offset              1;
        option ntp-servers              172.17.42.4;
        option netbios-name-servers     172.17.42.4;
        range dynamic-bootp 172.17.42.43 172.17.42.254;
        default-lease-time 21600;
        max-lease-time 43200;
}
...
host client.domain.tld {
        # Intel 1GBit
        hardware ethernet 00:0E:xx:xx:xx:xx;
        fixed-address 172.17.42.3;
        # ggf. die nächste Zeile entkommentieren!
        next-server 172.17.42.4;
        filename "pxelinux.0";
}

dhcpd HUPen oder restarten:

Source code

1
server:/# /etc/init.d/dhcp3-server restart

In das root Verzeichnis des tftpd gehören folgende Dateien:

Source code

1
2
3
4
5
6
7
8
9
10
server:/# ls -la /var/lib/tftpboot/*
-rw-r--r--  1 root root   11826 Okt 31 15:15 /var/lib/tftpboot/pxelinux.0
-rw-r--r--  1 root root 1407711 Okt 31 11:56 /var/lib/tftpboot/vmlinuz-2.6.15-client

/var/lib/tftpboot/pxelinux.cfg:
insgesamt 20
drwxr-xr-x  2 root root 4096 Okt 31 12:36 ./
drwxr-xr-x  3 root root 4096 Okt 31 15:13 ../
-rw-r--r--  1 root root  332 Okt 31 12:36 AC112A03
-rw-r--r--  1 root root  127 Okt 31 11:25 default

vmlinuz-2.6.15-client ist eine Kopie von /netboot/nfsroot/client/boot/vmlinuz-2.6.15

AC112A03 ist die hexadezimale Schreibweise für 172.17.42.3 (s. a. dhcpd.conf):

Source code

1
2
3
4
5
6
server:/# cat /var/lib/tftpboot/pxelinux.cfg/AC112A03
# client 172.17.42.3
LABEL linux
                KERNEL vmlinuz-2.6.15-client
                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client
                IPAPPEND 1
Alternativ kann man statt der IP auch die MAC-Adresse in der Form
"01-00-0e-xx-xx-xx-xx" (wichtig ist das anfängliche 01-) als Dateinamen angeben.

In dem Thread Langsames NFS bei Diskless-Client gibt stl den Tip, darauf zu achten,
daß der Client explizit mit NFSv3 und nicht v2 arbeitet. Dieses läßt sich dadurch erreichen,
daß dem obigen Parameter nfsroot die Option v3 mitgegeben wird (s.a. /usr/src/linux/Documentation/nfsroot.txt).

Source code

1
2
3
                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client,v3
# ggf.
#                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client,v3,rsize=32768,wsize=32768
Überprüfen kann man die NFS Version mit dem Befehl "nfsstat -m".
Der Performancegewinn ist erheblich:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
zaphod:~# nfsstat -m
/ from /dev/root
 Flags: rw,vers=2,rsize=4096,wsize=4096,hard,nolock,proto=udp,timeo=11,retrans=2,sec=sys,addr=172.17.42.1

/dev/.static/dev from /dev/root
 Flags: rw,vers=2,rsize=4096,wsize=4096,hard,nolock,proto=udp,timeo=11,retrans=2,sec=sys,addr=172.17.42.1

zaphod:~# dd if=/dev/zero of=/zeros.out bs=256k count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
268435456 Bytes (268 MB) kopiert, 132,852 Sekunden, 2,0 MB/s

zaphod:~# nfsstat -m
/ from /dev/root
 Flags: rw,vers=3,rsize=4096,wsize=4096,hard,nolock,proto=udp,timeo=11,retrans=2,sec=sys,addr=172.17.42.1

/dev/.static/dev from /dev/root
 Flags: rw,vers=3,rsize=4096,wsize=4096,hard,nolock,proto=udp,timeo=11,retrans=2,sec=sys,addr=172.17.42.1

zaphod:~# dd if=/dev/zero of=/zeros.out bs=256k count=1024
1024+0 Datensätze ein
1024+0 Datensätze aus
268435456 Bytes (268 MB) kopiert, 12,6867 Sekunden, 21,2 MB/s

Jetzt den vdr Rechner herunterfahren und die Festplatte abklemmen. Dann booten und
Daumen drücken. ;)


CLIENT

Ich nutze auch Swap über NFS:

Source code

1
client:/# dd if=/dev/zero of=/var/swap bs=1k count=128K
erstellt die Datei /var/swap mit 128MB Größe.

Swapbereich initialisieren:

Source code

1
client:/# mkswap /var/swap
Ein Loopdevice generieren

Source code

1
client:/# losetup /dev/loop/0 /var/swap
und in die fstab eintragen:

Source code

1
2
client:/# grep swap /etc/fstab
/dev/loop/0      none            swap    sw,noauto              0       0
Swap aktivieren:

Source code

1
client:/# swapon -a

Swap wird im normalen Betrieb per /etc/rc.local aktiviert:

Source code

1
2
3
4
5
chmod 755 /etc/rc.local
vi /etc/rc.local
# folgendes vor exit 0 einfügen
losetup /dev/loop/0 /var/swap
swapon /dev/loop/0


Mein vdr speichert die Aufnahmen im Verzeichnis /video, welches ebenfalls vom Server,
dort läuft dafür ein aus vier HDs bestehendes Software-RAID5, exportiert wird.

Anmerkungen

a. Kernel-Update


CLIENT

Einen neuen Kernel für den diskless vdr kompiliert man wie gewohnt. Mit "make
oldconfig" wird die alte Konfiguration auf den neuen Kernel übertragen.

Source code

1
2
3
4
5
6
7
8
9
client:/# wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.bz2
client:/# tar xjvf linux-2.6.16.tar.bz2 -C /usr/src
client:/# cd /usr/src
client:/usr/src# rm linux
client:/usr/src# ln -s linux-2.6.16 linux
client:/usr/src# cd linux
client:/usr/src/linux# make oldconfig
client:/usr/src/linux# make
client:/usr/src/linux# make modules_install install
Ggf. müssen bei einem Kernelwechsel auch die DVB Treiber und lirc (jeweils mit
make distclean) neu übersetzt werden.

SERVER

Nach dem "make install" des Kernels auf dem Client, muß man auf dem Server noch den
neuen Kernel in's tftpboot Verzeichnis kopieren:

Source code

1
server:/# cp /netboot/nfsroot/client/boot/vmlinuz-2.6.16 /var/lib/tftpboot/vmlinuz-2.6.16-client
und in die pxelinux.cfg Datei eintragen:

Source code

1
2
3
4
5
6
server:/# cat /var/lib/tftpboot/pxelinux.cfg/AC112A03
# client 172.17.42.3
LABEL linux
                KERNEL vmlinuz-2.6.16-client
                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client,v3
                IPAPPEND 1

b. Wake on Lan (WoL) mit reboot - nvram-wakeup


CLIENT

Das Motherboard PC-Chips M811 schaltet sich mit meiner Intel Netzwerkkarte nach einem
"shutdown -h now" derart ab, daß der Rechner nicht mehr per "Wake on Lan" (WoL)
aktiviert werden kann.

Dieses Manko existiert ab Kernel 2.6.18 nicht mehr (eventuell auch früher). Der Rechner
läßt sich nach einem "shutdown -h now" problemlos per WoL wecken. Der hier geschilderte
Workaround ist somit obsolet.


Mit ethtool ließ sich das Problem leider nicht beheben.
Durch einen Workaround läßt sich WoL aber trotzdem realisieren. Mittels des DOS
Programmes atxoff.com schaltet sich der Rechner jetzt so aus, daß er per WoL wieder
geweckt werden kann. Das Problem bei einem diskless System ist, daß sich diesem das
Programm nicht per Bootloader (lilo, grub,...) unterschieben läßt. Vielmehr muß dem
Server des diskless Rechners mitgeteilt werden, daß beim nächsten Booten atxoff.com
gestartet werden soll. Dieses wird nun dadurch realisiert, daß der Client per SSH ein Skript
auf dem Server startet, welches temporär die zu bootende Datei ändert.

Als User root wird ein SSH Schlüsselpaar mit leerer Passphrase generiert.
Anschließend kopiert man den öffentlichen Schlüssel auf den Server und fügt diesen der
Datei ".ssh/authorized_keys" des Nutzers user zu hinzu. Nun kann sich root vom Client auf
dem Server mittels SSH ohne Passwort einloggen. Im lokalen Netz ist diese
"Sicherheitslücke" vertretbar.

Source code

1
2
3
root@client:~$ ssh-keygen -t dsa
root@client:~$ scp .ssh/id_dsa.pub user@server:.
root@client:~$ ssh user@server "[ ! -d .ssh ] && mkdir .ssh; cat id_dsa.pub >> .ssh/authorized_keys; chmod 600 .ssh/authorized_keys; rm id_dsa.pub"

SERVER

Auf dem Server wird der User, der vom Client per SSH genutzt wird, in die Gruppe "adm"
eingetragen. Ich nutze dies, damit ich auch als normaler User z.B. Logs lesen kann:

Source code

1
2
3
4
5
server:/# vigr
server:/# grep ^adm: /etc/group
adm:x:4:user
server:/# chgrp adm /var/lib/tftpboot/pxelinux.cfg
server:/# chmod 775 /var/lib/tftpboot/pxelinux.cfg
Nun wird die zuvor geladene Datei atxoff.com nach /var/lib/tftpboot/ kopiert:

Source code

1
2
3
server:/# cd /var/lib/tftpboot/
server:/# ls -la atxoff.com
-rw-r--r--  1 root root 57 Feb  9 12:24 atxoff.com
Als nächstes erstellen wir zwei Konfigurationsdateien für das PXE booten:

Source code

1
2
3
4
5
server:/# cd /var/lib/tftpboot/pxelinux.cfg/
server:/# ls -la
-rw-rw-r--  1 root adm   305 Feb 10 20:50 01-00-0e-xx-xx-xx-xx
-rw-rw-r--  1 root adm   212 Feb  9 12:27 01-00-0e-xx-xx-xx-xx.atxoff
-rw-rw-r--  1 root adm   305 Feb 10 20:49 01-00-0e-xx-xx-xx-xx.kernel
Die Zeichenfolge "00-0e-xx-xx-xx-xx" entspricht der MAC der Netzwerkkarte des diskless
Rechners. Die Dateien haben folgende Inhalte:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server:/# cat 01-00-0e-xx-xx-xx-xx
# client 172.17.42.3
LABEL linux
                KERNEL vmlinuz-2.6.15.5-client
                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client
                IPAPPEND 1

server:/# cat 01-00-0e-xx-xx-xx-xx.atxoff
# client 172.17.42.3
LABEL linux
                KERNEL atxoff.com

server:/# cat 01-00-0e-xx-xx-xx-xx.kernel
# client 172.17.42.3
LABEL linux
                KERNEL vmlinuz-2.6.15.5-client
                APPEND root=/dev/nfs nfsroot=172.17.42.4:/netboot/nfsroot/client
                IPAPPEND 1
"01-00-0e-xx-xx-xx-xx.kernel" ist die normale Bootconfiguration, die den Kernel lädt.
"01-00-0e-xx-xx-xx-xx.atxoff" veranlaßt die Netzwerkkarte atxoff.com zu booten und
auszuführen. Dies bewirkt das sofortige Abschalten des diskless Rechners. Dieser ist
dann problemlos per WoL aufweckbar. "01-00-0e-xx-xx-xx-xx" ist die jeweils aktuelle
Config-Datei und wird durch das gleich vorgestelle Skript eingestellt.

Jetzt wird die Datei " vdr_atxoff_workaround.sh" generiert, welche die Umschaltung
der PXE Configdateien vornimmt. Sie hat folgende Rechte und Inhalt:

Source code

1
2
3
4
5
6
7
8
9
10
server:/# ls -la /usr/local/sbin/vdr_atxoff_workaround.sh
-rwxr-x---  1 root adm 247 Feb  9 12:40 /usr/local/sbin/vdr_atxoff_workaround.sh

server:/# cat /usr/local/sbin/vdr_atxoff_workaround.sh
#!/bin/sh
cp /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx.atxoff /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx
chmod 644 /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx
sleep 60
cp /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx.kernel /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx
chmod 644 /var/lib/tftpboot/pxelinux.cfg/01-00-0e-xx-xx-xx-xx

CLIENT
Jetzt kann der Client heruntergefahren werden, bootet automatisch atxoff.com und ist
per WoL aufweckbar:

Source code

1
2
client:/# ssh user@server -f "/usr/local/sbin/vdr_atxoff_workaround.sh &"
client:/# reboot

nvram-wakeup mit reboot ist nach obiger Einrichtung nun problemlos möglich. Beispiel:

Source code

1
2
3
client:/# nvram-wakeup --directisa --configfile /etc/nvram-wakeup.conf --settime $((`date +%s` + 601))
client:/# ssh user@server -f "/usr/local/sbin/vdr_atxoff_workaround.sh &"
client:/# reboot
Zeile 1 setzt die Weckzeit des Motherboards 601 Sekunden in die Zukunft. Zeile 2 startet
auf dem Server das Skript vdr_atxoff_workaround.sh, welches nach dem reboot aus Zeile 3
den Client mittels atxoff.com abschaltet. Neustart erfolgt nun durch das nvram oder WoL.

Das oben erwähnte M811 von PC-Chips benötigt für nvram-wakeup keinen Reboot.
Siehe auch hier.


c. Client per debootstrap installieren


SERVER

Alternativ zur Installation des Clients auf eine Festplatte und das daran anschließende Umkopieren
auf den Server, kann man den Client mit debootstrap auch direkt auf dem Server installieren. Auf
dem (Debian) Server wird dazu das Paket debootstrap aufgespielt.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
aptitude install debootstrap
mkdir /netboot/nfsroot/vdr_etch
debootstrap --arch i386 etch /netboot/nfsroot/vdr_etch/ http://ftp.de.debian.org/debian/
#
chroot /netboot/nfsroot/vdr_etch/
aptitude update
aptitude install locales console-common
#
dpkg-reconfigure console-data # de-latin1-nodeadkeys
dpkg-reconfigure locales # [*] de_DE@euro ISO-8859-15
# dpkg-reconfigure console-setup # Ubuntu 8.04
# /usr/share/locales/install-language-pack de_DE # Ubuntu 8.04
# /usr/share/locales/install-language-pack de_DE.UTF-8 # Ubuntu 8.04
# dpkg-reconfigure tzdata # Ubuntu 8.04
#
# uid und gid für Nutzer vdr wie auf Server festlegen
# Beispiel:
# /etc/passwd: vdr:x:103:104:VDR user,,,:/var/lib/vdr:/bin/false
# /etc/group  : vdr:x:104:
#
vipw
vigr
#
aptitude install openssh-server anacron less vim mc portmap ntp rsync powernowd exim4 mutt bzip2 build-essential libncurses5-dev kernel-package
#
echo "127.0.0.1       localhost" > /etc/hosts
echo "vdr" > /etc/hostname
cat >> /etc/network/interfaces << EOF

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet manual
EOF
#
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime
#
mkdir /video
echo "#" > /etc/fstab
cat >> /etc/fstab << EOF
# /etc/fstab: static file system information.
#
proc                                    /proc           proc    defaults        0 0
server:/netboot/nfsroot/vdr_etch/       /               nfs     defaults        0 0
/dev/loop/0                             none            swap    sw,noauto       0 0
none                                    /tmp            tmpfs   defaults        0 0
none                                    /var/run        tmpfs   defaults        0 0
none                                    /var/lock       tmpfs   defaults        0 0
none                                    /var/tmp        tmpfs   defaults        0 0
server:/video                           /video          nfs     defaults        0 0
EOF
#
passwd
#
adduser kilroy
#
cd /usr/src/
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.8.tar.bz2
# wget http://www.on-luebeck.de/kilroy/debian_etch_howto/powernow-k7-manual-2.6.23_enev_kilroy.patch.gz # notwendig für AMD Geode NX 1750
tar xjf linux-2.6.23.8.tar.bz2
ln -s linux-2.6.23.8 linux
cd linux
# zcat ../powernow-k7-manual-2.6.23_enev_kilroy.patch.gz | patch -b -p0 # notwendig für AMD Geode NX 1750
make menuconfig # ich kompiliere i.A. alles Notwendige bis auf die DVB, powernow und lirc Treiber fest in den Kernel
# wget http://www.on-luebeck.de/kilroy/debian_etch_howto/config-2.6.23.zaphod -O .config # Achtung! Diese .config ist speziell für meinen diskless VDR
# make oldconfig
make-kpkg --revision=vdr1 kernel_image
dpkg -i ../linux-image-2.6.23.8_vdr1_i386.deb
exit # chroot verlassen
Jetzt noch auf dem Server tftp passend konfigurieren (s.o.) und das neue System kann
vom diskless Client gebootet werden.


Hilfreiche Quellen:
http://syslinux.zytor.com/pxe.php
http://www.linuxdevices.com/articles/AT5834950453.html
http://www.faqs.org/docs/Linux-HOWTO/Dis…ther-HOWTO.html
Optimizing NFS Performance

Tips von MAK:
Plattenloses Linux
HOWTO set up a Network with Diskless Workstations using Debian GNU/Linux
Dateien vorbereiten für TFTP-Netzwerk-Boot
Booten und Konfiguration im Netz
LTSP - Linux Terminal Server Project - v3.0

Links zu nvram-wakeup:
http://www.linux-magazin.de/Artikel/ausg…eup/wakeup.html
http://www.vdr-wiki.de/wiki/index.php/NVRAM_WakeUp
http://www.hubertus-sandmann.homepage.t-…/vdr_wakeup.htm
#67

Debian 5 - 64bit diskless - Linux 2.6.33-rc4 - 1.6.0-13ctvdr2 - DVB Kernel - FuSi DVB-C 4MB, FW f12623 - TT C1500 - AC Light - 2x DVB-T
EP-8KDA7I & Sempron64 - 62W - Harmony 655 - lirc-0.8.6-CVS - gLCD Umbau - TV: Samsung LE40B750 U1 PXZG SQ01 - PS3 slim für Blu-Ray - DLNA: MiniDLNA 1.0.16.3
obsolet:AMD Geode & M811

This post has been edited 83 times, last edit by "kilroy" (Dec 28th 2009, 12:47pm)


2

Monday, October 31st 2005, 4:28pm

Super HowTo! Genau das was ich gesucht habe :)

Eins versteh ich aber nicht ganz:

Quoted

Zusätzlich baue ich z.B. auch ext2(3) fest in den Kernel ein, da ich initrd nicht mag. Augenzwinkern


Kannst du das etwas genauer erklären?

Danke dir!

Gruß,

Flasher
LinVDR 07 + MT + Bigpatch 1.3.34

Im Aufbau: ArchLinux

3

Monday, October 31st 2005, 4:40pm

Quoted

Original von Flasher_84

Quoted

Zusätzlich baue ich z.B. auch ext2(3) fest in den Kernel ein, da ich initrd nicht mag. Augenzwinkern

Kannst du das etwas genauer erklären?


Zum einen vergesse ich normalerweise, initrd.img zu bauen ;)
Und zum anderen konfiguriere ich die Kernel, wenn ich sie schon selbst baue, gewohnheitsmäßig so, daß alles wichtige zum Hochfahren und was sich eh nicht ändert schon enthalten ist.
#67

Debian 5 - 64bit diskless - Linux 2.6.33-rc4 - 1.6.0-13ctvdr2 - DVB Kernel - FuSi DVB-C 4MB, FW f12623 - TT C1500 - AC Light - 2x DVB-T
EP-8KDA7I & Sempron64 - 62W - Harmony 655 - lirc-0.8.6-CVS - gLCD Umbau - TV: Samsung LE40B750 U1 PXZG SQ01 - PS3 slim für Blu-Ray - DLNA: MiniDLNA 1.0.16.3
obsolet:AMD Geode & M811

Accom

Beginner

Posts: 46

Location: Schweiz

Occupation: Systems Engineer

  • Send private message

4

Monday, October 31st 2005, 4:46pm

RE: VDR Client via Netz per NFS booten

Hallo kilroy

Vielen Dank für deine ausführliche Anleitung.
Ich spiele gerade mit dem Gedanken einen Thin-Client zu bauen, da kommt deine Anleitung wie gerufen.

Gruss
Accom
P5E-V HDMI, 4GB Ram, 60GB SSD & 500 GB HDD, DVD-Brenner, Salteco, Asus Bravo 220
Debian Squeeze, VDR e-Tobi

Thomas

Super Moderator

Posts: 4,238

Location: Ost-Allgäu, Bayern

Occupation: Softwareentwickler

  • Send private message

5

Sunday, November 13th 2005, 3:41pm

Feedback auf diesen Beitrag ist ja durchweg positiv.

Macht es aus Eurer Sicht sinn, dieses HOWTO sticky zu machen?

yaVDR 4, 3.5TB, Antec Fusion Remote, Mystique SaTiX-S2 V2 CI Dual, GF220GT+VDPAU, 1080p Display mit Slimes Atmolight :strike1
Geblogge über dies und das

MAK

Professional

Posts: 572

Location: Ein Dorf zwischen Heidelberg und Heilbronn

  • Send private message

6

Monday, November 14th 2005, 10:52am

RE: [HOWTO] VDR Client via Netz per NFS booten

Hallo,
danke für dies HowTo. Da ich mir auch einen Diskless-Clienten basteln möchte, lese ich mich gerade in diese Thematik ein.
Hier meine momentane Liste mit paar vielleicht nützlichen Links:
Plattenloses Linux
HOWTO set up a Network with Diskless Workstations using Debian GNU/Linux
Dateien vorbereiten für TFTP-Netzwerk-Boot
Booten und Konfiguration im Netz
LTSP - Linux Terminal Server Project - v3.0
Wer weiter nützliche Links hat, bitte posten.
Gruß MAK

@thomas

Quoted

Macht es aus Eurer Sicht sinn, dieses HOWTO sticky zu machen?
Nur mal für Dummies, was heißt "sticky zu machen"? :versteck

VDR - VDR mit XBMC - MythTV

This post has been edited 1 times, last edit by "MAK" (Nov 14th 2005, 11:05am)


7

Monday, November 14th 2005, 8:11pm

RE: [HOWTO] VDR Client via Netz per NFS booten

Quoted

Original von MAK
Hier meine momentane Liste mit paar vielleicht nützlichen Links:
...


Wenn Du nichts dagegen hast, übernehme ich die Links in das Howto.
#67

Debian 5 - 64bit diskless - Linux 2.6.33-rc4 - 1.6.0-13ctvdr2 - DVB Kernel - FuSi DVB-C 4MB, FW f12623 - TT C1500 - AC Light - 2x DVB-T
EP-8KDA7I & Sempron64 - 62W - Harmony 655 - lirc-0.8.6-CVS - gLCD Umbau - TV: Samsung LE40B750 U1 PXZG SQ01 - PS3 slim für Blu-Ray - DLNA: MiniDLNA 1.0.16.3
obsolet:AMD Geode & M811

MAK

Professional

Posts: 572

Location: Ein Dorf zwischen Heidelberg und Heilbronn

  • Send private message

8

Monday, November 14th 2005, 8:41pm

RE: [HOWTO] VDR Client via Netz per NFS booten

Quoted

Original von kilroy
Wenn Du nichts dagegen hast, übernehme ich die Links in das Howto.

Kannst du gerne machen.
Gruß MAK

VDR - VDR mit XBMC - MythTV

ape

Intermediate

Posts: 330

Location: Bayern/Unterfranken

  • Send private message

9

Monday, November 14th 2005, 8:58pm

RE: [HOWTO] VDR Client via Netz per NFS booten

hi!
super howto! im moment trau ich mich noch nicht dran, aber über weihnachten dann vielleicht! danke!
mfg ape
VDR rockz

MAK

Professional

Posts: 572

Location: Ein Dorf zwischen Heidelberg und Heilbronn

  • Send private message

10

Sunday, November 20th 2005, 12:20am

RE: [HOWTO] VDR Client via Netz per NFS booten

@kilroy
Hallo,
unter welcher Distri hast du den Server laufen?
Welchen DHCP-Server hast du installiert? dhcp3?
Kannst du mal die ganze dhcpd.conf posten?
Gruß MAK

VDR - VDR mit XBMC - MythTV

11

Sunday, November 20th 2005, 9:25pm

RE: [HOWTO] VDR Client via Netz per NFS booten

Quoted

Original von MAK
unter welcher Distri hast du den Server laufen?
Welchen DHCP-Server hast du installiert? dhcp3?
Kannst du mal die ganze dhcpd.conf posten?


Distribution:

Source code

1
2
cat /etc/mandrake-release 
Mandrakelinux release 10.1 (Official) for i586
Ich wechsle aber demnächst zu Debian, da mir Mandrakes (bzw. Mandrivas)
"Update-Politik" nicht gefällt. Für ältere Systeme werden sehr schnell keine
Sicherheits-Updates mehr zur Verfügung gestellt und ich habe keine Lust, alle halbe Jahr den
Server neu aufzusetzen. Mandriva ist halt eher 'was für den Desktop; aber da hat bei mir
jetzt Ubuntu Einzug gehalten. ;)

dhcp-server Version:

Source code

1
2
3
rpm -qi dhcp-server
Name        : dhcp-server                  Relocations: (not relocatable)
Version     : 3.0.1                             Vendor: Mandrakesoft


dhcpd.conf:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ddns-update-style none;

authoritative;

subnet 172.17.42.0 netmask 255.255.255.0 {
# --- default gateway
        option routers                  172.17.42.42;
        option subnet-mask              255.255.255.0;

        option domain-name              "xxxxxxxx.yy";
        option domain-name-servers      172.17.42.4;
        option time-offset              1;
        option ntp-servers              172.17.42.4;
        option netbios-name-servers     172.17.42.4;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#       option netbios-node-type 2;

        range dynamic-bootp 172.17.42.43 172.17.42.254;
        default-lease-time 21600;
        max-lease-time 43200;
}

host host1.xxxxxxxx.yy {
        #
        # Intel PRO/1000
        #
        hardware ethernet 00:0E:xx:xx:xx:xx;
        fixed-address 172.17.42.2;
}

host host2.xxxxxxxx.yy {
        #
        # Intel PRO/1000
        #
        hardware ethernet 00:0E:xx:xx:xx:xx;
        fixed-address 172.17.42.3;
        filename "pxelinux.0";
}

host host3.xxxxxxxx.yy {
        hardware ethernet 00:c0:xx:xx:xx:xx;
        fixed-address 172.17.42.42;
}
#67

Debian 5 - 64bit diskless - Linux 2.6.33-rc4 - 1.6.0-13ctvdr2 - DVB Kernel - FuSi DVB-C 4MB, FW f12623 - TT C1500 - AC Light - 2x DVB-T
EP-8KDA7I & Sempron64 - 62W - Harmony 655 - lirc-0.8.6-CVS - gLCD Umbau - TV: Samsung LE40B750 U1 PXZG SQ01 - PS3 slim für Blu-Ray - DLNA: MiniDLNA 1.0.16.3
obsolet:AMD Geode & M811

MAK

Professional

Posts: 572

Location: Ein Dorf zwischen Heidelberg und Heilbronn

  • Send private message

12

Wednesday, November 23rd 2005, 5:26pm

RE: [HOWTO] VDR Client via Netz per NFS booten

Hallo,
hier noch ein paar weitere Links zum Thema:
Bootablauf
PXES Linux Thin Client OS project
lessdisks
lessdisks (Forum)
Booting Linux over the network
HOWTO Install Mythtv With Diskless Workstations - Diese dhcp Konfiguration könnte Schwierigkeiten mit PXE-Clients beheben
Generische Initrd für Diskless Clients
Gruß MAK

VDR - VDR mit XBMC - MythTV

diedl2003

Intermediate

Posts: 240

Location: Frankfurt

  • Send private message

13

Wednesday, December 28th 2005, 2:16am

Danke für das Howto!

Um meinen NIC zum laufen zu bewegen, musste ich noch hier

Quoted

host host1.xxxxxxxx.yy {
#
# Intel PRO/1000
#
hardware ethernet 00:0E:xx:xx:xx:xx;
fixed-address 172.17.42.2;
}


die IP Adresse des Servers mitgeben, um bei deinem Beispiel zu bleiben also:

next-server 172.17.42.4

Gruß

This post has been edited 1 times, last edit by "diedl2003" (Dec 28th 2005, 2:20am)


knebb

Sage

Posts: 3,931

Location: derzeit M-V

Occupation: Technical Support Engineer

  • Send private message

14

Wednesday, December 28th 2005, 9:15am

Quoted

Original von diedl2003
next-server 172.17.42.4

Aufpassen!
Manche (ältere) Implementierungen akzeptieren diesen Parameter auf Clientseite nicht und versuchen, die Dateien vom dem gleichen Server zu holen, von dem sie ihre IP-Adresse bekommen haben. Je nach Umgebung sollte man also DHCP und TFTP-Server auf einem Server zusammenfassen.
Glotze: Asus TUV4X- PIII/1100- 1024MB- Nexus-S+ Nova-S- easyVDR 0.509
Server: 2x Quad Xeon, 48GB RAM, 8 TB HDD, VMware ESX 5.0 :P

diedl2003

Intermediate

Posts: 240

Location: Frankfurt

  • Send private message

15

Wednesday, December 28th 2005, 7:26pm

Quoted

Aufpassen!
...das ist immer gut ;)

Mein Problem war, dass pxelinux.0 gefunden wurde jedoch anschliessend nicht das config file in pxelinux.cfg, obwohl dhcpd und tftpd auf dem gleichen Server laufen. Ethereal und ein Blick in /usr/share/doc/syslinux/pxelinux.doc brachte mir diese Erkenntnis...

Fleischwurst

Intermediate

Posts: 220

Location: Garbsen

  • Send private message

16

Friday, January 6th 2006, 11:33pm

bei wem die NIC kein PXE unterstützt, kann auch einfach von http://rom-o-matic.net/ ein entsprechendes Etherboot Image für Grub/Lilo ziehen. Das dann einfach wie einen normalen Linux-Kernel einbinden und schon klappt es. ^^
Kann man halt auf eine Diskette oder HD (die man danach in Standby schickt) packen.
Counted VDR user #193

This post has been edited 1 times, last edit by "Fleischwurst" (Jan 6th 2006, 11:33pm)


LinTV-Fan

Intermediate

Posts: 327

Occupation: EDV-ler

  • Send private message

17

Wednesday, February 8th 2006, 5:14pm

Kriegt das man auch mit einem Windows Server hin ??

knebb

Sage

Posts: 3,931

Location: derzeit M-V

Occupation: Technical Support Engineer

  • Send private message

18

Wednesday, February 8th 2006, 5:27pm

Quoted

Original von LinTV-Fan
Kriegt das man auch mit einem Windows Server hin ??

Wenn Du Deinem Server die folgenden Sachen beibringst, ist das kein Thema:

-DHCP-Server
-TFTP-Server
-NFS-Server

:D

"Das, was man bei Windows als vollständiges Betriebssystem bezeichnet, entspricht einer Linux-Rescuedisk." ;D
Glotze: Asus TUV4X- PIII/1100- 1024MB- Nexus-S+ Nova-S- easyVDR 0.509
Server: 2x Quad Xeon, 48GB RAM, 8 TB HDD, VMware ESX 5.0 :P

19

Wednesday, February 8th 2006, 10:39pm

Hierüber bin ich mal gestolpert:

Source code

1
2
3
4
5
http://tftpd32.jounin.net: Tftpd32 includes DHCP, TFTP, SNTP and Syslog servers as well as 
a TFTP client. The TFTP client and server are fully compatible with TFTP option support 
(tsize, blocksize  and timeout), which allow the maximum performance when transferring 
the data.
...
NFS Server gibt's auch für Windows. Meist kosten die aber etwas...
#67

Debian 5 - 64bit diskless - Linux 2.6.33-rc4 - 1.6.0-13ctvdr2 - DVB Kernel - FuSi DVB-C 4MB, FW f12623 - TT C1500 - AC Light - 2x DVB-T
EP-8KDA7I & Sempron64 - 62W - Harmony 655 - lirc-0.8.6-CVS - gLCD Umbau - TV: Samsung LE40B750 U1 PXZG SQ01 - PS3 slim für Blu-Ray - DLNA: MiniDLNA 1.0.16.3
obsolet:AMD Geode & M811

knebb

Sage

Posts: 3,931

Location: derzeit M-V

Occupation: Technical Support Engineer

  • Send private message

20

Wednesday, February 8th 2006, 10:44pm

Quoted

Original von kilroy
...NFS Server gibt's auch für Windows. Meist kosten die aber etwas...

Auch, wenn Du es zuerst nicht glaubst. Es gibt einen, der ist so richtig kostenlos. Und der ist sogar von Microsoft. Original ;D

Gibt's also bei Microsoft Deutschland

Das Teil funktioniert sogar recht gut.
Glotze: Asus TUV4X- PIII/1100- 1024MB- Nexus-S+ Nova-S- easyVDR 0.509
Server: 2x Quad Xeon, 48GB RAM, 8 TB HDD, VMware ESX 5.0 :P

This post has been edited 1 times, last edit by "knebb" (Feb 8th 2006, 10:45pm)