Dies ist eine AlteSeite aus unserem UseModWiki bei Sourceforge.

Bitte überarbeite die Seite, passe die Formatierung für das JSPWiki an und entferne diesen Text.

Vielen Dank!

= Debian-Basissystem
erstellen mit '''debootstrap''' =

Mittels des Debian-Tools '''debootstrap''' ist es möglich, ein
komplettes Debian-System in ein vorhandenes Verzeichnis zu
installieren. Dies ist immer dann interessant, wenn man von einem
System aus ein anderes einrichten will. Dieses andere System kann
z.B. eine zweite Festplatte sein, die man später als eigenes System
starten möchte oder auch ein virtuelles System, das dann später mit
[[QEmu]] oder UserModeLinux benutzt wird.

== Installation ==

Man braucht lediglich das entsprechende Debian-Paket zu
installieren:

  aptitude install debootstrap

== Vorgehensweise für ein Basissystem ==

Ich nehme hier als Beispiel ein Verzeichnis ''krefix'' (für unser
KrefixLinux2), in das ich mein Basissystem installieren möchte
(Dies kann natürlich auch eine frisch formatierte Partition sein,
die an diese Stelle gemountet ist).

Basissystem ''"Debian Sarge"'' durch das '''debootstrap'''-Kommando
installieren lassen.


  debootstrap sarge krefix/ http://ftp.de.debian.org/debian

oder z.B. folgendes, wenn man einen eigenen Mirror hat:

  debootstrap sarge krefix/ http://mirrors.bayen.loc/debian

In das neue System hineingehen, dabei störende Umgebungsvariablen
löschen (das neue System hat noch keine locales):

  chroot krefix
  export LANGUAGE="" LANG=""

Lokale Anpassungen vornehmen. Als erstes den Paketmanager
konfigurieren, um weitere Pakete installieren zu können:

  # entweder von Hand:
  echo "deb http://ftp.de.debian.org/debian sarge main"
>/etc/apt/sources.list
  echo "deb http://security.debian.org/ stable/updates main"
>>/etc/apt/sources.list
  # oder per Menü:
  apt-setup

Wer will, kann die AptPaketverwaltung jetzt folgendermassen
benutzen, um Pakete zu installieren:

  apt-get update
  apt-get install joe less

Das Systemverzeichnis ''/proc'' muss zugänglich sein:

  echo "proc /proc proc defaults 0 0" >/etc/fstab
  mount /proc

Je nach Anwendungszweck ist es sinnvoll, in '''/etc/fstab''' noch
das root-Dateisystem anzugeben:

  echo "/dev/hda1 / ext3 defaults,errors=remount-ro 0 1"
>>/etc/fstab

Anpassen von Dateien in ''/etc''

  echo "krefix" >/etc/hostname

Anlegen von Devices wenn nötig wie folgt. Bei aktuellem Kernel und
genug Platz besser Installation des Paketes '''udev''':

  cd /dev
  MAKEDEV update

Nun kann man noch alles mögliche andere Installieren und das System
so auf seinen Zweck zuschneiden.

  ...

verlassen kann man das System wieder mit:

  umount /proc
  exit

== Zusätze ==

=== Kernel ===

In den allermeisten Anwendungen ist es sinnvoll, einen '''Kernel'''
zu installieren. Dazu geht man wie oben beschrieben in das System
hinein und installiert ein Debian Kernel-Paket seiner Wahl. Bei
einem System in einem Image, das z.B. zum direkten Booten oder für
[[QEmu]] genutzt werden soll, benötigt man das ganze Kernelpaket.
Bei UserModeLinux oder einem DisklessClient braucht man zwar
eigentlich keinen Kernel (weil dieser vor dem Zugriff auf das
System-Verzeichnis bereits woanders hergekommen ist), allerdings
sollte man sehen, das die benötigten Kernelmodule an Ihren Platz
kommen.

=== Dinge, die eigentlich immer eingerichtet werden müssen: ===

Diese Einrichtungen benötige ich eigentlich in jedem System, das
ich per debootstrap aufgesetzt habe. Wer natürlich besonders
esoterische Anwendungszwecke hat, sollte diese Anregungen nochmal
selber überdenken:

  aptitude install ssh
  echo -e "auto lo\niface lo inet loopback"
>>etc/network/interfaces
  passwd
  aptitude install locales
  dpkg-reconfigure console-common

Erlaubt die Verwendung von '''dns-nameservers''' und
'''dns-domain''' in ''/etc/network/interfaces'':

  aptitude install resolvconf 

Normalerweise benötigt man auch einen Eintrag für ein Interface in
''/etc/network/interfaces''. Dieser kann z.B. so aussehen:

  auto eth0
  iface eth0 inet static
        address 192.168.101.17
        netmask 255.255.255.0
        gateway 192.168.101.1
        dns-nameservers 192.168.101.1
        dns-domain lug-kr.loc

== späteres Warten des Systems ==

Wenn man auf dem Rechner arbeitet, von dem man aus das System
installiert hat, kann man so in das System "hineingehen" (Die
exports sind nur nötig, wenn man keine locales installiert hat):

  chroot krefix
  export LANGUAGE="" LANG=""
  mount /proc

...und so "hinausgehen":

  umount /proc
  exit

== Mehrmaliges Verwenden eines Basissystems (Klonen) ==

Hat man nun ein solches debootstrap-Basissystem erzeugt, kann man
sich beim nächsten Mal die Arbeit verkürzen, wenn man eine Kopie
des frisch erzeugten Verzeichnisses zur Seite legt und einige Dinge
beachtet. In einer neuen Kopie ist folgendes anzupassen:

Je nachdem, wieviel Zeit ins Land gegangen ist, kann ein Upgrade
sinnvoll sein:

  aptitude update
  aptitude dist-upgrade

Der Name des Systems soll für einen neuen Verwendungszweck
sicherlich geändert werden:

  echo "meinhostname" >/etc/hostname

Die ssh-Host-Schlüssel müssen neu erzeugt werden, damit nicht
später zwei verschiedene Systeme identische Schlüssel haben:

  ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa
  ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa

Ggf. muss ''/etc/network/interfaces'' angepasst werden, wenn man
kein DHCP verwendet.

== Links ==

*
http://www.underhanded.org/papers/debian-conversion/remotedeb.html
- englischsprachige Anleitung für Installation mit debootstrap