This page (revision-7) was last changed on 15-Feb-2011 12:12 by Peter Hormanns 

This page was created on 03-Oct-2006 21:29 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Page revision history

Version Date Modified Size Author Changes ... Change note
7 15-Feb-2011 12:12 6 KB Peter Hormanns to previous
6 25-Jan-2008 08:44 6 KB ThomasBayen to previous | to last Tagging
5 05-Nov-2006 12:40 6 KB ThomasBayen to previous | to last Ubuntu per debootstrap
4 10-Oct-2006 10:08 5 KB PeterHormanns to previous | to last Link Ubuntu
3 09-Oct-2006 16:25 5 KB PeterHormanns to previous | to last Formatierung fuer JSPWiki
2 09-Oct-2006 16:25 5 KB PeterHormanns to previous | to last Formatierung fuer JSPWiki
1 03-Oct-2006 21:29 5 KB UnknownAuthor to last

Page References

Incoming links Outgoing links

Version management

Difference between version and

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

!! Andere Distributionen (Ubuntu Linux)

Man kann auf einem Debian-Basissystem übrigens auch sehr einfach ein Ubuntu-Gastsystem erzeugen. Dazu benötigt man lediglich die aktuelle Version den Ubuntu-__debootstrap__-Paketes, die man z.B. auf https://wiki.ubuntu.com/DebootstrapChroot bekommt und dann mit {{dpkg -i debootstrap_0.3.3.0ubuntu7_all.deb}} installiert. Dann kann man mit einem Befehl wie dem folgenden ein Ubuntu-System installieren:

{{{
 debootstrap edgy myubuntu/ http://archive.ubuntu.com/ubuntu/
}}}

Auch für RPM-basierte Distributionen (Suse, Red Hat/Fedora) soll es ein Tool namens rpmbootstrap geben. Damit habe ich allerdings noch nicht gearbeitet. (Wozu auch, wenn man Debian und Ubuntu hat :-) )

!! Links

* http://www.underhanded.org/papers/debian-conversion/remotedeb.html - englischsprachige Anleitung für Installation mit debootstrap
* http://ftp.ubuntulinux.org/ubuntu/dists/warty/main/installer-i386/current/doc/manual/en/apcs03.html - debootstrap Installation von Ubuntu

[{Tag Debian ThinClient Virtualisierung APT}]Virtualisierung}]