Status-Anzeige bei dd

Bei einem langlaufenden dd-Prozeß – z.B. beim Clonen von Festplatten – wäre es wünschenswert den aktuellen Fortschritt einzusehen. Zwar bietet das Standard-dd keine Möglichkeit, einen Bargraph anzuzeigen, man kann sich aber behelfen. Wenn man dem dd-Prozeß ein USR1-Signal schickt gibt es Statistiken auf STDERR aus:

$ kill -USR1 dd-prozess-pid
68445388+0 Datensätze ein
68445387+0 Datensätze aus
35044038144 Bytes (35 GB) kopiert, 26,1222 s, 1,3 GB/s

Lokaler apt-get-proxy

Folgende Situation: In einem lokalen Netzwerk sind eine Reihe von Debian- und Ubuntu-Installationen vorhanden, teilweise in virtuellen Maschinen, teilweise direkt auf der Hardware. Updates dauern aufgrund der unterdimensionierten Internet-Anbindung aber ziemlich lange. Gesucht wird nach einer Lösung, bei der die Pakete auf einem lokalem Server zwischengespeichert werden, sodaß sie nur einmal heruntergeladen werden müssen.

Continue reading “Lokaler apt-get-proxy”

Gefixt: vboxsf automount unter Ubuntu 14.04

Folgender Effekt: Nach Update von Ubuntu 12.04 auf 14.04 funktioniert der in /etc/fstab eingetragene Shared-Folder der Virtualbox nicht mehr.

Beim Booten bleibt Ubuntu stehen mit dem Hinweis, daß es mit dem Mountpoint Probleme gibt. Man hat entweder die Möglichkeit mit der Taste “M” ohne den Mount zu booten oder mit der Taste “S” das Einhängen zu überspringen.

Continue reading “Gefixt: vboxsf automount unter Ubuntu 14.04”

Apt-Repositories und Pakete aufräumen vor Upgrades

Mit der Zeit sammeln sich immer mehr Third-Party-Repositories an. Sei es, weil ein Programm nicht in den Standard-Repos der Distribution angeboten wird oder weil man eine neuere Version benötigt.

Spätestens wenn ein Distributions-Upgrade fällig ist, sollte man sich daran machen in den Repository-Sourcen aufzuräumen. Ansonsten kann es zu seltsamen Effekten während des Upgrades kommen. Nicht selten sind Third-Party-Repositories von der Ausgabe der eingesetzten Distribution abhängig.

Continue reading “Apt-Repositories und Pakete aufräumen vor Upgrades”

Timer und gettimeofday()

TL&DR: Bei Zeitmessungen immer eine monotone Uhr verwendet werden, nicht die normale Systemzeit.

Long story:

In einem speziellen Fall einer Timer-Implementierung wurde gettimeofday() verwendet. Auf dem Entwicklungs-Rechner hat der Timer anstandslos funktioniert. Auf dem Embedded-System mit angeschlossenem GPS hat der Timer nicht gefeuert.

Grund dafür war, daß während des Hochfahrens die Zeit mehrmals gesetzt wurde. Dadurch waren die relativen Abstände der Zeitstempel nicht mehr korrekt. Speziell in dem Fall in dem die System-Zeit 60 Sekunden in die Vergangenheit gesetzt wurde war der 15 Sekunden-Timer plötzlich auf 60+15 Sekunden = 75 Sekunden terminiert.

Bei Zeitberechnungen/Timer ist man in den meisten Fällen an einer Uhr interessiert die für die Laufzeit des Programms bzw. des Systems die Zeit kontinuierlich hochzählt. Das Mittel der Wahl unter Linux ist dafür clock_gettime(CLOCK_MONOTONIC).