====== VirtualBox LinuxHost ======
===== 설치 =====
* http://www.virtualbox.org/wiki/Linux_Downloads 에서 배포판에 맞는 버전으로 다운로드 설치한다.
* [[linux:version|Linux 배포판과 버전 확인]]
* 혹은 설명에 나와있는 **Debian-based Linux distributions** 저장소 추가 방법을 수행한다. ''/etc/apt/sources.list''
# i386 을 지원하지 않으므로 [arch=amd64] 를 추가해두는게 좋다.
deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian [알맞은버전-trusty] contrib
* 키 등록 - 배포판 버전마다 바뀔 수 있으므로 [[http://www.virtualbox.org/wiki/Linux_Downloads|Linux Downloads]] 페이지 확인 할 것.
wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add -
* 설치
sudo apt-get update
# 해당 패키지의 저장소가 virtualbox.org 인지 확인
apt-cache policy virtualbox-6.0
# > 내용이 다음과 유사해야함.
virtualbox-6.0:
설치: (없음)
후보: 6.0.14-133895~Debian~buster
버전 테이블:
6.0.14-133895~Debian~buster 500
500 http://download.virtualbox.org/virtualbox/debian buster/contrib amd64 Packages
----
# sudo apt-get install virtualbox-[버전]
sudo apt-get install virtualbox-6.1
# 설치가 안 돼 있다면 dkms도 설치
sudo apt-get install dkms
* 설치후 다음 명령을 실행한다. 할 필요 없음. 최근 Ubuntu 패키지는 자동으로 수행해줌.
# 5.0.8 이전
sudo /etc/init.d/vboxdrv setup
# 5.0.8 이후
sudo /sbin/rcvboxdrv setup
===== 설치 Arch Linux =====
* [[linux:arch|Arch Linux]] 에서 설치하기
* [[https://wiki.archlinux.org/index.php/VirtualBox|Arch Linux VirtualBox]]
* [[https://aur.archlinux.org/packages/virtualbox-bin/|AUR virtualbox-bin]] VirtualBox Oracle 제공 바이너리 설치
# Arch 공식 패키지 설치
sudo pacman -S virtualbox
## 선택적 의존성을 지정할 수 있다. 쉼표로 여러개 지정가능.
## 선택 안해도 되지만 virtualbox-guest-iso는 필요할 듯.
virtualbox에 대한 선택적 의존성 선택:
1: vde2: Virtual Distributed Ethernet support
2: virtualbox-guest-iso: Guest Additions CD image
3: virtualbox-ext-vnc: VNC server support
4: virtualbox-sdk: Developer kit
선택 항목 입력 (기본값 = 없음): 1, 2,3,4
## 커널 모듈 설정이 필요하다. 자신이 사용하는 커널 버전을 선택하거나
## 그 외의 경우 DKMS 선택
## uname -r 명령으로 커널 버전 확인 가능.
VIRTUALBOX-HOST-MODULES에 대해 제공하는것을 선택:
1: linux316-virtualbox-host-modules 6.0.8-3 extra
2: linux414-virtualbox-host-modules 6.0.8-13 extra
3: linux419-virtualbox-host-modules 6.0.8-15 extra
4: linux44-virtualbox-host-modules 6.0.8-4 extra
5: linux49-virtualbox-host-modules 6.0.8-8 extra
6: linux51-virtualbox-host-modules 6.0.8-15 extra
7: linux52-virtualbox-host-modules 6.0.8-2 extra
8: linux419-rt-virtualbox-host-modules 6.0.8-3 community
9: linux50-rt-virtualbox-host-modules 6.0.8-5 community
10: virtualbox-host-dkms 6.0.8-2 community
# oracle-extension-pack 설치가 필요하다. 오라클 Virtualbox 다운로드 페이지에서 직접 다운로드하는게 나은듯.
# yay -S virtualbox-ext-oracle
# 커널 모듈 적재를 재부팅이 필요하다.
sudo reboot
# 모든 커널 모듈이 잘 올라왔는지 확인
sudo systemctl --failed # 0 loaded units listed. 라고 나와야 함.
===== USB =====
* 기본적으로 현재 사용자가 ''vboxusers'' 그룹에 속해있어야 한다.
sudo usermod -aG vboxusers $USER
# 설정 후 재부팅 필요
* VirtualBox 가상머신 설정에서 USB를 사용가능하게 지정하고, 필터에 원하는 USB 장비를 추가한다. [[http://myknowledge.kr/88|참조]]
====== VirtualBox Linux Guest ======
===== Guest 확장 설치를 위한 linux-header 설치 =====
sudo apt install linux-headers-$(uname -r)
===== 공유 폴더 =====
* 공유 폴더를 사용하려면 VirtualBox 에 **Extension Pack**이 설치돼 있어야 한다.
* Guest OS에는 **VirtualBox Guest Addition**이 설치돼 있어야 한다.
* 공유 폴더
* 폴더 경로 : Host 의 폴더 지정 예) ''hostshare''
* 폴더 이름 : Guest 에서 ''vboxsf'' 타입으로 마운트할때 인식하는 이름
* 읽기 전용 : 비활성
* 자동 마운트 : 비활성
* 마운트 지점 : 비워두기
* 항상 사용하기 : 활성
# 사용자 $HOME/share 에 마운트 하려면
mkdir ~/share
sudo mount -t vboxsf -o rw,dmode=777,uid=$(id -u),gid=$(id -g) hostshare ~/share
* 공유 폴더(Shared Folder)에 root 이외의 사용자에게 권한을 주려면 **vboxsf** 그룹에 해당 사용자를 추가하면 된다. http://forums.virtualbox.org/viewtopic.php?f=8&t=40248
* 혹은 애초에 ''uid=$(id -u),gid=$(id -g)'' 옵션을 줘서 마운트 한다. [[https://stackoverflow.com/questions/10889867/mount-shared-folder-vbox-as-another-user|ubuntu - Mount shared folder (vbox) as another user - Stack Overflow]]
* ''/etc/fstab'' 에 추가해도 된다.
hostshare /home//shared vboxsf defaults,uid=1000,gid=1000,dmode=777 0 0
* [[https://gist.github.com/estorgio/0c76e29c0439e683caca694f338d4003|Mounting VirtualBox shared folders on Ubuntu Server 18.04 LTS (Bionic Beaver)]]
* 문서상에서 ''/etc/fstab'' 이용시 ''/etc/modules''에 ''vboxsf''를 추가해야 한다고 나와있으나 실제로는 Ubuntu 21.04 Guest 에서는 안해줘도 잘 됐음.
* [[https://gist.github.com/estorgio/1d679f962e8209f8a9232f7593683265|Mounting VirtualBox shared folders on Ubuntu Server 16.04 LTS]]
===== SSH 접속 가능하게 만들기 =====
* 먼저 네트워크 접속가능하게 만든다. [[virtualbox:network|VirtualBox Network]] 참조
* 대부분의 경우 설치전에 Host Only 를 세팅해 뒀다면 아래 작업은 불필요하다.
* ''sudo ifconfig eth1'' 명령으로 장치 확인
* 고정 IP로 등록한다.
* RedHat 계열의 경우
* 일단 ''ifconfig''로 봤을 때 ''eth1''이 존재하지 않으면 ''setup''명령에서 ''Network configuration -> Device configuration -> ''에서 DHCP로 eth1을 추가해준다.
* ''/etc/sysconfig/network-scripts/ifcfg-eth1''
DEVICE=eth1 # 지정된 장치명 보통 eth1일 것임.
BOOTPROTO=static
IPADDR=192.168.56.101 # 원하는 IP
NETMASK=255.255.255.0
ONBOOT=yes # 부팅시 자동 로딩
* Debian 계열의 경우 어떤 IP로 설정해야 할지 모르겠다면 먼저 DHCP로 설정하여 ''ifup eth1''로 올리고 그 결과 IP를 가지고 다음의 정적 IP 할당을 진행하면된다.
# DHCP 설정
auto eth1
iface eth1 inet dhcp
* Debian 계열의 경우 ''/etc/network/interfaces''
auto eth1
iface eth1 inet static
address 192.168.56.101
netmask 255.255.255.0
* ''ifdown eth1; ifup eth1'' 명령으로 장치 재시작
* [[http://wiredrevolution.com/virtualbox/setup-ssh-access-between-virtualbox-host-and-guest-vms|Setup SSH access between VirtualBox Host and Guest VMs | WiredRevolution.com]]
* [[https://averagelinuxuser.com/ssh-into-virtualbox/|How to SSH into VirtualBox machine | Average Linux User]]
===== 용량 확장 =====
* http://credemol.blogspot.kr/2013/08/virtualbox.html