Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Samstag
09
Dezember 2017
Klaus Moser
Klaus Moser

Festplatte auf Fehler überprüfen

Dateisystem überprüfen

Wenn das Dateisystem Fehler enthält, muss das Dateisystem überprüft werden. Dazu wird das Kommandozeilen-Werkzeug e2fscheck verwendet. Für die Überprüfung muss man root sein und das Dateisystem darf nicht gemouted sein.

Bash
# Prüft Dateisystem und fragt bei jedem Fehler nach
e2fscheck /dev/sdb1

# Prüfe Dateisystem und repariere alle Fehler die ohne Probleme repariert werden können
e2fscheck /dev/sdb1 -p

# Prüfe Dateisystem und repariere alle Fehler
e2fscheck /dev/sdb1 -y

Fehlerhafte Sektoren

Um eine Festplatte unter Ubuntu auf fehlerhafte Sektoren zu überprüfen, gibt es das Kommandozeilen-Werkzeug badblocks.

Um eine ganze Festplatte in einem nicht-desktruktiven Schreib-/Lesemodus zu prüfen und anschließend eine Liste mit fehlerhaften Blöcken auszugeben kann man das Kommandozeilen-Werkzeug badblocks verwenden.

Bash
badblocks -nvs /dev/sdb
Dienstag
07
November 2017
Klaus Moser
Klaus Moser

Wake on Lan

Habe neulich mal nach einer Möglichkeit gesucht meinen PC auf der Arbeit von zu Hause aus über VPN einschalten zu können. Aus jungen Jahren war mir noch bekannt dass man PCs auch übers Netzwerk mittels WoL (Wake on LAN) einschalten kann.

Eines vorweg, über einen VPN Tunnel kann man einen PC nicht direkt einschalten, da man ein Paket an eine MAC Adresse anstatt an eine IP-Adresse schicken muss. Das VPN liegt also schon ein paar Schichten zu weit oben.

Um einen PC per VPN aufwecken zu können benötigt man also einen Rechner der im selben Netz hängt wie der zu startende Rechner. Hat man keinen Server im Netz kann man sich auch mit einem Raspberry Pi behelfen. Dieser benötigt nicht so viel Strom.

WoL am Raspberry

Nur so am Rande bemerkt: Einen Raspberry Pi kann man nicht per WoL aufwecken, da dessen Netzwerkkarte am USB Bus hängt und im ausgeschaltetem Zustand nicht mit Strom versorgt wird.

Etwas Hintergrundwissen

Von früher konnte ich mich noch erinnern dass Netzwerkkarten die WoL konnten immer ein 3-adriges Kabel beiliegen hatten, welches man mit dem Mainboard verbinden musste. Bei meiner Recherche habe ich herausgefunden dass dieses Kabel nur bis zum PCI-Standard 2.1 Verwendung findet. Modernere Mainboards mit einem PCI-Standard ab 2.2 benötigen diese Verbindung nicht mehr. Stattdessen wird ein PME (Power Management Event) verwendet.

Damit eine Netzwerkkarte auf die PME Events reagiert müssen zum einen die Events im Bios erlaubt sein und das gewünschte Verhalten in der Netzwerkkarte aktiviert werden. In meinem Bios musste ich nichts einstellen da die PME Events standardmäßig bereits aktiviert waren. Früher musste man das WoL mit dem 3-adrigen Kabel noch explizit einschalten.

WoL aktivieren

Um den Devicenamen der Netzwerkkarte herauszubekommen benutzt man den Befehl ifconfig. Meisstens ist das eth0, auf neueren Ubuntu Systemen kann das Device aber auch ganz anders heißen.

Bash
ifconfig

Hat man seine Netzwerkkarte gefunden kann man jetzt dessen Status abfragen.

Bash
$ sudo ethtool eth0
Settings for eth0:
	Supported ports: [ TP MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Half 1000baseT/Full
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	                                     1000baseT/Full
	Link partner advertised pause frame use: No
	Link partner advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: MII
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: pumbg
	Wake-on: d
	Current message level: 0x00000033 (51)
			       drv probe ifdown ifup
	Link detected: yes

Unter Supports Wake-on steht eine Liste unterstützter Modi. Diese bedeuten im Einzelnen:

Kürzel Erklärung
p Wake on phy activity
u Wake on unicast messages
m Wake on multicast messages
b Wake on broadcast messages
a Wake on ARP
g Wake on MagicPacket(tm)
s Enable SecureOn(tm) password for MagicPacket(tm)
d Disable (wake on nothing). This option clears all previous options.

Unter Wake-on steht der aktuell eingstellte Modus.

Soll der PC nun z.B. mit einem MagicPacket aufgeweckt werden so muss man den entsprechenden Modus für die Netzwerkkarte aktivieren:

sudo ethtool -s enp3s0 wol g

Möchte man WoL wieder deaktivieren macht man das mit:

sudo ethtool -s eth0 wol d

PC aufwecken

Um den PC aufzuwecken, kann man jetzt z.B. das Tool wakeonlan verwenden. Dieses installiert man unter einem debian-basierten Linux mit:

Bash
sudo apt-get install wakeonlan

Den PC weckt man dann auf mit:

Bash
wakeonlan XX:XX:XX:XX:XX:XX

Wobei XX:XX:XX:XX:XX:XX für die Mac-Adresse der Netzwerkkarte steht. Diese bekommt man auch mittels ifconfig heraus.

Problembehebung - WOL wird ständig deaktiviert

Seltsamerweise deaktiviert sich bei meinem Rechner ständig das Wake On Lan Feature. Deshalb aktiviere ich ihn jetzt jedesmal automatisch wenn der Rechner gestartet wird. Dies erfolgt durch ein systemd script.

Man legt die Datei /etc/systemd/system/wol@.service an. Das @ gehört zum Dateinamen, also nicht löschen, und fügt dann folgenden Inhalt ein:

systemd
[Unit]
Description=Enable wake on lan for interface %i
Requires=network.target
After=network.target

[Service]
ExecStart=/sbin/ethtool -s %i wol g
Type=oneshot

[Install]
WantedBy=multi-user.target

Als nächstes sucht man sich mit ifconfig sein Netzwerk-Device raus und fügt den systemd-Job so hinzu:

Bash
sudo systemctl enable wol@eth0

Um zu prüfen ob der Service erfolgreich ausgeführt wurde kann man folgenden Befehl ausführen:

Bash
systemctl is-enabled wol@eth0

Nach einem Reboot kann man mit dem ethtool wieder prüfen ob Wake on Lan jetzt aktiv ist. Zur Erinnerung es muss so etwas herauskommen:

Wake-on: g
Donnerstag
31
August 2017
Klaus Moser
Klaus Moser

Security Updates installieren

Bei einem apt-get upgrade werden ja immer gleich alle Pakete aktualisiert. Will man nur die Sicherheitsupdates installieren verwendet man entweder das Paket unattended-upgrade für automatische Aktualisierungen oder man installiert die entsprechenden Pakete manuell mit:

apt-get -s dist-upgrade | grep "^Inst" | \
  grep -i securi | awk -F " " {'print $2'} | \
  xargs apt-get install
Blog

Kmoser's Tech-Blog