Dziś krótki opis jak zapewnić sobie łączność z maszyna wirtualną przy użyciu portu szeregowego. Opcja bardzo przydatna, w przypadku kiedy hostujemy maszyny wirtualne na serwerze bez środowiska graficznego (VirtualBox w trybie Headless) lub kiedy musimy mieć dostęp do bootloadera.
Konfiguracja VirtualBox’a
W VirtualBoxie musimy włączyć port szeregowy (Serial Ports). Tryb działania portu ustawimy jako Host Pipe, a jako ścieżkę /tmp/vbox-centos
. Po uruchomieniu maszyny w naszym systemie pojawi się podany plik:
stat /tmp/vbox-centos File: ‘/tmp/vbox-centos’ Size: 0 Blocks: 0 IO Block: 4096 socket Device: 12h/18d Inode: 29504682 Links: 1
Konfiguracja systemu
Teraz czas na konfigurację maszyny wirtualnej. W podanym przykładzie używamy systemu CentOS 6.2. Prędkość transmisji ustawimy na 57600bps. W pliku /etc/grub.conf
dodajemy:
serial --unit=0 --speed=57600 terminal --timeout=5 serial console
oraz wyłączamy graficzny interfejs (splashimage):
#splashimage=(hd0,0)/grub/splash.xpm.gz
Do linijki kernel
dopisujemy console=tty0 console=ttyS0,57600
, oraz usuwamy (jeśli jest dodana) opcję rhgb
(redhat graphical boot):
title CentOS (2.6.32-220.23.1.el6.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-220.23.1.el6.x86_64 ro root=/dev/mapper/vg_test-root crashkernel=auto console=tty0 console=ttyS0,57600 initrd /initramfs-2.6.32-220.23.1.el6.x86_64.img
Na koniec w katalogu /etc/init
tworzymy plik ttyS0.conf
:
cat /etc/init/ttyS0.conf # ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -L 57600 ttyS0 vt100
Test połączenia
Do połączenia się z maszyna wirtualną przez port szeregowy użyjemy programu socat. Jako pierszy parametr podajemy nazwę pliku (/tmp/vbox-centos
), drugi to standartowe wejście oraz ustawiona prędkośc na 57600bps:
socat unix-connect:/tmp/vbox-centos -,b57600
Na poniższych 2 zrzutach uruchomiona maszyna wirtualna oraz wyjście programu socat
na konsolę.
0 Komentarze.