Sie sind nicht angemeldet.

[Tipps & Tricks] Gentoo LiveCDs erstellen

1

19.09.2009, 16:39

Gentoo LiveCDs erstellen

Hier mal eine kurze Beschreibung zu einer Skriptsammlung wie man in wenigen Schritten ein Gentoo-Live-System erstellen und pflegen kann. Das Live-System kann sowohl von CD/DVD als auch von USB oder Festplatten genutzt werden. Wer also schon immer mal ein eigenes System bauen wollte, hier die Anleitung...


WICHTIG:
Die Nutzung der Scripte geschieht auf eigene Gefahr. Ich übernehme keine Haftung bei Datenverlust.


### Schritt 1:

bash create.stage4.sh [ARCH] [NAME] [PROFILE]

ARCH: i686 oder amd64
NAME: beliebiger Name (bitte nie ein Unterstrich -->_<-- verwenden)
PROFILE: Datei die das Profile enthält; alles was installiert werden soll

Ergebnis

./source/gentoo_stage4_ARCH_NAME/

Beispiel:

bash create.stage4.sh amd64 LiveCD

--> erstellt ein System mit Programmen die in ./pathes/gentoo_stage4_LiveCD/etc/stage4_build_profile
gelistet sind. Zu finden ist das System unter ./source/gentoo_stage4_LiveCD/. Die Konfigdateien,
mit dem das System eingerichtet wird, befinden sich unter ./pathes/gentoo_stage4_LiveCD/.


bash create.stage4.sh amd64 LiveCD patches/profile.gnome.base

--> erstellt ein System mit Xorg und Gnome, das unter ./source/gentoo_stage4_LiveCD/ zu finden ist
und später mit den Konfigdateien unter ./pathes/gentoo_stage4_LiveCD/ eingerichtet wird.


Wie es der Name schon andeutet installiert dieses Skript das Gentoo System. Die Vorgehensweise ist ähnlich wie die in der Gentoo-Dokumentation.

- Verzeichnis anlegen ./source/gentoo_stage4_NAME entpacken
- Uhrzeit überprüfen
- stagefile überprüfen und entpacken
- gewisse Ordner (proc, dev, portage, overlays) mounten

- in chroot alle Programme installieren die man braucht.
--> wird durch ein Installationsprofile angegeben

Die make.conf wird als einzigste Datei in dem LiveSystem angepasst. Alle anderen Dateien werden später von der initrd aus gepatcht. Die Patches bzw. alle Konfigurationen befinden sich im gleichnamigen Ordener ./patches/gentoo_stage4_NAME/. Dort sollten alle Konfigurationen abgelegt werden die für dieses System benutzt werden sollen. Auch die für die Installation relevanten. Installiert wird, im default Profile, nur Xorg und Gnome sowie ein paar andere Programm für Portage und Portato.
Wichtig ist in diesem Schritt, dass das System unangetastet bleibt. Es wird keine Dateien im System geändert. Alles, bis auf die make.conf ist Original.



### Schritt 2:

In diesem Schritt wird der Kernel kompiliert. Das geht noch von Hand da ich nicht weiß wie ich genkernel beibringen kann gewisse Module in den Kernel zu bauen.

Also...

- bash go.chroot.sh source/gentoo_stage4_NAME/
- cd /usr/src/linux

- genkernel all --menuconfig --splash=natural_gentoo
--> am besten so wie in kernel.txt beschrieben

- exit


!!! Der Kernel wird auch schon bei der Installation gebaut, da er von diversen Programmen benötigt wird... !!!



### Schritt 3:

bash create.initramfs.sh sources/gentoo_stage4_NAME/

Ergebnis

./target/boot/kernel_NAME
./target/boot/initrd_NAME

Das ist das Herzstück der LiveCD-Scripte. Das Script baut die initrd für das in Schritt 1 und 2 installierte System. Das heißt es nimmt den Kernel, klaut sich die Module aus der mit genkernel erstellten initrd und baut sich eine eigene initrd. Außerdem wird die 'linuxrc' an das zu bootende System angepasst.
Herzstück ist wie gesagt die linuxrc. Es enthält eine rudimentäre Hardwareerkennung, sucht nach dem zu bootenden Image 'boot/images/gentoo_stage4_NAME' auf allen Partitionen, kopiert die Konfigdateien und bootet anschließend das System. Das alles wird mit Unionfs und tmpfs gemacht sodass am Schluss alles scheinbar Schreibbar ist.



### Schritt 4:

bash create.patches.sh patches/gentoo_stage4_NAME/

Ergebnis

./target/boot/patches_NAME
./target/boot/scripte_NAME


Wie schon erwähnt wird das installierte System nicht konfiguriert. Dies geschieht separat unterhalb von patches/gentoo_stage4_NAME/. Dieses Skript erstellt ein Image von den ganzen Konfigdateien, welches beim booten von der intrd über das System kopiert wird.
Ab jetzt befinden sich alle benötigten Dateien unterhalb von ./target/boot/. Wenn man keine LiveCD/DVD haben will, sondern das System von USB oder der Festplatte booten möchte muss nur noch der Bootloader konfiguriert und alles auf das entsprechende Medium geschrieben werden. Das geht aber NUR von Hand...

Hier aber ein Beispiel für /dev/hda1 und dem System NAME

- mount /dev/hda1 /mnt/gentoo
- mkdir /mnt/gentoo/boot
- cp -r ./target/boot/grub /mnt/boot/
- cp ./target/boot/*_NAME /mnt/boot
- cp ./target/boot/image/*_NAME /mnt/boot/image/
- cp ./target/boot/image/portage.img /mnt/boot/image/
- grub
> root(hd0,0)
> setup(hd0)
> quit


Dann nur noch die menu.lst anpassen. Ein Eintrag könnte so aussehen

default 0
timeout 10

splashimage=(cd)/boot/grub/splash.xpm.gz

title Gentoo Linux 64bit Live System stage4
root (hd0,0)
kernel /boot/kernel_NAME root=/dev/ram0 init=linuxrc vga=792 splash=silent,theme:natural_gentoo console=tty1 quit
initrd /boot/initrd_NAME



### Schritt 5:

bash create.livecd.sh [NAME]

NAME: nur für dieses System eine LiveCD/DVD erstellt
--> optionaler Parameter

Ergebnis

./LiveCD.iso

Das ist auch schon der letzte Schritt den man aber nur benötigt, wenn man wirklich eine CD/DVD haben will. Die Optionale Angabe sorgt dafür, dass nur dieses eine System in die LiveCD/DVD gepackt wird.
Anzumerken ist, dass die menu.lst von grub von Hand angepasst werden muss. Zur Vereinfachung existiert aber schon eine, bei der nur noch die Erweiterung von Kernel und Initrd angepasst werden muss.


Beispiel:

Das installiere System trägt den Namen LiveCD und wurde demnach in ./source/gentoo_stage4_LiveCD/ installiert. Dann sieht der Eintrag in der menu.lst wie folgt aus.


title Gentoo Linux 64bit stage4 --> LiveCD
root (cd)
kernel /boot/kernel_LiveCD root=/dev/ram0 init=linuxrc vga=792 splash=silent,theme:natural_gentoo console=tty1 quit
initrd /boot/initrd_LiveCD



### Weiter Skripte

bash create.backup.sh

Ergebnis

./GentooLiveBuildSystem.Datum.tar.bz2

Macht ein Backup aller benötigten Dateien. Es werden keine stages, Systeme und Images archiviert.



bash create.portage.sh [--with-update]

--with-update: führt vorher noch ein 'emerge --sync' und 'layman -s' aus
--> optionaler Parameter

Ergebnis

./target/boot/portage.img

Dieses Script aktualisiert den Portagebaum und die Overlays und erstellt dann eine ISO-Image für die LiveCD System.



bash stages/fetch.sh

Ergebnis
./stages/stage3-amd64-20090903.tar.bz2
./stages/stage3-amd64-20090903.tar.bz2.CONTENTS
./stages/stage3-amd64-20090903.tar.bz2.DIGESTS
./stages/stage3-amd64-20090903.tar.bz2.DIGESTS.asc
./stages/stage3-i486-20090901.tar.bz2
./stages/stage3-i486-20090901.tar.bz2.CONTENTS
./stages/stage3-i486-20090901.tar.bz2.DIGESTS
./stages/stage3-i486-20090901.tar.bz2.DIGESTS.asc
./stages/stage3-i686-20090901.tar.bz2
./stages/stage3-i686-20090901.tar.bz2.CONTENTS
./stages/stage3-i686-20090901.tar.bz2.DIGESTS
./stages/stage3-i686-20090901.tar.bz2.DIGESTS.asc
./stages/timestamp


Aktualisiert die Stages von gentoo...


--- ENDE ---

Edit 20100105:
Dank fester Variablen laufen die Scripte nicht mehr sauber durch. Es muss u.a. das Profile auf 10.0/desktop geändert werden und der Link zu UnionFS muss an den Kernel angepasst werden. Außerdem habe ich noch einen Bug in der InitRamFS. Dort sind die Rechte für die Datei 'linuxrc' falsch. Sie müssen im entsprechenden Ordner einmalig auf 777 gesetzt werden.

Wenn sonst noch einer was findet oder wissen will, nur her damit.


EDIT 20100109:
Habe mal eine aktuelle Version der Scripte hochgeladen. Dort ist das aktuelle Profile gesetzt, der Bug beseitigt und UnionFS wird automatisch installiert. Außerdem liegen die Kernel-Config-Dateien bei, sodass ein manuelles bearbeiten des Kernel wegfällt; war Schritt 2

EDIT: 20100619
Habe die Benennung der Gentoo-Umgebung abgeändert; jetz 'gentoo_stage4_ARCH_NAME'.
Aktuell sind ist auch die Verwendung der KDE/Gnome Profile. Getestet ist aber nur Gnome

EDIT: 20110321
Dateianhänge gehen ja wieder und daher mal eine Aktuelle Version. UnionFS wurde durch aufs2 ersetzt. Jetzt läuft X stabil. Neu ist auch die Angabe der UID und GID im bootloader sowie die Angabe einer Partition für das Home-Verzeichnis. Damit bleiben die Einstellungen es Benutzers erhalten wenn man einen USB-Stick verwendet.
»_Dirk_« hat folgende Datei angehängt:
Intel Core2 Quad CPU @ 2.40GHz mit Gentoo/Gnome3

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »_Dirk_« (21.03.2011, 21:45)


2

16.12.2010, 12:05

Moin,
könnte mir jemand die sich im Anhang befindenden Skripte zuschicken, da der Dowload mittlerweile nicht mehr möglich ist.

Gruß

Adock

3

16.12.2010, 12:35

Sieht wie ein Wrapper um catalyst aus.
Du kannst mit einer Entsprechende spec file selbe eine livecd|dvd mit gewünschten Programmen generieren.
Da brauchte dann einfach nur noch eine entsprechende seed stage3 und schon gehts los.

Wenn ein howto für catalyst haben willst kann ich dir noch ein extra Faden eröffnen.

In Attachment finded sich die origenal spec file aus den gentoo releng mit dem die 10.2 live cd generiert wurde,
viel spaß damit.
»Xaiyu« hat folgende Datei angehängt:
  • livecd.tar.gz (83,31 kB - 15 mal heruntergeladen - zuletzt: 25.08.2023, 16:08)

4

09.09.2012, 15:06


In Attachment finded sich die origenal spec file aus den gentoo releng mit dem die 10.2 live cd generiert wurde,
viel spaß damit.

Abgesehen davon das catalyst selten richtig funktioniert und zur Zeit so garnicht, würde ich gerne wissen woher du diese releng spec hast. Irgendwie sehe ich im sources.gentoo.org cvs/svn/git Wald die Bäume nicht mehr. Weißt du vielleicht wo sich die aktuelle (12.1) Umgebung finden lässt?
Schaue mir diesen "Wrapper" gerne mal an, schlimmer als catalyst kann zur Zeit kaum etwas sein. ;-)