Hallo!
Dass hier soll eine kleine Anleitung sein, wie man Debian auf einem vServer installiert. Konkret erkläre ich, was ich auf meinem v-PowerServer A von Strato gemacht habe, um das Suse gegen Debian zu tauschen.
Voraussetzungen:
Was man am Ende hat (wenn alles klappt)
So. Ich hoffe, das hat alle abgeschreckt.
Als erstes sollte man wissen, was die Idee dieser Installation ist. Der Kernel des physikalischen Hosts verwaltet die gesamten Ressourcen und Geräte. Die einzelnen vServer kommunizieren auch immer mit dem physikalischen Host, wenn sie Speicher anfordern etc. Die Geräte/Treiber/modules, die der vServer verwenden darf, sind bereits geladen, wenn er gestartet wird. Sachen, auf die man als vServer-Admin Einfluss hat, beginnen erst mit /sbin/init . (Darin liegt auch der Unterschied zum UML, bei dem tatsächlich ein zweiter vollständiger Kernel gestartet wird.)
Die Installation wird in folgenden Schritten passieren:
1.
Informationen sammeln geht am besten, wenn man sich die paar Zeilen Output am besten auf den lokalen Desktop-Rechner kopiert, finde ich.
Als kleiner Test kann man mal in /boot/ reinschauen, ob da ein Kernel ist. Falls ja: Dieses Howto ist das falsche.
Dann ist wohl ein uname -a an der Reihe.
Wichtig ist die Hardware-Architektur i686 (oder vielleicht ia64?*). Eventuell ist noch ein cat /proc/cpuinfo interessant -- aber eigentlich soll sich der Kernel darum kümmern, wie viele CPUs es gibt.
* In einem anderen Thread steht, dass ein vServer auf einem 64-Bit-System trotzdem nur 32-Bit-Software verwenden kann. Falls das so ist, sollte man wohl nie ia64 verwenden! (Wäre aber schön, wenn das nochmal jemand bestätigen könnte.)
Weiter mit dem Netzwerk:
Das loopback-Device ist wie immer, aber man sollte wissen, dass das Netzwerkgerät venet0 (alias venet0:0) heißt und nicht eth0.
Außerdem sind hier noch IP und Netzmaske interessant.
Und noch
Ich bin also nicht direkt ans Internet angeschlossen, sondern muss später ein entsprechendes Gateway wieder angeben. Am höflichsten ist es wohl, exakt diese Routen wieder zu erzeugen.
Schließlich noch die DNS-Server:
Ebenfalls ist
und
angebracht, aber vermutlich genauso langweilig wie bei mir.
Das sollte eigentlich schon alles gewesen sein, was für die Installation benötigt wird. Vermutlich hat der durchschnittliche Leser aber noch viel mehr, was er an Einstellungen retten möchte! Also, mal tief in sich gehen. Und falls der Server schon läuft und Seiten ausliefert, dann steht eine Migration bevor!
2.
Ab jetzt wird in der Rettungskonsole gearbeitet. Bei mir finde ich dort das Dateisystem des Servers unter /repair.
Das alte (Suse-)System muss erstmal aus dem Weg. Falls man das nicht macht, scheitert die Installation mit merkwürdigen Fehlermeldungen! Natürlich kann man das alte System einfach löschen, aber ich würde es eher backuppen, wie im folgenden beschrieben, auch um notfalls noch auf alte (und funktionierende) Konfigurationsdateien zugreifen zu können.
Ich habe dafür zwei Methoden genommen (hab ja viel freien Platz auf dem Server). Einmal einen kompletten Tar-Ball (für später) und einmal das ganze System erstmal nur verschoben (für jetzt). Übrigens: Um das alte System doch wieder herzustellen eignet sich ein cp -r nicht! Dabei gehen die Rechte und Eigentümer der Dateien verloren und Symlinks werden aufgelöst. Stattdessen lieber cp -r -p -d nehmen. (Oder aus dem Tarball extrahieren mit entsprechenden Optionen.)
Mein spezielles Backup-Verzeichnis /private-backup/ (bei Strato) habe ich übrigens nicht verschoben. Warum auch, das kommt keiner Distribution in die Quere. Aber bin/ etc/ usr/ lib/ und ähnliches müssen natürlich weg. home/ kann man theoretisch beibehalten, aber es könnte etwas Probleme mit den Dateiberechtigungen geben (darauf achten, dass die neuen Benutzer und Gruppen wieder die gleichen internen Nummern haben!) Evtl ist es einfacher, später als Benutzer sein Homeverzeichnis wieder selbst zu entpacken.
Ab jetzt geht es in etwa laut http://www.debian.org/releases/stable/i386/index.html.en , Anhang C, weiter. Aber so viel mehr als hier steht da nicht (bzw. vieles trifft nicht wirklich zu).
3.
Das Paket debootstrap besorgt die Basispakete. Eine passende Version kann man auf http://ftp.debian.org/debian/pool/main/d/debootstrap/ aussuchen und auf den Server herunterladen. Die .udeb- und .deb-Pakete enthalten die gleichen Programme, .udeb enthält aber weniger Dokumentation.
http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3_all.deb
sollte aktuell das richtige für jeden sein.
Danach muss debootstrap "installiert" werden. Es erwartet leider seine Dateien an ganz normalen Plätzen wie /usr/lib. Man muss also Sachen in das Rescue-System hineininstallieren. Vermutlich wird das Rescue-System beim nächsten Starten alle Änderungen wieder vergessen haben, so dass das nicht weiter stört. Sicher bin ich mir jedoch nicht, und sowieso kann das bei jedem anders sein.
Also,
So, jetzt die Debian-Frage: Was soll es denn sein? sarge (=stable), etch (=testing) oder etwa sid (=unstable)? Um ganz ehrlich zu sein, sid hat wohl auf einem Server nichts verloren. Testing wäre okay, aber ich persönlich habe sarge bevorzugt. Siehe http://www.debian.org/releases/
Dann debootstrap aufrufen:
Die Architektur ist vermutlich bei allen i386 (spezieller, also i686, geht nicht, und ia64 gibt wohl Probleme auf einem vServer). Das sarge muss entsprechend angepasst werden, wenn man nicht stable will. Den Mirror darf man natürlich frei wählen.
Wenn alles gut geht, lädt er die folgenden Pakete in das System:
(Okay, das war jetzt wenig spannend.)
Nun hat man aber bereits ein kleines Debian installiert. Ein Kernel ist übrigens nicht dabei, aber wer braucht den schon.
4.
Nun begeben wir uns in das neue System hinein. (Noch kein Neustart!)
Das erste Problem ist, dass bei mir die /etc/apt/sources.list nicht stimmte. Aus irgendeinem Grund war da Testing eingestellt. Also mal rein (Editor nano) und aus testing sarge machen. Außerdem kann man dort noch die Security-Updates einstellen. Bei mir sieht das dann am Schluss so aus:
Man kann natürlich auch noch die contrib und non-free Repositories verwenden, dann sollte man diese Zeilen hier verwenden:
So, damit man auch weiß, ob alles funktioniert:
Wer will kann bereits jetzt mit apt-get bzw aptitude Sachen installieren. So ist zum Beispiel als Editor bis jetzt nur nano installiert. Ich mache allerdings erstmal mit dem Basis-Setup weiter, weil so richtig läuft der Server noch nicht.
Die /etc/fstab kann einfach aus dem alten OS übernommen werden.
Als nächstes soll man laut dem Installation Guide das Verzeichnis /proc mounten. Das habe ich aber vergessen und es tat trotzdem. Schaden würde es aber nicht. Außerdem mal alle Einträge aus der fstab laden (vor allem dev/pts wird wohl benötigt).
Mittels
kann man nun bequem das System etwas einrichten. Wir beschränken uns aber auf die elementaren Sachen: Keyboard (fast sinnfrei für einen vServer, ich hab die Kernel-interne Keymap genommen), Zeitzone und vor allem: Root Passwort setzen und einen "normalen" Nutzer anlegen.
Jetzt noch das Netzwerk. Bei Suse findet man die Einstellungen unter /etc/sysconfig/network/ , wenn man nochmal etwas nachgucken will. Unter debian kann alles über /etc/network/interfaces eingestellt werden.
Meine interfaces sieht so aus:
Damit habe ich die vorgebene Netzwerkkonfiguration nachgebaut. Achtung, Routen müssen in einer "sinnvollen" Reihenweise angegeben werden. Also erst, wie man zum Gateway kommt, und dann, wie man zum Rest der Welt mittels des Gateways verbindet.
Schließlich sollte man noch seinen Servernamen in /etc/hostname eintragen (oder aus dem alten OS kopieren).
Damit der Server auch nutzbar ist, sollte man nun den SSH-Chlient und -Server installieren:
5.
Nun sollte eigentlich alles soweit sein, dass man auch vom Server aus weiterarbeiten kann. Also macht man nun einen Neustart. Ein ping auf den Server sollte zeigen, ob das Netzwerk funktioniert. Falls ja, sollte man sich auch per ssh einloggen können. Falls nein, wird es etwas komplizierter. Aus einem nicht erreichbaren System Informationen herauszukriegen, ist nicht sehr einfach. Von der Rettungskonsole aus sollte man nochmal alle Einstellungen überprüfen. Außerdem bietet /repair/var/log/messages vielleicht Hinweise darauf, wieweit das System gekommen ist. Ich habe die Einstellungen des Servers mit einem S99Test-Skript in /etc/rcS.d/ in Dateien ausgeben lassen. (Und auch da Ping-Versuche von dem Server aus probiert.)
Aber eigentlich tat bei mir alles, nur hatte ich das Netzwerk falsch eingerichtet
6.
Was bleibt noch zu tun? Zum einen produziert init.d noch Fehlermeldungen, weil es die in /etc/inittab konfigurierten Gettys nicht laden kann. Einfach die folgenden Zeilen auskommentieren:
Nebenbei: Der Server startet ins Runlevel 2.
Das Setzen der Hardware-Uhr (was der physikalische Host nicht zulässt), kann man getrost ausschalten:
Außerdem versucht sich wohl noch ein Modul zu laden, was nicht klappen kann, ich weiß aber nicht, welches. Vermutlich kann man /etc/rcS.d/ und /etc/rc2.d/ noch gründlich aufräumen, um solche unnötigen Aktionen ganz zu vermeiden. Wer hier Fortschritte macht, kann sie gerne melden!
Weiter geht es dann mit der "normalen" Serverkonfiguration. Benutzer einrichten, SSH absichern, Mailserver korrekt einrichten (exim4 ist bereits geladen) usw usf.
Empfehlenswert ist es, möglichst früh und oft ein komplettes Backup des Systems zu machen, schließlich bietet der Hoster kein Debian-Image an. Bei mir war der Tarball des rudimentären Debians 50 MB groß (mit gzip), so viel Platz sollte sein.
Viel Erfolg! Wer Fehler findet oder Ergänzungen hat, soll sich hier melden, ich arbeite die Korrekturen dann ein. Auch freu ich mich über ein "Danke, hat geklappt, musste nur noch ... "
Mit freundlichen Grüßen,
Daniel D
Update 1: Hinweis eingebaut, dass 64-Bit-Software vermutlich nicht funktioniert.
Update 2: Debootstrap sollte wohl immer mit der i386-Architektur aufgerufen werden. i686 akzeptiert er da nicht.
Update 3: Angemerkt, dass das alte System erst weg muss.
Update 4: Hinweise von Benutzer "1337_" eingebaut und (hoffentlich) besser auf base-config eingegangen.
Dass hier soll eine kleine Anleitung sein, wie man Debian auf einem vServer installiert. Konkret erkläre ich, was ich auf meinem v-PowerServer A von Strato gemacht habe, um das Suse gegen Debian zu tauschen.
Voraussetzungen:
- Einen virtuellen Server, der unter Virtuozzo o.ä. läuft. (UserModeLinux funktioniert anders!)
- Zugang zu dem Dateisystem des vServers über eine Rettungskonsole.
- Eine Möglichkeit, das System neuzubooten und neuzuinstallieren, falls etwas sehr schief geht
- Linuxkenntnisse ...
- Zeit, den Server komplett neu einzurichten (und zu migrieren)
- Tiefe Abneigung gegenüber Plesk
Was man am Ende hat (wenn alles klappt)
- Ein minimales Debian-System, ohne Apache/MySQL/..
- Kein Plesk, und man wird es vermutlich auch nicht nachinstallieren können.
- Ein System, das möglicherweise nicht mehr bootet, wenn der physikalische Host verändert wird oder einen neuen Kernel bekommt.
So. Ich hoffe, das hat alle abgeschreckt.
Als erstes sollte man wissen, was die Idee dieser Installation ist. Der Kernel des physikalischen Hosts verwaltet die gesamten Ressourcen und Geräte. Die einzelnen vServer kommunizieren auch immer mit dem physikalischen Host, wenn sie Speicher anfordern etc. Die Geräte/Treiber/modules, die der vServer verwenden darf, sind bereits geladen, wenn er gestartet wird. Sachen, auf die man als vServer-Admin Einfluss hat, beginnen erst mit /sbin/init . (Darin liegt auch der Unterschied zum UML, bei dem tatsächlich ein zweiter vollständiger Kernel gestartet wird.)
Die Installation wird in folgenden Schritten passieren:
- Notwendige Konfiguration aus dem bestehenden System auslesen
- Das bestehende System aus dem Weg räumen
- Debian Installation
- Kleine Korrekturen, Netzwerk einrichten, sshd installieren
- Neustart
- Offene Punkte
1.
Informationen sammeln geht am besten, wenn man sich die paar Zeilen Output am besten auf den lokalen Desktop-Rechner kopiert, finde ich.
Als kleiner Test kann man mal in /boot/ reinschauen, ob da ein Kernel ist. Falls ja: Dieses Howto ist das falsche.
Dann ist wohl ein uname -a an der Reihe.
Code:
# uname -a
Linux zuzeigen.de 2.4.20-021stab028.19.777 #1 Wed Oct 19 13:37:24 MSD 2005 i686 GNU/Linux
* In einem anderen Thread steht, dass ein vServer auf einem 64-Bit-System trotzdem nur 32-Bit-Software verwenden kann. Falls das so ist, sollte man wohl nie ia64 verwenden! (Wäre aber schön, wenn das nochmal jemand bestätigen könnte.)
Weiter mit dem Netzwerk:
Code:
# ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1008 (1008.0 b) TX bytes:1008 (1008.0 b)
venet0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
RX packets:284 errors:0 dropped:0 overruns:0 frame:0
TX packets:349 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:26293 (25.6 KiB) TX bytes:26059 (25.4 KiB)
venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:85.214.43.177 P-t-P:85.214.43.177 Bcast:0.0.0.0 Mask:255.255.255.255
UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1
Das loopback-Device ist wie immer, aber man sollte wissen, dass das Netzwerkgerät venet0 (alias venet0:0) heißt und nicht eth0.
Außerdem sind hier noch IP und Netzmaske interessant.
Und noch
Code:
# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
191.255.255.0 * 255.255.255.0 U 0 0 0 venet0
default 191.255.255.1 0.0.0.0 UG 0 0 0 venet0
Schließlich noch die DNS-Server:
Code:
# cat /etc/resolv.conf
nameserver 81.169.163.104
nameserver 81.169.163.106
Ebenfalls ist
Code:
# mount
/dev/vzfs on / type reiserfs (rw,usrquota,grpquota)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw)
tmpfs on /dev/shm type tmpfs (rw)
Code:
# more /etc/fstab
proc /proc proc defaults 0 0
none /dev/pts devpts rw 0 0
Das sollte eigentlich schon alles gewesen sein, was für die Installation benötigt wird. Vermutlich hat der durchschnittliche Leser aber noch viel mehr, was er an Einstellungen retten möchte! Also, mal tief in sich gehen. Und falls der Server schon läuft und Seiten ausliefert, dann steht eine Migration bevor!
2.
Ab jetzt wird in der Rettungskonsole gearbeitet. Bei mir finde ich dort das Dateisystem des Servers unter /repair.
Das alte (Suse-)System muss erstmal aus dem Weg. Falls man das nicht macht, scheitert die Installation mit merkwürdigen Fehlermeldungen! Natürlich kann man das alte System einfach löschen, aber ich würde es eher backuppen, wie im folgenden beschrieben, auch um notfalls noch auf alte (und funktionierende) Konfigurationsdateien zugreifen zu können.
Ich habe dafür zwei Methoden genommen (hab ja viel freien Platz auf dem Server). Einmal einen kompletten Tar-Ball (für später) und einmal das ganze System erstmal nur verschoben (für jetzt). Übrigens: Um das alte System doch wieder herzustellen eignet sich ein cp -r nicht! Dabei gehen die Rechte und Eigentümer der Dateien verloren und Symlinks werden aufgelöst. Stattdessen lieber cp -r -p -d nehmen. (Oder aus dem Tarball extrahieren mit entsprechenden Optionen.)
Code:
rescue:/ # cd repair
rescue:/repair # tar czf Suse93.tar.gz bin/ ........ $alles OS-mäßige aus /repair$
rescue:/repair # mkdir Suse93
rescue:/repair # mv Suse93.tar.gz Suse93
rescue:/repair # mv bin/ .... $alles OS-mäßige aus /repair$ Suse93/
Ab jetzt geht es in etwa laut http://www.debian.org/releases/stable/i386/index.html.en , Anhang C, weiter. Aber so viel mehr als hier steht da nicht (bzw. vieles trifft nicht wirklich zu).
3.
Das Paket debootstrap besorgt die Basispakete. Eine passende Version kann man auf http://ftp.debian.org/debian/pool/main/d/debootstrap/ aussuchen und auf den Server herunterladen. Die .udeb- und .deb-Pakete enthalten die gleichen Programme, .udeb enthält aber weniger Dokumentation.
http://ftp.debian.org/debian/pool/main/d/debootstrap/debootstrap_0.3.3_all.deb
sollte aktuell das richtige für jeden sein.
Danach muss debootstrap "installiert" werden. Es erwartet leider seine Dateien an ganz normalen Plätzen wie /usr/lib. Man muss also Sachen in das Rescue-System hineininstallieren. Vermutlich wird das Rescue-System beim nächsten Starten alle Änderungen wieder vergessen haben, so dass das nicht weiter stört. Sicher bin ich mir jedoch nicht, und sowieso kann das bei jedem anders sein.
Also,
Code:
rescue:/tmp# ar -x path_to/debootstrap_0.3.3_all.deb
rescue:/tmp# cd /
rescue:/# tar xzf /tmp/data.tar.gz
rescue:/# tar xzf /tmp/control.tar.gz
So, jetzt die Debian-Frage: Was soll es denn sein? sarge (=stable), etch (=testing) oder etwa sid (=unstable)? Um ganz ehrlich zu sein, sid hat wohl auf einem Server nichts verloren. Testing wäre okay, aber ich persönlich habe sarge bevorzugt. Siehe http://www.debian.org/releases/
Dann debootstrap aufrufen:
Code:
rescue:/# /usr/sbin/debootstrap --arch i386 sarge /repair/ http://ftp.de.debian.org/debian
Wenn alles gut geht, lädt er die folgenden Pakete in das System:
Code:
# dpkg --list
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ Name Version Description
+++-==============================-==============================-============================================================================
ii adduser 3.63 Add and remove users and groups
ii apt 0.5.28.6 Advanced front-end for dpkg
ii apt-utils 0.5.28.6 APT utility programs
ii aptitude 0.2.15.9-2 terminal-based apt frontend
ii at 3.1.8-11 Delayed job execution and batch processing
ii base-config 2.53.10 Debian base system configurator
ii base-files 3.1.2 Debian base system miscellaneous files
ii base-passwd 3.5.9 Debian base system master password and group files
ii bash 2.05b-26 The GNU Bourne Again SHell
ii bsdmainutils 6.0.17 collection of more utilities from FreeBSD
ii bsdutils 2.12p-4sarge1 Basic utilities from 4.4BSD-Lite
ii console-common 0.7.49 Basic infrastructure for text console configuration
ii console-data 2002.12.04dbs-49 Keymaps, fonts, charset maps, fallback tables for console-tools
ii console-tools 0.2.3dbs-56 Linux console and font utilities
ii coreutils 5.2.1-2 The GNU core utilities
ii cpio 2.5-1.3 GNU cpio -- a program to manage archives of files.
ii cron 3.0pl1-86 management of regular background processing
ii debconf 1.4.30.13 Debian configuration management system
ii debconf-i18n 1.4.30.13 full internationalization support for debconf
ii debianutils 2.8.4 Miscellaneous utilities specific to Debian
ii dhcp-client 2.0pl5-19.1 DHCP Client
ii diff 2.8.1-11 File comparison utilities
ii dpkg 1.10.28 Package maintenance system for Debian
ii dselect 1.10.28 a user tool to manage Debian packages
ii e2fslibs 1.37-2sarge1 ext2 filesystem libraries
ii e2fsprogs 1.37-2sarge1 ext2 file system utilities and libraries
ii ed 0.2-20 The classic unix line editor
ii exim4 4.50-8 metapackage to ease exim MTA (v4) installation
ii exim4-base 4.50-8 support files for all exim MTA (v4) packages
ii exim4-config 4.50-8 configuration for the exim MTA (v4)
ii exim4-daemon-light 4.50-8 lightweight exim MTA (v4) daemon
ii fdutils 5.4-20040228-1 Linux floppy utilities
ii findutils 4.1.20-6 utilities for finding files--find, xargs, and locate
ii gcc-3.3-base 3.3.5-13 The GNU Compiler Collection (base package)
ii gettext-base 0.14.4-2 GNU Internationalization utilities for the base system
ii grep 2.5.1.ds1-4 GNU grep, egrep and fgrep
ii groff-base 1.18.1.1-7 GNU troff text-formatting system (base system components)
ii gzip 1.3.5-10sarge1 The GNU compression utility
ii host 20000331-9 utility for querying DNS servers
ii hostname 2.13 A utility to set/show the host name or domain name
ii ifupdown 0.6.7 high level tools to configure network interfaces
ii info 4.7-2.2 Standalone GNU Info documentation browser
ii initscripts 2.86.ds1-1 Standard scripts needed for booting and shutting down
ii ipchains 1.3.10-15 Network firewalling for Linux 2.2.x
ii iptables 1.2.11-10 Linux kernel 2.4+ iptables administration tools
ii iputils-ping 20020927-2 Tools to test the reachability of network hosts
ii klogd 1.4.1-17 Kernel Logging Daemon
ii less 382-1 Pager program similar to more
ii libacl1 2.2.23-1 Access control list shared library
ii libattr1 2.4.16-1 Extended attribute shared library
ii libblkid1 1.37-2sarge1 block device id library
ii libc6 2.3.2.ds1-22 GNU C Library: Shared libraries and Timezone data
ii libcap1 1.10-14 support for getting/setting POSIX.1e capabilities
ii libcomerr2 1.37-2sarge1 common error description library
ii libconsole 0.2.3dbs-56 Shared libraries for Linux console and font manipulation
ii libdb1-compat 2.1.3-7 The Berkeley database routines [glibc 2.0/2.1 compatibility]
ii libdb3 3.2.9-22 Berkeley v3 Database Libraries [runtime]
ii libdb4.2 4.2.52-18 Berkeley v4.2 Database Libraries [runtime]
ii libgcc1 3.4.3-13 GCC support library
ii libgcrypt11 1.2.0-11.1 LGPL Crypto library - runtime library
ii libgdbm3 1.8.3-2 GNU dbm database routines (runtime version)
ii libgnutls11 1.0.16-13.1 GNU TLS library - runtime library
ii libgpg-error0 1.0-1 library for common error values and messages in GnuPG components
ii libgpmg1 1.19.6-19sarge1 General Purpose Mouse - shared library
ii liblocale-gettext-perl 1.01-17 Using libc functions for internationalization in Perl
ii liblockfile1 1.06 NFS-safe locking library, includes dotlockfile program
ii liblzo1 1.08-1.2 A real-time data compression library
ii libncurses5 5.4-4 Shared libraries for terminal handling
ii libnewt0.51 0.51.6-20 Not Erik's Windowing Toolkit - text mode windowing with slang
ii libopencdk8 0.5.5-10 Open Crypto Development Kit (OpenCDK) (runtime)
ii libpam-modules 0.76-22 Pluggable Authentication Modules for PAM
ii libpam-runtime 0.76-22 Runtime support for the PAM library
ii libpam0g 0.76-22 Pluggable Authentication Modules library
ii libpcap0.7 0.7.2-7 System interface for user-level packet capture
ii libpcre3 4.5-1.2sarge1 Perl 5 Compatible Regular Expression Library - runtime files
ii libpopt0 1.7-5 lib for parsing cmdline parameters
ii libsigc++-1.2-5c102 1.2.5-4 type-safe Signal Framework for C++ - runtime
ii libss2 1.37-2sarge1 command-line interface parsing library
ii libssl0.9.7 0.9.7e-3sarge1 SSL shared libraries
ii libstdc++5 3.3.5-13 The GNU Standard C++ Library v3
ii libtasn1-2 0.2.10-3 Manage ASN.1 structures (runtime)
ii libtext-charwidth-perl 0.04-1 get display widths of characters on the terminal
ii libtext-iconv-perl 1.2-3 Convert between character sets in Perl
ii libtext-wrapi18n-perl 0.06-1 internationalized substitute of Text::Wrap
ii libtextwrap1 0.1-1 text-wrapping library with i18n - runtime
ii libuuid1 1.37-2sarge1 universally unique id library
ii libwrap0 7.6.dbs-8 Wietse Venema's TCP wrappers library
ii login 4.0.3-31sarge5 system login tools
ii logrotate 3.7-5 Log rotation utility
ii mailx 8.1.2-0.20040524cvs-4 A simple mail user agent
ii makedev 2.3.1-77 creates device files in /dev
ii man-db 2.4.2-21 The on-line manual pager
ii manpages 1.70-1 Manual pages about using a GNU/Linux system
ii mawk 1.3.3-11 a pattern scanning and text processing language
ii modutils 2.4.26-1.2 Linux module utilities
ii mount 2.12p-4sarge1 Tools for mounting and manipulating filesystems
ii nano 1.2.4-5 free Pico clone with some new features
ii ncurses-base 5.4-4 Descriptions of common terminal types
ii ncurses-bin 5.4-4 Terminal-related programs and man pages
ii net-tools 1.60-10 The NET-3 networking toolkit
ii netbase 4.21 Basic TCP/IP networking system
ii netkit-inetd 0.10-10 The Internet Superserver
ii nvi 1.79-22 4.4BSD re-implementation of vi
ii passwd 4.0.3-31sarge5 change and administer password and group data
ii pciutils 2.1.11-15 Linux PCI Utilities
ii perl-base 5.8.4-8 The Pathologically Eclectic Rubbish Lister
ii ppp 2.4.3-20050321+2 Point-to-Point Protocol (PPP) daemon
ii pppconfig 2.3.11 A text menu based utility for configuring ppp
ii pppoe 3.5-4 PPP over Ethernet driver
ii pppoeconf 1.7 configures PPPoE/ADSL connections
ii procps 3.2.1-2 The /proc file system utilities
ii psmisc 21.5-1 Utilities that use the proc filesystem
ii sed 4.1.2-8 The GNU sed stream editor
ii slang1a-utf8 1.4.9dbs-8 The S-Lang programming library with utf8 support
ii sysklogd 1.4.1-17 System Logging Daemon
ii sysv-rc 2.86.ds1-1 Standard boot mechanism using symlinks in /etc/rc?.d
ii sysvinit 2.86.ds1-1 System-V like init
ii tar 1.14-2 GNU tar
ii tasksel 2.24 Tool for selecting tasks for installation on Debian system
ii tcpd 7.6.dbs-8 Wietse Venema's TCP wrapper utilities
ii telnet 0.17-29 The telnet client
ii util-linux 2.12p-4sarge1 Miscellaneous system utilities
ii wget 1.9.1-12 retrieves files from the web
ii whiptail 0.51.6-20 Displays user-friendly dialog boxes from shell scripts
ii zlib1g 1.2.2-4.sarge.2 compression library - runtime
Nun hat man aber bereits ein kleines Debian installiert. Ein Kernel ist übrigens nicht dabei, aber wer braucht den schon.
4.
Nun begeben wir uns in das neue System hinein. (Noch kein Neustart!)
Code:
chroot /repair /bin/bash
Das erste Problem ist, dass bei mir die /etc/apt/sources.list nicht stimmte. Aus irgendeinem Grund war da Testing eingestellt. Also mal rein (Editor nano) und aus testing sarge machen. Außerdem kann man dort noch die Security-Updates einstellen. Bei mir sieht das dann am Schluss so aus:
Code:
deb http://ftp.de.debian.org/debian sarge main
deb http://ftp.de.debian.org/debian-security sarge/updates main
# Source, wer will
#deb-src http://ftp.de.debian.org/debian/ sarge main
Man kann natürlich auch noch die contrib und non-free Repositories verwenden, dann sollte man diese Zeilen hier verwenden:
Code:
deb ftp://ftp.de.debian.org/debian sarge main contrib non-free
deb ftp://ftp.de.debian.org/debian-security sarge/updates main contrib non-free
So, damit man auch weiß, ob alles funktioniert:
Code:
chroot:/# apt-get update
Wer will kann bereits jetzt mit apt-get bzw aptitude Sachen installieren. So ist zum Beispiel als Editor bis jetzt nur nano installiert. Ich mache allerdings erstmal mit dem Basis-Setup weiter, weil so richtig läuft der Server noch nicht.
Die /etc/fstab kann einfach aus dem alten OS übernommen werden.
Code:
chroot:/# cp Suse93/etc/fstab /etc/fstab
Als nächstes soll man laut dem Installation Guide das Verzeichnis /proc mounten. Das habe ich aber vergessen und es tat trotzdem. Schaden würde es aber nicht. Außerdem mal alle Einträge aus der fstab laden (vor allem dev/pts wird wohl benötigt).
Code:
chroot:/# mount -t proc proc /proc
chroot:/# mount -a
Mittels
Code:
/usr/sbin/base-config new
Jetzt noch das Netzwerk. Bei Suse findet man die Einstellungen unter /etc/sysconfig/network/ , wenn man nochmal etwas nachgucken will. Unter debian kann alles über /etc/network/interfaces eingestellt werden.
Meine interfaces sieht so aus:
Code:
auto lo
iface lo inet loopback
auto venet0
iface venet0 inet static
address 127.0.0.1
netmask 255.255.255.255
broadcast 0.0.0.0
auto venet0:0
iface venet0:0 inet static
address 85.214.43.177
netmask 255.255.255.255
broadcast 0.0.0.0
up route add -net 191.255.255.0 netmask 255.255.255.0 venet0
up route add default gw 191.255.255.1 venet0
down route del default
down route del -net 191.255.255.0
Schließlich sollte man noch seinen Servernamen in /etc/hostname eintragen (oder aus dem alten OS kopieren).
Damit der Server auch nutzbar ist, sollte man nun den SSH-Chlient und -Server installieren:
Code:
chroot:/# apt-get install ssh
5.
Nun sollte eigentlich alles soweit sein, dass man auch vom Server aus weiterarbeiten kann. Also macht man nun einen Neustart. Ein ping auf den Server sollte zeigen, ob das Netzwerk funktioniert. Falls ja, sollte man sich auch per ssh einloggen können. Falls nein, wird es etwas komplizierter. Aus einem nicht erreichbaren System Informationen herauszukriegen, ist nicht sehr einfach. Von der Rettungskonsole aus sollte man nochmal alle Einstellungen überprüfen. Außerdem bietet /repair/var/log/messages vielleicht Hinweise darauf, wieweit das System gekommen ist. Ich habe die Einstellungen des Servers mit einem S99Test-Skript in /etc/rcS.d/ in Dateien ausgeben lassen. (Und auch da Ping-Versuche von dem Server aus probiert.)
Aber eigentlich tat bei mir alles, nur hatte ich das Netzwerk falsch eingerichtet
6.
Was bleibt noch zu tun? Zum einen produziert init.d noch Fehlermeldungen, weil es die in /etc/inittab konfigurierten Gettys nicht laden kann. Einfach die folgenden Zeilen auskommentieren:
Code:
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6
Nebenbei: Der Server startet ins Runlevel 2.
Das Setzen der Hardware-Uhr (was der physikalische Host nicht zulässt), kann man getrost ausschalten:
Code:
rm /etc/rcS.d/S18hwclockfirst.sh /etc/rcS.d/S50hwclock.sh
Außerdem versucht sich wohl noch ein Modul zu laden, was nicht klappen kann, ich weiß aber nicht, welches. Vermutlich kann man /etc/rcS.d/ und /etc/rc2.d/ noch gründlich aufräumen, um solche unnötigen Aktionen ganz zu vermeiden. Wer hier Fortschritte macht, kann sie gerne melden!
Weiter geht es dann mit der "normalen" Serverkonfiguration. Benutzer einrichten, SSH absichern, Mailserver korrekt einrichten (exim4 ist bereits geladen) usw usf.
Empfehlenswert ist es, möglichst früh und oft ein komplettes Backup des Systems zu machen, schließlich bietet der Hoster kein Debian-Image an. Bei mir war der Tarball des rudimentären Debians 50 MB groß (mit gzip), so viel Platz sollte sein.
Viel Erfolg! Wer Fehler findet oder Ergänzungen hat, soll sich hier melden, ich arbeite die Korrekturen dann ein. Auch freu ich mich über ein "Danke, hat geklappt, musste nur noch ... "
Mit freundlichen Grüßen,
Daniel D
Update 1: Hinweis eingebaut, dass 64-Bit-Software vermutlich nicht funktioniert.
Update 2: Debootstrap sollte wohl immer mit der i386-Architektur aufgerufen werden. i686 akzeptiert er da nicht.
Update 3: Angemerkt, dass das alte System erst weg muss.
Update 4: Hinweise von Benutzer "1337_" eingebaut und (hoffentlich) besser auf base-config eingegangen.
Last edited by a moderator: