Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux

Dies ist eine alte Version des Dokuments!


Linux

Mitte Dezember 1991 wurde die Version 0.99 unter die GPL gestellt (vorher war Linux nicht frei).

root@linux:~# ls -l test.txt
-rw-r--r-- 1 root root 527  6. Mär 11:54 test.txt

root@linux:~# ls -l --time-style=long-iso test.txt
-rw-r--r-- 1 root root 527 2023-03-06 11:54 test.txt

Neuerdings heißt netstat jetzt ss und versteht exakt die gleichen Parameter.

Linux-Tricks

Trick Nr. 2
Magic SysRQ
[ Alt ] + [ Druck ] gedrückt halten
und  [ R ]  [ E ]  [ I ]  [ S ]  [ U ]  [ B ]
nacheinander drücken, mit kurzen Pausen dazwischen

[ R ] = unraw (Nimmt der grafischen Oberfläche den Zugriff auf die Tastatur)
[ E ] = term (Sendet ein SIGTERM an alle Prozesse außer Init)
[ I ] = kill (Sendet ein SIGKILL an alle Prozesse außer Init)
[ S ] = sync (Schreibt die Daten aus dem Kernel-Festplatten-Cache auf die Festplatten)
[ U ] = umount (Alle eingehängten Partitionen werden ausgehängt, danach nur-lesbar eingehängt)
[ B ] = reboot (Fährt den Rechner sofort herunter und startet den Rechner neu)
Trick Nr. 3
XServer (grafische Oberfläche) neu starten:
[ Alt ] + [ Druck ] + [ K ]

Distributionen

  • interessante Linux-Distributionen:
        • Clear Linux Project for Intel Architecture, kurz Clear Linux OS ist aber mehr als nur ein Showcase für Intels Architektur, die Distribution ist auch für produktives Arbeiten beim Cloud-Computing ausgelegt. Das Augenmerk lag dabei auf einer optimierten Ausführung des gesamten Spektrums von systemnahen Kernelfunkionen bis hin zu komplexen Applikationen, die den ganzen Betriebssystem-Stack umfassen.
    • Syllable - Projektziel ist es, eine einfach zu bedienende Distribution zu schaffen, die einem nicht im weg steht und mit der man produktiv ist
    • Slackware - ist auf größtmögliche Unix-Ähnlichkeit ausgelegt. Alle Einstellungen am System können vom Nutzer durch Editieren der Konfigurationsdateien vorgenommen werden. Es existieren keine offiziellen distributionsspezifischen Werkzeuge mit grafischer Oberfläche zur Systemkonfiguration. Dies verstieße gegen das KISS-Prinzip.
    • Kanotix - mit KDE-Oberfläche - Es ist ein auf Debian beruhendes Linux; es enthält die neuesten wichtigen Pakete und erkennt nach Angaben der Entwickler mehr moderne Hardware als irgend ein anderes heutiges Betriebssystem; es kann als Live-CD nahezu auf jedes Gerät - ohne eine vorherige Treiber-Installation - zugreifen.
  • spezielle Linux-Distributionen:
      • Ubuntu bedeutet auf Zulu soviel wie Menschlichkeit (es bezeichnet eine afrikanische Philosophie)
      • ZorinOS - eine auf Ubuntu LTS aufbauende Ditribution, das in seiner Bedienung besonders Windows-ähnlich sin will
      • Linux Mint (verwendet die Gnome-Desktopumgebung)
        1. Ubuntu-Basis ⇒ stable
        2. Debian-Basis (Rolling Release): LMDE ⇒ testing
        3. Ubuntu-Server + Mate → diese Variante (mit Ubuntu LTS) wird von mir aus Erfahrung wegen der höheren Stabilität bevorzugt
      • ubuntuBSD - The power of FreeBSD kernel with familiarity of Ubuntu OS
      • grafische Desktop-Oberfläche mit Gnome 2 - Anmutung:
        • GNOME 2.32 - Fork: MATE (auf 2D- und 3D-HardWare möglich; MATE reagiert schneller als Cinnamon und Unity)
        • GNOME 2.32 - Nachfolger: Cinnamon (ist auf 2D-HardWare zu langsam; Cinnamon unterstützt mehr Effekte als MATE)
      • UGR - Ubuntu GNOME Remix (verwendet die Gnome-Desktopumgebung)
      • Elive (Enlightenment live)
      • Bodhi Linux (verwendet die Enlightenment-Desktopumgebung)
      • Das neueste Kriegsschiff der US-Navy läuft unter Linux - Die USS Zumwalt, die gerade (Oktober 2013) in den Docks unter Aufsicht des Rüstungskonzerns Raytheon gebaut wird, verlässt sich bei der Datenverarbeitung völlig auf Linux.
      • Nobara Project - Nobara (27. Juli 2022) will mit einer modifizierten Version von Fedora Linux, die mit benutzerfreundlichen Korrekturen versehen ist, neue Anwenderschichten gewinnen. Fedora hat den Nimbus, eine Distribution für Entwickler zu sein und ihm fehlen nach Einschätzung der Entwickler beim Nobara Project bei einer Neuinstallation in der Regel alle Pakete von Drittanbietern oder proprietäre Pakete. Deren Fehlen hindern nach ihrer Ansicht einen typischen »Point-and-Click«-Benutzer daran, viele Dinge zum Laufen zu bringen, wenn er sich nicht Zeit für die Suche in der Dokumentation nimmt. Einige der wichtigen Dinge, die in Fedora fehlen, insbesondere im Hinblick auf Spiele, sind WINE-Abhängigkeiten, OBS-Studio, Codec-Pakete von Drittanbietern wie GStreamer, Treiber von Drittanbietern wie NVIDIA.
    • http://www.zenwalk.org/ - Ein kleines, schnelles, französisches Slackware-Derivat, in dem die Entwickler den Anwendern die Qual der Wahl ersparen; für jede Aufgabe ist in Zenwalk nur eine Anwendung enthalten.
    • Zorin OS - Windows-ähnliche Linux-Distribution

Eine bootfähige ISO-Datei auf einen USB-Stick schreiben

> sudo apt install usb-creator-gtk
> usb-creator-gtk

FlatPak - ein alternatives Linux-Repository

Werkzeuge

WindowManager

Leistungsvergleich (benchmarking)

Benutzer anlegen

so wird ein Benutzer mit dem Namen "Fritz" angelegt und danach kann man ihm noch ein Passwort zuweisen:

root@linux:~# useradd -m -s /bin/bash fritz
root@linux:~# passwd fritz

Benutzer zur Gruppe "docker" hinzufügen:

> sudo usermod -aG docker $USER

Hardware-Infos

> lscpu
Architecture:            amd64
Byte Order:              Little Endian
Total CPU(s):            12
Thread(s) per core:      2
Core(s) per socket:      6
Socket(s):               1
Vendor:                  GenuineIntel
CPU family:              6
Model:                   165
Model name:              Intel(R) Core(TM) i5-10600T CPU @ 2.40GHz
Stepping:                3
L1d cache:               32K
L1i cache:               32K
L2 cache:                256K
L3 cache:                12M
Flags:                   fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 cflsh ds acpi mmx fxsr sse sse2 ss htt tm pbe sse3 pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline aes xsave osxsave avx f16c rdrnd fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid fpcsds mpx rdseed adx smap clflushopt intel_pt sgx_lc syscall nx pdpe1gb rdtscp lm lahf_lm lzcnt

System-Informationen zur Hardware auslesen:

> lshw -C system
idmhe                   
    Beschreibung: »Mini Tower«-Rechner
    Produkt: OptiPlex 990 ()
    Hersteller: Dell Inc.
    Version: 01
    Seriennummer: XXXXXSX
    Breite: 64 bits
    Fähigkeiten: smbios-2.6 dmi-2.6 vsyscall32
    Konfiguration: administrator_password=disabled boot=normal chassis=mini-tower frontpanel_password=disabled keyboard_password=disabled power-on_password=disabled uuid=AAASACAC-AAOO-105A-BOSE-B3COAFAZ35A4
> lshw -C memory
...
     *-bank:1
          Beschreibung: DIMM DDR3 Synchron 1333 MHz (0,8 ns)
          Produkt: HMT351U6CFR8C-H9
          Hersteller: Hynix/Hyundai
          Physische ID: 1
          Seriennummer: 0XXXXCXX
          Steckplatz: ChannelA-DIMM1
          Größe: 4GiB
          Breite: 64 bits
          Takt: 1333MHz (0.8ns)
...

Version der Linux-Distribution

Der Unterschied zwischen /etc/os-release und /etc/lsb-release.

/etc/lsb-release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
/etc/os-release
NAME="Ubuntu"
VERSION="14.04.5 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.5 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
> echo "$(. /etc/os-release ; echo "${VERSION_ID}")"
14.04

Festplatten

die Namen aller Laufwerke anzeigen:

# ls -lha /sys/block/
insgesamt 0
drwxr-xr-x  2 root root 0 Mär 18 13:27 .
dr-xr-xr-x 13 root root 0 Mär 18 13:27 ..
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop0 -> ../devices/virtual/block/loop0
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop1 -> ../devices/virtual/block/loop1
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop2 -> ../devices/virtual/block/loop2
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop3 -> ../devices/virtual/block/loop3
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop4 -> ../devices/virtual/block/loop4
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop5 -> ../devices/virtual/block/loop5
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop6 -> ../devices/virtual/block/loop6
lrwxrwxrwx  1 root root 0 Mär 18 13:27 loop7 -> ../devices/virtual/block/loop7
lrwxrwxrwx  1 root root 0 Mär 18 13:27 sda -> ../devices/pci0000:00/0000:00:1f.2/ata1/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx  1 root root 0 Mär 18 13:27 sr0 -> ../devices/pci0000:00/0000:00:1f.2/ata2/host1/target1:0:0/1:0:0:0/block/sr0

Die Bezeichnungen aller Laufwerke anzeigen:

# cat /sys/block/*/device/model
WDC WD1003FBYZ-0
DVD+-RW GH82N

Bezeichnung des DVD-Laufwerkes ermitteln:

# grep -F DVD /sys/block/*/device/model | awk -F'/' '{print $4}'
sr0

tmpfs - ein Laufwerk im RAM

Wenn man genügend RAM hat, dann kann man sein "/tmp"-Verzeichnis in den RAM verlegen, das beschleunigt die Zugriffsgeschwindigkeit und schont den Datenträger (USB-Stick oder SSD).

vi /etc/fstab

tmpfs   /tmp         tmpfs   nodev,nosuid,size=20%          0  0

An Stelle der relativen Größenangabe "20%" kann man auch eine absolute wie zum Beispiel "2G" angeben.

Will man den Datenträger schonen oder etwas mehr geschwindigkeit rausholen, dann kann man das auch mit der Mountoption "noatime" tun:

LABEL=root   /         ext4   defaults,noatime          0  0

die richtigen Rechte für das TEMP-Verzeichnis:

> chmod 1777 /tmp
> chown root:root /tmp

Lese- und Schreibzugriffe darstellen

will man das Verhältnis zwischen den Lese- und den Schreibzugriffen (iops) auf den Datenträger /dev/sda1 aus den letzten 60 Sekunden ermitteln, dann geht das mit dieser Kommandozeile (das Paket sysstat muss installiert sein: apt install sysstat):

> iostat -dx /dev/sda1 1 60 | fgrep sda1 | awk '{r+=$4;w+=$5} END {print "r / w =",r,"/",w}'
r / w = 1 / 29

Bind-Mount

Bind-Mounts anzeigen

> findmnt | grep "\["

oder

> findmnt | fgrep "["

Auto-Log-Out

https://www.kim.uni-konstanz.de/e-mail-und-internet/it-sicherheit/sicherer-server-it-dienst/linux-fernadministration-mit-pam-und-ssh/sitzungen-kontrollieren/

Automatisches ausloggen nach einer Stunde Inaktivität. Im allgemeinen reicht es, wenn man eine der genannten Lösungen wählt.

# vi /etc/ssh/sshd_config
...
ClientAliveInterval 3600
# echo $TMOUT
3600

# fgrep -HR TMOUT /etc/
/etc/profile.d/autologout.sh:TMOUT=3600
/etc/profile.d/autologout.sh:readonly TMOUT
/etc/profile.d/autologout.sh:export TMOUT
# vi /etc/overlayroot.conf
...
overlayroot="timeout=0"

Ubuntu-Derivate ohne Sound

Zum Beispiel geben Kubuntu und LinuxMint bei meinem Laptop "Fujitsu S7020" keinen Ton aus den Lautspechern aus, der Kopfhörer dagegen funktioniert prima.

Wie man dabei vorgehen muss, steht hier: http://wiki.ubuntuusers.de/Soundkarten_konfigurieren/HDA

als erstes nachsehen, welches Audio-Gerät verbaut wurde:

> head -n 1 /proc/asound/card0/codec*
==> /proc/asound/card0/codec#0 <==
Codec: Realtek ALC260

==> /proc/asound/card0/codec#1 <==
Codec: LSI Si3054

dann sehen wir nach, welche Parameter dieser Treiber benötigt:

> zless /usr/share/doc/alsa-base/driver/HD-Audio-Models.txt.gz
ALC260
======
  fujitsu       Fujitsu S7020
  acer          Acer TravelMate
  will          Will laptops (PB V7900)
  replacer      Replacer 672V
  favorit100    Maxdata Favorit 100XS
  basic         fixed pin assignment (old default model)
  test          for testing/debugging purpose, almost all controls can
                adjusted.  Appearing only when compiled with
                $CONFIG_SND_DEBUG=y
  auto          auto-config reading BIOS (default)

dann den Treiber mit Parameter in die Konfigurationsdatei eintragen:

> echo "options snd-hda-intel model=fujitsu-xa3530" >> /etc/modprobe.d/alsa-base.conf

UMTS

# aptitude install usb-modeswitch modemmanager wvdial ppp
# vi /etc/usb_modeswitch.conf
# reload udev

Sollten keine /dev/ttyUSB*-Gerätedateien vorhanden sein (meist sind dann nur /dev/ttyACM*-Gerätedateien vorhanden), dann kann man das hier mal ausprobieren:

# modprobe -r airprime
# modprobe -r usbserial

usbserial can't handle HSDPA data rates…

# modprobe option

Blu-ray Disks

MakeMKV BETA ist ein kommerzieller Konverter, mit dem DVDs und Blu-ray-Disks auf der Festplatte gespeichert werden können. Wenn man einen Film mit relativ wenig Aufwand ansehen will, dann bietet sich die Emulierung der libaacs-/libbdplus-Bibliotheken (siehe direktes Abspielen im Mediaplayer) oder die Streamingmethode an. Die Shareware-Version bietet den vollen Funktionsumfang. Während der Beta-Phase ist das Programm kostenlos und der Testzeitraum von 30 Tagen kann beliebig oft verlängert werden. Nach Beendigung der Beta-Phase muss das Programm für die weitere Nutzung der Blu-ray Funktionalität käuflich erworben werden.

> add-apt-repository ppa:heyarje/makemkv-beta
...
gpg: Schlüssel 19F7E55B von hkp-Server keyserver.ubuntu.com anfordern
gpg: Schlüssel 19F7E55B: Öffentlicher Schlüssel "Launchpad PPA for hjmooses" importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1
gpg:               importiert: 1  (RSA: 1)

> aptitude update
> aptitude search makemkv
p   makemkv-bin                     - MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can
p   makemkv-bin:i386                - MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can
p   makemkv-oss                     - MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can
p   makemkv-oss:i386                - MakeMKV is your one-click solution to convert video that you own into free and patents-unencumbered format that can

> aptitude install makemkv-bin makemkv-oss
Die folgenden NEUEN Pakete werden zusätzlich installiert:
  libc6-i386{a} makemkv-bin makemkv-oss
...

Das Startkommando lautet makemkv.

CD/DVD

kopieren

Eine sehr gutes und vor allem kleines Programm zum DVD's kopieren ist VOBCopy.

Die Installation ist ganz einfach:

# aptitude install vobcopy

Auch die Anwendung ist ganz einfach!

CSS-verschlüsselte CD/DVD ansehen

Um kopiergeschützte DVD's am PC ansehen zu können, braucht man die css-Bibliothek.

normalerweise kann man CSS-verschlüsselte CD/DVD so ansehen:

# mplayer dvd://1

oder so:

# totem dvd://1

Sollte das nicht funktionieren, dann muss man noch die CSS-Bibliothek installieren:

libdvdcss zu Fuß installieren (2016)

Paket mit der CSS-Bibliothek installieren:

# aptitude install $(aptitude search libdvdread | awk '{print $2}')
# /usr/share/doc/libdvdread*/install-css.sh

Jetzt den Regional-Code überprüfen (für Deutschland Region 2):

Bei manchen Laufwerken ist ab Werk kein Regionalcode gesetzt, dann lassen sich auf dem Laufwerk keine verschlüsselten DVDs abspielen!

Jetzt den Regional-Code überprüfen und ggf. setzen (für Deutschland Region 2):

# apt install regionset
# regionset

die Rechte der Gerätedatei sollten so aussehen:

# # ls -l /dev/cdrom              
lrwxrwxrwx 1 root root 3 2011-10-09 17:14 /dev/cdrom -> sr0
# ls -l /dev/sr0 
brw-rw----+ 1 root cdrom 11, 0 2011-10-09 17:14 /dev/sr0

evtl. müssen noch die Rechte der Gerätedatei richtig gesetzt werden:

# chmod 660 /dev/sr0
# chgrp cdrom /dev/sr0

Jetzt muss der entsprechende Benutzer noch in die Gruppe "cdrom" aufgenommen werden.

libdvdcss zu Fuß mit Ubuntu 18.04 installieren (18. März 2019)

# aptitude search libdvdread
  p   libdvdread-dev
  p   libdvdread4
# aptitude install libdvdread4
# ls -lha /usr/share/doc/libdvdread4
# cat /usr/share/doc/libdvdread4/README.css
# aptitude search libdvdcss
  v   libdvdcss-dev
  v   libdvdcss2
# aptitude install libdvdcss2
# dpkg-reconfigure libdvd-pkg

jetzt funktioniert es auch:

# mplayer dvd://1 -dumpstream -dumpfile Die_Lange_Nacht_1.vob
MPlayer 1.3.0 (Debian), built with gcc-7 (C) 2000-2016 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing dvd://1.
There are 25 titles on this DVD.
There are 1 angles in this DVD title.

libdvdread: Attempting to retrieve all CSS keys
libdvdread: This can take a _long_ time, please be patient

libdvdread: Get key for /VIDEO_TS/VIDEO_TS.VOB at 0x00000168
libdvdread: Elapsed time 0
...

nützliches

Monitor

  • mpstat - CPU-Status, Hard/Soft Interrupt
  • netstat -antp - NIC-Status, Errors, Statistik
    • Neuerdings heißt netstat jetzt ss und versteht exakt die gleichen Parameter.
  • vmstat - VM Page Info, HDD
  • lspci - Listet alle Geräte am PCI-Bus auf
  • lsusb - Listet alle Geräte am USB-Bus auf
  • oprofile - system level profiling, kernel/driver code
  • modinfo - Liste der geladenen Module
  • sar - collect, report, save system activity information
  • iotop - I/O / HDD
  • iftop -n - Netzwerk-Bandbreitenmessung
  • ifstat - Netzwerk-Bandbreitenmessung
  • iptraf - Netzwerk-Bandbreitenmessung
  • tcptrack - Netzwerk-Bandbreitenmessung
  • slurm - Netzwerk-Bandbreitenmessung
  • nload - Netzwerk-Bandbreitenmessung
  • ethstatus - Netzwerk-Bandbreitenmessung
  • vnstatd -d / vnstat - Netzwerk-Bandbreitenmessung
  • ntop - Netzwerk-Bandbreitenmessung

Werkzeuge

  • ethtool - View and change Ethernet card settings
  • sysctl - View and set /proc/sys settings
  • ifconfig - View and set ethX variables
  • setpci - View and set pci bus params for device
  • netperf - Can run a bunch of different network tests

Kernelparameter

Wenn ein Linux gestartet wurde, kann man die Parameter (wie folgt) auslesen, welche dem Kernel beim booten übergeben wurden:

# cat /proc/cmdline 
BOOT_IMAGE=/vmlinuz-2.6.32-5-amd64 root=/dev/sda5 ro quiet

Partitionsname ermitteln

Die folgende Kommandozeile ermöglicht es, mit minimalen Mitteln, alle Partitionen im Rechner aufzulisten.

# ls /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | while read DREMNAME;do ls $(dirname ${DREMNAME})/ | fgrep "$(echo "${DREMNAME}" | awk -F'/' '{print $5}')";done

Die folgende Kommandozeile ermöglicht es, mit minimalen Mitteln, alle Partitionen im Rechner aufzulisten, die auf fest eingebauten Laufwerken liegen. Es werden also keine Partitionen der USB-Stick's bzw. USB-Festplatten angezeigt.

# fgrep -H 0 /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | while read DREMNAME;do ls $(dirname ${DREMNAME})/ | fgrep "$(echo "${DREMNAME}" | awk -F'/' '{print $5}')";done

USB-Festplatte reseten

Manchmal ist es sinnvoll ein USB-Gerät per Kommandozeile zu reseten.
Zum Beispiel, wenn man die Partitionstabelle von einer USB-Platte (in diesem Beispiel ist es eine "Western Digital My Book") ändert und der Rechner etwas weiter weg steht, so das man nicht mal eben den USB-Stecker abziehen und wieder anstecken kann.

In soeinem Fall geht das wie folgt.

Als erstes brauchen wir die idVendor und idProduct:

> lsusb | fgrep 'My Book'
Bus 001 Device 004: ID 1058:1105 Western Digital Technologies, Inc. My Book Studio II

Hier können wir lesen, dass die IDs "1058:1105" lauten.

Jetzt brauchen wir noch ein kleinen Skript, mit dem wir das dazu passende Verzeichnis in "/sys/" finden:

> vi usb_vendor-product-ID-paar.sh
#!/bin/bash
for X in /sys/bus/usb/devices/*; do
        echo "$(cat "${X}/idVendor" 2>/dev/null):$(cat "${X}/idProduct" 2>/dev/null)" | fgrep "${1}" && echo -e "echo 0 > ${X}/authorized\necho 1 > ${X}/authorized";
done

jetzt starten wir das Skript mit den IDs aus der lspci-Ausgabe als Parameter:

> bash usb_vendor-product-ID-paar.sh 1058:1105
1058:1105
echo 0 > /sys/bus/usb/devices/1-1/authorized
echo 0 > /sys/bus/usb/devices/1-1/authorized

zum restarten der USB-Festplatte geben wir nun diese Kommandos ein:

> echo 0 > /sys/bus/usb/devices/1-1/authorized
> echo 1 > /sys/bus/usb/devices/1-1/authorized

sollte nichts funktionieren, dann gibt es noch dieses Miniprogramm zum selber kompilieren (http://askubuntu.com/questions/645/how-do-you-reset-a-usb-device-from-the-command-line):

> links -no-g -source "http://marc.info/?l=linux-usb&m=121459435621262&q=p3" > usbreset.c
> cc usbreset.c -o usbreset
> chmod 0755 usbreset

> lsusb
Bus 002 Device 003: ID 0fe9:9010 DVICO

> ./usbreset /dev/bus/usb/002/003
> cat usbreset.c
/* usbreset -- send a USB port reset to a USB device */
 
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>
 
#include <linux/usbdevice_fs.h>
 
 
int main(int argc, char **argv)
{
	const char *filename;
	int fd;
	int rc;
 
	if (argc != 2) {
		fprintf(stderr, "Usage: usbreset device-filename\n");
		return 1;
	}
	filename = argv[1];
 
	fd = open(filename, O_WRONLY);
	if (fd < 0) {
		perror("Error opening output file");
		return 1;
	}
 
	printf("Resetting USB device %s\n", filename);
	rc = ioctl(fd, USBDEVFS_RESET, 0);
	if (rc < 0) {
		perror("Error in ioctl");
		return 1;
	}
	printf("Reset successful\n");
 
	close(fd);
	return 0;
}

rescan USB-Bus

Alle hier gelisteten Kommandos sind ungetestet!

mal probieren (http://linux.die.net/man/8/usbview):

> usbview

der einfache Aufruf von lsusb scannt den USB-Bus bereits (ab "Linux kernel 2.3.15"):

> lsusb

oder

> /etc/rc.d/rc.scanluns

oder

> /etc/rc.d/rc.udev restart

oder

> rescan-scsi-bus -l

Sollte das nicht den gewünschten Erfolg bringen, dann könnte man noch dieses Kommando ausprobieren (https://lists.ubuntu.com/archives/ubuntu-devel/2009-January/027260.html):

> udevadm trigger

oder

> udevadm trigger --action=add --type=subsystems
> udevadm trigger --action=add --type=devices
> udevadm trigger --action=change --type=subsystems
> udevadm trigger --action=change --type=devices

als letztes könnte man auch die USB-Module neu laden (http://www.cyberciti.biz/faq/usb-drive-not-being-recognized-under-linux/):

> rmmod usb-storage ; rmmod usb-ohci ; rmmod usb-uhci ; sleep 1 ; modprobe usb-uhci ; modprobe usb-ohci ; modprobe usb-storage

SysRQ

Schonmal das Problem gehabt das sich ein Linux so aufgehängt hat das keine Tastatur oder Mauseingaben gemacht werden können, geschweige STRG-ALT-ENTF unter der Console zum gewünschtem Erfolg führt?

Hier die Lösung

In Linux gibt es bestimmte Tastaturkombinationen (SysRQ Shortcuts) die immer funktionieren sofern folgender Parameter gesetzt ist:

# echo "1" > /proc/sys/kernel/sysrq

Die rettende Befehlsfolge

Mit dieser Folge sollte man seine Daten retten und den Server/Rechner sauber herunterfahren können.

  1. Alt + Druck + r – nimmt X die Kontrolle von Maus und Tastatur
  2. Alt + Druck + s – Daten aus dem Festplatten-Cache werden geschrieben (emergency sync)
  3. Alt + Druck + e – Prozesse werden sauber beendet (SIGTERM) / ein wenig warten damit die Prozesse Zeit haben sich zu beenden
  4. Alt + Druck + i – Prozesse die sich aufgehangen haben werden beendet (SIGKILL)
  5. Alt + Druck + u – umount aller gemounteten Dateisysteme
  6. Alt + Druck + b – neustart

Alle SysRQ-Befehle

Hier eine Übersicht über alle verfügbaren Befehle.

  • Alt + Druck + r – nimmt X die Kontrolle von Maus und Tastatur (unRaw)
  • Alt + Druck + o – System wird ausgeschaltet (powerOff)
  • Alt + Druck + s – Daten aus dem Festplatten-Cache werden geschrieben (Sync)
  • Alt + Druck + u – umount aller gemounteten Dateisysteme (Unmount)
  • Alt + Druck + b – reboot (reBoot)
  • Alt + Druck + m – listet Speicherinfos in der Konsole auf (showMem)
  • Alt + Druck + t – listet alle Prozesse in der Konsole auf (showTasks)
  • Alt + Druck + k – killt Prozesse auf dem Terminal (saK)
  • Alt + Druck + e – sendet ein SIGTERM an alle Prozesse, ausser Init (tErm)
  • Alt + Druck + i – sendet SIGKILL zu allen Prozessen, ausser Init (kIll)
  • Alt + Druck + c – macht ein Dump (Crashdump)
  • Alt + Druck + w – listet alle blockierten Prozesse in der Konsole auf(shoW-blocked-tasks)
  • Alt + Druck + q – listet alle Timer in der Konsole auf (show-all-timers(Q))

CPU's zählen

physikalische Anzahl der CPU's im System zählen

In Linux (2.6.x - Kernel) kann man wie folgt die im System steckenden CPU's zählen:

# ls -1d /sys/devices/system/cpu/cpu[0-9]* | wc -l
4

physikalische Anzahl der CPU-Kerne anzeigen

# fgrep 'cpu cores' /proc/cpuinfo
cpu cores       : 4
cpu cores       : 4
cpu cores       : 4
cpu cores       : 4

Anzahl aller Kerne im System zählen

# fgrep 'cpu cores' /proc/cpuinfo | awk '{z=$4;s+=z}END{print s}'
16

Anzahl der CPU's

# awk '/core id/ {s=$NF}END{print s+1}' /proc/cpuinfo
4

IP-Forward

abschalten

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 0

oder

# vi /etc/sysctl.d/weiterleitung.conf
net.ipv4.ip_forward = 0

oder temporär:

# echo "0" > /proc/sys/net/ipv4/ip_forward

Firewall-Regeln

Bridge

USB-Stick unter Linux formatieren

USB-Stick mit FAT formatieren

FAT32:

# mkfs -t vfat -F 32 /dev/sdc1
# mkdosfs -F 32 /dev/sdc1

FAT16:

# mkfs -t vfat -F 16 /dev/sdc1
# mkdosfs -F 16 /dev/sdc1

FAT12:

# mkfs -t vfat -F 12 /dev/sdc1
# mkdosfs -F 12 /dev/sdc1

USB-Stick mit EXT4 formatieren

# fdisk /dev/sdc
Command (m for help): p

Disk /dev/sdc: 32.2 GB, 32161923072 bytes
55 heads, 55 sectors/track, 20765 cylinders, total 62816256 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x04030201

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1           51304    62816255    31382476   83  Linux

Command (m for help): q
# mkfs -D -b 1024 -t ext4 -L root /dev/sdc1

kurzer Dateisystemvergleich

Dateisysteme Vorteile Nachteile
ext3 sehr verbreitet erfordert in regelmäßigen Abständen einen Dateisystem-Check; Dateisystem-Check ist sehr langsam; Plattenkapazität wird schlecht ausgenutzt
ext4 etwas schneller und robuster gegen Hardwaredefekte als ext3 erfordert in regelmäßigen Abständen einen Dateisystem-Check; Dateisystem-Check ist sehr schnell; Plattenkapazität wird schlecht ausgenutzt; etwas höheres Daten-Risiko als ext3 bei Systemausfall
xfs schnellstes Dateisystem unter Linux; es fragmentiert nicht; kann auf identischer Partition 15% mehr Daten speichern als ext3 extrem hohes Daten-Risiko bei Systemausfall
jfs fast so schnell wie xfs; vergleichbare Datensicherheit wie ext3; Dateisystem-Check ist sehr schnell; kann auf identischer Partition 15% mehr Daten speichern als ext3 geringere Verbreitung als ext* und xfs

Probleme

manchmal gibt es mit einigen Systemen den folgenden Fehler:

NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s!

einige Leute haben das Problem mit diesen Parametern umgehen können (https://ubuntuforums.org/showthread.php?t=2205211):

acpi=off noapic nolapic

andere haben es behoben, in dem sie dieses Paket installerten:

intel-microcode
/home/http/wiki/data/attic/linux.1708032532.txt · Zuletzt geändert: von manfred