I've recently needed to run an Ubuntu VM on my 2012 Mac Book Pro (Retina) and being a cheapskate I reached for VirtualBox.
Initial installation is fairly easy but I immediately ran into a whole host of problems:
- The newest version of Ubuntu (12.10) desktop requires 3D acceleration so it runs like crap.
- I can't see my Mac's Documents folder that I had marked as a shared folder in VirtualBox's settings.
- I couldn't ssh into the VM.
So to save anyone else the trouble I thought I would document the steps I went through here.
#1 System Configuration
Download Ubuntu 12.04 LTS (instead of 12.10). OK so it's not the latest version but not having to wait 2 seconds for the Ubuntu desktop to respond is vital to not loosing patience with the whole setup.
I chose 12.04 LTS 64 bit which is in the downloads section just bellow the download link for the latest version, here (Note: 32-bit is selected by default): http://www.ubuntu.com/download/desktop.
Using VirtualBox (https://www.virtualbox.org/) I set up a VM with the following configuration:
* General
Name: Ubuntu
* System
RAM: 2048 GB
HDD: 8GB , Virtual Disk Image (VDI), dynamically allocated
CPU: 2 x CPU (though this causes a non-optimal settings warning, not sure why).
* Network
Type: NAT
Port forwarding (under 'Advanced' tab in networking):
name: 'ssh'
host port: 2222
guest port: 22
* Shared Folders
Name: Documents, Path : /Users/jamesdoig/Documents
Do not check "Auto mount" (as it's bugged)
#2 Installation
* Under Settings -> Storage place the Ubuntu .iso into the CD/DVD drive and start the virtual machine.
* Go through the Ubuntu installation procedure.
I chose the: English: Macintosh, international keyboard layout to match my Mac Books kb layout.
* Once you have booted into the operating system and logged in: From the virtual box menu select: Device-> Install Guest Additions. Follow the on screen prompts.
* Reboot your VM.
#3 Folder sharing setup
* Sign into Ubuntu and open up a terminal,
Make a directory in /media to mount your shared folder to:
$ sudo mkdir /media/shared
Mount the shared folder (In my case Documents) :
$ sudo mount -t vboxsf Documents /media/shared
This will mount your Documents folder at /media/shared but you will have permission problems.
* Still in your Ubuntu VM terminal do:
$ cat /etc/passwd
and make note of the numbers that appear in the entry for your login name:
e.g: james:x:1000:1000:james,,,:/home/james:/bin/bash
So 1000 in my case.
* Now using your text editor of choice (I installed emacs by this point) :
$ sudo emacs /etc/fstab
and add the line:
Documents /media/shared vboxsf uid=1000,gid=1000,nodev,noexec,nosuid,auto,rw 0 0
Where uid & gid = the number you noted earlier,
'Documents' is the name of the folder you shared in VirtualBox
And '/media/shared' is the mount point your created earlier.
* Reboot your VM.
#4 SSH setup
Open up the Ubuntu terminal and do:
$ sudo apt-get install openssh-server
I'd rebooted the VM a lot during this process so can't be sure if this step also required it.
Now you should be able ssh into your Ubuntu VM from your Mac terminal with:
$ ssh -p 2222 <your login name>@127.0.0.1
#5 Running the VM in headless mode and SSHing in
This step isn't required but I did it for convenience:
In your Mac terminal:
Edit your ~/.bash_profile
e.g: $ emacs ~/.bash_profile
And add the following:
alias ubu='ssh -p 2222 james@127.0.0.1'
alias uvm='VBoxHeadless --startvm "Ubuntu"'
alias uvmx='VBoxManage controlvm "Ubuntu" poweroff'
Where "Ubuntu" is the name you gave the VM in Virtual box.
Also pick aliases that work for you.
Using these I can launch my VM headlessly (Without launching the GUI and VM desktop) from the terminal with: $ uvm
Shut down the vm with: $ uvmx
And ssh into the vm with: $ ubu
No comments:
Post a Comment