Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.

Linux Hardware-Tipps


Hardware-Tests

Immer öfter haben „Billig“ PCs auch billige Hardware eingebaut. Um sicher zu gehen, ob die Hardware okay ist, gibt es kleine Helfer, wie z.B. die folgende Tabelle zeigt:


RAM-Test mit memtest86+

Mit memtest86+ kann man den RAM auf Herz und Nieren prüfen. Auf der Internetseite bekommt man u.a. ISO Images zum Erstellen einer bootfähigen CD.

Bei Ubuntu ist dieser RAM - Test auch im GRUB Bootloader als Menupunkt vorhanden.


Festplatten-Test mit badblocks

Mit badblocks kann man die Festplatte testen. Dies sollte man jedoch mit einem Rettungssystem tun. Zum Beispiel hiermit: http://www.sysresccd.org/Main_Page

Lesetest der gesamten Festplatte:

  # badblocks -sv /dev/sda

Schreibtest mit !! ZERSTÖRUNG !! der Daten auf der gesamten Festplatte:

  # badblocks -sv -w  /dev/sda

PS: Dies kann auch zum (fast) Sicheren löschen der Daten einer Festplatte verwendet werden.

Schreibtest ohne Zerstörung der Daten auf der gesamten Festplatte:

  # badblocks -sv -n  /dev/sda

Sind auf der Festplatte Fehler vorhanden und man möchte diese in die Liste der schlechten Blöcke des Filesystems eintragen, um z.B. noch ein paar Daten zu retten, so kann man dies mit „fsck“ tun.

  # fsck.ext3 -c /dev/sda1 

Festplatte via dd clonen/kopieren

!! Achtung, auch zerstören !!

So kann man seine Festplatte kopieren

dd if=/dev/sda of=/dev/sdb

Will man sehen wie lange es noch dauert, muß man eine weitere Shell öffnen und folgendes eingeben:

while true; do sleep 5; kill -SIGUSR1 `pidof dd`; done;

danach wird in der Shell mit dem dd all 5 Sekunden der Datendurchsatz angezeigt.

Hier noch etwas besser

und mit „pv“ (pipe view) sieht man auch wie lange es noch dauert ohne das komplizierte SIGUSR1.

dd if=/dev/sda | pv | dd of=/dev/sdb

PS:

Der pv Befehl hat noch einige Parameter, siehe „man pv“, mit „pv -s 512G“, z.b. die Größe der Festplatte :-)


Script starten beim Einstecken eines USB Gerätes

Das udev System sorgt dafür, das beim Einstecken von USB Geräten verschiedene Aktionen ausgeführt werden. Dieses Verhalten kann man für eigene Zwecke anpassen. Je nach Distribution sind schon mehr oder weniger Regeln vorhanden. Anzeigen kann man diese wie folgt:

  # ls -l /etc/udev/rules.d/
  ...
  -rw-r--r--  1 root root  597  2. Jul 23:26 10-vboxdrv.rules
  -rw-r--r--  1 root root 6983 10. Jun 12:48 40-hplip.rules
  -rw-r--r--  1 root root  706 10. Jun 12:48 56-hpmud_support.rules
  ...

Durch die Ziffern (im Beispiel oben 10, 40 und 56) am Anfang der Dateinamen, werden die Regeln in dieser Reihenfolge abgearbeitet. Unser Beispiel soll 20-mystick.rules heißen:

  # vi /etc/udev/rules.d/20-mystick.rules

Verschiede Beispiele für den Inhalt, wobei hier auch mehrere Zeilen aktiv sein dürfen, die jedoch verschiedene Filterkriterien beinhalten sollten (z.B. die Seriennummer):

  # Stick mit S/N 180314019CBE4A02 wirft das CD-Laufwerk aus:
  BUS=="usb", KERNEL=="sd?1", SYSFS{serial}=="180314019CBE4A02", RUN+="/usr/bin/logger Stick eingesteckt.", RUN+="/usr/sbin/eject /dev/cdrom"
  
  # Stick nach Hersteller-Typ 1e3d bekommt den symbolischen Namen und ist dann unter /dev/myusbstick zu finden:
  BUS=="usb", KERNEL=="sd?1", SYSFS{idVendor}=="1e3d", SYMLINK+="myusbstick", RUN+="/usr/bin/logger Stick myusbstick eingesteckt."
  
  # Getrennte Aktionen für Ein- und Austecken:
  BUS=="usb", KERNEL=="sd?1", SYSFS{serial}=="3513421B7E00D04C", ACTION=="add", NAME="sandisk4gb", RUN+="/usr/bin/logger 4GB SandiskStick eingeteckt."
  BUS=="usb", KERNEL=="sd?1", SYSFS{serial}=="3513421B7E00D04C", ACTION=="remove", RUN+="/usr/bin/logger 4GB SandiskStick entfernt."
  
  # WD USB-Platte
  BUS=="usb", KERNEL=="sd?1", SYSFS{serial}=="57442D575841314141303534393439", ACTION=="add", NAME="wdblack", RUN+="/usr/bin/logger Disk wdblack drinne."
  BUS=="usb", KERNEL=="sd?1", SYSFS{serial}=="57442D575841314141303534393439", ACTION=="remove", RUN+="/usr/bin/logger Disk wdblack ist raus!"

Bei manchen Distributionen muss man nun udevd neu starten oder einen Reload machen, was bei Fedora 14 im Test nicht notwendig war. Möglicherweise muss man also z.B. so etwas machen:

  # /etc/init.d/udevd reload

Ob die Aktion „/usr/bin/logger“ ausgeführt wird, kann man dann in der messages-Datei verfolgen:

  # tail -f /var/log/messages   (Abbruch mit STRG-C)

Festplatte/Partition verschlüsseln

1. Paket installieren

apt-get install cryptsetup

2. Normale Partition anlegen

z.B. /dev/sdf1

3. Partition verschlüsseln

cryptsetup luksFormat /dev/sdf1

4. Partition aktivieren

cryptsetup luksOpen /dev/sdf1 crypt_extern  

5. Filesystem erzeugen

mkfs.ext3 /dev/mapper/crypt_extern

6. Namen der Partition setzen

e2label /dev/mapper/crypt_extern MyName

Wenn die Festplatte an einem Server ohne Tastatur steht, muss man beim Starten aufpassen da sonst sofort nach dem Password gefragt wird. Hierzu habe ich das Start script „/etc/init.d/cryptdisks“ geändert, einfach den Parameter start) durch starta) erweitet, dann fahren die verschlüsselten Platten nicht hoch und mann kann das später via SSH machen.

PS: Das mit dem starta) geht nicht mehr bei Debian 8, hierzu muss in der Datei /etc/crypttab die Option auf 'noauto' gestellt werden. Den Eintrag für die 'Swap Patition' muss mit einer # auskommentiert werden und anschliessend muss noch ein 'update-initramfs -u' gemacht werden, damit der Kernel beim starten nicht versucht die Swap Partition zu aktivieren, was wieder zur Passworteingabe führt.

#!/bin/bash
#
# Festplattenverschlüsselung freigeben by MS 4.2014
#
echo "Festplattenverschlüsselung freigeben prüfen und mounten <PRESS ANYKEY>"
read
echo "Start crypt (Passwort notwendig)"
/etc/init.d/cryptdisks starta
cryptsetup luksOpen /dev/md1 md1_crypt
cryptsetup luksOpen /dev/md2 md2_crypt
echo "Start swap"
swapon /dev/mapper/md1_crypt
echo "Check Disk"
fsck /dev/mapper/md2_crypt
echo "Mount /media/disk"
mount /dev/mapper/md2_crypt /media/disk
echo "zur Info, Laufwerk freigegeben" | mail root -s "Info, Laufwerk freigegeben"

Linux Software RAID prüfen/retten


Hier ein paar kleine Hinweise zum Arbeiten mit einem Linux Software RAID.



1. Prüfen des RAID-Status im Kernel

Folgenden Befehl eingeben:

cat /proc/mdstat

Es erscheint der Zustand der RAID Devices md0..X. Bei einem Raid 5 könnte das zum Beispiel so aussehen:

Personalities : [linear][multipath][raid0][raid1][raid6][raid5][raid4][raid10]
md0 : active raid5 sdc1[1] sdb1[0] sdd1[2]
      5860267008 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>

Fehlt in den []-Klammern ein U dann hat das RAID einen Fehler.



2. Prüfen des RAID-Status mit mdadm

Hierzu folgenden Befehl eingeben:

mdadm -D /dev/md0

Für das RAID Device md0 wird der Status angezeigt. (/dev/md0 = 1.RAID /dev/md1 = 2. RAID usw.)

/dev/md0:
      Version : 00.90
Creation Time : Thu Jul 15 22:48:11 2010
   Raid Level : raid1
   Array Size : 976069120 (930.85 GiB 999.49 GB)
Used Dev Size : 976069120 (930.85 GiB 999.49 GB)
 Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
  Persistence : Superblock is persistent
  Update Time : Tue Jan 17 07:37:00 2017
        State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
         UUID : 73d7f4a5:7c57b659:39813711:5b3df8d0 (local to host miniPC)
       Events : 0.112060
  Number   Major   Minor   RaidDevice State
     0       8       17        0      active sync   /dev/sdb1
     1       8       33        1      active sync   /dev/sdc1


3. Neue Platte gegen defekte tauschen

Ist die Platte neu muß zunächßt die neue Platte Partitioniert werden. Hierzu machen wir eine Kopie der Tabelle einer noch laufenden Platte.

Mit dem Befehl:

sfdisk -d /dev/sda | sfdisk /dev/sdb

sda = alte noch laufende Platte / sdb = neue leere Platte

Dann die Partition der neuen Platte dem RAID hinzufügen mit dem Befehl:

mdadm --manage -a /dev/md0 /dev/sdb1" für 1.RAID
mdadm --manage -a /dev/md1 /dev/sdb2" für 2.RAID
mdadm --manage -a /dev/md2 /dev/sdb3" für 3.RAID

Jetzt startet im Hintergrund der sync-Prozess den man mit dem Befehl „watch cat /proc/mdstat“ verfolgen kann.

Hinweis:
Sollte das hinzufügen der Patition mit -a nicht gehen muß diese womöglich zuvor mit dem Befehl:

mdadm --manage -r /dev/md0 /dev/sdb1

aus dem RAID entfernt werden.

Auch ein setzten des Fehler Bits ist möglich durch den Befehl:

mdadm --manage /dev/md1 --fail /dev/sdb2


Tipp:
Um die Zeit zur sync-Prozess zu verkürzen, können die Kernelparameter: „/proc/sys/dev/raid/speed_limit_min“ und „/proc/sys/dev/raid/speed_limit_max“ erhöht werden.
Hierzu z.B. den Befehl eingeben:

echo "10000" > /proc/sys/dev/raid/speed_limit_min


Tipp:
Ein neues RAID wird so angelegt:

mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1


Tipp:
Wenn im mdstat die Meldung „inaktiv“ auftaucht, kann versucht werden einen Neustart auszulösen durch:

mdadm --run /dev/md0"


Tipp:
Wenn ein RAID auseinander gefallen ist kann dies möglicherweise wieder zusammen gebaut werden durch den Befehl:

mdadm --assemble --scan


Tipp:
Für die /etc/fstab braucht man die UUID zum Mounten, diese bekommt man mit dem Befehl:

mdadm --detail /dev/md4


Tipp:
Um eine Platte am Blinken/Vibrieren zu erkennen, kann man sie zum Lesen zwingen mit:

for i in $(seq 0 255); do \
  dd of=/dev/null if=/dev/sda bs=1k count=255 skip=${i}M; \
     done

Für einen zweiten Durchlauf die seq-Parameter erhöhen (Cache!).

VORSICHT, dd ist gefährlich.


Bildschirme einstellen

Zum Einstellen mehrerer Monitore kann man das Programm 'lxrandr' verwenden.


Bluetooth Hardware


Pairing auf Kommandozeile

Auf der Seite kofler.info [1] findet man Informationen, wie man mit bluetoothctl ein Gerät verbindet. Hier in Kürze, wie das abläuft.

Zuerst vorbereiten und nach Geräten scannen, die im Pairingmode sind. Auf dem gewünschten Gerät muss die Sichtbarkeit aktiviert werden: (Werte beispielhaft)

$ bluetoothctl
[bluetooth]# agent on
[bluetooth]# pairable on
[bluetooth]# scan on
Discovery started
...
[NEW] Device 12:34:AB:56:CD:78 xxyyzzabcd
[CHG] Device 12:34:AB:56:CD:78 Name: CSL-12345
...
[bluetooth]# scan off
Discovery stopped

Jetzt verbinden wir uns mit dem Gerät CSL-12345:

[bluetooth]# pair 12:34:AB:56:CD:78
Attempting to pair with 12:34:AB:56:CD:78
[CHG] Device 12:34:AB:56:CD:78 Connected: yes
[agent] PIN code: 543210
--> Pin-Eingabe + Return auf der Tastatur <--

[CHG] Device 12:34:AB:56:CD:78 Paired: yes
Pairing successful

[bluetooth]# trust 12:34:AB:56:CD:78
Changing 12:34:AB:56:CD:78 trust succeeded
[CHG] Device 12:34:AB:56:CD:78 Connected: yes

[bluetooth]# connect 12:34:AB:56:CD:78
Attempting to connect to 12:34:AB:56:CD:78
Connection successful

[1] https://kofler.info/bluetooth-konfiguration-im-terminal-mit-bluetoothctl/

hardwaretipps.txt · Zuletzt geändert: 2018/02/12 23:26 von reiner
Sie befinden sich hier: starthardwaretipps
Dieses Dokuwiki verwendet ein von Anymorphic Webdesign erstelltes Thema.
CC Attribution-Noncommercial-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0