Category Archives: Gentoo

Gentoo per Rescue System installieren Quick’n’Dirty

Manchmal braucht man einfach nicht den unzerstörbaren Panzer (hier seit neun Jahren Debian GNU/Linux), sondern den getunten und tiefergelegten Lowrider mit Neonbeleuchtung. Oder kurz: Zum wiederholten mal hat mir mein Arbeitskollege im Labor Gentoo Linux empfohlen. Durch Zufall wurde ich auch noch zu einem Alpha-Test des neuen OVH Rechenzentrums in den USA eingeladen und habe jetzt einen Server übrig. Zeit Vorurteile durch Spaß am Gerät auszuräumen. Probefahrt mit Gentoo.

21:50 Uhr, das Rescue System ist gestartet. Dass das Motto des Abends nicht “Einklick-Installation”, sondern eher “Du bist der Installer!” lautet, war mir klar. Sicher eine gute Möglichkeit das eigene Linux foo auf den Prüfstand zu stellen.

1. Alte Partitionstabelle löschen

dd if=/dev/zero of=/dev/sda bs=512 count=1

Oder direkt im Rescue System mittels cfdisk -z /dev/sda mit einer neuen leeren Partitionstabelle beginnen.

2. Partitionen anlegen und Dateisysteme erstellen

So vorhanden mittels cfdisk oder fdisk die notwendigen Partitionen anlegen. Wer Gentoo zum ersten mal installiert, sollte sich auf eine /boot, eine / (beide Partitionstyp 83) und eine kleine Auslagerungspartition (Partitionstyp 82) beschränken.

Danach geht es auch schon ans erste formatieren der Partitionen mit entsprechenden Dateisystemen. Hier kann (scheinbar typisch für Gentoo) frei zwischen allen verfügbaren mkfs Befehlen gewählt werden.

3. Partitionen strukturiert einhängen

mkdir -p /mnt/gentoo
mount /dev/sda3 /mnt/gentoo # Das Wurzeldateisystem
mkdir /mnt/gentoo/boot # Verzeichnis für die Boot-Partition
mount /dev/sda1 /mnt/gentoo/boot
swapon /dev/sda1

4. Stage3 Gentoo Image herunterladen und installieren

cd /mnt/gentoo
wget http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3/stage3-amd64-20120329.tar.bz2
tar xvjpf stage3-*.tar.bz2

Jetzt fehlt noch ein aktueller Portage Snapshot, in dem die aktuell verfügbaren Pakete vermerkt sind. Es empfiehlt sich statt dem folgenden Link den aktuellsten Snapshot von dieser Adresse herunterzuladen, falls im Rescue System ein Fehler angezeigt wird. Oft weist das auf eine alte/unvollständige wget Version hin.

wget http://ftp.halifax.rwth-aachen.de/gentoo/releases/snapshots/current/portage-latest.tar.bz2
tar xjpf portage-latest.tar.bz2

5. Chroot für Installation vorbereiten

cp /etc/resolv.conf etc/resolv.conf
mount -t proc none /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile # Weil wir keine Login-Shell gestartet haben, einmal die profile manuell einlesen

6. Locales und Zeitzone konfigurieren

Der Einfachheit halber, werden jetzt nur die drei wichtigsten locales erzeugt. Dafür werden in der Datei /etc/locale.gen folgende Zeilen einkommentiert (Raute entfernen): en_US ISO-8859-1, en_US.UTF-8 UTF-8, de_DE@euro ISO-8859-15. Danach werden die locales erzeugt.

locale-gen -A -j2

Danach braucht es nur noch eine Zeitzone für den neuen Server.

cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime

7. Portage aktualisieren

Zuerst aktualisieren wir den Portage Baum noch einmal, da zwischen dem Snapshot und dem aktuellen Datum Aktualisierungen stattgefunden haben können. Hier wird wieder deutlich, dass Gentoo ein Rolling Release ist, bei dem es sich lohnt, immer auf dem aktuellen Stand zu sein.

emerge --sync # Dauert einige Minuten

8. Kernel kompilieren und installieren

emerge gentoo-sources
cd /usr/src/linux # 
make menuconfig

Da es zuerst darum geht, schnell einen bootfähigen Server zur Verfügung zu haben, muss nur das Dateisystem der /boot Partition fest in den Kernel einkompiliert werden. Da das Dateisystem (hier XFS) für die Wurzelpartition aber sowieso geladen werden muss, wird es auch direkt einkompiliert. Danach können der Kernel und die Module kompiliert werden.

make && make modules_install
make install

Damit ist der Kernel in /boot installiert. Jetzt brauchen wir den exakten Pfad zum Kernel, um gleich den Bootmanager konfigurieren zu können.

ls /boot/vmlinuz-* # Hier: /boot/vmlinuz-3.2.12-gentoo

9. Bootmanager kompilieren und installieren

emerge grub
cd /boot/grub
nano menu.lst

Hier muss der eben kompilierte Kernel eingetragen werden und die / Partition als Paramter übergeben werden. Für das Beispiel sieht es so aus:

default 0
timeout 1 

title Gentoo
root (hd0,0)
kernel /boot/vmlinuz-3.2.12-gentoo root=/dev/sda3                                    

Jetzt wird der Bootmanager im Master-Boot-Record der Festplatte installiert. Aber da die Installation in einem chroot stattfindet, muss zuerst die Tabelle der eingebundenen Dateisysteme erzeugt werden.

grep -v rootfs /proc/mounts > /etc/mtab
grub-install --no-floppy /dev/sda

10. Netzwerk

Der vorletzte Schritt bei der Installation besteht darin, das Netzerkinterface zu konfigurieren. Dafür werden die Daten mit denen das Rescue System gestartet wurde übernommen.

ifconfig #IP des Servers abrufen
route -n # Default Gateway abrufen
nano /etc/conf.d/net
config_eth0="ServerIP netmask 255.255.255.0 brd SubnetzBroadcast"
routes_eth0="default via SubnetzGateway"

Jetzt muss das Interface noch in das OpenRC Startsystems eingebunden werden und auch dieser Schritt ist abgeschlossen.

cd /etc/init.d
ln -s net.lo net.eth0
rc-update add net.eth0 default

11. Abschluss der Installation

Bevor der neu installierte Server gestartet werden kann, sollte eine Möglichkeit geschaffen werden, um entfernt darauf zugreifen zu können. Dafür empfiehlt sich OpenSSH.

emerge openssh
rc-update add sshd default

Damit nicht auch noch ein Systembenutzer angelegt werden muss, wird temporär das Anmelden mit dem root Benutzerzugang erlaubt. Dafür folgende Änderung in der Datei /etc/ssh/sshd_config durchführen.

PermitRootLogin yes # diese Zeile einkommentieren (# entfernen)

Die letzten zwei Aufgaben vor dem wohlverdienten reboot bestehen im setzen des root Passworts und dem schreiben einer sinnvollen /etc/fstab Datei, damit der neue Server die notwendigen Partitionen auch einbindet.

passwd root
nano /etc/fstab

Hier eine am Beispiel Server orientierte /etc/fstab:

/dev/sda1               /boot           ext4            noauto,noatime  1 2
/dev/sda3               /               xfs             noatime         0 1
/dev/sda2               none            swap            sw              0 0

Wenn die Wurzelpartition mit XFS formatiert wurde, wird noch ein letztes Softwarepaket benötigt: emerge xfsprogs.

12. Reboot!

Fazit

Um 23:45 Uhr hatte ich meine erste bash unter Gentoo per ssh im Terminal. Die Installation war zwar gewöhnungsbedürftig, weil nicht so automatisiert, wie bei Debian oder gar Ubuntu, aber hat schon andeutungsweise die Freiheiten von Gentoo gezeigt. Trotzdem kommt das System für mich nicht in Frage, zumindest vorerst nicht für den produktiven Einsatz. Grund ist, dass man durch die Kompilationszeiten (Kernel hier: 40 Minuten, Grub: 15 Minuten) aus der Konzentration gerissen wird und sich zwangsweise mit etwas anderem beschäftigen muss.

Das “g” Logo ist ein eingetragenes Warenzeichen der Gentoo Foundation, Inc