. .

gentoo Linux: Installation auf einem Strato-Server


Es ist mal wieder soweit: ein neuer Server muss her.
Da Strato bisher gute Arbeit machte, fiel die Wahl wieder auf einen Server dieses Hosters (Root Server Linux Level Medium).
Leider gibt es aber bei den Vorinstallationen kein gentoo Linux zur Auswahl, weshalb ich einfach ein openSuSE 13.1 Linux vorinstallieren lies, mit dem Plan, danach wie schon die Jahre zuvor wieder Gentoo zu installieren.

Das ausgewählte System hat nur eine SSD-Festplatte, weshalb kein RAID möglich ist.
Die Boot-Partition auf dem SuSE-Linux ist mit 1GB recht großzügig, daher nahm ich gleich diese, um das Gentoo-Installations-Image zu entpacken. Man könnte aber auch die swap-Partition formatieren und dafür hernehmen.

export TERM=xterm

mount /boot
cp -a /boot /boot.bk
cd /boot

wget 
mkdir /mnt/iso
mount -o loop install-amd64-minimal-20140206.iso /mnt/iso
cp -a /mnt/iso/* . 
cp -a /mnt/iso/isolinux/* .


Somit befindet sich nun der Inhalt der Installation-CD auf /boot.
Zur Sicherheit mache ich nun noch eine kleine Kopie der Netzwerkkonfigurationen, falls nach dem Booten von Gentoo das Netzwerk nicht automatisch konfiguriert wird.

mkdir etc
cp /etc/resolv.conf etc/ 
netstat -nr > etc/netstat_nr
ifconfig eth0 > etc/ifconfig_eth0


Damit der Rechner mit gentoo starten kann, muss der Datei /boot/grub/menu.lst ein Eintrag am Ende hinzugefügt werden.

vim /boot/grub/menu.lst
*******************************************************************************
title   Gentoo Linux Live CD
root    (hd0,0)
kernel  /gentoo root=/dev/ram0 rw ramdisk=48000 console=ttyS0,57600 init=/linuxrc looptype=squashfs loop=/image.squashfs udev nodevfs dokeymap cdroot
initrd  /gentoo.igz
*******************************************************************************

Der Kernelparameter console ist wichtig, damit auf der Strato Remote Konsole auch die Ausgabe von gentoo ankommt. Die Konsole muss in meinem Fall auf eine Baud-Rate von 57600 gesetzt werden.


Nach einem Reboot sollte nun im grub – das noch von SuSE ist – der Eintrag „Gentoo Linux Live CD“ stehen.


An für sich war es das schon – wer will kann jetzt mit dem Installationshandbuch von gentoo Linux weitermachen. Nur wichtig dabei ist, dass im Bootloader und in der inittab die Konsole als Ausgabe eingerichtet wird.
Wer möchte, kann hier bei meiner Vorgehensweise weitermachen. Allerdings habe ich nicht vor, das offizielle Installationshandbuch zu ersetzen – somit sind gewisse Kenntnisse Voraussetzung.


Nach dem Gentoo Linux gestartet hat, kann als erstes der SSH-Server gestartet werden, damit man nicht nur auf eine Konsole angewiesen ist. Das Netzwerk wurde automatisch per DHCP konfiguriert.

/etc/init.d/sshd start
passwd



Jetzt wird die Festplatte partitioniert. Die Boot-Partition von SuSE lasse ich unangetastet, da dort die Installations-CD von gentoo liegt, mit der eben auch ein Live-System gestartet werden kann.
Letztendlich habe mich dann für folgende Aufteilung entschieden:

fdisk /dev/sda

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048     2050047     1024000   83  Linux                   1024M               /boot
/dev/sda2         2050048     6244351     2097152   82  Linux swap / Solaris    2048M               swap 
/dev/sda3         6244352    58673151    26214400   83  Linux                   25G                 /    
/dev/sda4        58673152   312581807   126954328    5  Extended
/dev/sda5        58675200   100618239    20971520   83  Linux                   20G                 /maildata
/dev/sda6       100620288   312581807   105980760   83  Linux                   101.1G              /chroot



Dann werden die neuen Partitionen formatiert. Damit der Kernel die neue Partitionstabelle kennenlernt, sollte der Befehl partprobe ausgeführt werden. Wie gewohnt werden dann die Partitionen nach /mnt/gentoo gemountet.

partprobe
mkswap /dev/sda2
swapon /dev/sda2
mkfs.ext4 /dev/sda3
mkfs.ext4 /dev/sda5
mkfs.ext4 /dev/sda6

mount /dev/sda3 /mnt/gentoo/
mkdir /mnt/gentoo/boot
mkdir /mnt/gentoo/chroot
mkdir /mnt/gentoo/maildata

mount -o rw,remount /mnt/cdrom
mount --rbind /mnt/cdrom /mnt/gentoo/boot/
mount /dev/sda5 /mnt/gentoo/maildata
mount /dev/sda6 /mnt/gentoo/chroot



Sind die Partitionen eingebunden, kann mit dem Entpacken des Stages begonnen werden. Vorher eventuell noch mal sichergehen, dass die lokale Uhrzeit passt (mit rdate). Bei der Prüfsummenprüfung muss grep die Zeile ausgeben, in der die Prüfsumme steht. Wird nichts zurückgegeben, stimmt etwas nicht.

rdate -s ntp3.fau.de
cd /mnt/gentoo

wget 
wget 
grep `sha512sum stage3-amd64-20140206.tar.bz2` stage3-amd64-20140206.tar.bz2.DIGESTS
tar -xjpf stage3-*.tar.bz2 -C . 



Nach dem Entpacken des Stages dann noch die notwendigen nachträglichen Mounts:

mount -t proc proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev



Danach gehts auch schon an die Datei /mnt/gentoo/etc/portage/make.conf.

nano /mnt/gentoo/etc/portage/make.conf
*******************************************************************************
CFLAGS="-march=k8 -O2 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CXXFLAGS="${CFLAGS}"
ACCEPT_KEYWORDS="~amd64"
SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
PORTAGE_RSYNC_RETRIES="3"
PORTAGE_RSYNC_TIMEOUT=180
PORTAGE_ELOG_CLASSES="warn error"
PORTAGE_ELOG_SYSTEM="syslog"
PORTAGE_NICENESS="0"
MAKEOPTS="-j5"
AUTOCLEAN="yes"
FEATURES="parallel-fetch distlocks -collision-protect -ccache -noclean -noauto
     -keeptemp -keepwork metadata-transfer userfetch -sandbox -buildpkg -distcc
     -userpriv -usersandbox -notitles -strict -gpg -test -notitles -confcache"
LINGUAS="en_US de_DE en de"
USE="64bit a52 aio apache2 authdaemond authfile ban bash-completion bcmath
     big-tables bzip2 calendar case cgi chroot clamav clamdtop cli cluster
     courier ctype curl curlwrappers dbus deflate diskio encode exif expat
     extraengine extras filter force-cgi-redirect fpx ftp gd gdbm
     geoip gftp gif glib gnutls hpn ident imagemagick imap imlib jpeg jpeg2k
     jpgraph json largefile latin1 libffi libwww lm_sensors logging logrotate
     lzo maildir mfd-rewrites mhash mjpeg mp3 mssql multiuser mysql mysqli
     network odbc opensslcrypt overload passwd pcntl pcre pdf pdo perl
     perl-geoipupdate php png posix postgres pyzord ratio razor rewrite sasl
     scp sensord session sftp shaper simplexml sitemisc snmp soap sockets
     softquota spamassassin spell sql subversion suexec suhosin svg syslog tga
     theora threads tiff tokenizer tools truetype type1 unicode urandom vda
     vim vim-pager vim-syntax vorbis vroot winscp wmf workbench xml xmlreader ctrls
     xmlrpc xmlwriter xpm xsl xvid zero-penalty-hit mmx sse sse2 openssl zip -X -abiword -ipv6
     -ldap -prelude"
*******************************************************************************



Nach dem Übertragen der DNS-Konfiguration kann auch schon gechrootet werden.

cp -L /etc/resolv.conf /mnt/gentoo/etc/
chroot /mnt/gentoo /bin/bash

source /etc/profile
export PS1="(chroot) $PS1"



Wie von allen Installationen mit gentoo gewohnt, ist das Aktualisieren des Portages und das Auswählen eines Portage-Profils dran.

emerge-webrsync
emerge --sync
emerge -q portage

eselect profile list
        available profile symlink targets:
          [1]   default/linux/amd64/13.0 *
          [2]   default/linux/amd64/13.0/selinux
          [3]   default/linux/amd64/13.0/desktop
          [4]   default/linux/amd64/13.0/desktop/gnome
          [5]   default/linux/amd64/13.0/desktop/gnome/systemd
          [6]   default/linux/amd64/13.0/desktop/kde
          [7]   default/linux/amd64/13.0/desktop/kde/systemd
          [8]   default/linux/amd64/13.0/developer
          [9]   default/linux/amd64/13.0/no-multilib
          [10]  default/linux/amd64/13.0/x32
          [11]  hardened/linux/amd64
          [12]  hardened/linux/amd64/selinux
          [13]  hardened/linux/amd64/no-multilib
          [14]  hardened/linux/amd64/no-multilib/selinux
          [15]  hardened/linux/amd64/x32
          [16]  hardened/linux/uclibc/amd64

eselect profile set 11



Danach noch kurz die Zeitzone einrichten:

echo "Europe/Berlin" > /etc/timezone
emerge --config sys-libs/timezone-data



Beim Kernel habe ich mich dazu entschieden, die Konfiguration genkernel zu überlassen.

emerge -q hardened-sources
emerge -q genkernel
genkernel all



Das dauert natürlich jetzt eine Weile. In der Zwischenzeit kann auch schon die Konfiguration der Filesystem Table vorgenommen werden.

nano /etc/fstab
*******************************************************************************
# <fs>                  <mountpoint>        <type>          <opts>                                          <dump/pass>
/dev/sda1               /boot               ext4            noauto,discard,noatime,noexec,nodev,nosuid      1 2
/dev/sda3               /                   ext4            noatime,discard                                 0 1
/dev/sda5               /maildata           ext4            noatime,discard,noexec,nodev,nosuid             0 2
/dev/sda6               /chroot             ext4            noatime,discard                                 0 2

/dev/sda2               none                swap            sw                                              0 0

none                    /var/tmp/portage    tmpfs           defaults,noauto,size=5120M,mode=1777,nodev      0 0
*******************************************************************************



Das Netzwerk sollte auch eingerichtet werden. Der Default-Gateway funktioniert nur über zwei geroutete Targets über das entsprechende Interface.

echo 'hostname="h2263410"' > /etc/conf.d/hostname

nano /etc/conf.d/net
*******************************************************************************
dns_domain_enp2s0="stratoserver.net"
config_enp2s0="85.214.105.57 netmask 255.255.255.255 brd 85.214.105.57"
routes_enp2s0="
    169.254.0.0
    85.214.64.1
    default via 85.214.64.1
"
dns_servers="
    85.214.7.22
    81.169.163.106
    81.169.148.34
"
*******************************************************************************

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



Tastatur und Hw-Clock als Nächstes:

nano /etc/conf.d/keymaps
*******************************************************************************
keymap="de"
windowkeys="YES"
extended_keymaps=""
dumpkeys_charset=""
fix_euro="NO"
*******************************************************************************
nano /etc/conf.d/hwclock
*******************************************************************************
clock="local"
clock_systohc="YES"
*******************************************************************************



Sehr wichtig ist nun die Einstellung der Konsole beim init-Prozess. Ohne die richtigen Einstellungen ist ein Einloggen über die Strato Remote Konsole nicht möglich – am Wichtigsten hierbei ist eigentlich die Baud-Rate.

echo "s0:12345:respawn:/sbin/agetty 57600 ttyS0 vt100" >> /etc/inittab



Danach sollte man nicht vergessen, root ein Passwort zu geben:

passwd



Die Installation nützlicher Programme wie Logger und Cron sollte auch nicht fehlen.

emerge -q syslog-ng htop rdate vixie-cron mlocate gentoolkit
rc-update add syslog-ng default
rc-update add vixie-cron default



Jetzt geht es an den Boot-Loader. Aus Gewohnheit nehme ich hierfür grub.
Zu beachten ist, dass auf /boot noch die Konfigurationen von SuSE sind, die jetzt sowieso nicht mehr von Nutzen sind.
Bei der Konfiguration des Boot-Loaders ist wiederum darauf zu achten, dass einmal grub selbst weiß, dass eine Ausgabe an die Konsole geschehen soll (serial –unit=0 –speed=57600 und terminal serial) und dass die jeweiligen Kernel ebenfalls davon in Kenntnis gesetzt werden (console=ttyS0,57600).

emerge -q sys-boot/grub:0
grep -v rootfs /proc/mounts > /etc/mtab
rm -f /boot/grub/menu.lst /boot/grub/grub.conf

nano /boot/grub/grub.conf
*******************************************************************************
default 0
timeout 60

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

title Gentoo Linux 3.13.2-hardened-r3
    root (hd0,0)
    kernel /kernel-genkernel-x86_64-3.13.2-hardened-r3 root=/dev/ram0 real_root=/dev/sda3 rootfstype=ext4 console=ttyS0,57600 showopts nomodeset
    initrd /initramfs-genkernel-x86_64-3.13.2-hardened-r3

title Gentoo Linux Live CD
    root (hd0,0)
    kernel /gentoo root=/dev/ram0 rw ramdisk=48000 console=ttyS0,57600 init=/linuxrc looptype=squashfs loop=/image.squashfs udev nodevfs dokeymap cdroot
    initrd /gentoo.igz

*******************************************************************************

ln -s /boot/grub/grub.conf /boot/grub/menu.lst

grub --no-floppy
grub> root (hd0,0)
grub> setup (hd0)
grub> quit



Das wars jetzt eigentlich. Somit kann die gechrootete Umgebung verlassen werden und neu gestartet werden.

exit

cd
umount -l /mnt/gentoo/dev{/shm,/pts,}
umount -l /mnt/gentoo{/boot,/proc,}
reboot



Ging alles gut, kann im grub nun der erste Eintrag ausgewählt werden.
Sollte weiterhin alles passen, bootet die neue Gentoo Installation und man kann sich an die restliche Konfiguration wie ssh-Dienst und iptables machen.


Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>