it-swarm-ko.com

직렬 터미널을 KVM 인스턴스에 어떻게 연결합니까?

아마도 KVM이 무엇을 할 수 있는지 오해하고 있지만 VM에서 하드웨어를 추가/제거하는 기능은 직렬 포트를 추가 할 수 있음을 의미하는 것 같습니다. 그런 다음 터미널 역할을합니다.

그래서 내 질문은 다음과 같습니다.

  1. 게스트 FreeBSD 배포에 가장 적합한 설정은 무엇입니까? (많이있다!)
  2. 내 Linux 호스트에서 해당 터미널에 어떻게 액세스합니까?
12
user119

이제 Stefan 의 의견과 두 개의 링크 된 기사를 기반으로 내 질문에 답할 수 있습니다.

해결책은 다음과 같습니다.

  • Pty를 가리키는 기본 직렬 장치가있는 경우 호스트 구성과 관련된 작업을 편집 할 필요가 없습니다.
  • 커널의 부팅 매개 변수에 serial=tty0 console=ttyS0,115200n8가 추가되었는지 확인합니다. 일반적으로 /boot/grub/menu.lst를 편집하여 수행합니다.
  • /etc/inittab를 구성하고 T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100 줄을 추가하여 getty를 시작하고 로그인 프롬프트를 제공합니다.

Fedora 시스템을 사용하여 이것이 작동하는지 확인할 수 있습니다 (문제의 시스템이 SELinux MLS를 실행하는 Fedora rawhide이기 때문에 enforcing=0를 추가 매개 변수로 설정해야했지만).

나는 거기에서 아마도 freebsd에 대해 동일한 작업을 수행 할 수 있다고 생각합니다.

감사합니다 스테판!

5
user119

FreeBSD 시스템을 설정하는 방법에 대한 대답으로 시리얼을 얻는 두 가지 주요 사례가 있습니다. 직렬로만 FreeBSD를 설치하는 경우 부트 로더 직렬 지침이 필요합니다. 이미 콘솔이 있고 직렬 액세스도 원하는 경우 설치 후 직렬 지침을 따르십시오.

부트 로더 직렬

  • FreeBSD 부팅 옵션 화면에서 2를 눌러 로더 프롬프트로 빠져 나옵니다.
  • 유형 set console=comconsole
    • 이 시점에서 상호 작용이 느슨하면 가상 tty 전송 속도가 9600인지 확인하십시오.
  • autoboot 유형

이렇게하면 나머지 설치가 직렬 인터페이스를 통해 수행 될 수 있습니다. FreeBSD를 설치 한 후에도 직렬 액세스를 계속하려면 설치가 끝날 때 재부팅하기 전에 명령 프롬프트로 이동해야합니다.

설치 후 시리얼

콘솔에서 :

  • 유형 echo 'console="comconsole"' >> /boot/loader.conf
  • vi에서 /etc/ttys로드
  • Ttyu0으로 시작하는 줄을 수정합니다 (FreeBSD의 다른 버전에서는 ttyd0 일 수 있음)
    • 그 줄에서 dialupvt100로, offon로 변경합니다.
  • 재부팅 후 직렬 터미널에 부팅 프로세스가 표시되고 로그인 프롬프트 가 표시됩니다.
    • 참고 : console="comconsole"에서 /boot/loader.conf를 설정하면 부팅 메시지가 직렬 인터페이스에만 나타날 수 있습니다. 직렬로 부팅 로그를 원하지 않으면 /etc/ttys를 수정하십시오.

참고 문헌

http://www.freebsd.org/doc/handbook/serialconsole-setup.html

http://www.freebsd.org/doc/handbook/term.html

2
Peter Olson

물론 에뮬레이터 내에서 직렬 포트를 에뮬레이트하고 호스트에서 액세스 할 수 있어야합니다. 게스트 OS는 예를 들어 getty_ps를 통한 로그인 프롬프트와 같은 '하드웨어 직렬 포트'에 무언가를 넣어야합니다. 이제 저는 개인적으로 이런 식으로 사용할 필요가 없었습니다. 대부분 게스트 OS의 에뮬레이트 된 직렬 포트는 디버깅 정보에 사용되며 (Haiku는 여전히 기본적으로 사용함) 에뮬레이터 (예 : VMware)에서 디버그 정보를 사용할 수 있도록 간단한 텍스트 파일로 캡처합니다. 여기에서 qemu 내의 에뮬레이트 된 직렬 콘솔에서 실행되는 것을 얻으려고합니다.

0
reiche

OP의 답변은 작동하지만 내 환경 (Linux 호스트, Linux 클라이언트)으로 시도 할 때

  1. serial=tty0는 필요하지 않았습니다.
  2. /etc/inittab에서 vt100 대신 xterm을 사용하면 더 잘 작동합니다 (색상이 표시됨).
0
Andy Song