Linux System selber bauen (LFS) – Vorbereitung

Um zu verstehen, wie Linux aufgebaut ist und funktioniert macht es Sinn einmal selber eine Version zusammen zustellen. Dabei gibt es schon gute Unterstützung von LinuxFromScratch Version 8.1. Hier baue ich auf einem Debian System in einer VitualBox auf. In der VB hab ich eine zwiete Festplatte eingetragen, auf der ich das neue System erstellen werde.

Nachdem Debian gebootet hat, muss die Festplatte eingebunden werden. Ein ls /dev/sd zeigt die zweite Platte als sdb an. Mit fdisk /dev/sdb wird diese Platte partitioniert und angelegt Mit n (MBR Partition), p (primary) und weiteres bestätigen wird die ganze Platte verwendet.. Mit p kann die Partitionierung überprüft werden und sieht, dass die Partition /dev/sdb1 heisst. Der Partitionstyp sollte 83 (Linux) sein. Mit w wird die Partitionstabell abgespeichert. Jetzt kann die Partition formatiert werden mit mke2fs -jv /dev/sdb1.

Die Partition wird in /mnt/lfs eingehängt mit mount /dev/sdb1 /mnt/lfs. (Verzeichnis lfs vorher erzeugen mit mkdir /mnt/lfs). Mit mount sieht man, wie die Partition eingehängt wurde. Es sollten keine Restriktionen drin sein, wie nosuid, noatime und nodev). Man kann auch die Partition gleich beim Hochfahren des Systems einhängen, indem in die Datei /etc/fstab noch eine Zeile /dev/sdb1 /mnt/lfs  ext4  defaults eingetragen wird.

Die Quellen werden in den Ordner /mnt/lfs/sources abgelegt, der mit mkdir -v /mnt/lfs/sources angelegt und mit chmod -v a+wt /mnt/lfs/sources die Rechte gesetzt werden.

Jetzt brauchen wir ein Verzeichnis Tools: mkdir -v /mnt/lfs/tools und setzen eine Link im root Vrezeichnis: ln -sv /mnt/lfs/tools /

Alle Programme werden unter einem anderen Benutzer erstellt:
– Neue Gruppe anlegen: groupadd lfs
– Benutzer anlegen mit Bash und der Gzppe hinzufügen: useradd -s /bin/bash -g lfs -m -k /dev/null lfs
– Password anlegen: passwd lfs
– Ordner dem neuen Benutzer zuweisen: chown lfs /mnt/lfs/tools
– Ordner dem neuen Benutzer zuweisen: chown lfs /mnt/lfs/sources
– Benutzerwechseln mit Login Shell: su – lfs

Unter dem Benutzer lfs muss nun in die Datei /home/lfs/.bash_properties der Befehl exec env -i HOME=$HOME TERM=$TERM PS1=’\u:\w\$ ‚ /bin/bash eingetragen werden um eine reine leere Umgeung zu haben. Diese Datei wird von /etc/profile aufgerufen. Damit die neu erzeugte Shell auch Umgebungsvariablen gesetzt hat muss die Datei /home/lfs/.bashrc angepasst werden mit dem Inhalt:

set +h #Hash Funktion der Bash abschalten

umask 022 #Neue Dateien nur durch besitzer beschreibbar aber les- und ausführbar für alle anderen
LFS=/mnt/lfs
LC_ALL=POSIX #Lokalisierung
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH

mit source /home/lfs/.bash_profile wird die Arbeitsumgebung eingelesen.

Das patch Tool muss auch noch installiert werden: apt-get install patch und für Dokumentation apt-get install texinfo (falls man hinter einem Proxy sitzt sollte noch export http_proxy=http://proxy.adresse.de:portNr angegeben werden).

Zum Erstellen sollten die Packete mit mindestens diesen Version installiert sein:
Bash-3.2 (/bin/sh sollte ein hardlink zur Bash sein)
Binutils-2.17 ( < 2.29)
Bison-2.3 (/usr/bin/yacc link auf bison oder ein Skript sein, dass bison ausführt)
Bzip2-1.0.4
Coreutils-6.9
Diffutils-2.8.1
Findutils-4.2.31
Gawk-4.0.1 (/usr/bin/awk Link auf gawk sein)
GCC-4.7 (including the C++ compiler, g++ nicht < 7.2)
Glibc-2.11 ( < 2.26 )
Grep-2.5.1a
Gzip-1.3.12
Linux Kernel-3.2
M4-1.4.10
Make-3.81
Patch-2.5.4
Perl-5.8.8
Sed-4.1.5
Tar-1.22
Texinfo-4.7
Xz-5.0.0

Nun ist die Arbeitsumgebung vorbereitet und die Packete können gebaut werden

Links:
http://www.linuxfromscratch.org/
http://www.linuxfromscratch.org/lfs/\downloads/6.4/LFS-BOOK-6.4-wget-list

Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.