Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: VDR Portal. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Montag, 31. Oktober 2005, 16:23

[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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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

Der tftpd wird per inetd gestartet:

Quellcode

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:

Quellcode

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

Quellcode

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):

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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

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

Quellcode

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):

Quellcode

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).

Quellcode

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:

Quellcode

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:

Quellcode

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

Swapbereich initialisieren:

Quellcode

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

Quellcode

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

Quellcode

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

Quellcode

1
client:/# swapon -a

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

Quellcode

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.

Quellcode

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:

Quellcode

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:

Quellcode

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.

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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:

Quellcode

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.

Quellcode

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

Dieser Beitrag wurde bereits 83 mal editiert, zuletzt von »kilroy« (28. Dezember 2009, 12:47)


2

Montag, 31. Oktober 2005, 16:28

Super HowTo! Genau das was ich gesucht habe :)

Eins versteh ich aber nicht ganz:

Zitat

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

Montag, 31. Oktober 2005, 16:40

Zitat

Original von Flasher_84

Zitat

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

Anfänger

Beiträge: 46

Wohnort: Schweiz

Beruf: Systems Engineer

  • Nachricht senden

4

Montag, 31. Oktober 2005, 16:46

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

Beiträge: 4 238

Wohnort: Ost-Allgäu, Bayern

Beruf: Softwareentwickler

  • Nachricht senden

5

Sonntag, 13. November 2005, 15:41

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

Profi

Beiträge: 572

Wohnort: Ein Dorf zwischen Heidelberg und Heilbronn

  • Nachricht senden

6

Montag, 14. November 2005, 10:52

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

Zitat

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MAK« (14. November 2005, 11:05)


7

Montag, 14. November 2005, 20:11

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

Zitat

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

Profi

Beiträge: 572

Wohnort: Ein Dorf zwischen Heidelberg und Heilbronn

  • Nachricht senden

8

Montag, 14. November 2005, 20:41

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

Zitat

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

Fortgeschrittener

Beiträge: 348

Wohnort: Bayern/Unterfranken

  • Nachricht senden

9

Montag, 14. November 2005, 20:58

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

Profi

Beiträge: 572

Wohnort: Ein Dorf zwischen Heidelberg und Heilbronn

  • Nachricht senden

10

Sonntag, 20. November 2005, 00:20

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

Sonntag, 20. November 2005, 21:25

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

Zitat

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:

Quellcode

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:

Quellcode

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


dhcpd.conf:

Quellcode

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

Profi

Beiträge: 572

Wohnort: Ein Dorf zwischen Heidelberg und Heilbronn

  • Nachricht senden

12

Mittwoch, 23. November 2005, 17:26

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

13

Mittwoch, 28. Dezember 2005, 02:16

Danke für das Howto!

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

Zitat

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ß

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »diedl2003« (28. Dezember 2005, 02:20)


knebb

Erleuchteter

Beiträge: 3 981

Wohnort: derzeit M-V

Beruf: Linux Geek ;)

  • Nachricht senden

14

Mittwoch, 28. Dezember 2005, 09:15

Zitat

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: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

15

Mittwoch, 28. Dezember 2005, 19:26

Zitat

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...

16

Freitag, 6. Januar 2006, 23:33

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

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Fleischwurst« (6. Januar 2006, 23:33)


17

Mittwoch, 8. Februar 2006, 17:14

Kriegt das man auch mit einem Windows Server hin ??

knebb

Erleuchteter

Beiträge: 3 981

Wohnort: derzeit M-V

Beruf: Linux Geek ;)

  • Nachricht senden

18

Mittwoch, 8. Februar 2006, 17:27

Zitat

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: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

19

Mittwoch, 8. Februar 2006, 22:39

Hierüber bin ich mal gestolpert:

Quellcode

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

Erleuchteter

Beiträge: 3 981

Wohnort: derzeit M-V

Beruf: Linux Geek ;)

  • Nachricht senden

20

Mittwoch, 8. Februar 2006, 22:44

Zitat

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: yaVDR (ASRock Q1900M, 4GB RAM, DD Cine S2 V6.5, ZOTAC GT630 (Rev. 2)
Server: HP ProLiant MicroServer G8, VMware ESXi 5.5 :P

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »knebb« (8. Februar 2006, 22:45)


Immortal Romance Spielautomat