====== Workaround: Reboot nach Kaltstart ====== Bei einem Kaltstart funktioniert die Bildschirm-Ausgabe an meiner KVM-Server-Konsole nicht richtig. Erst nach einem Reboot ist die Anzeige wieder da. Aus diesem Grund habe ich mir etwas einfallen lassen müssen, um diesen Missstand zu beheben. Denn es kann ab und zu vorkommen, dass man doch mal lokal an einen Rechner (auch wenn es "nur" ein Raspberry PI ist) muss. Im Prinzip geht es hier also nur darum nach einem Kaltstart einen Reboot zu tätigen, damit auch mein KVM-Switch wieder eine Anzeige bekommt. Es wird hierfür ganz simpel einfach nur ein Skript für die Erstellung einer "Prüf-Datei" und ein weiteres zur Überprüfung dieser in die Runlevels mit aufgenommen. Durch die Überprüfung wird dann gegebenenfalls ein zeitverzögerter Reboot ausgelöst. Die Skripte hierbei sind nicht wirklich kompliziert: Erstellen einer Prüf-Datei mit ''sudo vi /etc/init.d/reboot-do'': #! /bin/sh ### BEGIN INIT INFO # Provides: reboot-do # Required-Start: # Required-Stop: # Default-Start: # Default-Stop: 6 # Short-Description: Make a check file for rebooting. # Description: ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions do_stop () { touch /var/reboot.done date > /var/reboot.done } case "$1" in start) # No-op ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) do_stop ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac Prüfen der Prüf-Datei mit ''sudo vi /etc/init.d/reboot-chk'': #! /bin/sh ### BEGIN INIT INFO # Provides: reboot-chk # Required-Start: $all # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: # Short-Description: Check for reboot. ### END INIT INFO PATH=/sbin:/usr/sbin:/bin:/usr/bin . /lib/lsb/init-functions do_start() { if [ -e /var/reboot.done ]; then rm /var/reboot.done echo "$(date) - was rebooted." >> /var/log/reboot.log else echo "$(date) - reboot after normal boot in one minute." >> /var/log/reboot.log shutdown -r 1 & fi } case "$1" in start) do_start ;; restart|reload|force-reload) echo "Error: argument '$1' not supported" >&2 exit 3 ;; stop) ;; *) echo "Usage: $0 start|stop" >&2 exit 3 ;; esac Durch dieses Skript wird ein reboot.log geschrieben. Um dies abzuschalten müssen die entsprechenden Zeilen ''echo ... >> /var/log/reboot.log'' auskommentiert werden. Die Runlevels werden dann wie folgt eingerichtet: pi@raspberry ~ $ sudo chmod 0755 /etc/init.d/reboot-* pi@raspberry ~ $ sudo chown root:root /etc/init.d/reboot-* pi@raspberry ~ $ pi@raspberry ~ $ sudo update-rc.d reboot-do defaults update-rc.d: using dependency based boot sequencing update-rc.d: warning: default start runlevel arguments (2 3 4 5) do not match reboot-do Default-Start values (none) update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match reboot-do Default-Stop values (6) pi@raspberry ~ $ sudo update-rc.d reboot-chk defaults update-rc.d: using dependency based boot sequencing update-rc.d: warning: default stop runlevel arguments (0 1 6) do not match reboot-chk Default-Stop values (none) pi@raspberry ~ $ Das war es dann bereits schon. Die Skripte könne im Notfall (oder warum auch immer) mit ''sudo update-rc.d reboot-do remove'' und ''sudo update-rc.d reboot-chk remove'' wieder aus den Runlevels entfernt werden. {{description>Hier geht es darum nach einem Kaltstart einen Reboot zu tätigen, damit mein KVM-Switch wieder eine Anzeige bekommt.}} {{keywords>projekt,dokumentation,reboot,konfiguration,administration}} {{tag>"raspberry pi" workaround}} //Dieser Artikel ist publiziert unter: {{license>by-nc-sa,small}}//