# mac 에서 virtualbox 패키지를 다운로드하여 설치할 때 다음과 같이 설치 실패가 발생한다.
# 문제는 app-store 에서 다운받은 앱은 설치가 허용되지 않아서다.
# 다음과 같이 시스템 환경 설정 -> 보 안 및 개인 정보 보호 -> 일발 -> 개발자 oracle ... 차단 -> 허용
VirtualBox 삭제시 에러
운영중인 virtual box 이미지를 크기가 너무 큰 경우 파일을 강제로 삭제
rm -rfv VirtualBox VMs
하고 다시 이미지를 생성하는 경우가 있다.
맥의 경우 VirtualBox VMs/.DS_Store 용량이 꽤 되는 경우가 있다.
이때 virtual box 에서 이미지(미디어 장치)를 삭제할때 다음과 같은 에러가 발생한다.
"file not found"
이미지가 이미 삭제되어 찾을 수 없다.
virtual box 에서 단순히 삭제하면 된다.
"already locked for session"
현재 이미지를 사용하는 프로세스가 떠있어 virtual box 에서 삭제할 수 없다.
ps -ef | grep startvm
를 실행해서 해당 프로세스를 삭제(kill -9)하도록 한다.
rm -rfv VirtualBox VMs
하고 다시 이미지를 생성하는 경우가 있다.
맥의 경우 VirtualBox VMs/.DS_Store 용량이 꽤 되는 경우가 있다.
이때 virtual box 에서 이미지(미디어 장치)를 삭제할때 다음과 같은 에러가 발생한다.
"file not found"
이미지가 이미 삭제되어 찾을 수 없다.
virtual box 에서 단순히 삭제하면 된다.
"already locked for session"
현재 이미지를 사용하는 프로세스가 떠있어 virtual box 에서 삭제할 수 없다.
ps -ef | grep startvm
를 실행해서 해당 프로세스를 삭제(kill -9)하도록 한다.
vagrant up rsync 에러 해결하기
# 윈도우 administrator 계정에서
# vagrant box add centos/7
# vagrant init centos/7
# 설정하여 vagrant up 시 다음과 같은 에러가 발생한다.
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
"rsync" could not be found on your PATH. Make sure that rsync
is properly installed on your system and available on the PATH.
# 호스트가 윈도우인데 rsync 를 사용하게 설정되어 있어 발생한것이다.
# 다음 경로의 centos/7 box 의 vagrantfile 에서 type 의 rsync 부분을 삭제하도록 한다.
C:\Users\Administrator\.vagrant.d\boxes\centos-VAGRANTSLASH-7\1611.01\virtualbox\Vagrantfile
Vagrant.configure("2") do |config|
config.vm.base_mac = "525400225b53"
config.vm.synced_folder ".", "/vagrant", type: ""
end
# vagrant ssh 수행시 ssh 클라이언트가 없다면
# https://git-scm.com/download/win 에서 git 을 설치해야 한다.
# 설치시 windows command prompt 에서도 ssh 를 사용할 수 있도록 "use git and optional unix tools from the windows command prompt" 를 선택하자.
# vagrant box add centos/7
# vagrant init centos/7
# 설정하여 vagrant up 시 다음과 같은 에러가 발생한다.
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
"rsync" could not be found on your PATH. Make sure that rsync
is properly installed on your system and available on the PATH.
# 호스트가 윈도우인데 rsync 를 사용하게 설정되어 있어 발생한것이다.
# 다음 경로의 centos/7 box 의 vagrantfile 에서 type 의 rsync 부분을 삭제하도록 한다.
C:\Users\Administrator\.vagrant.d\boxes\centos-VAGRANTSLASH-7\1611.01\virtualbox\Vagrantfile
Vagrant.configure("2") do |config|
config.vm.base_mac = "525400225b53"
config.vm.synced_folder ".", "/vagrant", type: ""
end
# vagrant ssh 수행시 ssh 클라이언트가 없다면
# https://git-scm.com/download/win 에서 git 을 설치해야 한다.
# 설치시 windows command prompt 에서도 ssh 를 사용할 수 있도록 "use git and optional unix tools from the windows command prompt" 를 선택하자.
vagrant 로 가상머신 사용하기
다수의 virtual box(가상 머신 이미지) 생성 및 관리에 vagrant 를 사용하면 편리하다.
# virtual box 프로그램이 이미 설치되어 있어야 한다.
# 생성된 Vagrantfile 의 box 이름, 호스트명, ip, 포트포워딩, 디렉토리싱크 설정
vi Vagrantfile
config.vm.box = "ysoftman-centos7"
# ssh 접속해보기
vagrant ssh
# 현재 박스(가상머신) 상태
# 현재 디렉토리의 Vagrantfile 에 명시된 박스 상태(poweroff/running...)
vagrant status
# 전체 박스 상태 보기
vagrant global-status
# 박스에 추가된 가상 머신(이미지)들 보기
vagrant box list
# 올린 가상 머신에 ssh 로 접속
vagrant ssh
# 가상 머신 종료
vagrant halt
# 박스 이미지를 새로 받아야 하는경우
# 기존 박스를 삭제(~/.vagrant.d/boxes/ 파일도 삭제된다.)
vagrant box remove 박스이미지이름
# 현재 디렉토리에서 박스 관련 정보 삭제
vagrant destroy -f
# 박스 이미지 새로 가동
vagrant up
# virtual box 프로그램이 이미 설치되어 있어야 한다.
# OS 에 따른 vagrant 다운로드 받아 설치
# vagrant 를 테스트할 디렉토리를 하나 생성한다.
# 이후 작업(명령)은 해당 디렉토리에서 진행된다.
mkdir vagrant-test
cd vagrant-test
# 이후 작업(명령)은 해당 디렉토리에서 진행된다.
mkdir vagrant-test
cd vagrant-test
# vagrant 에서 제공되는 박스 이미지 추가
# ~/.vagrant.d/boxes/ 에 이미지가 다운로드 된다.
# ~/.vagrant.d/boxes/ 에 이미지가 다운로드 된다.
# hashicorp 에서 제공하는 precise64 이미지 사용하는 경우
vagrant box add hashicorp/precise64
# 또는 특정 url 에서 박스 이미지를 다운받아 사용할 경우
# vagrant box add 타이틀 해당URL
vagrant box add ysoftman-centos7 http://10.10.10.10/centos7.box
vagrant box add hashicorp/precise64
# 또는 특정 url 에서 박스 이미지를 다운받아 사용할 경우
# vagrant box add 타이틀 해당URL
vagrant box add ysoftman-centos7 http://10.10.10.10/centos7.box
# init 으로 초기화하면 현재 디렉토리에 Vagrantfile 라는 이름의 설정 파일이 생성된다.
vagrant init# 생성된 Vagrantfile 의 box 이름, 호스트명, ip, 포트포워딩, 디렉토리싱크 설정
vi Vagrantfile
config.vm.box = "ysoftman-centos7"
config.vm.hostname = "ysoftman-centos7"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.synced_folder "./data", "/vagrant_data", create:true
# 박스 이미지 가동하기config.vm.network "private_network", ip: "192.168.33.10"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.synced_folder "./data", "/vagrant_data", create:true
vagrant up
# ssh 접속해보기
vagrant ssh
# 현재 박스(가상머신) 상태
# 현재 디렉토리의 Vagrantfile 에 명시된 박스 상태(poweroff/running...)
vagrant status
# 전체 박스 상태 보기
vagrant global-status
# 박스에 추가된 가상 머신(이미지)들 보기
vagrant box list
# 올린 가상 머신에 ssh 로 접속
vagrant ssh
# 가상 머신 종료
vagrant halt
# 박스 이미지를 새로 받아야 하는경우
# 기존 박스를 삭제(~/.vagrant.d/boxes/ 파일도 삭제된다.)
vagrant box remove 박스이미지이름
# 현재 디렉토리에서 박스 관련 정보 삭제
vagrant destroy -f
# 박스 이미지 새로 가동
vagrant up
# 참고
VirtualBox 공유폴더 연결하기
# VirtualBox 에서 공유 폴더로 Host OS 와 Guest OS 간의 파일을 공유 할 수 있다.
#
# 다음과 같은 환경에서 공유 폴더로 연결하기
# Host OS : Windows
# Guest OS : Ubuntu
#
# VB 실행 후 메뉴 -> 장치 -> 공유폴더 -> 공유 폴더 설정 -> + 추가 -> 공유 추가
#
# 폴더 경로 : C:\Users\ysoftman\Downloads
# 폴더 이름 : Downloads
#
# 우부투에서 Downloads 를 현재 위치 ./mnt 로 마운트한다.
mkdir mnt
sudo mount -t vboxsf Downloads ./mnt
#
# 다음과 같은 환경에서 공유 폴더로 연결하기
# Host OS : Windows
# Guest OS : Ubuntu
#
# VB 실행 후 메뉴 -> 장치 -> 공유폴더 -> 공유 폴더 설정 -> + 추가 -> 공유 추가
#
# 폴더 경로 : C:\Users\ysoftman\Downloads
# 폴더 이름 : Downloads
#
# 우부투에서 Downloads 를 현재 위치 ./mnt 로 마운트한다.
mkdir mnt
sudo mount -t vboxsf Downloads ./mnt
Virtual Box 디스크(.vdi) 크기 수정하기
Virtual Box .vdi(디스크 파일)를 동적으로 구성하였다면 디스크 사이즈를 수정할 수 있다.
참고로 정적 .vdi 일 경우 Virtual Box 가상 미디어 관리자 메뉴에서 동적 .vdi 로 복사하여 만들 수 있다.
윈도우에서 기본 경로에 설치했을 경우 아래 경로에서 vboxmanage.exe 가 존재한다.
"c:\Program Files\Oracle\VirtualBox"
우선 가상파일을 shutdown 하고 닫는다.
디스크 사이즈 늘리는 경우 다음과 명령을 사용한다.(사이즈 단위는 MB)
vboxmanage modifyhd Ubuntu12.04_64bit.vdi --resize 30000
이제 시스템을 시작하고
윈도우 경우 디스크관리(diskmgmt.msc) 에서
리눅스 경우 gparted 로 용량 확장/추가한다.
디스크 사이즈 컴팩하기
vboxmanage modifyhd Ubuntu12.04_64bit.vdi --compact
참고로 정적 .vdi 일 경우 Virtual Box 가상 미디어 관리자 메뉴에서 동적 .vdi 로 복사하여 만들 수 있다.
윈도우에서 기본 경로에 설치했을 경우 아래 경로에서 vboxmanage.exe 가 존재한다.
"c:\Program Files\Oracle\VirtualBox"
우선 가상파일을 shutdown 하고 닫는다.
디스크 사이즈 늘리는 경우 다음과 명령을 사용한다.(사이즈 단위는 MB)
vboxmanage modifyhd Ubuntu12.04_64bit.vdi --resize 30000
이제 시스템을 시작하고
윈도우 경우 디스크관리(diskmgmt.msc) 에서
리눅스 경우 gparted 로 용량 확장/추가한다.
디스크 사이즈 컴팩하기
vboxmanage modifyhd Ubuntu12.04_64bit.vdi --compact
Virtual Box 에서 64bit 운영체제 구동 오류시
VirtualBox(VB) 에서 64bit OS 를 시작하려고 하면
"VT-x/AMD-V 하드웨어 가속 기능이 활성화되었지만, 현재 작동하지 않습니다..."
라는 에러메시지와 함께 구동되지 않는 경우가 있다.
해결방법
PC Bios 설정에서
Intel CPU 의 경우 VT-x
AMD CPU 의 경우 AMD-v
기능을 활성화해야 한다.
PC Bios 설정에서
Intel CPU 의 경우 VT-x
AMD CPU 의 경우 AMD-v
기능을 활성화해야 한다.
Linux VirtualBox 리눅스 호스트 해상도 높이기
# VirtualBox 에서 리눅스계열의 X 윈도우 해상도가 800x600 , 1024x768 만 나타나는 경우가 있다.
# 다음을 설치하면 창크기에 따라 해상도를 높일 수 있게 된다.
sudo apt-get install virtualbox-ose-guest-x11
# 다음을 설치하면 창크기에 따라 해상도를 높일 수 있게 된다.
sudo apt-get install virtualbox-ose-guest-x11
VirtualBox 호스트(Windows) 에서 게스트(Linux) 로 ssh 접속하기
호스트가 Windows 일때, VirtualBox 상에서 Linux(CentOS로 설명) 설치 완료 후 ssh 로 접속하기 방법이다.
우선, VirtualBox -> 파일 -> 환경설정 -> 네트워크 -> 호스트 전용 네트워크 에서 어댑터와 DHCP 서버를 아래와 같이 설정한다.
CentOS (power off 상태) 의 네트워크 설정에서 어댑터1과 어댑터2를 아래와 같이 설정한다.
어댑터1 은 게스트(CentOS)의 사설ip 를 호스트 ip에 사상하기 위해 NAT(Network Address Translation) 로 설정하고
어댑터2 는 호스트(Window)에서 게스트 네트워크를 사용할 수 있도록 호스트 전용 어댑터를 설정하도록 한다.
설정을 마치면 아래와 같이 CentOS 에서 어댑터 2개를 사용하는 것으로 나타난다.
CentOS 를 시작하면 eth0 과 eth1 의 두개의 네트워크 어댑터가 동작하는 것을 볼 수 있다.
[첫번째 방법]
CentOS System ->Administration -> Security Level and Firewall -> Other ports ->22 포트 tcp 프로토콜 추가
[두번째 방법]
VirtualBox 가 설치된 곳(예 c:\program files\oracle\virtualbox\)에 VBoxManage.exe 유틸리티를 이용하여 ssh 를 설정한다.
설정 하기, CentOS 5.5 는 virtualbox 에서의 이미지 이름이고 아래와 같이 값을 설정한다.(이미 값이 존재하면 삭제해야함)
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 22
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
참고로 설정 지우기, 값을 아무것도 설정하지 않으면 지워진다.
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort"
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol"
설정 상황 보기(CentOS 5.5 는 virtualbox 에서의 이미지 이름)
VBoxManage getextradata "CentOS 5.5" enumerate
#####
최신 VirtualBox 에서는 (예 4.0.8) Port Forwarding 을 통해 간단하게 호스트OS(또는 외부)에서 게스트OS 의 ftp, ssh, http 서비스에 접속할 수 있다.
NAT(Network Address Translation)에 포트 포워딩을 사용하여 호스트ip,port 를 게스트ip,port로 포워딩 되도록 하게 하면,
호스트ip,port 로 접속하는 요청은 호스트전용 어댑터ip,port 를 통해 게스트로 접속하게 된다.
우선, VirtualBox -> 파일 -> 환경설정 -> 네트워크 -> 호스트 전용 네트워크 에서 어댑터와 DHCP 서버를 아래와 같이 설정한다.
CentOS (power off 상태) 의 네트워크 설정에서 어댑터1과 어댑터2를 아래와 같이 설정한다.
어댑터1 은 게스트(CentOS)의 사설ip 를 호스트 ip에 사상하기 위해 NAT(Network Address Translation) 로 설정하고
어댑터2 는 호스트(Window)에서 게스트 네트워크를 사용할 수 있도록 호스트 전용 어댑터를 설정하도록 한다.
설정을 마치면 아래와 같이 CentOS 에서 어댑터 2개를 사용하는 것으로 나타난다.
CentOS 를 시작하면 eth0 과 eth1 의 두개의 네트워크 어댑터가 동작하는 것을 볼 수 있다.
[첫번째 방법]
CentOS System ->Administration -> Security Level and Firewall -> Other ports ->22 포트 tcp 프로토콜 추가
[두번째 방법]
VirtualBox 가 설치된 곳(예 c:\program files\oracle\virtualbox\)에 VBoxManage.exe 유틸리티를 이용하여 ssh 를 설정한다.
설정 하기, CentOS 5.5 는 virtualbox 에서의 이미지 이름이고 아래와 같이 값을 설정한다.(이미 값이 존재하면 삭제해야함)
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 22
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
참고로 설정 지우기, 값을 아무것도 설정하지 않으면 지워진다.
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort"
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort"
VBoxManage setextradata "CentOS 5.5" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol"
설정 상황 보기(CentOS 5.5 는 virtualbox 에서의 이미지 이름)
VBoxManage getextradata "CentOS 5.5" enumerate
#####
최신 VirtualBox 에서는 (예 4.0.8) Port Forwarding 을 통해 간단하게 호스트OS(또는 외부)에서 게스트OS 의 ftp, ssh, http 서비스에 접속할 수 있다.
NAT(Network Address Translation)에 포트 포워딩을 사용하여 호스트ip,port 를 게스트ip,port로 포워딩 되도록 하게 하면,
호스트ip,port 로 접속하는 요청은 호스트전용 어댑터ip,port 를 통해 게스트로 접속하게 된다.