Linux Konsole · 4 min read · Feb 02, 2026
Einrichten einer seriellen Konsole
Einrichten einer seriellen Konsole
Dieses Tutorial zeigt Ihnen, wie Sie eine serielle Konsole auf einem Linux-System einrichten und über ein Nullmodemkabel eine Verbindung herstellen. Dies ist besonders nützlich, wenn Ihr Linux-Server in einer headless Konfiguration (kein Keyboard oder Monitor) betrieben wird, da es Ihnen ermöglicht, einfach eine Konsole auf dem System zu erhalten, falls es Probleme gibt (insbesondere Netzwerkprobleme, wenn SSH nicht verfügbar ist). Am Ende wird das GRUB-Menü über die serielle Verbindung angezeigt, ebenso wie die Bootnachrichten (Ausgabe beim Booten des Systems). Ich verwende Debian Etch auf dem Server und Ubuntu Edgy auf meinem Client, obwohl dies auf jeder Linux-Distribution funktionieren sollte.
Erste Schritte
Eine der wichtigsten Dinge, die wir überprüfen müssen, ist, ob Sie tatsächlich einen seriellen Port auf dem Server haben :). Schauen Sie sich die Rückseite Ihres Servers an und sehen Sie, ob er einen 9-poligen seriellen Port hat. Die meisten Motherboards haben entweder einen oder zwei serielle Ports. Überprüfen Sie auf dem System, ob Linux die seriellen Ports erkennt:
root@server:~# dmesg | grep tty
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) ist ein 16550A
00:08: ttyS0 at I/O 0x3f8 (irq = 4) ist ein 16550A
Dies zeigt, dass mein System einen seriellen Port hat, ttyS0 (merken Sie sich das für später).
GRUB-Konfiguration
Der nächste Schritt besteht darin, die GRUB-Konfiguration zu bearbeiten, damit sie ihre Nachrichten an die serielle Konsole sendet. Eine der wichtigsten Dinge ist, ein Passwort festzulegen, da sonst jeder ein serielles Kabel anschließen, die GRUB-Konfigurationszeile bearbeiten kann, während das System bootet (über die “e”-Taste) und Root-Zugriff erhält. Wenn ein Passwort festgelegt ist, wird die interaktive Menübearbeitung deaktiviert, es sei denn, das richtige Passwort wird eingegeben. Um das Passwort festzulegen, müssen wir zuerst die verschlüsselte Version davon erhalten.
Führen Sie grub aus und verwenden Sie den Befehl “md5crypt”, um das Passwort zu verschlüsseln:
grub> md5crypt
Passwort: **
Verschlüsselt: $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
Kopieren Sie die verschlüsselte Version des Passworts (wir benötigen sie für den nächsten Schritt) und geben Sie dann quit ein, um zu beenden.
Jetzt müssen wir die GRUB-Konfiguration bearbeiten. Bearbeiten Sie die Datei /boot/grub/menu.lst (indem Sie nano /boot/grub/menu.lst eingeben) und suchen Sie diesen Abschnitt:
## password ['--md5'] passwd
# Wenn im ersten Abschnitt einer Menüdatei verwendet, deaktivieren Sie alle interaktiven Bearbeitungen
# Steuerung (Menüeintrag-Editor und Befehlszeile) und Einträge, die durch den
# Befehl 'lock' geschützt sind
# z.B. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecretFügen Sie darunter hinzu:
password --md5 $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1
serial --unit=0 --speed=38400 --word=8 --parity=no --stop=1
terminal --timeout=10 serial consoleErsetzen Sie $1$AlfMq1$FxRolxW5XvSLAOksiC7MD1 durch die verschlüsselte Form Ihres Passworts. Die zweite Zeile sagt GRUB, dass der serielle Port mit 38.400 bps (gleiche Geschwindigkeit wie die Standardkonsole), 8 Datenbits, keine Parität und 1 Stoppbit (im Grunde die Standardeinstellungen) initialisiert werden soll. Beachten Sie, dass –unit=0 bedeutet, dass der erste serielle Port (ttyS0) verwendet wird. Wenn Sie den zweiten seriellen Port (ttyS1) verwenden, ändern Sie es in –unit=1. Die letzte Zeile sagt GRUB, dass es sein Menü sowohl über die serielle Leitung als auch über die Konsole (Monitor) anzeigen soll.
Jetzt müssen wir auch die Kernelabschnitte bearbeiten, damit sie Nachrichten an die serielle Konsole ausgeben. Fügen Sie am Ende jeder Kernelzeile console=tty0 console=ttyS0,38400n8 hinzu (ersetzen Sie ttyS0 durch den richtigen seriellen Port). In meinem Fall sah es schließlich so aus:
title Debian GNU/Linux, kernel 2.6.18-4-vserver-686
root (hd0,1)
kernel /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-4-vserver-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-4-vserver-686 (Einzelbenutzermodus)
root (hd0,1)
kernel /vmlinuz-2.6.18-4-vserver-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-4-vserver-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-3-686
root (hd0,1)
kernel /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-3-686
savedefault
title Debian GNU/Linux, kernel 2.6.18-3-686 (Einzelbenutzermodus)
root (hd0,1)
kernel /vmlinuz-2.6.18-3-686 root=/dev/hda3 ro single console=tty0 console=ttyS0,38400n8
initrd /initrd.img-2.6.18-3-686
savedefault Speichern Sie und beenden Sie, indem Sie CTRL+O (zum “Ausgeben” oder Speichern der Datei), Enter (um den Dateinamen zu akzeptieren) und CTRL+X (um tatsächlich zu beenden) drücken.
Erlauben Sie Anmeldungen über die serielle Konsole
Jetzt wird das GRUB-Menü über die serielle Verbindung angezeigt, aber wir hören noch nicht auf Anmeldungen (es läuft noch kein “getty” auf ihm). Bearbeiten Sie die Datei /etc/inittab und suchen Sie diesen Abschnitt:
# Beispiel, wie man ein getty auf einer seriellen Leitung (für ein Terminal) platziert
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100Darunter (ich mag es nicht, die Standardzeilen zu bearbeiten :P) fügen Sie hinzu:
T0:2345:respawn:/sbin/getty -L ttyS0 38400 vt100Und das war’s. Ihr Server zeigt jetzt das GRUB-Menü über die serielle Konsole an und erlaubt auch Anmeldungen (sobald er mit dem Booten fertig ist).
Lassen Sie uns das testen!
Jetzt, wo das alles erledigt ist, müssen wir unseren Client konfigurieren. Ich verwende GtkTerm auf meinem Laptop, obwohl jedes Terminalprogramm funktionieren sollte (solange es einen seriellen Port verwenden kann. Unter Windows sollte HyperTerminal funktionieren). Mein Laptop hat keinen seriellen Port, also benutze ich einen USB-zu-Seriell-Adapter, den ich bei eBay gekauft habe (er erstellt ein ttyUSB0-Gerät). Stellen Sie Ihr Terminalprogramm auf diese Einstellungen ein:
- Port (Linux): ttyS0 oder ttyS1 (wenn Ihr System einen seriellen Port hat), oder ttyUSB0 (wenn Sie einen USB-zu-Seriell-Adapter verwenden).
- Port (Windows): COM1 oder COM2
- Bits pro Sekunde: 38400
- Datenbits: 8
- Parität: Keine
- Stoppbits: 1
- Flusskontrolle: Keine, obwohl Hardware (RTS/CTS) ordnungsgemäß funktionieren sollte
Starten Sie den Server neu (wahrscheinlich von einer SSH-Verbindung oder wie auch immer Sie die GRUB-Konfiguration oben bearbeitet haben) und verbinden Sie dann das Nullmodemkabel, während er startet (d.h. beim BIOS-Bildschirm). Drücken Sie eine beliebige Taste, wenn Sie dazu aufgefordert werden, und Sie erhalten etwas wie:

Das bedeutet, dass GRUB einwandfrei funktioniert :). Drücken Sie die Eingabetaste, und es sollte booten und alle Nachrichten im Terminalfenster anzeigen. Sobald es bootet, sieht es ungefähr so aus:

Schließlich melden Sie sich an und überprüfen Sie, ob alles einwandfrei funktioniert:

Herzlichen Glückwunsch, alles ist eingerichtet und funktioniert einwandfrei.
Ich hoffe, Ihnen hat dieses Tutorial gefallen! :)
Daniel15 (Daniel Lo Nigro)
http://www.daniel15.com/
http://www.dansoftaustralia.net/
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.