Ubuntu 16.04 KVM 게스트 콘솔에 액세스

Ubuntu 16.04 KVM 게스트 콘솔에 액세스

내 컴퓨터에 Debian 8을 추가하면KVM 관리 도구, 나는 내가console=ttyS0Grub 부팅 구성에 추가하지 않으면 콘솔에 액세스할 수 없습니다.. 좋지는 않지만 작동합니다. 관리 도구에 Ubuntu 16.04를 추가하고 있는데 이번에 게스트를 설치해도 같은 문제가 발생하는데 콘솔에 연결된 상태에서 인스턴스를 다시 시작하면 더 이상 grub 메뉴 옵션이 표시되지 않습니다. 따라서 이 해결 방법을 구현할 수 없습니다.

arp -an올바른 IP 주소를 찾을 때까지 하이퍼바이저에서 실행하고 KVM 브리지의 IP에 연결하여 게스트 인스턴스의 IP 주소를 찾을 수 있었습니다 . 이를 통해 게스트가 제대로 설치되고 실행되고 있는지 확인할 수 있었습니다. sudo virsh console [guest ID]네트워크에 문제가 있거나 openssh가 갑자기 작동을 멈추기로 결정한 경우 콘솔에 연결할 수 있기를 원합니다 .하이퍼바이저에서 게스트 우분투 16.04 콘솔에 연결하려면 어떻게 해야 합니까?

내 직감은 현재 조정이 필요하다는 것입니다 sudo virsh edit [guestID].

...
<serial type='pty'>
  <target port='0'/>
</serial>
<console type='pty'>
  <target type='serial' port='0'/>
</console>
...

추가 정보

  • 커널 4.2.0-36-generic을 사용하는 Ubuntu 14.04 KVM 하이퍼바이저
  • 웨일스어 1.2.2

답변1

@Programster에게 감사드립니다. 솔루션이 저에게 도움이 되었습니다. SSH 접근 권한도 없기 때문에 virt-edit를 설치해서 사용해야 합니다.

sudo apt install libguestfs-tools
sudo virt-edit -d myVM /boot/grub/grub.cfg

grub.cfg 파일의 모든 인스턴스를 quiet콘솔 연결을 위해 가상 머신으로 바꾸고 시작했습니다.quiet console=ttyS0

virsh start myVM && virsh console myVM

로그인한 후에는 @programster의 답변을 기반으로 grub을 편집하고 업데이트하는 것을 잊지 마십시오.

답변2

2017년 3월 13일 업데이트됨

이미 위와 같은 상황에 처해 있는 분들은 문제를 해결하시면 됩니다기존의손님은 아래의 원래 답변을 사용합니다. 그러나 이러한 고통을 다시 겪고 싶지 않은 사람들을 위해 kickstart 파일의 %post 섹션에 다음을 추가할 수 있습니다:

%post --nochroot
(
    sed -i "s;quiet;quiet console=ttyS0;" /target/etc/default/grub
    sed -i "s;quiet;quiet console=ttyS0;g" /target/boot/grub/grub.cfg
) 1> /target/root/post_install.log 2>&1
%end

이렇게 하면 킥스타트 파일을 사용하여 배포하는 새 게스트에 이 문제가 발생하지 않도록 아래 설명된 대로 grub에 필요한 변경이 이루어집니다.

원래 답변

arp -an호스트에서 사용되는 IP를 찾은 후 SSH를 통해 연결하는 경우 다음 단계를 수행할 수 있습니다(이 페이지 하단에서 검색됨)게스트와 연결되면.

Grub 구성 파일을 편집합니다.

sudo vim /etc/default/grub

다음과 같이 매개변수 console=ttyS0에 텍스트를 추가합니다 .GRUB_CMDLINE_LINUX_DEFAULT

여기에 이미지 설명을 입력하세요.

그런 다음 다음 명령을 실행하여 변경 사항으로 grub 메뉴를 다시 빌드합니다.

sudo update-grub

이제 virsh console [guest ID].

이는 향후 커널이 시스템에 추가되어도 계속 작동하지만먼저 게스트에 SSH로 연결할 필요가 없는 솔루션을 선호합니다..

답변3

@Programster의 탁월한 답변에서 제안한 대로 설치 후 단계로 grub 구성을 수정합니다. 다른 상황에서 이 작업을 수행하는 방법은 다음과 같습니다.

Debconf 프로필을 사용하여 Ubuntu 16.04를 설치할 때 프로필에 다음을 추가하세요.

di preseed/late_command 문자열(\
    sed -i "s;quiet;quiet console=ttyS0;" /target/etc/default/grub;
    sed -i "s;quiet;quiet console=ttyS0;g" /target/boot/grub/grub.cfg \
) 1>/target/root/post_install.log 2>&1

Kickstart를 사용하여 RHEL 7 또는 CentOS 7을 설치할 때 kickstart 파일에 다음을 추가하십시오.

%post --nochroot --log /mnt/sysimage/root/post.log
(
    sed -i "s;quiet;quiet 콘솔=ttyS0;" /mnt/sysimage/etc/default/grub
    sed -i "s;quiet;quiet console=ttyS0;g" /mnt/sysimage/boot/grub2/grub.cfg
) > /mnt/sysimage/root/post_install.log 2>&1
%끝

답변4

더 간단하고 쉬운 방법Red Hat 문서

grubby --update-kernel=ALL --args="console=ttyS0"
reboot

관련 정보