Node.js Anwendung für Aquastream XT

Da es für Linux keine Steuerungssoftware für die Aquastream XT gibt, habe ich vor geraumer Zeit damit begonnen eine Node.js Anwendung dafür zu schreiben. Ziel war es, die aktuellen Pumpen-Informationen wie Frequenz, Wassertemperatur etc. grafisch darzustellen und die Einstellungen ändern zu können. Node.js Anwendung für Aquastream XT weiterlesen

Linux Mint – Installation bleibt bei „Dokumente und Einstellungen übernehmen“ hängen

Linux Mint versucht ggf. bei der Installation bereits vorhandene Daten zu migrieren (/home/ Verzeichnisse einer bestehenden Linux Installation, Dokumente und Einstellungen einer Windows Installation, usw.) – auch wenn man das nicht will. Es gibt im Installationsassistenten auch keine Möglichkeit dies zu deaktivieren (Nadia, Version 14.1).

In meinem Fall hat sich die Installation bei der Migration aufgehängt. Wenn das passiert oder wenn man einfach nicht möchte dass die Daten migriert werden, startet man die Installation am besten über das Terminal: Linux Mint — Installation bleibt bei „Dokumente und Einstellungen übernehmen“ hängen weiterlesen

/usr/bin/rm: Die Argumentliste ist zu lang

Wenn sich in einem Verzeichnis zu viele Dateien befinden, meckert rm gerne mal rum dass die Argumentliste zu lang ist.
In einer TYPO3 Installation hatte ich gerade wieder ein typo3temp Verzeichnis in dem sich 85.000 Dateien angesammelt hatten – das per FTP zu löschen würde viel zu lange dauern (Stunden).

Als einzig sinnvolle Möglichkeit bleibt hier die Kommandozeile, doch auch hier geht das wegen dem o.g. Problem (rm / Argumentliste) nicht ohne weiteres.

Hiermit löscht man alle Dateien im aktuellen Verzeichnis:

und so z.B. alle JavaScript Dateien:

Sogar das dauerte bei meinen 85.000 Dateien ca. 10 Minuten.

Update: Um das ganze noch weiter zu beschleunigen, kann xargs noch der n Parameter übergeben werden:

Festplatten klonen mit dd

Wer eine Festplatte klonen oder ein Image davon erstellen will, der hat die Qual der Wahl wenn es um die Programmauswahl geht.
Natürlich gibt es für diesen Zweck eine Reihe kommerzieller Programme (Ghost, Acronis usw.), die aber meiner Meinung nach absolut überflüssig sind weil man auf hervorragende Open Source Lösungen zurückgreifen kann. (Ausnahme ist die Erstellung von Live-Images, also bei laufendem System)

Außerdem bin ich kein Freund von kostenpflichtiger Software wenn es freie Software gibt die ihre Aufgabe gleich gut oder sogar besser erledigt.

Da wäre zum einen CloneZilla, ein bootfähiges, linux basiertes Programm das von CD/DVD oder einem USB Stick gestartet wird – einfach das ISO Image downloaden, brennen und den Rechner damit starten.
Damit sollte man in den meisten Fällen auskommen wenn man nur eine Platte oder eine Partition klonen will bzw. ein Image davon erstellen will.

Kürzlich hatte ich jedoch einen Fall wo ich mit CloneZilla nicht weitergekommen bin. Es gab ein Problem mit dem Ziellaufwerk, aus irgend einem Grund konnte er die Partitionen nicht erstellen (es war eine frische, neue Platte).

In so einem Fall kann man immer noch die Holzhammermethode anwenden – eine 1:1 kopie mit dd – dump device.
dd ist ein Unix/Linux Programm das in den meisten Linux Distributionen enthalten ist, so auch in CloneZilla Live.
Damit lassen sich Datenströme 1:1 von A nach B leiten, was sich für’s Klonen natürlich anbietet.

Wir booten also z.B. mit CloneZilla und wechseln danach auf die Kommandozeile anstatt Clonezilla zu starten.

mit folgendem Befehl wird sda (Laufwerk auf SATA Port 1) 1:1 auf sdb (SATA Port 2) übertragen:

sudo dd if=/dev/sda of=/dev/sdb bs=1M & pid=$!

Kurz zur Erklärung der Parameter:

if = input file (kann ein x beliebiger stream sein)
of = output file (auch beliebig, datei (für ein Image) oder ein device)
bs = block size – unbedingt angeben ansonsten wird der Vorgang ewig dauern. Da muss man evtl. etwas experimentieren, ich bin letztens mit 1M ganz gut gefahren.

Mit pid=$ wird die Prozess ID in die Variable $pid geschrieben damit wir nachher zur Statusanzeige noch darauf zugreifen können ohne die Prozess ID manuell angeben zu müssen.

Achtung: Bevor dd ausführt sollte man unbedingt sichergehen dass man if und of richtig angibt, ansonsten kann das Ganze sehr schnell in einem Disaster enden.

sudo fdisk -l gibt Aufschluss über die angeschlossenen Devices.

Nachdem dd läuft und wir es idealerweise mit & in den Hintergrund geschickt haben, senden wir zur Statusanzeige dd das USR1 Signal, woraufhin es den aktuellen Fortschritt anzeigt.

sudo kill -USR1 $pid

Um bspw. alle 10 Skunden den Fortschritt zu erhalten kann man watch verwenden:

sudo watch --interval 10 kill -USR1 $pid

Das Ziellaufwerk muss natürlich mindestens gleich groß wie die Quelle sein, aber das sollte klar sein.

dd ist sehr langsam, eine 2TB Platte zu klonen kann schon mal 5 Stunden dauern – da ist man mit Clonezilla im Normalfall besser bedient weil hier intelligenter vorgegangen wird. dd schaufelt halt „dumm“ die Blocks von A nach B, inkl. nicht genutzem Speicherplatz.

Aus aktuellem Anlass musste ich gerade die Festplatte eines SBS 2003 klonen.
Im laufenden Betrieb stürzte der RAID Controller ab (nVidia Software RAID), weswegen die Spiegelung sofort unbrauchbar war. Eine Wiederherstellung via RAID Utility klappte leider nicht – Gott sei Dank gibt es so einfache Programme wie dd.