Gentoo Linux x86 Handbuch: Gentoo installieren
Einleitung
Willkommen
Willkommen bei Gentoo! Gentoo ist ein freies, auf Linux basierendes Betriebssystem, das automatisch für nahezu jede Anwendung oder Anforderung optimiert und angepasst werden kann. Es baut auf einem Ökosystem freier Software auf und verbirgt nicht, was unter der Haube läuft, vor seinen Benutzern.
Offenheit
Die wichtigsten Werkzeuge von Gentoo sind in einfachen Programmiersprachen geschrieben. Portage, das Paketverwaltungssystem von Gentoo ist in Python geschrieben. Ebuilds, die Paketdefinitionen für Portage bereitstellen sind in Bash geschrieben. Unsere Benutzer werden damit ermutigt, den Quellcode für alle Teile von Gentoo zu überprüfen, zu verändern und zu verbessern.
Standardmäßig werden Pakete nur gepatcht, wenn es notwendig ist, um Fehler zu beheben oder Interoperabilität innerhalb von Gentoo zu gewährleisten. Sie werden auf dem System installiert, indem der Quellcode von Upstream-Projekten in das Binärformat kompiliert wird (obwohl auch vorkompilierte Binärpakte unterstützt werden). Die Konfiguration von Gentoo erfolgt über Textdateien.
Aus den oben genannten und anderen Gründen ist Offenheit als ein Designprinzip eingebaut.
Auswahl
Auswahl ist ein weiteres Gentoo Designprinzip.
Bei der Installation von Gentoo wird die Auswahl im Handbuch deutlich gemacht. Systemadministratoren können zwei vollständig unterstützte Init-Systeme wählen (Gentoos eigenes OpenRC und Freedesktop.org's systemd), die Partitionstruktur für die Festplatte(n), welche Dateisysteme auf der/den Platte(n) verwendet werden sollen, ein Ziel-Systemprofil, entfernen oder hinzufügen von Funktionen auf globaler (systemweiter) oder paketspezifischer Ebene über USE-Flags, Bootloader, Netzwerkverwaltungsprogramm und vieles, vieles mehr.
Als Entwicklungsphilosophie versuchen Gentoo Autoren es zu vermeiden, die Benutzer auf ein bestimmtes Systemprofil oder eine bestimmte Desktopumgebung zu zwingen. Wenn etwas im GNU/Linux Ökosystem angeboten wird, ist es wahrscheinlich auch in Gentoo verfügbar. Wenn nicht dann würden wir es gerne so sehen. Für neue Paketanfragen reichen Sie bitte einen Bug-Report ein oder erstellen Sie Ihr eigenes Ebuild-Repositorium.
Macht
Da Gentoo ein quellbasiertes Betriebssystem ist, kann es auf neue Computerarchitekturen portiert werden und alle installierten Pakete können angepasst werden. Diese Stärke zeigt ein weiteres Designprinzip von Gentoo: Macht.
Ein Systemadministrator, der Gentoo erfolgreich installiert und angepasst hat, hat ein maßgeschneidertes Betriebssystem aus dem Quellcode kompiliert. Das gesamte Betriebssystem kann auf binärer Ebene über die Mechanismen in der Portage-Datei make.conf angepasst werden. Falls gewünscht, können Anpassungen auf der Basis einzelner Pakete oder Paketgruppen vorgenommen werden. Mit USE-Flags können sogar ganze Sätze von Funktionen hinzugefügt oder entfernt werden.
Es ist sehr wichtig, dass der Leser des Handbuchs versteht, dass diese Designprinzipien Gentoo einzigartig machen. Mit den Prinzipien der großen Macht, der vielen Wahlmöglichkeiten und der extremen Offenheit, die hervorgehoben werden, sollte man bei der Verwendung von Gentoo Sorgfalt, Nachdenken und Absicht walten lassen.
Wie ist die Installation strukturiert
Die Installation von Gentoo kann als eine Prozedur von 10 Schritten gesehen werden, was den Kapiteln 2 bis 11 entspricht. Jeder Schritt führt zu einem bestimmten Ergebnis:
Schritt | Ergebnis |
---|---|
1 | Der Anwender befindet sich in einer funktionierenden Umgebung aus der Gentoo installiert werden kann. |
2 | Die Internetverbindung ist für die Gentoo-Installation vorbereitet. |
3 | Die Festplatten sind für die Gentoo-Installation vorbereitet. |
4 | Die Installationsumgebung ist vorbereitet und der Anwender ist bereit zum chroot in die neue Umgebung. |
5 | Die Kernpakete, die in allen Gentoo-Installationen gleich sind, sind installiert. |
6 | Der Linux-Kernel ist installiert. |
7 | Der Anwender hat die meisten Gentoo-Systemkonfigurationsdateien konfiguriert. |
8 | Die notwendigen System-Tools sind installiert. |
9 | Der gewählte Bootloader ist installiert und konfiguriert. |
10 | Die neu installierte Gentoo Linux Umgebung ist bereit entdeckt zu werden. |
Wenn Ihnen verschiedene Auswahlmöglichkeiten vorgestellt werden, geben wir unser Bestes, Ihnen die jeweiligen Vor- und Nachteile vorzustellen. Im weiteren Text wird zunächst eine Standardauswahl beschrieben (die im Titel durch "Standard:" gekennzeichnet ist), und anschließend die anderen Wahlmöglichkeiten (markiert durch "Alternativ:"). Die Standardauswahl ist nicht unbedingt das, was wir empfehlen. Es ist die Wahl, von der wir annehmen, dass die meisten Gentoo-Benutzer sie treffen werden.
Manchmal können Sie optionalen Schritten folgen. Solche Schritte sind als "Optional:" gekennzeichnet und nicht unbedingt notwendig, um Gentoo zu installieren. Dennoch können optionale Schritte von vorherigen Entscheidungen abhängen. Wir informieren Sie, wenn das passiert. Sowohl wenn Sie die Entscheidung treffen, als auch wenn der optionale Schritt beschrieben wird.
Installationsoptionen von Gentoo
Gentoo kann auf vielen verschiedenen Wegen installiert werden. Sie können ein offizielles Gentoo Installationsmedium wie unsere bootbaren ISO-Images herunterladen. Dieses Image kann auf einen USB-Stick kopiert oder aus dem Netzwerk gebootet werden. Alternativ können Sie Gentoo von einem nicht offiziellem Medium, wie zum Beispiel aus einer bereits installierten Distribution heraus oder von einem anderen, nicht von Gentoo herausgegebenen, bootbaren Datenträger (wie z.B. Knoppix) installieren.
Dieses Dokument beschreibt die Installation mit einem offiziellen Gentoo Installations-Datenträger, oder, in bestimmten Fällen, Netboot. Wir gehen davon aus, dass Sie die aktuellste Version eines jeden Pakets installieren wollen.
Für weitere Hilfe zu den anderen Installationsmöglichkeiten, einschließlich der Nutzung von nicht-Gentoo Boot-Medien, lesen Sie bitte unseren Leitfaden über alternative Installationsmethoden.
Wir bieten ebenfalls ein Gentoo Installation Tipps & Tricks-Dokument, das weitere nützliche Informationen enthält.
Probleme
Wenn Sie ein Problem während der Installation (oder in der Dokumentation) entdecken, schauen Sie bitte in unserem Bug-Tracking-System, ob der Fehler bereits bekannt ist. Wenn nicht, erstellen Sie bitte einen Fehlerbericht, damit wir uns der Sache annehmen können. Haben Sie keine Angst vor den Entwicklern, denen Ihr Fehlerbericht zugeteilt wird -- für gewöhnlich essen sie keine Menschen.
Obwohl das Dokument, das Sie gerade lesen, architekturspezifisch ist, kann es Referenzen zu anderen Architekturen enthalten. Das liegt daran, dass viele Teile des Gentoo Handbuchs Textpassagen verwenden, die für alle Architekturen gleich sind (um doppelten Arbeitsaufwand zu vermeiden). Wir versuchen, solche Referenzen auf ein Minimum zu beschränken, um Missverständnisse zu vermeiden.
Wenn Sie sich nicht sicher sind, ob ein Problem ein Benutzerproblem ist (ein Fehler, den Sie trotz sorgfältiger Lektüre dieser Dokumentation machen) oder ein Softwareproblem (ein Fehler, den wir trotz sorgfältigen Tests der Installation/Dokumentation begangen haben) sollten Sie den Channel #gentoo-de (webchat) im irc.libera.chat Netz besuchen. Natürlich sind Sie auch sonst willkommen, da unser Chat-Channel alle Gentoo-Themen abdeckt.
Apropos, wenn Sie eine weitere Frage hinsichtlich Gentoo haben, werfen Sie zunächst einen Blick in den Artikel Häufig gestellte Fragen (FAQ) hier im Wiki. Sie können auch die FAQs in unserem Forum lesen.
Hardware-Anforderungen
Bevor Sie mit dem Installationsprozess fortfahren, sollten Sie die Mindestanforderungen an die Hardware erfüllen, um Gentoo erfolgreich für die Systemarchitektur x86 zu installieren.
Minimal-CD | Live-DVD | |
---|---|---|
CPU | i486 oder neuer | i686 oder neuer |
Arbeitsspeicher | 256 MB | 512 MB |
Festplatte | 2,5 GB (ohne Swap-Speicher) | |
Swap-Speicher | Mindestens 256 MB |
Die Gentoo X86 Projektseite ist eine gute Stelle, um nach weiteren Informationen zur Gentoo x86-Unterstützung zu suchen.
Gentoo Linux Installations-Medien
Es ist in Ordnung, andere, nicht-Gentoo-Installationsmedien zu verwenden, obwohl die offiziellen Medien empfohlen werden. Gentoo-Installationsmedien stellen sicher, dass die notwendigen Werkzeuge in der Live-Umgebung vorhanden sind. Wenn Sie Nicht-Gentoo-Medien verwenden, gehen Sie zu Vorbereiten der Festplatte(n).
Minimal-Installations-CD
Die "Gentoo Minimal-Installations-CD" ist ein kleines, bootfähiges Image: eine vollständige Gentoo-Umgebung. Dieses Image wird von den Gentoo-Entwicklern gepflegt und wurde so konzipiert, dass jeder Gentoo installieren kann, wenn eine aktive Internetverbindung verfügbar ist. Während des Bootvorgangs wird die Hardware erkannt und die entsprechenden Treiber werden geladen.
Die Minimal-Installations-CDs werden im folgendem Format benannt: install-x86-minimal-<release>.iso.
The Gentoo LiveGUI
Some users may find it easier to install Gentoo using the LiveGUI, which provides a KDE desktop environment. In addition to providing a useful graphical environment, the LiveGUI has more kernel modules and firmware, which can help with using modern Wi-Fi chipsets.
The Gentoo LiveGUI USB image is built for amd64 and arm64 platforms weekly.
Was sind Stage-Dateien?
Eine Stage-Datei ist ein Archiv, welches als Ausgangspunkt einer Gentoo-Umgebung dient.
Stage3-Dateien können aus dem Verzeichnis releases/x86/autobuilds/ von einem der offiziellen Gentoo Spiegel-Server (Mirror-Server) heruntergeladen werden. Die Stage3-Dateien werden häufig aktualisiert und sind daher nicht auf den offiziellen Installations-Images enthalten.
For now, stage files can be ignored. They will be described in greater detail later when they are needed
Historically, the handbook described installation steps for stage files with versions lower than 3. These stages contained environments unsuitable for typical installations, and are no longer covered in the handbook.
Herunterladen
Herunterladen von Minimal-Installations-CDs
Die Standard-Installations-Medien, die Gentoo Linux verwendet, sind die Minimal-Installations-CDs. Sie enthalten eine bootfähige, sehr kleine Gentoo Linux-Umgebung mit allen wichtigen Tools für eine Gentoo Installation. Die CD-Images selbst können heruntergeladen werden von der Download Seite (empfohlen) oder manuell von einem der zahlreichen Gentoo Spiegel-Server (Mirrors).
Wenn Sie von einem Spiegel-Server herunterladen, finden Sie die Minimal-Installations-CDs wie folgt:
- Gehen Sie in das Verzeichnis releases/
- Gehen Sie in das Verzeichnis für die richtige Architektur, z.B. x86/
- Gehen Sie in das Verzeichnis autobuilds/
- Für die Architekturen amd64 und x86: gehen Sie in das Verzeichnis current-install-amd64-minimal/ bzw. current-install-x86-minimal/. Für alle anderen Architekturen: gehen Sie in das Verzeichnis current-iso/.
Für einige Architekturen wie arm, mips oder s390 gibt es keine Minimal-Installations-CDs. Zurzeit unterstützt das Gentoo Release Engineering project nicht das Bauen von .iso Images für diese Architekturen.
In diesem Verzeichnis ist die Minimal-Installations-CD-Datei diejenige mit der Dateinamen-Endung .iso. Schauen Sie sich beispielsweise folgendes Listing an:
[DIR] hardened/ 05-Dec-2014 01:42 -
[ ] install-x86-minimal-20141204.iso 04-Dec-2014 21:04 208M
[ ] install-x86-minimal-20141204.iso.CONTENTS 04-Dec-2014 21:04 3.0K
[ ] install-x86-minimal-20141204.iso.DIGESTS 04-Dec-2014 21:04 740
[TXT] install-x86-minimal-20141204.iso.asc 05-Dec-2014 01:42 1.6K
[ ] stage3-x86-20141204.tar.bz2 04-Dec-2014 21:04 198M
[ ] stage3-x86-20141204.tar.bz2.CONTENTS 04-Dec-2014 21:04 4.6M
[ ] stage3-x86-20141204.tar.bz2.DIGESTS 04-Dec-2014 21:04 720
[TXT] stage3-x86-20141204.tar.bz2.asc 05-Dec-2014 01:42 1.5K
In dem obigen Beispiel ist die Datei install-x86-minimal-20141204.iso die Minimal-Installations-CD. Wie Sie sehen, existieren aber auch noch weitere, zugehörige Dateien:
- Eine .CONTENTS-Datei, die eine Textdatei ist, die alle verfügbaren Dateien in der Minimal-Installations-CD auflistet. Diese Datei kann nützlich sein, um zu prüfen, ob bestimmte Firmware oder Treiber auf der "Minimal-Installations-CD" vorhanden sind, ohne sie zuvor herunterzuladen.
- Eine .DIGESTS-Datei, die den Hash der ISO-Datei selbst beinhaltet, mit verschiedensten Hash-Formaten/Algorithmen. Diese Datei kann verwendet werden, um zu verifizieren, ob die heruntergeladene ISO-Datei korrupt ist oder nicht.
- Eine .asc-Datei, die eine kryptografische Signatur der ISO-Datei darstellt. Diese kann sowohl dazu verwendet werden, um zu verifizieren, ob die heruntergeladene ISO-Datei korrupt ist oder nicht, als auch um zu verifizieren, dass der Download tatsächlich vom Gentoo Release-Engineering-Team bereitgestellt wurde und nicht manipuliert wurde.
Ignorieren Sie die anderen Dateien, die an diesem Ort verfügbar sind, vorerst - diese werden zurückkommen, wenn die Installation weiter fortgeschritten ist. Laden Sie die Datei .iso herunter und, wenn Sie den Download überprüfen möchten, laden Sie auch die Datei .iso.asc für die Datei .iso herunter. Die Datei .CONTENTS muss nicht heruntergeladen werden, da sich die Installationsanweisungen nicht mehr auf diese Datei beziehen, und die Datei .DIGESTS wird nicht benötigt, wenn die Signatur in der Datei .iso.asc verifiziert ist.
The .DIGESTS file is only needed if the signature in the .iso.asc file is not verified.
Verifikation der heruntergeladenen Dateien
Dies ist ein optionaler Schritt, der für die Installation von Gentoo Linux nicht notwendig ist. Er ist aber empfohlen, um sicherzustellen, dass die heruntergeladene Datei nicht korrupt ist und tatsächlich vom Gentoo Infrastruktur-Team stammt.
Die Datei .asc enthält eine kryptografische Signatur der ISO. Indem man sie validiert, kann man sicherstellen, dass die Installationsdatei vom Gentoo-Release-Engineering-Team stammt und intakt und unmodifiziert ist.
Microsoft Windows basierte Verifikation
Um die kryptografische Signatur zu verifizieren, können Sie Tools wie GPG4Win verwenden. Nach dessen Installation müssen Sie die öffentlichen Schlüssel des Gentoo Release-Engineering-Teams importieren. Die Liste der Schlüssel finden Sie auf der Signaturen-Seite. Sind diese importiert, können Sie die Signatur in der .asc Datei verifizieren.
Linux basierte Verifikation
Auf einem Linux-System ist die verbreitetste Methode zur Verifikation von kryptografischen Signaturen die Verwendung der Software app-crypt/gnupg. Wenn dieses Paket installiert ist, können Sie den folgenden Befehl verwenden, um die kryptografische Signatur in der .asc Datei zu überprüfen.
When importing Gentoo keys, verify that the fingerprint (
BB572E0E2D182910
) matches.Laden Sie zunächst die richtigen Schlüssel von der Signaturen-Seite herunter:
user $
gpg --keyserver hkps://keys.gentoo.org --recv-keys 0xBB572E0E2D182910
gpg: requesting key 0xBB572E0E2D182910 from hkp server pool.sks-keyservers.net gpg: key 0xBB572E0E2D182910: "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" 1 new signature gpg: 3 marginal(s) needed, 1 complete(s) needed, classic trust model gpg: depth: 0 valid: 3 signed: 20 trust: 0-, 0q, 0n, 0m, 0f, 3u gpg: depth: 1 valid: 20 signed: 12 trust: 9-, 0q, 0n, 9m, 2f, 0u gpg: next trustdb check due at 2018-09-15 gpg: Total number processed: 1 gpg: new signatures: 1
Alternativ können Sie das WKD verwenden, um die Schlüssel herunterzuladen:
user $
gpg --auto-key-locate=clear,nodefault,wkd --locate-key releng@gentoo.org
gpg: key 0x9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported gpg: key 0xBB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported gpg: Total number processed: 2 gpg: imported: 2 gpg: public key of ultimately trusted key 0x58497EE51D5D74A5 not found gpg: public key of ultimately trusted key 0x1F3D03348DB1A3E2 not found gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u pub dsa1024/0x9E6438C817072058 2004-07-20 [SC] [expires: 2024-01-01] D99EAC7379A850BCE47DA5F29E6438C817072058 uid [ unknown] Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org> sub elg2048/0x0403710E1415B4ED 2004-07-20 [E] [expires: 2024-01-01]
Oder wenn Sie offizielle Gentoo-Release-Medien verwenden, importieren Sie den Schlüssel aus /usr/share/openpgp-keys/gentoo-release.asc (bereitgestellt von sec-keys/openpgp-keys-gentoo-release):
user $
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
gpg: directory '/home/larry/.gnupg' created gpg: keybox '/home/larry/.gnupg/pubring.kbx' created gpg: key DB6B8C1F96D8BF6D: 2 signatures not checked due to missing keys gpg: /home/larry/.gnupg/trustdb.gpg: trustdb created gpg: key DB6B8C1F96D8BF6D: public key "Gentoo ebuild repository signing key (Automated Signing Key) <infrastructure@gentoo.org>" imported gpg: key 9E6438C817072058: 3 signatures not checked due to missing keys gpg: key 9E6438C817072058: public key "Gentoo Linux Release Engineering (Gentoo Linux Release Signing Key) <releng@gentoo.org>" imported gpg: key BB572E0E2D182910: 1 signature not checked due to a missing key gpg: key BB572E0E2D182910: public key "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" imported gpg: key A13D0EF1914E7A72: 1 signature not checked due to a missing key gpg: key A13D0EF1914E7A72: public key "Gentoo repository mirrors (automated git signing key) <repomirrorci@gentoo.org>" imported gpg: Total number processed: 4 gpg: imported: 4 gpg: no ultimately trusted keys found
Verifizieren Sie dann die kryptographische Signatur:
user $
gpg --verify install-x86-minimal-20141204.iso.asc
gpg: Signature made Fri 05 Dec 2014 02:42:44 AM CET gpg: using RSA key 0xBB572E0E2D182910 gpg: Good signature from "Gentoo Linux Release Engineering (Automated Weekly Release Key) <releng@gentoo.org>" [unknown] gpg: WARNING: This key is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 13EB BDBE DE7A 1277 5DFD B1BA BB57 2E0E 2D18 2910
Um absolut sicher zu sein, dass alles richtig ist, verifizieren Sie den angezeigten Fingerabdruck gegen den Fingerabdruck auf der Gentoo-Signaturen-Seite.
It's generally good practice to mark an imported key as trusted, once it's certain the key is trustworthy. When trusted keys are verified, gpg will not say unknown and warn about the signature being untrusted.
Writing the boot media
Da die ISO-Datei bisher nur heruntergeladen wurde, können wir damit die Gentoo Linux-Installation noch nicht beginnen. Die ISO-Datei muss noch auf eine CD gebrannt werden, von der dann gestartet wird. Dabei muss der Inhalt der ISO auf die CD gebrannt werden, nicht die Datei selbst. Im Folgenden werden einige verbreitete Methoden beschrieben, ausführlichere Anweisungen finden Sie in unserer FAQ zum Brennen einer ISO-Datei.
Writing a bootable USB
Most modern systems support booting from a USB device.
Writing with Linux
dd is typically available on most Linux distros, and can be used to write the Gentoo boot media to a USB drive.
Determining the USB device path
Before writing, the path to the desired storage device must be determined.
dmesg will display detailed information describing the storage device as it is added to the system:
root #
dmesg
[268385.319745] sd 19:0:0:0: [sdd] 60628992 512-byte logical blocks: (31.0 GB/28.9 GiB)
Alternatively, lsblk can be used to display available storage devices:
root #
lsblk
sdd 8:48 1 28.9G 0 disk ├─sdd1 8:49 1 246K 0 part ├─sdd2 8:50 1 2.8M 0 part ├─sdd3 8:51 1 463.5M 0 part └─sdd4 8:52 1 300K 0 part
Once the device name has been determined, this can be added to the path prefix /dev/ to get the device path /dev/sdd.
Using the base device path, ie. sdd opposed to sdd1, is recommend as the Gentoo boot media contains a full GPT partition scheme.
Writing with dd
Be sure to check the target (of=target) path before executing dd, as it will be overwritten.
With the device path (/dev/sdd) and boot media install-amd64-minimal-<release timestamp>.iso ready:
root #
dd if=install-amd64-minimal-<release timestamp>.iso of=/dev/sdd bs=4096 status=progress && sync
if= specifies the input file, of= specifies the output file, which in this case, is a device.
bs=4096 is used as it speeds up transfers in most cases, status=progress displays transfers stats.
Brennen einer CD
A more elaborate set of instructions can be found in CD/DVD/BD_writing#Image_writing.
Brennen mit Microsoft Windows
Neuere Windows-Betriebssysteme ab Version 7 können ISO-Images sowohl mounten als auch auf optische Medien brennen, ohne dass weitere Software dafür erforderlich ist. Legen Sie einfach eine brennbares Medium in das Laufwerk ein, gehen Sie im Windows Explorer zu den heruntergeladenen ISO-Images, klicken Sie das ISO-Image mit der rechten Maustaste an und wählen Sie "Disk-Image brennen".
Brennen mit Linux
Das Programm cdrecord, das im Paket app-cdr/cdrtools enthalten ist, kann unter Linux ISO-Images brennen.
Um die ISO-Datei auf die CD zu brennen, die sich im Laufwerk /dev/sr0 befindet (/dev/sr0 ist das erste CD-Laufwerk im System - ersetzen Sie dieses ggf. durch das CD-Laufwerk, das Sie verwenden wollen):
user $
cdrecord dev=/dev/sr0 install-x86-minimal-20141204.iso
Benutzer, die eine grafische Benutzeroberfläche vorziehen, können K3B verwenden, welches Teil des Pakets kde-apps/k3b ist. In K3B, wählen Sie Tools und dann CD-Image brennen.
Booten
Booten des Installations-Mediums
Sobald das Installations-Medium erstellt ist, ist es Zeit, dieses zu booten. Legen Sie das Installations-Medium in das System ein, rebooten Sie und gehen Sie in das User-Interface der Firmware Ihres Mainboards (BIOS/UEFI-Setup). Normalerweise erreichen Sie dies durch Drücken einer der Tasten ENTF, F1, F10 oder ESC während des Power-On Self-Tests (POST) des Mainboards. Die genaue Taste ist abhängig vom Mainboard. Wenn Sie sie nicht kennen, sie nicht im Handbuch des Mainboards steht und Sie sie nicht durch Probieren herausfinden können, können Sie mit Hilfe einer Suchmaschine im Internet danach suchen. Wenn Sie im Firmware-Menu Ihres Mainboards sind, ändern Sie bitte die Boot-Reihenfolge, so dass das Mainboard zuerst versucht, von Ihrem Installations-Medium zu booten, bevor es versucht, von den internen Festplatten zu booten. Ohne diese Änderung würde Ihr System wahrscheinlich von den internen Festplatten booten und Ihr Installations-Medium ignorieren.
Wenn Sie beabsichtigen, UEFI anstatt des klassischen BIOS zu verwenden, sollten Sie umgehend mit UEFI booten. Falls nicht, müssen Sie vor Abschluss der Gentoo Linux-Installation eventuell einmalig einen bootfähigen UEFI-USB-Stick (oder ein anderes Medium) erstellen.
Sofern noch nicht geschehen, stellen Sie bitte sicher, das das Installations-Medium eingelegt oder mit Ihrem System verbunden ist und rebooten Sie. Sie sollten einen Bootscreen zu sehen bekommen. An diesem Screen können Sie Enter drücken, um Gentoo mit den standardmäßigen Bootoptionen zu starten. Sie können auch einen anderen Kernel und angepasste Bootoptionen auswählen und erst dann Enter drücken.
Wahrscheinlich wird der Standard Gentoo-Kernel, wie oben beschrieben, auch ohne die Angabe von optionalen Parametern funktionieren. Im folgenden Abschnitt finden Sie Optionen zur Problemlösung und für Experten. Wenn Sie diese nicht benötigen, können Sie Enter drücken und zum Abschnitt Erweiterte Hardwarekonfiguration weitergehen.
Wenn der Boot-Prompt angezeigt wird, haben Sie die Möglichkeit, die verfügbaren Kernel (F1) sowie Bootoptionen (F2) anzuzeigen. Wenn Sie innerhalb von 15 Sekunden keine Wahl treffen (entweder die Informationen anzuzeigen oder einen Kernel zu verwenden), wird das Installations-Medium einfach von der Platte booten. Das macht es möglich, dass Sie nach der Installation rebooten und das neu installierte System ausprobieren können, ohne die CD aus dem Laufwerk entfernen zu müssen. Das ist insbesondere für Remote-Installationen sehr nützlich.
Wir haben erwähnt, dass Sie einen Kernel angeben können. Auf den Minimal-Installations-CDs bieten wir nur zwei verschiedene Kernel an. Der Standard-Kernel heißt gentoo. Der andere Kernel ist die -nofb-Variante. Dieser Kernel deaktiviert die Framebuffer-Unterstützung.
Nachfolgend finden Sie einen kurzen Überblick über die verfügbaren Kernel und ihre Beschreibungen:
Kernel Auswahlmöglichkeiten
- gentoo
- Standard-Kernel mit Unterstützung für K8-CPUs (inklusive NUMA-Unterstützung) und EM64T-CPUs.
- gentoo-nofb
- Genau wie gentoo, nur ohne Framebuffer-Unterstützung.
- memtest86
- Testet Ihr lokales RAM auf Fehler.
Dem Kernel können Sie einige Boot-Optionen mitgeben, die den Bootvorgang weiter optimieren.
Hardware Optionen
- acpi=on
- Dies lädt Unterstützung für ACPI und führt auch dazu, dass der acpid Dämon von der CD beim Boot gestartet wird. Dies wird nur benötigt, wenn Ihr System ACPI benötigt, um korrekt zu funktionieren. Dies wird nicht für Hyperthreading-Unterstützung benötigt.
- acpi=off
- Deaktiviert ACPI komplett. Dies ist auf einigen älteren Systemen hilfreich und außerdem eine Anforderung für die Verwendung von APM. Dies wird jegliche Hyperthreading-Unterstützung für Ihren Prozessor deaktivieren.
- console=X
- Dies richtet den seriellen Konsolenzugriff für die CD ein. Die erste Option ist das Gerät, normalerweise ttyS0 auf x86, gefolgt von jeglichen Verbindungsoptionen, welche durch Komma getrennt sind. Die Standardoptionen sind 9600,8,n,1.
- dmraid=X
- Dies erlaubt die Übergabe von Optionen an das device-mapper RAID-Subsystem. Optionen sollten von Anführungsstrichen umgeben sein.
- doapm
- Dies lädt APM-Treiberunterstützung. Dies verlangt auch, dass Sie außerdem acpi=off verwenden.
- dopcmcia
- Dies lädt Unterstützung für PCMCIA- und Cardbus-Hardware und sorgt außerdem dafür, dass der PCMCIA cardmgr von der CD beim Booten gestartet wird. Dies ist nur nötig, wenn von einem PCMCIA/Cardbus-Gerät gebootet wird.
- doscsi
- Dies lädt Unterstützung für die meisten SCSI-Controller. Dies wird auch benötigt, um die meisten USB-Geräte zu booten, da Sie das SCSI-Subsystem des Kernels verwenden.
- sda=stroke
- Dies erlaubt es Ihnen, die gesamte Festplatte zu partitionieren - selbst wenn das BIOS nicht in der Lage ist, große Festplatten zu verwalten. Diese Option wird nur auf Rechnern mit einem älteren BIOS verwendet. Ersetzten Sie sda durch das Gerät, welches diese Option benötigt.
- ide=nodma
- Dies erzwingt die Deaktivierung von DMA im Kernel und wird von einigen IDE-Chipsätzen und auch einigen CDROM-Laufwerken benötigt. Wenn Ihr System Probleme hat mit den Lesen von Ihrem IDE-CDROM, sollten Sie diese Option ausprobieren. Dies deaktiviert außerdem das Ausführen der Standardeinstellungen von hdparm.
- noapic
- Dies deaktiviert den Advanced Programmable Interrupt Controller der sich auf neueren Motherboards findet. Er ist bekannt dafür, einige Probleme mit älterer Hardware zu verursachen.
- nodetect
- Dies deaktiviert jegliche Autoerkennung der CD, inklusive der Geräteautoerkennung und der DHCP-Suche. Dies kann hilfreich beim Debuggen eines CD- oder Treiberfehlers sein.
- nodhcp
- Dies deaktiviert die DHCP-Suche auf den erkannten Netzwerkkarten. Dies ist hilfreich in Netzwerken mit nur statischen Adressen.
- nodmraid
- Deaktiviert Unterstützung für device-mapper RAID, wie das welches für on-board IDE/SATA RAID-Controller verwendet wird.
- nofirewire
- Dies deaktiviert das Laden der Firewire-Module. Dies sollte nur notwendig sein, wenn Ihre Firewire-Hardware Probleme beim Booten der CD verursacht.
- nogpm
- Dies deaktiviert die Konsolen-Maus-Unterstützung gpm.
- nohotplug
- Dies deaktiviert das Laden der Init-Skripte hotplug und coldplug beim Boot. Dies kann hilfreich beim Debuggen eines CD- oder Treiberfehlers sein.
- nokeymap
- Dies deaktiviert die Keymap-Auswahl, welche verwendet wird zur Auswahl von nicht-US Tastaturlayouts.
- nolapic
- Dies deaktiviert den lokalen APIC auf Uniprozessor-Kerneln.
- nosata
- Dies deaktiviert das Laden der Serial-ATA-Module. Dies ist hilfreich, wenn Ihr System Probleme mit dem SATA-Subsystem hat.
- nosmp
- Dies deaktiviert SMP, oder Symmetric Multiprocessing, auf SMP-aktiven Kerneln. Dies ist hilfreich beim Debuggen von Problemen bezüglich SMP mit bestimmten Treibern und Motherboards.
- nosound
- Dies deaktiviert Soundunterstützung und Lautstärkeeinstellungen. Dies ist hilfreich bei Systemen, auf denen die Soundunterstützung Probleme verursacht.
- nousb
- Dies fügt einige zusätzliche Pausen zum Bootvorgang hinzu für langsame USB-CDROMs, wie zum Beispiel im IBM-BladeCenter.
- slowusb
- This adds some extra pauses into the boot process for slow USB CDROMs, like in the IBM BladeCenter.
Logical Volume/Device Management
- dolvm
- Dies aktiviert Unterstützung für das Logical Volume Management von Linux.
Andere Optionen
- debug
- Aktivieren des Debugging-Codes. Dies kann etwas unübersichtlich werden, da eine Menge Daten auf dem Bildschirm ausgegeben wird.
- docache
- Dies lädt den gesamten Runtime-Bereich der CD in RAM. Das ermöglicht Ihnen, umount /mnt/cdrom zu verwenden und eine andere CD-ROM zu mounten. Diese Optionen erfordert, dass Sie mindestens doppelt soviel RAM verfügbar haben, wie die Größe der CD.
- doload=X
- Dies zwingt die initiale Ramdisk dazu, jegliche aufgelistete Module zu laden, und auch deren Abhängigkeiten. Ersetzen Sie X durch den Modulnamen. Mehere Module können mit einer durch Kommas separierten Liste spezifiziert werden.
- dosshd
- Startet sshd beim Boot, was hilfreich ist bei entfernten Installationen.
- passwd=foo
- Setzt was immer nach dem Gleichheitszeichen folgt als Passwort für root. Dies wird benötigt für dosshd, weil das Passwort für root standardmäßig verschlüsselt ist.
- noload=X
- Dies zwingt die initiale Ramdisk dazu, den Ladevorgang eines bestimmten Moduls zu überspringen, welches Probleme verursachen könnte. Die Syntax ist dieselbe, wie für doload.
- nonfs
- Deaktiviert den Start von portmap/nfsmount beim Boot.
- nox
- Dies zwingt die X-aktivierte LiveCD dazu, X nicht automatisch zu starten, sondern stattdessen auf die Kommandozeile zurückzufallen.
- scandelay
- Dies zwingt die CD dazu, während bestimmter Abschnitte des Bootvorgangs für 10 Sekunden zu warten, um bestimmten Geräten, die langsamer sind, Zeit zu geben, sich zu initialisieren.
- scandelay=X
- Dies erlaubt es Ihnen, eine beliebige Verzögerung, in Sekunden, zu bestimmten Abschnitten des Bootvorgangs hinzuzufügen, um langsameren Geräten die Möglichkeit zu geben, sich zu initialisieren. Ersetzen Sie X durch die Anzahl von Sekunden, die pausiert werden soll.
The bootable media will check for
no*
options before do*
options, so that options can be overridden in the exact order specified.Nun booten Sie Ihr Installations-Medium, wählen Sie einen Kernel (falls der standardmäßige gentoo-Kernel nicht genügt) und die Boot-Optionen. Wir zeigen Ihnen als Beispiel, wie Sie den gentoo-Kernel mit dopcmcia
als Kernel-Parameter booten:
boot:
gentoo dopcmcia
Sie werden dann von einem Boot-Screen und einem Fortschrittsbalken begrüßt. Wenn Sie Gentoo nicht an einem System mit einer US-Tastatur installieren, drücken Sie sofort ALT+F1 um in den Verbose-Mode zu wechseln und folgen Sie den Anweisungen. Wenn binnen 10 Sekunden keine Auswahl getroffen wurde, wird das Standard-Tastaturlayout (US) geladen und der Bootvorgang fortgesetzt. Nachdem der Bootvorgang abgeschlossen ist, werden Sie automatisch als Superuser "root" in das "Live" Gentoo Linux eingeloggt. Sie sollten einen root-Prompt ("#") auf der aktuellen Konsole sehen und durch das Drücken von Alt+F2, Alt+F3 und Alt+F4 auf andere Konsolen wechseln können. Um wieder zur Ausgangskonsole zu wechseln, drücken Sie Alt+F1.
Erweiterte Hardwarekonfiguration
Wenn das Installations-Medium bootet, versucht es alle Hardwaregeräte zu erkennen und die entsprechenden Kernelmodule zu laden. In den allermeisten Fällen funktioniert dies wunderbar. Dennoch kann es in einzelnen Fällen passieren, dass nicht alle benötigten Module automatisch geladen werden. Wenn die PCI-Autoerkennung einen Teil Ihres Systems nicht erkennt, müssen Sie die entsprechenden Kernelmodule manuell laden.
Im nächsten Beispiel versuchen wir das 8139too-Modul zu laden (Unterstützung für verschiedene Arten von Netzwerkkarten):
root #
modprobe 8139too
Optional: Benutzerkonten
Wenn Sie planen, anderen Leuten Zugriff auf Ihre Installation zu geben oder mit irssi ohne root-Rechte chatten möchten (aus Sicherheitsgründen), müssen Sie die notwendigen Benutzerkonten anlegen und das root-Passwort auf ein sicheres Passwort setzen.
Um das root-Passwort zu ändern benutzen Sie das passwd-Tool:
root #
passwd
New password: (Geben Sie das neue Passwort ein) Re-enter password: (Geben Sie das Passwort erneut ein)
Um ein Benutzerkonto zu erstellen, geben wir zunächst die Details zur Person ein, gefolgt vom zugehörigen Passwort. Wir benutzen useradd und passwd für diese Aufgaben.
Im nächsten Beispiel erstellen wir einen Benutzer namens john:
root #
useradd -m -G users john
root #
passwd john
New password: (Geben Sie das Passwort von john ein) Re-enter password: (Geben Sie erneut das Passwort von john ein)
Sie können vom (aktuellen) Benutzer root zum neu erstellten Benutzer mit su wechseln:
root #
su - john
Optional: Lesen der Dokumentation während der Installation
TTYs
Um das Gentoo-Handbuch während der Installation anzusehen, erstellen Sie zunächst ein Benutzerkonto wie oben beschrieben. Drücken Sie dann Alt+F2, um zu einem neuen Terminal (TTY) zu wechseln.
Sie können das Gentoo-Handbuch während der Installation mit links anschauen - natürlich erst, sobald Ihre Internetverbindung aufgesetzt ist.
user $
links https://wiki.gentoo.org/wiki/Handbook:X86/de
Sie können auf Ihr Ausgangsterminal mittels Alt+F1 zurückwechseln.
Wenn Sie in die Gentoo Minimal- oder Gentoo Admin-Umgebung booten, sind sieben TTYs verfügbar. Sie können durch Drücken von Alt und einer Funktionstaste zwischen F1-F7 umgeschaltet werden. Es kann nützlich sein, zu einem neuen Terminal zu wechseln, wenn man auf die Beendigung eines Jobs wartet, um die Dokumentation zu öffnen, usw.
GNU Screen
Das Programm Screen ist auf offiziellen Gentoo Installationsmedien standardmäßig enthalten. Für den erfahrenen Linux Enthusiasten könnte es effizienter sein, screen zu benutzen, um sich die Installationsanleitung anzusehen, als die oben beschriebenen Multi-TTY-Methode.
Optional: Starten des SSH-Daemons
Wenn Sie anderen Benutzern während der Installation von Gentoo Zugriff auf Ihren Rechner geben wollen (vielleicht weil diese Sie bei der Installation von Gentoo unterstützen oder diese für Sie durchführen), müssen Sie ein Benutzerkonto für diese Person erstellen (wie zuvor beschrieben) und den SSH-Daemon starten.
Um den SSH-Daemon auf einer Maschine mit OpenRC Init-System zu starten, führen Sie folgenden Befehl aus:
root #
rc-service sshd start
Wenn Sie (oder ein anderer Benutzer) sich in das System einloggen, werden Sie eine Meldung sehen, dass der Host-Key für dieses System (anhand eines sogenannten Fingerprints) bestätigt werden muss. Dieses Verhalten ist typisch und zu erwarten bei dem erstmaligen Verbindungsaufbau zu einem SSH-Server. Wenn Ihr System aber später aufgesetzt ist und Sie sich dann in das neue System einloggen, wird Ihr SSH-Client Sie warnen, dass sich der Host-Key geändert hat. Aus der Sicht Ihres SSH-Clients loggen Sie sich in einen anderen Server ein (nämlich Ihr neu installiertes Gentoo-System anstelle der Live-Umgebung in der Sie sich gerade befinden). Wenn Sie dann diese Warnung erhalten, befolgen Sie die ausgegebenen Anweisungen, um den Host-Key auf dem Client-System zu ersetzen.
Um sshd nutzen zu können, müssen Sie zunächst das Netzwerk einrichten. Setzen Sie die Installation mit der Konfiguration des Netzwerks fort.
Automatische Netzwerk-Erkennung
Vielleicht funktioniert es einfach?
Wenn sich Ihr System in einem Ethernet-Netzwerk mit einem DHCP-Server befindet, ist es sehr wahrscheinlich, dass Ihr Netz bereits konfiguriert ist. Sie können nun die zahlreichen Netzwerktools auf dem Installationsmedium wie beispielsweise ssh, scp, ping, irssi, wget und links nutzen.
Verwendung von DHCP
DHCP (Dynamic Host Configuration Protocol) ermöglicht es die gesamte Netzwerkkonfiguration (IP-Adresse, Netzwerkmaske, Broadcast-Adresse, Gateway, DNS-Server etc.) dynamisch von einem Server zu beziehen. Das funktioniert logischerweise nur, wenn Sie einen DHCP-Server in Ihrem LAN haben oder Ihr Provider einen solchen Dienst anbietet. Benutzen Sie dhcpcd:
DHCP requires that a server be running on the same Layer 2 (Ethernet) segment as the client requesting a lease. DHCP is often used on RFC1918 (private) networks, but is also used to acquire public IP information from ISPs.
Official Gentoo boot media runs dhcpcd automatically at startup. This behavior can be disabled by adding the
nodhcp
argument to the boot media kernel commandline.If it is not already running, dhcpcd can be started on enp1s0 with:
root #
dhcpcd eth0
Einige Netzwerkadministratoren erfordern es, dass der Host- und Domainname, die vom DHCP-Server angeboten werdden, vom System genutzt werden. In diesem Fall verwenden Sie:
root #
dhcpcd -HD eth0
To stop dhcpcd, -x can be used:
root #
dhcpcd -x
sending signal Term to pid 10831 waiting for pid 10831 to exit
Dhcpcd usage
Das Netzwerk testen
A properly configured default route is a critical component of Internet connectivity, route configuration can be checked with:
root #
ip route
default via 192.168.0.1 dev enp1s0
If no default route is defined, Internet connectivity is unavailable, and additional configuration is required.
Basic internet connectivity can be confirmed with a ping:
root #
ping -c 3 1.1.1.1
It's helpful to start by pinging a known IP address instead of a hostname. This can isolate DNS issues from basic Internet connectivity issues.
Outbound HTTPS access and DNS resolution can be confirmed with:
root #
curl --location gentoo.org --output /dev/null
Wenn Sie nun in der Lage sind, Ihr Netzwerk zu verwenden, dann können Sie den Rest dieses Kapitels überspringen und mit dem Vorbereiten der Festplatte(n) fortfahren.
If curl reports an error, but Internet-bound pings work, DNS may need configuration.
If Internet connectivity has not been established, first interface information should be verified, then:
- net-setup can be used to assist in network configuration.
- Application specific configuration may be required.
- Manual network configuration can be attempted.
Ermitteln der Interface-Namen
If networking doesn't work out of the box, additional steps must be taken to enable Internet connectivity. Generally, the first step is to enumerate host network interfaces.
Als Alternative zu ifconfig kann zur Anzeige von Interface-Namen das Kommando ip verwendet werden. Das folgende Beispiel zeigt die Ausgabe von ip addr. Die ausgegebenen Daten unterscheiden sich vom letzten Beispiel, weil das ip-Kommando auf einem anderen System eingegeben wurde:
The link argument can be used to display network interface links:
root #
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 4: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff
The address argument can be used to query device address information:
root #
ip addr
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether e8:40:f2:ac:25:7a brd ff:ff:ff:ff:ff:ff inet 10.0.20.77/22 brd 10.0.23.255 scope global eno1 valid_lft forever preferred_lft forever inet6 fe80::ea40:f2ff:feac:257a/64 scope link valid_lft forever preferred_lft forever
The output of this command contains information for each network interface on the system. Entries begin with the device index, followed by the device name: enp1s0.
Wenn die Ausgabe von ifconfig keine Interfaces anzeigt, starten Sie das Kommando noch einmal mit der Option
-a
.
Mit dieser Option zeigt ifconfig alle vom System erkannten Interfaces, unabhängig davon, ob sie im Zustand "up" oder "down" sind. Wenn ifconfig -a keine Interfaces anzeigt, ist entweder die Hardware defekt oder der erforderliche Kernel-Treiber ist nicht geladen. Beide Fälle können nicht in diesem Handbuch besprochen werden. Bitte kontaktieren Sie #gentoo (webchat) für Hilfe.In dem Rest dieses Dokuments geht das Handbuch davon aus, dass das genutzte Netzwerk-Interface den Namen eth0 hat.
Als Folge des Wechsels zu predictable network interface names, kann sich der Interface-Name deutlich von der alten "eth0"-Namens-Konvention unterscheiden. Aktuelle Installations-Medien zeigen möglicherweise Namen an wie: eno0, ens1, oder enp5s0. Suchen Sie nach dem Interface in der Ausgabe von ifconfig, das eine IP-Adresse aus Ihrem lokalen Netwerk hat.
Optional: Application specific configuration
The following methods are not generally required, but may be helpful in situations where additional configuration is required for Internet connectivity.
=== Optional: Konfiguration eines Web-Proxies ===
Wenn Sie auf das Internet nur über einen Proxy-Server zugreifen können, müssen Sie während der Installation das System für die Verwendung des Proxy-Servers vorbereiten. Das ist aber recht einfach. Sie müssen dazu lediglich eine Variable mit den Informationen über den Proxy-Server setzen.
Certain text-mode web browsers such as links can also make use of environment variables that define web proxy settings; in particular for the HTTPS access it also will require the https_proxy environment variable to be defined. While Portage will be influenced without passing extra run time parameters during invocation, links will require proxy settings to be set.
In den meisten Fällen können Sie den Hostnamen des Proxy-Servers in die Variable schreiben. Nehmen wir an, der Server ist proxy.gentoo.org und der Port ist 8080.
The
#
symbol in the following commands is a comment. It has been added for clarity only and does not need to be typed when entering the commands.Zur Einrichtung eines HTTP-Proxies (für HTTP- und HTTPS-Traffic):
root #
export http_proxy="http://proxy.gentoo.org:8080"
Wenn der Proxy-Server einen Benutzernamen und Passwort erfordert, sollten Sie die folgende Syntax in der Variable verwenden:
http://username:password@proxy.gentoo.org:8080
Start links using the following parameters for proxy support:
user $
links -http-proxy ${http_proxy} -https-proxy ${https_proxy}
Zur Einrichtung eines FTP-Proxies:
root #
export ftp_proxy="ftp://proxy.gentoo.org:8080"
Start links using the following parameter for a FTP proxy:
user $
links -ftp-proxy ${ftp_proxy}
Zur Einrichtung eines RSYNC-Proxies:
root #
export RSYNC_PROXY="proxy.gentoo.org:8080"
Alternativ: Verwendung von PPP
If PPPoE is required for Internet access, the Gentoo boot media includes the pppoe-setup script to simplify ppp configuration.
During setup, pppoe-setup will ask for:
- The name of the Ethernet interface connected to the ADSL modem.
- The PPPoE username and password.
- DNS server IPs.
- Whether or not a firewall is needed.
root #
pppoe-setup
root #
pppoe-start
In the event of failure, credentials in /etc/ppp/pap-secrets or /etc/ppp/chap-secrets should be verified. If credentials are correct, PPPoE Ethernet interface selection should be checked.
Alternativ: Verwendung von PPTP
Wenn Sie PPTP-Unterstüzung benötigen, können Sie das Programm pptpclient, das Ihnen von der Installations-CD bereitgestellt wird, verwenden. Allerdings müssen Sie vorher sichergehen, dass Ihre Konfiguration korrekt ist. Dazu editieren Sie die Datei /etc/ppp/pap-secrets oder /etc/ppp/chap-secrets, so dass diese die korrekte Benutzername/Kennwort-Kombination beinhalten.
Edit /etc/ppp/pap-secrets or /etc/ppp/chap-secrets so it contains the correct username/password combination:
root #
nano -w /etc/ppp/chap-secrets
Wenn nötig, sollten Sie nun noch /etc/ppp/options.pptp anpassen:
root #
nano -w /etc/ppp/options.pptp
Nun geben Sie den Befehl pptp (mit den Optionen, die Sie in options.pptp setzen könnten) ein, um sich mit dem Server zu verbinden.
root #
pptp <server ipv4 address>
Vorbereitung für drahtlosen Zugriff
Do not use WEP unless it is the only option. WEP provides essentially no security over an open network.
Die Unterstützung für das Kommando iw kann architekturspezifisch sein. Wenn das Kommando nicht verfügbar ist, schauen Sie ob das Paket net-wireless/iw für die gewählte Architektur verfügbar ist. Das Kommando iw wird erst dann zur Verfügung stehen, wenn das Paket net-wireless/iw installiert ist.
Wenn Sie eine WLan-Karte (802.11) benutzen, müssen Sie Einstellungen zur Nutzung der Karte einrichten, bevor es weiter gehen kann. Um sich die aktuellen Einstellungen der Karte anzuschauen, benutzen Sie iw. iw zeigt Ihnen möglicherweise etwas wie dies:
root #
iw dev wlp9s0 info
Interface wlp9s0 ifindex 3 wdev 0x1 addr 00:00:00:00:00:00 type managed wiphy 0 channel 11 (2462 MHz), width: 20 MHz (no HT), center1: 2462 MHz txpower 30.00 dBm
Um zu überprüfen, ob eine Verbindung besteht:
root #
iw dev wlp9s0 link
Not connected.
oder
root #
iw dev wlp9s0 link
Connected to 00:00:00:00:00:00 (on wlp9s0) SSID: GentooNode freq: 2462 RX: 3279 bytes (25 packets) TX: 1049 bytes (7 packets) signal: -23 dBm tx bitrate: 1.0 MBit/s
Einige drahtlose Netzwerkkarten benutzen einen Gerätenamen wie wlan0 oder ra0 anstelle von wlp9s0. Führen Sie ip link aus, um den korrekten Gerätenamen zu ermitteln.
Für die meisten Benutzer sind zum Herstellen einer Verbindung nur zwei Einstellungen notwendig: die ESSID (der Name des drahtlosen Netzes) und optional der WEP Key.
- Stellen Sie als erstes sicher, dass das Interface im Zustand "up" ist:
root #
ip link set dev wlp9s0 up
- Um eine Verbindung mit einem offenen Netzwerk mit Namen GentooNode herzustellen:
root #
iw dev wlp9s0 connect -w GentooNode
- Wenn das Netzwerk nicht offen, sondern mit WEP verschlüsselt ist, und Sie einen WEP-Schlüssel im hexadezimalen Format haben: schreiben Sie das Prefix
d:
vor den Schlüssel:
root #
iw dev wlp9s0 connect -w GentooNode key 0:d:1234123412341234abcd
- Wenn Sie einen WEP-Schlüssel im ASCII-Format haben:
root #
iw dev wlp9s0 connect -w GentooNode key 0:some-password
Falls Ihr drahtloses Netzwerk WPA oder WPA2 benutzt, werden Sie wpa_supplicant verwenden müssen. Für weitere Informationen zur Konfiguration drahtloser Netzwerke unter Gentoo Linux, lesen Sie bitte das Kapitel Drahtlose Netzwerkfunktionalität des Gentoo Handbuchs.
Sie können Ihre Einstellungen nun nochmal mit iw dev wlp9s0 link überprüfen. Wenn Sie Ihr WLAN nun eingerichtet haben, können Sie mit der Konfiguration der IP-Optionen wie im nächsten Abschnitt Verstehen der Netzwerk-Terminologie fortfahren oder net-setup benutzen, wie vorhin beschrieben.
Automatische Netzwerk-Konfiguration
In cases where automatic network configuration is unsuccessful, the Gentoo boot media provides scripts to aid in network configuration. net-setup can be used to configure wireless network information and static IPs.
root #
net-setup eth0
net-setup wird Ihnen einige Fragen bezüglich Ihrer Netzwerkumgebung stellen. Haben Sie alle Fragen beantwortet, sollten Sie eine funktionsfähige Netzwerkverbindung haben. Testen Sie Ihr Netzwerk wieder, wie oben beschrieben. Sollten die Tests funktionieren, so haben Sie es geschafft; Sie können nun mit der Installation von Gentoo fortfahren. Überspringen Sie den Rest dieses Kapitels und fahren Sie mit der Vorbereitung der Festplatte(n) fort.
Network status should be tested after any configuration steps are taken. In the event that configuration scripts do not work, manual network configuration is required.
Verstehen der Netzwerk-Terminologie
If all of the above fails, the network must be configured manually. This is not particularly difficult, but should be done with consideration. This section serves to clarify terminology and introduce users to basic networking concepts pertaining to manually configuring an Internet connection.
Some CPE (Carrier Provided Equipment) combines the functions of a router, access point, modem, DHCP server, and DNS server into one unit. It's important to differentiate the functions of a device from the physical appliance.
Interfaces and addresses
Network interfaces are logical representations of network devices. An interface needs an address to communicate with other devices on the network. While only a single address is required, multiple addresses can be assigned to a single interface. This is especially useful for dual stack (IPv4 + IPv6) configurations.
For consistency, this primer will assume the interface enp1s0 will be using the address 192.168.0.2.
IP addresses can be set arbitrarily. As a result, it's possible for multiple devices to use the same IP address, resulting in an address conflict. Address conflicts should be avoided by using DHCP or SLAAC.
IPv6 typically uses StateLess Address AutoConfiguration (SLAAC) for address configuration. In most cases, manually setting IPv6 addresses is a bad practice. If a specific address suffix is preferred, interface identification tokens can be used.
Networks and CIDR
Once an address is chosen, how does a device know how to talk to other devices?
IP addresses are associated with networks. IP networks are contiguous logical ranges of addresses.
Classless Inter-Domain Routing or CIDR notation is used to distinguish network sizes.
- The CIDR value, often notated starting with a /, represents the size of the network.
- The formula 2 ^ (32 - CIDR) can be used to calculate network size.
- Once network size is calculated, usable node count must be reduced by 2.
- The first IP in a network is the Network address, and the last is typically the Broadcast address. These addresses are special and cannot be used by normal hosts.
The most common CIDR values are /24, and /32, representing 254 nodes and a single node respectively.
A CIDR of /24 is the de-facto default network size. This corresponds to a subnet mask of 255.255.255.0, where the last 8 bits are reserved for IP addresses for nodes on a network.
The notation: 192.168.0.2/24 can be interpreted as:
- The address 192.168.0.2
- On the network 192.168.0.0
- With a size of 254 (2 ^ (32 - 24) - 2)
- Usable IPs are in the range 192.168.0.1 - 192.168.0.254
- With a broadcast address of 192.168.0.255
- In most cases, the last address on a network is used as the broadcast address, but this can be changed.
Using this configuration, a device should be able to communicate with any host on the same network (192.168.0.0).
The Internet
Once a device is on a network, how does it know how to talk to devices on the Internet?
To communicate with devices outside of local networks, routing must be used. A router is simply a network device that forwards traffic for other devices. The term default route or gateway typically refers to whatever device on the current network is used for external network access.
It's a standard practice to make the gateway the first or last IP on a network.
If an Internet-connected router is available at 192.168.0.1, it can be used as the default route, granting Internet access.
To summarize:
- Interfaces must be configured with an address and network information, such as the CIDR value.
- Local network access is used to access a router on the same network.
- The default route is configured, so traffic destined for external networks is forwarded to the gateway, providing Internet access.
The Domain Name System
Remembering IPs is hard. The Domain Name System was created to allow mapping between Domain Names and IP addresses.
Linux systems use /etc/resolv.conf to define nameservers to be used for DNS resolution.
Many routers can also function as a DNS server, and using a local DNS server can augment privacy and speed up queries through caching.
Many ISPs run a DNS server that is generally advertised to the gateway over DHCP. Using a local DNS server tends to improve query latency, but most public DNS servers will return the same results, so server usage is largely based on preference.
Manuelle Netzwerk-Konfiguration
Interface address configuration
When manually configuring IP addresses, the local network topology must be considered. IP addresses can be set arbitrarily; conflicts may cause network disruption.
To configure enp1s0 with the address 192.168.0.2 and CIDR /24:
root #
ip address add 192.168.0.2/24 dev enp1s0
The start of this command can be shortened to ip a.
Default route configuration
Configuring address and network information for an interface will configure link routes, allowing communication with that network segment:
root #
ip route
192.168.0.0/24 dev enp1s0 proto kernel scope link src 192.168.0.2
This command can be shortened to ip r.
The default route can be set to 192.168.0.1 with:
root #
ip route add default via 192.168.0.1
DNS configuration
Nameserver info is typically acquired using DHCP, but can be set manually by adding nameserver
entries to /etc/resolv.conf.
If dhcpcd is running, changes to /etc/resolv.conf will not persist. Status can be checked with
ps x | grep dhcpcd
.nano is included in Gentoo boot media and can be used to edit /etc/resolv.conf with:
root #
nano -w /etc/resolv.conf
Lines containing the keyword nameserver
followed by a DNS server IP address are queried in order of definition:
nameserver 9.9.9.9
nameserver 149.112.112.112
nameserver 1.1.1.1
nameserver 1.0.0.1
DNS status can be checked by pinging a domain name:
root #
ping -c 3 gentoo.org
Once connectivity has been verified, continue with Preparing the disks.
Einführung in blockorientierte Geräte
Blockorientierte Geräte
Schauen wir uns die Festplatten-spezifischen Aspekte von Gentoo Linux und Linux im Allgemeinen an - insbesondere blockorientierte Geräte (Block Devices), Partitionen und Linux Dateisysteme. Wenn Sie die Vor- und Nachteile von Festplatten verstanden haben, können Sie Partitionen und Dateisysteme für die Installation erstellen.
Zu Beginn schauen wir uns blockorientierte Geräte an. SCSI- und SATA-Laufwerke haben Device-Namen wie: /dev/sda, /dev/sdb, /dev/sdc usw. Modernere Rechner können PCI-Express basierte NVMe Solid-State-Disks haben, die Device-Namen haben wie: /dev/nvme0n1, /dev/nvme0n2 usw.
Die folgende Tabelle soll Lesern dabei helfen herauszufinden, wo bestimmte Arten von blockorientierten Geräten zu finden sind:
Device-Typ | Standard Device-Name | Anmerkungen |
---|---|---|
IDE, SATA, SAS, SCSI, or USB flash | /dev/sda | Diese Device-Typen werden auf Hardware ab 2007 verwendet - und sind vermutlich die am häufigsten genutzten Device-Namen unter Linux. Diese Geräte werden als blockorientierter Speicher angeschlossen über den SATA bus, über SCSI und über USB. Beispielsweise wird die erste Partition des ersten SATA-Devices /dev/sda1 genannt. |
NVM Express (NVMe) | /dev/nvme0n1 | The latest in solid state technology, NVMe drives are connected to the PCI Express bus and have the fastest transfer block speeds on the market. Systems from around 2014 and newer may have support for NVMe hardware. The first partition on the first NVMe device is called /dev/nvme0n1p1. |
MMC, eMMC, and SD | /dev/mmcblk0 | embedded MMC devices, SD cards, and other types of memory cards can be useful for data storage. That said, many systems may not permit booting from these types of devices. It is suggested to not use these devices for active Linux installations; rather consider using them to transfer files, which is their design goal. Alternatively they could be useful for short-term backups. |
Die oben genannten blockorientierten Geräte repräsentieren eine abstrakte Schnittstelle zur Festplatte. Benutzerprogramme können diese Block Devices nutzen, um mit der Festplatte zu interagieren, ohne sich darum sorgen zu müssen, ob die Festplatten über SATA, SCSI oder etwas anderem angebunden sind. Das Programm kann den Speicher auf der Festplatte einfach als eine Anhäufung zusammenhängender 4096-Byte (4k) Blöcke mit wahlfreiem Zugriff ansprechen.
Partitionstabellen
Obwohl es theoretisch möglich wäre, eine vollständige und unpartitionierte Festplatte für die Unterbringung eines Linux Systems zu nutzen (beispielsweise um ein btrfs RAID zu erzeugen), wird das in der Praxis selten gemacht. Statt dessen teilt man das Festplatten Block Device in kleinere, besser verwaltbare Block Devices auf. Auf x86 Systemen nennt man diese Partitionen. Derzeit gibt es zwei verschiedene Standard Partitionierungs-Technologien: MBR (manchmal aus "DOS Disklabel" genannt) und GPT. Diese hängen zusammen mit den beiden Boot-Typen: BIOS und UEFI.
GUID Partitionstabelle (GPT)
Das GUID Partition Table (GPT) Setup (auch "GPT disklabel" genannt) verwendet 64-Bit Kennzeichner für die Partitionen. Der Ort, an dem die Partitions-Informationen gespeichert werden, ist außerdem viel größer, als die 512 Bytes der MBR Partitionstabelle ("DOS disklabel"). Dies bedeutet, dass es praktisch kein Limit für die Anzahl der Partitionen gibt. Darüber hinaus wird die Größe einer Partition durch ein viel größeres Limit begrenzt (fast 8 ZiB - ja, Zebibytes).
Wenn die Software-Schnittstelle zwischen dem Betriebssystem und der Firmware UEFI ist (statt BIOS), ist GPT fast schon zwingend erforderlich, weil mit MBR (DOS disklabel) Kompatibilitäts-Probleme entstehen werden.
GPT nutzt die Vorteile von Prüfsummen und Redundanz. Es verwendet CRC32 Prüfsummen, um Fehler in den Kopfdaten und in den Partitionseinträgen zu erkennen. Weiterhin gibt es eine Kopie der GPT am Ende der Festplatte. Diese Backup Partitionstabelle kann verwendet werden, um eine beschädigte Primär-GPT am Anfang der Festplatte wiederherzustellen.
Es gibt ein paar Warnhinweise zu GPT:
- GPT bei kann bei BIOS-basierten Computern verwendet werden. In diesem Fall kann aber keine Dual-Boot-Konfiguration mit Microsoft Windows Betriebssystemen eingerichtet werden. Der Grund ist, dass Microsoft Windows im UEFI-Modus bootet, wenn es eine GPT Partitionstabelle erkennt.
- Manche ältere Motherboards mit fehlerhafter Firmware können Probleme beim Booten haben, wenn sie für den BIOS/CSM/Legacy Boot-Modus konfiguriert sind, aber auf der Festplatte eine GPT Partitionstabelle finden.
Master Boot Record (MBR) oder DOS Boot-Sector
Der Master Boot Record Boot-Sektor (auch "DOS Boot-Sektor" oder "DOS Disklabel" genannt) wurde im Jahr 1983 mit PC DOS 2.x eingeführt. MBR verwendet 32-Bit Kennzeichner für den Start der Sektoren und die Länge der Partitionen. Drei Partitions-Typen werden unterstützt: primär, erweitert und logisch. Primäre Partitionen speichern ihre Informationen im Master Boot Record selbst - ein sehr kleiner Bereich (meist 512 Bytes) ganz am Anfang der Festplatte. Aufgrund des geringen Platzes werden nur vier Primäre Partitionen unterstützt (beispielsweise /dev/sda1 bis /dev/sda4).
Um mehr als vier Partitionen zu unterstützen, kann eine der primären Partitionen in dem MBR als erweitert markiert werden. Diese Partition kann dann zusätzliche logische Partitionen beinhalten (Partitionen in einer Partition).
Obwohl MBR Partitionstabellen von den meisten Mainboard Herstellern noch unterstützt werden, gelten sie und die damit verbundenen Einschränkungen als veraltet. Sofern Sie nicht mit Hardware arbeiten, die von 2010 oder früher ist, sollten Sie Ihre Festplatte mit einer GUID Partititionstabelle partitionieren. Leser, die MBR Partitionstabellen verwenden müssen, sollten Folgendes beachten:
- Die meisten Mainboards von 2010 oder später betrachten die Verwendung des MBR Boot-Sektors als veraltet (unterstützt, aber nicht optimal).
- Da MBR Partitionstabellen 32-Bit Zeiger verwenden, können mit ihnen keine Speicherbereiche adressiert werden, die größer als 2 TiB sind.
- Sofern keine "Erweiterte Partition" erstellt wird, unterstützen MBR Partitionstabellen maximal 4 Partitionen.
- Von MBR Partitionstabellen gibt es kein Backup auf der Festplatte. Wenn etwas die MBR Partitionstabelle (versehentlich) überschreibt, sind die Partitions-Informationen verloren.
Die Autoren dieses Handbuchs empfehlen - wann immer möglich - GPT für Gentoo Installationen zu verwenden.
Fortgeschrittene Speicherlösungen
Die x86 Installations-CDs bieten Unterstützung für den Logical Volume Manager (LVM). LVM erhöht die Flexibilität, die man mit "normalem" Partitionieren erreichen kann. So können Partitionen und Festplatten in "Volume Groups" zusammengefasst werden, "RAID Groups" können definiert werden, oder Caches auf schnellen SSDs können für langsame Festplatten eingerichtet werden. Während der folgenden Installationsanleitung konzentrieren wir uns auf "normale" Partitionen. Es ist dennoch gut zu wissen, dass auch LVM unterstützt wird. Weitere Informationen finden Sie in dem LVM Artikel. Bitte beachten Sie: Gentoo Linux unterstützt LVM, aber der Umgang mit LVM würde den Rahmen dieses Handbuchs sprengen.
Standard-Partitionsschema
In dem Rest dieses Handbuchs werden wir zwei Fälle besprechen und erklären: 1) GPT Partitionstabelle und UEFI-Boot und 2) MBR Partitionstabelle und BIOS-Boot (veraltet). Obwohl es möglich ist zu mischen, würde dies über den Rahmen dieses Handbuchs hinausgehen. Wie bereits geschrieben, sollten Installationen auf moderner Hardware eine GPT Partitionstabelle und UEFI-Boot verwenden. Als Ausnahme von dieser Regel gelten virtualisierte (Cloud-) Umgebungen, bei denen immer noch häufig eine MBR Partitionstabelle und BIOS-Boot verwendet werden.
- UEFI firmware with GUID Partition Table (GPT) disk.
- MBR DOS/legacy BIOS firmware with a MBR partition table disk.
While it is possible to mix and match boot types with certain motherboard firmware, mixing goes beyond the intention of the handbook. As previously stated, it is strongly recommended for installations on modern hardware to use UEFI boot with a GPT disklabel disk.
Wir werden das folgende Partitionsschema als einfaches Beispiel verwenden:
The first row of the following table contains exclusive information for either a GPT disklabel or a MBR DOS/legacy BIOS disklabel. When in doubt, proceed with GPT, since x86 machines manufactured after the year 2010 generally support UEFI firmware and GPT boot sector.
Partition | Dateisystem | Größe | Beschreibung |
---|---|---|---|
/dev/sda1 | fat32 (UEFI) oder xfs (BIOS auch bekannt als Legacy Boot) | 256M | Boot/EFI System Partition |
/dev/sda2 | (swap) | RAM Größe * 2 | Swap Partition |
/dev/sda3 | xfs | Rest der Festplatte | Root Partition |
Fortgeschrittene, denen diese Informationen ausreichen, können die folgenden Abschnitte überspringen und direkt zur Partitionierung weitergehen.
Sowohl fdisk, als auch parted sind Partitionierungs-Tools. fdisk ist sehr bekannt, stabil und die erste Wahl für Arbeiten an MBR Partitionstabellen. parted war eines der ersten Block Device Management-Programme, das auch mit GPT Partitionstabellen umgehen konnte. Im Folgenden wird fdisk verwendet, weil es ein besseres textbasiertes Benutzer-Interface hat.
Bevor wir zu den Anweisungen zur Erstellung kommen, beschreiben die ersten Abschnitte im Detail, wie Partitionsschemas erstellt werden können und was die häufigsten Fallstricke sind.
Ein Partitionsschema entwerfen
Wie viele Partitionen und wie groß?
Bei dem Design des Partitionsschemas sollten die Anforderungen an das System und an die Dateisysteme berücksichtigt werden. Wenn es viele Nutzer gibt, ist eine eigene Partition /home/ ratsam, da diese die Sicherheit erhöht und Backups und andere Wartungsarbeiten vereinfacht. Wenn Gentoo installiert wird, um als Mailserver zu dienen, dann sollte es eine eigene Partition /var/ geben, weil alle Mails im Verzeichnis /var/ gespeichert werden. Spiele-Server werden eine eigene Partition /opt/ besitzen, da die meiste Spiele-Server-Software dort installiert wird. Der Grund für diese Empfehlungen ist ähnlich wie für das /home/ Verzeichnis: Sicherheit, Backups und Wartung.
Bei den meisten Gentoo-Installationen sollten /usr/ und /var/ relativ groß sein. In /usr werden die Mehrzahl der Anwendungen und auch der Linux Kernel Quellcode gespeichert (unter /usr/src). Standardmäßig enthält /var/ das Gentoo ebuild Repository (unter /var/db/repos/gentoo), das alleine schon rund 650 MiB Plattenplatz benötigt. Diese Größenabschätzung enthält noch nicht den benötigten Plattenplatz für die Verzeichnisse /var/cache/distfiles und /var/cache/binpkgs, die sich im Laufe der Zeit mit Source-Code Dateien und (optional) mit Binärpaketen füllen werden - je nachdem, wann und wie sie dem System hinzugefügt werden.
Die Anzahl und Größe der Partitionen hängt vom Abwägen der Vor- und Nachteile und der Auswahl der besten Lösung für einen gegebenen Anwendungsfall ab. Separate Partitionen oder Volumes haben folgende Vorteile:
- Sie können das performanteste Dateisystem für jede Partition oder jedes Volume wählen.
- Dem Gesamtsystem kann der freie Speicherplatz nicht ausgehen, wenn ein fehlerhaftes Tool kontinuierlich Dateien auf eine Partition oder ein Volume schreibt.
- Falls nötig, kann die Zeit für Dateisystemüberprüfungen reduziert werden, da mehrere Überprüfungen gleichzeitig durchgeführt werden können. (Dieser Vorteil kommt aber eher bei mehreren Festplatten, als bei mehreren Partitionen auf einer Festplatte zum Tragen.)
- Sie können die Sicherheit erhöhen, indem Sie einige Partitionen oder Volumes "read-only",
nosuid
(setuid Flags werden ignoriert),noexec
(executable Flags werden ignoriert) etc. einbinden.
Viele separate Partitionen können aber auch Nachteile haben:
- Wenn diese schlecht an das System angepasst sind, kann es sein, dass eine Partition voll ist und auf einer anderen Partition noch viel freier Platz verfügbar ist.
- Eine separate Partition für /usr/ kann es erforderlich machen, dass beim Booten ein initramfs verwendet wird, welches diese Partitionen vor der Ausführung anderer Boot-Skripte mountet. Das Erzeugen und Betreiben eines initramsfs ist nicht Teil dieses Handbuchs. Wir empfehlen Anfängern, für /usr/ keine eigene Partition zu verwenden.
- Es gibt ein Limit von maximal 15 Partitionen für SCSI und SATA - es sei denn, der Datenträger nutzt GPT-Labels.
Installationen, die systemd als Dienst-und Init-System verwenden wollen, müssen /usr/ beim Booten verfügbar haben, entweder als Teil des Root-Dateisystems oder eingehängt über ein initramfs.
Was ist mit dem Swap-Speicher?
RAM size | Suspend support? | Hibernation support? |
---|---|---|
2 GB or less | 2 * RAM | 3 * RAM |
2 to 8 GB | RAM amount | 2 * RAM |
8 to 64 GB | 8 GB minimum, 16 maximum | 1.5 * RAM |
64 GB or greater | 8 GB minimum | Hibernation not recommended! Hibernation is not recommended for systems with very large amounts of memory. While possible, the entire contents of memory must be written to disk in order to successfully hibernate. Writing tens of gigabytes (or worse!) out to disk can can take a considerable amount of time, especially when rotational disks are used. It is best to suspend in this scenario. |
Es gibt keine perfekte Größe für den Swap-Speicher. Der Zweck von Swap-Speicher ist, Festplattenspeicherplatz für den Kernel bereitzuhalten, wenn der interne Speicher (RAM) knapp wird. Der Swap-Speicher erlaubt dem Kernel, Speicherseiten, auf die vermutlich nicht bald zugegriffen wird, auf die Platte auszulagern (Swap oder Page-Out). Dadurch kann Arbeitsspeicher im RAM für den aktuell laufenden Prozess freigemacht werden. Werden die auf die Festplatte ausgelagerten Speicherseiten (Pages) jedoch plötzlich benötigt, müssen diese Seiten wieder zurück in den Arbeitsspeicher geladen werden (Page-In). Dies dauert jedoch erheblich länger, als wenn die Daten direkt aus dem RAM gelesen werden könnten (da Festplatten verglichen mit Arbeitsspeicher sehr langsam sind).
Wenn auf einem System keine speicherintensiven Anwendungen ausgeführt werden oder das System viel RAM zur Verfügung hat, benötigt es vermutlich nicht viel Swap-Speicher. Wenn jedoch der Ruhezustand "Hibernation" verwendet werden soll, wird der Swap-Speicher verwendet, um den gesamten Inhalt des Hauptspeichers (RAM) zu sichern (dieser Ruhezustand wird bei Desktop- und Laptop-Systemen häufiger verwendet, als bei Servern). Wenn das System den Ruhezustand "Hibernation" unterstützen soll, muss der Swap-Speicher so groß wie oder größer als der Hauptspeicher (RAM) sein.
Als generelle Regel gilt: der Swap-Speicher sollte zwei Mal so groß sein wie der Arbeitsspeicher (RAM). Auf Systemen mit mehreren (rotierenden) Festplatten ist es sinnvoll, eine Swap-Partition auf jeder Festplatte einzurichten, damit Schreib-/Lese-Operationen parallel ausgeführt werden können. Je schneller auf einen Festplatte zugegriffen werden kann, desto schneller wird das System arbeiten, wenn auf Swap-Speicher zugegriffen werden muss. Wenn zwischen rotierenden Festplatten und SSDs gewählt werden kann, ist es aus Performance-Sicht besser, den Swap-Speicher auf die SSD zu legen. Alternativ zu Swap-Partitionen können auch Swap-Dateien verwendet werden; dies ist hauptsächlich interessant bei Systemen mit sehr geringem Festplatten-Platz.
Was ist die EFI System-Partition (ESP)?
Wenn Sie Gentoo auf einem System installieren, das UEFI zum Booten des Betriebssystems verwendet (statt des BIOS), ist es wichtig, dass eine EFI System-Partition (ESP) erzeugt wird. Die folgenden Anweisungen enthalten die erforderlichen Hinweise, um eine ESP zu erzeugen. Eine EFI System-Partition ist nicht erforderlich, wenn im BIOS/Legacy-Modus gebootet werden soll.
Die EFI System-Partition muss eine FAT Variante sein (derartige Dateisysteme werden auf Linux Systemen oft als vfat angezeigt). Die offizielle UEFI Spezifikation deutet darauf hin, dass FAT12-, FAT16- oder FAT32-Dateisysteme von der UEFI Firmware akzeptiert werden, wobei für die ESP FAT32 empfohlen wird. Nach dem Partitionieren sollten Sie die ESP entsprechend formatieren:
root #
mkfs.fat -F 32 /dev/sda1
Wenn die ESP nicht mit einer FAT-Variante formatiert wird, wird die UEFI Firmware Ihres Systems den Bootloader (oder den Linux Kernel) nicht finden und wahrscheinlich nicht in der Lage sein, das Betriebssystem zu booten!
Was ist die BIOS Boot-Partition?
Eine BIOS Boot-Partition ist nur notwendig, wenn eine GPT Partitionstabelle mit GRUB2 im BIOS/Legacy Boot-Modus verwendet wird. Sie ist nicht notwendig, wenn im EFI/UEFI-Modus gebootet werden soll. Sie ist ebenfalls nicht notwendig, wenn eine MBR Partitionstabelle verwendet wird. Sie ist eine sehr kleine Partition (1 bis 2 MB), in der Bootloader wie GRUB2 zusätzliche Daten ablegen können, die nicht in den zugeordneten Speicher passen (einige hundert Bytes im Fall des MBR) und die nirgendwo anders gespeichert werden können. In diesem Handbuch werden wir keine BIOS Boot-Partition verwenden.
Partitionieren des Laufwerks mit GPT für UEFI
Die folgenden Abschnitte erklären, wie das Beispiel Partitionslayout für eine GPT / UEFI-Boot Installation mit fdisk erstellt werden kann. Das Beispiel Partitionslayout wurde bereits früher erwähnt:
Passen Sie das Partitionslayout nach Ihren persönlichen Bedürfnissen an.
Partition | Beschreibung |
---|---|
/dev/sda1 | EFI System (und boot) |
/dev/sda2 | Swap Partition |
/dev/sda3 | Root Partition |
Anzeigen des Partitionslayouts
fdisk ist ein beliebtes und leistungsstarkes Tool zum Aufteilen eine Festplatte in Partitionen. Starten Sie fdisk mit der Festplatte (in unserem Beispiel verwenden wir /dev/sda):
root #
fdisk /dev/sda
Verwenden Sie die p-Taste, um die aktuelle Konfiguration der Partitionen anzuzeigen:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA Device Start End Sectors Size Type /dev/sda1 2048 526335 524288 1G EFI System /dev/sda2 526336 2623487 2097152 1G Linux swap /dev/sda3 2623488 19400703 16777216 8G Linux filesystem /dev/sda4 19400704 60549086 41148383 19.6G Linux filesystem
Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G EFI System /dev/sda2 2099200 10487807 8388608 4G Linux swap /dev/sda3 10487808 1953523711 1943035904 926.5G Linux root (x86-64)
}}Diese Festplatte beherbergt bisher zwei Linux-Dateisysteme (jedes mit einer dazugehörigen Partition gelistet als "Linux") und auch eine Swap-Partition (gelistet als "Linux swap").
Erzeugen eines neuen Disklabels / Löschen aller Partitionen
Drücken Sie g, um eine neue GPT Partitionstabelle auf der Festplatte zu erstellen. Dies wird alle existierenden Partitionen löschen.
Command (m for help):
g
Created a new GPT disklabel (GUID: 87EA4497-2722-DF43-A954-368E46AE5C5F).
Wenn es bereits eine GPT Partitionstabelle gibt (siehe Ausgabe der Taste p weiter oben), können Sie alternativ die einzelnen Partitionen der Reihe nach löschen. Drücken Sie d um eine Partition zu löschen. Zum Löschen einer vorhandenen Partition /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
Die Partition ist nun zum Löschen vorgemerkt. Sie taucht nicht länger auf, wenn die Liste der der Partitionen ausgegeben wird (p). Sie wird jedoch nicht gelöscht, solange die Änderungen nicht gespeichert werden. Dies erlaubt dem Benutzer, die Operation abzubrechen, falls ein Fehler passiert ist - in diesem Fall drücken Sie umgehend q gefolgt von Enter. Die bisherige Partition wird dann nicht gelöscht.
Drücken Sie wiederholt p, um die Partitionsliste anzuzeigen, gefolgt von d und der Nummer der zu löschenden Partition. Schließlich wird die Partitionstabelle leer sein:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F
Jetzt, da die Partitionstabelle im Speicher leer ist, sind wir bereit die Partitionen zu erstellen.
Erstellen der EFI System-Partition (ESP)
Eine kleinere ESP ist möglich, aber nicht empfehlenswert, zumal sie mit anderen Betriebssystemen gemeinsam genutzt werden kann.
Erstellen Sie zunächst eine kleine EFI System-Partition, die später unter /boot eingehängt werden wird. Drücken Sie n für neue Partition, gefolgt von 1, um die erste Partition zu wählen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, stellen Sie sicher, dass die Partition bei 2048 beginnt (dies wird möglicherweise für den Bootloader benötigt) und drücken Sie Enter. Wenn Sie nach dem letzten Sektor gefragt werden geben Sie +1G ein, um eine 1 GByte große Partition zu erstellen:
Command (m for help):
n
Partition number (1-128, default 1): 1 First sector (2048-60549086, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549086, default 60549086): +1G Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.
Do you want to remove the signature? [Y]es/[N]o: Y The signature will be removed by a write command.
}}Markieren Sie die Partition als EFI System-Partition:
Command (m for help):
t
Selected partition 1 Partition type (type L to list all types): 1 Changed type of partition 'Linux filesystem' to 'EFI System'.
Optionally, to have the ESP conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:
Command (m for help):
x
Expert command (m for help):
u
Selected partition 1 </div> <div lang="en" dir="ltr" class="mw-content-ltr"> New UUID (in 8-4-4-4-12 format): c12a7328-f81f-11d2-ba4b-00a0c93ec93b Partition UUID changed from 10293DC1-DF6C-4443-8ACF-C756B81B4767 to C12A7328-F81F-11D2-BA4B-00A0C93EC93B.
Press the r key to return to the main menu:
Expert command (m for help):
r
</div> <div lang="en" dir="ltr" class="mw-content-ltr"> Command (m for help):
Erstellen der Swap-Partition
Erstellen Sie als nächstes die Swap-Partition. Drücken Sie n für neue Partition, dann 2, um die zweite Partition (/dev/sda2) zu erstellen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, bestätigen Sie die Voreinstellung durch Enter. Wenn Sie nach dem letzten Sektor gefragt werden geben Sie +4G ein (oder jede andere Größe, die Sie als Swap-Speicherplatz benötigen), um eine 4 GB große Partition zu erstellen.
Command (m for help):
n
Partition number (2-128, default 2): First sector (526336-60549086, default 526336): Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549086, default 60549086): +4G Created a new partition 2 of type 'Linux filesystem' and of size 4 GiB.
Nachdem dies erledigt ist, drücken Sie t um den Partitionstyp einzustellen, 2 um die gerade erzeugte Partition auszuwählen und geben Sie 19 ein, um den Partitionstyp auf "Linux Swap" zu setzen.
Command (m for help):
t
Partition number (1,2, default 2): 2 Partition type (type L to list all types): 19 Changed type of partition 'Linux filesystem' to 'Linux swap'.
Optionally, to have the swap partition conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:
Command (m for help):
x
Expert command (m for help):
u
Partition number (1,2, default 2): 2 Selected partition 2 </div> <div lang="en" dir="ltr" class="mw-content-ltr"> New UUID (in 8-4-4-4-12 format): 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f Partition UUID changed from 7529CDF6-9482-4497-B021-576745648B2A to 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F..
Press the r key to return to the main menu:
Expert command (m for help):
r
</div> <div lang="en" dir="ltr" class="mw-content-ltr"> Command (m for help):
Erstellen der Root-Partition
Um schließlich die Root-Partition zu erstellen, drücken Sie ein weiteres Mal n, um eine neue Partition zu erstellen. Drücken Sie 3 um die dritte Partition /dev/sda3 zu erstellen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, bestätigen Sie die Voreinstellung durch Enter. Wenn Sie nach dem letzten Sektor gefragt werden bestätigen Sie nochmals die Voreinstellung durch Enter, um den bisher noch frei verbliebenen restlichen Festplattenanteil dafür zu verwenden. Nachdem Sie diese Schritte abgeschlossen haben, sollte die Eingabe von p eine Partitionstabelle ausgeben, die der folgenden ähnlich sehen sollte:
Command (m for help):
n
Partition number (3-128, default 3): 3 First sector (10487808-1953525134, default 10487808): Last sector, +/-sectors or +/-size{K,M,G,T,P} (10487808-1953525134, default 1953523711): </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Created a new partition 3 of type 'Linux filesystem' and of size 926.5 GiB..
Setting the root partition's type to "Linux root (x86-64)" is not required and the system will function normally if it is set to the "Linux filesystem" type. This filesystem type is only necessary for cases where a bootloader that supports it (i.e. systemd-boot) is used and a fstab file is not wanted.
After creating the root partition, press t to set the partition type, 3 to select the partition just created, and then type in 23 to set the partition type to "Linux Root (x86-64)".
Command(m for help):
t
Partition number (1-3, default 3): 3 Partition type or alias (type L to list all): 23 </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Changed type of partition 'Linux filesystem' to 'Linux root (x86-64)'
Optionally, to have the root partition conform to the Discoverable System Partition (DSP) specification, switch to expert mode and perform the following extra step to set the partition's UUID:
Command (m for help):
x
Expert command (m for help):
u
Partition number (1-3, default 3): 3 </div> <div lang="en" dir="ltr" class="mw-content-ltr"> New UUID (in 8-4-4-4-12 format): 4f68bce3-e8cd-4db1-96e7-fbcaf984b709 </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Partition UUID changed from 40465382-FA2A-4846-9827-640821CC001F to 4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709.
Press the r key to return to the main menu:
Expert command (m for help):
r
</div> <div lang="en" dir="ltr" class="mw-content-ltr"> Command (m for help):
After completing these steps, pressing p should display a partition table that looks similar to the following:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 87EA4497-2722-DF43-A954-368E46AE5C5F Device Start End Sectors Size Type /dev/sda1 2048 526335 524288 1G EFI System /dev/sda2 526336 8914943 8388608 4G Linux swap /dev/sda3 8914944 60549086 51634143 24.6G Linux filesystem
Device Start End Sectors Size Type /dev/sda1 2048 2099199 2097152 1G Linux filesystem /dev/sda2 2099200 10487807 8388608 4G Linux swap /dev/sda3 10487808 1953523711 1943035904 926.5G Linux root (x86-64)
Filesystem/RAID signature on partition 1 will be wiped.
}}Speichern des Partitionslayouts
Um die Partitionstabelle zu speichern und fdisk zu beenden, drücken Sie w.
Command (m for help):
w
Nachdem die Partitionen erstellt wurden, ist es jetzt Zeit, Dateisysteme darauf anzulegen.
Partitionieren des Laufwerks mit MBR für BIOS / Legacy-Boot
Die folgenden Abschnitte erklären, wie das Beispiel Partitionslayout für eine MBR / BIOS-Boot Installation erstellt werden kann. Das Beispiel Partitionslayout wurde bereits früher erwähnt:
Partition | Description |
---|---|
/dev/sda1 | Boot partition |
/dev/sda2 | Swap partition |
/dev/sda3 | Root partition |
Passen Sie das Partitionslayout nach Ihren persönlichen Bedürfnissen an.
Anzeigen des aktuellen Partitionslayouts
Starten Sie fdisk mit der Festplatte (in unserem Beispiel verwenden wir /dev/sda):
root #
fdisk /dev/sda
Verwenden Sie die p-Taste, um die aktuelle Konfiguration der Partitionen anzuzeigen:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 21AAD8CF-DB67-0F43-9374-416C7A4E31EA Device Start End Sectors Size Type /dev/sda1 2048 526335 524288 1G EFI System /dev/sda2 526336 2623487 2097152 1G Linux swap /dev/sda3 2623488 19400703 16777216 8G Linux filesystem /dev/sda4 19400704 60549086 41148383 19.6G Linux filesystem
Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 10487807 8388608 4G 82 Linux swap / Solaris /dev/sda3 10487808 1953525167 1943037360 926.5G 83 Linux
}}Diese Festplatte beherbergt bisher zwei Linux-Dateisysteme (jedes mit einer dazugehörigen Partition gelistet als "Linux") und auch eine Swap-Partition (gelistet als "Linux swap").
Erzeugen eines neuen Disklabels / Löschen aller Partitionen
Drücken Sie o, um eine neue MBR Partitionstabelle (im Folgenden auch "DOS disklabel" genannt) auf der Festplatte zu erstellen. Dies wird alle existierenden Partitionen löschen.
Command (m for help):
o
Created a new DOS disklabel with disk identifier 0xe04e67c4. The device contains 'gpt' signature and it will be removed by a write command. See fdisk(8) man page and --wipe option for more details.
Wenn bereits eine MBR Partitionstabelle existiert (siehe Ausgabe der Taste p weiter oben), können Sie alternativ die einzelnen Partitionen der Reihe nach löschen. Drücken Sie d um eine Partition zu löschen. Zum Löschen einer vorhandenen Partition /dev/sda1:
Command (m for help):
d
Partition number (1-4): 1
Die Partition ist nun zum Löschen vorgemerkt. Sie taucht nicht länger auf, wenn die Liste der der Partitionen ausgegeben wird (p). Sie wird jedoch nicht gelöscht, solange die Änderungen nicht gespeichert werden. Dies erlaubt dem Benutzer, die Operation abzubrechen, falls ein Fehler passiert ist - in diesem Fall drücken Sie umgehend q gefolgt von Enter. Die bisherige Partition wird dann nicht gelöscht.
Drücken Sie wiederholt p, um die Partitionsliste anzuzeigen, gefolgt von d und der Nummer der zu löschenden Partition. Schließlich wird die Partitionstabelle leer sein:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xe04e67c4
Jetzt sind wir bereit die Partitionen zu erstellen.
Erstellen der Boot-Partition
Erstellen Sie zunächst eine kleine Partition, die später unter /boot eingehängt werden wird. Drücken Sie n für neue Partition, gefolgt von p für eine primäre Partition und 1, um die erste primäre Partition zu wählen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, stellen Sie sicher, dass die Partition bei 2048 beginnt (dies wird möglicherweise für den Bootloader benötigt) und drücken Sie Enter. Wenn Sie nach dem letzten Sektor gefragt werden geben Sie +1G ein, um eine 1 GByte große Partition zu erstellen:
Command (m for help):
n
Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-60549119, default 2048): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-60549119, default 60549119): +1G Created a new partition 1 of type 'Linux' and of size 1 GiB.
Created a new partition 1 of type 'Linux' and of size 1 GiB.
}}Mark the partition as bootable by pressing the a key and pressing Enter:
Command (m for help):
a
Selected partition 1 The bootable flag on partition 1 is enabled now.
Note: if more than one partition is available on the disk, then the partition to be flagged as bootable will have to be selected.
Erstellen der Swap-Partition
Erstellen Sie als nächstes die Swap-Partition. Drücken Sie n für neue Partition, gefolgt von p für eine primäre Partition und dann 2, um die zweite primäre Partition (/dev/sda2) zu erstellen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, bestätigen Sie die Voreinstellung durch Enter. Wenn Sie nach dem letzten Sektor gefragt werden geben Sie +4G ein (oder jede andere Größe, die Sie als Swap-Speicherplatz benötigen), um eine 4 GB große Partition zu erstellen.
Command (m for help):
n
Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): p Partition number (2-4, default 2): 2 First sector (526336-60549119, default 526336): Last sector, +/-sectors or +/-size{K,M,G,T,P} (526336-60549119, default 60549119): +4G Created a new partition 2 of type 'Linux' and of size 4 GiB.
Nachdem dies erledigt ist, drücken Sie t um den Partitionstyp einzustellen, 2 um die gerade erzeugte Partition auszuwählen und geben Sie 82 ein, um den Partitionstyp auf "Linux Swap" zu setzen.
Command (m for help):
t
Partition number (1,2, default 2): 2 Hex code (type L to list all codes): 82 Changed type of partition 'Linux' to 'Linux swap / Solaris'.
Erstellen der Root-Partition
Um schließlich die Root-Partition zu erstellen, drücken Sie ein weiteres Mal n, um eine neue Partition zu erstellen. Drücken Sie p und 3, um die dritte primäre Partition /dev/sda3 zu erstellen. Wenn Sie aufgefordert werden den ersten Sektor einzugeben, bestätigen Sie die Voreinstellung durch Enter. Wenn Sie nach dem letzten Sektor gefragt werden bestätigen Sie nochmals die Voreinstellung durch Enter, um den bisher noch frei verbliebenen restlichen Festplattenanteil dafür zu verwenden. Nachdem Sie diese Schritte abgeschlossen haben, sollte die Eingabe von p eine Partitionstabelle ausgeben, die der folgenden ähnlich sehen sollte:
Command (m for help):
n
Partition type p primary (2 primary, 0 extended, 2 free) e extended (container for logical partitions) Select (default p): p Partition number (3,4, default 3): 3 First sector (10487808-1953525167, default 10487808): Last sector, +/-sectors or +/-size{K,M,G,T,P} (10487808-1953525167, default 1953525167): </div> <div lang="en" dir="ltr" class="mw-content-ltr"> Created a new partition 3 of type 'Linux' and of size 926.5 GiB.
After completing these steps, pressing p should display a partition table that looks similar to this:
Command (m for help):
p
Disk /dev/sda: 28.89 GiB, 31001149440 bytes, 60549120 sectors Disk model: DataTraveler 2.0 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0xe04e67c4 Device Boot Start End Sectors Size Id Type /dev/sda1 2048 526335 524288 1G 83 Linux /dev/sda2 526336 8914943 8388608 4G 82 Linux swap / Solaris /dev/sda3 8914944 60549119 51634176 24.6G 83 Linux
Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 2099199 2097152 1G 83 Linux /dev/sda2 2099200 10487807 8388608 4G 82 Linux swap / Solaris /dev/sda3 10487808 1953525167 1943037360 926.5G 83 Linux
}}Speichern des Partitionslayouts
Um die Partitionstabelle zu speichern und fdisk zu beenden, drücken Sie w.
Command (m for help):
w
Nachdem die Partitionen erstellt wurden, ist es jetzt Zeit, Dateisysteme darauf anzulegen.
Erstellen von Dateisystemen
Wenn Sie ein SSD- oder NVMe-Laufwerk verwenden, prüfen Sie bitte, ob es ein Firmware-Upgrade benötigt. Insbesondere einige Intel-SSDs (600p und 6000p) benötigen ein Firmware-Upgrade für kritische Fehlerbehebungen, um Datenbeschädigungen zu vermeiden, die durch XFS-I/O-Nutzungsmuster verursacht werden (allerdings nicht durch einen Fehler des Dateisystems). smartctl kann helfen, das Modell und die Firmware-Version zu überprüfen.
Einleitung
Nachdem die Partitionen angelegt wurden, ist es an der Zeit, Dateisysteme darauf anzulegen. Im nächsten Abschnitt werden die unterschiedlichen Dateisysteme beschrieben, die Linux unterstützt. Leser, die bereits wissen, welches Dateisystem sie verwenden wollen, können bei Dateisystem auf einer Partition anlegen fortfahren. Alle anderen sollten weiterlesen, um mehr über die verfügbaren Dateisysteme zu erfahren ...
Dateisysteme
Linux unterstützt mehrere Dutzend Dateisysteme, wobei allerdings viele davon für ganz spezielle Anwendungszwecke optimiert sind. Nur einige Dateisysteme gelten als stabil auf der x86 Architektur. Es ist ratsam, sich über Dateisysteme und deren Unterstützungsgrad zu informieren, damit Sie nicht für wichtige Partitionen ein eher experimentelles Dateisystem wählen. XFS ist das empfohlene all-round Dateisystem für alle Plattformen. Nachfolgend eine nicht-vollständige Auswahl von verfügbaren Dateisystemen.
- btrfs
- Dateisystem der neueren Generation.
Bietet erweiterte Funktionen wie Snapshotting, Selbstheilung durch Prüfsummen, transparente Kompression, Subvolumes und integriertes RAID. Kernel vor 5.4.y sind nicht garantiert sicher für die Verwendung mit btrfs in der Produktion, da Korrekturen für ernsthafte Probleme nur in den neueren Versionen der LTS-Kernelzweige vorhanden sind. RAID 5/6 und Quota-Gruppen sind bei allen Versionen von btrfs unsicher.
- ext4
- Ext4 ist ein zuverlässiges, universell einsetztbares Dateisystem für alle Plattformen, auch wenn ihm moderne Funktionen wie Reflinks fehlen.
- f2fs
- Das Flash-Friendly File System wurde ursprünglich von Samsung für die Verwendung mit NAND-Flash-Speicher entwickelt. Es ist eine gute Wahl für die Installation von Gentoo auf microSD-Karten, USB-Laufwerken oder anderen Flash-basierten Speichergeräten.
- XFS
- Dateisystem mit Metadaten-Journaling, das über einen robusten Funktionsumfang verfügt und für Skalierbarkeit optimiert ist. Es wurde kontinuierlich weiterentwickelt, um moderne Funktionen einzubeziehen. Der einzige Nachteil ist, dass XFS-Partitionen noch nicht verkleinert werden können, obwohl daran gearbeitet wird. XFS unterstützt vor allem Reflinks und Copy on Write (CoW), was besonders auf Gentoo-Systemenen hilfreich ist, da die Benutzer viele Kompilierungen durchführen müssen. XFS ist das empfohlene modernen Allzweck-Dateisystem für alle Plattformen. Erfordert, dass eine Partition mindestens 300 MB groß ist.
- VFAT
- Auch bekannt als FAT32, wird von Linux unterstützt, unterstützt aber nicht die Standard-UNIX-Berechtigungseinstellungen. Es wird hauptsächlich für die Interoperabilität/den Austausch mit anderen Betriebssystemen (Microsoft Windows oder Apples MacOS) verwendet, ist aber auch eine Notwendigkeit für einige System-Bootloader-Firmware (wie UEFI). Benutzer von UEFI-Systemen benötigen eine EFI System Partition, die mit VFAT formatiert ist, um booten zu können.
- NTFS
- Dieses 'New Technology"-Dateisystem ist das Vorzeige-Dateisystem von Microsoft Windows seit Windows NT 3.1. Ähnlich wie VFAT speichert es keine UNIX-Berechtigungseinstellungen oder erweiterte Attribute, die für BSD oder Linux notwendig sind, um ordnungsgemäß zu funktionieren, daher sollte es in den meisten Fällen nicht als Root-Dateisystem verwendet werden. Es sollte nur für die Interoperabilität oder den Datenaustausch mit Microsoft Windows-Systemen verwendet werden (beachten Sie die Betonung auf nur).
Ausführlichere Informationen über Dateisysteme finden Sie in dem von der Community gepflegten Dateisystem-Artikel.
Dateisystem auf einer Partition anlegen
Bitte stellen Sie sicher, dass Sie das entsprechende Paket für das gewählte Dateisystem später im Handbuch emergen, bevor Sie am Ende des Installationsprozesses neu booten.
Dateisysteme können mit Hilfe von Programmen auf einer Partition oder auf einem Datenträger angelegt werden. Die folgende Tabelle zeigt, welchen Befehl Sie für welches Dateisystem benötigen. Um weitere Informationen zu einem Dateisystem zu erhalten, können Sie auf den Namen des Dateisystems klicken.
Dateisystem | Befehl zum Anlegen | Teil der Minimal CD? | Gentoo Paket |
---|---|---|---|
btrfs | mkfs.btrfs | Yes | sys-fs/btrfs-progs |
ext4 | mkfs.ext4 | Yes | sys-fs/e2fsprogs |
f2fs | mkfs.f2fs | Yes | sys-fs/f2fs-tools |
xfs | mkfs.xfs | Yes | sys-fs/xfsprogs |
vfat | mkfs.vfat | Yes | sys-fs/dosfstools |
NTFS | mkfs.ntfs | Yes | sys-fs/ntfs3g |
The handbook recommends new partitions as part of the installation process, but it is important to note running any mkfs command will erase any data contained within the partition. When necessary, ensure any data that exists within is appropriately backed up before creating a few filesystem.
Um beispielsweise die EFI System-Partition (/dev/sda1) als FAT32 und die root-Partition (/dev/sda3) als xfs zu formatieren (wie in dem Beispiel-Partitionsschema), würde man folgende Befehle verwenden:
root #
mkfs.xfs /dev/sda3
EFI system partition filesystem
The EFI system partition (/dev/sda1) must be formatted as FAT32:
root #
mkfs.vfat -F 32 /dev/sda1
Legacy BIOS boot partition filesystem
Systems booting via legacy BIOS with a MBR/DOS disklabel can use any filesystem format supported by the bootloader.
For example, to format with XFS:
root #
mkfs.xfs /dev/sda1
Small ext4 partitions
Bei der Verwendung von ext4 auf kleinen Partitionen (kleiner als 8 GiB), sollte das Dateisystem mit den passenden Optionen erstellt werden, um genügend Inodes zu reservieren. Dies kann mit einer der folgenden Anweisungen erfolgen:
root #
mkfs.ext4 -T small /dev/<device>
Dies vervierfacht die Zahl der Inodes für ein angegebenes Dateisystem in der Regel, da es dessen "bytes-per-inode" (Bytes pro Inode) von 16 kB auf 4 kB pro Inode reduziert.
Aktivieren der Swap-Partition
mkswap ist der Befehl der verwendet wird um Swap-Partitionen zu initialisieren:
root #
mkswap /dev/sda2
Zur Aktivierung der Swap-Partition verwenden Sie swapon:
root #
swapon /dev/sda2
This 'activation' step is only necessary because the swap partition is newly created within the live environment. Once the system has been rebooted, as long as the swap partition is properly defined within fstab or other mount mechanism, swap space will activate automatically.
Einhängen der Root-Partition
Installations which were previously started, but did not finish the installation process can resume the installation from this point in the handbook. Use this link as the permalink: Resumed installations start here.
Anwender, die ein Nicht-Gentoo Installationsmedium verwenden, müssen mit folgendem Befehl einen Mount-Point erzeugen:
root #
mkdir --parents /mnt/gentoo
root #
mkdir --parents /mnt/gentoo
For EFI installs only, the ESP should be mounted under the root partition location:
root #
mkdir --parents /mnt/gentoo/efi
Continue creating additional mount points necessary for any additional (custom) partition(s) created during previous steps by using the mkdir command.
Nachdem die Partitionen initialisiert wurden und ein Dateisystem beinhalten, ist es an der Zeit, diese einzuhängen. Verwenden Sie den Befehl mount, aber vergessen Sie nicht die notwendigen Einhänge-Verzeichnisse für jede Partition zu erzeugen. Als Beispiel hängen wir die Root-Partition ein:
Mount the root partition:
root #
mount /dev/sda3 /mnt/gentoo
Continue mounting additional (custom) partitions as necessary using the mount command.
Wenn sich /tmp/ auf einer separaten Partition befinden muss, ändern Sie die Berechtigungen nach dem Einhängen:
root #
chmod 1777 /mnt/gentoo/tmp
In der Anleitung wird später das Dateisystem proc (eine virtuelle Schnittstelle zum Kernel) zusammen mit anderen Kernel Pseudo-Dateisystemen eingehängt. Zunächst installieren wir jedoch die Gentoo Installationsdateien.
Auswahl eines Stage Tar-Archivs
On supported architectures, it is recommended for users targeting a desktop (graphical) operating system environment to use a stage file with the term
desktop
within the name. These files include packages such as sys-devel/llvm and dev-lang/rust-bin and USE flag tuning which will greatly improve install time.The stage file acts as the seed of a Gentoo install. Stage files are generated with Catalyst by the Release Engineering Team. Stage files are based on specific profiles, and contain an almost-complete system.
When choosing a stage file, it's important to pick one with profile targets corresponding to the desired system type.
Bei einem bestehenden Gentoo System ist es technisch möglich, zwischen OpenRC und systemd zu wechseln. Solche Wechsel sind jedoch aufwändig und können nicht im Rahmen dieses Installations-Handbuchs beschrieben werden. Bevor Sie einen Stage-Tarball herunterladen, entscheiden Sie, ob OpenRC oder systemd als Ziel-Init-System verwendet werden soll und laden Sie den entsprechenden Stage-Tarball herunter.
Die meisten Anwender sollten die "advanced" Tar-Archiv Optionen NICHT verwenden. Sie sind für spezielle Software- oder Hardware-Konfigurationen gedacht.
OpenRC
OpenRC ist ein Abhängigkeits-basiertes Init-System. Nachdem der Kernel gebootet hat, ist es ist zuständig für das Starten von System-Diensten. OpenRC ist kompatibel mit dem vom System bereitgestellten Init-Programm, das normalerweise unter /sbin/init installiert ist. OpenRC wurde unter und für Gentoo entwickelt, aber es wird auch bei einigen anderen Linux-Distributionen und BSD-Systemen verwendet.
OpenRC funktioniert nicht als Ersatz für die /sbin/init Datei und ist 100% kompatibel mit Gentoo Init-Skripten. Das bedeutet, dass eine Lösung gefunden werden kann, um die Dutzenden von Daemons im Gentoo-Ebuild-Repositorium auszuführen.
systemd
systemd ist ein moderner SysV-style Init- und rc-Ersatz für Linux-Systeme. Mittlerweile wird es bei der Mehrzahl der Linux-Distibutionen als primäres Init-System verwendet. systemd wird von Gentoo vollständig unterstützt und funktioniert führ den vorgesehenen Zweck. Wenn etwas im Handbuch für einen systemd-Installationspfad zu fehlen scheint lesen Sie den systemd Artikel bevor Sie um Unterstützung bitten.
Multilib (32 and 64-bit)
Nicht jede Architektur hat eine Multilib-Option. Viele laufen nur mit nativem Code. Multilib wird am häufigsten auf amd64 angewendet.
Die Wahl des richtigen Stage Tar-Archivs kann später im Installationsprozess erhebliche Mengen an Zeit einsparen, ganz besonders wenn der Zeitpunkt gekommen ist, für die Auswahl des System-Profils. Ein "multilib" Stage Tar-Archiv ermöglicht ein System mit 64- und 32-Bit Bibliotheken, wobei nach Möglichkeit die 64-Bit Bibliotheken verwendet werden. Falls dies nicht möglich sein sollte, können die 32-Bit Bibliotheken verwendet werden. Für die meisten Installationen ist dies eine hervorragende Wahl, weil sie große Flexibilität und Anpassungsmöglichkeiten für die Zukunft ermöglicht. Auch wer in der Lage sein möchte, einfach zwischen verschiedenen Profilen zu wechseln, sollte ein "multilib" Stage Tar-Archiv wählen.
Using
multilib
targets makes it easier to switch profiles later, compared to no-multilib
No-multilib (nur 64-bit)
Leser, die gerade erst mit Gentoo anfangen, sollten nicht einen no-multilib Tarball wählen, es sei denn, es ist absolut notwendig. Die Migration von einem "no-multilib" zu einem "multilib" System ist sehr schwierig und erfordert sehr gute Kenntnisse von Gentoo und der Low-Level Toolchain. Sogar für die Gentoo Toolchain Entwickler ist ein solcher Wechsel nicht ganz einfach. Anders ausgedrückt: gewöhnliche Anwender, die sich für "no-multilib" entscheiden, können nur durch eine Neu-Installation auf "multilib" wechseln.
Die Wahl eines "no-multilib" Stage Tar-Archives ermöglicht die Installation einer reinen 64-Bit Linux-Umgebung. Bitte beachten Sie, dass einige Anwendungen wie Wine, die eine 32-Bit Umgebung benötigen, dann nicht laufen werden. Ein späterer Wechsel auf eine "multilib" Umgebung ist schwierig, jedoch nicht unmöglich.
Stage Tar-Archiv herunterladen
Before downloading the stage file, the current directory should be set to the location of the mount used for the install:
root #
cd /mnt/gentoo
Datum und Uhrzeit einstellen
Stage archives are generally obtained using HTTPS which requires relatively accurate system time. Clock skew can prevent downloads from working, and can cause unpredictable errors if the system time is adjusted by any considerable amount after installation.
Überprüfen Sie das System-Datum und die System-Uhrzeit mit dem Kommando date:
root #
date
Mo 3. Okt 13:16:22 CET 2022
Wenn Datum/Uhrzeit um mehr als ein paar Minuten abweichen, sollte sie mit einer der folgenden Methoden aktualisiert werden.
Automatisch
Using NTP to correct clock skew is typically easier and more reliable than manually setting the system clock.
chronyd, part of net-misc/chrony can be used to update the system clock to UTC with:
root #
chronyd -q
Systems without a functioning Real-Time Clock (RTC) must sync the system clock at every system start, and on regular intervals thereafter. This is also beneficial for systems with a RTC, as the battery could fail, and clock skew can accumulate.
Standard NTP traffic not authenticated, it is important to verify time data obtained from the network.
Manuell
When NTP access is unavailable, date can be used to manually set the system clock.
Die UTC-Zeit wird für alle Linux-Systeme empfohlen. Eine Zeitzone wird später bei der Installation definiert, wodurch die Uhr die lokale Zeit anzeigt.
Für Systeme, die keinen Zugang zu einem Zeitserver haben, kann auch der Befehl date verwendet werden, um die Systemuhr zu stellen. Dabei wird das folgende Format als Argument verwendet: MMDDhhmmYYYY
syntax (Month, Day, hour, minute and Year).
Um beispielsweise das Datum auf den 27. November 2022, 13:39 Uhr einzustellen, geben Sie folgendes ein:
root #
date 112713392022
Browser mit grafischer Benutzeroberfläche
Wenn Sie einen Web-Browser mit grafischer Benutzeroberfläche verwenden: gehen Sie auf die Download Seite und kopieren Sie die URL des gewünschten Stage Tar-Archivs in die Zwischenablage (durch Drücken der rechten Maus-Taste und dann "Copy Link"). Gehen Sie dann in Ihr Terminal-Fenster, tippen Sie wget und kopieren Sie die URL aus der Zwischenablage. Drücken Sie Return, um den Download zu starten.
root #
wget <PASTED_STAGE_URL>
Textbasierte Browser
Wenn Sie lieber in einem Terminal-Fenster arbeiten, können Sie links verwenden, einen textbasierten, menügeführten Browser. Starten Sie links www-client/links und navigieren Sie zu der Gentoo Mirror-Seite:
root #
links https://www.gentoo.org/downloads/mirrors/
Um einen HTTP-Proxy mit links zu verwenden, übergeben Sie die URL mit der -http-proxy
Option:
root #
links -http-proxy proxy.server.com:8080 https://www.gentoo.org/downloads/mirrors/
Neben links gibt es auch den Browser lynx www-client/lynx. Wie links ist es ein nicht-grafischer Browser, aber er ist nicht menügesteuert.
root #
lynx https://www.gentoo.org/downloads/mirrors/
Wenn ein Proxy definiert werden muss, exportieren Sie die http_proxy und/ oder ftp_proxy Variablen:
root #
export http_proxy="http://proxy.server.com:port"
root #
export ftp_proxy="http://proxy.server.com:port"
Bitte wählen Sie in der Spiegel-Liste einen Spiegel in Ihrer Nähe. Für gewöhnlich genügen HTTP Spiegel, andere Protokolle stehen aber auch zur Verfügung. Gehen Sie in das Verzeichnis releases/x86/autobuilds/. Dort werden alle verfügbaren Stage Tar-Archive angezeigt (sie können in Unterverzeichnissen gespeichert sein, benannt nach den einzelnen Sub-Architekturen). Wählen Sie eines aus und drücken Sie d zum Download.
Nachdem Sie das Stage Tar-Archiv erfolgreich heruntergeladen haben, können Sie die Integrität des Tar-Archivs verifizieren und den Inhalt validieren. Wie das geht, steht im folgenden Abschnitt.
Wenn Sie kein Interesse an einer Überprüfung und Validierung des Stage Tar-Archivs haben, können Sie jetzt q drücken, um den Browser zu beenden. Springen Sie danach zu dem Abschnitt Stage Tar-Archiv entpacken.
Überprüfung und Validierung
Die meisten Stages sind jetzt explizit mit dem Suffix des Init-Systemtyps (openrc oder systemd), obwohl diese bei einigen Architekturen noch fehlen können.
Wie bei der minimalen Installations-CDs stehen zusätzliche Downloads zur Verfügung, mit denen das Stage Tar-Archiv überprüft und validiert werden kann. Obwohl dieser Schritt übersprungen werden kann, können diese Downloads von Anwendern genutzt werden, die die Integrität des Stage Tar-Archivs sicherstellen wollen.
root #
wget https://distfiles.gentoo.org/releases/
- Eine Datei .CONTENTS, die eine Liste aller Dateien im Stage Tar-Archiv enthält.
- Eine Datei .DIGESTS, die Prüfsummen des Stage Tar-Archivs von verschiedenen Algorithmen beinhaltet.
Verwenden Sie openssl zum Berechnen einer Prüfsumme des Stage tar-Archivs und vergleichen Sie die Ausgabe mit den Prüfsummen, die in der Datei .DIGESTS steht.
Um die SHA512-Prüfsumme mit openssl zu überprüfen:
root #
openssl dgst -r -sha512 stage3-x86-<release>-<init>.tar.xz
dgst
instructs the openssl command to use the Message Digest sub-command, -r
prints the digest output in coreutils format, and -sha512
selects the SHA512 digest.
Um die BLAKE2B512-Prüfsumme mit openssl zu überprüfen:
root #
openssl dgst -r -blake2b512 stage3-x86-<release>-<init>.tar.xz
Vergleichen Sie die Ausgabe dieser Befehle mit dem Wert der in den .DIGESTS Dateien eingetragen ist. Die Werte müssen übereinstimmen, andernfalls ist möglicherweise die heruntergeladene Datei beschädigt (oder die DIGEST-Datei ist es).
Um den SHA256-Hash aus einer verknüpften .sha256-Datei mit dem Dienstprogramm sha256sum zu überprüfen:
root #
sha256sum --check stage3-x86-<release>-<init>.tar.xz.sha256
The --check
option instructs sha256sum to read a list of expected files and associated hashes, and then print an associated "OK" for each file that calculates correctly or a "FAILED" for files that do not.
Genau wie bei der ISO-Datei kann die kryptografische Signatur der Datei tar.xz mit gpg überprüft werden, um sicherzustellen, dass keine Manipulationen am Tarball vorgenommen wurden.
For official Gentoo live images, the sec-keys/openpgp-keys-gentoo-release package provides PGP signing keys for automated releases. The keys must first be imported into the user's session in order to be used for verification:
root #
gpg --import /usr/share/openpgp-keys/gentoo-release.asc
For all non-official live images which offer gpg and wget in the live environment, a bundle containing Gentoo keys can be fetched and imported:
root #
wget -O - https://qa-reports.gentoo.org/output/service-keys.gpg | gpg --import
Verify the signature of the tarball and, optionally, associated checksum files:
root #
gpg --verify stage3-x86-<release>-<init>.tar.xz.asc
root #
gpg --verify stage3-x86-<release>-<init>.tar.xz.DIGEST
root #
gpg --verify stage3-x86-<release>-<init>.tar.xz.sha256
If verification succeeds, "Good signature from" will be in the output of the previous command(s).
Die Fingerprints der OpenPGP Schlüssel, die zum Signieren der Release Medien verwendet werden, finden Sie auf der Release Media Signatures Seite.
Installation eines Stage Tar-Archivs
Als Nächstes entpacken Sie die heruntergeladene Stufe auf das System. Verwenden Sie das Dienstprogramm tar, um wie folgt fortzufahren:
root #
tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner
Verifizieren Sie, dass Sie genau die oben angegebenen Optionen (xvpf
, --xattrs-include='*.*'
und --numeric-owner
) im Befehl verwenden. Das x
steht für extrahieren, das p
(preserve) für den Erhalt der Dateirechte und das f
(file) gibt an, dass wir das auszupackende Archiv aus einer Datei lesen wollen - und nicht von der Standardeingabe. --xattrs-include='*.*'
bedeutet, dass die erweiterten (extended) Attribute erhalten bleiben sollen. --numeric-owner
ist erforderlich um sicherzustellen, dass die User- und Gruppen IDs der extrahierten Dateien so gesetzt werden, wie vom Gentoo Release Team definiert (und zwar auch dann, wenn abenteuerlustige Anwender bei der Installation nicht die offiziellen Live-Umgebungen verwenden).
x
extract, instructs tar to extract the contents of the archive.p
preserve permissions.v
verbose output.f
file, provides tar with the name of the input archive.--xattrs-include='*.*'
Preserves extended attributes in all namespaces stored in the archive.--numeric-owner
Ensure that the user and group IDs of files being extracted from the tarball remain the same as Gentoo's release engineering team intended (even if adventurous users are not using official Gentoo live environments for the installation process).
Nachdem nun das Stage Tar-Archiv ausgepackt ist, geht es weiter mit dem Schritt: Compiler-Optionen konfigurieren.
Compiler-Optionen konfigurieren
Einleitung
Um das System zu optimieren, können Variablen gesetzt werden, mit denen das Verhalten von Portage (Gentoos offiziellem Paket-Manager) beeinflusst wird. Diese Variablen können als Umgebungs-Variablen gesetzt werden (mit export), aber diese wären nicht permanent.
Technisch gesehen können Variablen über die Profil- oder rc-Dateien der Shell exportiert werden, was jedoch für die grundlegende Systemadministration nicht die beste Praxis ist.
Portage liest die Datei make.conf ein, wenn es läuft, was das Laufzeitverhalten abhängig von den in der Datei gespeicherten Werten verändert. Die Datei make.conf kann als die primäre Konfigurationsdatei für Portage angesehen werden, also behandeln Sie ihren Inhalt sorgfältig.
Eine kommentiere Auflistung aller Variablen kann unter /mnt/gentoo/usr/share/portage/make.conf.example gefunden werden. Zusätzliche Dokumentation zu make.conf finden Sie, indem Sie man 5 make.conf ausführen.
Für eine erfolgreiche Gentoo-Installation müssen nur die unten genannten Variablen gesetzt werden.
Starten Sie einen Editor, damit Sie die Werte der Optimierungs-Variablen, die wir im Folgenden besprechen werden, ändern können. In dieser Anleitung verwenden wir den Editor nano.
root #
nano /mnt/gentoo/etc/portage/make.conf
Anhand der Datei make.conf.example sollte die Syntax von make.conf erkennbar sein: Kommentar-Zeilen starten mit einem #
, andere Zeilen nutzen die VARIABLE="Wert"
Syntax. Im nächsten Abschnitt werden wir einige dieser Variablen besprechen.
CFLAGS und CXXFLAGS
In den Variablen CFLAGS und CXXFLAGS können Optimierungs-Optionen für den GCC C-Compiler und den GCC C++ Compiler definiert werden. Die in make.conf global definierten Optimierungs-Optionen gelten dann für die Installation aller Pakete. Um die maximal mögliche Performance jedes einzelnen Pakets zu erreichen, bräuchte man jedoch für jedes Programm andere Optionen - weil jedes Programm anders ist und anders optimiert werden muss. Dies ist jedoch nicht praktikabel - und deshalb werden die Optimierungs-Optionen global für alle Pakete in make.conf definiert.
In make.conf sollten Optimierungen definiert werden, mit denen ihr System schnell und stabil läuft. Definieren Sie hier keine experimentellen Werte. Zu viel Optimierung kann dazu führen, dass Programme nicht mehr gut laufen: sie stürzen ab, funktionieren nicht richtig, oder - noch schlimmer - berechnen falsche Ergebnisse.
In diesem Abschnitt werden wir nur die wichtigsten Optimierungs-Optionen erklären. Eine Übersicht über alle möglichen Optimierungs-Optionen finden Sie auf der GCC online documentation, auf der GCC man page (man gcc) und auf der GCC info Seite (info gcc). man und info sind jedoch nur auf einem fertig installierten Linux System verfügbar. Weiterhin enthält die Datei make.conf.example viele Beispiele und Informationen - bitte vergessen Sie nicht, sie zu lesen.
Eine wichtige Einstellung ist die
-march=
or -mtune=
Option, mit der der Name der Ziel-Architektur definiert wird. Mögliche Werte werden in der Datei make.conf.example beschrieben (als Kommentare). Ein häufig benutzter Wert ist native. Mit diesem Wert wählt der Compiler die Ziel-Architektur des Systems, auf dem er gerade läuft (also des Systems, das Sie gerade installieren).
Eine weitere wichtige Option ist -O
(ein großer Buchstabe O, keine Null), mit der die GCC Optimierungs-Klasse definiert wird. Mögliche Werte sind s (size, optimiert auf kleine Code-Größe), 0 (Null - keine Optimierungen), 1, 2 oder sogar 3 für Geschwindigkeits-Optimierung (wobei jede Klasse die Optimierungen der vorhergehenden Klasse und einige zusätzliche Optimierungen durchführt). -O2
ist der empfohlene Standard-Wert. Von -O3
ist bekannt, dass es Probleme geben wird, wenn es systemweit benutzt wird. Wir empfehlen deshalb, bei -O2
zu bleiben.
Eine weitere häufig genutzte Option ist -pipe
(verwende für die Kommunikation zwischen den verschiedenen Compiler-Stufen Pipes statt temporärer Dateien). Diese Option hat keine Auswirkungen auf den generierten Code, benötigt aber mehr Arbeitsspeicher. Auf Systemen mit wenig Arbeitsspeicher kann dies dazu führen, dass GCC vorzeitig abgeschossen wird. Wenn das passieren sollte, verwenden Sie diese Option nicht.
Die Verwendung von -fomit-frame-pointer
(die dazu führt, dass der Frame Pointer in Funktionen, die keinen Frame Pointer benötigen, nicht gesetzt wird) kann erhebliche Auswirkungen auf das Debugging von Programmen haben.
Wenn Sie die CFLAGS oder die CXXFLAGS Variable definieren, sollten Sie die verschiedenen Optimierungs-Optionen in einem Wert kombinieren. Die Standard-Werte in dem von Ihnen ausgepackten Stage Tar-Archiv sollten ausreichend sein. In der folgenden Box zeigen wir ein Beispiel:
# Compiler flags to set for all languages
COMMON_FLAGS="-O2 -march=i686 -pipe"
# Use the same settings for both variables
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
Obwohl der Artikel GCC-Optimierung mehr Informationen darüber enthält, wie sich die verschiedenen Kompilierungsoptionen auf ein System auswirken können, ist der Artikel Sichere CFLAGS für Anfänger ein praktischerer Ort, um mit der Optimierung ihres Systems zu beginnen.
MAKEOPTS
Die MAKEOPTS Variable definiert, wie viele parallele Kompilierungen bei der Installation eines Pakets stattfinden sollen. Ab Portage Version 3.0.31[1] ist das Standardverhalten von Portage, wenn ist undefiniert gelassen wird, den MAKEOPTS Wert auf die gleiche Anzahl von Threads zu setzten, die von nproc zurückgegeben wird.
Further, as of Portage 3.0.53[2], if left undefined, Portage's default behavior is to set the MAKEOPTS load-average value to the same number of threads returned by nproc.
Eine gute Wahl ist der kleinere der folgenden Werte: die Anzahl der Threads der CPU oder die Gesamtmenge des System-RAM geteilt durch 2 GiB.
Eine große Anzahl von Jobs benötigt auch entsprechenden Hauptspeicher (RAM). Eine guter Schätzwert sind mindestens 2 GiB RAM pro Job (
-j6
benötigt also mindestens 12 GiB RAM). Um zu verhindern, dass mehr RAM benötigt wird als vorhanden ist, sollten Sie die Anzahl der Jobs ggf. reduzieren und an das vorhandene RAM anpassen.Wenn mehrere Emerge-Jobs parallel laufen gelassen werden (
--jobs
), kann die Anzahl der resultierenden Jobs exponentiell ansteigen (bis zum Produkt von "make jobs" multipliziert mit "emerge jobs"). Dieses Wachstum kann kontrolliert werden durch den Einsatz einer lokalen distcc Konfiguration, die die Anzahl der Compiler-Aufrufe pro Host begrenzt.# Wenn nicht definiert, setzt Portage standardmäßig den MAKEOPTS Wert auf die gleiche Anzahl von Threads die von `nproc` zurückgegeben wird.
MAKEOPTS="-j4"
Suchen Sie nach MAKEOPTS in man 5 make.conf für weitere Informationen.
Los geht's!
Aktualisieren Sie die Datei /mnt/gentoo/etc/portage/make.conf nach Ihren Wünschen und speichern Sie sie (nano Benutzer drücken Ctrl+o, um Änderung zu schreiben und dann Ctrl+x, um zu beenden).
Referenzen
Chrooten
DNS-Info kopieren
Eine Sache bleibt noch zu tun, bevor Sie die neue Umgebung betreten - und das ist das Kopieren der DNS-Informationen in der Datei /etc/resolv.conf. Dies ist notwendig um sicherzustellen, dass Netz-Verbindungen auch nach dem Betreten der neuen Umgebung noch funktionieren. /etc/resolv.conf enthält u.a. die IP-Adressen der Namensserver.
Zum Kopieren dieser Information ist es empfehlenswert, beim Befehl cp die Option --dereference
zu verwenden. Wenn /etc/resolv.conf ein symbolischer Link ist stellt dies sicher, dass die Zieldatei anstelle des symbolischen Links selbst kopiert wird. Andernfalls würde der symbolische Link auf eine nicht existierende Datei zeigen (weil das Link-Ziel höchstwahrscheinlich in der neuen Umgebung nicht verfügbar ist).
root #
cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
Notwendige Dateisysteme einhängen
In wenigen Augenblicken wird der Linux-Root (/) auf den neuen Ort geändert werden.
Die Dateisysteme, die verfügbar gemacht werden müssen, sind:
- /proc/ ist ein ein Pseudo-Dateisystem. Es sieht aus wie normale Dateien, wird aber vom Linux-Kernel on-the-fly erzeugt
- /sys/ ist ein Pseudo-Dateisystem, genauso wie /proc/. Einst war es dafür gedacht, /proc/ zu ersetzen. Es ist besser strukturiert als dieses.
- /dev/ ist ein gewöhnliches Dateisystem, das alle Gerätedateien enthält. Es wird teilweise vom Linux Device Manager verwaltet (normalerweise udev).
- /run/ ist ein temporäres Dateisystem für Dateien, die im laufenden Betrieb benötigt werden, die aber einen Reboot nicht überleben müssen. Beispiele sind PID-Dateien oder Locks.
/proc/ wird an /mnt/gentoo/proc/ eingehängt, wohingegen die anderen Dateisysteme über Bind-Mounts eingehängt werden. Letzteres bedeutet, dass beispielsweise /mnt/gentoo/sys/ in Wirklichkeit /sys/ ist (es ist lediglich ein zweiter Einstiegspunkt zum selben Dateisystem), wohingegen /mnt/gentoo/proc/ eine neue Einbindung (sozusagen eine neue Instanz) des Dateisystems ist.
If using Gentoo's install media, this step can be replaced with simply: arch-chroot /mnt/gentoo.
root #
mount --types proc /proc /mnt/gentoo/proc
root #
mount --rbind /sys /mnt/gentoo/sys
root #
mount --make-rslave /mnt/gentoo/sys
root #
mount --rbind /dev /mnt/gentoo/dev
root #
mount --make-rslave /mnt/gentoo/dev
root #
mount --bind /run /mnt/gentoo/run
root #
mount --make-slave /mnt/gentoo/run
Die
--make-rslave
Operationen werden für die spätere systemd Unterstützung bei der Installation benötigt.Bei der Verwendung von Nicht-Gentoo Installationsmedien ist dies möglicherweise nicht ausreichend. Bei einigen Distributionen ist /dev/shm ein symbolischer Link zu /run/shm/, der nach einem chroot ungültig wird. Dies kann behoben werden, indem Sie /dev/shm/ im Voraus zu einem entsprechenden tmpfs mount machen:
root #
test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #
mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
Stellen Sie zudem sicher, dass Mode 1777 gesetzt ist:
root #
chmod 1777 /dev/shm /run/shm
Betreten der neuen Umgebung
Nun, da alle Partitionen initialisiert sind und die Basis-Umgebung installiert ist, wird es Zeit, die neue Installationsumgebung durch chroot zu betreten. Das bedeutet, dass die Sitzung ihr Wurzelverzeichnis (/) von der aktuellen Installationsumgebung (Installations-CD oder anderes Installationsmedium) zum Installationssystem (nämlich die initialisierten Partitionen) ändert. Daher der Name change root oder chroot.
Dieses Chrooten erfolgt in drei Schritten:
- Das Wurzelverzeichnis wird mit Hilfe von chroot von / (auf dem Installationsmedium) auf /mnt/gentoo/ (auf den Partitionen) geändert.
- Einige Einstellungen (jene in /etc/profile) werden über den Befehl source neu in den Speicher geladen.
- Die primäre Eingabeaufforderung wird geändert, damit wir nicht vergessen, dass diese Sitzung innerhalb einer chroot-Umgebung läuft.
root #
chroot /mnt/gentoo /bin/bash
root #
source /etc/profile
root #
export PS1="(chroot) ${PS1}"
Von diesem Punkt an werden alle Aktionen direkt auf der neuen Gentoo Linux Umgebung ausgeführt.
Wenn die Installation bei einem der ab hier folgenden Schritte unterbrochen werden sollte, sollte es möglich sein, ab dieser hier Stelle weiterzuarbeiten. Es ist nicht nötig, die Partitionen erneut zu erstellen! Mounten Sie die Root-Partition und führen Sie die oben beschriebenen Schritte ab DNS-Info kopieren erneut aus, um wieder in die neue Gentoo Linux Umgebung zu gelangen. Dieses Vorgehen ist ebenfalls sinnvoll, um Bootloader-Probleme zu beheben. Weitere Informationen erhalten Sie im chroot Artikel.
Preparing for a bootloader
Now that the new environment has been entered, it is necessary to prepare the new environment for the bootloader. It will be important to have the correct partition mounted when it is time to install the bootloader.
UEFI systems
For UEFI systems, /dev/sda1 was formatted with the FAT32 filesystem and will be used as the EFI System Partition (ESP). Create a new /efi directory (if not yet created), and then mount ESP there:
root #
mkdir /efi
root #
mount /dev/sda1 /efi
DOS/Legacy BIOS systems
For DOS/Legacy BIOS systems, the bootloader will be installed into the /boot directory, therefore mount as follows:
root #
mount /dev/sda1 /boot
Portage konfigurieren
Ein Gentoo-Ebuild-Repositorium Snapshot aus dem Web installieren
Der nächste Schritt besteht darin, einen Snapshot des Gentoo ebuild Repositorys zu installieren. Dieser Snapshot enthält eine Sammlung von Dateien, die Portage informiert über verfügbare Software-Titel (für die Installation), welche Profile der Administrator auswählen kann, Paket- oder Profil-spezifische News-Items, usw.
Die Verwendung von emerge-webrsync wird empfohlen für diejenigen, die hinter einer restriktiven Firewall sitzen (das Programm lädt den Snapshot über die Protokolle HTTP/FTP herunter) und für diejenigen, die Netzwerk-Bandbreite sparen wollen. Leser, die keine Einschränkungen durch Firewalls oder von der Netzwerk-Bandbreite haben, können zum nächsten Abschnitt springen.
Der folgende Befehl holt den neuesten Portage-Snapshot (den Gentoo tagesaktuell veröffentlicht) von einem der Gentoo-Spiegel und installiert ihn auf dem System.
root #
emerge-webrsync
Während dieser Operation könnte sich emerge-webrsync über das Fehlen von /var/db/repos/gentoo/ beschweren. Dies ist zu erwarten und kein Grund zur Sorge - das Tool wird das Verzeichnis anlegen.
Von diesem Punkt an könnte Portage erwähnen, dass bestimmte Updates empfehlenswert sind. Dies ist deshalb so, weil es möglicherweise neuere Versionen von Paketen gibt, die durch das Stage Tar-Archiv installiert wurden. Nach der Installation des Repository Snapshots weiß Portage nun von diesen neueren Versionen. Paket-Updates können im Augenblick bedenkenlos ignoriert werden. Die Updates können verzögert werden, bis die Gentoo Installation abgeschlossen ist.
Optional: Spiegelserver wählen
Um den Quellcode zügig herunterzuladen, wird empfohlen, einen schnellen Spiegel auszuwählen. Portage schaut in der Datei make.conf nach der Variable GENTOO_MIRRORS und verwendet darin aufgelistete Spiegel. Es ist möglich, zur Gentoo Mirror-Liste zu surfen und nach einem Spiegel (oder mehreren Spiegeln) zu suchen, die nahe dem Systemstandort liegen (da diese meistens die schnellsten sind). Allerdings bieten wir ein nettes Tool namens mirrorselect, das den Benutzern ein schönes Interface zur Auswahl der benötigten Spiegel bietet. Gehen Sie einfach zu den Spiegeln der Wahl und drücken Sie die Leertaste um einen oder mehrere Spiegel auszuwählen.
A tool called mirrorselect provides a pretty text interface to more quickly query and select suitable mirrors. Just navigate to the mirrors of choice and press Spacebar to select one or more mirrors.
root #
mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
Alternatively, a list of active mirrors are available online.
Optional: Gentoo-Ebuild-Repositorium aktualisieren
Es ist möglich, das Gentoo ebuild Repository mit emerge auf die neueste Version zu aktualisieren. Wenn Sie mit dem vorhergehenden Befehl emerge-webrsync einen aktuellen Snapshot installiert haben (Snapshots sind in der Regel nicht älter als 24 Stunden), ist dieser Schritt optional.
Angenommen Sie benötigen die neuesten Paket-Updates (bis zu 1 Stunde), dann benutzen Sie emerge --sync. Dieser Befehl nutzt das rsync Protokoll zur Aktualisierung des Gentoo ebuild Repository (welcher zuvor durch emerge-webrsync bezogen wurde) auf den aktuellsten Stand.
root #
emerge --sync
Auf langsamen Terminals, wie einigen Framebuffer- oder seriellen Konsolen, ist es empfehlenswert, die Option --quiet
zu nutzen, um den Vorgang zu beschleunigen:
root #
emerge --sync --quiet
News Items lesen
Wenn das Gentoo ebuild Repository auf das System synchronisiert wird, könnte Portage Hinweistexte wie im folgenden Beispiel ausgeben:
* IMPORTANT: 2 news items need reading for repository 'gentoo'.
* Use eselect news to read news items.
News Items wurden als Kommunikationsmedium geschaffen, um den Benutzern wichtige Mitteilungen über das Gentoo ebuild Repository zukommen lassen zu können. Zur Verwaltung der Mitteilungen verwenden Sie eselect news. Die Anwendung eselect ist ein Gentoo-spezifisches Programm, das eine gemeinsame Verwaltungsschnittstelle für verschiedene System-Administrations-Aufgaben bietet. In diesem Fall wird eselect aufgefordert, das Modul news
zu verwenden.
Im Modul news
werden drei Operationen am meisten genutzt:
- Mit
list
wird eine Übersicht der verfügbaren News-Einträge angezeigt. - Mit
read
können die News-Einträge gelesen werden. - Mit
purge
lassen sich News-Einträge löschen, sobald sie gelesen wurden. Ein erneutes Einlesen erfolgt nicht.
root #
eselect news list
root #
eselect news read
Mehr Informationen zum News Reader sind über seine Manpage verfügbar:
root #
man news.eselect
Auswahl des richtigen Profils
Desktop-Profile sind nicht ausschließlich für Desktop-Umgebungen gedacht. Sie sind auch für minimale Fenstermanager wie i3 oder sway geeignet.
Ein Profil (profile) ist wichtiger Baustein für jedes Gentoo System. Es definiert nicht nur Standardwerte für USE, CFLAGS und andere wichtige Variablen, sondern legt das System auch auf einen bestimmten Bereich von Paketversionen fest. Diese Einstellungen werden von den Gentoo Portage-Entwicklern gepflegt.
Um zu sehen, welches Profil das System momentan verwendet, können Sie eselect mit dem profile
Modul ausführen:
root #
eselect profile list
Available profile symlink targets: [1] default/linux/x86/23.0 * [2] default/linux/x86/23.0/desktop [3] default/linux/x86/23.0/desktop/gnome [4] default/linux/x86/23.0/desktop/kde
Die Ausgabe des Befehls ist nur ein Beispiel und kann sich im Laufe der Zeit ändern.
Um systemd zu verwenden, wählen Sie ein Profil, dass "systemd" im Namen hat und umgekehrt, falls nicht
Für einige Architekturen gibt es auch Desktop-Unterprofile.
Profil-Upgrades sind nicht einfach. Wenn Sie das initiale Profil auswählen, verwenden Sie das, dass die selbe Versionsnummer hat, wie das Profil, das vom Stage3 Tar-Archiv installiert wurde (beispielsweise 23.0). Neue Profil-Versionen werden über News Items angekündigt, die detaillierte Migrationsanleitungen enthalten. Folgen Sie diesen Migrationsanleitungen bevor Sie auf ein neues Profil wechseln.
Nach dem Betrachten der verfügbaren Profile für die x86 Architektur kann der Benutzer ein anderes Profil für das System wählen:
root #
eselect profile set 2
Das
developer
Unterprofil ist eigens für die Gentoo Linux Entwicklung und nicht für die Nutzung durch gewöhnliche Benutzer gedacht.Optional: Adding a binary package host
Since December 2023, Gentoo's Release Engineering team has offered an official binary package host (colloquially shorted to just "binhost") for use by the general community to retrieve and install binary packages (binpkgs).[1]
Adding a binary package host allows Portage to install cryptographically signed, compiled packages. In many cases, adding a binary package host will greatly decrease the mean time to package installation and adds much benefit when running Gentoo on older, slower, or low power systems.
Repository configuration
The repository configuration for a binhost is found in Portage's /etc/portage/binrepos.conf/ directory, which functions similarly to the configuration mentioned in the Gentoo ebuild repository section.
When defining a binary host, there are two important aspects to consider:
- The architecture and profile targets within the
sync-uri
value do matter and should align to the respective computer architecture (x86 in this case) and system profile selected in the Choosing the right profile section. - Selecting a fast, geographically close mirror will generally shorten retrieval time. Review the mirrorselect tool mentioned in the Optional: Selecting mirrors section or review the online list of mirrors where URL values can be discovered.
[binhost]
priority = 9999
sync-uri = https://distfiles.gentoo.org/releases/<arch>/binpackages/<profile>/x86-64/
Installing binary packages
Portage will compile packages from code source by default. It can be instructed to use binary packages in the following ways:
- The
--getbinpkg
option can be passed when invoking the emerge command. This method of for binary package installation is useful to install only a particular binary package. - Changing the system's default via Portage's FEATURES variable, which is exposed through the /etc/portage/make.conf file. Applying this configuration change will cause Portage to query the binary package host for the package(s) to be requested and fall back to compiling locally when no results are found.
For example, to have Portage always install available binary packages:
# Appending getbinpkg to the list of values within the FEATURES variable
FEATURES="${FEATURES} getbinpkg"
# Require signatures
FEATURES="${FEATURES} binpkg-request-signature"
Please also run getuto for Portage to set up the necessary keyring for verification:
root #
getuto
Additional Portage features will be discussed in the the next chapter of the handbook.
USE Variable konfigurieren
USE ist eine der mächtigsten Variablen, die Gentoo seinen Benutzern bietet. Viele Programme können mit oder ohne optionale Unterstützung für bestimmte Dinge kompiliert werden. Beispielsweise können einige Programme mit GTK- oder Qt-Unterstützung kompiliert werden. Andere können mit oder ohne SSL-Unterstützung kompiliert werden. Einige Programme können sogar mit Framebuffer-Unterstützung (svgalib) anstelle von X11-Unterstützung (X-Server) kompiliert werden.
Die meisten Distributionen kompilieren ihre Pakete mit Unterstützung für möglichst viel. Dies erhöht die Größe der Programme und verlängert die Programmstartzeit, nicht zu erwähnen die enorme Menge von Abhängigkeiten. Mit Gentoo können die Benutzer definieren, mit welchen Optionen ein Paket kompiliert werden soll. Hier kommt USE ins Spiel.
In der Variablen USE definieren die Benutzer Schlüsselwörter, die auf Optionen beim Kompilieren abgebildet werden. Beispielsweise kompiliert ssl
SSL Unterstützung in die Programme, die das unterstützen. -X
entfernt X-Server-Unterstützung (beachten Sie das Minuszeichen am Anfang). gnome gtk -kde -qt5
kompiliert Programme mit GNOME und GTK+ Unterstützung, aber nicht mit KDE und Qt5 Unterstützung. Das führt zu einem System, das komplett für GNOME optimiert ist (vorausgesetzt die Architektur unterstützt es).
Die Standard-USE-Einstellungen befinden sich in den make.defaults Dateien des Gentoo-Profils, das das System verwendet. Gentoo benutzt ein (komplexes) Vererbungssystem für seine Profile, in das wir in dieser Phase nicht eintauchen wollen. Der einfachste Weg, die momentan aktiven USE Einstellungen zu überprüfen, ist emerge --info auszuführen und die Zeile auszuwählen, die mit USE beginnt:
root #
emerge --info | grep ^USE
USE="X acl alsa amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri ..."
Das obige Beispiel ist verkürzt, die tatsächliche Liste der USE-Werte ist viel viel länger.
Eine vollständige Beschreibung der verfügbaren USE-Flags finden Sie auf dem System in der Datei /var/db/repos/gentoo/profiles/use.desc.
root #
less /var/db/repos/gentoo/profiles/use.desc
Innerhalb des Befehls less können Sie mit Hilfe der Tasten ↑ und ↓ scrollen. Zum Beenden drücken Sie q.
Als Beispiel zeigen wir die USE Einstellung für ein KDE-basiertes System mit DVD, ALSA und CD-Aufnahme Unterstützung:
root #
nano /etc/portage/make.conf
USE="-gtk -gnome qt5 kde dvd alsa cdr"
Wenn ein USE Wert in /etc/portage/make.conf definiert wird, wird er zu der USE-Flag Liste des Systems hinzugefügt. USE-Flags auf dieser Liste können entfernt werden, indem ein - Minuszeichen vor den Wert gesetzt wird. Um beispielsweise die Unterstützung für X11 zu deaktivieren, kann -X
definiert werden:
USE="-X acl alsa"
Obwohl es möglich ist, mit
-*
alle USE-Flags zu deaktivieren (mit Ausnahme der in make.conf definierten USE-Flags), raten wir mit Nachdruck davon ab. Die Entwickler von Ebuilds wählen bestimmte Default-USE-Flags in ebuilds um Konflikte zu vermeiden, die Sicherheit zu gewährleisten, Fehler zu vermeiden und aus vielen weiteren Gründen. Die Deaktivierung aller USE-Flags beeinträchtigt das Standard-Verhalten und kann zu schwerwiegenden Problemen führenCPU_FLAGS_*
Einige Architekturen (einschließlich AMD64/X86, ARM, PPC) haben eine USE_EXPAND-Variable namens CPU_FLAGS_<ARCH>, wobei <ARCH> durch den Namen der jeweiligen Systemarchitektur ersetzt wird.
Nicht verwirren lassen! AMD64- und X86-Systeme haben eine gemeinsame Architektur, daher ist der richtige Variablenname für AMD64-Systeme CPU_FLAGS_X86.
Dies wird verwendet um den Build so zu konfigurieren, dass er in einem bestimmten Assemblercode oder anderen Intrinsics kompiliert, normalerweise handgeschrieben oder anderweitig extra, und ist nicht dasselbe wie die Aufforderung an den Compiler, optimierten Code für eine bestimmte CPU-Funktion auszugeben (z.B. -march=
).
Benutzer sollten diese Variable zusätzlich zur Konfiguration ihrer COMMON_FLAGS wie gewünscht setzen.
Zur Konfiguration sind folgende Schritte erforderlich:
root #
emerge --ask app-portage/cpuid2cpuflags
Wenn Sie neugierig sind, können Sie das Programm starten und sich die Ausgabe ansehen:
root #
cpuid2cpuflags
Kopieren Sie die Ausgabe des Programms nach package.use:
root #
echo "*/* $(cpuid2cpuflags)" > /etc/portage/package.use/00cpu-flags
VIDEO_CARDS
Die VIDEO_CARDS USE_EXPAND Variable sollte in Abhängigkeit von der verfügbaren GPU (den verfügbaren GPUs) konfiguriert werden. Das Vorgehen wird im Xorg Leitfaden beschrieben. Wenn nur auf einer Konsole gearbeitet werden soll, muss VIDEO_CARDS nicht gesetzt werden.
Below is an example of a properly set VIDEO_CARDS variable. Substitute the name of the driver(s) to be used.
VIDEO_CARDS="amdgpu radeonsi"
Details for various GPU(s) can be found at the AMDGPU, Intel, Nouveau (Open Source), or NVIDIA (Proprietary) articles.
Optional: Die ACCEPT_LICENSE Variable konfigurieren
Starting with Gentoo Linux Enhancement Proposal 23 (GLEP 23), a mechanism was created to allow system administrators the ability to "regulate the software they install with regards to licenses... Some want a system free of any software that is not OSI-approved; others are simply curious as to what licenses they are implicitly accepting."[2] With a motivation to have more granular control over the type of software running on a Gentoo system, the ACCEPT_LICENSE variable was born.
Portage überprüft anhand von ACCEPT_LICENSE, welche Pakete installiert werden dürfen. Den derzeit systemweit gültigen Wert können Sie anzeigen mit:
user $
portageq envvar ACCEPT_LICENSE
@FREE
Die folgende Tabelle zeigt die im Gentoo Repository definierten Lizenz-Gruppen. Die Lizenz-Gruppen werden vom Gentoo Licenses Projekt verwaltet.
Gruppen-Name | Beschreibung |
---|---|
@GPL-COMPATIBLE | GPL compatible licenses approved by the Free Software Foundation [a_license 1] |
@FSF-APPROVED | Free software licenses approved by the FSF (includes @GPL-COMPATIBLE) |
@OSI-APPROVED | Licenses approved by the Open Source Initiative [a_license 2] |
@MISC-FREE | Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 3] but are not approved by either FSF or OSI |
@FREE-SOFTWARE | Combines @FSF-APPROVED, @OSI-APPROVED and @MISC-FREE |
@FSF-APPROVED-OTHER | FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts) |
@MISC-FREE-DOCS | Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 4] but are NOT listed in @FSF-APPROVED-OTHER |
@FREE-DOCUMENTS | Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS |
@FREE | Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS |
@BINARY-REDISTRIBUTABLE | Licenses that at least permit free redistribution of the software in binary form. Includes @FREE |
@EULA | License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval |
Some common license groups include:
Name | Description |
---|---|
@GPL-COMPATIBLE |
GPL compatible licenses approved by the Free Software Foundation [a_license 5] |
@FSF-APPROVED |
Free software licenses approved by the FSF (includes @GPL-COMPATIBLE )
|
@OSI-APPROVED |
Licenses approved by the Open Source Initiative [a_license 6] |
@MISC-FREE |
Misc licenses that are probably free software, i.e. follow the Free Software Definition [a_license 7] but are not approved by either FSF or OSI |
@FREE-SOFTWARE |
Combines @FSF-APPROVED , @OSI-APPROVED , and @MISC-FREE .
|
@FSF-APPROVED-OTHER |
FSF-approved licenses for "free documentation" and "works of practical use besides software and documentation" (including fonts) |
@MISC-FREE-DOCS |
Misc licenses for free documents and other works (including fonts) that follow the free definition [a_license 8] but are NOT listed in @FSF-APPROVED-OTHER .
|
@FREE-DOCUMENTS |
Combines @FSF-APPROVED-OTHER and @MISC-FREE-DOCS .
|
@FREE |
Metaset of all licenses with the freedom to use, share, modify and share modifications. Combines @FREE-SOFTWARE and @FREE-DOCUMENTS .
|
@BINARY-REDISTRIBUTABLE |
Licenses that at least permit free redistribution of the software in binary form. Includes @FREE .
|
@EULA |
License agreements that try to take away your rights. These are more restrictive than "all-rights-reserved" or require explicit approval |
- ↑ https://www.gnu.org/licenses/license-list.html
- ↑ https://www.opensource.org/licenses
- ↑ https://www.gnu.org/philosophy/free-sw.html
- ↑ https://freedomdefined.org/
- ↑ https://www.gnu.org/licenses/license-list.html
- ↑ https://www.opensource.org/licenses
- ↑ https://www.gnu.org/philosophy/free-sw.html
- ↑ https://freedomdefined.org/
Currently set system wide acceptable license values can be viewed via:
user $
portageq envvar ACCEPT_LICENSE
@FREE
As visible in the output, the default value is to only allow software which has been grouped into the @FREE
category to be installed.
Specific licenses or licenses groups for a system can be defined in the following locations:
- Systemweit im ausgewählten Profil.
- Systemweit in der Datei /etc/portage/make.conf.
- Pro Paket in der Datei /etc/portage/package.license.
- Pro Paket in einem /etc/portage/package.license/ Verzeichnis von Dateien.
Optional kann die in den Profilen gesetzte systemweite Voreinstellung überschrieben werden in der Datei /etc/portage/make.conf:
ACCEPT_LICENSE="-* @FREE @BINARY-REDISTRIBUTABLE"
Optional kann man auch akzeptierte Lizenzen pro Paket definieren, wie im folgenden Beispiel für ein Dateiverzeichnis gezeigt. Beachten Sie, dass das Verzeichnis package.license erstellt werden muss, wenn es noch nicht existiert:
root #
mkdir /etc/portage/package.license
Software license details for an individual Gentoo package are stored within the LICENSE variable of the associated ebuild. One package may have one or many software licenses, therefore it be necessary to specify multiple acceptable licenses for a single package.
app-arch/unrar unRAR
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
sys-firmware/intel-microcode intel-ucode
Die LICENSE Variable in einem Ebuild ist nur eine Richtlinie für Gentoo Entwickler und Benutzer. Sie ist keine rechtliche Aussage und es gibt keine Garantie, dass sie die Realität widerspiegelt. Verlassen Sie sich also nicht darauf, sondern überprüfen Sie das Paket selbst eingehend, einschließlich aller Dateien, die auf dem System installiert wurden.
@world set updaten
Der folgende Schritt ist erforderlich, damit Ihre Änderungen am Profil wirksam werden. Weiterhin werden alle Pakete aktualisiert, für die es nach dem Erstellungszeitpunkt des von Ihnen installierten Stage Tar-Archivs Updates oder Änderungen an den USE Flags gibt.
- A profile target different from the stage file has been selected.
- Additional USE flags have been set for installed packages.
Readers who are performing an 'install Gentoo speed run' may safely skip @world set updates until after their system has rebooted into the new Gentoo environment.
Readers who are performing a slow run can have Portage perform updates for package, profile, and/or USE flag changes at the present time:
root #
emerge --ask --verbose --update --deep --newuse @world
Removing obsolete packages
It is important to always depclean after system upgrades to remove obsolete packages. Review the output carefully with emerge --depclean --pretend to see if any of the to-be-cleaned packages should be kept if personally using them. To keep a package which would otherwise be depcleaned, use emerge --noreplace foo.
root #
emerge --ask --pretend --depclean
If happy, then proceed with a real depclean:
root #
emerge --ask --depclean
Wenn Sie ein Profil für eine vollständige Desktop-Umgebung (wie KDE oder GNOME) gewählt haben, kann der obige emerge-Befehl recht lange dauern. Wer unter Zeitdruck steht, kann folgende 'Daumenregel' verwenden: je kürzer der Profil-Name, desto weniger umfangreich ist das @world set des Systems, desto weniger Pakete müssen installiert werden. Mit anderen Worten:
- die Wahl von
default/linux/amd64/23.0
führt zu wenigen Paketen, die upgedatet werden müssen, während - bei der Wahl von
default/linux/amd64/23.0/desktop/gnome/systemd
viele Pakete installiert werden müssen, weil ein Wechsel von OpenRC zu systemd stattfindet und die GNOME Desktop-Umgebung installiert werden muss.
Zeitzone
Dieser Schritt gilt nicht für Benutzer der musl libc. Benutzer die nicht wissen, was das bedeutet, sollten diesen Schritt ausführen.
Bitte vermeiden Sie die /usr/share/zoneinfo/Etc/GMT* Zeitzonen, da deren Namen nicht die erwarteten Zonen anzeigen. Beispielsweise ist GMT-8 in der Tat GMT+8.
Wählen Sie die Zeitzone für das System. Schauen Sie nach den verfügbaren Zeitzonen in /usr/share/zoneinfo/.
root #
ls /usr/share/zoneinfo
root #
ls -l /usr/share/zoneinfo/Europe/
total 256 -rw-r--r-- 1 root root 2933 Dec 3 17:19 Amsterdam -rw-r--r-- 1 root root 1742 Dec 3 17:19 Andorra -rw-r--r-- 1 root root 1151 Dec 3 17:19 Astrakhan -rw-r--r-- 1 root root 2262 Dec 3 17:19 Athens -rw-r--r-- 1 root root 3664 Dec 3 17:19 Belfast -rw-r--r-- 1 root root 1920 Dec 3 17:19 Belgrade -rw-r--r-- 1 root root 2298 Dec 3 17:19 Berlin -rw-r--r-- 1 root root 2301 Dec 3 17:19 Bratislava -rw-r--r-- 1 root root 2933 Dec 3 17:19 Brussels ...
Nehmen wir an, die gewünschte Zeitzone ist Europe/Brussels.
OpenRC
Wir schreiben den Namen der gewünschten Zeitzone in die Datei /etc/timezone.
root #
echo "Europe/Brussels" > /etc/timezone
Als Nächstes konfigurieren Sie das Paket sys-libs/timezone-data neu. Dies wird für uns abhängig vom Eintrag in der Datei /etc/timezone die Datei /etc/localtime aktualisieren. Die Datei /etc/localtime wird von der System C Bibliothek verwendet um zu erfassen in welcher Zeitzone sich das System befindet.
root #
emerge --config sys-libs/timezone-data
The /etc/localtime file is used by the system C library to know the timezone the system is in.
systemd
Wenn systemd verwendet wird, ist ein etwas anderes Vorgehen erforderlich. Ein symbolischer Link wird angelegt:
root #
ln -sf ../usr/share/zoneinfo/Europe/Brussels /etc/localtime
Später, wenn das systemd am Laufen ist, können die Zeitzone und verwandte Einstellungen mit dem Programm timedatectl konfiguriert werden.
Locales konfigurieren
Dieser Abschnitt ist nicht erforderlich für Nutzer der "musl" libc. Anwender, die nicht wissen, was das bedeutet, sollten diesen Abschnitt durcharbeiten.
Locales erzeugen
Die meisten Benutzer werden nur ein oder zwei Locale auf ihrem System verwenden.
Locales geben nicht nur die Sprache an, mit der der Anwender mit dem System interagieren soll. Sie definieren auch die Regeln zum Sortieren von Zeichenketten, zur Anzeige von Datum und Zeit, usw. Locales sind 'case-sensitive' und müssen genau so geschrieben werden wie vorgegeben. Die Datei /usr/share/i18n/SUPPORTED enthält eine vollständige Liste aller verfügbaren Locales.
Locales, die auf einem System verfügbar sein sollen, müssen in der Datei /etc/locale.gen konfiguriert werden.
root #
nano /etc/locale.gen
Das folgende Beispiel zeigt Locales, um sowohl Englisch (Vereinigte Staaten), als auch Deutsch (Deutschland) mit den Zeichenkodierungen Latin-1 und UTF-8 zu erhalten:
en_US ISO-8859-1
en_US.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE.UTF-8 UTF-8
Anwender aus Österreich oder aus der Schweiz können anstelle von (oder zusätzlich zu) "de_DE" wählen: "de_AT" oder "de_CH".
Viele Anwendungen erfordern mindestens ein UTF-8 Locale, um korrekt gebaut zu werden.
Der nächste Schritt ist, locale-gen auszuführen. Dieses Programm erzeugt alle Locales, die in der Datei /etc/locale.gen angegeben sind.
root #
locale-gen
Um zu überprüfen, ob die ausgewählten Locales jetzt verfügbar sind, führen Sie locale -a aus. Dieser Befehl muss die konfigurierten Locales anzeigen - ansonsten hat locale-gen nicht funktioniert.
Auf systemd-Installationen kann localectl verwendet werden, z.B. localectl set-locale ... oder localectl list-locales.
Locale auswählen
Nachdem die Locales generiert wurden, ist es Zeit, die systemweiten Locale-Einstellungen zu setzen. Wir verwenden dafür wieder eselect, diesmal mit dem Modul locale
.
Mit eselect locale list werden die verfügbaren Locales angezeigt:
root #
eselect locale list
Verfügbare Locales für die LANG Variable: [1] C [2] C.utf8 [3] en_US [4] en_US.iso88591 [5] en_US.utf8 [6] de_DE [7] de_DE.iso88591 [8] de_DE.utf8 [9] POSIX [ ] (free form)
Mit eselect locale set <WERT> kann die gewünschte Locale ausgewählt werden:
root #
eselect locale set 9
Manuell kann dies auch durch Anpassen der Datei /etc/env.d/02locale und für Systemd durch Anpassen der Datei /etc/locale.conf erreicht werden:
LANG="de_DE.UTF-8"
LC_COLLATE="C.UTF-8"
Das Setzen der System-Locale verhindert Warnungen und Fehlermeldungen beim Kompilieren des Kernels und von Software in den folgenden Installationsschritten.
Laden Sie jetzt die Umgebung erneut, damit die Änderung der Locale-Einstellung in Ihrer Shell wirksam wird:
root #
env-update && source /etc/profile && export PS1="(chroot) ${PS1}"
Eine weiterführende Anleitung durch den Lokalisierungs-Prozess finden Sie im Lokalisierungs-Leitfaden und in der UTF-8-Anleitung.
References
Optional: Firmware und/oder Microcode installieren
Firmware
Linux Firmware
Bevor wir uns mit den Abschnitten zur Kernelkonfiguration befassen, sollten Sie sich darüber im Klaren sein, dass für einige Hardwaregeräte zusätzliche, manchmal nicht FOSS-konforme Firmware auf dem System installiert werden muss, damit sie korrekt funktionieren. Dies ist häufig der Fall bei drahtlosen Netzwerkschnittstellen, die sowohl in Desktop- als auch in Laptop-Computern zu finden sind. Auch moderne Videochips von Herstellern wie AMD, NVIDIA und Intel benötigen oft externe Firmware-Dateien, um voll funktionsfähig zu sein. Die meiste Firmware für moderne Hardwaregeräte ist im Paket sys-kernel/linux-firmware zu finden.
Es wird empfohlen, das Paket sys-kernel/linux-firmware vor dem ersten Neustart des Systems zu installieren, um die Firmware im Bedarfsfall zur Verfügung zu haben:
root #
emerge --ask sys-kernel/linux-firmware
Die Installation bestimmter Firmware-Pakete erfordert oft das Akzeptieren der zugehörigen Firmware-Lizenzen. Falls erforderlich, finden Sie im Lizenzhandhabungsabschnitt des Handbuchs Hilfe zum Akzeptieren von Lizenzen.
Es ist wichtig zu beachten, dass Kernel-Symbole, die als Module (M) gebaut sind, ihre zugehörige Firmware-Dateien aus dem Dateisystem laden, wenn sie vom Kernel geladen werden. Für Symbole, die als Module geladen werden, ist es nicht notwendig, die Firmware-Dateien des Geräts in das Binärabbild des Kernel aufzunehmen.
Microcode
Neben Grafik- und Netzwerk-Hardware können auch CPUs Firmware-Updates benötigen. Dieser Typ von Firmware wird Microcode genannt. Manchmal sind aktuelle Versionen von Microcode erforderlich, um Stabilitätsprobleme, Sicherheitsprobleme oder andere Bugs in CPU-Hardware zu patchen.
Microcode Updates für AMD CPUs sind in dem bereits genannten Paket sys-kernel/linux-firmware enthalten. Microcode Updates für Intel CPUs sind in dem Paket sys-firmware/intel-microcode enthalten. Dieses muss zusätzlich installiert werden. Weitere Informationen finden Sie im Microcode Artikel, in dem auch beschrieben wird, wie Microcode Updates auf der CPU aktiviert werden.
Kernel konfigurieren und Kompilieren
Nun ist es an der Zeit, die Kernel-Quellen zu konfigurieren und zu kompilieren. Für die Zwecke der Installation werden drei Ansätze für die Kernelverwaltung vorgestellt, jedoch kann zu jedem Zeitpunk nach der Installation ein neuer Ansatz gewählt werden.
In der Reihenfolge vom geringsten bis zum größten Aufwand:
- Full automation approach: Distribution kernels
- A Distribution Kernel is used to configure, automatically build, and install the Linux kernel, its associated modules, and (optionally, but enabled by default) an initramfs file. Future kernel updates are fully automated since they are handled through the package manager, just like any other system package. It is possible provide a custom kernel configuration file if customization is necessary. This is the least involved process and is perfect for new Gentoo users due to it working out-of-the-box and offering minimal involvement from the system administrator.
- Hybrid approach: Genkernel
- New kernel sources are installed via the system package manager. System administrators use Gentoo's genkernel tool to generically configure, automatically build and install the Linux kernel, its associated modules, and (optionally, but not enabled by default) an initramfs file. It is possible provide a custom kernel configuration file if customization is necessary. Future kernel configuration, compilation, and installation require the system administrator's involvement in the form of running eselect kernel, genkernel, and potentially other commands for each update.
- Full manual approach
- New kernel sources are installed via the system package manager. The kernel is manually configured, built, and installed using the eselect kernel and a slew of make commands. Future kernel updates repeat the manual process of configuring, building, and installing the kernel files. This is the most involved process, but offers maximum control over the kernel update process.
- Vollständiger Automatisierungsansatz: Distributionskernel
- Ein Distributionskernel wird verwendet, um den Linux-Kernel, seine dazugehörigen Module und (optional, aber standardmäßig aktiviert) eine initramfs-Datei zu konfigurieren, automatisch zu bauen und zu installieren. Zukünftige Kernel-Aktualisierungen sind vollständig automatisiert, da sie über den Paketmanager abgewickelt werden, genauso wie jedes andere Systempaket. Es ist möglich eine eigene Kernelkonfigurationsdatei bereitzustellen, wenn Anpassungen notwendig sind. Dies ist der am wenigsten aufwendige Prozess und eignet sich perfekt für neue Gentoo-Benutzer, da er sofort funktioniert und nur minimale Eingriffe des Systemadministrators erfordert.
- Hybridansatz: Genkernel
- Neue Kernelquellen werden über den Systempaketmanager installiert. Systemadministratoren benutzen Gentoos genkernel Werkzeug, um den Linux-Kernel, seine dazugehörigen Module und (optional aber nicht standardmäßig aktiviert) eine initramfs-Datei zu konfigurieren, automatisch zu bauen und zu installieren. Es ist möglich, eine benutzerdefinierte Kernelkonfigurationsdatei bereitzustellen, wenn eine Anpassung erforderlich ist. Zukünftige Kernelkonfigurationen, -kompilierungen und -installationen erfordern die Beteiligung des Systemadministrators in Form der Ausführung von eselect kernel, genkernel und möglicherweise andere Befehle für jede Aktualisierung.
- Vollständige manuelle Vorgehensweise
- Neue Kernelquellen werden über den Systempaketmanager installiert. Der Kernel wird manuell konfiguriert, gebaut und installiert unter Verwendung des eselect kernel und einer Reihe von make Befehlen. Künftige Kernel-Updates wiederholen den manuellen Prozess des Konfigurierens, Erstellens und Installieren der Kernel-Dateien. Dies ist der aufwändigste Prozess, bietet aber maximale Kontrolle über den Kernel-Aktualisierungsprozess.
Der Kern, um den alle Distributionen gebaut sind, ist der Linux Kernel. Er ist die Schicht zwischen den Benutzerprogrammen und der Systemhardware. Obwohl das Handbuch seinen Benutzern verschiedene Kernel-Quellen anbietet, ist eine umfassendere Auflistung mit detaillierter Beschreibung auf der Kernel Übersichtsseite verfügbar.
Kernel installation tasks such as, copying the kernel image to /boot or the EFI System Partition, generating an initramfs and/or Unified Kernel Image, updating bootloader configuration, can be automated with installkernel. Users may wish to configure and install sys-kernel/installkernel before proceeding. See the Kernel installation section below for more more information.
Distribution kernels
Distribution Kernels are ebuilds that cover the complete process of unpacking, configuring, compiling, and installing the kernel. The primary advantage of this method is that the kernels are updated to new versions by the package manager as part of @world upgrade. This requires no more involvement than running an emerge command. Distribution kernels default to a configuration supporting the majority of hardware, however two mechanisms are offered for customization: savedconfig and config snippets. See the project page for more details on configuration.
Optional: Signed kernel modules
The kernel modules in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) are already signed. To sign the modules of kernels built from source enable the modules-sign USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf:
USE="modules-sign"
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.
If MODULES_SIGN_KEY is not specified the kernel build system will generate a key, it will be stored in /usr/src/linux-x.y.z/certs. It is recommended to manually generate a key to ensure that it will be the same for each kernel release. A key may be generated with:
root #
openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.
Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:
root #
ls -l kernel_key.pem
-r-------- 1 root root 3164 Jan 4 10:38 kernel_key.pem
If this outputs anything other then the above, correct the permissions with:
root #
chown root:root kernel_key.pem
root #
chmod 400 kernel_key.pem
Optional: Signing the kernel image (Secure Boot)
The kernel image in the prebuilt distribution kernel (sys-kernel/gentoo-kernel-bin) is already signed for use with Secure Boot. To sign the kernel image of kernels built from source enable the secureboot USE flag, and optionally specify which key to use for signing in /etc/portage/make.conf. Note that signing the kernel image for use with secureboot requires that the kernel modules are also signed, the same key may be used to sign both the kernel image and the kernel modules:
USE="modules-sign secureboot"
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512.
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second separate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.
See the above section for instructions on generating a new key, the steps may be repeated if a separate key should be used to sign the kernel image.
To successfully boot with Secure Boot enabled, the used bootloader must also be signed and the certificate must be accepted by the UEFI firmware or Shim. This will be explained later in the handbook.
Installing a distribution kernel
To build a kernel with Gentoo patches from source, type:
root #
emerge --ask sys-kernel/gentoo-kernel
System administrators who want to avoid compiling the kernel sources locally can instead use precompiled kernel images:
root #
emerge --ask sys-kernel/gentoo-kernel-bin
Distribution Kernels, such as sys-kernel/gentoo-kernel and sys-kernel/gentoo-kernel-bin, by default, expect to be installed alongside an initramfs. Before running emerge to install the kernel users should ensure that sys-kernel/installkernel has been configured to utilize an initramfs generator (for example Dracut) as described in the installkernel section.
Upgrading and cleaning up
Once the kernel is installed, the package manager will automatically update it to newer versions. The previous versions will be kept until the package manager is requested to clean up stale packages. To reclaim disk space, stale packages can be trimmed by periodically running emerge with the --depclean
option:
root #
emerge --depclean
Alternatively, to specifically clean up old kernel versions:
root #
emerge --prune sys-kernel/gentoo-kernel sys-kernel/gentoo-kernel-bin
By design, emerge only removes the kernel build directory. It does not actually remove the kernel modules, nor the installed kernel image. To completely clean-up old kernels, the app-admin/eclean-kernel tool may be used.
Post-install/upgrade tasks
An upgrade of a distribution kernel is capable of triggering an automatic rebuild for external kernel modules installed by other packages (for example: sys-fs/zfs-kmod or x11-drivers/nvidia-drivers). This automated behaviour is enabled by enabling the dist-kernel USE flag. When required, this same flag will also trigger re-generation of the initramfs.
It is highly recommended to enable this flag globally via /etc/portage/make.conf when using a distribution kernel:
USE="dist-kernel"
Manually rebuilding the initramfs or Unified Kernel Image
If required, manually trigger such rebuilds by, after a kernel upgrade, executing:
root #
emerge --ask @module-rebuild
If any kernel modules (e.g. ZFS) are needed at early boot, rebuild the initramfs afterward via:
root #
emerge --config sys-kernel/gentoo-kernel
root #
emerge --config sys-kernel/gentoo-kernel-bin
Installieren der Kernel-Quellen
{{Note|Dieser Abschnitt ist nur relevant, wenn Sie den folgenden genkernel} (hybrid) oder manuellen Kernelverwaltungsansatz verwenden.}
The use of sys-kernel/installkernel is not strictly required, but highly recommended. When this package is installed, the kernel installation process will be delegated to installkernel. This allows for installing several different kernel versions side-by-side as well as managing and automating several tasks relating to kernel installation described later in the handbook. Install it now with:
root #
emerge --ask sys-kernel/installkernel
Für die Installation und Kompilierung des Kernels für x86-basierte Systeme empfiehlt Gentoo das Paket sys-kernel/gentoo-sources.
Wählen Sie eine geeignete Kernelquelle und installieren Sie sie mit emerge:
root #
emerge --ask sys-kernel/gentoo-sources
Dieser Befehl installiert die Quellen des Linux-Kernels in dem Verzeichnis /usr/src/. Im Namen des angelegten Unterverzeichnisses steht die Version des Linux-Kernels (beispielsweise /usr/src/linux-4.9.16-gentoo). Der emerge-Befehl erzeugt einen symbolischen Link /usr/src/linux auf dieses Verzeichnis, wenn das USE-Flag symlink
bei dem Paket gesetzt ist.
Es ist gute Praxis, einen Symlink /usr/src/linux auf das Verzeichnis mit dem Source-Code der Kernel-Version zeigen zu lassen, die auf dem System läuft. Dieser Symlink wird nicht automatisch erzeugt. Er kann jedoch einfach mit Hilfe des eselect Kernel Modules erzeugt werden.
Weitere Informationen über Zweck und Handhabung des Symlinks finden Sie unter Kernel/Upgrade.
Lassen Sie eine Liste der installierten Kernel anzeigen:
root #
eselect kernel list
Available kernel symlink targets: [1] linux-6.6.21-gentoo
Mit folgendem Befehl können Sie einen symbolischen Link namens linux anlegen:
root #
eselect kernel set 1
root #
ls -l /usr/src/linux
lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-6.6.21-gentoo
Alternative: Manuelle Konfiguration
Einleitung
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.
Einen Kernel manuell zu konfigurieren wird oft als die schwierigste Aufgabe gesehen, die ein Linux Benutzer jemals durchzuführen hat. Nichts ist weiter von der Wahrheit entfernt. Nach der Konfiguration einiger Kernel werden Sie sich nicht mehr daran erinnern, dass es jemals schwer war!
Eine Sache ist jedoch wahr: um einen Kernel manuell konfigurieren zu können, ist es wichtig, das System zu kennen. Die meisten Informationen erhalten Sie durch das Programm lspci, das im Paket sys-apps/pciutils enthalten ist.
root #
emerge --ask sys-apps/pciutils
root #
lspci
root #
lspci -v
Innerhalb der chroot-Umgebung können Sie jegliche pcilib-Warnung (wie pcilib: cannot open /sys/bus/pci/devices) ignorieren, die lspci auswerfen könnte.
Eine weitere Quelle von Systeminformationen ist lsmod. Diese Anweisung zeigt Ihnen, welche Kernel-Module die Installations-CD verwendet. Dies liefert gute Hinweise darauf, was im Kernel aktiviert werden sollte.
Gehen Sie in das Kernel Quellverzeichnis und führen Sie make menuconfig aus. Dies wird eine menübasierte Konfigurationsmaske starten.
root #
cd /usr/src/linux
root #
make menuconfig
Die Linux Kernel-Konfiguration hat viele, viele Abschnitte. Wir listen zunächst einige Optionen auf, die aktiviert werden müssen (ansonsten wird Gentoo nicht funktionieren, oder ohne zusätzliche Veränderungen nicht richtig funktionieren). Wir haben im Gentoo Wiki auch einen Gentoo Kernel-Konfigurationsleitfaden, der weiterhelfen könnte.
Erforderliche Optionen aktivieren
Bei Verwendung des Pakets sys-kernel/gentoo-sources wird dringend empfohlen, die Gentoo-spezifischen Konfigurations-Optionen zu aktivieren. Diese stellen sicher, dass eine Mindestmenge von Kernel-Funktionen vorhanden ist, die für das einwandfreie Funktionieren erforderlich ist:
Gentoo Linux --->
Generic Driver Options --->
[*] Gentoo Linux support
[*] Linux dynamic and persistent device naming (userspace devfs) support
[*] Select options required by Portage features
Support for init systems, system and service managers --->
[*] OpenRC, runit and other script based systems and managers
[*] systemd
Die Wahl für die letzten beiden Zeilen sollte natürlich von dem gewählten Init-System abhängen (OpenRC vs. systemd). Es ist kein Fehler, die Unterstützung für beide Init-Systeme zu aktivieren.
Wenn das Paket sys-kernel/vanilla-sources verwendet wird, gibt es die Auswahlmöglichkeiten für das Init-System nicht. Die Aktivierung der notwendigen Kernel-Optionen ist natürlich trotzdem möglich - aber eine Beschreibung würde den Rahmen dieses Handbuchs sprengen.
Unterstützung für typische Systemkomponenten aktivieren
Stellen Sie sicher, dass jeder Treiber, der für das Booten des Systems wichtig ist (z.B. SATA-Controller, NVMe-Blockgeräteunterstützung, Dateisystemunterstützung, usw.), im Kernel und nicht also Modul kompiliert ist, da das System sonst möglicherweise nicht vollständig booten kann.
Als Nächstes wählen Sie den genauen Prozessor-Typ. Es wird auch empfohlen, die MCE-Funktion zu aktivieren (wenn verfügbar), so dass Benutzer bei Hardwareproblemen benachrichtigt werden können. Auf einigen Architekturen (wie z.B. X86_64) werden diese Fehler nicht über dmesg, sondern auf /dev/mcelog ausgegeben. Dies erfordert das Paket app-admin/mcelog.
Wählen Sie auch Maintain a devtmpfs file system to mount at /dev, damit kritische Gerätedateien bereits früh im Boot-Prozess verfügbar sind (CONFIG_DEVTMPFS and CONFIG_DEVTMPFS_MOUNT):
Device Drivers --->
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev
[*] Automount devtmpfs at /dev, after the kernel mounted the rootfs
Überprüfen Sie, dass SCSI disk Unterstützung aktiviert wurde (CONFIG_BLK_DEV_SD):
Device Drivers --->
SCSI device support --->
<*> SCSI device support
<*> SCSI disk support
Device Drivers --->
<*> Serial ATA and Parallel ATA drivers (libata) --->
[*] ATA ACPI Support
[*] SATA Port Multiplier support
<*> AHCI SATA support (ahci)
[*] ATA BMDMA support
[*] ATA SFF support (for legacy IDE and PATA)
<*> Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support (ata_piix)
Überprüfen Sie, ob die grundlegende NVMe-Unterstützung aktiviert wurde:
Device Drivers --->
<*> NVM Express block device
Device Drivers --->
NVME Support --->
<*> NVM Express block device
Es kann nicht schaden, die folgende zusätzliche NVMe-Unterstützung zu aktivieren:
[*] NVMe multipath support
[*] NVMe hardware monitoring
<M> NVM Express over Fabrics FC host driver
<M> NVM Express over Fabrics TCP host driver
<M> NVMe Target support
[*] NVMe Target Passthrough support
<M> NVMe loopback device support
<M> NVMe over Fabrics FC target driver
< > NVMe over Fabrics FC Transport Loopback Test driver (NEW)
<M> NVMe over Fabrics TCP target support
Gehen Sie nun zu den Dateisystemen (File Systems) und aktivieren Sie die Dateisysteme, die auf dem System verwendet werden sollen. Kompilieren Sie das Dateisystem, das als Root-Dateisystem verwendet wird, nicht als Modul. Andernfalls wird das Gentoo-System möglicherweise nicht in der Lage sein, die Root-Partition einzuhängen. Wählen Sie ebenfalls Virtual memory und /proc file system. Wählen Sie eine oder mehrere der folgenden Optionen, die auf dem System benötigt werden:
File systems --->
<*> Second extended fs support
<*> The Extended 3 (ext3) filesystem
<*> The Extended 4 (ext4) filesystem
<*> Btrfs filesystem support
<*> XFS filesystem support
DOS/FAT/NT Filesystems --->
<*> MSDOS fs support
<*> VFAT (Windows-95) fs support
Pseudo Filesystems --->
[*] /proc file system support
[*] Tmpfs virtual memory file system support (former shm fs)
Wenn PPPoE für die Internetverbindung, oder ein Einwahl-Modem verwendet wird, aktivieren Sie die folgenden Optionen (CONFIG_PPP, CONFIG_PPP_ASYNC, and CONFIG_PPP_SYNC_TTY):
Device Drivers --->
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP over Ethernet
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
Die beiden Komprimierungsoptionen schaden nicht, werden aber auch nicht unbedingt benötigt. Ebenso wenig wie die PPP over Ethernet Option, die vielleicht nur von ppp benötigt wird, wenn 'kernel mode PPPoE' konfiguriert wird.
Vergessen Sie nicht, die Unterstützung von Netzwerkkarten (Ethernet oder Wireless-LAN) zu aktivieren.
Die meisten Systeme haben auch mehrere Prozessorkerne zur Verfügung. Daher ist es wichtig, Symmetric multi-processing support zu aktivieren (CONFIG_SMP):
Processor type and features --->
[*] Symmetric multi-processing support
In Mehrkernsystemen zählt jeder Kern als ein Prozessor.
Wenn Sie USB-Eingabegeräte (wie Tastatur oder Maus) oder andere USB-Geräte verwenden, vergessen Sie nicht, diese ebenfalls zu aktivieren:
Device Drivers --->
HID support --->
-*- HID bus support
<*> Generic HID driver
[*] Battery level reporting for HID devices
USB HID support --->
<*> USB HID transport layer
[*] USB support --->
<*> xHCI HCD (USB 3.0) support
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD (USB 1.1) support
<*> Unified support for USB4 and Thunderbolt --->
Optional: Signed kernel modules
To automatically sign the kernel modules enable CONFIG_MODULE_SIG_ALL:
[*] Enable loadable module support
-*- Module signature verification
[*] Automatically sign all modules
Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
Optionally change the hash algorithm if desired.
To enforce that all modules are signed with a valid signature, enable CONFIG_MODULE_SIG_FORCE as well:
[*] Enable loadable module support
-*- Module signature verification
[*] Require modules to be validly signed
[*] Automatically sign all modules
Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
To use a custom key, specify the location of this key in CONFIG_MODULE_SIG_KEY, if unspecified the kernel build system will generate a key. It is recommended to generate one manually instead. This can be done with:
root #
openssl req -new -nodes -utf8 -sha256 -x509 -outform PEM -out kernel_key.pem -keyout kernel_key.pem
OpenSSL will ask some questions about the user generating the key, it is recommended to fill in these questions as detailed as possible.
Store the key in a safe location, at the very least the key should be readable only by the root user. Verify this with:
root #
ls -l kernel_key.pem
-r-------- 1 root root 3164 Jan 4 10:38 kernel_key.pem
If this outputs anything other then the above, correct the permissions with:
root #
chown root:root kernel_key.pem
root #
chmod 400 kernel_key.pem
-*- Cryptographic API --->
Certificates for signature checking --->
(/path/to/kernel_key.pem) File name or PKCS#11 URI of module signing key
To also sign external kernel modules installed by other packages via linux-mod-r1.eclass
, enable the modules-sign USE flag globally:
USE="modules-sign"
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, when using custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate
MODULES_SIGN_HASH="sha512" # Defaults to sha512
The MODULES_SIGN_KEY and MODULES_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
Optional: Signing the kernel image (Secure Boot)
When signing the kernel image (for use on systems with Secure Boot enabled) it is recommended to set the following kernel config options:
General setup --->
Kexec and crash features --->
[*] Enable kexec system call
[*] Enable kexec file based system call
[*] Verify kernel signature during kexec_file_load() syscall
[*] Require a valid signature in kexec_file_load() syscall
[*] Enable ""image"" signature verification support
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[*] Enable loadable module support
-*- Module signature verification
[*] Require modules to be validly signed
[*] Automatically sign all modules
Which hash algorithm should modules be signed with? (Sign modules with SHA-512) --->
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
Security options --->
[*] Integrity subsystem
[*] Basic module for enforcing kernel lockdown
[*] Enable lockdown LSM early in init
Kernel default lockdown mode (Integrity) --->
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
[*] Digital signature verification using multiple keyrings
[*] Enable asymmetric keys support
-*- Require all keys on the integrity keyrings be signed
[*] Provide keyring for platform/firmware trusted keys
[*] Provide a keyring to which Machine Owner Keys may be added
[ ] Enforce Machine Keyring CA Restrictions
Where ""image"" is a placeholder for the architecture specific image name. These options, from the top to the bottom: enforces that the kernel image in a kexec call must be signed (kexec allows replacing the kernel in-place), enforces that kernel modules are signed, enables lockdown integrity mode (prevents modifying the kernel at runtime), and enables various keychains.
On arches that do not natively support decompressing the kernel (e.g. arm64 and riscv), the kernel must be built with its own decompressor (zboot):
Device Drivers --->
Firmware Drivers --->
EFI (Extensible Firmware Interface) Support --->
[*] Enable the generic EFI decompressor
After compilation of the kernel, as explained in the next section, the kernel image must be signed. First install app-crypt/sbsigntools and then sign the kernel image:
root #
emerge --ask app-crypt/sbsigntools
root #
sbsign /usr/src/linux-x.y.z/path/to/kernel-image --cert /path/to/kernel_key.pem --key /path/to/kernel_key.pem --out /usr/src/linux-x.y.z/path/to/kernel-image
For this example the same key that was generated to sign the modules is used to sign the kernel image. It is also possible to generate and use a second sperate key for signing the kernel image. The same OpenSSL command as in the previous section may be used again.
Then proceed with the installation.
To automatically sign EFI executables installed by other packages, enable the secureboot USE flag globally:
USE="modules-sign secureboot"
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to use custom signing keys.
MODULES_SIGN_KEY="/path/to/kernel_key.pem"
MODULES_SIGN_CERT="/path/to/kernel_key.pem" # Only required if the MODULES_SIGN_KEY does not also contain the certificate.
MODULES_SIGN_HASH="sha512" # Defaults to sha512
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
# Optionally, to boot with secureboot enabled, may be the same or different signing key.
SECUREBOOT_SIGN_KEY="/path/to/kernel_key.pem"
SECUREBOOT_SIGN_CERT="/path/to/kernel_key.pem"
The SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT may be different files. For this example the pem file generated by OpenSSL includes both the key and the accompanying certificate, and thus both variables are set to the same value.
When generating an Unified Kernel Image with systemd's
ukify
the kernel image will be signed automatically before inclusion in the unified kernel image and it is not necessary to sign it manually.
Überprüfen Sie bei x86 Architekturen, dass die 64-bit kernel Option auf unset/deactivated steht (CONFIG_64BIT=N), und markieren Sie die Prozessor-Familie der CPU(s) Ihres Systems.
Die Prozessor-Familie kann anhand der Ausgabe der folgenden 2 Befehle ermittelt werden:
user $
cat /proc/cpuinfo | grep -i vendor | uniq
user $
cat /proc/cpuinfo | grep -i 'model name' | uniq
[ ] 64-bit kernel
Processor type and features --->
Processor family (Core 2/newer Xeon) --->
( ) 486
( ) 586/K5/5x86/6x86/6x86MX
( ) Pentium-Classic
( ) Pentium-MMX
( ) Pentium-Pro
( ) Pentium-II/Celeron(pre-Coppermine)
( ) Pentium-III/Celeron(Coppermine)/Pentium-III Xeon
( ) Pentium M
( ) Pentium-4/Celeron(P4-based)/Pentium-4 M/Xeon
( ) K6/K6-II/K6-III
( ) Athlon/Duron/K7
( ) Opteron/Athlon64/Hammer/K8
( ) Crusoe
( ) Efficeon
( ) Winchip-C6
( ) Winchip-2/Winchip-2A/Winchip-3
( ) AMD Elan
( ) GeodeGX1
( ) Geode GX/LX
( ) CyrixIII/VIA-C3
( ) VIA C3-2 (Nehemiah)
( ) VIA C7
(*) Core 2/newer Xeon
( ) Intel Atom
Kompilieren und Installieren
Nach Fertigstellung der Konfiguration ist es nun an der Zeit, den Kernel zu kompilieren und zu installieren. Schließen Sie die Konfiguration und starten Sie den Kompiliervorgang:
root #
make && make modules_install
Es ist möglich, parallele Builds durch make -jX zu aktivieren, wobei
X
eine Ganzzahl ist und die Anzahl der Tasks angibt, die der Build-Prozess parallel starten darf. Dies ist ähnlich wie die Variable MAKEOPTS in der Anleitung zu /etc/portage/make.conf.Wenn der Kernel fertig kompiliert ist, sollten Sie das Kernel-Abbild nach /boot/ kopieren. Dies erfolgt durch den Befehl make install:
root #
make install
Dies kopiert das Kernel-Abbild zusammen mit der Datei System.map und der Kernel-Konfigurationsdatei nach /boot/.
Alternative: Genkernel
In case it was missed, this section requires the kernel sources to be installed. Be sure to obtain the relevant kernel sources, then return here for the rest of section.
Genkernel should only be considered by users that have a required need that only Genkernel can meet, otherwise it is recommended to use the Distribution kernel or manually compile your own as it will make maintaining a Gentoo system a lot more simple. An example of why genkernel is more difficult to manage is the lack of integration with sys-kernel/installkernel. This means a user will not get the same level of automation as provided by the other methods, such as Unified Kernel Images will need to be created manually when using Genkernel.
Genkernel stellt eine generische Kernel-Konfigurationsdatei bereit, 'gen'eriert automatisch den 'kernel', initramfs und die zugehörigen Module und installiert dann die resultierenden Binärdateien an den entsprechenden Stellen. Dies führt zu einer minimalen und generischen Hardwareunterstützung für den ersten Systemstart und ermöglicht eine zusätzliche Aktualisierungskontrolle und Anpassung der Kernelkonfiguration in der Zukunft.
Seien Sie informiert: Während die Verwendung von genkernel zur Wartung des Kernels Systemadministratoren mehr Kontrolle über die Aktualisierung des Systemkerns, initramfs und anderer Optionen bietet, erfordert es Zeit und Aufwand, um zukünftige Kernel-Updates durchzuführen, wenn neue Quellen veröffentlicht werden. Diejenigen, die einen hands-off-Ansatz für die Kernelwartung suchen, sollten einen Distributionskernel verwenden.
Es ist ein Missverständnis zu glauben, dass genkernel automatisch eine maßgeschneiderte Kernelkonfiguration für die Hardware, auf der es ausgeführt wird, generiert. genkernel verwendet eine vordefinierte Kernelkonfiguration, die die meiste Hardware unterstützt und automatisch die make-Befehle verarbeitet, die für die Zusammenstellung und Installation des Kernels, der zugehörigen Module und der initramfs-Datei erforderlich sind.
Lizenzgruppe für binär weiterverteilbare Software
Wenn das Paket linux-firmware bereits installiert wurde, fahren Sie mit dem Abschnitt Installation fort.
Da das firmware
USE-Flag standardmäßig für das Paket sys-kernel/genkernel aktiviert ist, wird der Paketmanager versuchen, auch das Paket sys-kernel/linux-firmware zu installieren. Die Binary-Redistributable-Lizenzen für die Software müssen akzeptiert werden, bevor die Linux-Firmware installiert werden kann.
Diese Lizenzgruppe kann systemweit für jedes Paket akzeptiert werden, indem @BINARY-REDISTRIBUTABLE
als ACCEPT_LICENSE Wert in der /etc/portage/make.conf Datei hinzugefügt wird. Sie kann exklusiv für das linux-firmware-Paket akzeptiert werden, indem eine spezifische Einbeziehung über eine /etc/portage/package.license-Datei hinzugefügt wird.
Lesen Sie gegebenenfalls den Abschnitt Methoden Softwarelizenzen zu akzeptieren im Kapitel Installation des Basissystems des Handbuchs, und nehmen Sie dann einige für akzeptable Softwarelizenzen vor.
Wenn Sie sich in einer Analyse-Paralyse befinden, hilft Ihnen das Folgende:
root #
mkdir /etc/portage/package.license
sys-kernel/linux-firmware @BINARY-REDISTRIBUTABLE
Installation
Abgesehen von den Erklärungen und Voraussetzungen, installieren Sie das Paket sys-kernel/genkernel:
root #
emerge --ask sys-kernel/genkernel
Erstellung
Kompilieren Sie die Kernelquellen, indem Sie genkernel ausführen. Da genkernel einen Kernel kompiliert, der eine breite Palette von Hardware für verschiedene Computerarchitekturen unterstützt, kann diese Kompilierung eine ganze Weile dauern.
Wenn die Wurzelpartition/das Wurzel-Volume ein anderes Dateisystem als ext4 verwendet, kann es notwendig sein, den Kernel mit genkernel --menuconfig all manuell zu konfigurieren, um die eingebaute Kernel-Unterstützung für das/die bestimmte(n) Dateisystem(e) hinzuzufügen (d.h. das Dateisystem nicht als Modul zu bauen).
Benutzer von LVM2 sollten
--lvm
als Argument zum unten stehenden Befehl genkernel hinzufügen.root #
genkernel --mountboot --install all
Sobald genkernel abgeschlossen ist, werden ein Kernel und ein initial ram filesystem (initramfs) erzeugt und in das Verzeichnis /boot installiert. Die zugehörigen Module werden in das Verzeichnis /lib/modules installiert. Das initramfs wird sofort nach dem Laden des Kernels gestartet, um eine automatische Hardware-Erkennung durchzuführen (genau wie in den Live-Disk-Image-Umgebungen).
root #
ls /boot/vmlinu* /boot/initramfs*
root #
ls /lib/modules
Kernel installation
Installkernel
Installkernel may be used to automate, the kernel installation, initramfs generation, unified kernel image generation and/or bootloader configuration among other things. sys-kernel/installkernel implements two paths of achieving this: the traditional installkernel originating from Debian and systemd's kernel-install. Which one to choose depends, among other things, on the system's bootloader. By default systemd's kernel-install is used on systemd profiles, while the traditional installkernel is the default for other profiles.
If unsure, follow the 'Traditional layout' subsection below.
systemd-boot
When using systemd-boot (formerly gummiboot) as the bootloader, systemd's kernel-install must be used. Therefore ensure the systemd and the systemd-boot USE flags are enabled on sys-kernel/installkernel, and then install the relevant package for systemd-boot.
On OpenRC systems:
sys-apps/systemd-utils boot kernel-install
sys-kernel/installkernel systemd systemd-boot
root #
emerge --ask sys-apps/systemd-utils
On systemd systems:
sys-apps/systemd boot
sys-kernel/installkernel systemd-boot
root #
emerge --ask sys-apps/systemd
GRUB
Users of GRUB can use either systemd's kernel-install or the traditional Debian installkernel. The systemd USE flag switches between these implementations. To automatically run grub-mkconfig when installing the kernel, enable the grub USE flag.
sys-kernel/installkernel grub
root #
emerge --ask sys-kernel/installkernel
Traditional layout, other bootloaders (e.g. lilo, etc.)
The traditional /boot layout (for e.g. LILO, etc.) is used by default if the grub, systemd-boot and uki USE flags are not enabled. No further action is required.
Building an initramfs
In certain cases it is necessary to build an initramfs - an initial ram-based file system. The most common reason is when important file system locations (like /usr/ or /var/) are on separate partitions. With an initramfs, these partitions can be mounted using the tools available inside the initramfs. The default configuration of the Project:Distribution Kernel requires an initramfs.
Without an initramfs, there is a risk that the system will not boot properly as the tools that are responsible for mounting the file systems require information that resides on unmounted file systems. An initramfs will pull in the necessary files into an archive which is used right after the kernel boots, but before the control is handed over to the init tool. Scripts on the initramfs will then make sure that the partitions are properly mounted before the system continues booting.
If using genkernel, it should be used for both building the kernel and the initramfs. When using genkernel only for generating an initramfs, it is crucial to pass
--kernel-config=/path/to/kernel.config
to genkernel or the generated initramfs may not work with a manually built kernel. Note that manually built kernels go beyond the scope of support for the handbook. See the kernel configuration article for more information.Installkernel can automatically generate an initramfs when installing the kernel if the dracut USE flag is enabled:
sys-kernel/installkernel dracut
Alternatively, dracut may be called manually to generate an initramfs. Install sys-kernel/dracut first, then have it generate an initramfs:
root #
emerge --ask sys-kernel/dracut
root #
dracut --kver=6.6.21-gentoo
The initramfs will be stored in /boot/. The resulting file can be found by simply listing the files starting with initramfs:
root #
ls /boot/initramfs*
Optional: Building an Unified Kernel Image
An Unified Kernel Image (UKI) combines, among other things, the kernel, the initramfs and the kernel command line into a single executable. Since the kernel command line is embedded into the unified kernel image it should be specified before generating the unified kernel image (see below). Note that any kernel command line arguments supplied by the bootloader or firmware at boot are ignored when booting with secure boot enabled.
An unified kernel image requires a stub loader, currently the only one available is systemd-stub. To enable it:
For systemd systems:
sys-apps/systemd boot
For OpenRC systems:
sys-apps/systemd-utils boot kernel-install
Installkernel can automatically generate an unified kernel image using either dracut or ukify, by enabling the respective flag. The uki USE flag should be enabled as well to install the generated unified kernel image to the $ESP/EFI/Linux directory on the EFI system partition (ESP).
For dracut:
sys-kernel/installkernel dracut uki
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"
For ukify:
sys-apps/systemd ukify # For systemd systems
sys-apps/systemd-utils ukify # For OpenRC systems
sys-kernel/installkernel dracut ukify uki
some-kernel-command-line-arguments
Note that while dracut can generate both an initramfs and an unified kernel image, ukify can only generate the latter and therefore the initramfs must be generated separately with dracut.
Generic Unified Kernel Image
The prebuilt sys-kernel/gentoo-kernel-bin can optionally install a prebuilt generic unified kernel image containing a generic initramfs that is able to boot most systemd based systems. It can be installed by enabling the generic-uki USE flag, and configuring installkernel to not generate a custom initramfs or unified kernel image:
sys-kernel/gentoo-kernel-bin generic-uki
sys-kernel/installkernel -dracut -ukify uki
Secure Boot
The generic Unified Kernel Image optionally distributed by sys-kernel/gentoo-kernel-bin is already pre-signed. How to sign a locally generated unified kernel image depends on whether dracut or ukify is used. Note that the location of the key and certificate should be the same as the SECUREBOOT_SIGN_KEY and SECUREBOOT_SIGN_CERT as specified in /etc/portage/make.conf.
For dracut:
uefi="yes"
kernel_cmdline="some-kernel-command-line-arguments"
uefi_secureboot_key="/path/to/kernel_key.pem"
uefi_secureboot_cert="/path/to/kernel_key.pem"
For ukify:
[UKI]
SecureBootPrivateKey=/path/to/kernel_key.pem
SecureBootCertificate=/path/to/kernel_key.pem
Rebuilding external kernel modules
External kernel modules installed by other packages via linux-mod-r1.eclass
must be rebuilt for each new kernel version. When the distribution kernels are used this may be automated by enabling the dist-kernel flag globally.
*/* dist-kernel
External kernel modules may also be rebuilt manually with:
root #
emerge --ask @module-rebuild
Kernel-Module
Auflistung der verfügbaren Kernelmodule
Hardware-Module manuell aufzulisten ist optional. In den meisten Fällen werden alle Hardwaremodule, die als angeschlossen erkannt werden, von udev geladen. Es ist jedoch nicht schädlich, wenn Module, die automatisch geladen werden, aufgelistet werden. Module können nicht zweimal geladen werden; sie werden entweder geladen oder nicht geladen. Manchmal benötigt exotische Hardware Hilfe, um ihre Treiber zu laden.
Die Module, die bei jedem Bootvorgang geladen werden müssen, können in die Dateien /etc/modules-load.d/*.conf im Format eines Moduls pro Zeile eingetragen werden. Wenn zusätzliche Optionen für die Module benötigt werden, sollten diese stattdessen in /etc/modprobe.d/*.conf-Dateien gesetzt werden.
Um alle Module anzuzeigen, die für eine bestimmte Kernelversion verfügbar sind, geben Sie den folgenden Befehl find ein. Vergessen Sie nicht, "<Kernelversion>" durch die entsprechende Version des zu durchsuchenden Kernels zu ersetzen:
root #
find /lib/modules/<Kernelversion>/ -type f -iname '*.o' -or -iname '*.ko' | less
Erzwingung des Ladens bestimmter Kernelmodule
Um den Kernel zu zwingen, das Modul 3c59x.ko (den Treiber für eine bestimmte 3Com-Netzwerkkartenfamilie) zu laden, bearbeiten Sie die Datei /etc/modules-load.d/network.conf und geben Sie den Modulnamen darin in.
root #
mkdir -p /etc/modules-load.d
root #
nano -w /etc/modules-load.d/network.conf
Beachten Sie, dass das Dateisuffix .ko des Moduls für den Lademechanismus unbedeutend ist und in der Konfigurationsdatei weggelassen wird:
3c59x
Setzen Sie die Installation mit der Konfiguration des Systems fort.
Dateisystem-Information
Dateisystem Labels und UUIDs
Unabhängig davon, ob Sie MBR (BIOS) oder GPT Partitionstabellen verwenden, können Sie Dateisystem Labels und Dateisystem UUIDs nutzen. Diese Attribute können in /etc/fstab als Alternative zu den bisherigen Block-Gerätedateien (/dev/sd*) angegeben werden. Das Kommando blkid zeigt Ihnen die LABELs und UUIDs der Dateisysteme auf Ihrem System an. In der Datei /etc/fstab geben Sie diese mit dem Prefix "LABEL=" bzw. "UUID=" an. Anführungszeichen werden - im Gegensatz zu der Ausgabe von blkid - nicht verwendet.
root #
blkid
Wenn ein Dateisystem innerhalb einer Partition neu erstellt oder gelöscht wird, ändern sich die Dateisystem Labels und UUIDs - oder sie verschwinden ganz.
Um die Eindeutigkeit zu gewährleisten, sollten Anwender, die eine MBR Partitionstabelle verwenden, besser Dateisystem UUIDs als Dateisystem Labels in /etc/fstab verwenden.
UUIDs des Dateisystems auf einem LVM volume und von LVM Snapshots von diesem sind identisch. Deshalb sollten keine UUIDs zum Mounten von LVM volumes verwendet werden.
Partitionslabel und UUIDs
Anwender, die eine GPT Partitionstabelle verwenden, haben eine 'robustere' Möglichkeit, um Partitionen in /etc/fstab anzugeben: Partition Labels und Partition UUIDs. Diese kennzeichnen Partitionen selbst, unabhängig von deren Inhalt oder dem Dateisystem, das dort angelegt ist. Sie ändern sich deshalb auch nicht, wenn der Inhalt der Partition gelöscht wird oder ein neues Dateisystem erstellt wird. Das Kommando blkid zeigt Ihnen die PARTLABELs und PARTUUIDs der Partitionen auf Ihrem System an. In der Datei /etc/fstab geben Sie diese mit dem Prefix "PARTLABEL=" bzw. "PARTUUID=" an. Anführungszeichen werden - im Gegensatz zu der Ausgabe von blkid - nicht verwendet.
Output for an amd64 EFI system using the Discoverable Partition Specification UUIDs may like the following:
root #
blkid
Der Name eines Block-Geräts hängt von mehreren Faktoren ab, u.a. von der Reihenfolge, in der der Kernel die Block-Geräte im frühen Boot-Prozess erkennt. Bei Systemen, die häufig gebootet werden und bei denen regelmäßig SATA Block-Geräte entfernt oder hinzugefügt werden, können sich die Namen der Block-Geräte nach einem Neustart ändern. Es ist deshalb riskant, die älteren Block-Gerätedateien (/dev/sd*N) zur Angabe von Partitionen in fstab zu verwenden. Wenn Sie stattdessen Partition UUIDs verwenden, ist garantiert, dass Linux das gewünschte Dateisystem verwendet - selbst wenn das Dateisystem später geändert wird.
Nichtsdestotrotz ist die Verwendung der hergebrachten Block-Gerätedateien eine einfache, geradlinige und für die meisten Anwender sinnvolle Methode. Wenn Sie einen komplexen Server mit vielen Festplatten haben oder wenn Sie die Hardware ihres Systems häufiger ändern werden, sollten Sie über die Verwendung von Partition UUIDs nachdenken.
Über fstab
Unter Linux müssen alle Partitionen, die im System genutzt werden, in /etc/fstab aufgelistet werden. Diese Datei beinhaltet die Mountpunkte ("Einhängepunkte") dieser Partitionen (wo sie im Dateisystem erscheinen), wie sie eingehängt werden sollen und mit welchen speziellen Optionen sie eingehängt werden sollen (automatisch einhängen oder nicht, dürfen Benutzer sie einhängen oder nicht, etc.)
Die fstab-Datei erstellen
If the init system being used is systemd, the partition UUIDs conform to the Discoverable Partition Specification as given in Preparing the disks, and the system uses UEFI, then creating an fstab can be skipped, since systemd auto-mounts partitions that follow the spec.
Die Datei /etc/fstab verwendet eine tabellenartige Syntax. Jede Zeile besteht aus sechs Feldern, die jeweils durch Leerräume (Leerzeichen, Tabulatoren oder beides gemischt) getrennt sind. Jedes Feld hat seine eigene Bedeutung:
- Das erste Feld enthält eine Block-Gerätedatei oder ein Remote-Dateisystem, die/das eingehängt werden soll. Block-Gerätedateien können über mehrere verschiedene Arten angegeben werden: u.a. über den Dateinamen des Gerätedatei, über Dateisystem Labels und UUIDs oder über Partition Labels und UUIDs.
- Das zweite Feld definiert den Einhängepunkt, an dem die Partition eingehängt werden soll.
- Das dritte Feld enthält den Typ des Dateisystem (ext2, etxt3, ...)
- Im vierten Feld stehen die Einhänge-Optionen, die von mount genutzt werden, wenn es die Partition eingehängt. Da jedes Dateisystem seine eigenen Optionen hat, empfiehlt sich ein Blick in die Manpage (man mount), wo sich eine vollständige Liste findet. Mehrere Einhänge-Optionen werden mit Kommata getrennt.
- Das fünfte Feld wird von dump verwendet, um herauszufinden ob die Partition in einem Dump-Backup berücksichtigt werden soll. Dieser Eintrag kann üblicherweise auf
0
(null) belassen werden. - Das sechste Feld wird von fsck verwendet, um die Reihenfolge festzulegen, in der Dateisysteme nach einem unsauberen Neustart überprüft werden. Für das Wurzeldateisystem (/) sollte hier
1
stehen, für alle anderen Dateisysteme2
(oder0
, wenn eine Dateisystemprüfung nicht nötig ist.)
Die bei der Installation von Gentoo Linux installierte Datei /etc/fstab ist keine gültige fstab-Datei, sondern eine Vorlage, die von Ihnen ausgefüllt werden muss.
root #
nano /etc/fstab
DOS/Legacy BIOS systems
Schauen wir uns an, wie man die /boot/-Partition in fstab konfigurieren würde. Das folgende Beispiel sollte so angepasst werden, dass es zu der gewählten Partitionierung Ihres Systems passt. Bei der in unserem x86 Handbuch gewählten Partitionierung ist /boot/ die /dev/sda1 Partition, mit einem xfs Dateisystem. Das Dateisystem soll beim Booten überprüft werden. Es ergibt sich:
# Bitte passen Sie Formatierungs-Unterschiede vom Schritt "Vorbereiten der Festplatten" an
/dev/sda1 /boot ext4 defaults 0 2
Einige Anwender möchten aus Sicherheitsgründen nicht, dass ihre /boot/ Partition automatisch eingehängt wird. Diese Anwender können defaults durch noauto ersetzen. Dies bedeutet aber auch, dass diese Anwender die Partition jedes Mal von Hand einhängen müssen, wenn Sie sie nutzen wollen.
Fügen Sie weitere Zeilen hinzu, so dass alle gewünschten Dateisysteme eingehängt werden. Wenn Sie ein CD-ROM Laufwerk haben, fügen Sie auch eine Regel hierfür hinzu.
Hier ist ein Beispiel für eine vollständige /etc/fstab Datei:
Bitte passen Sie Formatierungs-Unterschiede und zusätzliche Partitionen vom Schritt "Vorbereiten der Festplatten" an
/dev/sda1 /boot ext4 defaults 0 2
/dev/sda2 none swap sw 0 0
/dev/sda3 / xfs defaults,noatime 0 1
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
Bitte passen Sie Formatierungs-Unterschiede vom Schritt "Vorbereiten der Festplatten" an
/dev/cdrom /mnt/cdrom auto noauto,user 0 0 }}
UEFI systems
Below is an example of an /etc/fstab file for a system that will boot via UEFI firmware:
# Adjust for any formatting differences and/or additional partitions created from the "Preparing the disks" step
/dev/sda1 /efi vfat umask=0077 0 2
/dev/sda2 none sw 0 0
/dev/sda3 / xfs defaults,noatime 0 1
</div>
<div lang="en" dir="ltr" class="mw-content-ltr">
/dev/cdrom /mnt/cdrom auto noauto,user 0 0
DPS UEFI PARTUUID
Below is an example of an /etc/fstab file for a disk formatted with a GPT disklabel and Discoverable Partition Specification (DPS) UUIDs set for UEFI firmware:
# Adjust any formatting difference and additional partitions created from the "Preparing the disks" step.
# This example shows a GPT disklabel with Discoverable Partition Specification (DSP) UUID set:
PARTUUID=c12a7328-f81f-11d2-ba4b-00a0c93ec93b /efi vfat umask=0077 0 2
PARTUUID=0657fd6d-a4ab-43c4-84e5-0933c84b4f4f none sw 0 0
PARTUUID=44479540-f297-41b2-9af7-d131d5f0458a / xfs defaults,noatime 0 1
When auto
im dritten Feld verwendet wird, "rät" mount den Typ des Dateisystems beim Einhängen. Dies wird empfohlen für Wechselmedien, da sie unterschiedliche Typen von Dateisystemen haben können. Die Option user
im vierten Feld ermöglicht es nicht-root Usern, CDs einzuhängen.
To improve performance, most users would want to add the noatime
mount option, which results in a faster system since access times are not registered (those are not needed generally anyway). This is also recommended for systems with solid state drives (SSDs). Users may wish to consider lazytime
instead.
Es wird nicht empfohlen, die Mount-Option
discard
in /etc/fstab zu verwenden - weil es die Performance verringern kann. Stattdessen ist es besser, regelmäßig Block-Discards auszuführen. Dies kann über einen Job Scheduler wie cron oder mit einem Timer (systemd) erfolgen. Weitere Informationen finden Sie in dem Abschnitt Periodische fstrim Jobs.Überprüfen Sie die Datei /etc/fstab noch einmal, speichern Sie sie und verlassen Sie den Editor.
Netzwerk-Konfiguration
Es ist wichtig zu beachten, dass die folgenden Abschnitte dem Leser helfen sollen, sein System schnell für die Teilnahme an einem lokalen Netzwerk einzurichten.
Für Systeme, auf denen OpenRC läuft, ist eine detailliertere Referenz für die Netzwerkeinrichtung im Abschnitt Erweiterte Netzwerkkonfiguration verfügbar, der gegen Ende des Handbuchs behandelt wird. Systeme mit spezielleren Netzwerkanforderungen müssen eventuell den Abschnitt überspringen und dann hierher zurückkehren, um mit dem Rest der Installation fortzufahren.
Für spezifischere Systemd-Netzwerkeinstellungen lesen Sie bitte den Netzwerkteil des systemd-Artikels.
Hostname
Eine der Entscheidungen, die System-Administratoren treffen müssen, ist der Name ihres PCs. Auf den ersten Blick scheint dies einfach zu sein, aber viele Benutzer haben Schwierigkeiten, einen passenden Namen für den hostname zu finden. Um diesen Prozess zu beschleunigen, sei darauf hingewiesen, dass der Name später wieder geändert werden kann. In den folgenden Beispielen wird der Hostname tux verwendet.
Setzen des Hostnamens (OpenRC oder systemd)
root #
echo tux > /etc/hostname
systemd
Um den System-Hostnamen für ein System, auf dem systemd läuft, zu setzen, kann das Dienstprogramm hostnamectl verwendet werden.
Um den Hostname auf "tux" zu setzen, würde man ausführen:
root #
hostnamectl hostname tux
Hilfe erhält man durch Ausführung von hostnamectl --help oder man 1 hostnamectl.
Netzwerk
Es gibt viele verschiedene Alternativen, mit denen das Netzwerk konfiguriert werden kann. Dieser Abschnitt behandelt nur ein paar davon. Wählen Sie die Methode, die am besten zu Ihren Anforderungen passt.
DHCP mit dhcpcd (bei allen Init-Systemen)
In den meisten LAN Netzen läuft ein DHCP Server. Wenn dies der Fall ist, wird empfohlen, das Programm dhcpcd zu verwenden, um eine IP-Adresse zu erhalten.
Zur Installation:
root #
emerge --ask net-misc/dhcpcd
Um den Service auf OpenRC Systemen zu aktivieren und danach zu starten:
root #
rc-update add dhcpcd default
root #
rc-service dhcpcd start
Um den Service auf systemd Systemen zu aktivieren und danach zu starten:
root #
systemctl enable --now dhcpcd
Nachdem diese Schritte durchgeführt wurden, sollte dhcpcd beim nächsten Systemstart eine IP Adresse vom DHCP Server erhalten. Weitere Details finden Sie im Dhcpcd Artikel.
netifrc (OpenRC)
Dieser Abschnitt beschreibt eine Netzwerk-Konfiguration mit Netifrc unter OpenRC. Für einfache Anschaltungen kann auch Dhcpcd verwendet werden.
Konfigurieren des Netzwerks
Bereits zu Beginn der Installation von Gentoo Linux wurde das Netzwerk konfiguriert. Diese Konfiguration betraf jedoch das Netzwerk der Live-Umgebung - und nicht das Netzwerk des neu installierten Systems. Wir werden jetzt die Netzwerk-Konfiguration für Ihr neu installiertes Linux-System erstellen.
Weitere Informationen über Netzwerke, insbesondere auch über fortgeschrittene Themen wie Bonding, Bridges, 802.1Q VLANs oder WLAN, finden Sie in dem Abschnitt Fortgeschrittene Netzwerk-Konfiguration.
Die Netzwerk-Konfiguration wird gespeichert in /etc/conf.d/net. Die Syntax ist unkompliziert, aber vielleicht etwas un-intuitiv. Aber keine Angst - wir werden alles erklären. Ein gut dokumentiertes Beispiel mit mehreren verschiedenen Konfigurationen finden Sie unter /usr/share/doc/netifrc-*/net.example.bz2.
Installieren Sie zuerst das Paket net-misc/netifrc:
root #
emerge --ask --noreplace net-misc/netifrc
Standardmäßig wird DHCP verwendet. Damit DHCP funktioniert, muss ein DHCP-Client installiert werden. Dies wird später im Abschnitt "Installation von erforderlichen System-Tools" beschrieben.
Wenn Sie kein DHCP verwenden wollen (statische IP-Adressen) oder wenn Sie spezielle DHCP-Optionen benötigen, dann editieren Sie jetzt die Datei /etc/conf.d/net:
root #
nano /etc/conf.d/net
Definieren Sie IP-Adresse und Routing in den beiden Variablen config_eth0 und routes_eth0.
Wir gehen davon aus, dass das Netzwerk-Interface "eth0" heißt. Bei Ihnen heißt das Netzwerk-Interface möglicherweise anders. Verwenden Sie im Folgenden statt "eth0" immer den Namen Ihres Netzwerk-Interfaces. Der Name des Netzwerk-Interfaces hängt ab vom gebooteten System und den Kernel-Optionen. Da Sie noch nicht von dem neu installierten System gebootet haben, können Sie den Namen des Netzwerk-Interfaces noch nicht wissen. Wenn das Installationsmedium aktuell ist, ist die Wahrscheinlichkeit hoch, dass das Netzwerk-Interface genauso heißen wird, wie in Ihrem jetzigen System, das von dem Installationsmedium gebootet wurde. Weitere Informationen finden Sie im Abschnitt Benennung von Netzwerkschnittstellen.
config_eth0="192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255"
routes_eth0="default via 192.168.0.1"
Um DHCP zu verwenden, setzen Sie config_eth0:
config_eth0="dhcp"
Eine Liste zusätzlicher Konfigurations-Optionen finden Sie in /usr/share/doc/netifrc-*/net.example.bz2. Bitte lesen Sie auch die DHCP-Client man page, wenn besondere DHCP-Optionen gesetzt werden müssen.
Wenn das System mehrere Netzwerk-Interfaces hat, wiederholen Sie bitte die oben beschriebenen Schritte für alle Netzwerk-Interfaces (config_eth1, config_eth2 usw.) - falls diese Interfaces beim Booten initialisiert und aktiviert werden sollen.
Speichern Sie die Konfigurations-Datei und verlassen Sie den Editor.
Automatischer Start der Netzwerk-Interfaces beim Booten
Damit die Netzwerk-Interfaces beim Booten konfiguriert und aktiviert werden, müssen sie zum Runlevel 'default' hinzugefügt werden.
root #
cd /etc/init.d
root #
ln -s net.lo net.eth0
root #
rc-update add net.eth0 default
Wenn Ihr System mehrere Netzwerk-Interfaces hat, muss der vorherige Schritt für alle Netzwerk-Interfaces, die beim Booten konfiguriert und aktiviert werden sollen, wiederholt werden.
Wenn sich nach dem Booten herausstellen sollte, dass der gewählte Name für das Netzwerk-Interface verkehrt ist, führen Sie die folgenden Schritte aus, um das Problem zu beheben:
- Editieren Sie die Datei /etc/conf.d/net und ersetzen Sie den verkehrten Interface-Namen durch den korrekten Namen (beispielsweise
enp3s0
oderenp5s0
statteth0
). - Erstellen Sie den korrekten symbolischen Link (beispielsweise /etc/init.d/net.enp3s0).
- Entfernen Sie den alten (fehlerhaften) Link (rm /etc/init.d/net.eth0).
- Fügen Sie das neue Interface zum Runlevel 'default' hinzu
- Entfernen Sie das alte Interface vom Runlevel 'default': rc-update del net.eth0 default.
Die hosts Datei
Bitte editieren Sie die Datei /etc/hosts. Diese Datei muss auf jeden Fall einen korrekten Eintrag zu localhost enthalten. Weiterhin können Sie IP-Adressen und Hostnamen von wichtigen Hosts in ihrem eigenen Netzwerk eintragen. Letzteres ist jedoch nur notwendig, wenn Ihr Nameserver diese Informationen nicht liefern kann, wenn Sie gar keinen Nameserver verwenden, oder wenn Sie eine Namensauflösung für die Zeiten benötigen, in denen der Nameserver nicht verfügbar ist (z.B. beim Booten oder bei Netzstörungen).
root #
nano /etc/hosts
# This defines the current system and must be set
127.0.0.1 tux.homenetwork tux localhost
# Optional definition of extra systems on the network
192.168.0.5 jenny.homenetwork jenny
192.168.0.6 benny.homenetwork benny
Speichern Sie die Datei und beenden Sie den Editor.
Optional: PCMCIA zum Laufen bekommen
x86 Systeme, die PCMCIA-Unterstützung benötigen, sollten nun das Paket sys-apps/pcmciautils installieren.
root #
emerge --ask sys-apps/pcmciautils
System-Konfiguration
Root Passwort
Setzen Sie das root-Passwort mit dem passwd Kommando:
root #
passwd
Später werden wir einen gewöhnlichen User mit eingeschränkten Rechten anlegen, unter dem Sie alle normalen täglichen Arbeiten verrichten können.
Init- and Boot-Konfiguration
OpenRC
Wenn Gentoo mit OpenRC verwendet wird, werden die Dienste, die beim Booten oder Herunterfahren des Systems gestartet bzw. gestoppt werden, in der Datei /etc/rc.conf konfiguriert. Öffnen Sie diese Datei mit einem Editor, und erfreuen Sie sich an den vielen Kommentaren in der Datei. Überprüfen Sie alle Einstellungen und ändern Sie sie, falls gewünscht oder erforderlich.
root #
nano /etc/rc.conf
Editieren Sie als nächstes die Datei /etc/conf.d/keymaps und konfigurieren Sie Ihre Tastatur.
root #
nano /etc/conf.d/keymaps
Seien Sie vorsichtig bei der keymap Variable. Wenn Sie die falsche Tastatur konfigurieren, erhalten Sie merkwürdige Ergebnisse, wenn sie Texte auf der Tastatur tippen.
Editieren Sie zum Schluss die Datei /etc/conf.d/hwclock und konfigurieren Sie Ihre Hardware-Uhr.
root #
nano /etc/conf.d/hwclock
Wenn die Hardware-Uhr nicht unter der Zeitzone UTC laufen soll, sollten Sie clock="local"
in die Datei schreiben. Ansonsten kann es zu Zeitfehlern oder -sprüngen kommen.
systemd
Zunächst wird empfohlen, systemd-firstboot auszuführen, um verschiedene Komponenten des Systems für den ersten Start in die neue systemd-Umgebung korrekt einzustellen. Durch die Übergabe der folgenden Optionen wird der Benutzer aufgefordert, eine Locale, eine Zeitzone, einen Hostnamen, ein Root-Passwort und Root-Shell-Werte festzulegen. Außerdem wird der Installation eine zufällige Maschinen-ID zugewiesen:
root #
systemd-firstboot --prompt --setup-machine-id
Als Nächstes sollten Benutzer systemctl ausführen, um alle installierten Unit-Dateien auf die voreingestellten Richtwerte zurückzusetzen:
root #
systemctl preset-all --preset-mode=enable-only
Es ist möglich, die vollständigen Voreinstellungsänderungen auszuführen, aber dies kann alle Dienste zurücksetzen, die während des Prozesses bereits konfiguriert wurden:
root #
systemctl preset-all
Diese beiden Schritte sorgen für einen reibungslosen Übergang von der Live-Umgebung zum ersten Start der Installation.
Syslog Daemon
OpenRC
Einige Tools fehlen in dem Stage Tar-Archiv, weil es mehrere Pakete gibt, die die gleiche Funktionalität bereitstellen. Der Anwender kann wählen, welches dieser Pakete er installieren möchte.
Das erste Werkzeug, bei dem eine Auswahl getroffen werden muss, ist der Logging-Mechanismus. UNIX und Linux bieten hervorragende Unterstützung für Logging. Falls notwendig, kann alles, was auf dem System passiert, in Log-Dateien protokolliert werden.
Gentoo bietet verschiedene Syslog Daemons, unter anderem:
- app-admin/sysklogd - Das Paket beinhaltet das traditionelle Set von Syslog Diensten. Die mitgelieferte Standard-Konfiguration funktioniert ohne zusätzliche Konfigurationsarbeiten. Deshalb ist dieses Paket eine gute Wahl für Anfänger.
- app-admin/syslog-ng - Ein fortgeschrittener Syslog Daemon, der für fortgeschrittene Anwender gedacht ist, die das Logging feiner steuern und zusätzliche Funktionen nutzen wollen. Er benötigt zusätzliche Konfigurationsaufwand, wenn in mehr als eine Datei protokolliert werden soll.
- app-admin/metalog - Ein hochgradig konfigurierbarer Syslog Daemon.
Es kann sein, dass im Gentoo-Ebuild-Repositorium auch andere Systemloggerwerkzeuge verfügbar sind, da die Anzahl der verfügbaren Pakete täglich steigt.
Wenn syslog-ng verwendet werden soll, wird empfohlen, auch das Paket logrotate zu installieren, weil syslog-ng keine Funktionen zum Rotieren und Löschen von Log-Dateien enthält. Neuere Versionen von sysklogd (>= 2.0) enthalten Logrotate-Funktionen.
Wenn Sie einen Syslog Daemon ausgewählt haben, installieren Sie ihn mit emerge. Wenn Sie OpenRC verwenden, fügen Sie ihn mit rc-update zum Runlevel "default" hinzu. Das folgende Beispiel installiert und aktiviert app-admin/sysklogd als System Syslog-Werkzeug:
root #
emerge --ask app-admin/sysklogd
root #
rc-update add sysklogd default
systemd
Während eine Auswahl von Protokollierungsmechanismen für OpenRC-basierte Systeme vorgestellt wird, enthält systemd einen eingebauten Logger den systemd-journald-Dienst. Der systemd-journald-Dienst ist in der Lage, die meisten der im vorherigen Abschnitt über Systemlogger beschriebenen Logging-Funktionen auszuführen. Das heißt dass die meisten Installationen, die systemd als System-und Dienstmanager verwenden, das Hinzufügen eines zusätzlichen Syslog-Dienstes getrost überspringen können.
Siehe man journalctl für weitere Details zur Verwendung von journalctl zur Abfrage und Überprüfung der Systemprotokolle.
Aus einer Reihe von Gründen, wie z.B. der Weiterleitung von Protokollen an einen zentralen Host, kann es wichtig sein, "redundante" Systemprotokollierungsmechanismen in ein systemd-basiertes System einzubinden. Dies ist für die typische Zielgruppe des Handbuchs unüblich und gilt als fortgeschrittener Anwendungsfall. Er wird daher im Handbuch nicht behandelt.
Optional: Cron Daemon
OpenRC
Die Installation eines Cron-Daemons ist optional und wird nicht auf jedem System benötigt. Auf den meisten Systemen ist die Installation eines Cron-Daemons jedoch sinnvoll.
Ein Cron-Daemon führt Befehle in geplanten Intervallen aus. Das können tägliche, wöchentliche oder monatliche Intervalle sein, einmal jeden Dienstag, einmal jede zweite Woche, usw. Ein kluger Systemadministrator wird den Cron-Daemon nutzen, um routinemäßige Systemwartungsaufgaben zu automatisieren.
Alle Cron-Daemons unterstützen eine hohe Granularität für geplante Aufgaben und bieten im Allgemeinen die Möglichkeit, eine E-Mail oder eine andere Form der Benachrichtigung zu senden, wenn eine geplante Aufgabe nicht wie erwartet abgeschlossen wird.
Gentoo bietet verschiedene Cron Daemons an, unter anderem:
- sys-process/cronie - cronie basiert auf dem ursprünglichen cron und verfügt über Sicherheits- und Konfigurationsverbesserungen wie die Möglichkeit, PAM und SELinux zu verwenden.
- sys-process/dcron - Dieser leichgewichtige Cron-Daemon soll einfach und sicher sein, mit gerade genug Funktionen, um nützlich zu bleiben.
- sys-process/fcron - Ein Befehl-Scheduler mit erweiterten Fähigkeiten gegenüber cron und anacron.
- sys-process/bcron - Ein jüngeres Cron-System, das mit Blick auf sichere Abläufe entwickelt wurde. Zu diesem Zweck ist das System in mehrere separate Programme eingeteilt, von denen jedes für eine eigene Aufgabe zuständig ist, wobei die Kommunikation zwischen den Teilen streng kontrolliert wird.
cronie
Das folgende Beispiel verwendet sys-process/cronie:
root #
emerge --ask sys-process/cronie
Fügen Sie cronie zum Standard-Runlevel des Systems hinzu, so dass es beim Einschalten automatisch gestartet wird:
root #
rc-update add cronie default
Alternative: dcron
root #
emerge --ask sys-process/dcron
Wenn dcron der zukünftige Cron-Agent ist, muss ein zusätzlicher Initialisierungsbefehl ausgeführt werden:
root #
crontab /etc/crontab
Alternative: fcron
root #
emerge --ask sys-process/fcron
Wenn fcron der ausgewählte Task-Handler ist, ist ein zusätzlicher emerge-Schritt erforderlich:
root #
emerge --config sys-process/fcron
Alternative: bcron
bcron ist ein jüngerer Cron-Agent mit eingebauter Privilegientrennung.
root #
emerge --ask sys-process/bcron
systemd
Ähnlich wie bei der Systemprotokollierung bieten systemd-basierte Systeme standardmäßig Unterstützung für geplante Aufgaben in Form von Timern. systemd-Timer können auf System- oder Benutzerebenen ausgeführt werden und bieten die gleiche Funktionalität wie ein herkömmlicher Cron-Daemon. Sofern keine redundanten Fähigkeiten erforderlich sind, ist die Installation eines zusätzlichen Aufgabenplaners wie eines Cron-Daemons im Allgemeinen unnötig und kann getrost übersprungen werden.
Optional: Datei-Index
Mit Hilfe des Pakets sys-apps/mlocate kann man einen Index des Dateisystems erstellen und schnell nach Dateien suchen.
root #
emerge --ask sys-apps/mlocate
Optional: Remote Zugriff
Die Standardkonfiguration von opensshd erlaubt es root nicht, sich als remote-Benutzer anzumelden. Bitte erstellen Sie einen Nicht-Root-Benutzer und konfigurieren Sie ihn entsprechend, um den Zugriff nach der Installation zu erlauben, falls erforderlich, oder passen Sie /etc/ssh/shhd_config an, um root zu erlauben.
Wenn Sie sich von Remote Systemen über SSH bei Ihrem neu installierten System anmelden wollen, muss sshd so konfiguriert werden, dass es beim Booten startet.
OpenRC
Um das sshd Init-Script unter OpenRC zum Runlevel "default" hinzufügen:
root #
rc-update add sshd default
Wenn Sie sich über die serielle Schnittstelle bei Ihrem neu installierten System anmelden wollen, muss agetty konfiguriert werden.
Entfernen Sie das Kommentar-Zeichen bei den Einträgen zur seriellen Konsole in /etc/inittab:
root #
nano -w /etc/inittab
# SERIAL CONSOLES s0:12345:respawn:/sbin/agetty 9600 ttyS0 vt100 s1:12345:respawn:/sbin/agetty 9600 ttyS1 vt100
systemd
Um den SSH-Server zu aktivieren, führen Sie aus:
root #
systemctl enable sshd
Um die Unterstützung der seriellen Konsole zu aktivieren, führen Sie aus:
root #
systemctl enable getty@tty1.service
Optional: Shell-Vervollständigung
Bash
Bash ist die Standard-Shell für Gentoo-Systeme, und daher kann die Installation von Vervollständigungserweiterungen die Effizienz und den Komfort bei der Verwaltung des Systems erhöhen. Das Paket app-shells/bash-completion installiert Vervollständigungen für Gentoo-spezifische Befehle, sowie für viele andere gängige Befehle und Dienstprogramme:
root #
emerge --ask app-shells/bash-completion
Nach der Installation kann die Bash-Vervollständigung für bestimmte Befehle über eselect verwaltet werden. Siehe den Shell-Vervollständigungsintegrationsabschnitt des Bash-Artikels für weitere Details.
Zeitsynchronisation
Es ist wichtig, die Systemuhr mit der aktuellen Zeit zu synchronisieren. Normalerweise wird dafür das NTP Protokoll und NTP Software verwendet. Es gibt andere Implementierungen des NTP Protokolls, beispielsweise Chrony.
Um beispielsweise Chrony zu installieren:
root #
emerge --ask net-misc/chrony
OpenRC
Unter OpenRC, starten Sie:
root #
rc-update add chronyd default
systemd
Unter systemd, starten Sie:
root #
systemctl enable chronyd.service
root #
systemctl enable systemd-timesyncd.service
Dateisystemwerkzeuge
Abhängig von den verwendeten Dateisystemen kann es notwendig sein, die erforderlichen Dateisystem-Dienstprogramme zu installieren (zur Überprüfung der Dateisystem-Integrität, zur (Neu-)Formatierung von Dateisystemen usw.). Beachten Sie, dass die ext4 Userspace-Werkzeuge sys-fs/e2fsprogs bereits als Teil des @system Sets installiert sind.
In der folgenden Tabelle sind die zu installierenden Werkzeuge aufgeführt, wenn bestimmte Dateisystem-Werkzeuge in der installierten Umgebung benötigt werden:
Dateisystem | Paket |
---|---|
XFS | sys-fs/xfsprogs |
ext4 | sys-fs/e2fsprogs |
VFAT (FAT32, ...) | sys-fs/dosfstools |
Btrfs | sys-fs/btrfs-progs |
ZFS | sys-fs/zfs |
JFS | sys-fs/jfsutils |
ReiserFS | sys-fs/reiserfsprogs |
Es wird empfohlen, dass sys-block/io-scheduler-udev-rules für das korrekte Scheduler-Verhalten mit z.B. nvme-Geräten installiert wird:
root #
emerge --ask sys-block/io-scheduler-udev-rules
Weitere Informationen zu Dateisystemen in Gentoo finden Sie im Artikel zu Dateisystemen.
Netzwerk Tools
Wenn das Netzwerk bereits im Abschnitt Konfiguration des Systems konfiguriert wurde und funktioniert, kann dieser Abschnitt 'Netzwerk Tools' übersprungen werden. In diesem Fall können Sie direkt zum Kapitel Konfiguration des Bootloaders springen.
Einen DHCP-Client installieren
Die meisten Benutzer benötigen einen DHCP-Client, um eine Verbindung zu ihrem Netzwerk herzustellen. Wenn keiner installiert wurde, kann das System möglicherweise nicht in das Netzwerk gelangen, so dass es unmöglich ist, einen DHCP-Client herunterzuladen.
Ein DHCP-Client bezieht mit Hilfe von netifrc-Skripten automatisch eine IP-Adresse für eine oder mehrere Netzwerkschnittstelle(n). Wir empfehlen die Verwendung von net-misc/dhcpcd (siehe auch dhcpcd):
root #
emerge --ask net-misc/dhcpcd
Optional: Einen PPPoE-Client installieren
Wenn PPP genutzt werden soll, um eine Verbindung zum Internet aufzubauen, sollten Sie das Paket net-dialup/ppp installieren.
root #
emerge --ask net-dialup/ppp
Optional: WLAN Tools installieren
Wenn das System mit WLANs (drahtlosen lokalen Netzwerken) verbunden werden soll, sollten Sie das Paket net-wireless/iw installieren für offene oder WEP Netze und/oder das Paket net-wireless/wpa_supplicant für WPA oder WPA2 Netze. iw ist auch ein nützliches Tools für Diagnose-Zwecke und zum Scannen von WLANs.
root #
emerge --ask net-wireless/iw net-wireless/wpa_supplicant
Als nächstes folgt das Kapitel Konfigurieren des Bootloaders.
Einen Bootloader auswählen
Nachdem der Linux Kernel konfiguriert ist, die System Tools installiert sind und die wichtigsten System Konfigurationsdateien angepasst sind, ist es nun an der Zeit, den letzten wichtigen Teil eines Linux-Systems zu installieren: den Bootloader.
Der Bootloader ist beim Booten dafür zuständig, den Linux Kernel zu starten. Ohne ihn würde das System nach dem Druck auf den Power-Knopf nicht wissen, wie es weiter vorgehen soll.
Wir zeigen für die x86 Architektur, wie man entweder GRUB oder LILO für BIOS basierte Systeme, oder GRUB oder efibootmgr für UEFI Systeme konfiguriert.
In diesem Abschnitt des Handbuchs wird unterschieden zwischen dem "Emerge" eines Bootloader-Pakets und dem "Installieren" des Bootloaders auf die System-Festplatte. Der Ausdruck "emerge" wird verwendet, wenn Portage aufgerufen wird, um eine Software auf dem System verfügbar zu machen. Der Ausdruck "installieren" wird verwendet, wenn der Bootloader Dateien in spezielle Bereiche der System-Festplatte kopiert oder dort Daten verändert, um den Bootloader so zu aktivieren, dass er beim nächsten Systemstart gestartet wird.
Standard: GRUB
Die Mehrzahl der Gentoo Linux Systeme verwendet heutzutage GRUB als Bootloader. GRUB (Paket sys-boot/grub) ist der direkte Nachfolger von GRUB Legacy. Ohne weitere Konfiguration unterstützt GRUB ältere BIOS ("pc") Systeme. Mit zusätzlicher Konfiguration unterstützt GRUB mehr als ein halbes Dutzend anderer Plattformen. Details finden Sie in dem Abschnitt Prerequisites section des GRUB Artikels im Gentoo Wiki.
Emerge
Wenn ein älteres BIOS System verwendet wird, das nur MBR Partitions-Tabellen unterstützt, sind keine Konfigurationsarbeiten erforderlich, um GRUB zu "emergen":
root #
emerge --ask --verbose sys-boot/grub
Für UEFI Systeme: die Ausführung des obigen Kommandos zeigt vor dem "emerge" die aktivierten GRUB_PLATFORMS Werte an. Wenn UEFI Systeme verwendet werden, müssen Anwender sicherstellen, dass GRUB_PLATFORMS="efi-64"
aktiviert ist (was standardmäßig der Fall sein sollte). Wenn es nicht der Fall ist, muss GRUB_PLATFORMS="efi-64"
zu der Datei /etc/portage/make.conf hinzugefügt werden, bevor das Emerge-Kommando für GRUB ausgeführt wird. Ansonsten wird GRUB EFI nicht unterstützen.
root #
echo 'GRUB_PLATFORMS="efi-64"' >> /etc/portage/make.conf
root #
emerge --ask sys-boot/grub
- Wenn GRUB installiert wurde ohne dass
GRUB_PLATFORMS="efi-64"
aktiviert war, kann die Zeile (wie oben gezeigt) zu make.conf hinzugefügt werden. Danach können die Abhängigkeiten für das world package set neu berechnet werden durch Aufruf von emerge mit den Optionen--update --newuse
:
root #
emerge --ask --update --newuse --verbose sys-boot/grub
Die GRUB Software wurde nun zu dem System hinzugefügt. Sie ist aber noch nicht installiert.
Installation
Als nächstes werden die erforderlichen GRUB Dateien in das /boot/grub/ Verzeichnis installiert. Hierfür kann das grub-install Kommando verwendet werden. Unter der Annahme, dass die erste Festplatte (diejenige von der das System bootet) /dev/sda ist, kann einer der folgenden Befehle verwenden werden:
- Wenn ein BIOS-System verwendet wird:
root #
grub-install /dev/sda
For DOS/Legacy BIOS systems:
root #
grub-install /dev/sda
- Wenn ein UEFI-System verwendet wird:
- Wichtig
Stellen Sie sicher, dass die EFI System-Partition (ESP) eingehängt wurde, bevor Sie grub-install ausführen. Wenn die EFI System-Partition nicht eingehängt wurde, wird grub-install die Installation trotzdem durchführen. Die GRUB EFI-Datei (grubx64.efi) wird dann in das falsche Verzeichnis installiert. Dabei werden Sie nicht informiert oder gewarnt.
For UEFI systems:
root #
grub-install --target=x86_64-efi --efi-directory=/boot
Upon successful installation, the output should match the output of the previous command. If the output does not match exactly, then proceed to Debugging GRUB, otherwise jump to the Configure step.
Optional: Secure Boot
The sys-boot/grub package does not recognize the secureboot USE flag, this is because the GRUB EFI executable is not installed by the package but is instead built and installed by the grub-install command. GRUB must therefore be manually signed after installation to the boot partition. Additionally, GRUB is a modular bootloader but loading modules is prohibited when Secure Boot is enabled. Therefore all necessary modules must be compiled into the GRUB EFI executable, below an example is shown including some basic modules, this may have to be adjusted for more advanced configurations:
root #
emerge --noreplace sbsigntools
root #
export GRUB_MODULES="all_video boot btrfs cat chain configfile echo efifwsetup efinet ext2 fat font gettext gfxmenu gfxterm gfxterm_background gzio halt help hfsplus iso9660 jpeg keystatus loadenv loopback linux ls lsefi lsefimmap lsefisystab lssal memdisk minicmd normal ntfs part_apple part_msdos part_gpt password_pbkdf2 png probe reboot regexp search search_fs_uuid search_fs_file search_label sleep smbios squash4 test true video xfs zfs zfscrypt zfsinfo"
root #
grub-install --target=x86_64-efi --efi-directory=/efi --modules=${GRUB_MODULES} --sbat /usr/share/grub/sbat.csv
root #
sbsign /efi/EFI/GRUB/grubx64.efi --key /path/to/kernel_key.pem --cert /path/to/kernel_key.pem --out /efi/EFI/GRUB/grubx64.efi
To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.
How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. Below is shown how to setup shim instead:
root #
emerge sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #
cp /usr/share/shim/BOOTX64.EFI /efi/EFI/GRUB/shimx64.efi
root #
cp /usr/share/shim/mmx64.efi /efi/EFI/GRUB/mmx64.efi
Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:
root #
openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.
Then the converted certificate can be imported into Shims MOKlist:
root #
mokutil --import /path/to/kernel_key.der
And finally we register Shim with the UEFI firmware. In the following command, boot-disk
and boot-partition-id
must be replaced with the disk and partition identifier of the EFI system partition:
root #
efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\GRUB\shimx64.efi' --label 'shim' --unicode
Debugging GRUB
When debugging GRUB, there are a couple of quick fixes that may result in a bootable installation without having to reboot to a new live image environment.
In the event that "EFI variables are not supported on this system" is displayed somewhere in the output, it is likely the live image was not booted in EFI mode and is presently in Legacy BIOS boot mode. The solution is to try the removable GRUB step mentioned below. This will overwrite the executable EFI file located at /EFI/BOOT/BOOTX64.EFI. Upon rebooting in EFI mode, the motherboard firmware may execute this default boot entry and execute GRUB.
- Wichtig
Wenn grub-install einen Fehler wieCould not prepare Boot variable: Read-only file system
meldet, ist es möglicherweise erforderlich, einen Mount-Parameter des efivars-Dateisystems auf "read-write" zu ändern:root #
mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars
root #
mount -o remount,rw,nosuid,nodev,noexec --types efivarfs efivarfs /sys/firmware/efi/efivars
This is caused by certain non-official Gentoo environments not mounting the special EFI filesystem by default. If the previous command does not run, then reboot using an official Gentoo live image environment in EFI mode.
- Einige Hersteller von Mainboards scheinen nur das Verzeichnis /efi/boot/ für die .EFI-Datei in der EFI System Partition (ESP) zu unterstützen. Der GRUB Installer unterstützt diese Arbeitsweise mit der Option
--removable
. Stellen Sie sicher, dass die ESP eingehängt wurde, bevor Sie die folgenden Kommandos ausführen. Vorausgesetzt, dass die ESP eingehängt ist unter /boot (wie früher vorgeschlagen), können Sie folgende Kommandos ausführen:
root #
grub-install --target=x86_64-efi --efi-directory=/boot --removable
- Dies erzeugt das von der UEFI Spezifikation definierte Standard-Verzeichnis und kopiert dann die grubx64.efi-Datei zu dem "Standard"-Ort der EFI-Datei, der in der gleichen Spezifikation definiert wurde.
Konfiguration
Im nächsten Schritt erzeugen wir auf Grundlage der Benutzereinstellungen, die in der Datei /etc/default/grub und den Skripten im Verzeichnis /etc/grub.d angegeben sind, die GRUB Konfiguration. In den meisten Fällen ist keine Konfiguration durch den Benutzer erforderlich, weil GRUB automatisch erkennen wird, welcher Kernel zu booten ist (den höchsten verfügbaren in /boot/) und was das Root Dateisystem ist. Mit Hilfe der GRUB_CMDLINE_LINUX Variable ist auch möglich, Kernel-Parameter in /etc/default/grub zu definieren.
Zum Generieren der endgültigen GRUB Konfiguration führen Sie den Befehl grub-mkconfig aus:
root #
grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ... Found linux image: /boot/vmlinuz-6.6.21-gentoo Found initrd image: /boot/initramfs-genkernel-x86-6.6.21-gentoo done
Die Ausgabe des Befehls muss erwähnen, dass mindestens ein Linux Image gefunden wurde, da dieses zum Booten des Systems erforderlich sind. Wenn ein initramfs verwendet wird, oder der Kernel mit Hilfe von genkernel erzeugt wurde, sollte das korrekte initrd Image ebenfalls erkannt werden. Falls dies nicht der Fall ist, überprüfen Sie das Verzeichnis /boot/ mit dem Befehl ls auf dessen Inhalt. Wenn die Dateien in der Tat fehlen sollten, gehen Sie zurück zur Kernel-Konfiguration und der dortigen Installationsanleitung.
Die os-prober Utility kann in Verbindung mit GRUB verwendet werden, um andere Betriebssysteme auf angeschlossenen Festplatten zu erkennen. Windows 7, 8.1, 10 und andere Linux Distributionen werden erkannt. Diejenigen, die ein Dual-Boot System wünschen, sollten das sys-boot/os-prober Paket "emergen" und dann das grub-mkconfig Kommando erneut ausführen (wie oben beschrieben). Falls Erkennungsprobleme auftreten, lesen Sie bitte den GRUB Artikel vollständig, bevor Sie die Gentoo Community um Hilfe bitten.
Alternative 1: LILO
Emerge
LILO, der LInuxLOader, ist das erprobte und wahre Arbeitstier unter den Linux Bootloadern. Allerdings fehlen ihm gegenüber GRUB einige Funktionen. LILO wird auch heute noch verwendet, weil GRUB auf einigen Systemen nicht funktioniert, aber LILO schon. Natürlich wird er ebenfalls verwendet, weil ihn einige Leute kennen und bei LILO bleiben wollen. So oder so, Gentoo unterstützt beide Bootloader.
Das "Emergen" von LILO ist ein Kinderspiel.
root #
emerge --ask sys-boot/lilo
Konfiguration
Um LILO zu konfigurieren, erstellen Sie zunächst die Datei /etc/lilo.conf:
root #
nano -w /etc/lilo.conf
In der Konfigurationstatei werden Abschnitte verwendet, um die bootfähigen Kernel zu referenzieren. Stellen Sie sicher, dass die Kernel-Dateien (mit Kernelversion) und die initramfs Dateien bekannt sind, da auf sie in dieser Konfigurationsdatei Bezug genommen werden muss.
Wenn als Root-Dateisystem JFS verwendet wird, fügen Sie bitte eine
append="ro"
Zeile nach jedem Booteintrag hinzu, weil JFS sein Log erst auslesen muss, bevor es ein Einhängen im Lese- und Schreibmodus erlaubt.boot=/dev/sda # Install LILO in the MBR
prompt # Give the user the chance to select another section
timeout=50 # Wait 5 (five) seconds before booting the default section
default=gentoo # When the timeout has passed, boot the "gentoo" section
compact # This drastically reduces load time and keeps the map file smaller; may fail on some systems
image=/boot/vmlinuz-6.6.21-gentoo
label=gentoo # Name we give to this section
read-only # Start with a read-only root. Do not alter!
root=/dev/sda3 # Location of the root filesystem
image=/boot/vmlinuz-6.6.21-gentoo
label=gentoo.rescue # Name we give to this section
read-only # Start with a read-only root. Do not alter!
root=/dev/sda3 # Location of the root filesystem
append="init=/bin/bb" # Launch the Gentoo static rescue shell
# The next two lines are for dual booting with a Windows system.
# In this example, Windows is hosted on /dev/sda6.
other=/dev/sda6
label=windows
Wenn Sie ein anderes Partitionierungs-Schema und/oder Kernel-Abbild verwenden, passen Sie die Datei bitte entsprechend an.
Wenn ein initramfs notwendig ist, dann ändern Sie die Konfiguration, indem sie auf die initramfs Datei verweisen und dieser mitteilen, an welcher Stelle sich das echte Root-Device befindet:
image=/boot/vmlinuz-6.6.21-gentoo
label=gentoo
read-only
append="root=/dev/sda3"
initrd=/boot/initramfs-genkernel-x86-6.6.21-gentoo
Wenn zusätzliche Optionen an den Kernel übergeben werden müssen, verwenden Sie die append
Anweisung. Um beispielsweise die video
Anweisung zur Aktivierung des Framebuffers hinzuzufügen:
image=/boot/vmlinuz-6.6.21-gentoo
label=gentoo
read-only
root=/dev/sda3
append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
Benutzer, die genkernel verwenden, sollten wissen, dass ihr Kernel die gleichen Bootoptionen verwendet, wie die Installations-CD. Wenn Sie beispielsweise SCSI Support benötigen, fügen sie doscsi
als Kernel-Option hinzu.
Speichern Sie nun die Datei und beenden Sie den Editor.
Installation
Zum Abschluss führen Sie bitte das Programm /sbin/lilo aus, damit LILO die Einstellungen aus /etc/lilo.conf auf das System anwenden kann (das heißt: sich selbst auf die Festplatte installieren kann). Beachten Sie, dass /sbin/lilo jedes Mal erneut ausgeführt werden muss, wenn ein Kernel installiert, oder eine Veränderung an lilo.conf vorgenommen wurde.
root #
/sbin/lilo
Alternative 2: efibootmgr
Auf UEFI basierten Systemen kann die UEFI Firmware auf dem System selbst (mit anderen Worten: der primäre Bootloader) dazu gebracht werden, dass sie selbst nach UEFI Boot-Einträgen sucht. Solche Systeme benötigen keine (sekundären) Bootloader wie GRUB, um das System zu booten. Auf solchen Systemen werden Bootloader wie GRUB genutzt, weil sie erweiterte Funktionalität bieten. efibootmgr ist für diejenigen gedacht, die ihr System auf direktem (und evtl. rigidem) Weg booten wollen. GRUB ist einfacher für die Mehrzahl der Anwender, weil es beim Booten von UEFI Systemen mehr Flexibilität bietet.
System administrators who desire to take a minimalist, although more rigid, approach to booting the system can avoid secondary bootloaders and boot the Linux kernel as an EFI stub.
Vergessen Sie nicht, dass die sys-boot/efibootmgr Anwendung kein Bootloader ist, sondern ein Werkzeug, um mit der UEFI-Firmware zu interagieren und deren Einstellungen zu aktualisieren. Auf diese Weise kann ein Kernel, der früher installiert wurde, mit zusätzlichen Optionen gebootet werden (falls nötig). Des Weiteren lassen sich dadurch mehrere Booteinträge realisieren. Diese Interaktion erfolgt durch EFI Variablen (daher die Notwendigkeit für die Kernel-Unterstützung für EFI Variablen).
Bitte lesen Sie den EFI stub kernel Artikel, bevor Sie fortfahren. Im Linux Kernel müssen bestimmte Optionen aktiviert sein, damit er direkt von der UEFI Firmware gebootet werden kann. Es kann notwendig sein, den Kernel erneut zu kompilieren. Es könnte auch hilfreich sein, den efibootmgr Artikel zu lesen.
It is also a good idea to take a look at the efibootmgr article for additional information.
Zur Wiederholung: efibootmgr ist keine Voraussetzung, um ein UEFI System zu booten. Der Linux-Kernel selbst kann direkt gebootet werden. Zusätzliche Kernel Bootparameter können in den Linux-Kernel einkompiliert werden (es gibt eine Kernel-Konfigurations-Option namens CONFIG_CMDLINE, mit der Benutzer Bootparameter spezifizieren können). Sogar ein initramfs kann in den Kernels einkompiliert werden.
Diejenigen, die diesen Weg gehen wollen, müssen zuerst die Software installieren:
root #
emerge --ask sys-boot/efibootmgr
Erzeugen Sie das Verzeichnis /boot/efi/boot/ und kopieren Sie den Kernel dorthin. Ändern Sie dabei seinen Namen nach bootx64.efi.
root #
mkdir -p /boot/efi/boot
root #
cp /boot/vmlinuz-* /boot/efi/boot/bootx64.efi
Die Verwendung von \ als Verzeichnistrenner ist in UEFI Definitionen Pflicht.
Als Nächstes sagen Sie der UEFI Firmware, dass ein Booteintrag mit dem Namen "Gentoo" zu erstellen ist, der den frisch kompilierten EFI stub Kernel bootet:
root #
efibootmgr --create --disk /dev/sda --part 2 --label "Gentoo" --loader "\efi\boot\bootx64.efi"
Falls ein Ausgangsdateisystem im Arbeitsspeicher (Initial RAM Filesystem = initramfs) verwendet wird, fügen Sie die passenden Bootoptionen hinzu:
root #
efibootmgr -c -d /dev/sda -p 2 -L "Gentoo" -l "\efi\boot\bootx64.efi" initrd='\initramfs-genkernel-x86-6.6.21-gentoo'
Note that the above command presumes an initramfs file was copied into the ESP inside the same directory as the bootx64.efi file.
Nach diesen Änderungen wird bei einem Neustart das Systems ein Booteintrag mit der Bezeichnung "Gentoo" verfügbar sein.
Unified Kernel Image
If installkernel was configured to build and install unified kernel images. The unified kernel image should already be installed to the EFI/Linux directory on the EFI system partition, if this is not the case ensure the directory exists and then run the kernel installation again as described earlier in the handbook.
To add a direct boot entry for the installed unified kernel image:
root #
efibootmgr --create --disk /dev/sda --part 1 --label "gentoo" --loader /efi/EFI/Linux/gentoo-x.y.z.efi
Alternative 3: Syslinux
Syslinux ist eine weitere Bootloader-Alternative für die x86 Architektur. Syslinux unterstützt MBR und - seit Version 6.0.0 - auch EFI. Weiterhin werden PXE (netboot) und weitere, weniger bekannte Optionen unterstützt. Obwohl Syslinux bei vielen Anwendern beliebt ist, wird es nicht in diesem Handbuch beschrieben. Es gibt jedoch einen Syslinux Artikel im Gentoo Wiki, in dem die Installation beschrieben wird.
Alternative 4: systemd-boot
Another option is systemd-boot, which works on both OpenRC and systemd machines. It is a thin chainloader and works well with secure boot.
To install systemd-boot:
root #
bootctl install
Make sure the EFI system partition has been mounted before running bootctl install.
When using this bootloader, before rebooting, verify that a new bootable entry exists using:
root #
bootctl list
If no new entry exists, ensure the sys-kernel/installkernel package has been installed with the systemd-boot USE flag enabled, and re-run the kernel installation.
For the distribution kernels:
root #
emerge --ask --config sys-kernel/gentoo-kernel
For a manually configured and compiled kernel:
root #
make install
When installing kernels for systemd-boot, no root= kernel command line argument is added by default. On systemd systems that are using an initramfs users may rely instead on systemd-gpt-auto-generator to automatically find the root partition at boot. Otherwise users should manually specify the location of the root partition by setting root= in /etc/kernel/cmdline as well as any other kernel command line arguments that should be used. And then reinstalling the kernel as described above.
Optional: Secure Boot
When the secureboot USE flag is enabled, the systemd-boot EFI executable will be signed automatically. bootctl install will automatically install the signed version.
To successfully boot with secure boot enabled the used certificate must either be accepted by the UEFI firmware, or shim must be used as a pre-loader. Shim is pre-signed with the third-party Microsoft Certificate, accepted by default by most UEFI motherboards.
How to configure the UEFI firmware to accept custom keys depends on the firmware vendor, which is beyond the scope of the handbook. A postinst hook to automatically update systemd-boot and set it up with shim instead is provided on the systemd-boot wiki page. However the first time this should be done manually by following the steps below:
root #
emerge --ask sys-boot/shim sys-boot/mokutil sys-boot/efibootmgr
root #
cp /usr/share/shim/BOOTX64.EFI /efi/EFI/BOOT/BOOTX64.EFI
root #
cp /usr/share/shim/mmx64.efi /efi/EFI/BOOT/mmx64.efi
root #
cp /efi/EFI/systemd/systemd-bootx64.efi /efi/EFI/BOOT/grubx64.efi
Shim is hardcoded to load grubx64.efi. As such the systemd-boot bootloader must be named as if it were GRUB.
Shims MOKlist requires keys in the DER format, since the OpenSSL key generated in the example here is in the PEM format, the key must be converted first:
root #
openssl x509 -in /path/to/kernel_key.pem -inform PEM -out /path/to/kernel_key.der -outform DER
The path used here must be the path to the pem file containing the certificate belonging to the generated key. In this example both key and certificate are in the same pem file.
Then the converted certificate can be imported into Shims MOKlist:
root #
mokutil --import /path/to/kernel_key.der
And finally we register Shim with the UEFI firmware. In the following command, boot-disk
and boot-partition-id
must be replaced with the disk and partition identifier of the EFI system partition:
root #
efibootmgr --create --disk /dev/boot-disk --part boot-partition-id --loader '\EFI\BOOT\BOOTX64.EFI' --label 'shim' --unicode
Neustart des Systems
Verlassen Sie die chroot-Umgebung und hängen Sie alle gemounteten Partitionen aus. Geben Sie dann den magischen Befehl ein, der den alles entscheidenden Test einleitet - reboot.
root #
exit
livecd~#
cd
livecd~#
umount -l /mnt/gentoo/dev{/shm,/pts,}
livecd~#
umount -R /mnt/gentoo
livecd~#
reboot
Vergessen Sie nicht, das Installations-Medium zu entfernen. Andernfalls könnte erneut das Installations-Medium anstelle des neuen Gentoo Systems gebootet werden.
Nach dem Neustart in die neu installierte Gentoo Umgebung können Sie Ihre Installation mit dem Kapitel Abschluss der Gentoo Installation fertigstellen.
Benutzerverwaltung
Hinzufügen eines Benutzers für den täglichen Gebrauch
Arbeiten als root in einem Unix/Linux System ist gefährlich und sollte, wenn immer möglich, vermieden werden. Wir empfehlen daher nachdrücklich das Einrichten eines Benutzers für die täglichen Aufgaben.
Die Gruppen, denen ein Benutzer angehört, definieren, welche Aktivitäten der User ausführen kann. Die folgende Tabelle listet die wichtigsten Gruppen, die Sie vermutlich benutzen wollen:
Gruppe | Beschreibung |
---|---|
audio | Benutzer kann Audiogeräte benutzen. |
cdrom | Benutzer kann optische Laufwerke direkt benutzen. |
floppy | Benutzer kann Diskettenlaufwerke direkt benutzen. |
games | Benutzer darf Spiele ausführen. |
portage | Benutzer darf auf eingeschränkte Ressourcen von portage zugreifen. |
usb | Benutzer darf USB-Geräte benutzen. |
video | Benutzer darf Geräte zur Videoaufnahme benutzen und Hardwarebeschleunigung nutzen. |
wheel | Benutzer darf su benutzen. |
In unserem Beispiel erstellen wir einen Benutzer larry, der Mitglied der Gruppen wheel, users und audio werden soll. Loggen Sie sich dazu zunächst als root ein (nur root kann Benutzer erstellen) und führen Sie useradd aus:
Login:
root
Password: (Ihr root-Passwort)
When setting passwords for standard user accounts, it is good security practice to avoid using the same or a similar password as set for the root user.
Handbook authors recommended to use a password at least 16 characters in length, with a value fully unique from every other user on the system.
root #
useradd -m -G users,wheel,audio -s /bin/bash larry
root #
passwd larry
Password: (Hier das Passwort für larry eintragen) Re-enter password: (Das Passwort zur Kontrolle noch einmal eingeben)
Temporarily elevating privileges
Wenn ein Benutzer eine bestimmte Aufgabe als root durchführen möchte, kann er den Befehl su - verwenden, um temporär Rechte als root zu erhalten. Alternativ können sudo (app-admin/sudo) oder doas (app-admin/doas) verwendet werden. Beide Varianten sind, wenn sie richtig konfiguriert sind, sehr sicher.
Disabling root login
To prevent possible threat actors from logging in as root, deleting the root password and/or disabling root login can help improve security.
To disable root login:
root #
passwd -l root
To delete the root password and disable login:
root #
passwd -dl root
Aufräumen der Festplatte
Entfernen der Tar-Archive
Da nun die Gentoo Installation abgeschlossen ist und das System neu gestartet wurde, können Sie, sofern alles funktioniert, das heruntergeladene Stage Tar-Archiv von Ihrer Festplatte entfernen. Erinnern Sie sich daran, dass diese Datei in Ihr /-Verzeichnis heruntergeladen wurde?
The files are located in the / directory and can be removed with the following command:
root #
ls -la /stage3-*.tar.*
root #
rm /stage3-*.tar.*
Wie geht es weiter?
Gratulation! Sie haben jetzt ein funktionierendes Gentoo Linux-System. Aber wie geht es nun weiter? Es gibt viele Wege zu entdecken... Gentoo bietet seinen Benutzern viele Möglichkeiten und hat deshalb viele gut dokumentierte (und auch weniger gut dokumentierte) Eigenschaften, die hier im Wiki und in anderen Bereichen (siehe den folgenden Abschnitt Gentoo Online) erkundet werden können.
Zusätzliche Dokumentation
Wegen der vielen Wahlmöglichkeiten in Gentoo muss sich dieses Handbuch auf die wichtigsten Themen beschränken. Der Fokus liegt auf den Grundlagen, mit denen man ein Gentoo System installieren und zum Laufen bringen kann - und den grundlegenden Tätigkeiten zur Systemverwaltung. Dieses Handbuch enthält absichtlich keine Anleitungen zu graphischen Benutzeroberflächen, zum System-Hardening oder zu anderen wichtigen administrativen Aufgaben. Nichtsdestotrotz enthält dieses Handbuch weitere Abschnitte, mit denen Leser bei grundlegenden Aufgaben und Funktionen unterstützt werden sollen.
Leser sollten definitiv einen Blick in den nächsten Teil des Handbuchs werden: Arbeiten mit Gentoo. Dort wird erklärt, wie Sie Ihre Software aktuell halten und zusätzliche Software installieren können, was USE-Flags sind, und wie das Init-System OpenRC funktioniert. Er enthält viele weitere Informationen darüber, wie man ein Gentoo Linux System nach der Installation verwaltet.
Neben dem Handbuch sollten Anwender auch andere Teile des Wikis erkunden, in denen zusätzliche, von der Community erstellte Dokumentation zur Verfügung steht. Das Gentoo Wiki Team bietet eine Übersicht über die Dokumentation im Wiki an, in der Sie eine nach Kategorien sortierte Liste von Wiki Artikeln finden. Beispielsweise gibt es dort einen Link zum Lokalisierungsleitfaden, mit dem man das System noch etwas angenehmer einrichten kann (besonders hilfreich für diejenigen, für die Englisch nicht die Muttersprache ist).
Die meisten Benutzer, die den Anwendungsfall "Desktop-System" haben, werden eine graphische Benutzeroberfläche installieren, in der sie dann arbeiten können. Es gibt viele von der Community gepflegte 'Meta'-Artikel zu unterstützten Desktop environments (DEs) und Window-Managern (WMs). Leser sollten sich darüber bewusst sein, dass jede DE leicht unterschiedliche Schritte zur Installation benötigt.
Es gibt viele Meta-Artikel, in denen unsere Leser einen umfassenden Überblick über unter Gentoo verfügbare Software finden.
Gentoo Online
Bitte beachten Sie, dass für alle von Gentoo offiziell angebotenen Online Dienste Gentoos Code of Conduct (Verhaltenscodex) gilt. Die aktive Teilnahme an der Gentoo Community ist ein Privileg, kein Recht. Nutzer sollten sich darüber im Klaren sein, dass der Code of Conduct aus gutem Grund besteht.
Die meisten Gentoo Websites benötigen einen eigenen User Account, damit Sie Fragen stellen, Diskussionen eröffnen oder einen Bug melden können. Eine Ausnahme hiervon sind das bei Libera.Chat gehostete Internet Relay Chat (IRC) Netzwerk und die Mailing-Listen.
Foren und IRC
Jeder Anwender ist willkommen in unseren Gentoo-Foren oder in einem unserer Internet Relay Chat Channels. Es ist einfach, in den Foren zu suchen, ob ein Problem bereits entdeckt, besprochen und gelöst wurde (dies gilt sowohl für "Anfänger"-Probleme, als auch für Probleme von fortgeschrittenen Anwendern). Die Wahrscheinlichkeit, dass andere Anwender schon die gleichen Probleme hatten, ist erstaunlich hoch. Wir bitten Anwender, zuerst die Foren und das Wiki zu durchsuchen, bevor sie in den Gentoo Support Channels um Hilfe bitten.
Zum Suche in den Foren oder im Wiki können die dortigen Such-Maschinen verwendet werden. Es können aber auch die bekannten Suchmaschinen wie Google, Bing, DuckDuckGo genutzt werden. Bei Google kann man beispielsweise durch den Zusatz von "site:forums.gentoo.org" angeben, dass nur die Gentoo Foren nach den Suchbegriffen durchsucht werden sollen.
Mailing-Listen
Mehrere Mailing-Listen sind verfügbar für Community-Mitglieder, die lieber E-Mail für Support-Anfragen oder Feedback verwenden, als einen User Account bei den Foren oder bei IRC anzulegen. Anwender, die diesen Dienst nutzen wollen, müssen die Anleitungen befolgen, um die gewünschten Mailing-Listen zu abonnieren.
Bugs
Manchmal gibt es trotz Suche im Forum und Hilfe-Anfragen im Forum, in den Mailing-Listen und im IRC Channel keine Lösung für ein Problem. In vielen Fällen ist das ein Zeichen dafür, das ein Bug in der Gentoo Bugzilla Datenbank erstellt werden sollte.
Development guide
Leser, die gerne mehr über die Entwicklung von Gentoo erfahren möchten, können einen Blick auf den Development Guide werfen. Dieser Leitfaden enthält Anleitungen zum Schreiben von ebuilds und zur Arbeit mit eclasses. Weiterhin enthält er eine Beschreibung für viele Generelle Konzepte bei der Gentoo Entwicklung.
Abschließende Betrachtungen
Gentoo ist eine robuste, flexible und hervorragend gewartete Distribution. Die Entwickler-Community freut sich über Feedback darüber, wie man Gentoo zu einer noch besseren Distribution machen kann.
Zur Erinnerung: Feedback zu diesem Handbuch sollte den Richtlinien entsprechen, die am Anfang dieses Handbuchs besprochen wurden: Wie kann ich helfen, das Handbuch zu verbessern?
Wir sind sehr gespannt darauf, wie unsere Anwender Gentoo Linux installieren werden, um es an ihre persönlichen Anforderungen und Bedürfnisse anzupassen.
Warning: Display title "Gentoo Linux x86 Handbuch: Gentoo installieren" overrides earlier display title "Handbuch:X86/Komplett/Installation".