부트로더 구성을 편집하거나 커널 매개변수를 전달하지 않고 원하는 해상도를 사용하도록 VirtualBox VM을 설정하는 방법

부트로더 구성을 편집하거나 커널 매개변수를 전달하지 않고 원하는 해상도를 사용하도록 VirtualBox VM을 설정하는 방법

VirtualBox에서 여러 liveCD 배포판(특히 해당 설치 프로그램)을 테스트하고 싶습니다. 일부 Linux 배포판은 저주 기반 설치 프로그램(X11 아님)을 사용합니다. 기본적으로 VM의 창은 800x600으로 매우 불편합니다(특히 파티션 지점에서는 메뉴를 탐색하기 어렵습니다). nomodeset을 통해 vga=NNN을 전달하거나 video=XxY 매개변수만 커널에 전달할 수 있다는 것을 알고 있지만 빠른 시스템 재부팅으로 인해 이 작업을 자주 수행해야 합니다. ISO 이미지를 다시 만들어 기본적으로 언급된 매개변수를 포함할 수 있다는 것을 알고 있습니다. 하지만 테스트하려는 각 ISO 이미지를 수동으로 편집해야 하기 때문에 그다지 실용적이지 않습니다.

따라서 질문은: 로드된 운영 체제가 콘솔 해상도를 편리한 값으로 기본 설정하도록 VirtualBox 시스템을 설정하는 방법이 있습니까?

VBoxManage setextradata "VM name"을 사용하여 특정 시스템에 대한 매개변수를 설정할 수 있다는 것을 알고 있습니다.
예를 들면 다음과 같습니다.

VBoxManage setextradata "VM name" VBoxInternal2/EfiGopMode 2  
VBoxManage setextradata "VM name" VBoxInternal2/EfiGraphicsResolution HxV  
VBoxManage setextradata "VM name" VBoxInternal2/UgaHorizontalResolution 1920  
VBoxManage setextradata "VM name" VBoxInternal2/UgaVerticalResolution 900  
VBoxManage setextradata "VM name" "CustomVideoMode1" "1400x1050x16" 

그런 다음 VBoxManage getextradata "VM Name"을 통해 컴퓨터의 사용자 정의 설정을 가져올 수 있습니다.

내 요청을 처리할 수 있는 유용한 내용이 포함될 수 있나요?

답변1

TLDR: efi 모드는 가능하지만 사전 정의된 해상도 중 하나를 사용합니다(임의 아님). 아직 레거시 모드에 대한 해결책을 찾지 못했습니다.

매뉴얼에 따르면 3.14.1. EFI의 비디오 모드

EFI는 GOP(그래픽 출력 프로토콜)와 UGA(범용 그래픽 어댑터)라는 두 가지 비디오 인터페이스를 제공합니다. Mac OS X와 ​​같은 최신 운영 체제는 일반적으로 GOP를 사용하지만 일부 이전 운영 체제는 여전히 UGA를 사용합니다. Oracle VM VirtualBox는 두 인터페이스의 그래픽 해상도를 제어할 수 있는 구성 옵션을 제공하므로 사용자에게 차이가 거의 중요하지 않습니다.

기본 해상도는 1024x768입니다. EFI의 그래픽 해상도를 선택하려면 다음 VBoxManage 명령을 사용하십시오.

VBoxManage setextradata "VM 이름" VBoxInternal2/EfiGraphicsResolution HxV 다음 기본 해상도 목록에서 수평 해상도 H 및 수직 해상도 V를 결정합니다.

VGA 640x480, 32bpp, 4:3

SVGA 800x600, 32bpp, 4:3

XGA 1024x768, 32bpp, 4:3

XGA+ 1152x864, 32bpp, 4:3

HD 1280x720, 32bpp, 16:9

WXGA 1280x800, 32bpp, 16:10

SXGA 1280x1024, 32bpp, 5:4

SXGA+ 1400x1050, 32bpp, 4:3

WXGA+ 1440x900, 32bpp, 16:10

HD+ 1600x900, 32bpp, 16:9

UXGA 1600x1200, 32bpp, 4:3

WSXGA+ 1680x1050, 32bpp, 16:10

풀 HD 1920x1080, 32bpp, 16:9

WUXGA 1920x1200, 32bpp, 16:10

DCI 2K 2048x1080, 32bpp, 19:10

풀 HD+ 2160x1440, 32bpp, 3:2

이름 없음 2304x1440, 32bpp, 16:10

쿼드 HD 2560x1440, 32bpp, 16:9

WQXGA 2560x1600, 32bpp, 16:10

QWXGA+ 2880x1800, 32bpp, 16:10

QHD+ 3200x1800, 32bpp, 16:9

WQSXGA 3200x2048, 32bpp, 16:10

4K 울트라 HD 3840x2160, 32bpp, 16:9

WQUXGA 3840x2400, 32bpp, 16:10

DCI 4K 4096x2160, 32bpp, 19:10

HXGA 4096x3072, 32bpp, 4:3

울트라 HD+ 5120x2880, 32bpp, 16:9

WHXGA 5120x3200, 32bpp, 16:10

WHSXGA 6400x4096, 32bpp, 16:10

HUXGA 6400x4800, 32bpp, 4:3

8K 울트라 HD2 7680x4320, 32bpp, 16:9

이 기본 해상도 목록이 요구 사항을 충족하지 않는 경우 섹션 9.7.1 "VESA 해상도 사용자 정의"를 참조하십시오. 사용자 정의 비디오 모드에서 지정된 색 농도 값을 지정해야 합니다. 8, 16, 24, 32의 색상 깊이를 허용합니다. 기본적으로 EFI는 색 농도를 32로 가정합니다.

EFI 기본 비디오 해상도 설정은 VM이 종료된 경우에만 변경할 수 있습니다.

이전 매뉴얼 버전에서는 VBoxManage setextradata "VM 이름" VBoxInternal2/EfiGopMode N에 대한 설명이 있었습니다.

그 중 N은 0, 1, 2, 3, 4 중 하나일 수 있는데, 이는 각각 640x480, 800x600, 1024x768, 1280x1024, 1440x900의 화면 해상도를 의미합니다. 어쩌면 지금은 구식일 수도 있습니다.

efi 모드에서 사용자 정의 해상도를 사용할 수 있는지 모르겠습니다. EfiGraphicsResolution에 사용자 정의 값을 설정하는 것이 작동하지 않는 것 같습니다. 아시는 분은 지식을 공유해 주세요.

이제 기존 BIOS 모드는 어떻습니까?
매뉴얼에 따르면 9.7.1. 맞춤형 VESA 해상도

표준 VESA 해상도 외에도 Oracle VM VirtualBox VESA BIOS를 사용하면 게스트 운영 체제에 보고되는 사용자 정의 비디오 모드를 최대 16개까지 추가할 수 있습니다. Oracle VM VirtualBox 게스트 추가 기능과 함께 Windows 게스트를 사용하는 경우 폴백 VESA 솔루션 대신 사용자 정의 그래픽 드라이버가 사용되므로 이 정보는 적용되지 않습니다.

추가 데이터 기능을 사용하여 VM별로 추가 비디오 모드를 구성할 수 있습니다. 추가 데이터 키는 CustomVideoMode라고 하며, x는 1에서 16 사이의 숫자입니다. 다음 숫자가 정의되지 않거나 16에 도달할 때까지 패턴은 1부터 시작하여 읽혀집니다. 다음 예에서는 많은 노트북의 기본 디스플레이 해상도에 해당하는 비디오 모드를 추가합니다.

VBoxManage setextradata "VM 이름" "CustomVideoMode1" "1400x1050x16" 사용자 정의 비디오 모드의 VESA 모드 ID는 0x160부터 시작합니다. 위에 정의된 사용자 정의 비디오 모드를 사용하려면 Linux에 다음 명령줄을 제공해야 합니다.

VGA = 0x200 | 0x160 vga = 864 Oracle VM VirtualBox 게스트 추가 기능이 있는 게스트 운영 체제의 경우 비디오 모드 프롬프트 기능을 사용하여 사용자 정의 비디오 모드를 설정할 수 있습니다.

따라서 어쨌든 vga= 매개변수를 사용해야 하는 것 같으므로 귀하의 요구에 유용하지 않습니다.

UgaHorizontalResolution 및 UgaVerticalResolution 옵션의 효과를 모르고 작동하지 않는 것 같습니다. 이전 모드에서 요청을 구현하는 방법을 알고 있다면 지식을 공유해 주세요.

VirtualBox의 가상 디스플레이가 내가 원하는 해상도 중 하나만 지원하는 커널에 응답할 수 있다고 생각했기 때문에 kms는 이를 사용할 것입니다.

관련 정보