Remote-Installation eines 1&1 Root-Servers

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche
Dieser Artikel ist Teil der HOWTO Sammlung
Neu.png Dieser Artikel wurde neu erstellt und bedarf evtl. noch einer Korrekturlesung. Danach kann diese Box entfernt werden.

Die Installation eines aktuellen Fedora Linux auf einem 1&1 Root-Server ist mittels HTTP/FTP Methode leider problematisch, da 1&1 ein etwas "seltsames" Netzwerk-Setup verwendet. Es gibt daher keine Möglichkeit, mittels Kickstart-Installation über's Netzwerk zu installieren - VNC, HTTP, FTP Installations-Modi scheiden damit leider aus.

<b>Anmerkung</b> <b>Anmerkung:</b> Es wird davon ausgegangen, dass der/die Leser/in mit der Kickstart-Installation von Fedora generell vertraut ist. Falls nicht, so werden am Ende einige Links auf Website aufgelistet, die hierzu alle notwendigen Hintergrundinformationen beinhalten.

Bei meiner Suche nach einer Möglichkeit, dennoch mit wenig Aufwand ein Fedora 8 Linux auf einen 1&1 Rooti zu bekommen, fand ich im WWW eine Anleitung für CentOS, die den entscheidenden Tipp brachte: Man lädt im Rescue-Modus das DVD ISO-Image von Fedora aus dem Netz und installiert dann mittels "hard disk" Installations-Modus von diesem Image. In Kombination mit einem Kickstart-Skript kann man so inkl. allem Aufwand in einer guten halben Stunde einen 1&1 Root-Server mit Fedora 8 installieren.

Das hier vorgestellte Shell-Skript kann man in Rescue-Modus auf einen 1&1 Rooti kopieren und dann verwenden, um die Festplatte zur Installation vorzubereiten.

<b>Achtung</b> <b>Achtung:</b> <b>Die hier vorgestellte Installationsmethode löscht alle vorhandenen Partitionen!!!</b>

Selbstverständlich kann man diese Installations-Methode auch für andere Root-Server einsetzen - allerdings haben andere Anbieter meistens ein brauchbares Netzwerk-Setup :-) mittels DHCP, so dass man hier mittels HTTP/FTP Methode installieren kann.

<b>Achtung</b> <b>Achtung:</b> Es wird eine neue Partition zur Installation angelegt, auf der das DVD ISO-Image vorgehalten wird. Diese Partition ist 10 GB groß und bleibt auch nach der Installation übrig, kann aber z.B. als /tmp etc. dann manuell konfiguriert werden.

Ich hoffe, dass dieses HOWTO so manchem Suchenden wg. der 1&1 Netzwerk-Config weiterhilft :-) Soll keine Werbung sein für einen bestimmte Hoster, sondern einfach nur weiterhelfen. Viel Erfolg beim Installieren!



Inhaltsverzeichnis

Voraussetzungen

  • 1&1 Root-Server, gebootet im Rescue-Modus
  • Zugang zum Rooti über Serielle Konsole (siehe 1&1 Control-Center)
  • Tipp: die Ausgaben von dmesg, fdisk, ifconfig und route -n sowie das komplette /etc Verzeichnis der 1&1 Default-Linuxinstallation erstmal sichern, um hier später Infos zu Hardware und Netzwerk-Setup etc. nachschauen zu können.


Vorbereitungen

Einige Anpassungen sind durchzuführen, je nachdem, welchen Server man sich ausgesucht hat, denn bei 1&1 gibt es verschiedene Prozessor/RAM/Festplatte Kombinationen. Und natürlich evtl. eine Vorauswahl an RPM-Pakete bzw. Paket-Gruppen, die installiert werden sollen.

Wichtig/interessant sind die Optionen für Festplatten:

  • "Software" - bedeutet, dass unter Linux ein Software-RAID (/dev/md*) verwendet wird
  • "Hardware" - bedeutet, dass ein echter RAID-Controller die Festplatte spiegelt, meist ein Serverworks etc.

Bei der Option "Software" stehen zwei SCSI-Festplatten zur Verfügung, nämlich /dev/sda und /dev/sdb. Wohingegen bei "Hardware" ein RAID-Festplattenverbund unter Linux erscheint, dann /dev/sda. Hierauf gehe ich an späterer Stelle nochmals kurz ein.

Es können/sollten zwei Dateien bearbeitet werden, die das Installer-Skript nutzt, und natürlich evtl. das Skript selbst:

  • partitions.ks - Kickstart-Optionen für Festplatten-Partitionen
  • packages.list - "%packages ... %end" Sektion im Kickstart-File
  • install-rootserver-1und1-fedora8.sh - das eigentliche Installer-Script, das an zwei Stellen die beiden vorherigen Files included

Bearbeiten der Festplatten-Partitionen

Mittels Kickstart ist es möglich, für die Partitionierung der Festplatte(n) verschiedene Setups zu realisieren:

  • LVM (Logical Volumes) mittels logvol
  • Software-RAID mittels durch das Kommando raid
  • ganz normale Partitionen mit Hilfe von part

Ich stelle kurz zwei Möglichkeiten für das Kickstart-Dateisnippet partitions.ks vor:

  1. Eine Möglichkeit für einen Server mit 1&1 "Software" RAID-Option (zweimal 80 GB Kapazität), d.h. zwei Platten, wobei ich hier im Beispiel das Software-RAID nicht nutze unter Linux. Wer das part Kommando von Kickstart kennt, der sieht, dass
    • mittels clearpart --drives=sdb --initlabel alle Partitionen auf der zweiten Platte gelöscht werden
    • die Partitionen /, /boot und die swap's als primäre Partitionen angelegt werden, die anderen in der logischen (vierten) Partitione dann
    • die swap's auf beiden Festplatten gleichmäßig verteilt werden (je ein GB ca.)
    • die Größenaufteilung flexibel mit --grow und --size gestaltet wird
clearpart --drives=sdb --initlabel
part / --fstype ext3 --size=500 --asprimary --ondrive=sdb
part /boot --fstype ext3 --size=250 --asprimary --ondrive=sdb
part /var --fstype ext3 --size=10000 --grow --maxsize=40000 --ondrive=sdb
part /var/tmp --fstype ext3 --size=3000 --grow --maxsize=7000 --ondrive=sdb
part /home --fstype ext3 --size=30000 --grow --ondrive=sdb
part /usr --fstype ext3 --size=5000 --ondrive=sdb
part /usr/local --fstype ext3 --size 3000 --ondrive=sdb
part /opt --fstype ext3 --size=5000 --ondrive=sdb
part /tmp --fstype ext3 --size=1000 --grow --maxsize=2000 --ondrive=sdb
part /backup --fstype ext3 --size=40000 --grow --ondrive=sda
part swap --size=1030 --asprimary --ondrive=sdb
part swap --size=1030 --asprimary --ondrive=sda
  1. Eine Möglichkeit für einen Server mit 1&1 "Hardware" RAID-Option (500 GB Kapazität), d.h. es erscheint nur eine Platte unter Linux aufgrund des Hardware-RAIDs. Man sieht hier, dass
    • nur die Partitionen / und /boot als primäre Partitionen angelegt werden, denn es gibt auf /dev/sda bereits eine primäre Partition (nämlich die Installations-Partition mit dem DVD ISO-Image) und die anderen werden dann in der logischen (vierten) Partition angelegt
    • die Größenaufteilung wieder flexibel mit --grow und --size gestaltet wird
part / --fstype ext3 --size=700 --asprimary
part /boot --fstype ext3 --size=350 --asprimary
part /home --fstype ext3 --size=250000 --grow
part /var --fstype ext3 --size=20000 --grow --maxsize=30000
part /var/tmp --fstype ext3 --size=7000 --grow --maxsize=15000
part /var/log --fstype ext3 --size=30000 --grow --maxsize=45000
part /var/ftp --fstype ext3 --size=5000
part /backup --fstype ext3 --size=40000 --grow --maxsize=100000
part /usr --fstype ext3 --size=7000
part /usr/local --fstype ext3 --size 4000
part /opt --fstype ext3 --size=5000
part /tmp --fstype ext3 --size=3000 --grow --maxsize=5000
part swap --size=8500


<b>Wichtig</b> <b>Wichtig:</b> Eines der beiden Snippets für die Datei partitions.ks als genau solche Datei mit diesem Namen speichern. Evtl. daran Anpassungen je nach eigenen Vorstellungen vornehmen.

Bearbeiten der Paket-Auswahl

Die Datei packages.list enthält eine "%packages ... %end" Sektion von Kickstart und kann verwendet werden, um eine erste Vorauswahl für die Paketinstallation zu treffen. Änderungen an den RPM-Paketen können sehr leicht nach erfolgter Installation mittels yum durchgeführt werden.

  1. Ein Beispiel für ein typisches Nameserver Setup:
    • Mittels Angaben wie "@DNS Name Server" kann man ganze Paket-Gruppen zur Installation auswählen - siehe die XML-Datei auf der Installations-DVD von Fedora, die die Namen der Gruppen enthält.
    • Mittels Angaben wie "vim-common" können gezielt einzelne RPM-Pakete zur Installation ausgewählt werden. Falls hier Tippfehler passieren etc. kein Problem - der Anaconda Installer fordert dann manuell auf, das nicht vorhandene Paket zu überspringen und die Installation trotzdem fortzusetzen.
%packages
@Administration Tools
@DNS Name Server
@Hardware Support
@Mail Server
@System Tools
@Text-based Internet
@Web Server
vim-common
vim-enhanced
%end
  1. Ein anderes Beispiel für ein typisches Webserver Setup:
    • Wichtige Pakete für Apache und Datenbanken werden installiert, dazu die Paket-Gruppen für "Development", so dass man auch mal selbst was compilieren kann etc.
%packages
@Administration Tools
@Fonts
@Hardware Support
@Mail Server
@System Tools
@Text-based Internet
@Web Server
@Development Libraries
@Development Tools
@FTP Server
@MySQL Database
@PostgreSQL Database
%end


<b>Wichtig</b> <b>Wichtig:</b> Eines der beiden Snippets für die Datei packages.list als genau solche Datei mit diesem Namen speichern. Daran Anpassungen je nach eigenen Vorstellungen vornehmen.
<b>Tipp</b> <b>Tipp:</b> Da es bei Fedora nicht ganz so einfach ist bzw. fast nicht möglich, ein wirklich "basic system" ohne viel zusätzliche Pakete aufzusetzen, das dennoch schon ganz gut läuft, empfehle ich wirklich, die Installation von RPM-Paketen als erste Schritte nach der erfolgreichen System-Installation mit yum zu erledigen.

Bearbeiten des Installer-Installations-Skripts

Das folgende Shell-Skript ist nicht der Installer selbst, sondern legt eine Partition /dev/sda1 an und bereitet alles vor, damit von dieser Partition der Anaconda Installer gestartet werden kann. Es sind minimale Anpassungen notwendig, vor allem, was z.B. den Mirror-Server angeht, von dem die ISO-Images per Download mit wget geholt werden sollen.

<b>Achtung</b> <b>Achtung:</b> Dieses Script löscht alle Daten auf den vorhandenen Festplatten dun ebenso den MBR (Master Boot Record)!!! Es sollte also klar sein, was man tut, wenn das Script gestartet wird!!! Für evtl. Schäden übernimmt der Autor keine Gewährleistung, Benutzung also auf eigene Verantwortung hin und auf eigene Gefahr!!!

Folgende Variablen im Skript sollten in jedem Fall geprüft und evtl. angepasst werden:

  • HARDDISC="sda" - auf welche Festplatte soll der Installer kopiert werden?
  • INSTALLPARTITION=1 - in welche Partition genau?
  • MOUNTDIR="/fedorainstall" - wie lautet das Verzeichnis zum mounten der eben genannten Partition?

Ferner kann man mittels Variablen die Quell-Server für die ISO-Images angeben:

  • RPMSERVER - Basis-Verzeichnis der gewählten Architektur auf dem Mirror-Server
  • RPMSERVER_OSDIR - Pfad zum Verzeichnis "os/"
  • RPMSERVER_DVDIMAGE - Pfad zum DVD ISO-Image der gewählten Architektur


#!/bin/sh
#
# ****************************************************************************************************
# ***                                                                                              ***
# ***                    Installing Fedora Linux on a 1&1 Linux Root-Server                        ***
# ***                                                                                              ***
# ****************************************************************************************************
#
#
# ATTENTION:
#
#    This program will ERASE ALL DATA on the harddisk WITHOUT FURTHER WARNING!!!
#
#
# CREDITS:
#
#    Copyright (C) 2003 Gerd v. Egidy & modified by O. Althammer
#    Copyright (C) 2005 René Schrock <rene.schrock-at-gmx.net> modified 2005/07/31 for Alturo Root-Server
#    Copyright (C) 2008 Alexander Troppmann <talex-at-emanagers.de> modified 2008/02/05 for 1&1 Root-Server
#
#
# LICENSE:
#
#    This software may be freely redistributed under the terms of the GNU library public license.
#
#    You should have received a copy of the GNU Library Public License along with this program;
#    if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# USAGE:
#
#    Execute this script from the rescue console of your Linux Root-Server
#

echo
echo -en "\\033[1;31m" ; echo "*****************************************************************" ; echo -en "\\033[1;39m"
echo -en "\\033[1;31m" ; echo "***              Fedora 8 Root-Server Installer               ***" ; echo -en "\\033[1;39m"
echo -en "\\033[1;31m" ; echo "***                (installs from hard disk)                  ***" ; echo -en "\\033[1;39m"
echo -en "\\033[1;31m" ; echo "*****************************************************************" ; echo -en "\\033[1;39m"
echo
echo -en "\\033[1;31m" ; echo -n "WARNING!!! "; echo -en "\\033[1;39m"
echo "This script will ERASE ALL DATA on your HARDDRIVE!!!!"
echo -en "\\033[1;33m" ; echo -n "Press Ctrl-C to cancel script execution now (10 seconds time...)"; echo -en "\\033[1;39m"
echo

sleep 10

HARDDISC="sda"
INSTALLPARTITION=1
MOUNTDIR="/fedorainstall"
WORKDIR=`pwd`

echo
echo -en "\\033[1;32m" ; echo "Hardware settings: " ; echo -en "\\033[1;39m"
echo
echo "	installation harddisc = /dev/${HARDDISC}"
echo "	install on partition = /dev/${HARDDISC}${INSTALLPARTITION}"
echo "	mountpoint = ${MOUNTDIR}"
echo "	working directory = ${WORKDIR}"

RPMSERVER="http://fedora.tu-chemnitz.de/pub/linux/fedora/linux/releases/8/Fedora/x86_64/"
RPMSERVER_OSDIR="${RPMSERVER}os/"
RPMSERVER_DVDIMAGE="${RPMSERVER}iso/Fedora-8-x86_64-DVD.iso"

echo
echo -en "\\033[1;32m" ; echo "Download Linux ressources from: " ; echo -en "\\033[1;39m"
echo
echo "	Fedora RPM server/mirror = ${RPMSERVER_OSDIR}"
echo "	DVD ISO file image       = ${RPMSERVER_DVDIMAGE}"
echo

sleep 5

if [ -d ${MOUNTDIR} ]; then
	echo
	echo -en "\\033[1;33m" ; echo "*** Unmount existing directory ${MOUNTDIR}" ; echo -en "\\033[1;39m"
	echo

	umount -v ${MOUNTDIR}
else
	echo
	echo -en "\\033[1;33m" ; echo "*** Create new directory ${MOUNTDIR}" ; echo -en "\\033[1;39m"
	echo

	mkdir -v ${MOUNTDIR}
fi

echo
echo -en "\\033[1;33m" ; echo "*** Create new 10 GB installation partition on /dev/${HARDDISC}${INSTALLPARTITION}" ; echo -en "\\033[1;39m"

echo "o"                 > ${MOUNTDIR}/fdisk.input
echo "n"                 >> ${MOUNTDIR}/fdisk.input
echo "p"                 >> ${MOUNTDIR}/fdisk.input
echo ${INSTALLPARTITION} >> ${MOUNTDIR}/fdisk.input
echo                     >> ${MOUNTDIR}/fdisk.input
echo "+10G"              >> ${MOUNTDIR}/fdisk.input
echo "w"                 >> ${MOUNTDIR}/fdisk.input

cat ${MOUNTDIR}/fdisk.input | fdisk /dev/${HARDDISC}
#umount /dev/${HARDDISC}${INSTALLPARTITION}

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Creating new ext2 filesystem auf /dev/${HARDDISC}${INSTALLPARTITION}" ; echo -en "\\033[1;39m"
echo

mke2fs /dev/${HARDDISC}${INSTALLPARTITION} -L "${MOUNTDIR}"

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Mount partition /dev/${HARDDISC} as ${MOUNTDIR}" ; echo -en "\\033[1;39m"
echo

mount -t ext2 -v /dev/${HARDDISC}${INSTALLPARTITION} ${MOUNTDIR}/

echo
echo -en "\\033[1;33m" ; echo "*** Create system directories in ${MOUNTDIR}" ; echo -en "\\033[1;39m"
echo

mkdir -v ${MOUNTDIR}/boot
mkdir -v ${MOUNTDIR}/boot/grub
mkdir -v ${MOUNTDIR}/dev
mkdir -v ${MOUNTDIR}/etc
mkdir -v ${MOUNTDIR}/iso

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Create Anaconda kickstart configuration file: ${MOUNTDIR}/ks.cfg" ; echo -en "\\033[1;39m"
echo

echo "install" >> ${MOUNTDIR}/ks.cfg
echo "harddrive --partition=${HARDDISC}${INSTALLPARTITION} --dir=/iso" >> ${MOUNTDIR}/ks.cfg
echo "lang en_US.UTF-8" >> ${MOUNTDIR}/ks.cfg
echo "keyboard de" >> ${MOUNTDIR}/ks.cfg
echo "timezone --utc Europe/Berlin" >> ${MOUNTDIR}/ks.cfg
echo 'rootpw mysecretpassword' >> ${MOUNTDIR}/ks.cfg
echo "reboot" >> ${MOUNTDIR}/ks.cfg
echo "text" >> ${MOUNTDIR}/ks.cfg
echo "skipx" >> ${MOUNTDIR}/ks.cfg
echo "network --device eth0 --bootproto=dhcp" >> ${MOUNTDIR}/ks.cfg
echo "authconfig --enableshadow --enablemd5 " >> ${MOUNTDIR}/ks.cfg
echo "selinux --permissive" >> ${MOUNTDIR}/ks.cfg
echo "firewall --enabled --ssh" >> ${MOUNTDIR}/ks.cfg
echo "firstboot --disabled" >> ${MOUNTDIR}/ks.cfg
echo "" >> ${MOUNTDIR}/ks.cfg

if [ -f partitions.ks ]; then
  cat partitions.ks >> ${MOUNTDIR}/ks.cfg
else
	echo
	echo -en "\\033[1;31m" ; echo "*** missing partitions include file!!! " ; echo -en "\\033[1;39m"
	echo
fi

echo "" >> ${MOUNTDIR}/ks.cfg

if [ -f packages.list ]; then
  cat packages.list >> ${MOUNTDIR}/ks.cfg
else
	echo
	echo -en "\\033[1;31m" ; echo "*** missing packages include file!!! " ; echo -en "\\033[1;39m"
	echo
fi

echo "" >> ${MOUNTDIR}/ks.cfg

cat ${MOUNTDIR}/ks.cfg
sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Download Linux kernel for booting Ananconda installer" ; echo -en "\\033[1;39m"
echo

wget -O ${MOUNTDIR}/boot/vmlinuz-remoteinstall  ${RPMSERVER_OSDIR}/isolinux/vmlinuz
wget -O ${MOUNTDIR}/boot/initrd-remoteinstall.img ${RPMSERVER_OSDIR}/isolinux/initrd.img

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Create device nodes for ${MOUNTDIR}/dev/${HARDDISC} and ${MOUNTDIR}/dev/${HARDDISC}1" ; echo -en "\\033[1;39m"
echo

mknod ${MOUNTDIR}/dev/${HARDDISC}  b 3 0
mknod ${MOUNTDIR}/dev/${HARDDISC}1 b 3 1

ls -al ${MOUNTDIR}/dev/${HARDDISC}*

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Create ${MOUNTDIR}/boot/grub/grub.conf for bootloader setup" ; echo -en "\\033[1;39m"
echo

echo "serial --unit 0 --speed 57600"       > ${MOUNTDIR}/boot/grub/grub.conf
echo "terminal serial console --timeout=5" >> ${MOUNTDIR}/boot/grub/grub.conf
echo ""                                    >> ${MOUNTDIR}/boot/grub/grub.conf
echo "default=0"                           >> ${MOUNTDIR}/boot/grub/grub.conf
echo "timeout=10"                          >> ${MOUNTDIR}/boot/grub/grub.conf
echo ""                                    >> ${MOUNTDIR}/boot/grub/grub.conf
echo "title remoteinstall"                 >> ${MOUNTDIR}/boot/grub/grub.conf
echo "  root (hd0,0)"                      >> ${MOUNTDIR}/boot/grub/grub.conf

echo "  kernel /boot/vmlinuz-remoteinstall lang=en_US keymap=de method=hd:///dev/${HARDDISC}${INSTALLPARTITION}/iso ks=hd:${HARDDISC}${INSTALLPARTITION}:/ks.cfg text console=ttyS0,57600" >> ${MOUNTDIR}/boot/grub/grub.conf
echo "  initrd /boot/initrd-remoteinstall.img" >> ${MOUNTDIR}/boot/grub/grub.conf

cat ${MOUNTDIR}/boot/grub/grub.conf

echo
echo -en "\\033[1;33m" ; echo "*** Create some links to make GRUB happy :-)" ; echo -en "\\033[1;39m"
echo

cd ${MOUNTDIR}/boot/grub/
ln -s grub.conf menu.lst
cd ../
ln -s . boot
cd ${WORKDIR}

echo "done"

echo
echo -en "\\033[1;33m" ; echo "*** Create the GRUB device map in ${MOUNTDIR}/boot/grub/device.map" ; echo -en "\\033[1;39m"
echo

echo "(hd0)	/dev/${HARDDISC}" > ${MOUNTDIR}/boot/grub/device.map

cat ${MOUNTDIR}/boot/grub/device.map

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Update /etc/mtab from /proc/mounts" ; echo -en "\\033[1;39m"
echo

cp -vf /proc/mounts /etc/mtab

echo
echo -en "\\033[1;33m" ; echo "*** Install GRUB bootloader to MBR of /dev/${HARDDISC}" ; echo -en "\\033[1;39m"
echo

grub-install --root-directory=${MOUNTDIR} /dev/${HARDDISC}

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Download DVD installation image file" ; echo -en "\\033[1;39m"
echo

cd ${MOUNTDIR}/iso
wget ${RPMSERVER_DVDIMAGE}

sleep 5

echo
echo -en "\\033[1;33m" ; echo "*** Sync VFS and unmount ${MOUNTDIR}" ; echo -en "\\033[1;39m"
echo

cd /
sync
umount -v ${MOUNTDIR}

echo
echo -en "\\033[1;32m" ; echo "*** All done: change server boot mode from rescue to normal and restart your Linux Root-Server" ; echo -en "\\033[1;39m"
echo

sleep 5

echo


<b>Wichtig</b> <b>Wichtig:</b> Das oben aufgeführte Skript in die Datei install-rootserver-1und1-fedora8.sh speichern. Daran Anpassungen je nach eigenen Vorstellungen vornehmen.

Ausführen des Installer-Installations-Skripts

Der 1&1 Root-Server sollte inzwischen im Rescue-Modus (richtige Architektur wählen, d.h. 32/64 Bit) gebootet sein. Sobald das 1&1 Control-Center es wieder zulässt, den Boot-Modus (natürlich ohne sofortigen Reboot...) auf "normal" umstellen. Jede Änderung im Recovery-Manager dauert im Schnitt 5-10 Minuten, sofern der Scheduler von 1&1 nicht gerade zu beschäftigt ist.

<b>Tipp</b> <b>Tipp:</b> Das - bei 1&1 immer temporäre - Passwort für den Rescue-Modus notieren bzw. am Rechner in ein Textfile etc. kopieren, falls man es nochmla brauchen sollte. Auch die serielle Konsole sollte funktionieren, da diese später während das eigentlichen Installations-Prozesses benötigt wird.

Nachdem die drei Dateien install-rootserver-1und1-fedora8.sh, partitions.ks und packages.list mittels SCP in das Root-Verzeichnis / des Rescue-Systems kopiert wurden, mittels SSH auf den Root-Server als Benutzer "root" einloggen.

Auf dem Root-Server mittels . install-rootserver-1und1-fedora8.sh in der Konsole das Skript starten - die drei Dateien müssen dabei alle im gleichen Verzeichnis liegen, das zugleich das aktuelle "working directory" sein muss, d.h. wenn man mittels SCP nach / kopiert hat, noch mit cd / ins Root-Verzeichnis wechseln.

<b>Tipp</b> <b>Tipp:</b> Vor dem Start des Skripts am besten mit Hilfe von fdisk alle vorhandenen Partitionen manuell entfernen.

Das Skript macht immer kleinere Pausen, so dass man mitlesen kann, was genau passiert :-) Und passieren tut folgendes:

  • Nach Ausgabe der Parameter/Variablen wir der Mountpoint angelegt und mittels fdisk die erste Partition für die Installation auf 10 GB angelegt. Darauf wird ein Dateisystem angelegt.
  • Nach dem Mounten der Installations-Partition werden neue Verzeichnisse angelegt. Einmal /boot sowie /dev und /etc, die für den Bootloader grub benötigt werden. Unter /iso wird das DVD ISO-Image abgelegt.
  • Anschließend wird ein Kickstart-File namens ks.cfg mittels echo Kommandos generiert. Die beiden Textdateien für die Partitionen und die Paket-Auswahl werden mittels cat eingebunden. Das fertige Kickstart-File wird auf der Konsole zur Kontrolle ausgegeben.
  • Das Skript lädt dann den Installations-Kernel sowie die passende RAM-Disk vom RPM-Server und ebenso das DVD ISO-Image. Die mknod Befehle sind notwendig, um das /dev Verzeichnis der Installations-Partition entsprechend zu befüllen.
  • Zuletzt wird eine grub.conf erzeugt und mittels grub-install der Bootloader im MBR installiert. Im sog. "normalen" Boot-Modus wird jetzt der 1&1 Root-Server den Bootloader benutzen, um damit den Installations-Kernel zu laden und somit den Anaconda Fedora-Installer zu starten.
  • Nach einem sync und umount verfügt der Rooti nun über eine Partition, von der aus gebootet und installiert werden kann. Dank DVD ISO-Image ist auch kein Netzwerk während der Installation notwendig - dafür jedoch die serielle Konsole

Wenn das Skript fertig abgearbeitet wurde und sich der Rooti wieder im Boot-Modus "normal" befindet, einen Reboot einleiten mit shutdown -r now in der Konsole.

Durchführen der Fedora Installation von Festplatte

Der Rechner startet jetzt neu. Währenddessen über SSH auf den Server für die serielle Konsole einloggen, wofür das Passwort aus dem 1&1 Control-Center benötigt wird. Nach einigen Sekunden bzw. wenigen Minuten sollte der Reboot erfolgt sein und man kann den bootenden Fedora Linuxkernel beobachten.

Der Anaconda Installer sucht die Datei ks.cfg auf der Platte und parsed das Kickstart-File. Wenn alles passt, wird das DVD ISO-Image benutzt, um den nächsten Teil des Installers zu laden.

Die einzige Stelle im Installationsprozess, die jetzt noch ein manuelles Eingreifen erfordert, ist das Setup des Bootloaders. In meinem Kickstart-File habe ich das Kommando bootloader nicht benutzt, nachdem ich damit einen Fehler im Anaconda produziert hatte. Die Bootloader-Optionen sind jedoch schnell ausgewählt.

Die eigentliche Installation dauer auf diese Weise ca. 10-15 Minuten noch. Anschließend führt der Root-Server einen Reboot aus. In der seriellen Konsole kann man wieder beobachten, wie der Root-Server den frisch installierten Kernel bootet und bis zum Prompt der Shell gelangt - mit einem schönen "Werewolf" bei Fedora 8 - fertig! :-)


Links

Einige Websites mit weiterführenden Informationen zum Anaconda Installer, die ich für meine Installationen benutzt habe:

How to use Kickstart (Anaconda's remote control) - Artikel vom Red Hat Magazine in englischer Sprache
1und1 Rootserver mit RHEL4 - ein HOWTO in deutscher Sprache, die "Idee" für obiges Skript sozusagen
Anaconda Options - Kernel-Parameter für den Anaconda Installer im Wiki von fedoraproject.org, wieder in englischer Sprache
Anaconda Kickstart - Parameter für das Kickstart-File im selben Wiki, auch in englischer Sprache


Credits

Vielen Dank allen "Vorarbeitern" der Websites, die mir geholfen haben, diese Installationsroutine zu erstellen und zu dokumentieren. Da ich nichts wirklich funktionierendes bzgl. eines "vernünftigen" und aktuellen Fedora Linux auf 1&1 Root-Servern im WWW gefunden habe, hoffe ich sehr, dass andere künftig an dieser Stelle fündig werden! Viel Erfolg beim Installieren!

Alexander Troppmann am 8. Februar 2008