Document version: 1.4; created 2003-10-15; last modified 2004-07-15.
Dieses HOWTO wird nicht weiter gepflegt, da Strato inzwischen die Installation von Debian woody per Webinterface anbietet (config.strato.de -> Einloggen, Serverkonfiguration -> Neuinstallation).
Einführung
Rettungssystem booten und serielle Konsole
starten
SuSE herunterschmeissen (alias Partitionen
vorbereiten)
Basissystem laden und installieren
Manuelle Nachbearbeitung und Installation von Kernel
und LILO
Fertig
Dieses Dokument erhebt keinen Anspruch auf Vollständigkeit oder Korrektheit. Die Befolgung dieser Anleitung kann Ihren Server komplett lahmlegen -- insbesondere dann, wenn Sie nicht wissen, was die hier angegebenen Befehle tun. Dies ist keine offizielle oder von der Strato Medien AG autorisierte Anleitung!
Dieses Dokument beschreibt die Installation von Debian woody auf einem Strato Root-Server. Normalerweise wird dieser mit SuSE 8.0 eingerichtet; ich wollte unbedingt Debian drauf haben. Dabei kommt die bei Strato serienmässig vorhandene serielle Konsole sehr gelegen.
Das Dokument beschreibt, wie ich Debian auf dem Server installiert bekommen habe. Möglicherweise gibt es einfachere oder bessere Wege... und alle Eventualitäten sind auch nicht abgedeckt. Ich bin dabei grösstenteils dem Debian Installations-HOWTO Sektion 3.7: Debian GNU/Linux von einem Unix/Linux-System installieren gefolgt. Dieses Dokument kann auch herangezogen werden, wenn irgendetwas nicht funktioniert bei der Installation. Im absoluten Notfall kann auch die automatisierte Neu-Installation von SuSE gestartet werden (config.strato.de / Serverkonfiguration / Neuinstallation)
Windows-User benötigen nur einen SSH-Client wie z.B. putty; alles weitere wird direkt auf den Server geladen. Linux-User haben in den allermeisten Fällen bereits alles zur Hand ;-)
Alle Arbeitsschritte sind mit ihrer vollen Ausgabe dokumentiert. Die Ausgaben sollten beim Befolgen der Anleitung ähnlich aussehen.
Wer lieber eine automatische Installation hätte, darf sich gerne Christian Neys Installations-Skript auf http://linux.roothell.org/debian-strato/ ansehen.
Zunächst mässen wir erst einmal das Reparatursystem booten. Dazu aktiviert man auf config.strato.de unter Serverkonfiguration/RecoveryManager den Bootmodus "Starten des Rettungssystems". Dann muss der Server neu gebootet werden; entweder über reboot per ssh oder per harten Reset (im RecoveryManager aktivierbar).
Unter ServerKonfiguration/RemoteConsole sind nun die Login-Daten für die serielle Konsole zu finden. Per SSH kann man sich nun auf der seriellen Konsole einloggen.
Wir sind nun auf der seriellen Konsole eingeloggt und benötigen nun ein Arbeitsverzeichnis.
# mkdir /work # cd /work/ # ls # wget http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.1.17.7woody1_i386.deb debootstrap_0.1.17.7 100% |*****************************| 51554 00:00 ETA # ar -x debootstrap_0.1.17.7woody1_i386.deb # cd / # zcat < /work/data.tar.gz |tar xv ./ ./usr/ ./usr/sbin/ ./usr/sbin/debootstrap ./usr/share/ ./usr/share/man/ ./usr/share/man/man8/ ./usr/share/man/man8/debootstrap.8.gz ./usr/share/doc/ ./usr/share/doc/debootstrap/ ./usr/share/doc/debootstrap/README.Debian ./usr/share/doc/debootstrap/copyright ./usr/share/doc/debootstrap/changelog.gz ./usr/lib/ ./usr/lib/debootstrap/ ./usr/lib/debootstrap/scripts/ ./usr/lib/debootstrap/scripts/slink ./usr/lib/debootstrap/scripts/potato ./usr/lib/debootstrap/scripts/woody ./usr/lib/debootstrap/scripts/sarge ./usr/lib/debootstrap/scripts/sid ./usr/lib/debootstrap/functions ./usr/lib/debootstrap/pkgdetails ./usr/lib/debootstrap/devices.tar.gz ./usr/lib/debootstrap/arch
Nun wurde debootstrap in das Rettungsdateisystem installiert (welches ohnehin nur im RAM existiert). Jetzt müssen noch die Partitionen formatiert und die Swap-Partition aktiviert werden. Im folgenden wurde die originale Partitionierung (60 MB boot, 500 MB swap, 60 GB root) aus Gründen der Einfachheit beibehalten. Andere Partitionierungen sind mittels cfdisk /dev/hda problemlos erstellbar.
# mke2fs -j /dev/hda3 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 7438336 inodes, 14870165 blocks 743508 blocks (5.00%) reserved for the super user First data block=0 454 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mke2fs -j /dev/hda1 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) 14056 inodes, 56196 blocks 2809 blocks (5.00%) reserved for the super user First data block=1 7 block groups 8192 blocks per group, 8192 fragments per group 2008 inodes per group Superblock backups stored on blocks: 8193, 24577, 40961 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. # mkswap /dev/hda2 Setting up swapspace version 1, size = 526413824 bytes # sync; sync; sync # swapon /dev/hda2 Adding Swap: 514072k swap-space (priority -1)
Erst Zielpartition mounten...
# mkdir /debinst # mount /dev/hda3 /debinst/ kjournald starting. Commit interval 5 seconds EXT3 FS 2.4-0.9.19, 19 August 2002 on ide0(3,3), internal journal EXT3-fs: mounted filesystem with ordered data mode.
...dann auf der Zielpartition ein Verzeichnis für den Debian Installer einrichten...
# mkdir /debinst/debinst # cd /debinst/debinst/
... und die Basispakete manuell herunterladen, sonst produziert debootstrap einen Segmentation fault. Auf dem Rettungssystem ist auch kein Platz mehr, also muss das basedeb auf der Zielpartition installiert werden.
# wget http://http.us.debian.org/debian/dists/woody/main/disks-i386/base-images-current/basedebs.tar basedebs.tar 100% |*****************************| 27670 KB 00:00 ETA # wget http://http.us.debian.org/debian/pool/main/w/wget/wget_1.8.1-6.1_i386.deb
...und zum Schluss: debootstrap starten:
# cd / # /usr/sbin/debootstrap --arch i386 --unpack-tarball /debinst/debinst/basedebs.tar woody /debinst
Nun arbeitet debootstrap eine Weile und produziert dabei eine Menge
Ausgaben und Warnungen -- zu viele, um sie hier alle aufzulisten.
Die meisten können ignoriert werden; trotzdem
sollte man aufmerksam schauen, ob etwas schiefläft.
Insbesondere sollte zum Abschluss die Meldung "I: Base system installed
successfully." erscheinen.
Zunächst wechseln wir in den Kontext des zukünftigen Servers:
# chroot /debinst /bin/bash
...passen dort die fstab an und mounten alle Dateisysteme:
bash-2.05a# vi /etc/fstab /dev/hda3 / ext3 defaults,errors=remount-ro 0 1 /dev/hda2 none swap sw 0 0 /dev/hda1 /boot ext3 defaults 0 2 proc /proc proc defaults 0 0 bash-2.05a# mount -a
proc wird dabei nicht korrekt gemountet. Das muss man manuell machen:
bash-2.05a# mount -t proc proc /proc bash-2.05a# ls /proc/ 1 5282 5651 87 devices iomem meminfo self version 100 5283 5652 88 dma ioports misc slabinfo 2 5284 5653 89 driver irq modules stat 2361 5285 5654 90 execdomains kcore mounts swaps 2367 5286 6 91 filesystems kmsg mtrr sys 3 55 7 bus fs ksyms net sysvipc 4 5617 7120 cmdline ide loadavg partitions tty 5 5650 80 cpuinfo interrupts locks pci uptime
Dann müssen noch die Netzwerkeinstellungen vorgenommen werden.
Ich selbst hatte Probleme mit dem
DHCP-Client von woody; dieser wollte zumindest bei mir nicht mit dem
DHCP-Server von Strato zusammenarbeiten, so dass ich die Einstellungen
manuell vornehmen musste. Sebastian Wahl hat berichtet, dass es mit dem DHCP
aus testing funktionieren würde.
Also: Erst mal mit dem dhcp ausprobieren:
bash-2.05a# dhclient eth0 bash-2.05a# ifconfig eth0
Sofern eth0 nun eine IP-Adresse zugewiesen bekommen hat, kann man die Netzwerkkonfiguration einfach gestalten und danach mit "Weitere Konfiguration" unten fortfahren:
bash-2.05a# vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
Die eigene IP sowie den eigenen Hostnamen findet man unter config.strato.de im Bereich Serverkonfiguration/Serverdaten. Im folgenden Beispiel sind meine Daten als Beispiel angegeben; die IP (81.169.155.178) muss natürlich angepasst werden; eventuell muss auch die dritte Nummer in network und gateway (hier die 155) angepasst werden.
bash-2.05a# vi /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 81.169.155.178 netmask 255.255.255.0 network 81.169.155.0 gateway 81.169.155.1 bash-2.05a# rm /etc/resolv.conf bash-2.05a# vi /etc/resolv.conf search serverkompetenz.net nameserver 81.169.148.34 nameserver 81.169.148.39
Nun muss der Hostname eingestellt werden; h1538 muss natürlich angepasst werden.
bash-2.05a# echo h1538 >/etc/hostname
Einmal base-config starten und die Grundeinstellungen nach eigenem Ermessen tätigen:
bash-2.05a# base-config
Momentan ist wget noch nicht verfügbar; also installieren (heruntergeladen wurde es ja schon vorher aus dem Rettungssystem heraus):
# dpkg -i /debinst/wget_1.8.1-6.1_i386.deb
Momentan fehlt LILO noch das Image vom Bootsektor, daher muss LILO noch komplett installiert und konfiguriert werden (sehr wichtig ist hier serial und append!):
bash-2.05a# cd ~ bash-2.05a# wget http://ftp.de.debian.org/debian/pool/main/l/lilo/lilo_22.2-3_i386.deb bash-2.05a# dpkg -i lilo_22.2-3_i386.deb bash-2.05a# vi /etc/lilo.conf boot=/dev/hda serial = 0,57600n8 vga = normal # force sane state menu-scheme=Wg:kw:Wg:Wg read-only prompt lba32 timeout=100 # End LILO global Section # image = /boot/vmlinuz root = /dev/hda3 label = linux append ="console=tty0 console=ttyS0,57600"
...noch die serielle Konsole in der inittab eintragen und root ermöglichen, sich dort direkt einzuloggen...
bash-2.05a# echo "S0:12345:respawn:/sbin/getty -L ttyS0 57600 vt102" >> /etc/inittab bash-2.05a# echo "ttyS0" >> /etc/securetty
...und zum Schluss einen Kernel herunterladen und installieren...
Man sollte zunächst einmal per cat /proc/cpuinfo
schauen, was für einen Prozessor man hat. Dann wähle man den
richtigen Kernel aus:
Pentium IV | http://da.andaka.org/dl/kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb |
Celeron | http://da.andaka.org/dl/kernel-image-2.4.24_strato.1.3_i386-Celeron.deb |
...und lade diesen:
bash-2.05a# wget http://da.andaka.org/dl/kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb --17:24:47-- http://da.andaka.org/dl/kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb => 'kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb' Resolving da.andaka.org... 81.169.155.178 Connecting to da.andaka.org[81.169.155.178]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1,445,266 [application/x-debian-package] 100%[====================================>] 1,445,266 1004.04K/s 17:24:47 (105.17 MB/s) - 'kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb' saved [1445266/1445266] bash-2.05a# dpkg -i kernel-image-2.4.24_strato.1.3_i386-Pentium4.deb
Nun folgen die Ausgaben der Kernel-Installation (zu viele, um sie hier aufzulisten), welche mit der Ausführung von LILO endet:
You already have a LILO configuration in /etc/lilo.conf Install a boot block using the existing /etc/lilo.conf? [Yes] y Testing lilo.conf ... Testing successful. Installing the partition boot sector... Installation successful.
Nun muss nur noch auf config.strato.de
unter Serverkonfiguration/RecoveryManager der Modus "Normaler Boot" aktiviert
und die ganze Kiste rebootet werden. Dann sollte es fertig sein.
Zur Not kann man sich immer noch über die serielle Konsole einloggen.
Der oben angegebene Kernel ist ein Minimal-Kernel, d.h. er beinhaltet nur die nötigsten Sachen fest eingebaut. Wer mehr Module usw. braucht, kann sich am folgenden orientieren. Dieses Beispiel geht davon aus, dass der minimale 2.4.24 (siehe oben) installiert ist und ein 2.4.25 installiert werden soll.
# wget http://www.backports.org/debian/pool/main/k/kernel-source-2.4.25/kernel-source-2.4.25_2.4.25-1_all.deb # apt-get install kernel-package # dpkg -i kernel-source-2.4.25_2.4.25-1_all.deb # cd /usr/src # tar xvjf kernel-source-2.4.25.tar.bz2 # ln -s kernel-source-2.4.25 linux # cd linux # cp /boot/config-2.4.24 .config # make oldconfig (man kann hier ruhig immer N wählen) # make menuconfig (aktivieren, was man braucht. Nichts deaktivieren, wenn unsicher! Vorsicht, Abhängigkeiten werden nicht automatisch aufgeläst! Hilfe zu jedem Punkt lesen!) # make-kpkg kernel_image # dpkg -i ../kernel-image-2.4.25_*.deb
Im Strato-Netz existiert auch ein Debian-Mirror. Den sollte man sich vor der weiteren Installation einrichten, da der Traffic zu diesem Server als interner Traffic gilt und daher nicht berechnet wird:
# vi /etc/apt/sources.list deb http://ftp.serverkompetenz.de/debian/ stable main non-free contrib deb-src http://ftp.serverkompetenz.de/debian/ stable main non-free contrib deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free
Mit dieser Konfiguration kriegt man alle Standard-Pakete (inkl. den Non-US-Paketen) und Sicherheits-Updates. Wer mehr braucht, sollte sich backports.org oder apt-get.org ansehen.
Copyright 2003-04 by Dave Kliczbor.
Feedback in english or german welcome. Original location of this document: http://da.andaka.org/Doku/debianstrato.html
Free distribution of this document is allowed.
Many thanks to Felix Ostmann for pointing out that LILO misses the bootsector image when not explicitely installing the lilo debian package.
Many thanks to Sebastian Wahl for sending me hints to include the line in /etc/inittab and /etc/securetty for the serial console, about the Debian mirror and some notes about DHCP.