Benutzer-Werkzeuge

Webseiten-Werkzeuge


debian

Dies ist eine alte Version des Dokuments!


Debian

LMDE vs Debian | DistroWars

Debian ist eine Linux-Distribution, die seit Version 6.0 ausschließlich Freie Software enthält. Debian basiert seit der 1996 veröffentlichten ersten stabilen Version 1.1 Buzz bis zur Version 5.0.8 Lenny auf dem Linux-Kernel. Seit Version 6.0 Squeeze, wird auch ein FreeBSD-Kernel unterstützt. Ab Version 7.0 Wheezy wird auch GNU Hurd unterstützt werden.

Weil die meisten grundlegenden Systemwerkzeuge vom GNU-Projekt stammen, wird auch von Debian GNU/Linux gesprochen.

Linuxdistributionen, die auf Debian GNU/Linux basieren:

der alternative WindowManager:

> dpkg-reconfigure locales

APT

siehe: apt

Allgemeines

Installation

Die Installation von Firmware-Paketen erfordert höchstwahrscheinlich die Aktivierung des non-free-Abschnitts des Debian-Archivs. In Debian GNU/Linux 11.0 erledigt der Befehl isenkram-autoinstall-firmware dies automatisch für Sie, indem eine entsprechende Datei (/etc/apt/sources.list.d/isenkram-autoinstall-firmware.list) im System angelegt wird, die auf einen generischen Spiegelserver zeigt.

ISO-Image auf einen USB-Stick (/dev/sdg) schreiben:

> dd if=/dev/zero of=/dev/sdg bs=1M count=1024
> parted /dev/sdg
(parted) mklabel gpt
(parted) u %
(parted) mkpart primary 0% 100%
(parted) p
(parted) q

> dd if=debian-11.5.0-amd64-DVD-1.iso of=/dev/sdg1

ich brauche beispielsweise diese hier:

> apt install net-tools
> apt install vim screen mc vlc mplayer ffmpeg mkvtoolnix autofs cifs-utils sysstat smbclient flatpak gnome-software-plugin-flatpak gir1.2-gtop-2.0

Pakete die ich immer als erstes installiere und konfiguriere

### Debian 11 (11.5)
> apt install xterm mc screen vim zfsutils-linux autofs smbclient cifs-utils openvpn net-tools bridge-utils openvpn-systemd-resolved command-not-found chromium chromium-l10n thunderbird thunderbird-l10n-de vlc mplayer icewm software-properties-common apt-transport-https wget ca-certificates gnupg2 curl gir1.2-gtop-2.0 nvidia-detect nvidia-driver

> echo "let g:skip_defaults_vim = 1" > ~/.vimrc
> echo "set mouse-=a" > ~/.vimrc
> echo -e ":colors delek\n:setl noai nocin nosi inde=\nfiletype indent off\n" > ~/.vimrc

Client für Microsoft Teams installieren

Nvidia-Treiber installieren

Debian 12

siehe apt_quellen für das hinzufügen von non-free repos (empfohlen: main contrib non-free-firmware non-free)

# linux kernel image & headers
> apt install linux-image-generic linux-headers-generic

# driver, video acceleration, vulkan
> apt install firmware-misc-nonfree nvidia-detect nvidia-driver nvidia-settings nvidia-smi nvidia-suspend-common nvidia-vaapi-driver nvidia-vdpau-driver nvidia-vulkan-common

# driver, video acceleration, vulkan, cuda
> apt install firmware-misc-nonfree nvidia-detect nvidia-driver nvidia-settings nvidia-smi nvidia-suspend-common nvidia-vaapi-driver nvidia-vdpau-driver nvidia-vulkan-common nvidia-cuda-dev nvidia-cuda-toolkit nvidia-cudnn
# for wayland
> echo 'GRUB_CMDLINE_LINUX="$GRUB_CMDLINE_LINUX nvidia-drm.modeset=1"' > /etc/default/grub.d/nvidia-modeset.cfg

> vim /etc/modprobe.d/nvidia-options.conf
options nvidia NVreg_PreserveVideoMemoryAllocations=1
options nvidia-current NVreg_PreserveVideoMemoryAllocations=1

> systemctl enable nvidia-hibernate.service nvidia-resume.service nvidia-suspend.service

> update-initramfs -k all -u
> update-grub
# reboot or continue with secure boot setup and then reboot

Secure Boot & DKMS

detaillierte Infos:https://wiki.debian.org/SecureBoot

zuerst prüfen, ob bereits ein bestehender MOK (Machine Owner Key) vorhanden ist, falls nicht siehe Debian Wiki wie und wo man einen MOK erstellt

> ls -aFhl /var/lib/dkms /var/lib/shim-signed/mok

Den Pfad zum vorhandenen oder erstellten MOK in DKMS konfigurieren (default: /var/lib/dkms)

> vim /etc/dkms/framework.conf
mok_signing_key=/var/lib/dkms/mok.key
mok_certificate=/var/lib/dkms/mok.pub

nvidia-kernel-dkms neubauen, neuinstallieren und initramfs neubauen

> dkms status
> modinfo nvidia-current
> dkms build nvidia-current/525.147.05 --force
> dkms install nvidia-current/525.147.05 --force
> update-initramfs -k all -u
> update-grub

MOK importieren, neustarten und testen ob erfolgreich (passwort muss vergeben werden und beim reboot bestätigt werden)

# has to be DER format
> mokutil --import /var/lib/dkms/mok.pub
# after reboot check if it was successful
> mokutil --test-key /var/lib/dkms/mok.pub

Secure Boot & DKMS reparieren

Bei einem UEFI Update oder auf andere Weise kann es passieren, dass der MOK Key nicht mehr im UEFI hinterlegt ist und der Booteintrag für SHIM fehlt. Wenn nur der Key im UEFI fehlt, sollte MOK Manager von SHIM automatisch gestartet werden, damit der Key neu enrolled werden kann, falls MOK Manager den Key nicht mehr kennt, einfach den Anweisungen von oben folgen (mok mit mokutil importieren). Wenn der SHIM Booteintrag fehlt, kann dieser einfach wieder neu angelegt werden, wenn alle Booteinträge fehlen, muss mit einem Linux USB Recovery image nachgeholfen werden und zur not grub o.ä. neu installiert werden (letzteres sollte aber normalerweise nicht vorkommen, da uefi die efi partition finden sollte und so zumindest den nicht secure boot fähigen booteintrag anlegt).

Fall: Booteintrag für shim fehlt, daher wird versucht grub direkt zu booten und Secure Boot verhindert dies.

Lösung:

  • Secure Boot deaktivieren
  • boot
  • den schritt "MOK importieren" (siehe secure boot setup oben) ausführen (falls noch nicht erledigt, seitdem secure boot nicht mehr funktioniert)
  • booteinträge mit efibootmgr neu erstellen (siehe unten)
  • reboot
  • MOK Manager sollte automatisch starten und key enroll ermöglichen
  • Secure Boot aktivieren
# show current uefi boot entries
efibootmgr
 
# optional: if exist delete automatically created entry for grub as for demonstration purposes we create both ourself (with proper labels)
# (note correct boot number from above command to not accidentally delete the wrong one, in this example windows has 0 and linux has 1)
efibootmgr --bootnum 1 --delete-bootnum
 
# create boot entry for shim which chainloads grub (secure boot)
efibootmgr --create --disk /dev/nvme0n1 --loader '\EFI\debian\shimx64.efi' --label 'debian - shim'
 
# optional: recreate default boot entry for grub (non secure boot)
efibootmgr --create --disk /dev/nvme0n1 --loader '\EFI\debian\grubx64.efi' --label 'debian - grub'
 
# optional: update boot order
efibootmgr --bootorder 1,2,0
 
# optional: set boot next (this will temporarily overwrite the bootorder and boot the specified entry only on the next boot)
efibootmgr --bootnext 1
 
efibootmgr

Hier wird angenommen, dass sich die EFI Partition auf der disk /dev/nvme0n1 befindet. Bezüglich des Pfads:

  • efi partition finden: output von mount | grep -Ei '(efi|vfat)' ist z. B. /dev/nvme0n1p1 on /boot/efi, d.h. die efi partition ist auf /boot/efi gemountet
  • efi bootloader finden: output von find /boot/efi -type f -iname '*.efi' ist z. B. /boot/efi/EFI/debian/shimx64.efi
  • daraus ergibt sich der EFI Pfad: \EFI\debian\shimx64.efi (relativ zum mountpoint der efi partition, daher wird die partition im kommando nicht angegeben, also /dev/nvme0n1 und nicht /dev/nvme0n1p1)
  • Wichtig: UEFI nutzt backslash (\) als Pfadtrennzeichen

Debian 11

Der "nouveau"-Treiber ist Schrott! Der bringt mein System (mit einer "GeForce GTX 1650") zum stehen bzw. zum Absturz!

> lsb_release -cs
bullseye

> vi /etc/apt/sources.list.d/nvidia.list
deb http://deb.debian.org/debian/ bullseye-updates main non-free contrib
#deb-src http://deb.debian.org/debian/ bullseye-updates main non-free contrib
#
deb http://deb.debian.org/debian/ bullseye main non-free contrib
#deb-src http://deb.debian.org/debian/ bullseye main non-free contrib
> apt update
> apt install nvidia-detect nvidia-driver
> nvidia-detect
...
It is recommended to install the
    nvidia-driver
package.
> apt install nvidia-driver
> reboot
> nvidia-settings

Taktfrequenz per Kommandozeile verstellen

minimale Taktfrequenz per Kommandozeile einstellen:

# cpufreq-set -f $(awk '{print $NF}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies)

maximale Taktfrequenz per Kommandozeile einstellen:

# cpufreq-set -f $(awk '{print $1}' /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies)

IBM Informix DB

Hier wird beispielhaft beschrieben, wie man eine IBM Informix DB auf einem Ubuntu 10.04 installiert:

Netzwerkkonfiguration

# vi /etc/network/interfaces

bei dynamischer IP-Zuweisung wird nichts spezielles zur Netzwerkkarte in die Konfigurationsdatei geschrieben:

# The loopback network interface
auto lo
iface lo inet loopback

bei statischer IP-Konfiguration wird alles in die Konfigurationsdatei geschrieben:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
        address 192.168.1.251
        netmask 255.255.255.0
        gateway 192.168.1.254
        # dns-* options are implemented by the resolv.conf package, if installed
        dns-nameservers 192.168.1.4

bei einer WLAN-Konfiguration wird dem entsprechenden Netzwerkgerät die WPA-Supplicant-Konfigurationsdatei übergeben:

# The loopback network interface
auto lo
iface lo inet loopback

# W-LAN
auto wlan0
iface wlan0 inet dhcp
      wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

laut Debian-Handbuch

DHCP

/etc/systemd/network/dhcp.network
[Match]
Name=en*
 
[Network]
DHCP=yes

so funktioniert es bei mir:

/etc/systemd/network/default.network
# systemctl --version -> systemd 252
[Match]
Name=eth0 enp0s*
 
[Network]
DHCP=true
DHCPServer=false
IPv6LinkLocalAddressGenerationMode=stable-privacy
LLMNR=false
MulticastDNS=false
DNSOverTLS=false
DNSSEC=false
IPv6PrivacyExtensions=false
IPv6AcceptRA=true
 
[Route]
Gateway=_dhcp4
Gateway=_ipv6ra
GatewayOnLink=true
 
[DHCPv4]
SendHostname=true
Anonymize=true
 
[DHCPv6]
RapidCommit=true
 
[IPv6AcceptRA]
Token=prefixstable

statisch

/etc/systemd/network/static.network
[Match]
Name=en*
 
[Network]
Address=192.168.1.251/24
Gateway=192.168.1.254
/etc/resolv.conf
domain fritz.box
nameserver 192.168.1.254

Installation automatisieren

FIXME

Preseed-Datei

Mit dieser Datei kann man die Fragen schon im Vorfeld beantworten, die das Installationsprogramm stellt.

Das Debian Administrationshandbuch - 12.3. Automatische Installation

Eine Preseed-Datei verwenden

Es gibt mehrere Orte, an denen das Installationsprogramm eine Preseed-Datei erhalten kann:

  • in der initrd, die zum Hochfahren des Rechners verwendet wird; in diesem Fall geschieht das Preseeding ganz zu Anfang der Installation, und alle Fragen können vermieden werden. Die Datei muss nur preseed.cfg genannt und im Hauptverzeichnis von initrd gespeichert werden.
  • auf den Boot-Medien (CD oder USB-Stick); das Preseeding geschieht dann, sobald das Medium eingehängt ist, das heißt, gleich nach den Fragen nach der Sprache und der Tastaturbelegung. Der Boot-Parameter preseed/file kann benutzt werden, um den Ort der Preseed-Datei anzugeben (zum Beispiel /cdrom/preseed.cfg, wenn die Installation von einer CD-ROM aus erfolgt, oder /hd-media/preseed.cfg im Falle eines USB-Sticks).
  • from the network; preseeding then only happens after the network is (automatically) configured; the relevant boot parameter is then preseed/url=http://server/preseed.cfg (HTTPS, FTPS, SFTP, etc. are not supported).

Auf den ersten Blick sieht es so aus, als bestehe die interessanteste Lösung darin, die Preseed-Datei in die initrd einzufügen; jedoch wird dies in der Praxis selten genutzt, da es recht kompliziert ist, eine Installations-initrd zu erstellen. Die anderen beiden Lösungen finden sich weit häufiger, vor allem da Boot-Parameter einen weiteren Weg zur Bereitstellung von Antworten auf die ersten Fragen des Installationsprozesses darstellen. Um sich die Mühe zu sparen, diese Boot-Parameter bei jeder Installation von Hand einzugeben, besteht der übliche Weg darin, sie in der Konfiguration für isolinux (im Falle der CD-ROM) oder für syslinux (beim USB-Stick) abzuspeichern.

Eine Preseed-Datei erstellen

Eine Preseed-Datei ist eine reine Textdatei, in der jede Zeile die Antwort auf eine Debconf-Frage enthält. Eine Zeile ist über vier Felder aufgeteilt, die durch Leerraum (Leerzeichen oder Tabulatoren) getrennt sind (z.B.: d-i mirror/suite string stable):

  • das erste Feld ist der „Besitzer“ der Frage; „d-i“ wird für Fragen verwendet, für die das Installationsprogramm zuständig ist, es kann aber auch ein Paketname sein für Fragen, die von Debian-Paketen kommen;
  • das zweite Feld ist eine Kennung für die Frage (der Vorlagenname);
  • das dritte die Art der Frage;
  • das vierte und letzte Feld enthält den Eingabewert für die Antwort. Man beachte, dass es vom dritten Feld durch ein einzelnes Leerzeichen getrennt sein muss; gibt es weitere, so werden alle folgenden Leerzeichen als Teil des Eingabewerts betrachtet.

Auf https://u-labs.de/portal/debian-automatisiert-installieren-einrichten-so-funktioniert-preseed-voreinstellung-einstieg-fuer-anfaenger/ findet man ein Beispiel für eine preseed.cfg-Datei:

preseed.cfg
### Allgemeines
# Verhindert weniger wichtige Nachfragen
# https://www.debian.org/releases/sarge/s390/ch05s02.html.en
# https://preseed.debian.net/debian-preseed/bullseye/amd64-main-full.txt
d-i debconf/priority string critical
# Deaktiviert die Meldung am Ende, dass die Installation abgeschlossen wurde und man neu starten kann
d-i finish-install/reboot_in_progress note
 
# Gibt an, ob Infos zum Nutzungsverhalten (installierte/verwendete Software) an Debian gesendet werden
popularity-contest popularity-contest/participate boolean false
# Proprietaere Firmware laden (falls es zu Hardwareproblemen kommt)
#d-i hw-detect/load_firmware boolean true
 
### Lokalisierung
d-i debian-installer/locale string de_DE
# Keymap setzen reicht nicht, layout/variantcode hilft ebenfalls nicht: https://groups.google.com/g/linux.debian.bugs.dist/c/XYcrRjLwpQM
d-i keyboard-configuration/variant select Deutschland
d-i keyboard-configuration/xkb-keymap select de
 
d-i clock-setup/utc boolean true
d-i tzdata/Areas select Europe
tzdata/Zones/Europe select Berlin
d-i time/zone string Europe/Berlin
 
### Partitionierung
# Grub wird automatisch auf den MBR installiert, wenn kein anderes OS vorhanden ist (sicher)
d-i grub-installer/only_debian boolean true
# MBR installation ebenfalls wenn andere OS vorhanden sind (koennte dazu fuehren, dass diese nicht mehr booten)
#d-i grub-installer/with_other_os boolean true
# Verhindert, dass grub alternativ fragt, wo er installiert werden soll
#d-i grub-installer/bootdev string /dev/sda
# Fuer die vollautomatische Partitionierung (falls unten aktiv) - Beispiel Lenovo Tiny mit NVMe-SSD
# VirtualBox -> /dev/sda, KVM -> /dev/vda
#d-i partman-auto/disk string /dev/nvme0n1
 
# Fuer lvm 'lvmcfg/vgdelete_confirm', 'partman-lvm/confirm' und 'partman-lvm/confirm_nooverwrite' setzen
# Siehe https://www.debian.org/releases/stable/s390x/apbs04.de.html Abschnitt B.4.7.1.
d-i partman-auto/method string regular
# Alle Daten auf einer Partition (mit 'home' wird das Home-Verzeichnis auf eine eigene Partition gelegt)
d-i partman-auto/choose_recipe select atomic
 
# Komplett automatisiert ohne Bestaetigung fuer alle Partitionierungsmethoden (Mit Vorsicht verwenden!)
# d-i partman/choose_partition select finish
# d-i partman/confirm boolean true
# d-i partman/confirm_nooverwrite boolean true
# d-i partman-partitioning/confirm_write_new_label boolean true
# d-i partman-md/confirm boolean true
# d-i partman-md/deleteverify boolean true
# d-i lvmcfg/vgdelete_confirm boolean true
# d-i partman-lvm/vgdelete_confirm boolean true
# d-i partman-lvm/device_remove_lvm boolean true
# d-i partman-lvm/confirm boolean true
# d-i partman-lvm/confirm_nooverwrite boolean true
 
### Software
d-i mirror/country string manual
d-i mirror/http/hostname string ftp2.de.debian.org
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string
 
# Aktiviert Spiegelserver abseits der Sicherheitsupdates per Netzwerk statt Image
d-i apt-setup/use_mirror boolean true
d-i apt-setup/disable-cdrom-entries boolean true
# Aktiviert offizielle, aber unfreie Repositorys: https://wiki.debian.org/SourcesList
#d-i apt-setup/non-free boolean true
#d-i apt-setup/contrib boolean true
 
# Vorinstallierte Software
# Programmgruppe kann festlegen, ob z.B. Headless oder eine bestimmte Desktopumgebung (xfce-desktop, kde-desktop usw) vorinstalliert werden soll (siehe B.4.10)
tasksel tasksel/first multiselect standard, ssh-server
#tasksel tasksel/first multiselect standard, gnome-desktop
 
d-i pkgsel/install-language-support boolean true
d-i pkgsel/update-policy select Install security updates automatically
# Alle Pakete automatisch aktualisieren
d-i pkgsel/upgrade select full-upgrade
d-i pkgsel/include string openssh-server git vim htop
 
# Stdout Weiterleitungen funktionieren in in-target nicht ohne --pass-stdout
# Siehe https://askubuntu.com/a/1248987/650986 und https://serverfault.com/questions/390122/how-do-i-pipe-commands-together-in-a-debian-preseed-file
d-i preseed/late_command string \
    in-target sudo -u u-labs bash -c "cd /home/u-labs/; mkdir .fzf; cd .fzf; git clone https://github.com/junegunn/fzf.git .; bash ./install --all"; \
    in-target --pass-stdout bash -c "echo 'u-labs ALL=NOPASSWD:ALL' > /etc/sudoers.d/u-labs"; \
    in-target update-alternatives --set editor /usr/bin/vim.basic
 
### Benutzerkonten
d-i passwd/username string u-labs
d-i passwd/user-fullname string u-labs
d-i passwd/user-uid string 1000
d-i passwd/user-password password u-labs
d-i passwd/user-password-again password u-labs
# root
d-i passwd/root-password password u-labs
d-i passwd/root-password-again password u-labs
 
# Fuer Testsysteme kann die Policy strikter PWs abgeschaltet werden
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
 
### Netzwerk
d-i netcfg/enable boolean true
d-i netcfg/choose_interface select auto
d-i netcfg/hostname string vdebian01

FAI

Fully Automatic Installer

https://fai-project.org/

Fully Automatic Installer ist vielleicht das älteste automatische Einrichtungssystem für Debian, wodurch sich sein Status als Referenz erklärt. Seine sehr flexible Art ist jedoch nur ein schwacher Ausgleich für die mit ihm einhergehende Kompliziertheit.

/home/http/wiki/data/attic/debian.1770937926.txt · Zuletzt geändert: von david