View previous topic :: View next topic |
Author |
Message |
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Sat May 09, 2020 4:59 pm Post subject: A1 Tips und Beginn der Installation |
|
|
(Dieser Post ist Teil einer Installation-Anleitung. Falls nicht schon geschehen lies bitte: Installation Guide for Paranoid Dummies)
A.1 Tips und Beginn der Installation
a.) Möglicherweise wirst Du jetzt gleich lachen, aber in 2 Jahren wirst Du diesen Tip lieben: Notiere jeden Schritt in einer (plain-text-)Datei. Ich habe das für jede Linux Installation getan und kann deshalb alles von dort hierher kopieren. Führe diese Datei weiter, wenn Du wichtige Änderungen vornimmst. Beispielsweise hatten wir vor kurzem einen Umstieg von consolekit auf elogind; ebenso von evdev auf libinput. Ist alles in dieser Datei !
b.) Arbeite mit Spickzettel ("cheat sheet") - als Datei natürlich Kopiere alles rein, was Du nicht auswendig lernen willst. Hier mein erster Link dazu:
https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet
c.) Wenn Du Dir unsicher bist, ob Du eine 0 (=Null) oder den (großen) Buchstaben "O" verwenden sollst, dann kopiere einfach von hier raus. So kann es Dir niemals passieren, dass Du versehentlich ein fehlerhaftes
Code: | COMMON_FLAGS="-march=native -O2 -pipe"
# type here a big "O" (like Optimize-Level) and not a "0 = zero" | abtippst und deswegen die Installation komplett abbricht (wie soeben wieder einmal geschehen ... und schon wieder: https://forums.gentoo.org/viewtopic-p-8638930.html#8638930 ).
d.) In den meisten Dokumentationen von Gentoo wird ein "emerge --ask" zur Installation eines Pakets benutzt. Ich verwende stattdessen "emerge -pvD" und sehe mir erstmal an was passieren würde. Manchmal lese ich dann zuerst mit "euse -i USEFLAG" die Bedeutung eines Use-Flags durch. Zuletzt hole ich den emerge-Befehl zurück und lösche das "p". Das gleiche mache ich auch für ein globales Update mit "emerge -pvuND @world".
e.) Lass Dir Zeit ! Versuche nicht so schnell wie möglich alles zu installieren. Plane ein paar Tage für die Installation ein. Gerade bei der Kernel Konfiguration ist die Lernkurve erheblich, wenn Du meinen Rat, die Hilfe zu lesen, befolgst. Ich habe die Abhängigkeiten der Kernel Module nicht explizit in A.2 beschrieben, da Du diese selbst erkennen wirst, wenn Du mindestens 20 bis 30 Hilfeseiten durchliest. Du wirst dann auch selbst erkennen was der Unterschied zwischen [*] und -*- ist ...
Wundere Dich nicht wenn ich zuerst den Grub installiere, obwohl dieser später nur noch als Backup benutzt wird. Er ist jedoch sehr nützlich, solange wir an der Kernel-Konfiguration basteln. Außerdem möchte ich möglichst konform zum AMD64 Handbuch bleiben, auch wenn wir das eine oder andere nicht wirklich benötigen.
Ich habe alle Schritte äquivalent zum AMD64 Handbuch aufgeteilt, so dass jede Seite des Handbuchs als Link hier aufgeführt ist. Wir beginnen ganz am Anfang:
1. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/About
2. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Media
Ich werde ab jetzt hauptsächlich aus meiner "install_hal.txt" zitieren
Code: | GENTOO Installation for HAL
===========================
History:
--------
2020-03-07 Initial Installation
2020-03-[...]
Partitions:
-----------
-to fill -
2020-03-07 Initial Installation:
--------------------------------
- start BIOS (with F2) and set date and time to UTC
- check if UEFI boot is enabled; CSM Mode must be disabled
- secure boot must be disabled
- insert amd64-minimal CD (burned with k3b before)
- save and quit
- be fast with input "12" for german keyboard or you do another reboot |
Falls Du kein CD-Laufwerk haben solltest und von einem USB-Stick booten möchtest, kannst Du das iso-File ganz einfach auf einen leeren Stick kopieren:
Code: | # dd if=/pfad/zu/install-amd64-minimal-*.iso of=/dev/sdX; sync |
3. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Networking
Die Überprüfung ob es auch wirklich ein UEFI-boot war ist sehr wichtig, denn falls nicht wirst Du später einen Abbruch bei der Installation des GRUB2 haben. Voraussetzung für UEFI-boot sind zwei Dinge:
1. Die richtigen Einstellungen im BIOS - bei manchen Mainboards wird der CSM Mode auch als Legacy bezeichnet; dann musst Du diesen disablen - UND
2. die Boot-CD muss es auch unterstützen; was natürlich nicht nur unsere Minimal-CD macht, sondern z.B. auch die Rescue-CD.
Siehe auch (in dem dt. WikiPedia-Eintrag für UEFI ist es nicht so exakt dargestellt; deswegen die englische):
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#UEFI_booting
https://en.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface#CSM_booting
Code: | # clear
! check if /sys/firmware/efi exists -> yes -> ok, it was really an uefi boot
# ls /sys/firmware
# ifconfig -a
-> ok -> 192.168.2.101 (ip adress from router)
-> notice name of ethernet interface for later
# ping -c 3 www.gentoo.org
-> ok |
4. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks
Ich nutze den parted weil in der alten Version des AMD64-Handbuchs dieser auch benutzt wurde. Durch die Umstellung auf fdisk siehst/hast Du jetzt sogar zwei Möglichkeiten zu partitionieren; der parted ist aber sehr praktisch um gleich mal die Übersicht Deiner Partitionen auszugeben. Wenn Du fertig bist kannst Du einfach "parted /dev/sda p" - oder noch einfacher: "parted -l" (kleines L wie "list"; gleich für alle Platten) - eingeben und den Output in Deine "install-xxx.txt" kopieren
Ich habe 4 Partitionen angelegt. Die größte (4.te) wird später entweder eine eigene Partition für das /home-Verzeichnis, oder eine komplett verschlüsselte root-Partition. Vorerst wird sie aber nicht genutzt und wir installieren alles in die 3. Ich werde später nur noch "sdXY" verwenden, damit nicht versehentlich eine falsche Partition benutzt wird. Folgendes ist daher nur jetzt noch mit den tatsächlich durchgeführten Partitionen zu sehen (notiere Dir deshalb Deine Partitionen). Da wir UEFI nutzen, muss die ESP-/boot-Partition mit FAT32 formatiert werden ! Siehe auch https://wiki.gentoo.org/wiki/EFI_System_Partition
Edit 2023-09-13: Lies bitte jetzt gleich den 6. Post in diesem Thread !
Falls Du eine Frage zur Größe der swap-Partition hast, lies bitte den nächsten Post in diesem Thread.
Falls Du von einer NVMe booten willst, lies das Kapitel: "Identifying the device" aus: https://wiki.gentoo.org/wiki/NVMe
Code: | # parted -a optimal /dev/sda
> p
! there should be no partition
! if any delete with "rm X"
> mklabel gpt
> unit mib
> mkpart primary 1 256
> name 1 boot
> set 1 boot on
> mkpart primary 256 4096
> name 2 swap
> mkpart primary 4096 53248
> name 3 root
> mkpart primary 53248 -1
> q
# mkfs.fat -F 32 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
# mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/sda3
! wait until finished !!
! I have a SSD, therefore -> (skip this with a hdd)
# tune2fs -o discard /dev/sda3
? Check with: tune2fs -l /dev/sda3
# mount /dev/sda3 /mnt/gentoo |
5. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Stage
ACHTUNG: Lade nicht die normale stage3-amd64, sondern die "stage3-amd64-nomultilib-openrc-2021...tar.xz" aus der Advanced Section herunter ! ... NOMULTILIB | OPENRC ! ... NICHT die Hardened stage3 ! (außerdem habe ich die Datei von meiner anderen Kiste aus, heruntergeladen und kopiere sie jetzt von dort via "scp") Der Link ist auch ein bischen versteckt; deswegen hier nochmal: https://www.gentoo.org/downloads/
Keine Sorge: Die make.conf editieren wir gleich in Schritt 6.
Code: | # ntpd -q -g
# date
-> ok -> 1h before Berlin (winter time; with next step in next chapter it will be correct)
# cd /mnt/gentoo
# scp peter@192.168.2.2:/home/peter/stage3* .
! I skipped verifying and validating - you shouldnt do this
# tar xpvf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner |
6. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Base
Wir werden nicht alles aus diesem Kapitel durchführen, da eine Umstellung der Reihenfolge notwendig ist. Dafür machen wir zusätzliche Dinge. Die "make.conf" ist bezüglich der Use-Flags nicht endgültig. Nutze bitte erstmal diese. Sie wird später noch angepasst, wenn wir zwei Profile zusammen führen.
ACHTUNG: Diese make.conf muss ggf. von Dir angepasst werden, bezüglich der CPU_FLAGS, der Grafik-Karte, der Sound-Karte und der Use-Flags die ich entfernt habe (und der Sprache natürlich, falls nicht dt.) !
Falls dies Deine erste Gentoo Installation ist und Du noch gar nicht weisst welche Werte in die Variablen "VIDEO_CARDS" und "ALSA_CARDS" eingestellt werden sollen, dann übernimm erstmal diese. In A.2 gebe ich Dir alle Links, die Du benötigst. Die korrekten Werte müssen sowieso erst (spätestens) VOR der Installation von X11 drin sein (das ist erst in A.3.7).
Den richtigen Wert für MAKEOPTS= erläutere ich im übernächsten Post.
Damit wir gleich "euse" und "eix" nutzen können, installieren wir das "gentoolkit", welches (stand:heute) nicht in der stage3 ist. Den "emerge -uvND @world" machen wir ebenfalls erst später, wenn wir /var/tmp/portage in das RAM gemountet haben.
Persönliche Anmerkung zu den USE-Flags: Vor (sehr) vielen Jahren war Gentoo ein auf Sicherheit getrimmtes, minimalistisches Linux. Man musste damals wissen welche USE-Flags enabled werden müssen um bestimmte Feautures zu erhalten. Wenn Du beispielsweise 2 Bildschirme an Deiner Grafikkarte hast brauchst Du "xcomposite". Heute ist es - leider - umgekehrt. Damit Gentoo möglichst benutzer-freundlich ist, sind viele USE-Flags standardmäßig aktiviert; heute musst Du wissen, was man deaktivieren muss, wenn man gewisse Dinge nicht benötigt. Deshalb empfehle ich Dir alle folgenden erstmal zu deaktivieren. Falls Du später doch etwas davon haben willst oder benötigst, kannst Du das ganz einfach nachholen: Entferne das jeweilige -USE-Flag und emerge mit Parameter "N" (oder gleich ein "emerge -uNDvp @world").
Edit 2021-10-04: Ja, ich schalte auch IPv6 aus. Eine kurze Begründung findest Du im 5. Post dieses Threads.
Folgende Links waren hilfreich:
https://wiki.gentoo.org/wiki/Localization/Guide
https://wiki.gentoo.org/wiki/UTF-8
https://wiki.gentoo.org/wiki/CPU_FLAGS_X86
https://wiki.gentoo.org/wiki//etc/portage/make.conf
Code: | # mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf
# mkdir -p /mnt/gentoo/etc/portage/repos.conf
# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
# cp -L /etc/resolv.conf /mnt/gentoo/etc/
# mount -t proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --bind /run /mnt/gentoo/run
# chroot /mnt/gentoo /bin/bash
# . /etc/profile
# mount /dev/sdXZ /boot
# emerge-webrsync
# eselect news list
# eselect news read all
# eselect news purge all
# eselect profile list
-> correct setting to: default/linux/amd64/23.0/no-multilib (stable) -> ok
# emerge -1 cpuid2cpuflags
# cpuid2cpuflags
! cp output into make.conf and set some important vars
# nano -w /etc/portage/make.conf
=>
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"
ACCEPT_LICENSE="* -@EULA"
PORTDIR="/var/db/repos/gentoo"
DISTDIR="/var/cache/distfiles"
PKGDIR="/var/cache/binpkgs"
PORTAGE_TEMPDIR="/var/tmp/"
GRUB_PLATFORMS="efi-64"
MAKEOPTS="-j8"
LC_MESSAGES=C
LINGUAS="de"
L10N="de"
ALSA_CARDS="hda-intel"
INPUT_DEVICES="libinput"
VIDEO_CARDS="intel"
EMERGE_DEFAULT_OPTS="--with-bdeps=y"
CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3"
USE="-bluetooth -ipv6 -modemmanager -networkmanager -phonon -ppp -pulseaudio -semantic-desktop -thumbnail -wext -wifi -wireless -xcomposite"
USE="$USE alsa pie threads udev usb"
# gcc 12.2.1 needs:
USE="$USE default-stack-clash-protection default-znow"
<=
? emerge --info
# echo "Europe/Berlin" > /etc/timezone
# emerge --config sys-libs/timezone-data
# date
-> ok - now correct
# nano -w /etc/locale.gen
=> de_DE.UTF-8 UTF-8
# locale-gen
# echo 'GROFF_ENCODING="utf8"' > /etc/env.d/99groff
# eselect locale list
# eselect locale set X
# env-update
# . /etc/profile
# emerge --sync
# emerge -pv gentoolkit
# emerge -pv eix
# emerge -pv pciutils |
Weiter geht es in A.2
Last edited by pietinger on Tue Mar 26, 2024 3:25 pm; edited 42 times in total |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Tue Mar 16, 2021 7:14 pm Post subject: Größe der Swap-Partition |
|
|
Größe der Swap-Partition
Das AMD64-Handbuch empfiehlt die swap-Partition mit einer Größe von 2 x Hauptspeicher anzulegen. Das wären bei 32 GB RAM also 64 GB. Bei einer "kleinen" 512-GB-SSD wären also schon mal 12,5 % der gesamten Kapazität weg.
Frage: Warum haben wir die Swap mit nur knappen 4 GB angelegt ?
Antwort: Wenn Du Hibernation machen möchtest brauchst Du mindestens eine swap mit der Größe Deines Hauptspeichers damit dieser in die swap ausgelagert werden kann. Zusätzlich sollte noch eine Reserve von 1 bis 2 GB dazu genommen werden. NUR - wir erlauben aus Sicherheitsgründen kein Hibernation (siehe B.2) und DANN gilt folgendes:
Du willst nicht an einem System arbeiten welches swapt ! Glaub mir - das macht keinen Spaß.
Ich habe an einer Kiste sogar überhaupt keine swap-Partition (und dies natürlich auch in der Kernel-Config disabled) und an der anderen Kiste habe ich es nur deshalb, weil ich manchmal ein paar Tabs zuviel in meinem Browser öffne ...
Die swap-Partition ist eigentlich nur als Reserve gedacht, wenn man es mal wieder irgendwo übertrieben hat - geht auch ganz leicht mit einem zu hohen MAKEOPTS="-j99" ...
Das heißt, sobald Du merkst dass Deine Kiste zu swappen beginnt, solltest Du ein paar Sachen schließen/beenden. Ich habe es deshalb noch nie geschafft über 1 GB benutzter swap zu kommen - 4 GB als Reserve sind MEHR als genug. Meine Kollegen hatten immer nur 1 oder 2 GB und schimpften mich einen Verschwender; 4 GB ist aber auch die offizielle Empfehlung von RedHat: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/storage_administration_guide/ch-swapspace
Last edited by pietinger on Tue Aug 24, 2021 10:48 am; edited 1 time in total |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Mon Apr 05, 2021 6:23 pm Post subject: |
|
|
Wie hoch setze ich den Wert in: MAKEOPTS="-j " ?
1. Zuerst prüfst Du wieviele Kerne Deine CPU hat. Das ist schon mal das erste Maximum. Bei meinem Intel i7 sind das 8 Kerne, also: "-j8" (ja, SMT zählt dazu; also 8 logische Kerne; vergiß die (alte) Empfehlung: Kerne + 1 ... Messungen zeigten -j8 ist (minimal) schneller als -j9).
2. Dein Hauptspeicher ergibt das zweite Maximum: Bei 16 GB kannst Du ebenfalls "-j8" nehmen; bei 8 GB eben nur "-j4" (ja, einfach halbieren).
Das kleinere Maximum ist ausschlaggebend !
Falls Du einen 4-Kerner mit 16 GB haben solltest, kannst Du nur "-j4" verwenden (höhere Werte würden den emerge wieder verlangsamen).
Falls Du einen 8-Kerner mit nur 8 GB haben solltest (eher unwahrscheinlich), kannst Du auch nur "-j4" verwenden (naja, für alle "kleinen" Pakete geht vielleicht auch -j5 oder -j6).
War das schon alles ?
Nein, leider nicht. Obige Rechnungen gelten leider nicht für einige "Monster-Packages". Es gibt leider ein Package welches bis zu 4 GB Hauptspeicher pro Thread verbrät: RUST. Wenn Du das mit -j8 und nur 16 GB RAM versuchst, wirst Du sicher einen OOM (out of memory) Abbruch bekommen.
Was kann man da machen ?
Es gibt zwei Möglichkeiten:
1. Wenn Du "nur" in der Nacht die Compiles laufen läßt und deswegen NICHT darauf wartest, kannst Du Deine MAKEOPTS auf den sichersten niedrigen Wert einstellen - also: obiger RAM-Wert nochmal geteilt durch 2. Dann läuft halt Dein ganzer "emerge -uvND @world" entsprechend langsamer ... ist in der Nacht aber eh egal.
2. Wenn Du aber darauf wartest und deswegen mit maximaler Geschwindigkeit fahren willst, gibt es eine andere Methode: Du lässt die "harmlosen" kleinen Packages mit Maximum-Wert laufen und definierst für die "Monster" einen anderen Wert. Wie immer zuerst ein Link:
https://wiki.gentoo.org/wiki//etc/portage/package.env
(Nochmals Danke an @asturm der mich daran erinnert hat)
Und das wäre meine Empfehlung für alles was ich hier in A.3 installieren werde:
Code: | # mkdir /etc/portage/env
# nano -w /etc/portage/env/monster.conf
=>
MAKEOPTS="-j3"
<=
# nano -w /etc/portage/package.env
=>
app-office/libreoffice monster.conf
dev-lang/rust monster.conf
dev-qt/qtwebengine monster.conf
sys-devel/gcc monster.conf
<= |
(Dies gilt für meine 16 GB RAM; wenn Du nur 8 GB haben solltest, empfehle ich "-j2" oder sogar nur "-j1" weil "rust" von Version zu Version immer schlimmer wird)
Jetzt kannst Du in Deiner make.conf den maximalen Wert setzen und trotzdem beruhigt Deinen "emerge -uvND @world" laufen lassen ...
... wenn Du nicht nebenbei noch "irre" Sachen machst. Ja, ein Webbrowser schluckt einiges an Hauptspeicher ... 20 offene Tabs und Du hast nicht mehr viel für Deine compiles übrig ...
(So wurde auch schon mal ein OOM produziert)
Edit 2021-12-27: Gerade entdeckt: Es gibt auch einen kurz gehaltenen Eintrag in unserem Wiki dazu:
https://wiki.gentoo.org/wiki/MAKEOPTS
Edit 2023-01-18: Ich habe gerade einen ausführlicheren englisch-sprachigen Artikel dazu ins Wiki gestellt, der auch auf EMERGE_DEFAULT_OPTS eingeht:
https://wiki.gentoo.org/wiki/User:Pietinger/Tutorials/Optimize_compile_times
.
Last edited by pietinger on Wed Jan 18, 2023 6:51 pm; edited 3 times in total |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Wed May 05, 2021 11:15 am Post subject: |
|
|
Da "rust" nun endgültig austickt, muss obiges erweitert werden, WENN Du /var/tmp/portage in das RAM gemountet hast (siehe A.3.1) um keinen Abbruch zu bekommen:
Code: | # mkdir -p /var/tmp/notmpfs
# chown portage:portage /var/tmp/notmpfs
# nano -w /etc/portage/env/notmpfs.conf
=>
PORTAGE_TMPDIR="/var/tmp/notmpfs"
<=
# nano -w /etc/portage/package.env
=>
app-office/libreoffice monster.conf
dev-lang/rust monster.conf notmpfs.conf
dev-qt/qtwebengine monster.conf
sys-devel/gcc monster.conf
<= |
|
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Mon Oct 04, 2021 10:57 am Post subject: Ein Wort zu IPv6 |
|
|
Ein Wort zu IPv6
Ich habe es komplett disabled, weil ich es momentan nicht zwingend benötige. Falls Du es unbedingt BENÖTIGST läßt Du natürlich das USE-Flag "-ipv6" weg und Du wirst es dann bei Deiner Kernel Konfiguration (in A.2) auch nicht rausschmeißen. Eine andere Möglichkeit es zu deaktivieren ist das Ausschalten über Boot-Parameter:
https://madaidans-insecurities.github.io/guides/linux-hardening.html#kasr-boot-parameters
-------------------
Einschub: In o.g. Guide wird als nächstes Sicherheit durch das Ausschalten von Kernel Modulen angesprochen ("2.5.2 Blacklisting kernel modules"). Dies wird für uns uninteressant bleiben, da wir in A.2 nur benötigte Kernel Module enabeln. (Ich habe diesen Guide auch noch einmal in B.2 verlinkt)
-------------------
Ja, IP Version 6 wird unser altes IPv4 irgendwann komplett ablösen; spätestens dann werden wir uns damit auseinander setzen müssen. Bis dahin lies einfach mal das kurze Kapitel:
https://de.wikipedia.org/wiki/IPv6#Datenschutz
Wenn Du jetzt denkst "Moment, dafür gibt es doch die Privacy Extensions", muss ich Dich enttäuschen: Die helfen nicht viel, da alleine schon der Präfix genügen kann, um Dich eindeutig identifizierbar zu machen. Zwei Artikel hierzu:
deutsch: https://wiki.ubuntuusers.de/IPv6/Privacy_Extensions/
https://wiki.archlinux.org/title/IPv6
Edit 2022-06-07: Solange nicht abzusehen ist wohin die Reise mit v6 geht, bleibe ich solange wie möglich auf v4. Folgender Artikel zeigt auch die Tendenzen zur Überwachung: https://www.heise.de/news/Angst-vor-Zensur-China-wirbt-im-Protokollkrieg-auf-ITU-Ebene-fuer-IPv6-7134187.html
Wenn Du IPv6 haben willst, lies neben dem ganzen WikiPedia-Artikel über IPv6 auch noch:
https://wiki.gentoo.org/wiki/User:NeddySeagoon/IPv6
https://wiki.gentoo.org/wiki/IPv6_Static_Addresses_using_Tokens
... und ...
https://tldp.org/HOWTO/Linux+IPv6-HOWTO/
Wenn Du es immer noch haben willst, solltest Du Dich wirklich sehr gut in der Konfiguration einer FireWall auskennen. Denn während wir bei IPv4 komplett ICMP verbieten können (und es aus sicherheitsgründen auch tun), ist dies bei IPv6 nicht möglich; dadurch wird eine FireWall Konfiguration (egal ob über ip6tables oder nftables) für IPv6 "ein wenig" komplexer ...
... und selbst wenn Du "nur" IPv4 hast, solltest Du niemals Traffic über den UDP Port 3544 rauslassen. Siehe auch:
https://de.wikipedia.org/wiki/Teredo
(deswegen benötigen wir auch B.1 komplett) |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Wed Sep 13, 2023 1:02 pm Post subject: Neuer Mountpoint für die ESP |
|
|
Neuer Mountpoint für die ESP
Ich schreibe diesen Post weil es demnächst eine Änderung geben wird, die teilweise schon in unserem AMD64 Handbuch eingepflegt wurde, aber teilweise in anderen Artikeln unseres Wiki's fehlen. Das kann zur Verwirrung führen. Deshalb will ich hier ausführlich darüber berichten. Zuvor aber noch einmal eine Wiederholung zum Thema
Mounten - Mountpunkt
Wenn Dir das Prinzip absolut vertraut ist, dann überspringe dieses Kapitel.
Wir haben eine Root-Partition mit allen wichtigen Verzeichnissen (directories), wie z.B. /etc und /usr. Wenn wir eine zusätzliche Partition haben - und diese nutzen/ansprechen/lesen/schreiben wollen - müssen wir diese zusätzliche Partition in unser Root-Verzeichnis einbinden ... mounten ! Dazu benötigen wir einen Mountpunkt. Dazu nehmen wir einfach ein leeres Verzeichnis welches wir - irgendwo - in unserem Root-Verzeichnis erstellt haben. Warum habe ich "irgendwo" geschrieben ? Weil dieses Verzeichnis nicht mal zwingend ein primäres Verzeichnis - direkt als erstes - in unserem Root-Verzeichnis sein muss. Denke beispielsweise an /mnt/stick. Es kann aber natürlich auch ein primäres sein ... wie z.B. /boot. Warum sollte dieses Verzeichnis leer sein ? Weil Du auf den Inhalt dieses Verzeichnisses nicht (mehr) zugreifen kannst, nachdem Du eine Partition auf dieses Verzeichnis gemountet hast ! Dann erscheint nämlich der Inhalt der Partition in diesem Verzeichnis. (Ja, es ist kein Muss; wenn Du diese Partition wieder unmountest hast Du wieder den ursprünglichen Inhalt zur Verfügung; aber wie gesagt, sowas "macht man nicht"). Es ist natürlich egal ob diese zusätzliche Partition irgendwo auf unserer Festplatte liegt, oder auf einem USB-Stick (oder sonstwo) - Hauptsache der Kernel kann diese Partition ansprechen. Kann also auch eine Partition auf einem Smartphone sein, welches mit Deinem PC verbunden ist.
Verzeichnis / Mountpunkt /boot
Dieses Verzeichnis ist bereits erstellt, wenn Du eine Stage3 installierst. Es wurde schon früher als Mountpunkt für eine Extra-Partition verwendet, in der sich der Kernel befindet. Es war/ist Gepflogenheit diese Partition nicht automatisch beim Systemstart zu mounten (über /etc/fstab) damit der Kernel vor Veränderungen gut geschützt ist. Später hat der Grub den Lilo als Bootmananager abgelöst; der Grub hat sich dann auch in das Verzeichnis /boot/grub installiert und war somit auch (zusammen mit dem Kernel) auf dieser Extra-Partition. Dann kam UEFI ... (zuerst nur EFI Extensible Firmware Interface von Microsoft; später das Unified EFI.)
UEFI benötigt zwingend eine eigene Partiton ... die ESP Efi System Partition. Diese ESP muss zwingend mit einer FAT-Variante formatiert sein ... und muß natürlich irgendwo in unser Root-Verzeichnis gemountet werden. Meistens wurde dafür das eh' schon vorhandene Verzeichnis /boot hergenommen. In dieser ESP muss zwingend ein Verzeichnis namens "efi" sein. Wenn Du also diese ESP nach /boot mountest hast Du Zugriff auf dieses Verzeichnis über /boot/efi ! In diesem Verzeichnis - exakter noch ein Verzeichnis tiefer; z.B. /boot/efi/gentoo - befindet sich mindestens eine Datei die auf *.efi endet. DAS ist das Binary welches von UEFI (=Dein "BIOS") gestartet wird ... also z.B. der grub Bootmanager (/boot/efi/gentoo/grubx64.efi) oder auch irgendwas anderes ... z.B. auch direkt ein Linux Kernel - ein Stub Linux Kernel (das kommt aber später in B.2)
Soweit so klar ?!
Jetzt war es allerdings einigen Linux-Anwendern unangenehm dass grub und die Kernels in einer FAT-Partition liegen und sie wollten das ganze in einer EXT4-Partition (oder sonstein anderes Linux Filesystem) haben. Deshalb haben sie etwas geändert:
Sie haben im Verzeichnis /boot ein Unterverzeichnis "efi" angelegt und die ESP dorthin gemountet. Wenn sie also das efi-Verzeichnis DER ESP ansprechen wollten, mussten sie in /boot/efi/efi reingehen. Aber es hatte den "Vorteil" das der Inhalt von /boot selbst ja in der Root-Partition liegt (und damit z.B. EXT4 ist)
Exkurs: Ja, es gab sogar eine dritte "Lösung" Einige hatten zwei Extra-Partitionen angelegt. Ein mit FAT ... für ESP und eine zusätzliche Boot-Partition (z.B. EXT4). Sie mussten also zuerst diese zusätzliche Boot-Partition nach /boot mounten; danach dann die ESP nach /boot/efi.
Immer noch alles klar ?
Aufgrund der damals häufigen Verwirrung zwischen /boot/efi und /boot/efi/efi hat "man" nun eine zusätzliche Verwirrung eingeführt: die ESP soll nun auf ein neues Verzeichnis im Root-Verzeichnis gemountet werden ... und zwar /efi
(Was für Idioten; wenn schon ein extra neues Verzeichnis, dann nehme ich doch bitteschön den Namen her von dem was ich da einbinde: also /esp. Dann hätte ich später ein /esp/efi/gentoo statt dem dämlichen /efi/efi/gentoo)
Neues Verzeichnis / Mountpunkt /efi
Das findest Du hier (blättere weit nach unten):
https://uapi-group.org/specifications/specs/discoverable_partitions_specification/
Gentoo hat das heute als Aufgabe definiert:
https://wiki.gentoo.org/index.php?title=Project:Handbook&curid=190180&diff=1260630&oldid=1258723
und wurde hier bereits aktualisiert:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks#Partitioning_the_disk_with_GPT_for_UEFI
ebenso nun auch in:
https://wiki.gentoo.org/wiki/EFI_System_Partition
https://wiki.gentoo.org/wiki/Efibootmgr
https://wiki.gentoo.org/wiki/EFI_stub
https://wiki.gentoo.org/wiki/GRUB
Empfehlung
Gehe gleich diesen neuen Weg und wundere Dich nicht, wenn Du jetzt /efi/efi/gentoo hast. Wenn du irgendwo "mount /boot" liest, ändere es auf "mount /efi". Ändere auch Deinen Eintrag für die ESP in Deiner /etc/fstab entsprechend.
... ich habe aber jetzt in meinem Guide nichts geändert, weil Du ja jetzt weisst, welche Möglichkeiten Du hast. Ich persönlich ändere meine bestehende Installation nicht ... und falls ich zukünftig mal ein neues Gentoo installieren muss (die Zeit wird sicherlich kommen wenn neuer PC) werde ich - rein als Revolutzer - /esp verwenden, haha. Das ist aber keine Empfehlung von mir
Edit 2023-09-27: ... ganz vergessen ... ich habe später auch noch einen engl. Artikel geschrieben: https://forums.gentoo.org/viewtopic-t-1165115-highlight-.html ... der auch hübsch derailed wurde
. |
|
Back to top |
|
|
4761 n00b
Joined: 08 Mar 2023 Posts: 54
|
Posted: Mon Mar 18, 2024 5:27 pm Post subject: |
|
|
Moinsen, wie versprochen hier noch ein Kommentar unter einem anderem Post.
Zusätzlich zu dieser Reihe nutze ich diesen Post aus 2021 als Referenz.
In Abschnitt 5 wird darauf eingegangen, dass das System neu gebootstrapped wird.
Das hast du in deiner Reihe ja mehr oder weniger komplett ausgelassen.
Würdest du sagen, dass es trotzdem sinnvoll ist den Bootstrap wie hier durchzuführen?
Danke schon mal!
~4761 |
|
Back to top |
|
|
pietinger Moderator
Joined: 17 Oct 2006 Posts: 5169 Location: Bavaria
|
Posted: Mon Mar 18, 2024 6:04 pm Post subject: |
|
|
Zuerst sollte man wissen, dass die Notwendigkeit sich eine eigene Bootstrap zu bauen noch aus der Zeit stammt, als man mit einer Stage1 begonnen hat Gentoo zu installieren (das ist wirklich lange her). Wenn ich mir heute in https://www.gentoo.org/downloads/ ansehe, wie aktuell eine Stage3 ist (Stand heute: 2024-03-12 == also 6 Tage alt), dann ist es m.M nach überhaupt nicht mehr nötig soetwas zu tun ... außer ...
... es gibt ganz spezielle Gründe hierfür. Ein Grund "könnte" zum Beispiel sein, dass (noch unter den alten 17.1-Profiles) der GCC zwei optionale Use-flags hat, die man aktivieren möchte, um DANN alle Pakete damit zu kompilieren ... ich habe das bei meiner letzten Installation auch gemacht und deshalb einen world-update mit Parameter "-e" gefahren ...
( siehe unter Punkt A.3.4 in https://wiki.gentoo.org/wiki/User:Pietinger/temp/delete_me )
Normalerweise reicht aber ein "emerge -uNDv @world" um die Änderungen der letzten 6 Tage zu aktualisieren. _________________ https://wiki.gentoo.org/wiki/User:Pietinger |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|