Create TOC

레이블이 VirtualBox인 게시물을 표시합니다. 모든 게시물 표시
레이블이 VirtualBox인 게시물을 표시합니다. 모든 게시물 표시

2020년 11월 8일

Debian/VirtualBox의 VRDE 설정

VNC 비밀 번호 설정

Debian에서 VirtualBox 패키지만 설치한 경우 원격디스플레이를 VNC를 사용할 수 있다. 단, 이때 VNC 비밀번호를 설정해줘야 한다.

$ VBoxManage modifyvm "가상머신 이름" --vrdeproperty VNCPassword=비밀번호

가상머신 이름은 아래와 같이 찾을 수 있다.

$ VBoxManage list vms

RDP 사용

우선 virtualbox-ext-pack을 설치한다.

$ sudo apt install virtualbox-ext-pack

VNC 대신 RDP를 사용하고 싶은 가상머신에 대해서 아래와 같이 설정한다.

$ VBoxManage modifyvm "가상머신 이름" --vrdeextpack "Oracle VM VirtualBox Extension Pack"

기본값으로 되돌리고 싶으면 아래와 같이 입력한다

$ VBoxManage modifyvm "가상머신 이름" --vrdeextpack default

2019년 6월 18일

Debian/사용 중인 linux를 VirtualBox로 옮기기

사용 중인 Debian linux를 VirtualBox로 옮기는 방법을 기록한다.

VirtualBox로 옮길 Debian linux의 mount 구조는 아래와 같다.

mount point device
/ /dev/sda1
/home /dev/sdb1
swap /dev/sdb2

디스크를 VDI로 복사

sda

드라이브 통채로 복사하기 위해서, 용량을 확인하고 그 크기만큼 VDI로 만든다.

$ sudo -s
# fdisk -l /dev/sda | grep bytes | head -1
Disk /dev/sda: 119.2 GiB, 128035676160 bytes, 250069680 sectors
# dd if=/dev/sda | VBoxManage convertdd stdin debian.vdi 128035676160 --format=VDI

sdb

rsync를 이용해서 백업한다. 우선 적당한 크기로(100GB) 이미지를 만들고 ext4로 포맷한 후 rsync로 데이터를 복사한다.

$ dd if=/dev/zero of=home.img bs=1M count=102400
$ sudo -s
# /sbin/mkfs.ext4 home.img
# mkdir /mnt/tmp
# mount -o loop home.img /mnt/tmp/
# rsync -av /home/* /mnt/tmp
# umount /mnt/tmp/

이미지를 VDI로 변환한다.

$ VBoxManage convertdd home.img home.vdi --format=VDI

VirtualBox 설정

가상머신 생성

원하는 사양으로 가상머신을 만든다.

속성
Name Debian
cpu 2 core
ram 4GB
SATA0 debian.vdi
SATA1 home.vdi

공유 폴더 설정

공유 폴더를 설정해두면 host <-> 가상 머신 사이에 파일 교환이 쉬워진다.

host share name option
/Users/foo/Downloads Downloads 자동 마운트 off, 항상 사용 on

headless 설정

headless로 가상머신을 사용할 경우 RDP나 ssh 연결 설정을 해야 한다.

RDP

VirtualBox 자체 RDP 기능을 사용할 수 있다.

$ VBoxManage modifyvm Debian --vrde on --vrdeport 13389

설정이 제대로 되었는지 확인한다.

$ VBoxManage showvminfo Debian | grep VRDE
VRDE:            enabled (Address 0.0.0.0, Ports 13389, MultiConn: off, ReuseSingleConn: off, Authentication type: null)
VRDE property: TCP/Ports  = "13389"

RDP로 접속할 때는 127.0.0.1의 13389 포트에 접속하면 된다.

ssh

localhost(127.0.0.1)의 4022 포트를 Debian VM의 22에 port forwarding 설정을 한다.

$ VBoxManage modifyvm Debian --natpf1 "ssh,tcp,,4022,,22"

설정이 제대로 되었는지 확인한다.

$ VBoxManage showvminfo Debian | grep Rule
NIC 1 Rule(0):   name = ssh, protocol = tcp, host ip = , host port = 4022, guest ip = , guest port = 22

접속 방법은 아래와 같다(id는 foo라고 가정한다).

$ ssh -p 4022 foo@127.0.0.1

headless 부팅

$ VBoxHeadless --startvm Debian
Oracle VM VirtualBox Headless Interface 5.2.30
(C) 2008-2019 Oracle Corporation
All rights reserved.

VRDE server is listening on port 13389

fzf를 사용한다면 아래와 같이 fvbox 함수를 정의해 사용할 수도 있다.

fvbox()
{
 local vm
 read -r vm <<< $(VBoxManage list vms | awk -F \" '{print $2}' | sort | fzf --layout=reverse-list --preview="VBoxManage showvminfo {} --machinereadable | grep \"^name=\\|^UUID=\\|^VMState=\\|^vrde=\\\|^vrdeports=\\|^Forwarding(\\|^SharedFolder\\|^description=\\|^ostype=\"" --preview-window=right:70%:wrap)

 if [ "$vm" = "" ]; then
  return;
 fi
 local running
 read -r running <<< $(VBoxManage showvminfo "$vm" --machinereadable | grep '^VMState='| awk -F = '{print $2}')
 if [ "$running" = "\"running\"" ]; then
  VBoxManage controlvm "$vm" savestate
 else
  nohup VBoxHeadless --startvm "$vm" > /dev/null 2>&1 &
 fi
}

가상머신 부팅 후 Linux 환경 수정

부팅시 "gave up looking for suspend/resume device" 오류

/etc/initramfs-tools/conf.d/resume 파일에서 RESUME 값이 잘못된 경우 발생한다. 아래와 같이 수정한다.

RESUME=/dev/sda1

수정이 끝나면 ramdisk 다시 만든다.

$ sudo update-initramfs -u

fstab 수정

/etc/fstab 에서 /homeswap 내용을 삭제하고, 아래와 갈이 /home 에 대한 내용을 추가한다.

/dev/sdb    /home   ext4    defaults    0   1

swap

적당한 크기의 swapfile을 만든다. 여기서는 메모리 크기와 동일하게 4GB로 만든다.

$ sudo -s
# dd if=/dev/zero of=/swapfile bs=1024 count=4194304
# chmod 600 /swapfile
# mkswap /swapfile
# swapon /swapfile

/etc/fstab 에 아래 내용을 추가한다.

/swapfile   swap    swap    defaults    0   0

hibernation

swap 정책을 변경한다.

$ sudo sysctl -w vm.swappiness=1

부팅 때 적용되도록 /etc/sysctl.d/swap.conf 파일을 수정한다.

vm.swappiness=1

uswsusp 를 설치한다.

$ sudo apt install uswsusp
$ sudo dpkg-reconfigure -pmedium uswsusp

"Continue without a valid swap space?" 질문에는 를, "Swap space to resume from:" 질문에는 swapfile을 선택한다.

hibernation 서비스 수정 하기 위해 복사한다.

$ sudo cp /lib/systemd/system/systemd-hibernate.service /etc/systemd/system/

/etc/systemd/system/systemd-hibernate.service 맨 마지막 줄을 아래와 같이 수정한다.

ExecStart=/bin/sh -c 's2disk && run-parts --regex .\* -a post /lib/systemd/system-sleep'

수정 사항을 적용한다.

$ sudo systemctl daemon-reload

ramdisk 다시 만든다.

$ sudo update-initramfs -u

아래와 같이 잘 동작하는지 확인한다.

$ sudo systemctl start systemd-hibernate.service

VirtualBox package 설치

VirtualBox guest 패키지를 설치한다.

$ sudo apt install virtualbox-guest-dkms virtualbox-guest-utils virtualbox-guest-x11

x11 설정

/etc/X11/xorg.conf 에서 기존에 사용하던 Monitor, Device 그리고 Screen Section은 다 삭제한다.

Section "ServerFlags"
    # Ctrl + Alt + Backspace
    Option  "DontZap"   "true"
EndSection

공유폴더

아래와 같은 명령으로 mount 되는지 확인한다.

$ sudo mount -t vboxsf -o uid=$UID,gid=$(id -g) Downloads /mnt/Downloads

uid, gid를 확인한다.

$ echo $UID $GID
1000 1000

/etc/fstab에 아래 내용을 추가한다.

# vbox
Downloads       /mnt/Downloads        vboxsf  defaults,uid=1000,gid=1000      0       0

재부팅

모든 설정이 끝나면 재부팅 후 모든 기능이 잘 동작하는지 확인해본다.

2015년 2월 23일

Debian/VirtualBox Extension Pack 설치 오류

VirtualBox 확장 패키지 설치시 아래와 같은 오류가 발생하는 경우가 있다.

확장 기능 패키지 Oracle_VM_VirtualBox_Extension_Pack-4.3.22-98236.vbox-extpack을(를) 설치할 수 없습니다.
The installer failed with exit code 1: .
결과 코드: NS_ERROR_FAILURE (0x80004005)
구성 요소: ExtPackManager
인터페이스: IExtPackManager {3295e6ce-b051-47b2-9514-2c588bfe7554}

이 경우 이전에 설치된 확장 패키지를 수동 삭제 후 새 패키지를 설치해주면 된다.

$ sudo VBoxManage extpack uninstall "Oracle VM VirtualBox Extension Pack"
$ sudo VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.22-98236.vbox-extpack

2009년 5월 16일

Ubuntu Netbook Remix

Ubuntu Netbook RemixVirtualBox에 설치해보았다.

Ubuntu Netbook Remix는 iso대신 img 파일만 제공하기 때문에 아래 링크의 내용을 참조해서 VirtualBox에 설치했다.

http://platonic.techfiz.info/2009/04/26/ubuntu-netbook-on-virtualbox/

설치 후 첫 로그인 화면은 아래와 같다.

Ubuntu Netook Remix에서는 화면이 작고 해상도가 낮은 Netbook을 위해서 여러가지 기능이 추가되어 있다. 우선 로그인 후 보이는 기본 화면. 좌측 위의 우분투 아이콘을 클릭하면 항상 이 화면을 볼 수 있다. 프로그램 시작 메뉴 역할도 같이 하는데 화면에 크게 크게 표시되는 아이콘이 특징이다.

불여우를 실행한 화면. 거의 모든 프로그램이 전체 화면으로 실행되며 실행한 프로그램은 좌측 상단에 아이콘이 추가된다. 해상도가 낮은 Netbook을 고려한 기능이다.

여러 프로그램을 실행한 모습.

추가된 기능은 시작 프로그램 형태로 제공된다(화면을 보면 Maximus Window Manager와 Netbook Launcher를 볼 수 있다).

2008년 9월 15일

Debian/VirtualBox 설치하기

이 문서는 Debian 에 VirtualBox를 설치하는 방법을 설명한다.

Package 설치

apt-get 등을 사용해서 아래 package를 설치한다.

$ sudo apt-get install virtualbox-ose virtualbox-ose-guest-utils virtualbox-ose-modules-2.6-686

모듈 설정

/etc/modules에 vboxdrv를 추가한다.

$ sudo cat vboxdrv >> /etc/modules

사용자 설정

VirtualBox 를 사용할 사용자를 아래 명령을 이용해서 vboxusers 그룹에 추가해준다.

$ sudo addgroup 사용자id vboxusers

공유 설정

host - VirtualBox 간의 공유 설정은 아래와 같이 하면 된다.

  1. VirtualBox의 설정 - 공유 폴더 에서 머신 폴더 설정. 여기에선 이름을 xxx 라고 한다.
  2. VirtualBox의 OS가 window라면 net use x: \\vboxsvr\xxx, linux라면 mount -t vboxsf xxx /mnt/원하는이름

심리스 모드 사용

VirtualBox의 심리스 기능을 사용하면 아래 화면처럼 윈도우 바탕화면을 보지 않고 원하는 프로그램만 host의 프로그램처럼 실행시킬 수 있다. 아래 화면은 Debian에서 VirtualBox의 심리스 모드를 이용해서 Internet Explorer 를 실행한 화면이다.

심리스 모드는 host키기본 값은 오른쪽 control + L을 누르면 된다.

한/영 전환키 사용

한/영 전환키를 SCIM같은 입력기에 설정해서 사용할 경우 VirtualBox에서는 한/영 전환키를 사용할 수 없다. 이때는 아래와 같은 script를 작성해서 사용하면 된다.

#!/bin/sh
GTK_IM_MODULE=none
QT_IM_MODULE=none
XMODIFIERS=none
VBoxManage startvm <vm 이름>

vm 이름VBoxManage list vms 명령을 사용해서 확인할 수 있다.