Linux später neu starten ohne angemeldete Shell

Problem

Ein Linux/Unix Computer soll später neu starten. Der Reboot soll nicht permanent angelegt sein (z.B. als Cronjob) und es gibt kein screen auf dem System. Die Shell ist bis dahin auch nicht mehr verbunden, daher fällt ein simpler ’shutdown‘ Befehl aus.

Lösung

Das Shutdown mir nohub starten. nohup ist ein Befehl, ein Programm auszuführen, wobei dieses dann das HUP-Signal unterdrückt. Dadurch kann man das Programm starten und laufen lassen, auch wenn es kein offenes TTY mehr gibt.

Üblicherweise nutzt man nohup, um Dienste im Hintergrund zu starten und diese so von der Login-Shell zu trennen. Ausgaben des aufgerufenen Programmes werden automatisch in die Datei nohup.out geleitet, die im Verzeichnis angelegt wird, von dem aus der Befehl ausgeführt wurde. Um zu verhindern, daß das Programm nicht weiterläuft, weil es auf Eingaben wartet, ist es außerdem manchmal notwendig, auch die Standard-Eingabe etwa mit „</dev/null“ umzulenken.

In unserem „Sei still und boote einfach neu“ Beispiel könne wir auf die Ausgane verzichten, daher sieht die einfachste Lösung so aus:

nohub shutdown -r -t sec 120 >/dev/null 2>&1 &

ACHTUNG. nohub ist nicht die Lösung der Wahl, um Dienste permanent im System zu verankern. Wer sein node.js so startet, hat weder nodeJS noch das system.d Konzept verstanden 😉

Windows 7/8 „Senden an“ Menü anpassen

menue-senden-an-bearbeitenUm unter Windows die Auswahlmöglichkeiten aus dem „Senden an“ Menü der rechten Maustaste zu bearbeiten, sind nur wenige Handgriffe notwendig:

  1. Ordner %appdata%\Microsoft\Windows\SendTo öffnen
  2. Die gewünschte Verknüpfung erstellen

Mit Start > Ausführen > „shell:sendto“ kommt man da noch schneller hin (thx heiko)

HP Integrated Lights-Out 3 (iLO 3) funktioniert nicht im Internet Explorer und Firefox (sec_error_ca_cert_invalid)

Problem

Die HP Integrated Lights-Out Webseiten (iLO 3 und iLO 2) zeigen im Internet Explorer ab Version 10 nur noch „Die Seite kann nicht angezeigt werden.“

ilo-seite-kann-nicht-angezeigt-werdenDie selbe URL im Firefox zeigt den Fehler „Fehler: Gesicherte Verbindung fehlgeschlagen“ mit der Erkläsrung „Ein Fehler ist während einer Verbindung mit 192.168.0.foo aufgetreten. Das Aussteller-Zertifikat ist ungültig. (Fehlercode: sec_error_ca_cert_invalid)“

Lösung

Um möglichst schnell und unkompliziert auf die Remote-Console und Remote-Media zuzugreifen, gibt es ein Standalone-Tool für Windows, das eine direkte Verbindung unabhängig von den SSL-Fehlern zulässt.

Die vollständige Lösung ist natürlich, auf die jeweils aktuelle ILO-Firmware zu aktualisieren; ab der Version 1.8x ist das fehlerhafte (leere) ausstellende Zertifikat nicht mehr vorhanden. Admin-Kurztipp: Google Chrome lässt dem Admin noch die Wahl, die Seite „trotzdem“ anzuzeigen.

Achtung, ältere iLO 3 Versionen vor v1.20 müssen erst auf v1.20 aktualisiert werden, sonst startet die ILO-Engine überhaupt nicht mehr ohne Kaltstart. Die Update auf v1.20 gibt es hier:

Alle HP ILO Firmware Downloads finden sich auf hp.com/go/ilo (Danke monopoly-spieler)

(Verwaiste) Volumenschattenkopien auflisten und sauber löschen

Problem

Auf einem Server können keine neuen Volumenschattenkopie-Jobs angelegt werden („Das Volumen ist bereits vorhanden“), es können keine weiteren Schattenkopien für ein DPM-geschütztes Voume angelegt werden („Die Schattenkopie mit der ID xxxxxxxxxxxxx ist bereits vorhanden“) und/oder bestehende DPM-Jobs starten nach einem Volumenwechsel nicht mehr, weil die bestehenden Jobs auf das „alte“ Volumen zeigen („Es wurde bereits eine Schattenkopie mit der ID xxxxxxxxxxx gefunden“).

Lösung

Zuerst sind die bestehnden verwaisten Schattenkopien zu entfernen, dann das Ziel-Volumen (Shadowcopy-Storage). Es gibt mehrere Möglichkeiten die Einträge der Schattenkopie-Liste  eines Systems aufzuräumen.

1) Sofern die orginal-Volumenzuordnung noch existiert, ist es möglich aud der Liste der Schattenkopien die ID der betroffenen Kopie zu extrahieren:

vssadmin list shadows

Aus der ausgegebenen Liste nun einfach die Schattenkopie-ID kopieren und löschen:

vssadmin Delete Shadows /shadow={Schattenkopie-ID}

Zum Beispiel: vssadmin Delete Shadows /shadow={affeaffe-dead-beef-b444-dfafafafafdf}

2) Wenn Vssadmin dabei aber seltsame Fehler ausspuckt, hat die Zuordnung nicht (mehr) richtig funktioniert. Hier hilft es in der Regel, die betroffene Kopie direkt zu entfernen; dazu gibt es ein WMI-Interface für den VSS-WMI-Provider.

C:\>wmic
wmic:root\cli>shadowcopy list

Zeigt die vorhandene Liste an. Einzelne einträge kann man löschen. pro Eintrag erfolgt eine einzelne Abfrage:

C:\>wmic
wmic:root\cli>shadowcopy delete
"\\SERERNAME\ROOT\CIMV2:Win32_ShadowCopy.ID="{Schattenkopie-ID}" löschen (J/N/?)?

ACHTUNG! Obwohl Das Tool nach J/N fragt, wird ein „Y“ zum bestätigen benötigt *seufz*.

schattenkpien-loeschenWenn ein ganzes Volumen verwaist ist, zum Beisspiel wenn ein Admin darauf geschützte oder vom DPM als Ziel verwendete Partitionen entfernt, ist uns keine andere Möglichkeit bekannt, als dem Volumen eine neue Seriennummer zu geben. Das geht indem man das betroffene physikalische Array einfach löscht und neu erstellt, oder die Seriennummer einer neu erstellten NTFS-Partition mit „Volume-ID“ aus der Sysinternals-Trickkiste verändert:

C:\>volumeid T: f0000-ba00

ACHTUNG: Danach die Maschine neu starten und NICHT VERSUCHEN eine Schattenkpie anzulegen. Nach dem Neustart sollte das Volumen aus der VSS-Zielliste verschwunden sein. Das ist zu prüfen mit:

C:\>vssadmin list shadowstorage

vmware Freie Blöck auf Datastore als frei markieren (Reclaim wasted Space, vmkfstools punchzero, storage unmap)

Problem

NetAPP Nimble iSCSI Storage Platz freigebenEine SAN Lun (NetAPP, EMC, Nimble, Nutanix …) die (insgeheim oder nicht) Thin Provisioning auf dem Array (oder Volumen, Aggregat, Shelf, whateveritscalled) macht, läuft seit vSphere 5.x langsam voll. Es ist immer weniger Speicher auf dem Aggregat frei. Die Gastmaschienen bleiben gleich groß, aber jeder Storage-vMotion-Vorgang und jedes erstellen/löschen von Daten auf dem Datastore hinterlässt weniger freien phasikalischen Speicher auf dem Aggregat. Der Datastore wird im vSphere Client aber mit unverändert viel Speicher und unverändert viel freiem Speicher angezeigt. Nur die physikalisch Belegung wird größer und größer.

Lösung

Wenn eine thin provisioned Lun mit Daten beschrieben wird, werden diese Daten „hart“ geschrieben. Werden diese Daten dann wieder gelöscht, werden die Daten aber nicht wirklich gelöscht („mit Nullen überschrieben“), sondern die betroffenen Blöcke werden nur als „frei“ markiert. Ähnlich arbeiten praktisch alle heutigen Dateisysteme, weil ein Löschvorgang andernfall ein Schreibvorgang vollständiger größe und wäre und somit (potentiell) lange dauern würde.

Wenn nun häufig Daten geschrieben und gelöscht werden, werden nach und nach mehr Blöcke mit „als gelöscht“ markierten Daten hinterlassen. Ein SAN kann von aussen nicht unterscheiden, welche Daten echt sind und welche als löschbar markiert – dazu wäre technisch tiefe Einsicht in das Dateisystem notwendig. Tatsächlich freie Bereiche („Nullen“) erkennen SANs aber in der Regel als solche. Dieser Vorgang wird oft als punchzero, zero free space, reclaim wasted space, unmap disk space oder ähnliches bezeichnet.

Windows 2003 und höher

Unter Windows kann das Tool sDelete von Sysinternals den freien Bereich eines Datenträgers mit Nullen füllen.

c:\>sdelete -p 1 -z c:

ESX(i) Instalationen bringen ein entsprechendes Tool ebenfalls mit. Je nach vSphere Release unterscheidet gibt es allerdings etwas andere Namespaces dafür.

vSphere 5.1

vmkfstools -y 95 -d /vmfs/volumes/DATASTORENAME

vSphere 5.5

storage vmfs unmap -l DATASTORENAME

Linux

dd if=/dev/zero of=/DISK/foo.bar bs=4096 && rm -f /DISK/foo.bar

Zum Beispiel lässt sich dieser Vorgang auch via ESXCLI auslösen, zum Beispiel monatlich:

c:\>esxcli -s SERVER -u root -p PASSWD storage vmfs unmap -l DATASTORENAME