Das hier ist eine Anleitung wie man Debian auf einem Rechner per ssh installiert. Ich garantiere nicht das es funktioniert und bevor man das mit seinem Rootserver ausprobiert sollte man das auf einem Lokalen Rechner testen. Ein Backup der Daten sollte selbstverständlich vorhanden sein und man sollte sich im klaren darüber sein das eine Neuinstallation durch den Provider unter Umständen Geld kostet.


Selten ist auf einem Rootserver die Wunsch Distribution installiert. Hat man keine Möglichkeit eine neu Installation, mit der gewünschten Distribution, zu beantragen bleibt einem nur die Möglichkeit selbst ein Betriebssystem zu installieren.

Debian bietet mit deboostrap ein schönes tool um eine Basis Installation, unter einem laufenden Betriebssystem, in einem beliebigen Ordner durchzuführen. Um debootstrap nutzen zu können muss man es aber unter dem laufenden Betriebssystem installieren, was unter Umständen zu Problemen führen kann. Eine externe Recovery console arbeitet meistens mit einem readonly gemounteten Filesystem, so dass man keine Möglichkeit hat debootstrap zu installieren.

Grundsätzlich funktioniert die Installation per ssh folgendermassen:

1.Partitionieren und mounten der Festplatte.
2.Kopieren eines Basissystems.
3.Installation des Bootloaders.

Um die Festplatte partitionieren zu können benötigt man ein Recovery System das nicht auf die Festplatte zu greift. Bietet der Provider kein solches System an hat man die Möglichkeit selber ein System zu Installieren, oder das neue System auf einem Teil der Festplatte zu installieren z.B.: die swap partition. Dieses Tutorial setzt das vorhanden sein eine externen Recovery Systems voraus. Des weiteren benötigt man im Recovery System ein Programm um Daten von sich zum Server zu transferieren (scp, ftp server oder ähnliches), ein tool zum partitionieren (fdisk, cfdisk) und chroot.


Die Installation läuft folgendermassen ab. Als erstes installieren wir auf irgendeinem Rechner ein Basissystem. Danach wird dieses Basissystem auf den Server kopiert und dann müssen nur noch ein paar Konfigurationsdateien angepasst werden. Das ist nicht der schönste weg eher eine Quick&Dirty Methode aber sie funktioniert und debootstrap macht im Prinzip nichts anderes.

Als erstes sollte man die Datei /etc/network/interfaces vom original Server sichern, da wir diese Informationen für die spätere Anpassung brauchen. Wenn der Server per DHCP konfiguriert wird ist das nicht vonnöten. Um sicherzustellen das der neue Kernel auch die Hardware unterstützt sollte man sich auch die Kernel Konfiguration sichern und auch die Ausgabe von lspci und lsmod.

Als nächstes installieren wir ein Basis Debian. Am einfachsten geht das mit einer Netinstall CD von Debian und VMWare. Wie man das System partitioniert ist eigentlich egal, wichtig ist nur das man keine zusätzlichen Pakete installiert um die Datenmenge möglichst klein zu halten, dass einzige was wir nachinstallieren ist der sshd denn ohne den haben wir keinen Zugriff auf den Root Server. Der Debian Kernel unterstützt eine große Menge an Hardware, trotzdem sollte man überprüfen ob der Kernel auch die Netzwerk Karte unterstützt die in dem Root Server installiert ist. Wenn sichergestellt ist das der Kernel die Netzwerk Karte unterstützt und der sshd läuft und beim booten gestartet wird, machen wir uns ans kopieren der Daten.
Dazu booten wir ein Live Linux z.B. Knoppix, mounten die Partition und archivieren deren Inhalt in einem Archiv. (Man muss natürlich auch eine Netzwerk Freigabe oder weiter Partition mounten auf der man das Archiv speichert.)
Nun loggen wir uns auf dem Recovery System ein und partitionieren die Festplatte des Rootservers nach unseren wünschen. Dann erstellen wir einen Ordner in dem wir die Partitionen mounten wollen. Im einfachsten Fall ist das ein einzelner Ordner oder eine eine Komplette HFS Hierarchie. Nachdem die Partitionen gemounted worden sind kann man das Archiv mit dem Basissystem auf den Rootserver kopieren und entpacken.
Nun muss man die Konfigurationsdateien anpassen. Wichtig ist eine korrekte fstab, interfaces und menu.lst. Hat man die Konfigurationsdateien angepasst bleibt nur noch die installation des Bootloaders. Dazu chrooten wir in das System und führen die Grub installation aus. Danach bleibt nur noch den Server zu resetten und hoffen das man alles richtig Konfiguriert hat.


!!! Es kann je nach Rechner zu unerwarteten Fehlermeldungen kommen die hier nicht behandelt werden. Man sollte mit den hier verwendeten Programmen umgehen können. !!!

Hier noch schritt für schritt die Befehle. Im Beispiel verwenden wir folgende Rechner.

home <- der Rechner von dem aus gearbeitet wird.
install <- der Rechner auf dem man die Debian Basis Installation durchführt
root <- der Rootserver
chroot <- das neue Debian auf dem Rootserver

Auf home läuft ein samba server (Alternativ tuts auch ein NFS server).

An Software benötigen wir eine Debian Network Install CD und eine Knoppix CD.


Rechner Install von CD Booten und ein Basis Debian Installieren. Die Festplatte partitionieren wir als eine Große Partition und bei der Paket Auswahl wählen wir nichts. Ist die Installation fertig loggen wir uns als root ein.

install:~# apt-get update
install:~# apt-get upgrade
install:~# apt-get install ssh

Bei der Installation von ssh wählen wir suid und sagen das wir denn Server jetzt starten wollen. Er wird dann auch beim Booten gestartet.

!!! Wenn man definitiv weiß das der kernel vom Basis System die Hardware vom Rootserver unterstützt kann man weitermachen. !!!

Dann booten wir die Knoppix CD (am Bootprompt am besten knoppix 2 eingeben).

install:~# cd /mnt
install:~# mkdir source
install:~# mkdir target
install:~# mount -t ext3 /dev/hda1 /mnt/source
install:~# mount -t smb -o username=foo,password=bar //home/foobar /mnt/target
install:~# cd /mnt/source
install:~# tar czf /mnt/target/root.tar ./
install:~# cd
install:~# umount /mnt/source
install:~# umount /mnt/target
install:~# shutdown -h now



home:~# ssh root@root
root:~# cp /etc/network/interfaces „ftproot“
root:~# cp /boot/config-xyz „ftproot“
root:~# lsmod > „ftproot“/lsmod
root:~# lspci > „ftproot“/lspci
root:~# exit
home:~# ftp root
ftp> get interfaces
ftp> get config-xyz
ftp> get lsmod
ftp> get lspci
ftp> bye
home:~#

Jetzt den Rootserver, im webinterface ins Recovery system booten.

home:~# ssh root@root
root:~# fdisk /dev/hda
Command (m for help): d <- alte partitionen löschen
Command (m for help): n <- eine neue partition erstellen
Command (m for help): w <- dateisystem schreiben
Command (m for help): q <- beenden
root:~#

Jetzt starten wir den Server neu (sicherheitshalber) und beantragen dann wieder einen reboot ins recovery system.

home:~# ssh root@root
root:~# cd /mnt
root:~# mkdir debinst
root:~# mke2fs -j /dev/hda1
root:~# mount -t ext3 /dev/hda1 /mnt/debinst
root:~# cd /mnt/debinst
root:~# mkdir tmp
root:~# exit
home:~# scp root@localhost:/“pfadzursmbfreigabe“/root root@root:/mnt/debinst/tmp/
home:~# ssh root@root
root:~# cd /mnt/debinst/
root:~# tar xzf tmp/root
root:~# rm -r tmp
root:~# vim /mnt/debinst/etc/network/interfaces

Hier alles löschen und dann denn inhalt der alten interfaces einfügen könnte so aussehen:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address xxx.xxx.xxx.xxx
netmask xxx.xxx.xxx.xxx
network xxx.xxx.xxx.xxx
broadcast xxx.xxx.xxx.xxx
gateway xxx.xxx.xxx.xxx

root:~# vim /mnt/debinst/etc/fstab

Hier alles löschen und folgendes eingeben :

# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1

root:~# chroot /mnt/debinst /bin/bash
chroot:~# grub-install /dev/hda
chroot:~# exit
root:~# shutdown -r now
root:~# exit

Das wars ....


Links:

Debian Netinstallation iso
http://ftp.fi.debian.org/debian-minicd/woody-i386-1.iso

Andere Howto's zu diesem Thema
http://twiki.iwethey.org/twiki/bin/v...nChrootInstall
http://www.linux-magazin.de/Artikel/...v/debserv.html
http://www.underhanded.org/papers/de...remotedeb.html