일반적으로, 당신이 당신의 가상 머신들을 Xen에서 domU 게스트들로 실행할 때, 당신은 virt-manager나 virt-viewer를 사용하여 그들의 콘솔을 볼 것입니다. 모든 실용적인 목적을 위해, 콘솔 버퍼는 당신이 직접 상호작용할 수 없는 애니메이션 이미지일 것입니다, 적어도 당신이 그래픽 인터페이스로 부팅할 때까지, 만약 ever라면. p>
그래서 만약 당신이 콘솔 출력을 항상 사용 가능하게 원한다면 당신은 무엇을 합니까? 당신은 어떻게든 콘솔 출력을 당신의 호스트로 리다이렉트하고 그것을 사용 가능하고 파싱 가능한 텍스트로 바꿀 수 있습니까? 답은 예입니다. 이것은 행해질 수 있지만, 그것은 그다지 사소하지 않습니다. 제가 완전히 가상화되고 반가상화된 게스트들 둘 다에 대해 이것이 어떻게 달성될 수 있는지 보여드리겠습니다. p>
반가상화된 게스트들
기본적으로, 콘솔은 당신의 측에서 어떤 특별한 구성들이나 트윅들 없이 작동해야 합니다. 불행하게도, 인생은 거의 그렇게 공정하지 않습니다, 그래서 당신은 조금 트윅하고 해킹해야 할지도 모릅니다. 몇 가지 가능한 우회책들이 있습니다. p>
구성 파일 편집
가상 머신 구성 파일에 다음 변형들을 추가하세요: p>
extra="console=hvc0 xencons=tty" p>
당신은 또한 hvc0 대신 xvc0을 지정하고 두 개의 추가 옵션들 중 하나를 한 번에 하나의 키-값 쌍으로 사용할 수 있습니다. 당신은 그것이 최선으로 작동하는 것을 찾기 전에 여러 변경들을 만들고 테스트해야 할 수도 있습니다, 만약 전혀 작동한다면. p>
게스트에서 inittab 편집
당신은 이 새로운 콘솔을 당신의 게스트에 추가해야 할 것입니다. 이것은 /etc/inittab을 편집함으로써 행해집니다, 다음과 같은 것: p>
x0:12345:respawn:/sbin/agetty -L 9600 xvc0 xterm p>
가상 머신 구성에서 당신이 지정한 것에 기반하여 콘솔 이름을 조정하세요. 당신은 또한 이 새로운 콘솔을 포함하기 위해 /etc/securetty를 변경해야 할 수도 있습니다. 그냥 파일을 열고 x0을 추가하세요. 변경하기 전에 필요한 백업들을 만드세요. 선택적으로, 당신은 또한 커널 명령줄에 추가 파라미터들을 전달하거나 GRUB 메뉴를 편집해야 할 수도 있습니다. 우리는 아래에서 또 다른 예제를 볼 것입니다. 이것은 작동해야 하지만, 그럼, 그것은 작동하지 않을 수도 있습니다. 당신은 당신의 /var/log/messages에서 다음 에러 시퀀스를 볼 수 있습니다: p>
init: Id "x0" respawning too fast: disabled for 5 minutes
init: Id "x0" respawning too fast: disabled for 5 minutes
init: Id "x0" respawning too fast: disabled for 5 minutes
init: Id "x0" respawning too fast: disabled for 5 minutes p>
만약 이것이 일어난다면, 당신의 게스트 운영 체제 udev가 장치를 생성하지 않을 수 있습니다, 그래서 당신은 그것을 /dev 아래에서 수동으로 생성해야 할 것입니다. 이것은 이상적인 우회책은 아니지만, 만약 나머지 모든 트윅들이 당신을 위해 작동하지 않는다면 당신이 콘솔을 얻는 것을 도울 수 있습니다. p>
마지막으로, 당신은 시도할 수 있습니다: p>
virsh console <domain id> p>
당신은 xm list를 실행하여 도메인 id를 얻을 수 있습니다. p>
완전히 가상화된 게스트들
맨 페이지들에 따르면, xm 콘솔은 완전히 가상화된 게스트들에 대해 사용할 수 없지만, 당신은 우회책을 사용하여 문제를 해결할 수 있습니다. 두 가지 것들이 행해져야 합니다. 당신의 호스트, dom0에서, 게스트를 위한 관련 구성 파일에, 다음 지시어를 추가하세요: p>
serial="pty" p>
게스트에서, /boot/grub/menu.lst 또는 /boot/grub/grub.conf를 다음 줄들로 편집하세요, 첫 번째 커널 엔트리 위에 어딘가에 그것들을 추가하세요, 아마도 default와 timeout 지시어들 바로 아래에. p>
serial --unit=0 --speed=9600
terminal --timeout=5 serial console p>
그런 다음, 관련 GRUB 엔트리에서 커널 라인에 추가하세요: p>
console=ttyS0 p>
게스트를 재부팅하고 당신은 콘솔을 가져야 합니다. 이제 확인하기 위해, 당신은 당신의 dom0에서 게스트에 콘솔을 연결해야 합니다. 이것은 다음과 같이 행해집니다: p>
#xm console <domain name> p>
라인이 떨어질 것이고 아마도 터미널이 멈춘 것처럼 보일 것입니다. 이제, 만약 당신이 게스트를 재부팅하면, 당신은 종료/시작 메시지들이 올라오는 것을 볼 것입니다. 나가려면, Ctrl + ]을 누르세요. 부팅과 종료뿐만 아니라 매직 키들을 사용하여 트리거된 커널 크래시의 한 줌의 예들: p>
#xm console test1
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
INIT: Sending processes the KILL signal
Boot logging started on /dev/ttyS0(/dev/console) at Thu Dec 1 2011
Master Resource Control: previous runlevel: 3, switching to runlevel: 6
Shutting down service at daemon done
Shutting down auditd done
Shutting down automount (force) done p>
몇몇 이미지들: p>
콘솔이 이제 리다이렉트되었고 게스트에 나타나지 않을 것임을 주목하세요. 당신은 콘솔 메시지들을 게스트에서도 보기 위해 GRUB 메뉴에 console=tty1을 추가해야 할 것입니다. p>
추가 자료
당신은 또한 이것들을 확인하고 싶을 수 있습니다: p>
Xen 트러블슈팅 p>
더 많은 Xen 트러블슈팅 p>
Xen 아래에서 SLES11 설치 p>
Xen 게스트 콘솔 부팅 시 멈춤 p>
결론
그것이 전부입니다. 꽤 사소하지 않은 주제지만, 아마도 유용합니다. 최소한, 당신은 Xen 명령줄로 작업하는 방법, 다양한 명령어들을 호출하고 다른 파라미터들을 확인하는 방법, 시스템 구성 파일들을 편집하는 방법, 부팅 메뉴를 포함하여, 조금 더 배웠습니다. 마지막이지만 중요한 것은, 반가상화되고 완전히 가상화된 게스트들 둘 다를 위한 여러 해결책들과 우회책들이 제시되었습니다. Xen 콘솔에 대한 많은 소동. p>
좋아요. 오늘은 충분합니다. 달콤하게 지내세요. p>
치어스. p>