이것은 뜨거운 주제입니다. 당신은 VirtualBox를 사용하여 가상 머신 내부에서 다양한 설치들과 작업들을 수행하고 당신은 당신의 활동들을 문서화하기 위해 스크린샷들을 찍고 싶어합니다. VMware 범위의 가상화 제품들에서, 스크린샷 기능은 시스템 메뉴에 있으므로, 그것을 하는 것은 매우 간단한 일입니다. VirtualBox에서, 그러한 옵션은 사용할 수 없습니다. 이는 당신이 호스트 유틸리티들을 사용하여 스크린샷들을 찍어야 함을 의미합니다, 다양한 스크린샷 프로그램들, PrtScrn 또는 Alt+PrtScrn, 그리고 다른 키 콤보들처럼. 항상 단순하지는 않지만, 가장 큰 문제는 VirtualBox가 그 인터페이스의 일부를 게스트 운영 체제 화면 공간으로 취급한다는 것입니다. 그리고 따라서, 당신의 스크린샷들은 결코 깨끗하게 나오지 않습니다. p>
좋아요, 이 모든 것들은 우리에게 문제가 무엇인지 말해줍니다. 당신은 외부에서 당신의 게스트 시스템들의 스크린샷들을 찍을 수 있기를 원합니다, 폴더들을 공유하고 가상 머신 내부에서 호스트로 스크린샷들을 복사 & 붙여넣기 하지 않고. 당신은 당신의 호스트에 어떤 기능성이 있기를 원합니다, 그것이 스크린샷들을 찍을 것이고, 내부 VirtualBox 보더를 제외할 것입니다, 그것이 스크린샷들에 영향을 미칩니다. 이것이 행해질 수 있습니까? 답은, 예, 버전 4.0부터입니다. 저를 따라오세요. p>
스크린샷들, 오늘
당신이 SnagIt, IrfanView, GIMP, Gnome Screenshot, KSnapshot, 또는 다른 어떤 소프트웨어를 사용하든, 결과들은 항상 동일할 것입니다. 당신은 모두가 당신이 VirtualBox 창의 스크린샷을 찍었다고 말하는 짜증나는 상단과 하단 보더를 가질 것입니다. 예를 들어, 이런 것: p>
이것은 성가십니다. 당신은 오직 파란 직사각형만 원합니다, 그래서 당신은 수동으로 영역을 잘라내야 하고, 당신의 소중한 시간을 낭비합니다. 이제, 간단한 대안이 있습니다, 하지만 그것은 VirtualBox 명령줄을 사용해야 합니다. p>
해결책: 명령줄에서 VBoxManage 사용
새로운 기능은 버전 4.0 이상에서 사용 가능합니다, 그래서 이것은 소프트웨어의 더 오래된 에디션들에서 작동하지 않을 것입니다. 당신이 해야 할 일은 다음 명령어를 호출하는 것입니다: p>
VBoxManage controlvm <vm name> screenshotpng <filename>.png p>
그것이 마법의 전부입니다, 여기서 <vm name>은 당신의 가상 머신의 이름이고 <filename>은 당신이 나중에 당신의 스크린샷들을 식별하기 위해 사용하고 싶은 어떤 문자열이든입니다. p>
그리고 여기 우분투 Lucid 예제가 있습니다: p>
스크립팅
당신은 여전히 이 절차를 부분적으로 자동화할 수 있습니다, 그래서 당신은 항상 명령줄로 수동으로 가서 원하는 명령어를 호출할 필요가 없습니다. 첫째, 당신은 당신을 위해 명령어를 실행할 스크립트들을 생성할 수 있습니다. 저는 윈도우에서 BASIC (BAT)과 리눅스에서 BASH를 사용하여 시연할 것입니다. 둘째, 당신은 이미지들을 위한 일반적인 식별자들을 사용할 수 있습니다, 그래서 당신은 매번 수동으로 이름들을 입력할 필요가 없습니다. 환경 변수 RANDOM 또는 타임스탬프를 사용하는 것이 좋은 옵션들처럼 보입니다. 마지막으로, 당신은 바로가기들을 생성할 수 있습니다, 당신의 데스크톱이나 애플리케이션 패널들에 그리고 바로가기 콤보 키들을 추가하여 바로가기들이나 애플리케이션들을 호출하게 할 수 있습니다. p>
윈도우 예제
윈도우에서 명령줄을 사용하는 것은 가장 자연스러운 것처럼 들리지 않을 수 있지만, 그것은 꽤 쉽습니다. 일단 당신이 기초들을 마스터하면 [sic], 당신은 배치 파일 쓰기로 넘어갈 수 있습니다. p>
당신은 이미지 이름들을 하드코딩하거나 매번 고유한 문자열들을 생성할 무언가를 사용할 수 있습니다, 시간이나 날짜 문자열이나 랜덤 넘버 중 하나. 그런 다음, 당신을 위해 명령어를 실행할 심플한 배치 파일을 쓸 수 있습니다. p>
echo off
<full path to VBoxManage.exe" controlvm <vm name> screenshotpng <filename>.png p>
더 구체적으로, 손에 든 예제를 사용하여, 우리의 윈도우 8 게스트. 우리는 우리의 가상 머신을 위한 배치 파일을 생성합니다 그것은 이미지 이름들에 랜덤 문자열을 추가하여 그것들을 고유하게 만듭니다. 우리는 이미지들을 Share 디렉토리에 놓습니다, 하지만 당신은 당신이 좋아하는 어떤 것을 사용할 수 있습니다. 마찬가지로, 가상 머신 이름은 하드코딩된 값이나 입력 인수로 취급될 수 있습니다. p>
echo off
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm Windows-8 screenshotpng C:\Share\image-%random%.png p>
마지막으로, 당신은 바로가기를 생성할 수 있습니다, 그것을 어딘가에 놓고, 그것의 속성들을 편집하고 바로가기 키 콤보를 추가하여 그것을 호출하게 할 수 있습니다. 이것은 당신의 작업을 훨씬 더 쉽고 빠르게 만들 것입니다. p>
리눅스 예제
리눅스에서, 그것은 심지어 더 쉽습니다. p>
우리는 그 한 줄만 포함하는 심플한 스크립트를 생성할 수 있습니다. p>
#!/bin/bash
VBoxManage controlvm <vm name> screenshotpng ~/image-`date +%s`.png
exit 0 p>
최종 결과는 당신의 홈 디렉토리에 이미지들이 될 것입니다, 1970년 이후 경과된 초 수가 추가된 숫자로. 이제, 당신은 스크립트에 가상 머신 이름을 하드코딩하거나 그것을 입력 인수로 스크립트에 전달할 수 있습니다, 하지만 이것은 실행할 때 상호작용을 요구합니다. 또는 당신은 프로세스 테이블을 파싱하고 현재 실행 중인 가상 머신 컨테이너의 이름을 찾으려고 시도하여 완전히 무인 스크립트를 만들 수 있습니다. 당신은 또한 which 명령어를 사용하여 VBoxManage 바이너리의 전체 경로를 감지할 수 있습니다. p>
그런 다음, 당신은 바로가기들을 생성할 수 있습니다. 예를 들어, 그놈에서, 상단 패널에 커스텀 런처를 추가하고, 명령 필드에 당신의 스크린샷 스크립트의 전체 경로를 쓰세요. 그리고 당신은 메뉴 옵션을 실행하는 것과 거의 동등하고 아마도 더 빠른 자동화된 솔루션을 가질 것입니다. 많은 옵션들이 있지만, 이것은 당신을 시작하게 해야 합니다. p>
또 다른 이점
이 방법은 외부 유틸리티들이 가지지 않은 또 다른 보너스를 가집니다. 그것은 당신의 게스트의 전체 화면 콘텐츠를 잡을 것입니다, 심지어 그것이 당신의 호스트 모니터에서만 부분적으로 보여질지라도. 그래서 만약 당신이 호스트와 게스트에 다른 해상도들을 사용하거나, 다중 모니터들이나 당신의 머신들을 창 모드로 실행한다면, 당신은 어떤 성가신 크로핑도 얻지 않을 것입니다. 예를 들어, 이 윈도우 8 가상 머신을 주목하세요. 수평과 수직 스크롤 바들을 보세요? 이것은 당신이 볼 모든 것을 보고 있지 않음을 의미하지만, 스크린샷 캡처 기능은 그 문제를 해결합니다. p>
결론
거기에 있습니다. 당신은 VirtualBox에서 그 한 가지 가장 성가신 것, 당신의 가상 머신 스크린샷들 관리를 우회하는 방법을 막 배웠습니다. 명령줄의 약간의 사용으로, 당신은 당신의 스크린샷 찍기를 거의 100% 자동화할 수 있을 것입니다. p>
이 튜토리얼은 VirtualBox와 스크린샷들에 초점을 맞추지만, 그것은 또한 옆으로 생각하는 법, 강력한 VirtualBox 명령줄 관리, 당신의 삶을 더 쉽게 만들기 위해 스크립트들, 바로가기들, 바로가기 콤보 키들을 사용하는 법, 윈도우와 리눅스 플레이버들 모두, 일부 BASIC, 일부 BASH, 잘 작동합니다. 자, 당신이 그것을 좋아했기를 바랍니다, 재미있게 보내세요. p>
치어스. p>