Installation von Gentoo AMD64 auf Strato Root Server
Aus Gentoo Linux Wiki
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