
아마도 KVM이 무엇을 할 수 있는지 오해하고 있는 것 같습니다. 그러나 VM에 하드웨어를 추가/제거하는 기능은 터미널 역할을 하는 직렬 포트를 추가할 수 있음을 의미하는 것 같습니다.
그래서 내 질문은 다음과 같습니다.
- 게스트 FreeBSD 배포에 가장 적합한 설정은 무엇입니까? (많이있다!)
- Linux 호스트에서 해당 터미널에 어떻게 액세스합니까?
답변1
이제 나는 다음을 바탕으로 내 자신의 질문에 대답할 수 있습니다.스테판님의 댓글과 링크된 두 기사:
- https://askubuntu.com/questions/1733/what-reason-could-prevent-console-output-from-virsh-c-qemu-system-console-gu
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507650#29
해결책은 다음과 같습니다.
- pty를 가리키는 기본 직렬 장치가 있는 경우 호스트 구성과 관련된 어떤 것도 편집할 필요가 없습니다.
- 커널의 부팅 매개변수에 다음이 추가되었는지 확인하세요
serial=tty0 console=ttyS0,115200n8
. 일반적으로 편집을 통해 달성/boot/grub/menu.lst
- getty를 실행하고 로그인 프롬프트를 표시하도록
/etc/inittab
행을 구성 하고 추가합니다.T0:S12345:respawn:/sbin/getty -hL ttyS0 115200 vt100
enforcing=0
Fedora 시스템을 사용하여 이것이 작동하는지 확인할 수 있습니다(물론 문제의 시스템이 SELinux MLS를 실행하는 fedora rawhide이기 때문에 추가 매개변수로 설정해야 했지만 ).
나는 거기서부터 freebsd에 대해 동일한 작업을 수행하는 방법을 알아낼 수 있을 것이라고 생각합니다.
고마워요 스테판!
답변2
FreeBSD 머신을 설정하는 방법에 대한 답변으로 시리얼을 얻는 두 가지 주요 사례가 있습니다. 직렬로만 FreeBSD를 설치하는 경우 부트로더 직렬 지침이 필요합니다. 이미 콘솔이 있고 직렬 액세스도 원할 경우 설치 후 직렬 지침을 따르십시오.
부트로더 시리얼
2
로더 프롬프트로 빠져나가려면 FreeBSD 부팅 옵션 화면에서 키를 누르세요.- 유형
set console=comconsole
- 이 시점에서 상호 작용이 느슨해지면 가상 tty 전송 속도가 9600인지 확인하십시오.
- 유형
autoboot
이렇게 하면 나머지 설치가 직렬 인터페이스를 통해 수행될 수 있습니다. FreeBSD를 설치한 후에도 계속해서 직렬 액세스를 갖고 싶다면 설치가 끝난 뒤 재부팅하기 전에 명령 프롬프트로 들어가야 합니다.
설치 후 시리얼
콘솔에서:
- 유형
echo 'console="comconsole"' >> /boot/loader.conf
/etc/ttys
vi에서 로드- ttyu0으로 시작하는 줄을 수정합니다(다른 버전의 FreeBSD에서는 ttyd0일 수 있음).
- 해당 줄에서 다음
dialup
으로 변경하십시오 .vt100
off
on
- 해당 줄에서 다음
- 재부팅 후 직렬 터미널에 부팅 프로세스가 표시되고 로그인 프롬프트로 종료됩니다.
- 참고: 를 설정하면
console="comconsole"
부팅/boot/loader.conf
메시지가 직렬 인터페이스에만 나타날 수 있습니다./etc/ttys
직렬을 통한 부팅 로그를 원하지 않으면 수정하십시오 .
- 참고: 를 설정하면
참고자료
http://www.freebsd.org/doc/handbook/serialconsole-setup.html
답변3
물론 에뮬레이터 내에서 직렬 포트를 에뮬레이트해야 하며 호스트에서 액세스할 수 있어야 합니다. 게스트 OS는 getty_ps를 통한 로그인 프롬프트와 같은 것을 '하드웨어 직렬 포트'에 배치해야 합니다. 이제는 개인적으로 이런 식으로 사용할 필요가 없었습니다. 대부분 게스트 OS에서 에뮬레이트된 직렬 포트는 디버깅 정보에 사용되며(Haiku는 여전히 기본적으로 이를 사용합니다) 디버그 정보를 사용할 수 있도록 간단한 텍스트 파일로 에뮬레이터(예: VMware)에 의해 캡처됩니다. qemu 내의 에뮬레이트된 직렬 콘솔에서 뭔가 실행되도록 여기에서 시도해 보겠습니다.
답변4
OP의 답변은 작동하지만 내 환경(Linux 호스트, Linux 클라이언트)으로 시도했을 때
serial=tty0
필요하지 않았어- vt100 대신 xterm을 사용하면
/etc/inittab
더 잘 작동합니다(색상이 나타납니다).