Debian Stretch/Sid - Kleine Tipps

1. /etc/fstab anpassen

Die Mount-Optionen der Festplatten festzulegen ist ein Weg um mehr Performance zu gewinnen.

Links:

Inbesondere bei SSDs erhöht ein Reduzieren der Schreibzugriffe die Haltbarkeit.
Hierzu gibt es u.a. folgende Mount-Optionen:

commit=600 legt fest, dass die Dateisystemtabelle nur alle 600 Sekunden auf die Festplatte geschrieben und bis dahin im Arbeitsspeicher zwischengespeichert wird.
Für SSDs wird anscheinend öfters dieser Wert empfohlen. Möchte man weniger Risiko mit Datenverlust eingehen, da hier bei einem Absturz oder Stromausfall bis zu 10 Minuten an nicht geschriebenen Daten verloren gehen können, ließe sich der Wert auch auf 300 reduzieren, oder 60. Je nachdem ob Arbeits-Partition oder Spiele-Partition schwanke ich derzeit zwischen 60 und 300. Bei mehreren Paritionen lassen sich unterschiedliche Werte festlegen.

Bei gewöhnlichen Festplatten (Heise: 1, 2) reicht ein Wert von 30 oder 60, weil deren Haltbarkeit nur wenig von Schreibzugriffen beeinflusst wird.

Mit relatime werden Zeitdaten von Dateizugriffen nur in bestimmten Zeitabständen gespeichert - je nach Distribution ist diese Option bereits standardmäßig eingerichtet. Auf manchen Webseiten wird noatime empfohlen, da damit Zeitdaten generell nicht gespeichert werden - im Gegensatz zum früher verwendeten atime (sofortige Speicherung). Jedoch kann es zu Problemen führen, wenn Programme nicht nachvollziehen können ob nach einer Dateiänderung auf die Datei zugegriffen wurde (Quelle).

Ein Eintrag könnte damit zB wie folgt aussehen:

/dev/sda     /     ext4     relatime,commit=600,errors=remount-ro     0     1

oder
UUID=g4354j79-a037-40d8-8685-c04hg5d06460     /     ext4     noatime,commit=600,errors=remount-ro     0     1

oder
/dev/sda     /     ext4     noatime,commit=300,errors=remount-ro     0     1

oder wie auch immer.

UUID=g4354j79-a037-40d8-8685-c04hg5d06460 ist eine feste Bezeichnung der Partition, die bei jeder Partitionierung als einmalige Bezeichung festgelegt wird. Damit ist es oft einfacher für das System die Festpatte zu finden als mit der nicht immer gleichen Gerätebezeichnung /dev/sdX. Die UUID erhät man mit
blkid
oder
blkid /dev/sdX
(zb
blkid /dev/sda1
).

2. Proxy-Umgebungsvariablen setzen

Um einen Netzwerk-Proxy zu nutzen, setzt man entweder im Programm selbst den Proxy, zb: localhost:3128 (für einen Proxy-Server am selben PC an Port 3128) oder setzt eine Umgebungsvariable.

Möchte man den Proxy nur für einen bestimmten Nutzer festlegen, macht man dies als eingeloggter Nutzer in der ~/.bashrc.
Beim Editieren am Ende ein

export http_proxy=http://PROXYSERVER:PROXYPORT/
anhängen.

zB:
export http_proxy=http://192.168.0.1:3128/


Für ein systemweites Setzen editiert man /etc/environment und fügt zB folgendes hinzu
http_proxy=http://localhost:3128/
ftp_proxy=ftp://localhost:3128/
https_proxy=https://localhost:3128/

oder falls der Proxy die IP 192.168.0.1 hat
http_proxy=http://192.168.0.1:3128/
ftp_proxy=ftp://192.168.0.1:3128/
https_proxy=https://192.168.0.1:3128/

Der Einfachheit halber entweder neu einloggen oder neustarten und austesten.

3. eigener HTTP-Proxy mit Squid

Es finden sich bereits zahlreiche deutsche Installationsanleitungen im Netz, wie https://wiki.ubuntuusers.de/Squid/.

Vereinfacht:

sudo aptitude install squid


Auf jeden Fall wird man in /etc/squid/squid.conf die Cache-Größe erhöhen müssen
# TAG: cache_dir
cache_dir ufs /var/spool/squid3 2000 16 256

Mit dem obigen Wert 2000 wird ein Cache von 2000MB angelegt.

4. mit einem APT-Proxy verbinden

Möchte man einen APT-Proxyserver nutzen ohne Umgebungsvariablen zu setzen, setzt man die notwendige Einstellung entweder in einem Package-Manager wie Synaptic (Einstellungen -> Netzwerk -> Manuelle Proxy-Konfiguration -> IP/Domain + Port eingeben) oder legt eine APT-Konfigurationsdatei /etc/apt/apt.conf.d/77proxy mit folgendem Inhalt an

Acquire::http::Proxy "PROXYSERVER:PROXYIP";

zb:
Acquire::http::Proxy "http://192.168.0.1:3128";

5. eigenen APT-Proxy aufsetzen

Hat man mehrere Debian-PCs mit Updates zu versorgen oder lädt häufiger dieselben Packages herunter, lohnt sich ein eigener APT-Proxyserver.

Derzeit nutze ich hin und wieder squid-deb-proxy (davor apt-cacher-ng)

sudo aptitude install squid-deb-proxy

In /etc/squid-deb-proxy/mirror-dstdomain.acl.d/10-default sind Ausnahmen für APT-Server gelistet.

Weitere Ausnahmen könnte man in einer /etc/squid-deb-proxy/mirror-dstdomain.acl.d/20-zusatz anführen. Bei mir sind u.a. eingetragen

deb-multimedia.org
repository.spotify.com
repos.fds-team.de
httpredir.debian.org

6. ein tmpfs einrichten

tmpfs ist ein temporäres Dateisystem, welches im Arbeitsspeicher/RAM und/oder der Swap-Partition angelegt wird. Dadurch sind die Lese- und Schreibzugriffe schneller als wenn es auf der normalen Festplatte/SSD bestehen würde.
Es eignet sich auch gut für temporäre Dateien, welche häufiger gelesen und beschrieben werden.

In /etc/fstab wird ein tmpfs als weiterer Mount-Point - hier für den Ordner /tmp - hinzugefügt.

tmpfs /tmp tmpfs nodev,nosuid 0 0

Eine weitere Option wäre size=x, mit der man die maximale Größe des Mount-Points festlegen kann. Ohne dieser wird als Maximum der halbe Arbeitsspeicher bestimmt. Belegt wird jedoch nur der tatsächlich genutzte. Es gibt noch zahlreiche andere Mount-Optionen, die ich hier nicht besprechen werde.

Vorsicht ist geboten wenn man in einem tmpfs große Mengen an Daten erzeugt und zuwenig Speicherplatz zur Verfügung steht. Das wäre der Fall bei live-wrapper und anderen Programmen, die vorübergehend Daten in /tmp anlegen. Dann gilt es das tmpfs abzuschalten oder die Programme anders zu konfigurieren.

7. Firmwares für Grafik, Sound, Bluetooth, Wireless-LAN, etc. installieren

Der Linux-Kernel bringt bereits umfangreiche Hardware-Unterstützung mit. Weiters sind einige Firmwares vorinstalliert.

Möchte man zusätzliche Firmware installieren, sucht man im APT-Repository oder auf verschiedenen Webseiten (Hersteller, Drittanbieter).

Synaptic oder der Konsolenaufruf
sudo aptitude search firmware
gibt viele aus, u.a. firmware-linux, firmware-linux-free, firmware-linux-nonfree (in contrib/non-free), firmware-amd-graphics, firmware-atheros, firmware-iwlwifi oder firmware-realtek.

Ein
sudo apt-cache search HARDWARENAME
hilft ebenso bei der Suche, da damit nach Stichwörtern in Packages und nicht nur nach Package-Namen gesucht wird.

Je nach Hardware muss man die eine oder andere nachinstallieren. Hinweise geben Boot-Ausgaben oder Log-Dateien.

8. sudo

Möchte man einem User root-Rechte ohne Einschränkungen geben, ist der einfachste Weg das Hinzufügen in die sudo-Gruppe.

als root:

adduser USER sudo

zb für den Nutzer steam:
adduser steam sudo


Danach den Nutzer ausloggen und wieder einloggen, alternativ den PC neustarten.

Nützlich ist sudoedit. Es soll Usern das Editieren von Dateien mit erweiterten Rechten erlauben und gleichzeitig verhindern, dass er sich dabei durch Tricks mehr Zugriffsrechte verschafft.

sudoedit /etc/hosts

9. ccache

Der Linux-Kernel bringt bereits umfangreiche Hardware-Unterstützung mit. Weiters sind einige Firmwares vorinstalliert.

Möchte man zusätzliche Firmware installieren, sucht man im APT-Repository oder auf verschiedenen Webseiten (Hersteller, Drittanbieter).

Synaptic oder der Konsolenaufruf
sudo aptitude search firmware
gibt viele aus, u.a. firmware-linux, firmware-linux-free, firmware-linux-nonfree (in contrib/non-free), firmware-amd-graphics, firmware-atheros, firmware-iwlwifi oder firmware-realtek.

Ein
sudo apt-cache search HARDWARENAME
hilft ebenso bei der Suche, da damit nach Stichwörtern in Packages und nicht nur nach Package-Namen gesucht wird.

Je nach Hardware muss man die eine oder andere nachinstallieren. Hinweise geben Boot-Ausgaben oder Log-Dateien.

10. UnattendedUpgrades

Automatische Updates müssen bewusst aktiviert werden, ansonsten ist daür der Administrator für Updates zuständig.


Links:
https://wiki.debian.org/UnattendedUpgrades
https://debianforum.de/forum/viewtopic.php?f=29&t=158897

Installation:

sudo aptitude install unattended-upgrades apt-listchanges


Bei Bedarf /etc/apt/apt.conf.d/50unattended-upgrades anpassen. Empfehlenswert ist der Empfang von Mails bei jedem Update. Dazu folgendes auskommentieren
Unattended-Upgrade::Mail "root";


Die Auswahl der Packages erfolgt im Abschnitt
Unattended-Upgrade::Origins-Pattern {
// ...
};

Für unstable/sid habe ich
Unattended-Upgrade::Origins-Pattern {
"o=Debian,n=sid";
};

Zur Aktvierung der automatischen Updates muss eventuell /etc/apt/apt.conf.d/20auto-upgrades mit folgendem Inhalt angelegt werden
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Das kann auch automatisch geschehen, durch Aufrufen von
dpkg-reconfigure -plow unattended-upgrades

11. BitTorrent (transmission)

Transmission eignet sich gut zum Seeden eigener Torrents.

Installation des Transmission-Clients und des Transmission-Daemons

sudo aptitude install transmission-cli transmission-daemon


Torrent-Datei für zB debian-live.iso erstellen - passende Torrent-Tracker muss man selbst finden
transmission-create debian-live.iso -t udp://public.popcorn-tracker.org:6969/announce -t http://182.176.139.129:6969/announce -t http://5.79.83.193:2710/announce -t http://91.218.230.81:6969/announce

Nun einen watch-Ordner - in den man zu startende Torrents legt - erstellen
sudo mkdir -p /var/lib/transmission-daemon/watch/


Den Transmission-Daemon stoppen
sudo /etc/init.d/transmission-daemon stop


/etc/transmission-daemon/settings.json anpassen um ein Watch-Verzeichnis hinzuzufügen, zB
sudo editor /etc/transmission-daemon/settings.json


Folgende Zeilen am Ende anschließen
"watch-dir": "/var/lib/transmission-daemon/watch",
"watch-dir-enabled": true

Zu beachten: die Zeile davor - bei mir
"utp-enabled": true,
- muss mit einem Komma (,) enden, sonst startet der Transmission-Daemon nicht fehlerfrei.

Den Transmission-Daemon starten
sudo /etc/init.d/transmission-daemon start

Kopiert man nun eine Torrent-Datei mit der Endung .torrent nach /var/lib/transmission-daemon/watch/, wird der Torrent gestartet und in /var/lib/transmission-daemon/downloads abgelegt.

12. .bashrc

In der ~/,bash kann ein User Einstellungen hinterlegen, die beim Aufruf von bash übernommen werden.

Ein nützliches Werkzeug sind bspw. Aliase. Der Aufruf von ls -lah läßt sich im Alias ll widerspiegeln, wodurch sich Tipparbeit sparen läßt.

in der ~/.bashrc des jeweiligen Users folgendes anhängen

ll='ls -lah'


Beim nächsten Aufruf einer bash steht ll zur Verfügung.

Ein anderes Anwendungsgebiet sind Pfadangaben, die nur für einen bestimmten Nutzer gelten, wie für ccache

export PATH="/usr/lib/ccache/:$PATH"

Wie man den Bash-Prompt anpasst, wird auf https://wiki.ubuntuusers.de/Bash/Prompt/ oder https://wiki.archlinux.org/index.php/Bash/Prompt_customization beschrieben.

13. CIFS in /etc/fstab (Samba, NFS)

Mit einem unstable-Update in März 2017 dürften sich Optionen geändert haben.
Statt

//192.168.0.XY/NETZLAUFWERK /mnt/LOKALESVERZEICHNIS cifs username=USER,passwd=PASSWORT 0 0

ist jetzt folgendes erforderlich ("username" bleibt erlaubt)

//192.168.0.XY/NETZLAUFWERK /mnt/LOKALESVERZEICHNIS cifs user=USER,password=PASSWORT 0 0


14. Redshift (schonend für die Augen)

Redshift ändert das Farbprofil bei abendlicher/nächtlicher Nutzung des PCs. Seit Windows 10 Redshift als Nacht-Modus implementiert hat, dürfte es allgemein etabliert sein.

Zur Nutzung in Debian installiert man redshift und/oder redshift-gtk:

sudo aptitude install redshift redshift-gtk

redshift ist das Konsolenprogramm. redshift-gtk bietet ein Symbol in der Icon-Leiste des Desktops an. Zum Start eines der beiden aufrufen und in den Hintergrund schicken:

redshift &
redshift-gtk &