Installation von Gentoo AMD64 auf Strato Root Server

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung.
Installationsmethoden LiveCDs Kernel & Hardware Laptops & Notebooks Portage System Netzwerke & Services X Software Anderes alphabetischer HOWTO Index

Inhalt dieses HowTOs ist die Installation von Gentoo 64Bit-Version (AMD64) auf einem STRATO HighEnd-Server.


Inhaltsverzeichnis

[Verbergen]

[Bearbeiten] Ausstattung, Ziel und Ausgangssituation

Bei meinem STRATO HighEnd-Server handelt es sich um den SR3 (v5.6) mit folgender Ausstattung:

  • AMD Opteron 146
  • 1GB RAM
  • Festplatte: 2x80GB im RAID1-Verbund (Software-Raid)
  • RecoveryManager
  • RemoteConsole
  • 80GB FTP-Backup

Wir möchten die kompletten 160GB Festplattenkapazität nutzen, indem wir auf RAID1 (Spiegelung) verzichten. Ich möchte direkt anmerken: Im Verlauf dieses HowTOs gehen sämtliche Daten auf der Festplatte verloren! Wenn Ihr also noch Daten braucht, sichert sie. STRATO bietet euch dafür 80GB Backupspeicher, den Ihr via FTP erreicht.

Die Partitionierung beider Platten können wir später frei wählen.

Kleine Anmerkung: Leistet man so einigen Berichten aus dem Internet folge, sind Software-Raids ohnehin nicht als sicher einzustufen. Nutzen wir lieber einen Teil unserer 80GB der 2. Platte, um wichtige Daten zu sammeln und diese dann von dort auf den FTP-Backup-Server zu schieben. Das ganze per Cron-Job automatisiert und ihr seid definitiv auf der sicheren Seite bzgl. Datenverlusten.

Die Installation der Gentoo AMD64-Version setzt einen gebooteten 64Bit-Kernel voraus. Das ganze erzielen wir, in dem wir die Gentoo AMD64 Minimal CD auf die Festplatte bannen und von diese anschließend booten.

Bleibt die Minimal CD dauerhaft auf dem Server, so stellt sie einen praktischen Ersatz für das Recovery Systems dar. In vielen Fällen (z.B. Fehler beim Kompilieren des Kernels, o. ä.) ist sie mehr als ausreichend und vorallem deutlich schneller verfügbar. ;-)

Das HowTo bezieht sich auf ein vorinstalliertes SUSE 9.3 Professional x64. Vermutlich wird es auch mit anderen Distributionen funktionieren, aber dafür möchte ich keine Garantie geben. Ausschlaggebend wird sein, dass wir Dateien von der boot-Parition benötigen. Keine Ahnung, in wie weit die sich zu anderen Distris unterschieden (vorallem bei 32Bit-System).


Nachfolgend die Partitionierung, wie sie mit dem vorinstallierten SuSE daherkommt.

Datei: cfdisk /dev/sda
   Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   sda1        Boot        Primary   Linux raid autodetect               57.58
   sda2                    Primary   Linux swap / Solaris              1077.52
   sda3                    Primary   Linux raid autodetect            81208.19


Datei: cfdisk /dev/sdb
   Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   sdb1        Boot        Primary   Linux raid autodetect               57.58
   sdb2                    Primary   Linux swap / Solaris              1077.52
   sdb3                    Primary   Linux raid autodetect            81208.19


Die fstab gibt Einsicht auf die genutzten RAID-Verbände:

Datei: /etc/fstab
/dev/md1            /                    ext3       acl,user_xattr        1 1
/dev/md0            /boot                ext2       acl,user_xattr        1 2
/dev/sda2           swap                 swap       pri=42                0 0
/dev/sdb2           swap                 swap       pri=42                0 0
devpts              /dev/pts             devpts     mode=0620,gid=5       0 0
proc                /proc                proc       defaults              0 0
sysfs               /sys                 sysfs      noauto                0 0


[Bearbeiten] SuSE: Installation von wget

Dieser Schritt vermutlich ist nur bei SuSE-Systemen notwendig!

Unter SuSE ist standardmäßig kein wget installiert. wget brauchen wir allerdings für den Download des ISO-Files der Minimal CD. Das nachträgliche installieren von wget mittels YAST klappte nicht auf Anhieb, so dass ich mir das RPM von wget auf meinen lokal Rechner heruntergeladen und schnell per SCP auf den Server geschoben habe:

Code: Download wget (lokal)
wget http://ftp.opensuse.org/pub/opensuse/distribution/SL-10.0-OSS/inst-source/suse/x86_64/wget-1.10.1-2.x86_64.rpm
scp wget-1.10.1-2.x86_64.rpm root@hXXXXXXX.serverkompetenz.net:/root


Code: Installation wget (remote)
cd /root
rpm -i wget-1.10.1-2.x86_64.rpm 


[Bearbeiten] Einrichten der Minimal CD

Der Kernel des Strato RecoverySystems, unterstützt leider nicht das CD-Dateisystem ISO9660, so dass sich Installation insg. etwas komplizierter gestaltet. Wir installieren deshalb das ISO in unserer vorinstallierten SuSE-Umgebung. Anschließend packen wir die extrahierten Dateien des ISOs in einem bzip2-Archiv wieder zusammen.

Vorsicht: Unbedingt die 2006.0er Version nehmen. Versionen kleiner 2006.0 unterstützen standardmäßig nicht die Remote Console, Version 2006.1 startet später nicht korrekt!
Code: Installieren der Minimal CD
mkdir -p /root/amd64/cdiso
mkdir -p /root/amd64/rescue
mkdir -p /root/amd64/boot
cd /root/amd64/
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/releases/amd64/2006.0/installcd/install-amd64-minimal-2006.0.iso
mount install-amd64-minimal-2006.0.iso -r -t iso9660 -o loop /root/amd64/cdiso
cp -rvf /root/amd64/cdiso/* /root/amd64/rescue
cp -rvf /root/amd64/cdiso/isolinux/* /root/amd64/rescue
cp -rvf /boot/grub /boot/grub/boot /root/amd64/boot
cd /root/amd64/rescue
tar -cvjf ../rescue.tar.bz2 *
cd /root/amd64/boot
tar -cvjf ../boot.tar.bz2 *
cd /root/amd64


[Bearbeiten] MBR löschen, Archive sichern

Nun stehen wir vor dem Problem: wir möchten unsere beiden Platten vollständig formatieren und das Raid auflösen, benötigen allerdings diese zwei Dateien (Archive) nochmal im Recovery System. Wir nutzen zur temporären Speicherung einfach unseren FTP-Backupspace.

Anmerkung: Wir werden nicht nur die Partitionen beider Platten löschen, sondern überschreiben den kompletten Master-Boot-Record, damit auch gleich Grub, so wie die Raid-Abhängigkeiten verschwinden.

Folgende Zeilen laden die beiden Archive auf unseren FTP-Server (Benutzername und Passwort bitte entsprechend anpassen!) und anschließend wird der MBR überschrieben:

Code: Sichern unserer Dateien, MBR überschreiben
ftp -n backup.serverkompetenz.de <<EOF
user BENUTZERNAME PASSWORT
put boot.tar.bz2
bye
EOF
ftp -n backup.serverkompetenz.de <<EOF
user BENUTZERNAME PASSWORD
put rescue.tar.bz2
bye
EOF
dd if=/dev/zero of=/dev/sda bs=512 count=1
dd if=/dev/zero of=/dev/sdb bs=512 count=1
exit


Den Server nicht mit shutdown oder reboot herunterfahren, sonst meckert SuSi ;)


[Bearbeiten] Starten des Rettungssystems

Nun in der Strato Serverkonfiguration den Server mit Rettungssystem (reset auswählen!) booten lassen und anschließend per Remote Console einloggen.


[Bearbeiten] LiveCD installieren

Als nächstes solltet Ihr 2 (primäre) Partitionen anlegen: eine Bootpartition (ca. 50MB, bootable) und eine für unsere LiveCD (ca. 100MB). Am einfachsten geht das mit cfdisk:

Code: Festplatte formatieren
cfdisk /dev/sda


Bei mir sieht das ganze nun so aus:

Datei: cfdisk /dev/sda
   Name        Flags      Part Type  FS Type          [Label]        Size (MB)
------------------------------------------------------------------------------
   sda1        Boot        Primary   Linux                               65.81
   sda2                    Primary   Linux                               98.71
                           Pri/Log   Free Space                       82178.78

Alle weiteren Partitionen könnt Ihr frei bestimmen, natürlich auch auf der zweiten Platte.

Der nächste Schritt ist das Formatieren der beiden Partitionen. Ich nehme für beide ext2. Anschließend werden beide Partitionen gemounted, sowie eine RAM-Disk erstellt. In die RAM-Disk (formatieren und mounten nicht vergessen) laden wir einzeln die auf den FTP-Backupspace liegenden Dateien, und entpacken sie in die entsprechenden Mountpunkte. Selbstverständlich könnten wir auch direkt die Dateien in die jeweilige Partition laden und entpacken, hätten dann allerdings die Partitionen großzügiger erstellen müssen: Archiv + entpackte Dateien = Gesamtgröße der Partition. Damit würden wir später Platz verschenken, den wir nie wieder brauchen. ;)

Code: Laden unserer Dateien + Schreiben an die jeweilige Position
mkfs.ext2 /dev/sda1
mkfs.ext2 /dev/sda2
mkfs.ext2 /dev/ram1
mkdir -p /mnt/boot
mkdir -p /mnt/rescue
mkdir -p /mnt/tmp
mount /dev/sda1 /mnt/boot
mount /dev/sda2 /mnt/rescue
mount /dev/ram1 /mnt/tmp
cd /mnt/tmp
wget ftp://BENUTZERNAME:PASSWORT@backup.serverkompetenz.de/boot.tar.bz2
tar -xvjf boot.tar.bz2 -C /mnt/boot
rm -rvf *
wget ftp://BENUTZERNAME:PASSWORD@backup.serverkompetenz.de/rescue.tar.bz2
tar -xvjf rescue.tar.bz2 -C /mnt/rescue


[Bearbeiten] Installation des Boot-Managers: GRUB

Nun müssen wir noch GRUB mitteilen, dass er von nun an, unsere Live CD startet:

Datei: GRUB Menüliste erstellen
cat > /mnt/boot/grub/menu.lst << "EOF"

default 0
timeout 300

serial --unit=0 --speed=57600
terminal serial

title   Gentoo Rescue System (2006.0)
root    (hd0,1)
kernel  /gentoo root=/dev/ram0 rw ramdisk=48000 console=tty0 console=ttyS0,57600 init=/linuxrc looptype=squashfs loop=/image.squashfs udev nodevfs dokeymap cdroot
initrd  /gentoo.igz

EOF


Der letzte Schritt schreibt GRUB den MBR der ersten Platte:

Code: Schreiben von GRUB
grub <<EOF
root (hd0,0)
setup (hd0)
quit
EOF


[Bearbeiten] Abschluss im Rescue-System

Nun stellen wir noch in unserem Serverkonfigurationsmenü den "normalen" Bootmodus zurück (ohne reset!), warten 4 Minuten und geben zuletzt folgendes ein:

Code: der letzte Reboot:
reboot


Wenn alles richtig war, erscheint bald der Boot-Manager in dem Euer Gentoo System bereits vorselektiert ist.

Glückwunsch! =)


[Bearbeiten] Wie geht es weiter?

Die weiteren Installationsschritte entnehmt Ihr der offiziellen Doku: [1]

[Bearbeiten] Partitionierung

Die Partitionierung bleibt euch komplett überlassen. =)


[Bearbeiten] Stage-Archiv

Vorsicht: Das Hardened Profile setzt eine 3er GCC Version voraus. Um Konflikte zu vermeiden, nehmen wir kein aktuelles Stage-Archiv, sondern das 2005.1-r1
Code: Download des Stage3-Archiv, Version 2005.1-r1:
wget http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/releases/amd64/2005.1-r1/stages/stage3-amd64-2005.1-r1.tar.bz2


[Bearbeiten] Auswahl Hardened Profile

Mit dem Hardened Profile werden sichere Grundeinstellung in den USE-Flags gesetzt, des Weiteren stehen nicht alle USE-Flags zur Verfügung.

Code: AMD64s Hardened Profile auswählen:
cd /etc
rm make.profile
ln -s ../usr/portage/profiles/hardened/amd64 make.profile

FEATURES="-sandbox" emerge sandbox

emerge --oneshot binutils gcc glibc
emerge -e world


[Bearbeiten] Kernel Konfiguration

Als Kernel setzen wir nicht Gentoo-Sources ein, sondern nutzen die Hardened-Sources, die einige weiteren Sicherheitsmerkmale mit sich bringen. Die wesentlichen Merkmale meiner Kernel-Konfiguration sieht folgendermaßen aus:

Linux Kernel Configuration
  Network Device Support
    Ethernet (1000 Mbit)
      [*] Broadcom Tigon3 support
  Character devices
    Serial drivers
      [*] 8250/16550 and compatible serial support
      [*]   Console on 8250/16550 and compatible serial port
      (4)   Maximum number of 8250/16550 serial ports
      (4)   Number of 8250/16550 serial ports to register at runtime
      [*]   Extended 8250/16550 serial driver options
      [*]     Support for sharing serial interrupts
      [*]     Support RSA serial ports                       

[Bearbeiten] serielle Konsole

Der /etc/inittab fügen wir folgende Zeile hinzu...

S0:12345:respawn:/sbin/agetty -L 57600 ttyS0 vt102

und kommentieren zwei Blöcke aus, dass sie anschließend so aussehen;

# TERMINALS
#c1:12345:respawn:/sbin/agetty 38400 tty1 linux
#c2:12345:respawn:/sbin/agetty 38400 tty2 linux
#c3:12345:respawn:/sbin/agetty 38400 tty3 linux
#c4:12345:respawn:/sbin/agetty 38400 tty4 linux
#c5:12345:respawn:/sbin/agetty 38400 tty5 linux
#c6:12345:respawn:/sbin/agetty 38400 tty6 linux

# SERIAL CONSOLES
#s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100
#s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100


[Bearbeiten] GRUB - zum Letzten

Datei: Die GRUB-Menüliste erweitern wir um unser neues Gentoo:
cat > /mnt/boot/grub/menu.lst << "EOF"

default 0
timeout 300

serial --unit=0 --speed=57600
terminal serial

title   Gentoo Linux (AMD64 Hardened)
root    (hd0,0)
kernel  /boot/bzImage root=/dev/sda3 console=tty0 console=ttyS0,57600

title   Gentoo Rescue System (2006.0)
root    (hd0,1)
kernel  /gentoo root=/dev/ram0 rw ramdisk=48000 console=tty0 console=ttyS0,57600 init=/linuxrc looptype=squashfs loop=/image.squashfs udev nodevfs dokeymap cdroot
initrd  /gentoo.igz

EOF


jajjaajj ihr hab alle recht

'Persönliche Werkzeuge