Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
A1 Tips und Beginn der Installation
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation
View previous topic :: View next topic  
Author Message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 652
Location: Bavaria

PostPosted: Sat May 09, 2020 4:59 pm    Post subject: A1 Tips und Beginn der Installation Reply with quote

(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" and not a "0 = zero"
abtippst und deswegen die Installation komplett abbricht (wie soeben wieder einmal geschehen ...).

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".

Wundere Dich nicht wenn ich den Grub2 installiere, obwohl dieser später nicht mehr 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

3. https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Networking
Code:
# clear
! check if /sys/firmware/efi exists -> yes -> ok, it was really an uefi boot
# ls /sys/firmware
# /etc/init.d/dhcpcd start
- wait 3 sec.
# ifconfig
-> ok -> 192.168.2.101 (ip adress from router)
# 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" 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. Falls Du eine Frage zur Größe der swap-Partition hast, lies bitte den nächsten Post in diesem Thread.
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 128
> name 1 boot
> set 1 boot on
> mkpart primary 128 4096
> name 2 swap
> mkpart primary 4096 36864
> name 3 root
> mkpart primary 36864 -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 !!
# tune2fs -o user_xattr /dev/sda3
! 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" sondern die "stage3-amd64-nomultilib" herunter ! ... NOMULTILIB ! (außerdem habe ich die Datei von meiner anderen Kiste aus, heruntergeladen und kopiere sie jetzt von dort via "scp") Keine Sorge: Die make.conf editieren wir gleich in Schritt 6.
Code:
# ntpd -q -g
# date
-> ok -> 1h before Berlin
# 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. Damit wir gleich "euse" 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.

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.). Den richtigen Wert für MAKEOPTS= erläutere ich im übernächsten Post. Dieser Link dürfte auch hilfreich sein:
https://wiki.gentoo.org/wiki/Localization/Guide
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
# chroot /mnt/gentoo /bin/bash
# . /etc/profile
# mount /dev/sdXZ /boot
# emerge-webrsync
# eselect news list
# eselect news read all
# eselect news purge all
# emerge --sync
# eselect profile list
-> correct setting to 17.1/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 i965"
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 -gnome -ipv6 -modemmanager -networkmanager -phonon -ppp -pulseaudio -semantic-desktop -thumbnail -wext -wifi -wireless -xcomposite"
USE="$USE acpi alsa branding dvd dvdr pci pie threads udev udisks usb"
<=
? 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 -pv gentoolkit
# emerge -pv pciutils


Weiter geht es in A.2


Last edited by pietinger on Mon Apr 05, 2021 6:38 pm; edited 4 times in total
Back to top
View user's profile Send private message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 652
Location: Bavaria

PostPosted: Tue Mar 16, 2021 7:14 pm    Post subject: Größe der Swap-Partition Reply with quote

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.
Back to top
View user's profile Send private message
pietinger
l33t
l33t


Joined: 17 Oct 2006
Posts: 652
Location: Bavaria

PostPosted: Mon Apr 05, 2021 6:23 pm    Post subject: Reply with quote

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 wären das 8 Kerne (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 8 Kerner mit nur 8 GB haben solltest (eher unwahrscheinlich) kannst Du also trotzdem 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 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/mybig.conf
=>
MAKEOPTS="-j3"
<=
# nano -w /etc/portage/package.env
=>
app-office/libreoffice mybig.conf
dev-lang/rust mybig.conf
dev-qt/qtwebengine mybig.conf
sys-devel/gcc mybig.conf
<=


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)
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Deutsche Dokumentation All times are GMT
Page 1 of 1

 
Jump to:  
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