Arch Linux auf einem Root-Server

Aus wiki.archlinux.de
Version vom 27. Juni 2009, 23:19 Uhr von H4emp3 (Diskussion | Beiträge) (Änderung 7737 von H4emp3 (Diskussion) wurde rückgängig gemacht.)

Dieser Artikel oder Artikelabschnitt ist noch nicht vollständig!


Diese Anleitung beschreibt die Installation von Arch Linux auf einem dedicated Root-Server aus einem Rescue-System auf Basis eigener Erfahrungen. Basierend auf der Anleitung von [1], welche aber nicht 1:1 übersetzt wurde.

Anmerkungen

Entsprechend der später verwendeten Architektur sollte auch das Rettungssystem diese bereits verwenden. Bei Hetzner kann man zwischen einem 32-Bit und einem 64-Bit Rettungssystem auswählen. Bis 3 GB RAM sollte das 32-Bit System ( so auch die i686er Variante von Arch ) vollkommen ausreichen. Vorausgesetzt man braucht keine Datenbanken mit mehreren 100 MByte Größe. Diese Anleitung beschreibt die Nutzung der i686-Variante, kann aber auf die x86_64 1:1 übernommen werden - Bis auf die Pakete.

Vorbereitung

Partitionierung

Für diese Anleitung wird ein Software-RAID 1 aufgebaut, welches eine erhöhte Datensicherheit bietet. Die Partitionierung kann mit cfdisk oder fdisk erfolgen. Bevorzugt lege ich auf meinen Servern immer folgendes Partionsschemata an:

  • /dev/sda1 - 100 MB - linuxraid autodetect - /boot
  • /dev/sda2 - 1 GB - linuxraid autodetect - swap
  • /dev/sda3 - rest - linuxraid autodetect - /

Dies muss auf beiden Festplatten erfolgen!

Erstellung der RAID-Arrays

Info
Sollte RAID später Probleme machen, dann mal RAID weg lassen.

Mit mdadm erstellen wir nun das RAID Array für /boot, / und swap.
Bevor das RAID Array erstellt werden kann, müssen die entsprechenden Module geladen werden:

modprobe raid1
Später / ...
mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/sda3 /dev/sdb3
Später /boot ...
mdadm --create /dev/md1 --level 1 --raid-devices 2 /dev/sda1 /dev/sdb1
Später swap ...
mdadm --create /dev/md2 --level 1 --raid-devices 2 /dev/sda2 /dev/sdb2

Erstellung der Dateisysteme

Damit wir später archlinux installieren und noch später auch booten können, müssen nun die entsprechenden Dateisystem erstellt werden. Für /boot sowie für / wird das ext3-Dateisystem benutzt.

mkfs.ext3 /dev/md0
mkfs.ext3 /dev/md1
mkswap /dev/md2

Mounten

Nun müssen die einzelnen Partitionen (RAID Arrays) gemountet werden. Hierzu wird vorher unter /mnt das Verzeichnis archlinux erstellt:

mkdir -p /mnt/archlinux
mount -t ext3 /dev/md0 /mnt/archlinux
mkdir -p /mnt/archlinux/boot
mount -t ext3 /dev/md1 /mnt/archlinux/boot

Notwendige Pakete downloaden

Damit wir später Arch mit pacman installieren können, muss dieses nun nach /tmp/archlinux gedownloaded werden:

mkdir -p /tmp/archlinux
cd /tmp/archlinux
wget ftp://ftp.archlinux.org/core/os/i686/pacman-3.2.1-2-i686.pkg.tar.gz
wget ftp://ftp.archlinux.org/core/os/i686/pacman-mirrorlist-20081213-1-i686.pkg.tar.gz
tar xzvf pacman-3.2.1-2-i686.pkg.tar.gz
tar xzvf pacman-mirrorlist-20081213-1-i686.pkg.tar.gz

Da pacman nicht statisch auf Libs gelinkt ist, benötigen wir noch die statisch gelinkte.

cd /tmp/archlinux
wget http://repo.archlinux.fr/i686/pacman-static-3.2.2-1.pkg.tar.gz
tar xzvf pacman-static-3.2.1-1-i686.pkg.tar.gz

Benötigte Dateien ins Host-System kopieren

Da in der Regel die Rescue-Systeme von dedicated Root-Servern ein Netzwerkimage haben, können die Dateien von Pacman direkt nach / kopiert werden:
tar xf /tmp/archlinux/pacman-*.pkg.tar.gz -C /

Pacman konfigurieren

Nun müssen die Dateien /etc/pacman.conf und /etc/pacman.d/mirrorlist den Bedürfnissen angepasst werden.

Installation von Arch Linux

Pacman aktualisieren

mkdir -p /mnt/archlinux/var/lib/pacman
pacman.static -Sy -r /mnt/archlinux
pacman.static -S pacman -r /mnt/archlinux

Basissystem installieren

pacman.static -Sy base -r /mnt/archlinux

System vorbereiten

Nun wird es richtig ernst, denn wir bereiten das System für das chroot vor. Vorher muss aber sichergestellt werden, dass die richtigen nodes in /dev für udev erstellt wurden:
ls -alF /mnt/archlinux/dev
» Das sollte dann ausgegeben werden:
crw------- 1 root root 5, 1 2008-12-27 21:40 console
crw-rw-rw- 1 root root 1, 3 2008-12-27 21:42 null
crw-rw-rw- 1 root root 1, 5 2008-12-27 21:40 zero
» Nun müssen weitere Dateisystem eingebunden werden:
mount -o bind /dev /newarch/dev
mount -t proc none /newarch/proc
mount -o bind /sys /newarch/sys
» /etc/resolv.conf kopieren
cp -r /etc/resolv.conf /mnt/archlinux/etc/resolv.conf
» /etc/pacman.d/mirrorlist kopieren
cp -r /etc/pacman.d/mirrorlist /mnt/archlinux/etc/pacman.d/mirrorlist
» Enter the chroot
chroot /mnt/archlinux /bin/bash
» Den Rest installieren
pacman -Sy kernel26
pacman -S openssh
pacman -S <paket>
Das Paket openssh muss installiert werden, sofern keine Remote-Console an den Server gekoppelt ist.

System einrichten

  • /etc/rc.conf
  • /etc/fstab

/dev/md0 / ext3 defaults 0 0
/dev/md1 /boot ext3 defaults 0 0
/dev/md2 swap swap defaults 0 0

  • /etc/mkinitcpio.conf
  • /etc/modprobe.d/modprobe.conf
  • /etc/resolv.conf
  • /etc/hosts
  • /etc/hosts.deny

# ALL: ALL: DENY

  • /etc/hosts.allow

ALL: ALL: ALLOW

  • /etc/locale.gen

Wenn alle Konfigurationsdateien bearbeitet wurden und die notwendigen Locales in /etc/locale.gen freigeschalten wurden (# vor Zeile weg), können die notwendigen Locales erstellt werden:
locale-gen

Installation von Grub

» Damit Grub innerhalb des chroot installiert werden kann
grep -v rootfs /proc/mounts > /etc/mtab » /boot/grub/menu.lst bearbeiten
» Kernelzeile muss am Ende folgendes enthalten
md=1,/dev/sda1,/dev/sdb1 md=0,/dev/sda3,/dev/sdb3, md=2,/dev/sda2,/dev/sdb2 » Grub installieren
grub
grub> find /boot/grub/stage1
grub> root (hd0,0)
grub> setup (hd0)
grub> quit

Installation fertig

Wenn alles eingerichtet und installiert ist, kann das System rebootet werden.
Bei Hetzner ist es nun angebracht sich eine LARA anschließen zu lassen, da ich persönlich bsp. Probleme hatte.

Bekannte Probleme

  • Derzeit keine.

Fragen oder Anregungen

Ihr habt Fragen oder Anregungen oder möchtet etwas ergänzen? Keine Scheu, ich beiße keinem dem Kopf ab!

Quellen

Hauptquelle war das englische HowTo unter http://wiki.archlinux.org/index.php/Install_From_Existing_Linux
--Igprolin 15:28, 1. Jan. 2009 (CET)