CentOS 6/7 혹은 RHEL 6/7 은 KVM 가상화를 지원 합니다. 가상화를 위한 네트워크를 설정하고 가상화 패키지를 설치하면 이제 가상 머신, 게스트 OS 를 설치할 수 있게 됩니다. 그런데, 맨 처음에 게스트 OS 를 설치하고 나면 더구나 DHCP 로 IP를 할당 받는다면 설치가 끝나고 나서 할당된 IP를 모르기 때문에 바로 접속을 할 수가 없습니다.
그래서 virt-manager 를 이용해서 게시트OS 화면에 접속하고 로그인을 하고 IP를 확인한 후에 SSH를 이용해서 외부에서 접속이 가능해 집니다. 하지만 이것말고 호스트 OS 터미널에서 게스트 OS로 virsh 명령어를 이용해서 접속할 수 있는데 이것이 가상 머신에 콘솔 접속하기 입니다.
virsh 명령어
virsh 명령어는 호스트OS에서 게스트OS(가상머신)을 관리하기 위한 명령어 입니다.
|
[root@localhost ~]# virsh list --all Id 이름 상태 ---------------------------------------------------- 1 CentOS6_6 실행중 - CentOS6 종료 - CentOS6-pgsql1 종료 - CentOS6.5 종료 - CentOS7 종료 - CentOS7_2 종료 - Windows7 종료 |
가상머신 이름이 나오는데, 이를 이용해서 다음과 같이 직접 게스트OS에 접속이 가능합니다.
|
[root@localhost ~]# virsh console CentOS6_6 도메인 CentOS6_6에 연결되었습니다 Escape character is ^] |
하지만 게스트OS에 접속이 안됩니다.
게스트OS Grub 설정 변경
이를위해서 게스트OS에 Grub 에 옵션으로 다음과 같이 ‘console=ttyS0’ 을 추가해 줍니다.
|
kernel /vmlinuz-2.6.32-573.12.1.el6.x86_64 ro root=UUID=79898194-1e71-431d-8246-16a777d3cb0a rd_NO_LUKS LANG=ko_KR.UTF-8 rd_NO_MD crashkernel=auto rhgb rhgb quiet quiet KEYBOARDTYPE=pc KEYTABLE=us rd_NO_LVM rd_NO_DM rhgb quiet console=ttyS0 |
하지만 이렇게 하나하나 다 하기보다는 다음과같은 명령어를 이용하면 편합니다.
CentOS6/RHEL6 의 경우 – grubby
grubby 는 각종 옵션들을 쉽게 설정할 수 있게 해줍니다. 위의 경우에 다음과 같이 할 수 있습니다.
|
root@node1 ~]# grubby --update-kernel=ALL --args="console=ttyS0" |
CentOS6/RHEL6 에는 이렇게만 하고 서버를 재시작해줍니다.
CentOS7/RHEL7 의 경우 – /etc/default/grub 편집
CentOS7/RHEL7 의 경우에는 grub2 를 채택하고 있고 공통적인 옵션들은 ‘/etc/default/grub’ 파일에 있습니다. 이 파일을 편집해 줍니다.
|
GRUB_TIMEOUT=5 GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet console=ttyS0" GRUB_DISABLE_RECOVERY="true" |
이렇게 하고 grub2 를 다음과 같이 갱신해 줍니다.
|
[root@localhost ~]# grub2-mkconfig -o /boot/grub2/grub.cfg Generating grub configuration file ... Found linux image: /boot/vmlinuz-3.10.0-327.4.4.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.4.4.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-327.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-327.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-229.20.1.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-229.20.1.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-229.14.1.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-229.14.1.el7.x86_64.img Found linux image: /boot/vmlinuz-3.10.0-229.el7.x86_64 Found initrd image: /boot/initramfs-3.10.0-229.el7.x86_64.img Found linux image: /boot/vmlinuz-0-rescue-03660bd257a14e47832ea1cdf058ebd8 Found initrd image: /boot/initramfs-0-rescue-03660bd257a14e47832ea1cdf058ebd8.img done |
위와같이 하고 난후에 가상머신을 재시작해줍니다.
접속 테스트
가상머신을 재시작한 후에 호스트OS에서 다음과 같이 접속을 해봅니다.
|
[root@localhost ~]# virsh console CentOS6_6 도메인 CentOS6_6에 연결되었습니다 Escape character is ^] CentOS release 6.7 (Final) Kernel 2.6.32-573.12.1.el6.x86_64 on an x86_64 node1.example.com login: |
명령어를 입력해주고 Enter 를 두번 쳐주면 접속 로그인이 나옵니다. Console 접속을 해제하기 위해서는 Ctl+] 를 입력하시면 됩니다.