최근 Ubuntu가 설치된 VMware VM을 Hyper-V로 마이그레이션하고 GRUB 문제를 해결한 뒤 부팅했다. GRUB까지는 화면이 잘 나오지만 그 뒤로는 검정 화면만 출력되는 문제가 있었다.
여러 해외 사이트를 찾아보니 Hyper-V의 ‘고급 세션’을 비활성화하면 해결된다는 내용이 있었지만, 비활성화 후에도 문제는 여전했다.
이 문제를 해결하는 방법은 두 가지가 있다.
1) linux-azure 커널 설치
GRUB 화면에서 ‘e’ 키를 누른다.
quiet splash 뒤에 nomodeset 추가한 뒤 F10을 눌러 빠져나온다. (GRUB 메뉴에서 수정한 내용은 일시적 적용이다.)
sudo apt install linux-azure
위 명령어를 이용하여 Azure 커널을 설치한다.
Azure 커널은 quota 등이 포함되어 있지 않다. 만약 quota 등을 사용한다면 아래의 명령어를 이용하여 추가 모듈을 설치한다.
sudo apt install linux-modules-extra-$(uname -r)
이제 시스템을 재부팅해도 화면이 정상적으로 출력된다. 다만 sudo apt autoremove로 사용하지 않는 Canonical Ubuntu 커널을 제거하면 다음 부팅부터 검정 화면만 나온다. 이런 경우 nomodeset를 영구적으로 적용해야 한다.
2) /etc/default/grub 수정 (그래픽 기능 비활성화)
nano로 grub를 열고 GRUB_CMDLINE_LINUX_DEFAULT 라인에 nomodeset을 추가하고 저장한다.
update-grub로 GRUB 설정을 업데이트하면 된다.