Installation ohne CD-Medien

Aus Gentoo Linux Wiki

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

[Bearbeiten] Installation ohne CD-Medien

Dieses Dokument befindet sich noch in Bearbeitung, aber das dürfte ja eigentlich offensichtlich sein :-)
Seeehr aktuell!!

[Bearbeiten] Einleitung

Eine Gentoo Installation kann alternativ zur CD/DVD auch über das Netzwerk erfolgen. Dieses Howto erläutert die Zusammenhänge, Voraussetzungen, Abläufe und eine mögliche Installation mittels ULIWIP (Universal Linux Installer Written In Perl).

[Bearbeiten] Voraussetzungen

[Bearbeiten] Auf dem zu installierenden System

  • PXE (Pre Boot Execution Environment)

[Bearbeiten] Auf den Install-Server

  • TFTP Server
  • PXE Boot Konfiguration
  • Passender Kernel und Ramdisk
  • DHCP Server

[Bearbeiten] Ablauf

Der zu installierende Computer initiert einen PXE Boot.

  • Broadcast nach DHCP Adresse
  • Download der Bootloader Config via TFTP
  • Download von Kernel und initrd
  • Booten von Kernel und Ramdisk

[Bearbeiten] Installation der Software

Die folgende Software wird auf dem Install-Server benötigt:

root@deathstar # emerge sys-boot/syslinux net-ftp/atftp net-misc/dhcp

[Bearbeiten] Konfiguration

Der Install-Server bekommt in dieser Konfiguration die IP-Adresse 192.168.100.1/24.

[Bearbeiten] AFTFP Server

  • Editieren der atftp Konfiguration in /etc/conf.d/atftp
TFTPD_ROOT="/tftproot"
TFTPD_OPTS="--daemon --user nobody --group nobody"
  • Automatisches Start von atftp beim Boot
root@deathstar # rc-update add atftp default

[Bearbeiten] DHCP Server

  • /etc/dhcp/dhcpd.conf bearbeiten
option domain-name "installation";
default-lease-time 600;
max-lease-time 7200;
ddns-update-style ad-hoc;

subnet 192.168.100.0 netmask 255.255.255.0 {
       range 192.168.100.50 192.168.100.60;
       next-server 192.168.1.1;
}

host client {
       hardware ethernet 00:11:22:33:44:55;
       fixed-address 192.168.1.50;
       filename "pxelinux.0";
       option host-name "install-client";
}
  • dhcpd automatisch starten
root@deathstar # rc-update add dhcpd default

[Bearbeiten] Ramdisk erzeugen

Die hier verwendete Ramdisk basiert auf dem Gentoo Stage3 Image für die jeweilige Architektur. Die Verwendung der stage3 Images verbraucht natürlich einiges an RAM, aber bei den üblichen Systemen stellt das wohl kein Problem da. Wer will kann sich gerne die Mühe machen ein echtes Minimal Image zu bauen. Bei meinen Systemen standen da einfach Aufwand und Nutzen in keinem Verhältnis.

Ich bevorzuge es zur einfacheren Pflege Portage und Co. in der "Master Ramdisk" zu verwenden. Die Ramdisk die später gebootet wird werden wir dann noch von diesem unnötigen Balast befreien (portage, distfiles, ...).


  • Ramdisk doanloaden
root@deathtar # wget http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/releases/amd64/2006.1/stages/stage3-amd64-2006.1.tar.bz2
  • Ramdisk erstellen. Hier mit einer Größe von 200M aber das variiert ja nach verwendetem Image. (Beim aktuellen i686 bspw. 450M)
root@deathtar # dd if=/dev/zero of=/data/install_rd_amd64 bs=1M count=200
  • Filesystem anlegen
root@deathtar # mke2fs /data/install_rd_amd64
  • Filesystem Check ausschalten
root@deathtar # tune2fs -c 0 /data/install_rd_amd64
  • Neue Ramdisk mounten
root@deathtar # mkdir /mnt/ramdisk && mount -o loop /data/install_rd_amd64 /mnt/ramdisk
  • Stage3 auspacken
root@deathtar # cd /mnt/ramdisk; tar xjSpf [PFAD ZUR RD]/stage3-amd64-2006.1.tar.bz2
  • /proc mounten
root@deathtar # mount -t proc /proc /mnt/ramdisk/proc
  • chroot in die Ramdisk und Env updaten
root@deathtar # chroot /mnt/ramdisk /bin/bash
root@deathtar # env-update && source /etc/profile


[Bearbeiten] Kernel konfigurieren

In diesem Setup verwende ich den Gentoo Kernel linux-2.6.17-gentoo-r8, es sollte aber in jedem Fall auch mit dem Vanilla Kernel funktionieren. Folgendes ist unbedingt zu beachten:

  • Hardware die für die Installation benötigt wird muss aktiviert sein (SCSI Controller, Netzwerkkarten, ...)
  • Support für Ramdisks muss aktiviert sein und die Größe mindestens der der Ramidisk entsprechen (siehe oben)

[Bearbeiten] Linux PXE

  • Kopieren und Verzeichnisse anlegen
root@deathstar # cp /usr/lib/syslinux/pxelinux.0 /tftpboot/
root@deathstar # mkdir /tftpboot/pxelinux.cfg

pxelinux.0 ist der Bootloader der vom installierenden System heruntergeladen und ausgeführt wird. Im Verzeichnis pxelinux.cfg werden die Bootloader Konfigurationen der zu installierenden Systeme abgelegt.

  • Beispielkonfiguration
DEFAULT linux-install                                              # Default Boot
DISPLAY message.txt                                                # Message file (in /tftpboot). Optional
PROMPT 1
IPAPPEND 1
TIMEOUT 5

LABEL linux-install                                                # Unsere Installations Bootsetup
KERNEL bzImage                                                     # Kernel aus /tftpboot
APPEND initrd=install_rd_amd64 root=/dev/ram0 rw init=/sbin/init   # Ramdisk auswählen und root und init setzen


  • Konfigurationen in /tftpboot/pxelinux.cfg anlegen

Die erstellte Konfiguration wird unter der IP Adresse in /tftpboot/pxelinux.cfg gespeichert. Anschließend wird noch ein Link auf die HEX codierte IPAdresse angelegt

root@deathstar # gethostip 192.168.1.51
192.168.1.51 C0A80133

root@deathstar # ln -s 192.168.1.51 C0A80133

[Bearbeiten] Bekannte Bugs

  • Nach der Eingabe von
root@deathtar # chroot /mnt/ramdisk /bin/bash

kommt folgender Fehler:

"Illegal instruction"

URSACHE: Vermutlich wird versucht mit einer älteren CPU einen neueren Kern zu übersetzen (bspw. mit 386 einen i686)

LÖSUNG: Entweder passenden Stage wählen oder unter einem anderen Rechner chroot'en

'Persönliche Werkzeuge