Configurazione della serial console su Linux



Cosa è una Serial Console?
Normalmente siamo abituati ad utilizzare un pc linux (da ora in poi server) in almeno tre diversi metodi:

  • accesso locale: attraverso mouse, monitor e tastiera del server
  • accesso remoto testuale: usando i protocolli telnet o ssh per accedere via rete ad una shell del server remoto
  • accesso remoto grafico: usando vari protocolli (vnc ad esempio) per accedere via rete al desktop del server remoto

Esistono un altri metodo di accesso al server. Uno di questi è la serial console, ovvero utilizzare una delle porte seriali (COM) del pc per avere un accesso locale al sistema.

Scenario di utilizzo
Molto spesso i server non sono dotati di monitor tastiera e mouse, ma vengono gestiti totalmente da remoto tramite i protocolli a cui abbiamo accennato poco fa. Tutto va bene finché riusciamo a raggiungere via rete il server. Ma che succede se tentando di connettersi non si riceve risposta? L’unica cosa da fare è accedere localmente al server per capire la natura del problema. E’ in questo momento che la mancanza di monitor e tastiera si fanno sentire. Ed è adesso che la serial console rivela tutta la sua utilità. Infatti basterà collegare la porta COM del server alla porta COM di un altro pc (solitamente un portatile) attraverso un apposito cavo seriale RS232 per avere accesso alla console locale di sistema. Normalmente la serial console non è abilitata di default sul sistema. Vediamo quindi come abilitarla.

Configurazione della serial console
Ogni volta che accendiamo un server (linux), compaiono in ordine le seguenti fasi di avvio:

  1. Il post, dove vengono riportati vari dati di sistema ed eseguiti alcuni test preliminari. Da qui è possibile accedere al BIOS (fase 1)
  2. Il bootloader, dove vengono presentati i vari sistemi operativi installati e/o le differenti modalità di avvio. E’ possibile scegliere con quale sistema far bootare il server (fase 2)
  3. Il caricamento del sistema, durante il quale vengono visualizzati i servizi startati e l’esito (ok o failed) (fase 3)
  4. Il login alla console (fase 4)

Quello che vogliamo fare è redirigere l’output di ognuna di queste fasi verso la porta COM. Per quanto riguarda la fase 1, la redirezione è possibile soltanto se il BIOS prevede questa possibilità. Sui pc casalinghi in genere non è così, per cui non sarà possibile visualizzare la fase 1 tramite serial console.

Configurazione del bootloader
Per configurare il bootloader (GRUB in questo caso) è necessario andare ad editare il file /boot/grub/menu.lst (oppure /boot/grub/grub.conf in alcune distribuzioni come la redhat per esempio). Bisogna inserire all’inizio del file, prima dell’istruzione title le due righe:

serial –unit=0 –speed=38400
terminal –timeout=10 serial console

La prima istruzione configura la porta seriale:
–unit=0 specifica quale COM usare: 0 per la COM1, 1 per la COM2…
–speed=38400 specifica la velocità di comunicazione

La seconda istruzione specifica che i terminali possibili saranno quello seriale e la console locale. L’opzione –timeout=10 specifica che se dopo 10 secondi non arriverà nessun input dall’utente, il terminale predefinito sarà il primo di quelli elencati. In questo caso serial.

Le modifiche apportate finora, faranno sì che saremo in grado di visualizzare il menu di GRUB anche da console seriale. Per essere in grado di visualizzare la fase di caricamento del sistema (fase 3) occorre aggiungere alla fine della riga che inizia per kernel le istruzioni:

console=tty0 console=ttyS0,38400

Per essere in grado fare la login alla fine del caricamento (fase 4) occorre modificare in file /etc/inittab, scommentando (o aggiungendo se non cè già) la riga

T0:23:respawn:/sbin/getty -L ttyS0 38400 vt100

Non tutte le distribuzioni usano il file inittab. Sicuramente è presente in debian, suse e redhat. Se si vuole permettere l’accesso da seriale direttamente come utente root, bisogna aggiungere nel file /etc/securetty la riga

ttyS0

A questo punto si può collegare un portatile al server tramite il cavo di connessione seriale. Si apra un emulatore di terminale (ad esempio putty o hyperterminal) e si imposti la connessione sulla porta COM1 (in questo esempio) alla velocità di 38400 bps. Riavviando il server, si vedrà apparire sulla finestra terminale del portatile tutte e 4 le fasi descritte precedentemente. Si potrà quindi avere la login e investigare sugli eventuali problemi del server.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
  • sacarde

    salve,
    bell’articolo….
    interessante, ma non ho capito quale comando dare dal pc-linux che si collega col server….

    grazie

Pinterest