Oracle VM VirtualBox©R User Manual Version 4.3.12 ©c 2004-2014 Oracle Corporation http://www.virtualbox.org Contents 1 First steps 11 1.1 Why is virtualization useful? .12 1.2 Some terminology .12 1.3 Features overview .13 1.4 Supported host operating systems .15 1.5 Installing VirtualBox and extension packs .16 1.6 Starting VirtualBox .17 1.7 Creating your first virtual machine .18 1.8 Running your virtual machine .21 1.8.1 Starting a new VM for the first time .21 1.8.2 Capturing and releasing keyboard and mouse .22 1.8.3 Typing special characters .23 1.8.4 Changing removable media .24 1.8.5 ...
Author: Sam Tyler Shared: 7/30/19

## Oracle VM VirtualBox©R User Manual

Version 4.3.12 ©c 2004-2014 Oracle Corporation http://www.virtualbox.org,

## Contents

1 First steps 11 1.1 Why is virtualization useful? .12 1.2 Some terminology .12 1.3 Features overview .13 1.4 Supported host operating systems .15 1.5 Installing VirtualBox and extension packs .16 1.6 Starting VirtualBox .17 1.7 Creating your first virtual machine .18 1.8 Running your virtual machine .21 1.8.1 Starting a new VM for the first time .21 1.8.2 Capturing and releasing keyboard and mouse .22 1.8.3 Typing special characters .23 1.8.4 Changing removable media .24 1.8.5 Resizing the machine’s window .24 1.8.6 Saving the state of the machine .25 1.9 Using VM groups .26 1.10 Snapshots .27 1.10.1 Taking, restoring and deleting snapshots .27 1.10.2 Snapshot contents .29 1.11 Virtual machine configuration .30 1.12 Removing virtual machines .30 1.13 Cloning virtual machines .30 1.14 Importing and exporting virtual machines .31 1.15 Global Settings .33 1.16 Alternative front-ends .33 2 Installation details 35 2.1 Installing on Windows hosts .35 2.1.1 Prerequisites .35 2.1.2 Performing the installation .35 2.1.3 Uninstallation .36 2.1.4 Unattended installation .36 2.2 Installing on Mac OS X hosts .37 2.2.1 Performing the installation .37 2.2.2 Uninstallation .37 2.2.3 Unattended installation .37 2.3 Installing on Linux hosts .37 2.3.1 Prerequisites .37 2.3.2 The VirtualBox kernel module .38 2.3.3 Performing the installation .39 2.3.4 The vboxusers group .42 2.3.5 Starting VirtualBox on Linux .42 2.4 Installing on Solaris hosts .43 2.4.1 Performing the installation .43 2.4.2 The vboxuser group .43 2.4.3 Starting VirtualBox on Solaris .44, Contents 2.4.4 Uninstallation .44 2.4.5 Unattended installation .44 2.4.6 Configuring a zone for running VirtualBox .44 3 Configuring virtual machines 45 3.1 Supported guest operating systems .45 3.1.1 Mac OS X guests .46 3.1.2 64-bit guests .46 3.2 Emulated hardware .47 3.3 General settings .48 3.3.1 “Basic” tab .48 3.3.2 “Advanced” tab .48 3.3.3 “Description” tab .49 3.4 System settings .49 3.4.1 “Motherboard” tab .49 3.4.2 “Processor” tab .51 3.4.3 “Acceleration” tab .51 3.5 Display settings .51 3.6 Storage settings .52 3.7 Audio settings .54 3.8 Network settings .54 3.9 Serial ports .55 3.10 USB support .56 3.10.1 USB settings .56 3.10.2 Implementation notes for Windows and Linux hosts .58 3.11 Shared folders .58 3.12 Alternative firmware (EFI) .58 3.12.1 Video modes in EFI .58 3.12.2 Specifying boot arguments .59 4 Guest Additions 60 4.1 Introduction .60 4.2 Installing and Maintaining Guest Additions .61 4.2.1 Guest Additions for Windows .61 4.2.2 Guest Additions for Linux .65 4.2.3 Guest Additions for Solaris .69 4.2.4 Guest Additions for OS/2 .70 4.3 Shared folders .70 4.3.1 Manual mounting .71 4.3.2 Automatic mounting .72 4.4 Hardware-accelerated graphics .73 4.4.1 Hardware 3D acceleration (OpenGL and Direct3D 8/9) .73 4.4.2 Hardware 2D video acceleration for Windows guests .74 4.5 Seamless windows .74 4.6 Guest properties .75 4.7 Guest control .77 4.8 Memory overcommitment .77 4.8.1 Memory ballooning .77 4.8.2 Page Fusion .78 5 Virtual storage 80 5.1 Hard disk controllers: IDE, SATA (AHCI), SCSI, SAS .80 5.2 Disk image files (VDI, VMDK, VHD, HDD) .82 5.3 The Virtual Media Manager .83, Contents 5.4 Special image write modes .85 5.5 Differencing images .86 5.6 Cloning disk images .88 5.7 Host I/O caching .89 5.8 Limiting bandwidth for disk images .89 5.9 CD/DVD support .90 5.10 iSCSI servers .91 6 Virtual networking 92 6.1 Virtual networking hardware .92 6.2 Introduction to networking modes .93 6.3 Network Address Translation (NAT) .94 6.3.1 Configuring port forwarding with NAT .94 6.3.2 PXE booting with NAT .95 6.3.3 NAT limitations .95 6.4 Network Address Translation Service (experimental) .96 6.5 Bridged networking .97 6.6 Internal networking .98 6.7 Host-only networking .99 6.8 UDP Tunnel networking .100 6.9 VDE networking .100 6.10 Limiting bandwidth for network I/O .101 6.11 Improving network performance .102 7 Remote virtual machines 103 7.1 Remote display (VRDP support) .103 7.1.1 Common third-party RDP viewers .103 7.1.2 VBoxHeadless, the remote desktop server .104 7.1.3 Step by step: creating a virtual machine on a headless server .105 7.1.4 Remote USB .107 7.1.5 RDP authentication .107 7.1.6 RDP encryption .108 7.1.7 Multiple connections to the VRDP server .109 7.1.8 Multiple remote monitors .110 7.1.9 VRDP video redirection .110 7.1.10 VRDP customization .110 7.2 Teleporting .111 8 VBoxManage 113 8.1 Introduction .113 8.2 Commands overview .114 8.3 General options .122 8.4 VBoxManage list .122 8.5 VBoxManage showvminfo .123 8.6 VBoxManage registervm / unregistervm .124 8.7 VBoxManage createvm .125 8.8 VBoxManage modifyvm .125 8.8.1 General settings .125 8.8.2 Networking settings .128 8.8.3 Serial port, audio, clipboard and USB settings .129 8.8.4 Remote machine settings .130 8.8.5 Teleporting settings .131 8.9 VBoxManage clonevm .132 8.10 VBoxManage import .132, Contents 8.11 VBoxManage export .133 8.12 VBoxManage startvm .134 8.13 VBoxManage controlvm .134 8.14 VBoxManage discardstate .136 8.15 VBoxManage adoptstate .136 8.16 VBoxManage snapshot .136 8.17 VBoxManage closemedium .137 8.18 VBoxManage storageattach .137 8.19 VBoxManage storagectl .139 8.20 VBoxManage bandwidthctl .140 8.21 VBoxManage showhdinfo .141 8.22 VBoxManage createhd .141 8.23 VBoxManage modifyhd .141 8.24 VBoxManage clonehd .142 8.25 VBoxManage convertfromraw .143 8.26 VBoxManage getextradata/setextradata .144 8.27 VBoxManage setproperty .144 8.28 VBoxManage usbfilter add/modify/remove .145 8.29 VBoxManage sharedfolder add/remove .145 8.30 VBoxManage guestproperty .145 8.31 VBoxManage guestcontrol .146 8.32 VBoxManage debugvm .153 8.33 VBoxManage metrics .154 8.34 VBoxManage hostonlyif .156 8.35 VBoxManage dhcpserver .156 8.36 VBoxManage extpack .157 9 Advanced topics 158 9.1 VBoxSDL, the simplified VM displayer .158 9.1.1 Introduction .158 9.1.2 Secure labeling with VBoxSDL .158 9.1.3 Releasing modifiers with VBoxSDL on Linux .159 9.2 Automated guest logons .160 9.2.1 Automated Windows guest logons .160 9.2.2 Automated Linux/Unix guest logons .161 9.3 Advanced configuration for Windows guests .164 9.3.1 Automated Windows system preparation .164 9.4 Advanced configuration for Linux and Solaris guests .165 9.4.1 Manual setup of selected guest services on Linux .165 9.4.2 Guest graphics and mouse driver setup in depth .165 9.5 CPU hot-plugging .166 9.6 PCI passthrough .167 9.7 Webcam passthrough .168 9.7.1 Using a host webcam in the guest .168 9.7.2 Windows hosts .169 9.7.3 Mac OS X hosts .169 9.7.4 Linux hosts .170 9.8 Advanced display configuration .170 9.8.1 Custom VESA resolutions .170 9.8.2 Configuring the maximum resolution of guests when using the graphical frontend .170 9.9 Advanced storage configuration .171 9.9.1 Using a raw host hard disk from a guest .171 9.9.2 Configuring the hard disk vendor product data (VPD) .173, Contents 9.9.3 Access iSCSI targets via Internal Networking .173 9.10 Legacy commands for using serial ports .174 9.11 Fine-tuning the VirtualBox NAT engine .174 9.11.1 Configuring the address of a NAT network interface .174 9.11.2 Configuring the boot server (next server) of a NAT network interface .175 9.11.3 Tuning TCP/IP buffers for NAT .175 9.11.4 Binding NAT sockets to a specific interface .175 9.11.5 Enabling DNS proxy in NAT mode .175 9.11.6 Using the host’s resolver as a DNS proxy in NAT mode .176 9.11.7 Configuring aliasing of the NAT engine .176 9.12 Configuring the BIOS DMI information .177 9.12.1 DMI BIOS information (type 0) .177 9.12.2 DMI system information (type 1) .177 9.12.3 DMI board information (type 2) .177 9.12.4 DMI system enclosure or chassis (type 3) .178 9.12.5 DMI processor informatiion (type 4) .178 9.12.6 DMI OEM strings (type 11) .178 9.13 Configuring the custom ACPI table .178 9.14 Fine-tuning timers and time synchronization .179 9.14.1 Configuring the guest time stamp counter (TSC) to reflect guest execution .179 9.14.2 Accelerate or slow down the guest clock .179 9.14.3 Tuning the Guest Additions time synchronization parameters .179 9.14.4 Disabling the Guest Additions time synchronization .180 9.15 Installing the alternate bridged networking driver on Solaris 11 hosts .180 9.16 VirtualBox VNIC templates for VLANs on Solaris 11 hosts .181 9.17 Configuring multiple host-only network interfaces on Solaris hosts .181 9.18 Configuring the VirtualBox CoreDumper on Solaris hosts .182 9.19 Locking down the VirtualBox manager GUI .182 9.19.1 Customizing the VM manager .182 9.19.2 VM selector customization .183 9.19.3 Configure VM selector menu entries .183 9.19.4 Configure VM window menu entries .184 9.19.5 Configure VM window status bar entries .187 9.19.6 Configure VM window visual modes .187 9.19.7 Host Key customization .188 9.19.8 Action when terminating the VM .188 9.19.9 Action for handling a Guru Meditation .189 9.20 Starting the VirtualBox web service automatically .189 9.20.1 Linux: starting the webservice via init .189 9.20.2 Solaris: starting the web service via SMF .190 9.20.3 Mac OS X: starting the webservice via launchd .190 9.21 VirtualBox Watchdog .190 9.21.1 Memory ballooning control .191 9.21.2 Host isolation detection .192 9.21.3 More information .192 9.21.4 Linux: starting the watchdog service via init .193 9.21.5 Solaris: starting the watchdog service via SMF .193 9.22 Other extension packs .193 9.23 Starting virtual machines during system boot .194 9.23.1 Linux: starting the autostart service via init .194 9.23.2 Solaris: starting the autostart service via SMF .195 9.23.3 Mac OS X: starting the autostart service via launchd .195, Contents 9.24 VirtualBox expert storage management .195 9.25 Handling of host power management events .196 9.26 Experimental support for passing through SSE4.1 / SSE4.2 instructions .196 9.27 Support for keyboard indicators synchronization .196 10 Technical background 197 10.1 Where VirtualBox stores its files .197 10.1.1 Machines created by VirtualBox version 4.0 or later .197 10.1.2 Machines created by VirtualBox versions before 4.0 .198 10.1.3 Global configuration data .198 10.1.4 Summary of 4.0 configuration changes .199 10.1.5 VirtualBox XML files .199 10.2 VirtualBox executables and components .199 10.3 Hardware vs. software virtualization .201 10.4 Details about software virtualization .202 10.5 Details about hardware virtualization .204 10.6 Nested paging and VPIDs .205 11 VirtualBox programming interfaces 207 12 Troubleshooting 208 12.1 Procedures and tools .208 12.1.1 Categorizing and isolating problems .208 12.1.2 Collecting debugging information .209 12.1.3 The built-in VM debugger .209 12.1.4 VM core format .211 12.2 General .212 12.2.1 Guest shows IDE/SATA errors for file-based images on slow host file system .212 12.2.2 Responding to guest IDE/SATA flush requests .213 12.2.3 Poor performance caused by host power management .213 12.2.4 GUI: 2D Video Acceleration option is grayed out .213 12.3 Windows guests .214 12.3.1 Windows bluescreens after changing VM configuration .214 12.3.2 Windows 0x101 bluescreens with SMP enabled (IPI timeout) .214 12.3.3 Windows 2000 installation failures .214 12.3.4 How to record bluescreen information from Windows guests .215 12.3.5 No networking in Windows Vista guests .215 12.3.6 Windows guests may cause a high CPU load .215 12.3.7 Long delays when accessing shared folders .215 12.3.8 USB tablet coordinates wrong in Windows 98 guests .215 12.3.9 Windows guests are removed from an Active Directory domain after restoring a snapshot .216 12.3.10 Restoring d3d8.dll and d3d9.dll .216 12.4 Linux and X11 guests .217 12.4.1 Linux guests may cause a high CPU load .217 12.4.2 AMD Barcelona CPUs .217 12.4.3 Buggy Linux 2.6 kernel versions .217 12.4.4 Shared clipboard, auto-resizing and seamless desktop in X11 guests .218 12.5 Solaris guests .218 12.5.1 Older Solaris 10 releases hang in 64-bit mode .218 12.6 Windows hosts .218 12.6.1 VBoxSVC out-of-process COM server issues .218 12.6.2 CD/DVD changes not recognized .219, Contents 12.6.3 Sluggish response when using Microsoft RDP client .219 12.6.4 Running an iSCSI initiator and target on a single system .219 12.6.5 Bridged networking adapters missing .220 12.6.6 Host-only networking adapters cannot be created .220 12.7 Linux hosts .220 12.7.1 Linux kernel module refuses to load .220 12.7.2 Linux host CD/DVD drive not found .220 12.7.3 Linux host CD/DVD drive not found (older distributions) .220 12.7.4 Linux host floppy not found .221 12.7.5 Strange guest IDE error messages when writing to CD/DVD .221 12.7.6 VBoxSVC IPC issues .221 12.7.7 USB not working .222 12.7.8 PAX/grsec kernels .222 12.7.9 Linux kernel vmalloc pool exhausted .223 12.8 Solaris hosts .223 12.8.1 Cannot start VM, not enough contiguous memory .223 12.8.2 VM aborts with out of memory errors on Solaris 10 hosts .223 13 Security guide 224 13.1 Overview .224 13.1.1 General Security Principles .224 13.2 Secure Installation and Configuration .224 13.2.1 Installation Overview .224 13.2.2 Post Installation Configuration .225 13.3 Security Features .225 13.3.1 The Security Model .225 13.3.2 Secure Configuration of Virtual Machines .225 13.3.3 Configuring and Using Authentication .226 13.3.4 Potentially insecure operations .227 13.3.5 Encryption .227 14 Known limitations 228 14.1 Experimental Features .228 14.2 Known Issues .228 15 Change log 231 15.1 Version 4.3.12 (2014-05-16) .231 15.2 Version 4.3.10 (2014-03-26) .232 15.3 Version 4.3.8 (2014-02-25) .233 15.4 Version 4.3.6 (2013-12-18) .235 15.5 Version 4.3.4 (2013-11-29) .236 15.6 Version 4.3.2 (2013-11-01) .238 15.7 Version 4.3.0 (2013-10-15) .239 15.8 Version 4.2.22 (2014-01-10) .241 15.9 Version 4.2.20 (2013-11-28) .242 15.10 Version 4.2.18 (2013-09-06) .243 15.11 Version 4.2.16 (2013-07-04) .244 15.12 Version 4.2.14 (2013-06-21) .245 15.13 Version 4.2.12 (2013-04-12) .246 15.14 Version 4.2.10 (2013-03-05) .248 15.15 Version 4.2.8 (2013-02-20) .248 15.16 Version 4.2.6 (2012-12-19) .249 15.17 Version 4.2.4 (2012-10-26) .251 15.18 Version 4.2.2 (2012-10-18) .251, Contents 15.19 Version 4.2.0 (2012-09-13) .253 15.20 Version 4.1.18 (2012-06-06) .255 15.21 Version 4.1.16 (2012-05-22) .255 15.22 Version 4.1.14 (2012-04-13) .256 15.23 Version 4.1.12 (2012-04-03) .256 15.24 Version 4.1.10 (2012-03-13) .257 15.25 Version 4.1.8 (2011-12-19) .258 15.26 Version 4.1.6 (2011-11-04) .259 15.27 Version 4.1.4 (2011-10-03) .260 15.28 Version 4.1.2 (2011-08-15) .261 15.29 Version 4.1.0 (2011-07-19) .263 15.30 Version 4.0.14 (2011-10-13) .265 15.31 Version 4.0.12 (2011-07-15) .267 15.32 Version 4.0.10 (2011-06-22) .267 15.33 Version 4.0.8 (2011-05-16) .268 15.34 Version 4.0.6 (2011-04-21) .269 15.35 Version 4.0.4 (2011-02-17) .271 15.36 Version 4.0.2 (2011-01-18) .273 15.37 Version 4.0.0 (2010-12-22) .274 15.38 Version 3.2.12 (2010-11-30) .276 15.39 Version 3.2.10 (2010-10-08) .278 15.40 Version 3.2.8 (2010-08-05) .280 15.41 Version 3.2.6 (2010-06-25) .281 15.42 Version 3.2.4 (2010-06-07) .283 15.43 Version 3.2.2 (2010-06-02) .284 15.44 Version 3.2.0 (2010-05-18) .285 15.45 Version 3.1.8 (2010-05-10) .287 15.46 Version 3.1.6 (2010-03-25) .288 15.47 Version 3.1.4 (2010-02-12) .290 15.48 Version 3.1.2 (2009-12-17) .292 15.49 Version 3.1.0 (2009-11-30) .293 15.50 Version 3.0.12 (2009-11-10) .295 15.51 Version 3.0.10 (2009-10-29) .296 15.52 Version 3.0.8 (2009-10-02) .297 15.53 Version 3.0.6 (2009-09-09) .298 15.54 Version 3.0.4 (2009-08-04) .301 15.55 Version 3.0.2 (2009-07-10) .302 15.56 Version 3.0.0 (2009-06-30) .303 15.57 Version 2.2.4 (2009-05-29) .305 15.58 Version 2.2.2 (2009-04-27) .307 15.59 Version 2.2.0 (2009-04-08) .308 15.60 Version 2.1.4 (2009-02-16) .310 15.61 Version 2.1.2 (2009-01-21) .312 15.62 Version 2.1.0 (2008-12-17) .315 15.63 Version 2.0.8 (2009-03-10) .316 15.64 Version 2.0.6 (2008-11-21) .317 15.65 Version 2.0.4 (2008-10-24) .318 15.66 Version 2.0.2 (2008-09-12) .319 15.67 Version 2.0.0 (2008-09-04) .321 16 Third-party materials and licenses 322 16.1 Materials .322 16.2 Licenses .325 16.2.1 GNU General Public License (GPL) .325, Contents 16.2.2 GNU Lesser General Public License (LGPL) .329 16.2.3 Mozilla Public License (MPL) .334 16.2.4 MIT License .340 16.2.5 X Consortium License (X11) .340 16.2.6 zlib license .340 16.2.7 OpenSSL license .340 16.2.8 Slirp license .341 16.2.9 liblzf license .342 16.2.10 libpng license .342 16.2.11 lwIP license .342 16.2.12 libxml license .343 16.2.13 libxslt licenses .343 16.2.14 gSOAP Public License Version 1.3a .344 16.2.15 Chromium licenses .349 16.2.16 curl license .351 16.2.17 libgd license .351 16.2.18 BSD license from Intel .352 16.2.19 libjpeg License .352 16.2.20 x86 SIMD extension for IJG JPEG library license .353 16.2.21 FreeBSD license .353 16.2.22 NetBSD license .354 16.2.23 PCRE license .354 16.2.24 libffi license .355 16.2.25 FLTK license .356 16.2.26 Expat license .356 16.2.27 Fontconfig license .356 16.2.28 Freetype license .357 16.2.29 VPX License .359 17 VirtualBox privacy information 360 Glossary 361, 1 First steps Welcome to Oracle VM VirtualBox! VirtualBox is a cross-platform virtualization application. What does that mean? For one thing, it installs on your existing Intel or AMD-based computers, whether they are running Windows, Mac, Linux or Solaris operating systems. Secondly, it extends the capabilities of your existing computer so that it can run multiple operating systems (inside multiple virtual machines) at the same time. So, for example, you can run Windows and Linux on your Mac, run Windows Server 2008 on your Linux server, run Linux on your Windows PC, and so on, all alongside your existing applications. You can install and run as many virtual machines as you like – the only practical limits are disk space and memory. VirtualBox is deceptively simple yet also very powerful. It can run everywhere from small embedded systems or desktop class machines all the way up to datacenter deployments and even Cloud environments. The following screenshot shows you how VirtualBox, installed on a Mac computer, is running Windows 7 in a virtual machine window: In this User Manual, we’ll begin simply with a quick introduction to virtualization and how to get your first virtual machine running with the easy-to-use VirtualBox graphical user interface. Subsequent chapters will go into much more detail covering more powerful tools and features, but fortunately, it is not necessary to read the entire User Manual before you can use VirtualBox. You can find a summary of VirtualBox’s capabilities in chapter 1.3, Features overview, page 13. For existing VirtualBox users who just want to see what’s new in this release, there is a detailed list in chapter 15, Change log, page 231., 1 First steps 1.1 Why is virtualization useful? The techniques and features that VirtualBox provides are useful for several scenarios: • Running multiple operating systems simultaneously. VirtualBox allows you to run more than one operating system at a time. This way, you can run software written for one operating system on another (for example, Windows software on Linux or a Mac) without having to reboot to use it. Since you can configure what kinds of “virtual” hardware should be presented to each such operating system, you can install an old operating system such as DOS or OS/2 even if your real computer’s hardware is no longer supported by that operating system. • Easier software installations. Software vendors can use virtual machines to ship entire software configurations. For example, installing a complete mail server solution on a real machine can be a tedious task. With VirtualBox, such a complex setup (then often called an “appliance”) can be packed into a virtual machine. Installing and running a mail server becomes as easy as importing such an appliance into VirtualBox. • Testing and disaster recovery. Once installed, a virtual machine and its virtual hard disks can be considered a “container” that can be arbitrarily frozen, woken up, copied, backed up, and transported between hosts. On top of that, with the use of another VirtualBox feature called “snapshots”, one can save a particular state of a virtual machine and revert back to that state, if necessary. This way, one can freely experiment with a computing environment. If something goes wrong (e.g. after installing misbehaving software or infecting the guest with a virus), one can easily switch back to a previous snapshot and avoid the need of frequent backups and restores. Any number of snapshots can be created, allowing you to travel back and forward in virtual machine time. You can delete snapshots while a VM is running to reclaim disk space. • Infrastructure consolidation. Virtualization can significantly reduce hardware and elec- tricity costs. Most of the time, computers today only use a fraction of their potential power and run with low average system loads. A lot of hardware resources as well as electricity is thereby wasted. So, instead of running many such physical computers that are only par- tially used, one can pack many virtual machines onto a few powerful hosts and balance the loads between them. 1.2 Some terminology When dealing with virtualization (and also for understanding the following chapters of this documentation), it helps to acquaint oneself with a bit of crucial terminology, especially the following terms: Host operating system (host OS). This is the operating system of the physical computer on which VirtualBox was installed. There are versions of VirtualBox for Windows, Mac OS X, Linux and Solaris hosts; for details, please see chapter 1.4, Supported host operating systems, page 15. Most of the time, this User Manual discusses all VirtualBox versions together. There may be platform-specific differences which we will point out where appropriate. Guest operating system (guest OS). This is the operating system that is running inside the virtual machine. Theoretically, VirtualBox can run any x86 operating system (DOS, Win- dows, OS/2, FreeBSD, OpenBSD), but to achieve near-native performance of the guest code on your machine, we had to go through a lot of optimizations that are specific to certain operating systems. So while your favorite operating system may run as a guest, we, 1 First steps officially support and optimize for a select few (which, however, include the most common ones). See chapter 3.1, Supported guest operating systems, page 45 for details. Virtual machine (VM). This is the special environment that VirtualBox creates for your guest operating system while it is running. In other words, you run your guest operating system “in” a VM. Normally, a VM will be shown as a window on your computer’s desktop, but depending on which of the various frontends of VirtualBox you use, it can be displayed in full screen mode or remotely on another computer. In a more abstract way, internally, VirtualBox thinks of a VM as a set of parameters that determine its behavior. They include hardware settings (how much memory the VM should have, what hard disks VirtualBox should virtualize through which container files, what CDs are mounted etc.) as well as state information (whether the VM is currently running, saved, its snapshots etc.). These settings are mirrored in the VirtualBox Manager window as well as the VBoxManage command line program; see chapter 8, VBoxManage, page 113. In other words, a VM is also what you can see in its settings dialog. Guest Additions. This refers to special software packages which are shipped with VirtualBox but designed to be installed inside a VM to improve performance of the guest OS and to add extra features. This is described in detail in chapter 4, Guest Additions, page 60. 1.3 Features overview Here’s a brief outline of VirtualBox’s main features: • Portability. VirtualBox runs on a large number of 32-bit and 64-bit host operating systems (again, see chapter 1.4, Supported host operating systems, page 15 for details). VirtualBox is a so-called “hosted” hypervisor (sometimes referred to as a “type 2” hypervi- sor). Whereas a “bare-metal” or “type 1” hypervisor would run directly on the hardware, VirtualBox requires an existing operating system to be installed. It can thus run alongside existing applications on that host. To a very large degree, VirtualBox is functionally identical on all of the host platforms, and the same file and image formats are used. This allows you to run virtual machines created on one host on another host with a different host operating system; for example, you can create a virtual machine on Windows and then run it under Linux. In addition, virtual machines can easily be imported and exported using the Open Virtual- ization Format (OVF, see chapter 1.14, Importing and exporting virtual machines, page 31), an industry standard created for this purpose. You can even import OVFs that were created with a different virtualization software. • No hardware virtualization required. For many scenarios, VirtualBox does not require the processor features built into newer hardware like Intel VT-x or AMD-V. As opposed to many other virtualization solutions, you can therefore use VirtualBox even on older hardware where these features are not present. The technical details are explained in chapter 10.3, Hardware vs. software virtualization, page 201. • Guest Additions: shared folders, seamless windows, 3D virtualization. The VirtualBox Guest Additions are software packages which can be installed inside of supported guest systems to improve their performance and to provide additional integration and communi- cation with the host system. After installing the Guest Additions, a virtual machine will sup- port automatic adjustment of video resolutions, seamless windows, accelerated 3D graphics and more. The Guest Additions are described in detail in chapter 4, Guest Additions, page 60., 1 First steps In particular, Guest Additions provide for “shared folders”, which let you access files from the host system from within a guest machine. Shared folders are described in chapter 4.3, Shared folders, page 70. • Great hardware support. Among others, VirtualBox supports: – Guest multiprocessing (SMP). VirtualBox can present up to 32 virtual CPUs to each virtual machine, irrespective of how many CPU cores are physically present on your host. – USB device support. VirtualBox implements a virtual USB controller and allows you to connect arbitrary USB devices to your virtual machines without having to install device-specific drivers on the host. USB support is not limited to certain device cate- gories. For details, see chapter 3.10.1, USB settings, page 56. – Hardware compatibility. VirtualBox virtualizes a vast array of virtual devices, among them many devices that are typically provided by other virtualization platforms. That includes IDE, SCSI and SATA hard disk controllers, several virtual network cards and sound cards, virtual serial and parallel ports and an Input/Output Advanced Pro- grammable Interrupt Controller (I/O APIC), which is found in many modern PC sys- tems. This eases cloning of PC images from real machines and importing of third-party virtual machines into VirtualBox. – Full ACPI support. The Advanced Configuration and Power Interface (ACPI) is fully supported by VirtualBox. This eases cloning of PC images from real machines or third- party virtual machines into VirtualBox. With its unique ACPI power status support, VirtualBox can even report to ACPI-aware guest operating systems the power status of the host. For mobile systems running on battery, the guest can thus enable energy saving and notify the user of the remaining power (e.g. in full screen modes). – Multiscreen resolutions. VirtualBox virtual machines support screen resolutions many times that of a physical screen, allowing them to be spread over a large number of screens attached to the host system. – Built-in iSCSI support. This unique feature allows you to connect a virtual machine directly to an iSCSI storage server without going through the host system. The VM accesses the iSCSI target directly without the extra overhead that is required for virtu- alizing hard disks in container files. For details, see chapter 5.10, iSCSI servers, page 91. – PXE Network boot. The integrated virtual network cards of VirtualBox fully support remote booting via the Preboot Execution Environment (PXE). • Multigeneration branched snapshots. VirtualBox can save arbitrary snapshots of the state of the virtual machine. You can go back in time and revert the virtual machine to any such snapshot and start an alternative VM configuration from there, effectively creating a whole snapshot tree. For details, see chapter 1.10, Snapshots, page 27. You can create and delete snapshots while the virtual machine is running. • VM groups. VirtualBox provides a groups feature that enables the user to organize virtual machines collectively, as well as individually. In addition to basic groups, it is also possible for any VM to be in more than one group, and for groups to be nested in a hierarchy – i.e. groups of groups. In general, the operations that can be performed on groups are the same as those that can be applied to individual VMs i.e. Start, Pause, Reset, Close (Save state, Send Shutdown, Poweroff), Discard Saved State, Show in fileSystem, Sort. • Clean architecture; unprecedented modularity. VirtualBox has an extremely modular design with well-defined internal programming interfaces and a clean separation of client and server code. This makes it easy to control it from several interfaces at once: for example, you can start a VM simply by clicking on a button in the VirtualBox graphical, 1 First steps user interface and then control that machine from the command line, or even remotely. See chapter 1.16, Alternative front-ends, page 33 for details. Due to its modular architecture, VirtualBox can also expose its full functionality and con- figurability through a comprehensive software development kit (SDK), which allows for integrating every aspect of VirtualBox with other software systems. Please see chapter 11, VirtualBox programming interfaces, page 207 for details. • Remote machine display. The VirtualBox Remote Desktop Extension (VRDE) allows for high-performance remote access to any running virtual machine. This extension supports the Remote Desktop Protocol (RDP) originally built into Microsoft Windows, with special additions for full client USB support. The VRDE does not rely on the RDP server that is built into Microsoft Windows; instead, it is plugged directly into the virtualization layer. As a result, it works with guest operating systems other than Windows (even in text mode) and does not require application support in the virtual machine either. The VRDE is described in detail in chapter 7.1, Remote display (VRDP support), page 103. On top of this special capacity, VirtualBox offers you more unique features: – Extensible RDP authentication. VirtualBox already supports Winlogon on Windows and PAM on Linux for RDP authentication. In addition, it includes an easy-to-use SDK which allows you to create arbitrary interfaces for other methods of authentication; see chapter 7.1.5, RDP authentication, page 107 for details. – USB over RDP. Via RDP virtual channel support, VirtualBox also allows you to connect arbitrary USB devices locally to a virtual machine which is running remotely on a VirtualBox RDP server; see chapter 7.1.4, Remote USB, page 107 for details. 1.4 Supported host operating systems Currently, VirtualBox runs on the following host operating systems: • Windows hosts: – Windows XP, all service packs (32-bit) – Windows Server 2003 (32-bit) – Windows Vista (32-bit and 64-bit1). – Windows Server 2008 (32-bit and 64-bit) – Windows 7 (32-bit and 64-bit) – Windows 8 (32-bit and 64-bit) – Windows Server 2012 (64-bit) • Mac OS X hosts:2 – 10.6 (Snow Leopard, 32-bit and 64-bit) – 10.7 (Lion, 32-bit and 64-bit) – 10.8 (Mountain Lion, 64-bit) – 10.9 (Mavericks, 64-bit) Intel hardware is required; please see chapter 14, Known limitations, page 228 also. 1Support for 64-bit Windows was added with VirtualBox 1.5. 2Preliminary Mac OS X support (beta stage) was added with VirtualBox 1.4, full support with 1.6. Mac OS X 10.4 (Tiger) support was removed with VirtualBox 3.1., 1 First steps • Linux hosts (32-bit and 64-bit3). Among others, this includes: – 10.04 (“Lucid Lynx”), 10.10 (“Maverick Meerkat), 11.04 (“Natty Narwhal”), 11.10 (“Oneiric Oncelot”), 12.04 (“Precise Pangolin”), 12.10 (“Quantal Quetzal”), 13.04 (“Raring Ringtail”), 13.10 (“Saucy Salamander”) – Debian GNU/Linux 6.0 (“squeeze”) and 7.0 (“wheezy”) – Oracle Enterprise Linux 5, Oracle Linux 6 – Redhat Enterprise Linux 5 and 6 – Fedora Core 6 to 19 – Gentoo Linux – openSUSE 11.0, 11.1, 11.2, 11.3, 11.4, 12.1, 12.2 – Mandriva 2010 and 2011 It should be possible to use VirtualBox on most systems based on Linux kernel 2.6 or 3.x using either the VirtualBox installer or by doing a manual installation; see chapter 2.3, Installing on Linux hosts, page 37. However, the formally tested and supported Linux distributions are those for which we offer a dedicated package. Note that starting with VirtualBox 2.1, Linux 2.4-based host operating systems are no longer supported. • Solaris hosts (64-bit only) are supported with the restrictions listed in chapter 14, Known limitations, page 228: – Solaris 11 including Solaris 11 Express – Solaris 10 (u8 and higher) Note that the above list is informal. Oracle support for customers who have a support contract is limited to a subset of the listed host operating systems. Also, any feature which is marked as experimental is not supported. Feedback and suggestions about such features are welcome. 1.5 Installing VirtualBox and extension packs VirtualBox comes in many different packages, and installation depends on your host operating system. If you have installed software before, installation should be straightforward: on each host platform, VirtualBox uses the installation method that is most common and easy to use. If you run into trouble or have special requirements, please refer to chapter 2, Installation details, page 35 for details about the various installation methods. Starting with version 4.0, VirtualBox is split into several components. 1. The base package consists of all open-source components and is licensed under the GNU General Public License V2. 2. Additional extension packs can be downloaded which extend the functionality of the VirtualBox base package. Currently, Oracle provides the one extension pack, which can be found at http://www.virtualbox.org and provides the following added functional- ity: a) The virtual USB 2.0 (EHCI) device; see chapter 3.10.1, USB settings, page 56. b) VirtualBox Remote Desktop Protocol (VRDP) support; see chapter 7.1, Remote display (VRDP support), page 103. 3Support for 64-bit Linux was added with VirtualBox 1.4., 1 First steps c) Host webcam passthrough; see chapter chapter 9.7.1, Using a host webcam in the guest, page 168. d) Intel PXE boot ROM. e) Experimental support for PCI passthrough on Linux hosts; see chapter 9.6, PCI passthrough, page 167. VirtualBox extension packages have a .vbox-extpack file name extension. To install an extension, simply double-click on the package file and a Network Operations Manager window will appear, guiding you through the required steps. To view the extension packs that are currently installed, please start the VirtualBox Man- ager (see the next section). From the “File” menu, please select “Preferences”. In the window that shows up, go to the “Extensions” category which shows you the extensions which are currently installed and allows you to remove a package or add a new one. Alternatively you can use VBoxManage on the command line: see chapter 8.36, VBoxMan- age extpack, page 157 for details. 1.6 Starting VirtualBox After installation, you can start VirtualBox as follows: • On a Windows host, in the standard “Programs” menu, click on the item in the “VirtualBox” group. On Vista or Windows 7, you can also type “VirtualBox” in the search box of the “Start” menu. • On a Mac OS X host, in the Finder, double-click on the “VirtualBox” item in the “Applica- tions” folder. (You may want to drag this item onto your Dock.) • On a Linux or Solaris host, depending on your desktop environment, a “VirtualBox” item may have been placed in either the “System” or “System Tools” group of your “Applications” menu. Alternatively, you can type VirtualBox in a terminal. When you start VirtualBox for the first time, a window like the following should come up:, 1 First steps This window is called the “VirtualBox Manager”. On the left, you can see a pane that will later list all your virtual machines. Since you have not created any, the list is empty. A row of buttons above it allows you to create new VMs and work on existing VMs, once you have some. The pane on the right displays the properties of the virtual machine currently selected, if any. Again, since you don’t have any machines yet, the pane displays a welcome message. To give you an idea what VirtualBox might look like later, after you have created many ma- chines, here’s another example: 1.7 Creating your first virtual machine Click on the “New” button at the top of the VirtualBox Manager window. A wizard will pop up to guide you through setting up a new virtual machine (VM): On the following pages, the wizard will ask you for the bare minimum of information that is needed to create a VM, in particular: 1. The VM name will later be shown in the VM list of the VirtualBox Manager window, and it will be used for the VM’s files on disk. Even though any name could be used, keep in, 1 First steps mind that once you have created a few VMs, you will appreciate if you have given your VMs rather informative names; “My VM” would thus be less useful than “Windows XP SP2 with OpenOffice”. 2. For “Operating System Type”, select the operating system that you want to install later. The supported operating systems are grouped; if you want to install something very un- usual that is not listed, select “Other”. Depending on your selection, VirtualBox will enable or disable certain VM settings that your guest operating system may require. This is partic- ularly important for 64-bit guests (see chapter 3.1.2, 64-bit guests, page 46). It is therefore recommended to always set it to the correct value. 3. On the next page, select the memory (RAM) that VirtualBox should allocate every time the virtual machine is started. The amount of memory given here will be taken away from your host machine and presented to the guest operating system, which will report this size as the (virtual) computer’s installed RAM. Note: Choose this setting carefully! The memory you give to the VM will not be available to your host OS while the VM is running, so do not specify more than you can spare. For example, if your host machine has 1 GB of RAM and you enter 512 MB as the amount of RAM for a particular virtual machine, while that VM is running, you will only have 512 MB left for all the other software on your host. If you run two VMs at the same time, even more memory will be allocated for the second VM (which may not even be able to start if that memory is not available). On the other hand, you should specify as much as your guest OS (and your applications) will require to run properly. A Windows XP guest will require at least a few hundred MB RAM to run properly, and Windows Vista will even refuse to install with less than 512 MB. Of course, if you want to run graphics-intensive applications in your VM, you may require even more RAM. So, as a rule of thumb, if you have 1 GB of RAM or more in your host computer, it is usually safe to allocate 512 MB to each VM. But, in any case, make sure you always have at least 256 to 512 MB of RAM left on your host operating system. Otherwise you may cause your host OS to excessively swap out memory to your hard disk, effectively bringing your host system to a standstill. As with the other settings, you can change this setting later, after you have created the VM. 4. Next, you must specify a virtual hard disk for your VM. There are many and potentially complicated ways in which VirtualBox can provide hard disk space to a VM (see chapter 5, Virtual storage, page 80 for details), but the most common way is to use a large image file on your “real” hard disk, whose contents VirtualBox presents to your VM as if it were a complete hard disk. This file represents an entire hard disk then, so you can even copy it to another host and use it with another VirtualBox installation. The wizard shows you the following window:, 1 First steps Here you have the following options: • To create a new, empty virtual hard disk, press the “New” button. • You can pick an existing disk image file. The drop-down list presented in the window contains all disk images which are cur- rently remembered by VirtualBox, probably because they are currently attached to a virtual machine (or have been in the past). Alternatively, you can click on the small folder button next to the drop-down list to bring up a standard file dialog, which allows you to pick any disk image file on your host disk. Most probably, if you are using VirtualBox for the first time, you will want to create a new disk image. Hence, press the “New” button. This brings up another window, the “Create New Virtual Disk Wizard”, which helps you create a new disk image file in the new virtual machine’s folder. VirtualBox supports two types of image files: • A dynamically allocated file will only grow in size when the guest actually stores data on its virtual hard disk. It will therefore initially be small on the host hard drive and only later grow to the size specified as it is filled with data. • A fixed-size file will immediately occupy the file specified, even if only a fraction of the virtual hard disk space is actually in use. While occupying much more space, a fixed-size file incurs less overhead and is therefore slightly faster than a dynamically allocated file. For details about the differences, please refer to chapter 5.2, Disk image files (VDI, VMDK, VHD, HDD), page 82. To prevent your physical hard disk from running full, VirtualBox limits the size of the image file. Still, it needs to be large enough to hold the contents of your operating system and the applications you want to install – for a modern Windows or Linux guest, you will probably need several gigabytes for any serious use:, 1 First steps After having selected or created your image file, again press “Next” to go to the next page. 5. After clicking on “Finish”, your new virtual machine will be created. You will then see it in the list on the left side of the Manager window, with the name you entered initially. Note: After becoming familiar with the use of wizards, consider using the Expert Mode available in some wizards. Where available, this is selectable using a button, and speeds up user processes using wizards. 1.8 Running your virtual machine To start a virtual machine, you have several options: • Double-click on its entry in the list within the Manager window or • select its entry in the list in the Manager window it and press the “Start” button at the top or • for virtual machines created with VirtualBox 4.0 or later, navigate to the “VirtualBox VMs” folder in your system user’s home directory, find the subdirectory of the machine you want to start and double-click on the machine settings file (with a .vbox file extension). This opens up a new window, and the virtual machine which you selected will boot up. Every- thing which would normally be seen on the virtual system’s monitor is shown in the window, as can be seen with the image in chapter 1.2, Some terminology, page 12. In general, you can use the virtual machine much like you would use a real computer. There are couple of points worth mentioning however. 1.8.1 Starting a new VM for the first time When a VM gets started for the first time, another wizard – the “First Start Wizard” – will pop up to help you select an installation medium. Since the VM is created empty, it would otherwise behave just like a real computer with no operating system installed: it will do nothing and display an error message that no bootable operating system was found. For this reason, the wizard helps you select a medium to install an operating system from., 1 First steps • If you have physical CD or DVD media from which you want to install your guest operating system (e.g. in the case of a Windows installation CD or DVD), put the media into your host’s CD or DVD drive. Then, in the wizard’s drop-down list of installation media, select “Host drive” with the correct drive letter (or, in the case of a Linux host, device file). This will allow your VM to access the media in your host drive, and you can proceed to install from there. • If you have downloaded installation media from the Internet in the form of an ISO image file (most probably in the case of a Linux distribution), you would normally burn this file to an empty CD or DVD and proceed as just described. With VirtualBox however, you can skip this step and mount the ISO file directly. VirtualBox will then present this file as a CD or DVD-ROM drive to the virtual machine, much like it does with virtual hard disk images. For this case, the wizard’s drop-down list contains a list of installation media that were previously used with VirtualBox. If your medium is not in the list (especially if you are using VirtualBox for the first time), select the small folder icon next to the drop-down list to bring up a standard file dialog, with which you can pick the image file on your host disks. In both cases, after making the choices in the wizard, you will be able to install your operating system. 1.8.2 Capturing and releasing keyboard and mouse As of version 3.2, VirtualBox provides a virtual USB tablet device to new virtual machines through which mouse events are communicated to the guest operating system. As a result, if you are running a modern guest operating system that can handle such devices, mouse support may work out of the box without the mouse being “captured” as described below; see chapter 3.4.1, “Motherboard” tab, page 49 for more information. Otherwise, if the virtual machine only sees standard PS/2 mouse and keyboard devices, since the operating system in the virtual machine does not “know” that it is not running on a real computer, it expects to have exclusive control over your keyboard and mouse. This is, however, not the case since, unless you are running the VM in full screen mode, your VM needs to share keyboard and mouse with other applications and possibly other VMs on your host. As a result, initially after installing a guest operating system and before you install the Guest Additions (we will explain this in a minute), only one of the two – your VM or the rest of your computer – can “own” the keyboard and the mouse. You will see a second mouse pointer which will always be confined to the limits of the VM window. Basically, you activate the VM by clicking inside it. To return ownership of keyboard and mouse to your host operating system, VirtualBox reserves a special key on your keyboard for itself: the “host key”. By default, this is the right Control key on your keyboard; on a Mac host, the default host key is the left Command key. You can change this default in the VirtualBox Global Settings, see chapter 1.15, Global Settings, page 33. In any case, the current setting for the host key is always displayed at the bottom right of your VM window, should you have forgotten about it:, 1 First steps In detail, all this translates into the following: • Your keyboard is owned by the VM if the VM window on your host desktop has the key- board focus (and then, if you have many windows open in your guest operating system as well, the window that has the focus in your VM). This means that if you want to type within your VM, click on the title bar of your VM window first. To release keyboard ownership, press the Host key (as explained above, typically the right Control key). Note that while the VM owns the keyboard, some key sequences (like Alt-Tab for example) will no longer be seen by the host, but will go to the guest instead. After you press the host key to re-enable the host keyboard, all key presses will go through the host again, so that sequences like Alt-Tab will no longer reach the guest. For technical reasons it may not be possible for the VM to get all keyboard input even when it does own the keyboard. Examples of this are the Ctrl-Alt-Del sequence on Windows hosts or single keys grabbed by other applications on X11 hosts like the GNOME desktop’s “Control key highlights mouse pointer” functionality. • Your mouse is owned by the VM only after you have clicked in the VM window. The host mouse pointer will disappear, and your mouse will drive the guest’s pointer instead of your normal mouse pointer. Note that mouse ownership is independent of that of the keyboard: even after you have clicked on a titlebar to be able to type into the VM window, your mouse is not necessarily owned by the VM yet. To release ownership of your mouse by the VM, also press the Host key. As this behavior can be inconvenient, VirtualBox provides a set of tools and device drivers for guest systems called the “VirtualBox Guest Additions” which make VM keyboard and mouse operation a lot more seamless. Most importantly, the Additions will get rid of the second “guest” mouse pointer and make your host mouse pointer work directly in the guest. This will be described later in chapter 4, Guest Additions, page 60. 1.8.3 Typing special characters Operating systems expect certain key combinations to initiate certain procedures. Some of these key combinations may be difficult to enter into a virtual machine, as there are three candidates as to who receives keyboard input: the host operating system, VirtualBox, or the guest operating system. Who of these three receives keypresses depends on a number of factors, including the key itself. • Host operating systems reserve certain key combinations for themselves. For example, it is impossible to enter the Ctrl+Alt+Delete combination if you want to reboot the guest, 1 First steps operating system in your virtual machine, because this key combination is usually hard- wired into the host OS (both Windows and Linux intercept this), and pressing this key combination will therefore reboot your host. Also, on Linux and Solaris hosts, which use the X Window System, the key combination Ctrl+Alt+Backspace normally resets the X server (to restart the entire graphical user interface in case it got stuck). As the X server intercepts this combination, pressing it will usually restart your host graphical user interface (and kill all running programs, including VirtualBox, in the process). Third, on Linux hosts supporting virtual terminals, the key combination Ctrl+Alt+Fx (where Fx is one of the function keys from F1 to F12) normally allows to switch between virtual terminals. As with Ctrl+Alt+Delete, these combinations are intercepted by the host operating system and therefore always switch terminals on the host. If, instead, you want to send these key combinations to the guest operating system in the virtual machine, you will need to use one of the following methods: – Use the items in the “Machine” menu of the virtual machine window. There you will find “Insert Ctrl+Alt+Delete” and “Ctrl+Alt+Backspace”; the latter will only have an effect with Linux or Solaris guests, however. – Press special key combinations with the Host key (normally the right Control key), which VirtualBox will then translate for the virtual machine: ∗ Host key + Del to send Ctrl+Alt+Del (to reboot the guest); ∗ Host key + Backspace to send Ctrl+Alt+Backspace (to restart the graphical user interface of a Linux or Solaris guest); ∗ Host key + F1 (or other function keys) to simulate Ctrl+Alt+F1 (or other func- tion keys, i.e. to switch between virtual terminals in a Linux guest). • For some other keyboard combinations such as Alt-Tab (to switch between open windows), VirtualBox allows you to configure whether these combinations will affect the host or the guest, if a virtual machine currently has the focus. This is a global setting for all virtual machines and can be found under “File” -> “Preferences” -> “Input” -> “Auto-capture keyboard”. 1.8.4 Changing removable media While a virtual machine is running, you can change removable media in the “Devices” menu of the VM’s window. Here you can select in detail what VirtualBox presents to your VM as a CD, DVD, or floppy. The settings are the same as would be available for the VM in the “Settings” dialog of the VirtualBox main window, but since that dialog is disabled while the VM is in the “running” or “saved” state, this extra menu saves you from having to shut down and restart the VM every time you want to change media. Hence, in the “Devices” menu, VirtualBox allows you to attach the host drive to the guest or select a floppy or DVD image using the Disk Image Manager, all as described in chapter 1.11, Virtual machine configuration, page 30. 1.8.5 Resizing the machine’s window You can resize the virtual machine’s window when it is running. In that case, one of three things will happen: 1. If you have “scale mode” enabled, then the virtual machine’s screen will be scaled to the size of the window. This can be useful if you have many machines running and want to, 1 First steps have a look at one of them while it is running in the background. Alternatively, it might be useful to enlarge a window if the VM’s output screen is very small, for example because you are running an old operating system in it. To enable scale mode, press the host key + C, or select “Scale mode” from the “Machine” menu in the VM window. To leave scale mode, press the host key + C again. The aspect ratio of the guest screen is preserved when resizing the window. To ignore the aspect ratio, press Shift during the resize operation. Please see chapter 14, Known limitations, page 228 for additional remarks. 2. If you have the Guest Additions installed and they support automatic resizing, the Guest Additions will automatically adjust the screen resolution of the guest operating system. For example, if you are running a Windows guest with a resolution of 1024x768 pixels and you then resize the VM window to make it 100 pixels wider, the Guest Additions will change the Windows display resolution to 1124x768. Please see chapter 4, Guest Additions, page 60 for more information about the Guest Addi- tions. 3. Otherwise, if the window is bigger than the VM’s screen, the screen will be centered. If it is smaller, then scroll bars will be added to the machine window. 1.8.6 Saving the state of the machine When you click on the “Close” button of your virtual machine window (at the top right of the win- dow, just like you would close any other window on your system), VirtualBox asks you whether you want to “save” or “power off” the VM. (As a shortcut, you can also press the Host key together with “Q”.) The difference between these three options is crucial. They mean: • Save the machine state: With this option, VirtualBox “freezes” the virtual machine by completely saving its state to your local disk. When you start the VM again later, you will find that the VM continues exactly where it was left off. All your programs will still be open, and your computer resumes operation. Saving the state of a virtual machine is thus in some ways similar to suspending a laptop computer (e.g. by closing its lid). • Send the shutdown signal. This will send an ACPI shutdown signal to the virtual machine, which has the same effect as if you had pressed the power button on a real computer. So long as the VM is running a fairly modern operating system, this should trigger a proper shutdown mechanism from within the VM. • Power off the machine: With this option, VirtualBox also stops running the virtual ma- chine, but without saving its state., 1 First steps Warning: This is equivalent to pulling the power plug on a real computer without shutting it down properly. If you start the machine again after powering it off, your operating system will have to reboot completely and may begin a lengthy check of its (virtual) system disks. As a result, this should not normally be done, since it can potentially cause data loss or an inconsistent state of the guest system on disk. As an exception, if your virtual machine has any snapshots (see the next chapter), you can use this option to quickly restore the current snapshot of the virtual machine. In that case, powering off the machine will not disrupt its state, but any changes made since that snapshot was taken will be lost. The “Discard” button in the VirtualBox Manager window discards a virtual machine’s saved state. This has the same effect as powering it off, and the same warnings apply. 1.9 Using VM groups VM groups enable the user to create ad hoc groups of VMs, and to manage and perform functions on them collectively, as well as individually. There are a number of features relating to groups: 1. Create a group using GUI option 1) Drag one VM on top of another VM. Create a group using GUI option 2) Select multiple VMs and select “Group” on the right click menu, as follows: 2. Command line option 1) Create group and assign VM: VBoxManage modifyvm "Fred" -groups "/TestGroup" Command line option 2) Detach VM from group, and delete group if empty: VBoxManage modifyvm "Fred" -groups "" 3. Multiple groups e.g.: VBoxManage modifyvm "Fred" -groups "/TestGroup,/TestGroup2", 1 First steps 4. Nested groups – hierarchy of groups e.g.: VBoxManage modifyvm "Fred" -groups "/TestGroup/TestGroup2" 5. Summary of group commands: Start, Pause, Reset, Close (save state, send shutdown signal, poweroff), Discard Saved State, Show in File System, Sort. 1.10 Snapshots With snapshots, you can save a particular state of a virtual machine for later use. At any later time, you can revert to that state, even though you may have changed the VM considerably since then. A snapshot of a virtual machine is thus similar to a machine in “saved” state, as described above, but there can be many of them, and these saved states are preserved. You can see the snapshots of a virtual machine by first selecting a machine in the VirtualBox Manager and then clicking on the “Snapshots” button at the top right. Until you take a snapshot of the machine, the list of snapshots will be empty except for the “Current state” item, which represents the “Now” point in the lifetime of the virtual machine. 1.10.1 Taking, restoring and deleting snapshots There are three operations related to snapshots: 1. You can take a snapshot. This makes a copy of the machine’s current state, to which you can go back at any given time later. • If your VM is currently running, select “Take snapshot” from the “Machine” pull-down menu of the VM window. • If your VM is currently in either the “saved” or the “powered off” state (as displayed next to the VM in the VirtualBox main window), click on the “Snapshots” tab on the top right of the main window, and then – either on the small camera icon (for “Take snapshot”) or – right-click on the “Current State” item in the list and select “Take snapshot” from the menu. In any case, a window will pop up and ask you for a snapshot name. This name is purely for reference purposes to help you remember the state of the snapshot. For example, a useful name would be “Fresh installation from scratch, no Guest Additions”, or “Service Pack 3 just installed”. You can also add a longer text in the “Description” field if you want. Your new snapshot will then appear in the snapshots list. Underneath your new snapshot, you will see an item called “Current state”, signifying that the current state of your VM is a variation based on the snapshot you took earlier. If you later take another snapshot, you will see that they will be displayed in sequence, and each subsequent snapshot is derived from an earlier one:, 1 First steps VirtualBox imposes no limits on the number of snapshots you can take. The only practical limitation is disk space on your host: each snapshot stores the state of the virtual machine and thus occupies some disk space. (See the next section for details on what exactly is stored in a snapshot.) 2. You can restore a snapshot by right-clicking on any snapshot you have taken in the list of snapshots. By restoring a snapshot, you go back (or forward) in time: the current state of the machine is lost, and the machine is restored to the exact state it was in when the snapshot was taken.4 Note: Restoring a snapshot will affect the virtual hard drives that are connected to your VM, as the entire state of the virtual hard drive will be reverted as well. This means also that all files that have been created since the snapshot and all other file changes will be lost. In order to prevent such data loss while still making use of the snapshot feature, it is possible to add a second hard drive in “write-through” mode using the VBoxManage interface and use it to store your data. As write-through hard drives are not included in snapshots, they remain unaltered when a machine is reverted. See chapter 5.4, Special image write modes, page 85 for details. To avoid losing the current state when restoring a snapshot, you can create a new snapshot before the restore. By restoring an earlier snapshot and taking more snapshots from there, it is even possible to create a kind of alternate reality and to switch between these different histories of the virtual machine. This can result in a whole tree of virtual machine snapshots, as shown in the screenshot above. 3. You can also delete a snapshot, which will not affect the state of the virtual machine, but only release the files on disk that VirtualBox used to store the snapshot data, thus freeing 4Both the terminology and the functionality of restoring snapshots has changed with VirtualBox 3.1. Before that version, it was only possible to go back to the very last snapshot taken – not earlier ones, and the operation was called “Discard current state” instead of “Restore last snapshot”. The limitation has been lifted with version 3.1. It is now possible to restore any snapshot, going backward and forward in time., 1 First steps disk space. To delete a snapshot, right-click on it in the snapshots tree and select “Delete”. As of VirtualBox 3.2, snapshots can be deleted even while a machine is running. Note: Whereas taking and restoring snapshots are fairly quick operations, deleting a snapshot can take a considerable amount of time since large amounts of data may need to be copied between several disk image files. Temporary disk files may also need large amounts of disk space while the operation is in progress. There are some situations which cannot be handled while a VM is running, and you will get an appropriate message that you need to perform this snapshot deletion when the VM is shut down. 1.10.2 Snapshot contents Think of a snapshot as a point in time that you have preserved. More formally, a snapshot consists of three things: • It contains a complete copy of the VM settings, including the hardware configuration, so that when you restore a snapshot, the VM settings are restored as well. (For example, if you changed the hard disk configuration or the VM’s system settings, that change is undone when you restore the snapshot.) The copy of the settings is stored in the machine configuration, an XML text file, and thus occupies very little space. • The complete state of all the virtual disks attached to the machine is preserved. Going back to a snapshot means that all changes that had been made to the machine’s disks – file by file, bit by bit – will be undone as well. Files that were since created will disappear, files that were deleted will be restored, changes to files will be reverted. (Strictly speaking, this is only true for virtual hard disks in “normal” mode. As mentioned above, you can configure disks to behave differently with snapshots; see chapter 5.4, Special image write modes, page 85. Even more formally and technically correct, it is not the virtual disk itself that is restored when a snapshot is restored. Instead, when a snapshot is taken, VirtualBox creates differencing images which contain only the changes since the snapshot were taken, and when the snapshot is restored, VirtualBox throws away that differencing image, thus going back to the previous state. This is both faster and uses less disk space. For the details, which can be complex, please see chapter 5.5, Differencing images, page 86.) Creating the differencing image as such does not occupy much space on the host disk initially, since the differencing image will initially be empty (and grow dynamically later with each write operation to the disk). The longer you use the machine after having created the snapshot, however, the more the differencing image will grow in size. • Finally, if you took a snapshot while the machine was running, the memory state of the machine is also saved in the snapshot (the same way the memory can be saved when you close the VM window). When you restore such a snapshot, execution resumes at exactly the point when the snapshot was taken. The memory state file can be as large as the memory size of the virtual machine and will therefore occupy quite some disk space as well., 1 First steps 1.11 Virtual machine configuration When you select a virtual machine from the list in the Manager window, you will see a summary of that machine’s settings on the right. Clicking on the “Settings” button in the toolbar at the top brings up a detailed window where you can configure many of the properties of the selected VM. But be careful: even though it is possible to change all VM settings after installing a guest operating system, certain changes might prevent a guest operating system from functioning correctly if done after installation. Note: The “Settings” button is disabled while a VM is either in the “running” or “saved” state. This is simply because the settings dialog allows you to change fundamental characteristics of the virtual computer that is created for your guest operating system, and this operating system may not take it well when, for example, half of its memory is taken away from under its feet. As a result, if the “Settings” button is disabled, shut down the current VM first. VirtualBox provides a plethora of parameters that can be changed for a virtual machine. The various settings that can be changed in the “Settings” window are described in detail in chapter 3, Configuring virtual machines, page 45. Even more parameters are available with the VirtualBox command line interface; see chapter 8, VBoxManage, page 113. 1.12 Removing virtual machines To remove a virtual machine which you no longer need, right-click on it in the Manager’s VM list select “Remove” from the context menu that comes up. A confirmation window will come up that allows you to select whether the machine should only be removed from the list of machines or whether the files associated with it should also be deleted. The “Remove” menu item is disabled while a machine is running. 1.13 Cloning virtual machines To experiment with a VM configuration, test different guest OS levels or to simply backup a VM, VirtualBox can create a full or a linked copy of an existing VM.5 A wizard will guide you through the clone process: 5Cloning support was introduced with VirtualBox 4.1., 1 First steps This wizard can be invoked from the context menu of the Manager’s VM list (select “Clone”) or the “Snapshots” view of the selected VM. First choose a new name for the clone. When you select Reinitialize the MAC address of all network cards every network card get a new MAC address assigned. This is useful when both, the source VM and the cloned VM, have to operate on the same network. If you leave this unchanged, all network cards have the same MAC address like the one in the source VM. Depending on how you invoke the wizard you have different choices for the cloning operation. First you need to decide if the clone should be linked to the source VM or a fully independent clone should be created: • Full clone: In this mode all depending disk images are copied to the new VM folder. The clone can fully operate without the source VM. • Linked clone: In this mode new differencing disk images are created where the parent disk images are the source disk images. If you selected the current state of the source VM as clone point, a new snapshot will be created implicitly. After selecting the clone mode, you need to decide about what exactly should be cloned. You can always create a clone of the current state only or all. When you select all, the current state and in addition all snapshots are cloned. Have you started from a snapshot which has additional children, you can also clone the current state and all children. This creates a clone starting with this snapshot and includes all child snaphots. The clone operation itself can be a lengthy operation depending on the size and count of the attached disk images. Also keep in mind that every snapshot has differencing disk images attached, which need to be cloned as well. The “Clone” menu item is disabled while a machine is running. For how to clone a VM at the command line, please see chapter 8.9, VBoxManage clonevm, page 132. 1.14 Importing and exporting virtual machines VirtualBox can import and export virtual machines in the industry-standard Open Virtualization Format (OVF).6 OVF is a cross-platform standard supported by many virtualization products which allows for creating ready-made virtual machines that can then be imported into a virtualizer such as 6OVF support was originally introduced with VirtualBox 2.2 and has seen major improvements with every version since., 1 First steps VirtualBox. VirtualBox makes OVF import and export easy to access and supports it from the Manager window as well as its command-line interface. This allows for packaging so-called virtual appliances: disk images together with configuration settings that can be distributed easily. This way one can offer complete ready-to-use software packages (operating systems with applications) that need no configuration or installation except for importing into VirtualBox. Note: The OVF standard is complex, and support in VirtualBox is an ongoing process. In particular, no guarantee is made that VirtualBox supports all appliances created by other virtualization software. For a list of known limitations, please see chapter 14, Known limitations, page 228. Appliances in OVF format can appear in two variants: 1. They can come in several files, as one or several disk images, typically in the widely-used VMDK format (see chapter 5.2, Disk image files (VDI, VMDK, VHD, HDD), page 82) and a textual description file in an XML dialect with an .ovf extension. These files must then reside in the same directory for VirtualBox to be able to import them. 2. Alternatively, the above files can be packed together into a single archive file, typically with an .ova extension. (Such archive files use a variant of the TAR archive format and can therefore be unpacked outside of VirtualBox with any utility that can unpack standard TAR files.) To import an appliance in one of the above formats, simply double-click on the OVF/OVA file.7 Alternatively, select “File” -> “Import appliance” from the Manager window. In the file dialog that comes up, navigate to the file with either the .ovf or the .ova file extension. If VirtualBox can handle the file, a dialog similar to the following will appear: 7Starting with version 4.0, VirtualBox creates file type associations for OVF and OVA files on your host operating system., 1 First steps This presents the virtual machines described in the OVF file and allows you to change the vir- tual machine settings by double-clicking on the description items. Once you click on “Import”, VirtualBox will copy the disk images and create local virtual machines with the settings described in the dialog. These will then show up in the Manager’s list of virtual machines. Note that since disk images tend to be big, and VMDK images that come with virtual appliances are typically shipped in a special compressed format that is unsuitable for being used by virtual machines directly, the images will need to be unpacked and copied first, which can take a few minutes. For how to import an image at the command line, please see chapter 8.10, VBoxManage import, page 132. Conversely, to export virtual machines that you already have in VirtualBox, select “File” -> “Export appliance”. A different dialog window shows up that allows you to combine several virtual machines into an OVF appliance. Then, select the target location where the target files should be stored, and the conversion process begins. This can again take a while. For how to export an image at the command line, please see chapter 8.11, VBoxManage export, page 133. Note: OVF cannot describe snapshots that were taken for a virtual machine. As a result, when you export a virtual machine that has snapshots, only the current state of the machine will be exported, and the disk images in the export will have a “flattened” state identical to the current state of the virtual machine. 1.15 Global Settings The global settings dialog can be reached through the File menu, selecting the Preferences... item. It offers a selection of settings which apply to all virtual machines of the current user or in the case of Extensions to the entire system: 1. General Enables the user to specify the default folder/directory for VM files, and the VRDP Authentication Library. 2. Input Enables the user to specify the Host Key. It identifies the key that toggles whether the cursor is in the focus of the VM or the Host operating system windows (see chapter 1.8.2, Capturing and releasing keyboard and mouse, page 22) and which is also used to trigger certain VM actions (see chapter 1.8.3, Typing special characters, page 23) 3. Update Enables the user to specify various settings for Automatic Updates. 4. Language Enables the user to specify the GUI language. 5. Display Enables the user to specify the screen resolution, and its width and height. 6. Network Enables the user to configure the details of Host Only Networks. 7. Extensions Enables the user to list and manage the installed extension packages. 8. Proxy Enables the user to configure a HTTP Proxy Server. 1.16 Alternative front-ends As briefly mentioned in chapter 1.3, Features overview, page 13, VirtualBox has a very flexible internal design that allows for using multiple interfaces to control the same virtual machines. To illustrate, you can, for example, start a virtual machine with the VirtualBox Manager window, 1 First steps and then stop it from the command line. With VirtualBox’s support for the Remote Desktop Protocol (RDP), you can even run virtual machines remotely on a headless server and have all the graphical output redirected over the network. In detail, the following front-ends are shipped in the standard VirtualBox package: 1. VirtualBox is the VirtualBox Manager. This graphical user interface uses the Qt toolkit; most of this User Manual is dedicated to describing it. While this is the easiest to use, some of the more advanced VirtualBox features are kept away from it to keep it simple. 2. VBoxManage is our command-line interface for automated and very detailed control of every aspect of VirtualBox. It is described in chapter 8, VBoxManage, page 113. 3. VBoxSDL is an alternative, simple graphical front-end with an intentionally limited fea- ture set, designed to only display virtual machines that are controlled in detail with VBoxManage. This is interesting for business environments where displaying all the bells and whistles of the full GUI is not feasible. VBoxSDL is described in chapter 9.1, VBoxSDL, the simplified VM displayer, page 158. 4. Finally, VBoxHeadless is yet another front-end that produces no visible output on the host at all, but merely acts as a RDP server if the VirtualBox Remote Desktop Extension (VRDE) is installed. As opposed to the other graphical interfaces, the headless front-end requires no graphics support. This is useful, for example, if you want to host your virtual machines on a headless Linux server that has no X Window system installed. For details, see chapter 7.1.2, VBoxHeadless, the remote desktop server, page 104. If the above front-ends still do not satisfy your particular needs, it is possible to create yet another front-end to the complex virtualization engine that is the core of VirtualBox, as the VirtualBox core neatly exposes all of its features in a clean API; please refer to chapter 11, VirtualBox programming interfaces, page 207., 2 Installation details As installation of VirtualBox varies depending on your host operating system, we provide instal- lation instructions in four separate chapters for Windows, Mac OS X, Linux and Solaris, respec- tively. 2.1 Installing on Windows hosts 2.1.1 Prerequisites For the various versions of Windows that we support as host operating systems, please refer to chapter 1.4, Supported host operating systems, page 15. In addition, Windows Installer 1.1 or higher must be present on your system. This should be the case if you have all recent Windows updates installed. 2.1.2 Performing the installation The VirtualBox installation can be started • either by double-clicking on its executable file (contains both 32- and 64-bit architectures) • or by entering VirtualBox.exe -extract on the command line. This will extract both installers into a temporary directory in which you’ll then find the usual .MSI files. Then you can do a msiexec /i VirtualBox--MultiArch_.msi to perform the installation. In either case, this will display the installation welcome dialog and allow you to choose where to install VirtualBox to and which components to install. In addition to the VirtualBox applica- tion, the following components are available: USB support This package contains special drivers for your Windows host that VirtualBox re- quires to fully support USB devices inside your virtual machines. Networking This package contains extra networking drivers for your Windows host that VirtualBox needs to support Bridged Networking (to make your VM’s virtual network cards accessible from other machines on your physical network). Python Support This package contains Python scripting support for the VirtualBox API (see chapter 11, VirtualBox programming interfaces, page 207). For this to work, an already working Windows Python installation on the system is required.1 Depending on your Windows configuration, you may see warnings about “unsigned drivers” or similar. Please select “Continue” on these warnings as otherwise VirtualBox might not function correctly after installation. 1See, for example, http://www.python.org/download/windows/., 2 Installation details The installer will create a “VirtualBox” group in the Windows “Start” menu which allows you to launch the application and access its documentation. With standard settings, VirtualBox will be installed for all users on the local system. In case this is not wanted, you have to invoke the installer by first extracting it by using VirtualBox.exe -extract and then do as follows: VirtualBox.exe -msiparams ALLUSERS=2 or msiexec /i VirtualBox--MultiArch_.msi ALLUSERS=2 on the extracted .MSI files. This will install VirtualBox only for the current user. If you do not want to install all features of VirtualBox, you can set the optional ADDLOCAL parameter to explicitly name the features to be installed. The following features are available: VBoxApplication Main binaries of VirtualBox. Note: This feature must not be absent since it contains the minimum set of files to have working VirtualBox installation. VBoxUSB USB support. VBoxNetwork All networking support; includes the VBoxNetworkFlt and VBoxNetworkAdp fea- tures (see below). VBoxNetworkFlt Bridged networking support. VBoxNetworkAdp Host-only networking support. VBoxPython Python support. For example, to only install USB support along with the main binaries, do a: VirtualBox.exe -msiparams ADDLOCAL=VBoxApplication,VBoxUSB or msiexec /i VirtualBox--MultiArch_.msi ADDLOCAL=VBoxApplication,VBoxUSB 2.1.3 Uninstallation As VirtualBox uses the standard Microsoft Windows installer, VirtualBox can be safely uninstalled at any time by choosing the program entry in the “Add/Remove Programs” applet in the Windows Control Panel. 2.1.4 Unattended installation Unattended installations can be performed using the standard MSI support., 2 Installation details 2.2 Installing on Mac OS X hosts 2.2.1 Performing the installation For Mac OS X hosts, VirtualBox ships in a disk image (dmg) file. Perform the following steps: 1. Double-click on that file to have its contents mounted. 2. A window will open telling you to double click on the VirtualBox.mpkg installer file displayed in that window. 3. This will start the installer, which will allow you to select where to install VirtualBox to. After installation, you can find a VirtualBox icon in the “Applications” folder in the Finder. 2.2.2 Uninstallation To uninstall VirtualBox, open the disk image (dmg) file again and double-click on the uninstall icon contained therein. 2.2.3 Unattended installation To perform a non-interactive installation of VirtualBox you can use the command line version of the installer application. Mount the disk image (dmg) file as described in the normal installation. Then open a terminal session and execute: sudo installer -pkg /Volumes/VirtualBox/VirtualBox.mpkg \ -target /Volumes/Macintosh\ HD 2.3 Installing on Linux hosts 2.3.1 Prerequisites For the various versions of Linux that we support as host operating systems, please refer to chapter 1.4, Supported host operating systems, page 15. You will need to install the following packages on your Linux system before starting the instal- lation (some systems will do this for you automatically when you install VirtualBox): • Qt 4.6.2 or higher; • SDL 1.2.7 or higher (this graphics library is typically called libsdl or similar). Note: To be precise, these packages are only required if you want to run the VirtualBox graphical user interfaces. In particular, VirtualBox, the graphical VirtualBox manager, requires both Qt and SDL; VBoxSDL, our simplified GUI, requires only SDL. By contrast, if you only want to run VBoxHeadless, neither Qt nor SDL are required., 2 Installation details 2.3.2 The VirtualBox kernel module VirtualBox uses a special kernel module called vboxdrv to perform physical memory allocation and to gain control of the processor for guest system execution. Without this kernel module, you can still use the VirtualBox manager to configure virtual machines, but they will not start. In addition, there are the network kernel modules vboxnetflt and vboxnetadp which are required for the more advanced networking features of VirtualBox. The VirtualBox kernel module is automatically installed on your system when you install VirtualBox. To maintain it with future kernel updates, for those Linux distributions which provide it – most current ones – we recommend installing Dynamic Kernel Module Support (DKMS)2. This framework helps with building and upgrading kernel modules. If DKMS is not already installed, execute one of the following: • On an Ubuntu system: sudo apt-get install dkms • On a Fedora system: yum install dkms • On a Mandriva or Mageia system: urpmi dkms If DKMS is available and installed, the VirtualBox kernel module should always work automat- ically, and it will be automatically rebuilt if your host kernel is updated. Otherwise, there are only two situations in which you will need to worry about the kernel module: 1. The original installation fails. This probably means that your Linux system is not prepared for building external kernel modules. Most Linux distributions can be set up simply by installing the right packages - normally, these will be the GNU compiler (GCC), GNU Make (make) and packages containing header files for your kernel - and making sure that all system updates are installed and that the system is running the most up-to-date kernel included in the distribution. The version numbers of the header file packages must be the same as that of the kernel you are using. • With Debian and Ubuntu releases, you must install the right version of the linux-headers and if it exists the linux-kbuild package. Current Ubuntu releases should have the right packages installed by default. • In even older Debian and Ubuntu releases, you must install the right version of the kernel-headers package. • On Fedora and Redhat systems, the package is kernel-devel. • On SUSE and openSUSE Linux, you must install the right versions of the kernel-source and kernel-syms packages. • If you have built your own kernel, you will need to make sure that you also installed all the required header and other files for building external modules to the right loca- tions. The details of how to do this will depend on how you built your kernel, and if you are unsure you should consult the documentation which you followed to do so. 2. The kernel of your Linux host was updated and DKMS is not installed. In that case, the kernel module will need to be reinstalled by executing (as root): /etc/init.d/vboxdrv setup 2See http://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support for an introduction., 2 Installation details 2.3.3 Performing the installation VirtualBox is available in a number of package formats native to various common Linux distribu- tions (see chapter 1.4, Supported host operating systems, page 15 for details). In addition, there is an alternative generic installer (.run) which should work on most Linux distributions. 2.3.3.1 Installing VirtualBox from a Debian/Ubuntu package First, download the appropriate package for your distribution. The following examples assume that you are installing to a 32-bit Ubuntu Raring system. Use dpkg to install the Debian package: sudo dpkg -i VirtualBox-3.2_4.3.12_Ubuntu_raring_i386.deb You will be asked to accept the VirtualBox Personal Use and Evaluation License. Unless you answer “yes” here, the installation will be aborted. The installer will also search for a VirtualBox kernel module suitable for your kernel. The pack- age includes pre-compiled modules for the most common kernel configurations. If no suitable kernel module is found, the installation script tries to build a module itself. If the build process is not successful you will be shown a warning and the package will be left unconfigured. Please have a look at /var/log/vbox-install.log to find out why the compilation failed. You may have to install the appropriate Linux kernel headers (see chapter 2.3.2, The VirtualBox kernel module, page 38). After correcting any problems, do sudo /etc/init.d/vboxdrv setup This will start a second attempt to build the module. If a suitable kernel module was found in the package or the module was successfully built, the installation script will attempt to load that module. If this fails, please see chapter 12.7.1, Linux kernel module refuses to load, page 220 for further information. Once VirtualBox has been successfully installed and configured, you can start it by selecting “VirtualBox” in your start menu or from the command line (see chapter 2.3.5, Starting VirtualBox on Linux, page 42). 2.3.3.2 Using the alternative installer (VirtualBox.run) The alternative installer performs the following steps: • It unpacks the application files to the target directory, /opt/VirtualBox/ which cannot be changed. • It builds the VirtualBox kernel modules (vboxdrv, vboxnetflt and vboxnetadp) and in- stalls them. • It creates /etc/init.d/vboxdrv, an init script to start the VirtualBox kernel module. • It creates a new system group called vboxusers. • It creates symbolic links in /usr/bin to the a shell script (/opt/VirtualBox/VBox) which does some sanity checks and dispatches to the actual executables, VirtualBox, VBoxSDL, VBoxVRDP, VBoxHeadless and VBoxManage • It creates /etc/udev/rules.d/60-vboxdrv.rules, a description file for udev, if that is present, which makes the USB devices accessible to all users in the vboxusers group. • It writes the installation directory to /etc/vbox/vbox.cfg., 2 Installation details The installer must be executed as root with either install or uninstall as the first parame- ter. sudo ./VirtualBox.run install Or if you do not have the “sudo” command available, run the following as root instead: ./VirtualBox.run install After that you need to put every user which should be able to access USB devices from VirtualBox guests in the group vboxusers, either through the GUI user management tools or by running the following command as root: sudo usermod -a -G vboxusers username Note: The usermod command of some older Linux distributions does not support the -a option (which adds the user to the given group without affecting membership of other groups). In this case, find out the current group memberships with the groups command and add all these groups in a comma-separated list to the command line after the -G option, e.g. like this: usermod -G group1,group2,vboxusers username. 2.3.3.3 Performing a manual installation If, for any reason, you cannot use the shell script installer described previously, you can also perform a manual installation. Invoke the installer like this: ./VirtualBox.run -keep -noexec This will unpack all the files needed for installation in the directory install under the current directory. The VirtualBox application files are contained in VirtualBox.tar.bz2 which you can unpack to any directory on your system. For example: sudo mkdir /opt/VirtualBox sudo tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox or as root: mkdir /opt/VirtualBox tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox The sources for VirtualBox’s kernel module are provided in the src directory. To build the module, change to the directory and issue make If everything builds correctly, issue the following command to install the module to the appro- priate module directory: sudo make install In case you do not have sudo, switch the user account to root and perform make install, 2 Installation details The VirtualBox kernel module needs a device node to operate. The above make command will tell you how to create the device node, depending on your Linux system. The procedure is slightly different for a classical Linux setup with a /dev directory, a system with the now deprecated devfs and a modern Linux system with udev. On certain Linux distributions, you might experience difficulties building the module. You will have to analyze the error messages from the build system to diagnose the cause of the problems. In general, make sure that the correct Linux kernel sources are used for the build process. Note that the /dev/vboxdrv kernel module device node must be owned by root:root and must be read/writable only for the user. Next, you will have to install the system initialization script for the kernel module: cp /opt/VirtualBox/vboxdrv.sh /etc/init.d/vboxdrv (assuming you installed VirtualBox to the /opt/VirtualBox directory) and activate the ini- tialization script using the right method for your distribution. You should create VirtualBox’s configuration file: mkdir /etc/vbox echo INSTALL_DIR=/opt/VirtualBox > /etc/vbox/vbox.cfg and, for convenience, create the following symbolic links: ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxManage ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxHeadless ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxSDL 2.3.3.4 Updating and uninstalling VirtualBox Before updating or uninstalling VirtualBox, you must terminate any virtual machines which are currently running and exit the VirtualBox or VBoxSVC applications. To update VirtualBox, simply run the installer of the updated version. To uninstall VirtualBox, invoke the installer like this: sudo ./VirtualBox.run uninstall or as root ./VirtualBox.run uninstall . Starting with version 2.2.2, you can uninstall the .run package by invoking /opt/VirtualBox/uninstall.sh To manually uninstall VirtualBox, simply undo the steps in the manual installation in reverse order. 2.3.3.5 Automatic installation of Debian packages The Debian packages will request some user feedback when installed for the first time. The debconf system is used to perform this task. To prevent any user interaction during installation, default values can be defined. A file vboxconf can contain the following debconf settings: virtualbox virtualbox/module-compilation-allowed boolean true virtualbox virtualbox/delete-old-modules boolean true The first line allows compilation of the vboxdrv kernel module if no module was found for the current kernel. The second line allows the package to delete any old vboxdrv kernel modules compiled by previous installations. These default settings can be applied with debconf-set-selections vboxconf prior to the installation of the VirtualBox Debian package. In addition there are some common configuration options that can be set prior to the installa- tion, described in chapter 2.3.3.7, Automatic installation options, page 42., 2 Installation details 2.3.3.6 Automatic installation of .rpm packages The .rpm format does not provide a configuration system comparable to the debconf system. See chapter 2.3.3.7, Automatic installation options, page 42 for how to set some common installation options provided by VirtualBox. 2.3.3.7 Automatic installation options To configure the installation process of our .deb and .rpm packages, you can create a response file named /etc/default/virtualbox. The automatic generation of the udev rule can be pre- vented by the following setting: INSTALL_NO_UDEV=1 The creation of the group vboxusers can be prevented by INSTALL_NO_GROUP=1 If the line INSTALL_NO_VBOXDRV=1 is specified, the package installer will not try to build the vboxdrv kernel module if no module fitting the current kernel was found. 2.3.4 The vboxusers group The Linux installers create the system user group vboxusers during installation. Any system user who is going to use USB devices from VirtualBox guests must be a member of that group. A user can be made a member of the group vboxusers through the GUI user/group management or at the command line with sudo usermod -a -G vboxusers username 2.3.5 Starting VirtualBox on Linux The easiest way to start a VirtualBox program is by running the program of your choice (VirtualBox, VBoxManage, VBoxSDL or VBoxHeadless) from a terminal. These are symbolic links to VBox.sh that start the required program for you. The following detailed instructions should only be of interest if you wish to execute VirtualBox without installing it first. You should start by compiling the vboxdrv kernel module (see above) and inserting it into the Linux kernel. VirtualBox consists of a service daemon (VBoxSVC) and several application programs. The daemon is automatically started if necessary. All VirtualBox applications will communicate with the daemon through Unix local domain sockets. There can be multiple daemon instances under different user accounts and applications can only communicate with the daemon running under the user account as the application. The local domain socket resides in a subdirectory of your system’s directory for temporary files called .vbox--ipc. In case of communication problems or server startup problems, you may try to remove this directory. All VirtualBox applications (VirtualBox, VBoxSDL, VBoxManage and VBoxHeadless) require the VirtualBox directory to be in the library path: LD_LIBRARY_PATH=. ./VBoxManage showvminfo "Windows XP", 2 Installation details 2.4 Installing on Solaris hosts For the specific versions of Solaris that we support as host operating systems, please refer to chapter 1.4, Supported host operating systems, page 15. If you have a previously installed instance of VirtualBox on your Solaris host, please uninstall it first before installing a new instance. Refer to chapter 2.4.4, Uninstallation, page 44 for uninstall instructions. 2.4.1 Performing the installation VirtualBox is available as a standard Solaris package. Download the VirtualBox SunOS package which includes both the 32-bit and 64-bit versions of VirtualBox. The installation must be per- formed as root and from the global zone as the VirtualBox installer loads kernel drivers which cannot be done from non-global zones. To verify which zone you are currently in, execute the zonename command. Execute the following commands: gunzip -cd VirtualBox-4.3.12-SunOS.tar.gz | tar xvf - Starting with VirtualBox 3.1 the VirtualBox kernel package is no longer a separate package and has been integrated into the main package. Install the VirtualBox package using: pkgadd -d VirtualBox-4.3.12-SunOS.pkg Note: If you are using Solaris Zones, to install VirtualBox only into the current zone and not into any other zone, use pkgadd -G. For more information refer to the pkgadd manual; see also chapter 2.4.6, Configuring a zone for running VirtualBox, page 44. The installer will then prompt you to enter the package you wish to install. Choose “1” or “all” and proceed. Next the installer will ask you if you want to allow the postinstall script to be executed. Choose “y” and proceed as it is essential to execute this script which installs the VirtualBox kernel module. Following this confirmation the installer will install VirtualBox and execute the postinstall setup script. Once the postinstall script has been executed your installation is now complete. You may now safely delete the uncompressed package and autoresponse files from your system. VirtualBox would be installed in /opt/VirtualBox. 2.4.2 The vboxuser group Starting with VirtualBox 4.1, the installer creates the system user group vboxuser during instal- lation for Solaris hosts that support the USB features required by VirtualBox. Any system user who is going to use USB devices from VirtualBox guests must be a member of this group. A user can be made a member of this group through the GUI user/group management or at the command line by executing as root: usermod -G vboxuser username Note that adding an active user to that group will require that user to log out and back in again. This should be done manually after successful installation of the package., 2 Installation details 2.4.3 Starting VirtualBox on Solaris The easiest way to start a VirtualBox program is by running the program of your choice (VirtualBox, VBoxManage, VBoxSDL or VBoxHeadless) from a terminal. These are symbolic links to VBox.sh that start the required program for you. Alternatively, you can directly invoke the required programs from /opt/VirtualBox. Using the links provided is easier as you do not have to type the full path. You can configure some elements of the VirtualBox Qt GUI such as fonts and colours by executing VBoxQtconfig from the terminal. 2.4.4 Uninstallation Uninstallation of VirtualBox on Solaris requires root permissions. To perform the uninstallation, start a root terminal session and execute: pkgrm SUNWvbox After confirmation, this will remove VirtualBox from your system. If you are uninstalling VirtualBox version 3.0 or lower, you need to remove the VirtualBox kernel interface package, execute: pkgrm SUNWvboxkern 2.4.5 Unattended installation To perform a non-interactive installation of VirtualBox we have provided a response file named autoresponse that the installer will use for responses to inputs rather than ask them from you. Extract the tar.gz package as described in the normal installation. Then open a root terminal session and execute: pkgadd -d VirtualBox-4.3.12-SunOS-x86 -n -a autoresponse SUNWvbox To perform a non-interactive uninstallation, open a root terminal session and execute: pkgrm -n -a /opt/VirtualBox/autoresponse SUNWvbox 2.4.6 Configuring a zone for running VirtualBox Starting with VirtualBox 1.6 it is possible to run VirtualBox from within Solaris zones. For an introduction of Solaris zones, please refer to http://www.sun.com/bigadmin/features/ articles/solaris_zones.jsp. Assuming that VirtualBox has already been installed into your zone, you need to give the zone access to VirtualBox’s device node. This is done by performing the following steps. Start a root terminal and execute: zonecfg -z vboxzone Inside the zonecfg prompt add the device resource and match properties to the zone. Here’s how it can be done: zonecfg:vboxzone>add device zonecfg:vboxzone:device>set match=/dev/vboxdrv zonecfg:vboxzone:device>end zonecfg:vboxzone>verify zonecfg:vboxzone>exit If you are running VirtualBox 2.2.0 or above on Solaris 11 or Nevada hosts, you should add a device for /dev/vboxusbmon too, similar to what was shown above. This does not apply to Solaris 10 hosts due to lack of USB support. Replace “vboxzone” with the name of the zone in which you intend to run VirtualBox. Next reboot the zone using zoneadm and you should be able to run VirtualBox from within the config- ured zone., 3 Configuring virtual machines Whereas chapter 1, First steps, page 11 gave you a quick introduction to VirtualBox and how to get your first virtual machine running, the following chapter describes in detail how to configure virtual machines. You have considerable latitude in deciding what virtual hardware will be provided to the guest. The virtual hardware can be used for communicating with the host system or with other guests. For instance, if you provide VirtualBox with the image of a CD-ROM in an ISO file, VirtualBox can present this image to a guest system as if it were a physical CD-ROM. Similarly, you can give a guest system access to the real network via its virtual network card, and, if you so choose, give the host system, other guests, or computers on the Internet access to the guest system. 3.1 Supported guest operating systems Since VirtualBox is designed to provide a generic virtualization environment for x86 systems, it may run operating systems of any kind, even those not listed here. However, the focus is to optimize VirtualBox for the following guest systems: Windows NT 4.0 All versions, editions and service packs are fully supported; however, there are some issues with older service packs. We recommend to install service pack 6a. Guest Additions are available with a limited feature set. Windows 2000 / XP / Server 2003 / Vista / Server 2008 / Windows 7 / Windows 8 / Server 2012 All versions, editions and service packs are fully supported (including 64-bit versions, un- der the preconditions listed below). Guest Additions are available. DOS / Windows 3.x / 95 / 98 / ME Limited testing has been performed. Use beyond legacy in- stallation mechanisms not recommended. No Guest Additions available. Linux 2.4 Limited support. Linux 2.6 All versions/editions are fully supported (32 bits and 64 bits). Guest Additions are available. We strongly recommend using a Linux kernel version 2.6.13 or higher for better perfor- mance. Note: Certain Linux kernel releases have bugs that prevent them from executing in a virtual environment; please see chapter 12.4.3, Buggy Linux 2.6 kernel versions, page 217 for details. Linux 3.x All versions/editions are fully supported (32 bits and 64 bits). Guest Additions are available. Solaris 10 (u6 and higher), Solaris 11 (including Solaris 11 Express) Fully supported (32 bits and 64 bits). Guest Additions are available. FreeBSD Requires hardware virtualization to be enabled. Limited support. Guest Additions are not available yet., 3 Configuring virtual machines OpenBSD Requires hardware virtualization to be enabled. Versions 3.7 and later are supported. Guest Additions are not available yet. OS/2 Warp 4.5 Requires hardware virtualization to be enabled. We officially support MCP2 only; other OS/2 versions may or may not work. Guest Additions are available with a limited feature set.1 Mac OS X VirtualBox 3.2 added experimental support for Mac OS X guests, but this comes with restrictions. Please see the following section as well as chapter 14, Known limitations, page 228. 3.1.1 Mac OS X guests Starting with version 3.2, VirtualBox has experimental support for Mac OS X guests. This allows you to install and execute unmodified versions of Mac OS X on supported host hardware. Whereas competing solutions perform modifications to the Mac OS X install DVDs (e.g. dif- ferent boot loader and replaced files), VirtualBox is the first product to provide the modern PC architecture expected by OS X without requiring any “hacks”. You should be aware of a number of important issues before attempting to install a Mac OS X guest: 1. Mac OS X is commercial, licensed software and contains both license and technical re- strictions that limit its use to certain hardware and usage scenarios. It is important that you understand and obey these restrictions. In particular, for most versions of Mac OS X, Apple prohibits installing them on non-Apple hardware. These license restrictions are also enforced on a technical level. Mac OS X verifies whether it is running on Apple hardware, and most DVDs that that come with Apple hardware even check for an exact model. These restrictions are not circumvented by VirtualBox and continue to apply. 2. Only CPUs known and tested by Apple are supported. As a result, if your Intel CPU is newer than the build of Mac OS X, or if you have a non-Intel CPU, it will most likely panic during bootup with an “Unsupported CPU” exception. It is generally best to use the Mac OS X DVD that came with your Apple hardware. 3. The Mac OS X installer expects the harddisk to be partitioned so when it does not offer a selection, you have to launch the Disk Utility from the “Tools” menu and partition the hard disk. Then close the Disk Utility and proceed with the installation. 4. In addition, as Mac OS X support in VirtualBox is currently still experimental, please refer also to chapter 14, Known limitations, page 228. 3.1.2 64-bit guests VirtualBox supports 64-bit guest operating systems, even on 32-bit host operating systems,2 pro- vided that the following conditions are met: 1. You need a 64-bit processor with hardware virtualization support (see chapter 10.3, Hard- ware vs. software virtualization, page 201). 2. You must enable hardware virtualization for the particular VM for which you want 64-bit support; software virtualization is not supported for 64-bit VMs. 1See chapter 14, Known limitations, page 228. 264-bit guest support was added with VirtualBox 2.0; support for 64-bit guests on 32-bit hosts was added with VirtualBox 2.1., 3 Configuring virtual machines 3. If you want to use 64-bit guest support on a 32-bit host operating system, you must also select a 64-bit operating system for the particular VM. Since supporting 64 bits on 32- bit hosts incurs additional overhead, VirtualBox only enables this support upon explicit request. On 64-bit hosts (which typically come with hardware virtualization support), 64-bit guest operating systems are always supported regardless of settings, so you can simply install a 64-bit operating system in the guest. Warning: On any host, you should enable the I/O APIC for virtual machines that you intend to use in 64-bit mode. This is especially true for 64-bit Windows VMs. See chapter 3.3.2, “Advanced” tab, page 48. In addition, for 64-bit Windows guests, you should make sure that the VM uses the Intel networking device, since there is no 64-bit driver support for the AMD PCNet card; see chapter 6.1, Virtual networking hardware, page 92. If you use the “Create VM” wizard of the VirtualBox graphical user interface (see chapter 1.7, Creating your first virtual machine, page 18), VirtualBox will automatically use the correct settings for each selected 64-bit operating system type. 3.2 Emulated hardware VirtualBox virtualizes nearly all hardware of the host. Depending on a VM’s configuration, the guest will see the following virtual hardware: • Input devices. By default, VirtualBox emulates a standard PS/2 keyboard and mouse. These devices are supported by almost all past and present operating systems. In addition, VirtualBox can provide virtual USB input devices to avoid having to capture mouse and keyboard, as described in chapter 1.8.2, Capturing and releasing keyboard and mouse, page 22. • Graphics. The VirtualBox graphics device (sometimes referred to as VGA device) is, unlike nearly all other emulated devices, not based on any physical counterpart. It is a simple, synthetic device which provides compatibility with standard VGA and several extended registers used by the VESA BIOS Extensions (VBE). • Storage. VirtualBox currently emulates the standard ATA interface found on Intel PIIX3/PIIX4 chips, the SATA (AHCI) interface, and two SCSI adapters (LSI Logic and Bus- Logic); see chapter 5.1, Hard disk controllers: IDE, SATA (AHCI), SCSI, SAS, page 80 for details. Whereas providing one of these would be enough for VirtualBox by itself, this mul- titude of storage adapters is required for compatibility with other hypervisors. Windows is particularly picky about its boot devices, and migrating VMs between hypervisors is very difficult or impossible if the storage controllers are different. • Networking. See chapter 6.1, Virtual networking hardware, page 92. • USB. VirtualBox emulates two USB host controllers, EHCI and OHCI. There is a need for two host controllers because OHCI only handles USB low- and full-speed devices (both USB 1.x and 2.0), while EHCI only handles high-speed devices (USB 2.0 only). The emulated USB controllers do not communicate directly with devices on the host but rather with a virtual USB layer which abstracts the USB protocol and allows the use of remote USB devices. • Audio. See chapter 3.7, Audio settings, page 54., 3 Configuring virtual machines 3.3 General settings In the Settings window, under “General”, you can configure the most fundamental aspects of the virtual machine such as memory and essential hardware. There are three tabs, “Basic”, “Advanced” and “Description”. 3.3.1 “Basic” tab Under the “Basic” tab of the “General” settings category, you can find these settings: Name The name under which the VM is shown in the list of VMs in the main window. Under this name, VirtualBox also saves the VM’s configuration files. By changing the name, VirtualBox renames these files as well. As a result, you can only use characters which are allowed in your host operating system’s file names. Note that internally, VirtualBox uses unique identifiers (UUIDs) to identify virtual ma- chines. You can display these with VBoxManage. Operating system / version The type of the guest operating system that is (or will be) installed in the VM. This is the same setting that was specified in the “New Virtual Machine” wizard, as described in chapter 1.7, Creating your first virtual machine, page 18. Whereas the default settings of a newly created VM depend on the selected operating system type, changing the type later has no effect on VM settings; this value is then purely informational and decorative. 3.3.2 “Advanced” tab Snapshot folder By default, VirtualBox saves snapshot data together with your other VirtualBox configuration data; see chapter 10.1, Where VirtualBox stores its files, page 197. With this setting, you can specify any other folder for each VM. Shared clipboard You can select here whether the clipboard of the guest operating system should be shared with that of your host. If you select “Bidirectional”, then VirtualBox will always make sure that both clipboards contain the same data. If you select “Host to guest” or “Guest to host”, then VirtualBox will only ever copy clipboard data in one direction. Clipboard sharing requires that the VirtualBox Guest Additions be installed. As a result, this setting has no effect otherwise; see chapter 4, Guest Additions, page 60 for details. The shared clipboard is disabled by default. See chapter 13.3.2.3, Clipboard, page 226 for an explanation. This setting can be changed at any time using the “Shared Clipboard” menu item in the “Devices” menu of the virtual machine. Drag’n’Drop This setting allows to enable Drag and Drop: Select a file on the desktop, click the left mouse button, move the mouse to the VM window and release the mouse button. The file is copied from the host to the guest. This feature is currently only implemented for Linux guests and only for copying files from the host to the guest.3 Removable media: remember runtime changes If this is checked, VirtualBox will save the state of what media has been mounted between several runs of a virtual machine. Mini toolbar In full screen or seamless mode, VirtualBox can display a small toolbar that con- tains some of the items that are normally available from the virtual machine’s menu bar. This toolbar reduces itself to a small gray line unless you move the mouse over it. With the toolbar, you can return from full screen or seamless mode, control machine execution or enable certain devices. If you don’t want to see the toolbar, disable this setting. 3Support for Drag’n’Drop was added with VirtualBox 4.2, 3 Configuring virtual machines The second setting allows to show the toolbar at the top of the screen instead of showing it at the bottom. 3.3.3 “Description” tab Here you can enter any description for your virtual machine, if you want. This has no effect on the functionality of the machine, but you may find this space useful to note down things like the configuration of a virtual machine and the software that has been installed into it. To insert a line break into the description text field, press Shift+Enter. 3.4 System settings The “System” category groups various settings that are related to the basic hardware that is presented to the virtual machine. Note: As the activation mechanism of Microsoft Windows is sensitive to hardware changes, if you are changing hardware settings for a Windows guest, some of these changes may trigger a request for another activation with Microsoft. 3.4.1 “Motherboard” tab On the “Motherboard” tab, you can influence virtual hardware that would normally be on the motherboard of a real computer. Base memory This sets the amount of RAM that is allocated and given to the VM when it is running. The specified amount of memory will be requested from the host operating sys- tem, so it must be available or made available as free memory on the host when attempting to start the VM and will not be available to the host while the VM is running. This is the same setting that was specified in the “New Virtual Machine” wizard, as described with guidelines under chapter 1.7, Creating your first virtual machine, page 18 above. Generally, it is possible to change the memory size after installing the guest operating system (provided you do not reduce the memory to an amount where the operating system would no longer boot). Boot order This setting determines the order in which the guest operating system will attempt to boot from the various virtual boot devices. Analogous to a real PC’s BIOS setting, VirtualBox can tell a guest OS to start from the virtual floppy, the virtual CD/DVD drive, the virtual hard drive (each of these as defined by the other VM settings), the network, or none of these. If you select “Network”, the VM will attempt to boot from a network via the PXE mecha- nism. This needs to be configured in detail on the command line; please see chapter 8.8, VBoxManage modifyvm, page 125. Chipset Here you can select which chipset will be presented to the virtual machine. Before VirtualBox 4.0, PIIX3 was the only available option here. For modern guest operating sys- tems such as Mac OS X, that old chipset is no longer well supported. As a result, VirtualBox 4.0 introduced an emulation of the more modern ICH9 chipset, which supports PCI ex- press, three PCI buses, PCI-to-PCI bridges and Message Signaled Interrupts (MSI). This allows modern operating systems to address more PCI devices and no longer requires IRQ sharing. Note that the ICH9 support is experimental and not recommended for guest oper- ating systems which do not require it., 3 Configuring virtual machines Pointing Device The default virtual pointing devices for older guests is the traditional PS/2 mouse. If set to USB tablet, VirtualBox reports to the virtual machine that a USB tablet device is present and communicates mouse events to the virtual machine through this device. The third setting is a USB Multi-Touch Tablet which is suited for recent Windows guests. Using the virtual USB tablet has the advantage that movements are reported in absolute coordinates (instead of as relative position changes), which allows VirtualBox to translate mouse events over the VM window into tablet events without having to “capture” the mouse in the guest as described in chapter 1.8.2, Capturing and releasing keyboard and mouse, page 22. This makes using the VM less tedious even if Guest Additions are not installed.4 Enable I/O APIC Advanced Programmable Interrupt Controllers (APICs) are a newer x86 hard- ware feature that have replaced old-style Programmable Interrupt Controllers (PICs) in recent years. With an I/O APIC, operating systems can use more than 16 interrupt requests (IRQs) and therefore avoid IRQ sharing for improved reliability. Note: Enabling the I/O APIC is required for 64-bit guest operating systems, especially Windows Vista; it is also required if you want to use more than one virtual CPU in a virtual machine. However, software support for I/O APICs has been unreliable with some operating sys- tems other than Windows. Also, the use of an I/O APIC slightly increases the overhead of virtualization and therefore slows down the guest OS a little. Warning: All Windows operating systems starting with Windows 2000 install different kernels depending on whether an I/O APIC is available. As with ACPI, the I/O APIC therefore must not be turned off after installation of a Windows guest OS. Turning it on after installation will have no effect however. Enable EFI This enables Extensible Firmware Interface (EFI), which replaces the legacy BIOS and may be useful for certain advanced use cases. Please refer to chapter 3.12, Alternative firmware (EFI), page 58 for details. Hardware clock in UTC time If checked, VirtualBox will report the system time in UTC format to the guest instead of local (host) time. This affects how the virtual real-time clock (RTC) operates and may be useful for Unix-like guest operating systems, which typically expect the hardware clock to be set to UTC. In addition, you can turn off the Advanced Configuration and Power Interface (ACPI) which VirtualBox presents to the guest operating system by default. ACPI is the current industry stan- dard to allow operating systems to recognize hardware, configure motherboards and other de- vices and manage power. As all modern PCs contain this feature and Windows and Linux have been supporting it for years, it is also enabled by default in VirtualBox. It can only be turned off on the command line; see chapter 8.8, VBoxManage modifyvm, page 125. Warning: All Windows operating systems starting with Windows 2000 install different kernels depending on whether ACPI is available, so ACPI must not be turned off after installation of a Windows guest OS. Turning it on after installation will have no effect however. 4The virtual USB tablet was added with VirtualBox 3.2. Depending on the guest operating system selected, this is now enabled by default for new virtual machines., 3 Configuring virtual machines 3.4.2 “Processor” tab On the “Processor” tab, you can set how many virtual CPU cores the guest operating systems should see. Starting with version 3.0, VirtualBox supports symmetrical multiprocessing (SMP) and can present up to 32 virtual CPU cores to each virtual machine. You should not, however, configure virtual machines to use more CPU cores than you have available physically (real cores, no hyperthreads). On this tab you can also set the “CPU execution cap”. This setting limits the amount of time a host CPU spents to emulate a virtual CPU. The default setting is 100% meaning that there is no limitation. A setting of 50% implies a single virtual CPU can use up to 50% of a single host CPU. Note that limiting the execution time of the virtual CPUs may induce guest timing problems. In addition, the “Enable PAE/NX” setting determines whether the PAE and NX capabilities of the host CPU will be exposed to the virtual machine. PAE stands for “Physical Address Extension”. Normally, if enabled and supported by the operating system, then even a 32-bit x86 CPU can access more than 4 GB of RAM. This is made possible by adding another 4 bits to memory addresses, so that with 36 bits, up to 64 GB can be addressed. Some operating systems (such as Ubuntu Server) require PAE support from the CPU and cannot be run in a virtual machine without it. With virtual machines running modern server operating systems, VirtualBox also supports CPU hot-plugging. For details about this, please refer to chapter 9.5, CPU hot-plugging, page 166. 3.4.3 “Acceleration” tab On this page, you can determine whether and how VirtualBox should use hardware virtualization extensions that your host CPU may support. This is the case with most CPUs built after 2006. You can select for each virtual machine individually whether VirtualBox should use software or hardware virtualization.5 In most cases, the default settings will be fine; VirtualBox will have picked sensible defaults depending on the operating system that you selected when you created the virtual machine. In certain situations, however, you may want to change these preconfigured defaults. Advanced users may be interested in technical details about software vs. hardware virtualiza- tion; please see chapter 10.3, Hardware vs. software virtualization, page 201. If your host’s CPU supports the nested paging (AMD-V) or EPT (Intel VT-x) features, then you can expect a significant performance increase by enabling nested paging in addition to hardware virtualization. For technical details, see chapter 10.6, Nested paging and VPIDs, page 205. 3.5 Display settings Video memory size This sets the size of the memory provided by the virtual graphics card available to the guest, in MB. As with the main memory, the specified amount will be allocated from the host’s resident memory. Based on the amount of video memory, higher resolutions and color depths may be available. The GUI will show a warning if the amount of video memory is too small to be able to switch the VM into full screen mode. The minimum value depends on the number of virtual monitors, the screen resolution and the color depth of the host display as well as of the activation of 3D acceleration and 2D video acceleration. A rough estimate is (color depth / 8) x vertical pixels x horizontal pixels x number of screens = number of bytes. Like said above, there might be extra memory required for any activated display acceleration setting. 5Prior to VirtualBox version 2.2, software virtualization was the default; starting with version 2.2, VirtualBox will enable hardware virtualization by default for new virtual machines that you create. (Existing virtual machines are not automatically changed for compatibility reasons, and the default can of course be changed for each virtual machine.), 3 Configuring virtual machines Monitor count With this setting VirtualBox can provide more than one virtual monitor to a virtual machine. If a guest operating system (such as Windows) supports multiple attached monitors, VirtualBox can pretend that multiple virtual monitors are present.6 Up to 8 such virtual monitors are supported. The output of the multiple monitors will be displayed on the host in multiple VM windows which are running side by side. However, in full screen and seamless mode, they will use the available physical monitors attached to the host. As a result, for full screen and seamless modes to work with multiple monitors, you will need at least as many physical monitors as you have virtual monitors configured, or VirtualBox will report an error. You can configure the relationship between guest and host monitors using the view menu by pressing Host key + Home when you are in full screen or seamless mode. Please see chapter 14, Known limitations, page 228 also. Enable 3D acceleration If a virtual machine has Guest Additions installed, you can select here whether the guest should support accelerated 3D graphics. Please refer to chapter 4.4.1, Hardware 3D acceleration (OpenGL and Direct3D 8/9), page 73 for details. Enable 2D video acceleration If a virtual machine with Microsoft Windows has Guest Addi- tions installed, you can select here whether the guest should support accelerated 2D video graphics. Please refer to chapter 4.4.2, Hardware 2D video acceleration for Windows guests, page 74 for details. Remote display Under the “Remote display” tab, if the VirtualBox Remote Display Extension (VRDE) is installed, you can enable the VRDP server that is built into VirtualBox. This allows you to connect to the console of the virtual machine remotely with any standard RDP viewer, such as mstsc.exe that comes with Microsoft Windows. On Linux and Solaris systems you can use the standard open-source rdesktop program. These features are described in detail in chapter 7.1, Remote display (VRDP support), page 103. Video Capture Under the “Video Capture” tab you can enable video capturing for this VM. Note that this feature can also be enabled/disabled while the VM is executed. 3.6 Storage settings The “Storage” category in the VM settings allows you to connect virtual hard disk, CD/DVD and floppy images and drives to your virtual machine. In a real PC, so-called “storage controllers” connect physical disk drives to the rest of the com- puter. Similarly, VirtualBox presents virtual storage controllers to a virtual machine. Under each controller, the virtual devices (hard disks, CD/DVD or floppy drives) attached to the controller are shown. Note: This section can only give you a quick introduction to the VirtualBox storage settings. Since VirtualBox gives you an enormous wealth of options in this area, we have dedicated an entire chapter of this User Manual to explaining all the details: please see chapter 5, Virtual storage, page 80. If you have used the “Create VM” wizard to create a machine, you will normally see something like the following: 6Multiple monitor support was added with VirtualBox 3.2., 3 Configuring virtual machines Depending on the guest operating system type that you selected when you created the VM, the typical layout of storage devices in a new VM is as follows: • You will see an IDE controller, to which a virtual CD/DVD drive has been attached (to the “secondary master” port of the IDE controller). • You will also see a SATA controller, which is a more modern type of storage controller for higher hard disk data throughput, to which the virtual hard disks are attached. Initially you will normally have one such virtual disk, but as you can see in the above screenshot, you can have more than one, each represented by a disk image file (VDI files, in this case). If you created your VM with an older version of VirtualBox, the default storage layout may differ. You might then only have an IDE controller to which both the CD/DVD drive and the hard disks have been attached. This might also apply if you selected an older operating system type when you created the VM. Since older operating systems do not support SATA without additional drivers, VirtualBox will make sure that no such devices are present initially. Please see chapter 5.1, Hard disk controllers: IDE, SATA (AHCI), SCSI, SAS, page 80 for additional information. VirtualBox also provides a floppy controller, which is special: you cannot add devices other than floppy drives to it. Virtual floppy drives, like virtual CD/DVD drives, can be connected to either a host floppy drive (if you have one) or a disk image, which in this case must be in RAW format. You can modify these media attachments freely. For example, if you wish to copy some files from another virtual disk that you created, you can connect that disk as a second hard disk, as in the above screenshot. You could also add a second virtual CD/DVD drive, or change where these items are attached. The following options are available: • To add another virtual hard disk, or a CD/DVD or floppy drive, select the storage con- troller to which it should be added (IDE, SATA, SCSI, SAS, floppy controller) and then click on the “add disk” button below the tree. You can then either select “Add CD/DVD device” or “Add Hard Disk”. (If you clicked on a floppy controller, you can add a floppy drive instead.) Alternatively, right-click on the storage controller and select a menu item there. On the right part of the window, you can then set the following: 1. You can then select to which device slot of the controller the virtual disk should be connected to. IDE controllers have four slots which have traditionally been called, 3 Configuring virtual machines “primary master”, “primary slave”, “secondary master” and “secondary slave”. By contrast, SATA and SCSI controllers offer you up to 30 slots to which virtual devices can be attached. 2. You can select which image file to use. – For virtual hard disks, a button with a drop-down list appears on the right, offer- ing you to either select a virtual hard disk file using a standard file dialog or to create a new hard disk (image file), which will bring up the “Create new disk” wizard, which was described in chapter 1.7, Creating your first virtual machine, page 18. For details on the image file types that are supported, please see chapter 5.2, Disk image files (VDI, VMDK, VHD, HDD), page 82. – For virtual CD/DVD drives, the image files will typically be in the standard ISO format instead. Most commonly, you will select this option when installing an operating system from an ISO file that you have obtained from the Internet. For example, most Linux distributions are available in this way. For virtual CD/DVD drives, the following additional options are available: ∗ If you select “Host drive” from the list, then the physical device of the host computer is connected to the VM, so that the guest operating system can read from and write to your physical device. This is, for instance, useful if you want to install Windows from a real installation CD. In this case, select your host drive from the drop-down list presented. If you want to write (burn) CDs or DVDs using the host drive, you need to also enable the “Passthrough” option; see chapter 5.9, CD/DVD support, page 90. ∗ If you select “Remove disk from virtual drive”, VirtualBox will present an empty CD/DVD drive to the guest into which no media has been inserted. • To remove an attachment, select it and click on the “remove” icon at the bottom (or right-click on it and select the menu item). Removable media (CD/DVDs and floppies) can be changed while the guest is running. Since the “Settings” dialog is not available at that time, you can also access these settings from the “Devices” menu of your virtual machine window. 3.7 Audio settings The “Audio” section in a virtual machine’s Settings window determines whether the VM will see a sound card connected, and whether the audio output should be heard on the host system. If audio is enabled for a guest, you can choose between the emulation of an Intel AC’97 controller, an Intel HD Audio controller7 or a SoundBlaster 16 card. In any case, you can select what audio driver VirtualBox will use on the host. On a Linux host, depending on your host configuration, you can also select between the OSS, ALSA or the PulseAudio subsystem. On newer Linux distributions (Fedora 8 and above, Ubuntu 8.04 and above), the PulseAudio subsystem should be preferred. 3.8 Network settings The “Network” section in a virtual machine’s Settings window allows you to configure how VirtualBox presents virtual network cards to your VM, and how they operate. 7Intel HD Audio support was added with VirtualBox 4.0 because Windows 7 (32-bit and 64-bit versions) as well as 64-bit Windows Vista do not support the Intel AC’97 controller., 3 Configuring virtual machines When you first create a virtual machine, VirtualBox by default enables one virtual network card and selects the “Network Address Translation” (NAT) mode for it. This way the guest can connect to the outside world using the host’s networking and the outside world can connect to services on the guest which you choose to make visible outside of the virtual machine. This default setup is good for probably 95% of VirtualBox users. However, VirtualBox is ex- tremely flexible in how it can virtualize networking. It supports many virtual network cards per virtual machine, the first four of which can be configured in detail in the Manager window. Additional network cards can be configured on the command line with VBoxManage. Because of the vast array of options available, we have dedicated an entire chapter of this manual to discussing networking configuration; please see chapter 6, Virtual networking, page 92. 3.9 Serial ports VirtualBox fully supports virtual serial ports in a virtual machine in an easy-to-use manner.8 Ever since the original IBM PC, personal computers have been equipped with one or two serial ports (also called COM ports by DOS and Windows). Serial ports were commonly used with modems, and some computer mice used to be connected to serial ports before USB became commonplace. While serial ports are no longer as ubiquitous as they used to be, there are still some important uses left for them. For example, serial ports can be used to set up a primitive network over a null- modem cable, in case Ethernet is not available. Also, serial ports are indispensable for system programmers needing to do kernel debugging, since kernel debugging software usually interacts with developers over a serial port. With virtual serial ports, system programmers can do kernel debugging on a virtual machine instead of needing a real computer to connect to. If a virtual serial port is enabled, the guest operating system sees a standard 16550A com- patible UART device. Both receiving and transmitting data is supported. How this virtual serial port is then connected to the host is configurable, and the details depend on your host operating system. You can use either the graphical user interface or the command-line VBoxManage tool to set up virtual serial ports. For the latter, please refer to chapter 8.8, VBoxManage modifyvm, page 125; in that section, look for the -uart and -uartmode options. In either case, you can configure up to two virtual serial ports per virtual machine. For each such device, you will need to determine 1. what kind of serial port the virtual machine should see by selecting an I/O base address and interrupt (IRQ). For these, we recommend to use the traditional values9, which are: a) COM1: I/O base 0x3F8, IRQ 4 b) COM2: I/O base 0x2F8, IRQ 3 c) COM3: I/O base 0x3E8, IRQ 4 d) COM4: I/O base 0x2E8, IRQ 3 2. Then, you will need to determine what this virtual port should be connected to. For each virtual serial port, you have the following options: • You can elect to have the virtual serial port “disconnected”, which means that the guest will see the device, but it will behave as if no cable had been connected to it. • You can connect the virtual serial port to a physical serial port on your host. (On a Windows host, this will be a name like COM1; on Linux or Solaris hosts, it will be a device node like /dev/ttyS0). VirtualBox will then simply redirect all data received from and sent to the virtual serial port to the physical device. 8Serial port support was added with VirtualBox 1.5. 9See, for example, http://en.wikipedia.org/wiki/COM_(hardware_interface)., 3 Configuring virtual machines • You can tell VirtualBox to connect the virtual serial port to a software pipe on the host. This depends on your host operating system: – On a Windows host, data will be sent and received through a named pipe. The pipe name must be in the format \\.\pipe\ where should iden- tify the virtual machine but may be freely chosen. For forwarding serial traffic, you can use a helper program called VMware Serial Line Gateway, available for download at http://www.l4ka.org/91.php. This tool provides a fixed server mode named pipe at \\.\pipe\vmwaredebug and connects incoming TCP connections on port 567 with the named pipe. – On a Mac, Linux or Solaris host, a local domain socket is used instead. The socket filename must be chosen such that the user running VirtualBox has sufficient privileges to create and write to it. The /tmp directory is often a good candidate. On Linux there are various tools which can connect to a local domain socket or create one in server mode. The most flexible tool is socat and is available as part of many distributions. In this case, you can configure whether VirtualBox should create the named pipe (or, on non-Windows hosts, the local domain socket) itself or whether VirtualBox should assume that the pipe (or socket) exists already. With the VBoxManage command-line options, this is referred to as “server” or “client” mode, respectively. For a direct connection between two virtual machines (corresponding to a null-modem cable), simply configure one VM to create a pipe/socket and another to attach to it. • You can send the virtual serial port output to a file. This option is very useful for capturing diagnostic output from a guest. Any file may be used for this purpose, as long as the user running VirtualBox has sufficient privileges to create and write to the file. Up to two serial ports can be configured per virtual machine, but you can pick any port numbers out of the above. However, serial ports cannot reliably share interrupts; if both ports are to be used at the same time, they must use different interrupt levels, for example COM1 and COM2, but not COM1 and COM3. 3.10 USB support 3.10.1 USB settings The “USB” section in a virtual machine’s Settings window allows you to configure VirtualBox’s sophisticated USB support. VirtualBox can allow virtual machines to access the USB devices on your host directly. To achieve this, VirtualBox presents the guest operating system with a virtual USB controller. As soon as the guest system starts using a USB device, it will appear as unavailable on the host. Note: 1. Be careful with USB devices that are currently in use on the host! For example, if you allow your guest to connect to your USB hard disk that is currently mounted on the host, when the guest is activated, it will be disconnected from the host without a proper shutdown. This may cause data loss. 2. Solaris hosts have a few known limitations regarding USB support; please see chapter 14, Known limitations, page 228., 3 Configuring virtual machines In addition to allowing a guest access to your local USB devices, VirtualBox even allows your guests to connect to remote USB devices by use of the VirtualBox Remote Desktop Extension (VRDE). For details about this, see chapter 7.1.4, Remote USB, page 107. In the Settings dialog, you can first configure whether USB is available in the guest at all, and in addition also optionally enable the USB 2.0 (EHCI) controller for the guest. If so, you can determine in detail which devices are available. For this, you must create so-called “filters” by specifying certain properties of the USB device. Note: The EHCI controller is shipped as a VirtualBox extension package, which must be installed separately. See chapter 1.5, Installing VirtualBox and extension packs, page 16 for more information. Clicking on the “+“ button to the right of the “USB Device Filters” window creates a new filter. You can give the filter a name (for referencing it later) and specify the filter criteria. The more criteria you specify, the more precisely devices will be selected. For instance, if you specify only a vendor ID of 046d, all devices produced by Logitech will be available to the guest. If you fill in all fields, on the other hand, the filter will only apply to a particular device model from a particular vendor, and not even to other devices of the same type with a different revision and serial number. In detail, the following criteria are available: 1. Vendor and product ID. With USB, each vendor of USB products carries an identification number that is unique world-wide, the “vendor ID”. Similarly, each line of products is assigned a “product ID” number. Both numbers are commonly written in hexadecimal (that is, they are composed of the numbers 0-9 and the letters A-F), and a colon separates the vendor from the product ID. For example, 046d:c016 stands for Logitech as a vendor, and the “M-UV69a Optical Wheel Mouse” product. Alternatively, you can also specify “Manufacturer” and “Product” by name. To list all the USB devices that are connected to your host machine with their respective vendor and product IDs, you can use the following command (see chapter 8, VBoxManage, page 113): VBoxManage list usbhost On Windows, you can also see all USB devices that are attached to your system in the Device Manager. On Linux, you can use the lsusb command. 2. Serial number. While vendor and product ID are already quite specific to identify USB devices, if you have two identical devices of the same brand and product line, you will also need their serial numbers to filter them out correctly. 3. Remote. This setting specifies whether the device will be local only, or remote only (over VRDP), or either. On a Windows host, you will need to unplug and reconnect a USB device to use it after creating a filter for it. As an example, you could create a new USB filter and specify a vendor ID of 046d (Logitech, Inc), a manufacturer index of 1, and “not remote”. Then any USB devices on the host system produced by Logitech, Inc with a manufacturer index of 1 will be visible to the guest system. Several filters can select a single device – for example, a filter which selects all Logitech devices, and one which selects a particular webcam. You can deactivate filters without deleting them by clicking in the checkbox next to the filter name., 3 Configuring virtual machines 3.10.2 Implementation notes for Windows and Linux hosts On Windows hosts, a kernel mode device driver provides USB proxy support. It implements both a USB monitor, which allows VirtualBox to capture devices when they are plugged in, and a USB device driver to claim USB devices for a particular virtual machine. As opposed to VirtualBox versions before 1.4.0, system reboots are no longer necessary after installing the driver. Also, you no longer need to replug devices for VirtualBox to claim them. On newer Linux hosts, VirtualBox accesses USB devices through special files in the file system. When VirtualBox is installed, these are made available to all users in the vboxusers system group. In order to be able to access USB from guest systems, make sure that you are a member of this group. On older Linux hosts, USB devices are accessed using the usbfs file system. Therefore, the user executing VirtualBox needs read and write permission to the USB file system. Most distri- butions provide a group (e.g. usbusers) which the VirtualBox user needs to be added to. Also, VirtualBox can only proxy to virtual machines USB devices which are not claimed by a Linux host USB driver. The Driver= entry in /proc/bus/usb/devices will show you which devices are currently claimed. Please refer to chapter 12.7.7, USB not working, page 222 also for details about usbfs. 3.11 Shared folders Shared folders allow you to easily exchange data between a virtual machine and your host. This feature requires that the VirtualBox Guest Additions be installed in a virtual machine and is described in detail in chapter 4.3, Shared folders, page 70. 3.12 Alternative firmware (EFI) Starting with release 3.1, VirtualBox includes experimental support for the Extensible Firmware Interface (EFI), which is a new industry standard intended to eventually replace the legacy BIOS as the primary interface for bootstrapping computers and certain system services later. By default, VirtualBox uses the BIOS firmware for virtual machines. To use EFI for a given virtual machine, you can enable EFI in the machine’s “Settings” dialog (see chapter 3.4.1, “Moth- erboard” tab, page 49). Alternatively, use the VBoxManage command line interface like this: VBoxManage modifyvm "VM name" -firmware efi To switch back to using the BIOS, use: VBoxManage modifyvm "VM name" -firmware bios One notable user of EFI is Apple’s Mac OS X, but recent Linuxes (such as Fedora 11) and Windows (starting with Vista) offer special versions that can be booted using EFI as well. Another possible use of EFI in VirtualBox is development and testing of EFI applications, with- out booting any OS. Note that the VirtualBox EFI support is experimental and will be enhanced as EFI matures and becomes more widespread. While Mac OS X and Linux guests are known to work fine, Windows guests are currently unable to boot with the VirtualBox EFI implementation. 3.12.1 Video modes in EFI EFI provides two distinct video interfaces: GOP (Graphics Output Protocol) and UGA (Universal Graphics Adapter). Mac OS X uses GOP, while Linux tends to use UGA. VirtualBox provides a configuration option to control the framebuffer size for both interfaces. To control GOP, use the following VBoxManage command:, 3 Configuring virtual machines VBoxManage setextradata "VM name" VBoxInternal2/EfiGopMode N Where N can be one of 0,1,2,3,4,5 referring to the 640x480, 800x600, 1024x768, 1280x1024, 1440x900, 1920x1200 screen resolution respectively. To change the UGA resolution: VBoxManage setextradata "VM name" VBoxInternal2/UgaHorizontalResolution 1440 VBoxManage setextradata "VM name" VBoxInternal2/UgaVerticalResolution 900 The video mode for both GOP and UGA can only be changed when the VM is powered off and remains persistent until changed. 3.12.2 Specifying boot arguments It is currently not possible to manipulate EFI variables from within a running guest (e.g., setting the “boot-args” variable by running the nvram tool in a Mac OS X guest will not work). As an alternative way, “VBoxInternal2/EfiBootArgs” extradata can be passed to a VM in order to set the “boot-args” variable. To change the “boot-args” EFI variable: VBoxManage setextradata "VM name" VBoxInternal2/EfiBootArgs , 4 Guest Additions The previous chapter covered getting started with VirtualBox and installing operating systems in a virtual machine. For any serious and interactive use, the VirtualBox Guest Additions will make your life much easier by providing closer integration between host and guest and improving the interactive performance of guest systems. This chapter describes the Guest Additions in detail. 4.1 Introduction As mentioned in chapter 1.2, Some terminology, page 12, the Guest Additions are designed to be installed inside a virtual machine after the guest operating system has been installed. They consist of device drivers and system applications that optimize the guest operating system for better performance and usability. Please see chapter 3.1, Supported guest operating systems, page 45 for details on what guest operating systems are fully supported with Guest Additions by VirtualBox. The VirtualBox Guest Additions for all supported guest operating systems are provided as a single CD-ROM image file which is called VBoxGuestAdditions.iso. This image file is located in the installation directory of VirtualBox. To install the Guest Additions for a particular VM, you mount this ISO file in your VM as a virtual CD-ROM and install from there. The Guest Additions offer the following features: Mouse pointer integration To overcome the limitations for mouse support that were described in chapter 1.8.2, Capturing and releasing keyboard and mouse, page 22, this provides you with seamless mouse support. You will only have one mouse pointer and pressing the Host key is no longer required to “free” the mouse from being captured by the guest OS. To make this work, a special mouse driver is installed in the guest that communicates with the “real” mouse driver on your host and moves the guest mouse pointer accordingly. Shared folders These provide an easy way to exchange files between the host and the guest. Much like ordinary Windows network shares, you can tell VirtualBox to treat a certain host directory as a shared folder, and VirtualBox will make it available to the guest operating system as a network share, irrespective of whether guest actually has a network. For details, please refer to chapter 4.3, Shared folders, page 70. Better video support While the virtual graphics card which VirtualBox emulates for any guest operating system provides all the basic features, the custom video drivers that are installed with the Guest Additions provide you with extra high and non-standard video modes as well as accelerated video performance. In addition, with Windows, Linux and Solaris guests, you can resize the virtual machine’s window if the Guest Additions are installed. The video resolution in the guest will be au- tomatically adjusted (as if you had manually entered an arbitrary resolution in the guest’s display settings). Please see chapter 1.8.5, Resizing the machine’s window, page 24 also. Finally, if the Guest Additions are installed, 3D graphics and 2D video for guest applications can be accelerated; see chapter 4.4, Hardware-accelerated graphics, page 73. Seamless windows With this feature, the individual windows that are displayed on the desktop of the virtual machine can be mapped on the host’s desktop, as if the underlying application was actually running on the host. See chapter 4.5, Seamless windows, page 74 for details., 4 Guest Additions Generic host/guest communication channels The Guest Additions enable you to control and monitor guest execution in ways other than those mentioned above. The so-called “guest properties” provide a generic string-based mechanism to exchange data bits between a guest and a host, some of which have special meanings for controlling and monitoring the guest; see chapter 4.6, Guest properties, page 75 for details. Additionally, applications can be started in a guest from the host; see chapter 4.7, Guest control, page 77. Time synchronization With the Guest Additions installed, VirtualBox can ensure that the guest’s system time is better synchronized with that of the host. For various reasons, the time in the guest might run at a slightly different rate than the time on the host. The host could be receiving updates via NTP and its own time might not run linearly. A VM could also be paused, which stops the flow of time in the guest for a shorter or longer period of time. When the wall clock time between the guest and host only differs slightly, the time synchronization service attempts to gradually and smoothly adjust the guest time in small increments to either “catch up” or “lose” time. When the difference is too great (e.g., a VM paused for hours or restored from saved state), the guest time is changed immediately, without a gradual adjustment. The Guest Additions will re-synchronize the time regularly. See chapter 9.14.3, Tuning the Guest Additions time synchronization parameters, page 179 for how to configure the parameters of the time synchronization mechanism. Shared clipboard With the Guest Additions installed, the clipboard of the guest operating sys- tem can optionally be shared with your host operating system; see chapter 3.3, General settings, page 48. Automated logons (credentials passing) For details, please see chapter 9.2, Automated guest logons, page 160. Each version of VirtualBox, even minor releases, ship with their own version of the Guest Additions. While the interfaces through which the VirtualBox core communicates with the Guest Additions are kept stable so that Guest Additions already installed in a VM should continue to work when VirtualBox is upgraded on the host, for best results, it is recommended to keep the Guest Additions at the same version. Starting with VirtualBox 3.1, the Windows and Linux Guest Additions therefore check auto- matically whether they have to be updated. If the host is running a newer VirtualBox version than the Guest Additions, a notification with further instructions is displayed in the guest. To disable this update check for the Guest Additions of a given virtual machine, set the value of its /VirtualBox/GuestAdd/CheckHostVersion guest property to 0; see chapter 4.6, Guest properties, page 75 for details. 4.2 Installing and Maintaining Guest Additions Guest Additions are available for virtual machines running Windows, Linux, Solaris or OS/2. The following sections describe the specifics of each variant in detail. 4.2.1 Guest Additions for Windows The VirtualBox Windows Guest Additions are designed to be installed in a virtual machine run- ning a Windows operating system. The following versions of Windows guests are supported: • Microsoft Windows NT 4.0 (any service pack) • Microsoft Windows 2000 (any service pack), 4 Guest Additions • Microsoft Windows XP (any service pack) • Microsoft Windows Server 2003 (any service pack) • Microsoft Windows Server 2008 • Microsoft Windows Vista (all editions) • Microsoft Windows 7 (all editions) • Microsoft Windows 8 (all editions) • Microsoft Windows Server 2012 4.2.1.1 Installation In the “Devices” menu in the virtual machine’s menu bar, VirtualBox has a handy menu item named “Insert Guest Additions CD image”, which mounts the Guest Additions ISO file inside your virtual machine. A Windows guest should then automatically start the Guest Additions installer, which installs the Guest Additions into your Windows guest. Other guest operating systems (or if automatic start of software on CD is disabled) need manual start of the installer. Note: For the basic Direct3D acceleration to work in a Windows Guest, you have to install the Guest Additions in “Safe Mode”. This does not apply to the experimental WDDM Direct3D video driver available for Vista and Windows 7 guests, see chapter 14, Known limitations, page 228 for details.a aThe experimental WDDM driver was added with VirtualBox 4.1. If you prefer to mount the additions manually, you can perform the following steps: 1. Start the virtual machine in which you have installed Windows. 2. Select “Mount CD/DVD-ROM” from the “Devices” menu in the virtual machine’s menu bar and then “CD/DVD-ROM image”. This brings up the Virtual Media Manager described in chapter 5.3, The Virtual Media Manager, page 83. 3. In the Virtual Media Manager, press the “Add” button and browse your host file system for the VBoxGuestAdditions.iso file: • On a Windows host, you can find this file in the VirtualBox installation directory (usually under C:\Program files\Oracle\VirtualBox ). • On Mac OS X hosts, you can find this file in the application bundle of VirtualBox. (Right click on the VirtualBox icon in Finder and choose Show Package Contents. There it is located in the Contents/MacOS folder.) • On a Linux host, you can find this file in the additions folder under where you installed VirtualBox (normally /opt/VirtualBox/). • On Solaris hosts, you can find this file in the additions folder under where you installed VirtualBox (normally /opt/VirtualBox). 4. Back in the Virtual Media Manager, select that ISO file and press the “Select” button. This will mount the ISO file and present it to your Windows guest as a CD-ROM., 4 Guest Additions Unless you have the Autostart feature disabled in your Windows guest, Windows will now autostart the VirtualBox Guest Additions installation program from the Additions ISO. If the Autostart feature has been turned off, choose VBoxWindowsAdditions.exe from the CD/DVD drive inside the guest to start the installer. The installer will add several device drivers to the Windows driver database and then invoke the hardware detection wizard. Depending on your configuration, it might display warnings that the drivers are not digitally signed. You must confirm these in order to continue the installation and properly install the Additions. After installation, reboot your guest operating system to activate the Additions. 4.2.1.2 Updating the Windows Guest Additions Windows Guest Additions can be updated by running the installation program again, as previ- ously described. This will then replace the previous Additions drivers with updated versions. Alternatively, you may also open the Windows Device Manager and select “Update driver...“ for two devices: 1. the VirtualBox Graphics Adapter and 2. the VirtualBox System Device. For each, choose to provide your own driver and use “Have Disk” to point the wizard to the CD-ROM drive with the Guest Additions. 4.2.1.3 Unattended Installation As a prerequiste for performing an unattended installation of the VirtualBox Guest Additions on a Windows guest, there need to be Oracle CA (Certificate Authority) certificates installed in order to prevent user intervention popus which will undermine a silent installation. Note: On some Windows versions like Windows 2000 and Windows XP the user in- tervention popups mentioned above always will be displayed, even after importing the Oracle certificates. Since VirtualBox 4.2 installing those CA certificates on a Windows guest can be done in an automated fashion using the VBoxCertUtil.exe utility found on the Guest Additions installation CD in the cert folder: • Log in as Administrator on the guest. • Mount the VirtualBox Guest Additions .ISO. • Open a command line window on the guest and change to the cert folder on the VirtualBox Guest Additions CD. • Do VBoxCertUtil add-trusted-publisher oracle-vbox.cer -root oracle-vbox.cer This will install the certificates to the certificate store. When installing the same certificate more than once, an appropriate error will be displayed. Prior to VirtualBox 4.2 the Oracle CA certificates need to be imported in more manual style using the certutil.exe utility, which is shipped since Windows Vista. For Windows versions before Vista you need to download and install certutil.exe manually. Since the certificates are not accompanied on the VirtualBox Guest Additions CD-ROM prior to 4.2, these need to get extracted from a signed VirtualBox executable first. In the following example the needed certificates will be extracted from the VirtualBox Win- dows Guest Additions installer on the CD-ROM:, 4 Guest Additions VeriSign Code Signing CA • In the Windows Explorer, right click on VBoxWindowsAdditions-.exe, click on “Properties” • Go to tab “Digital Signatures”, choose “Oracle Corporation” and click on “Details” • In tab “General” click on “View Certificate” • In tab “Certification Path” select “VeriSign Class 3 Public Primary CA” • Click on “View Certificate” • In tab “Details” click on “Copy to File ...“ • In the upcoming wizard choose “DER encoded binary X.509 (.CER)“ and save the certificate file to a local path, finish the wizard • Close certificate dialog for “Verisign Class 3 Code Signing 2010 CA” Oracle Corporation • In the Windows Explorer, right click on VBoxWindowsAdditions-.exe, click on “Properties” • Go to tab “Digital Signatures”, choose “Oracle Corporation” and click on “Details” • In tab “General” click on “View Certificate” • In tab “Details” click on “Copy to File ...“ • In the upcoming wizard choose “DER encoded binary X.509 (.CER)“ and save the certificate file to a local path, finish the wizard • Close certificate dialog for “Oracle Corporation” After exporting the two certificates above they can be imported into the certificate store using the certutil.exe utility: certutil -addstore -f Root "" In order to allow for completely unattended guest installations, you can specify a command line parameter to the install launcher: VBoxWindowsAdditions.exe /S This automatically installs the right files and drivers for the corresponding platform (32- or 64-bit). Note: By default on an unattended installation on a Windows 7 or 8 guest, there will be the XPDM graphics driver installed. This graphics driver does not support Win- dows Aero / Direct3D on the guest - instead the experimental WDDM graphics driver needs to be installed. To select this driver by default, add the command line parameter /with_wddm when invoking the Windows Guest Additions installer. Note: For Windows Aero to run correctly on a guest, the guest’s VRAM size needs to be configured to at least 128 MB. For more options regarding unattended guest installations, consult the command line help by using the command: VBoxWindowsAdditions.exe /?, 4 Guest Additions 4.2.1.4 Manual file extraction If you would like to install the files and drivers manually, you can extract the files from the Windows Guest Additions setup by typing: VBoxWindowsAdditions.exe /extract To explicitly extract the Windows Guest Additions for another platform than the current run- ning one (e.g. 64-bit files on a 32-bit system), you have to execute the appropriate platform installer (VBoxWindowsAdditions-x86.exe or VBoxWindowsAdditions-amd64.exe) with the /extract parameter. 4.2.2 Guest Additions for Linux Like the Windows Guest Additions, the VirtualBox Guest Additions for Linux are a set of device drivers and system applications which may be installed in the guest operating system. The following Linux distributions are officially supported: • Oracle Linux as of version 5 including UEK kernels; • Fedora as of Fedora Core 4; • Redhat Enterprise Linux as of version 3; • SUSE and openSUSE Linux as of version 9; • Ubuntu as of version 5.10. Many other distributions are known to work with the Guest Additions. The version of the Linux kernel supplied by default in SUSE and openSUSE 10.2, Ubuntu 6.10 (all versions) and Ubuntu 6.06 (server edition) contains a bug which can cause it to crash during startup when it is run in a virtual machine. The Guest Additions work in those distributions. Note that some Linux distributions already come with all or part of the VirtualBox Guest Additions. You may choose to keep the distribution’s version of the Guest Additions but these are often not up to date and limited in functionality, so we recommend replacing them with the Guest Additions that come with VirtualBox. The VirtualBox Linux Guest Additions installer tries to detect existing installation and replace them but depending on how the distribution integrates the Guest Additions, this may require some manual interaction. It is highly recommended to take a snapshot of the virtual machine before replacing pre-installed Guest Additions. 4.2.2.1 Installing the Linux Guest Additions The VirtualBox Guest Additions for Linux are provided on the same virtual CD-ROM file as the Guest Additions for Windows described above. They also come with an installation program guiding you through the setup process, although, due to the significant differences between Linux distributions, installation may be slightly more complex. Installation generally involves the following steps: 1. Before installing the Guest Additions, you will have to prepare your guest system for building external kernel modules. This works similarly as described in chapter 2.3.2, The VirtualBox kernel module, page 38, except that this step must now be performed in your Linux guest instead of on a Linux host system, as described there. Again, as with Linux hosts, we recommend using DKMS if it is available for the guest system. If it is not installed, use this command for Ubuntu/Debian systems: sudo apt-get install dkms or for Fedora systems:, 4 Guest Additions yum install dkms Be sure to install DKMS before installing the Linux Guest Additions. If DKMS is not available or not installed, the guest kernel modules will need to be recreated manually whenever the guest kernel is updated using the command /etc/init.d/vboxadd setup as root. 2. Insert the VBoxGuestAdditions.iso CD file into your Linux guest’s virtual CD-ROM drive, exactly the same way as described for a Windows guest in chapter 4.2.1.1, Installation, page 62. 3. Change to the directory where your CD-ROM drive is mounted and execute as root: sh ./VBoxLinuxAdditions.run For your convenience, we provide the following step-by-step instructions for freshly installed copies of recent versions of the most popular Linux distributions. After these preparational steps, you can execute the VirtualBox Guest Additions installer as described above. Ubuntu 1. In order to fully update your guest system, open a terminal and run apt-get update as root followed by apt-get upgrade 2. Install DKMS using apt-get install dkms 3. Reboot your guest system in order to activate the updates and then proceed as described above. Fedora 1. In order to fully update your guest system, open a terminal and run yum update as root. 2. Install DKMS and the GNU C compiler using yum install dkms followed by yum install gcc 3. Reboot your guest system in order to activate the updates and then proceed as described above., 4 Guest Additions openSUSE 1. In order to fully update your guest system, open a terminal and run zypper update as root. 2. Install the make tool and the GNU C compiler using zypper install make gcc 3. Reboot your guest system in order to activate the updates. 4. Find out which kernel you are running using uname -a An example would be 2.6.31.12-0.2-default which refers to the “default” kernel. Then install the correct kernel development package. In the above example this would be zypper install kernel-default-devel 5. Make sure that your running kernel (uname -a) and the kernel packages you have installed (rpm -qa kernel\*) have the exact same version number. Proceed with the installation as described above. SuSE Linux Enterprise Desktop (SLED) 1. In order to fully update your guest system, open a terminal and run zypper update as root. 2. Install the GNU C compiler using zypper install gcc 3. Reboot your guest system in order to activate the updates. 4. Find out which kernel you are running using uname -a An example would be 2.6.27.19-5.1-default which refers to the “default” kernel. Then install the correct kernel development package. In the above example this would be zypper install kernel-syms kernel-source 5. Make sure that your running kernel (uname -a) and the kernel packages you have installed (rpm -qa kernel\*) have the exact same version number. Proceed with the installation as described above. Mandrake 1. Mandrake ships with the VirtualBox Guest Additions which will be replaced if you follow these steps. 2. In order to fully update your guest system, open a terminal and run urpmi -auto-update as root. 3. Reboot your system in order to activate the updates. 4. Install DKMS using urpmi dkms and make sure to choose the correct kernel-devel package when asked by the installer (use uname -a to compare)., 4 Guest Additions Oracle Linux, Red Hat Enterprise Linux and CentOS 1. For versions prior to 6, add divider=10 to the kernel boot options in /etc/grub.conf to reduce the idle CPU load. 2. In order to fully update your guest system, open a terminal and run yum update as root. 3. Install the GNU C compiler and the kernel development packages using yum install gcc followed by yum install kernel-devel For Oracle UEK kernels, use yum install kernel-uek-devel to install the UEK kernel headers. 4. Reboot your guest system in order to activate the updates and then proceed as described above. 5. In case Oracle Linux does not find the required packages, you either have to install them from a different source (e.g. DVD) or use Oracle’s public Yum server located at http: //public-yum.oracle.com. Debian 1. In order to fully update your guest system, open a terminal and run apt-get update as root followed by apt-get upgrade 2. Install the make tool and the GNU C compiler using apt-get install make gcc 3. Reboot your guest system in order to activate the updates. 4. Determine the exact version of your kernel using uname -a and install the correct version of the linux-headers package, e.g. using apt-get install linux-headers-2.6.26-2-686 4.2.2.2 Graphics and mouse integration In Linux and Solaris guests, VirtualBox graphics and mouse integration goes through the X Win- dow System. VirtualBox can use the X.Org variant of the system (or XFree86 version 4.3 which is identical to the first X.Org release). During the installation process, the X.Org display server will be set up to use the graphics and mouse drivers which come with the Guest Additions. After installing the Guest Additions into a fresh installation of a supported Linux distribution or Solaris system (many unsupported systems will work correctly too), the guest’s graphics mode will change to fit the size of the VirtualBox window on the host when it is resized. You can also ask the guest system to switch to a particular resolution by sending a “video mode hint” using the VBoxManage tool., 4 Guest Additions Multiple guest monitors are supported in guests using the X.Org server version 1.3 (which is part of release 7.3 of the X Window System version 11) or a later version. The layout of the guest screens can be adjusted as needed using the tools which come with the guest operating system. If you want to understand more about the details of how the X.Org drivers are set up (in particular if you wish to use them in a setting which our installer doesn’t handle correctly), you should read chapter 9.4.2, Guest graphics and mouse driver setup in depth, page 165. 4.2.2.3 Updating the Linux Guest Additions The Guest Additions can simply be updated by going through the installation procedure again with an updated CD-ROM image. This will replace the drivers with updated versions. You should reboot after updating the Guest Additions. 4.2.2.4 Uninstalling the Linux Guest Additions If you have a version of the Guest Additions installed on your virtual machine and wish to remove it without installing new ones, you can do so by inserting the Guest Additions CD image into the virtual CD-ROM drive as described above and running the installer for the current Guest Additions with the “uninstall” parameter from the path that the CD image is mounted on in the guest: sh ./VBoxLinuxAdditions.run uninstall While this will normally work without issues, you may need to do some manual cleanup of the guest (particularly of the XFree86Config or xorg.conf file) in some cases, particularly if the Additions version installed or the guest operating system were very old, or if you made your own changes to the Guest Additions setup after you installed them. Starting with version 3.1.0, you can uninstall the Additions by invoking /opt/VBoxGuestAdditions-4.3.12/uninstall.sh Please replace /opt/VBoxGuestAdditions-4.3.12 with the correct Guest Additions installation directory. 4.2.3 Guest Additions for Solaris Like the Windows Guest Additions, the VirtualBox Guest Additions for Solaris take the form of a set of device drivers and system applications which may be installed in the guest operating system. The following Solaris distributions are officially supported: • Solaris 11 including Solaris 11 Express; • Solaris 10 (u5 and higher); Other distributions may work if they are based on comparable software releases. 4.2.3.1 Installing the Solaris Guest Additions The VirtualBox Guest Additions for Solaris are provided on the same ISO CD-ROM as the Ad- ditions for Windows and Linux described above. They also come with an installation program guiding you through the setup process. Installation involves the following steps:, 4 Guest Additions 1. Mount the VBoxGuestAdditions.iso file as your Solaris guest’s virtual CD-ROM drive, exactly the same way as described for a Windows guest in chapter 4.2.1.1, Installation, page 62. If in case the CD-ROM drive on the guest doesn’t get mounted (observed on some versions of Solaris 10), execute as root: svcadm restart volfs 2. Change to the directory where your CD-ROM drive is mounted and execute as root: pkgadd -G -d ./VBoxSolarisAdditions.pkg 3. Choose “1” and confirm installation of the Guest Additions package. After the installation is complete, re-login to X server on your guest to activate the X11 Guest Additions. 4.2.3.2 Uninstalling the Solaris Guest Additions The Solaris Guest Additions can be safely removed by removing the package from the guest. Open a root terminal session and execute: pkgrm SUNWvboxguest 4.2.3.3 Updating the Solaris Guest Additions The Guest Additions should be updated by first uninstalling the existing Guest Additions and then installing the new ones. Attempting to install new Guest Additions without removing the existing ones is not possible. 4.2.4 Guest Additions for OS/2 VirtualBox also ships with a set of drivers that improve running OS/2 in a virtual machine. Due to restrictions of OS/2 itself, this variant of the Guest Additions has a limited feature set; see chapter 14, Known limitations, page 228 for details. The OS/2 Guest Additions are provided on the same ISO CD-ROM as those for the other platforms. As a result, mount the ISO in OS/2 as described previously. The OS/2 Guest Additions are located in the directory \32bit\OS2. As we do not provide an automatic installer at this time, please refer to the readme.txt file in that directory, which describes how to install the OS/2 Guest Additions manually. 4.3 Shared folders With the “shared folders” feature of VirtualBox, you can access files of your host system from within the guest system. This is similar how you would use network shares in Windows networks – except that shared folders do not need require networking, only the Guest Additions. Shared Folders are supported with Windows (2000 or newer), Linux and Solaris guests. Shared folders must physically reside on the host and are then shared with the guest, which uses a special file system driver in the Guest Addition to talk to the host. For Windows guests, shared folders are implemented as a pseudo-network redirector; for Linux and Solaris guests, the Guest Additions provide a virtual file system. To share a host folder with a virtual machine in VirtualBox, you must specify the path of that folder and choose for it a “share name” that the guest can use to access it. Hence, first create the shared folder on the host; then, within the guest, connect to it. There are several ways in which shared folders can be set up for a particular virtual machine: • In the window of a running VM, you can select “Shared folders” from the “Devices” menu, or click on the folder icon on the status bar in the bottom right corner., 4 Guest Additions • If a VM is not currently running, you can configure shared folders in each virtual machine’s “Settings” dialog. • From the command line, you can create shared folders using VBoxManage, as follows: VBoxManage sharedfolder add "VM name" -name "sharename" -hostpath "C:\test" See chapter 8.29, VBoxManage sharedfolder add/remove, page 145 for details. There are two types of shares: 1. VM shares which are only available to the VM for which they have been defined; 2. transient VM shares, which can be added and removed at runtime and do not persist after a VM has stopped; for these, add the -transient option to the above command line. Shared folders have read/write access to the files at the host path by default. To restrict the guest to have read-only access, create a read-only shared folder. This can either be achieved using the GUI or by appending the parameter -readonly when creating the shared folder with VBoxManage. Starting with version 4.0, VirtualBox shared folders also support symbolic links (symlinks), under the following conditions: 1. The host operating system must support symlinks (i.e. a Mac, Linux or Solaris host is required). 2. Currently only Linux and Solaris Guest Additions support symlinks. 4.3.1 Manual mounting You can mount the shared folder from inside a VM the same way as you would mount an ordinary network share: • In a Windows guest, shared folders are browseable and therefore visible in Windows Ex- plorer. So, to attach the host’s shared folder to your Windows guest, open Windows Ex- plorer and look for it under “My Networking Places” -> “Entire Network” -> “VirtualBox Shared Folders”. By right-clicking on a shared folder and selecting “Map network drive” from the menu that pops up, you can assign a drive letter to that shared folder. Alternatively, on the Windows command line, use the following: net use x: \\vboxsvr\sharename While vboxsvr is a fixed name (note that vboxsrv would also work), replace “x:“ with the drive letter that you want to use for the share, and sharename with the share name specified with VBoxManage. • In a Linux guest, use the following command: mount -t vboxsf [-o OPTIONS] sharename mountpoint To mount a shared folder during boot, add the following entry to /etc/fstab: sharename mountpoint vboxsf defaults00• In a Solaris guest, use the following command: mount -F vboxfs [-o OPTIONS] sharename mountpoint Replace sharename (use lowercase) with the share name specified with VBoxManage or the GUI, and mountpoint with the path where you want the share to be mounted on the guest (e.g. /mnt/share). The usual mount rules apply, that is, create this directory first if it does not exist yet. Here is an example of mounting the shared folder for the user “jack” on Solaris:, 4 Guest Additions $id uid=5000(jack) gid=1(other)$ mkdir /export/home/jack/mount $pfexec mount -F vboxfs -o uid=5000,gid=1 jackshare /export/home/jack/mount$ cd ~/mount $ls sharedfile1.mp3 sharedfile2.txt$ Beyond the standard options supplied by the mount command, the following are available: iocharset CHARSET to set the character set used for I/O operations. Note that on Linux guests, if the “iocharset” option is not specified then the Guest Additions driver will attempt to use the character set specified by the CONFIG_NLS_DEFAULT kernel option. If this option is not set either then UTF-8 will be used. Also, convertcp CHARSET is available in order to specify the character set used for the shared folder name (utf8 by default). The generic mount options (documented in the mount manual page) apply also. Espe- cially useful are the options uid, gid and mode, as they allow access by normal users (in read/write mode, depending on the settings) even if root has mounted the filesystem. 4.3.2 Automatic mounting Starting with version 4.0, VirtualBox can mount shared folders automatically, at your option. If automatic mounting is enabled for a specific shared folder, the Guest Additions will automatically mount that folder as soon as a user logs into the guest OS. The details depend on the guest OS type: • With Windows guests, any auto-mounted shared folder will receive its own drive letter (e.g. E:) depending on the free drive letters remaining in the guest. If there no free drive letters left, auto-mounting will fail; as a result, the number of auto- mounted shared folders is typically limited to 22 or less with Windows guests. • With Linux guests, auto-mounted shared folders are mounted into the /media directory, along with the prefix sf_. For example, the shared folder myfiles would be mounted to /media/sf_myfiles on Linux and /mnt/sf_myfiles on Solaris. The guest property /VirtualBox/GuestAdd/SharedFolders/MountPrefix determines the prefix that is used. Change that guest property to a value other than “sf” to change that prefix; see chapter 4.6, Guest properties, page 75 for details. Note: Access to auto-mounted shared folders is only granted to the user group vboxsf, which is created by the VirtualBox Guest Additions installer. Hence guest users have to be member of that group to have read/write access or to have read-only access in case the folder is not mapped writable. To change the mount directory to something other than /media, you can set the guest property /VirtualBox/GuestAdd/SharedFolders/MountDir. • Solaris guests behave like Linux guests except that /mnt is used as the default mount directory instead of /media. To have any changes to auto-mounted shared folders applied while a VM is running, the guest OS needs to be rebooted. (This applies only to auto-mounted shared folders, not the ones which are mounted manually.), 4 Guest Additions 4.4 Hardware-accelerated graphics 4.4.1 Hardware 3D acceleration (OpenGL and Direct3D 8/9) The VirtualBox Guest Additions contain experimental hardware 3D support for Windows, Linux and Solaris guests.1 With this feature, if an application inside your virtual machine uses 3D features through the OpenGL or Direct3D 8/9 programming interfaces, instead of emulating them in software (which would be slow), VirtualBox will attempt to use your host’s 3D hardware. This works for all supported host platforms (Windows, Mac, Linux, Solaris), provided that your host operating system can make use of your accelerated 3D hardware in the first place. The 3D acceleration currently has the following preconditions: 1. It is only available for certain Windows, Linux and Solaris guests. In particular: • 3D acceleration with Windows guests requires Windows 2000, Windows XP, Vista or Windows 7. Both OpenGL and Direct3D 8/9 (not with Windows 2000) are supported (experimental). • OpenGL on Linux requires kernel 2.6.27 and higher as well as X.org server version 1.5 and higher. Ubuntu 10.10 and Fedora 14 have been tested and confirmed as working. • OpenGL on Solaris guests requires X.org server version 1.5 and higher. 2. The Guest Additions must be installed. Note: For the basic Direct3D acceleration to work in a Windows Guest, VirtualBox needs to replace Windows system files in the virtual machine. As a result, the Guest Additions installation program offers Direct3D acceleration as an option that must be explicitly enabled. Also, you must install the Guest Additions in “Safe Mode”. This does not apply to the experimental WDDM Direct3D video driver available for Vista and Windows 7 guests, see chapter 14, Known limitations, page 228 for details. 3. Because 3D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings (see chapter 3.3, General settings, page 48). Note: Untrusted guest systems should not be allowed to use VirtualBox’s 3D accelera- tion features, just as untrusted host software should not be allowed to use 3D acceler- ation. Drivers for 3D hardware are generally too complex to be made properly secure and any software which is allowed to access them may be able to compromise the oper- ating system running them. In addition, enabling 3D acceleration gives the guest direct access to a large body of additional program code in the VirtualBox host process which it might conceivably be able to use to crash the virtual machine. With VirtualBox 4.1, Windows Aero theme support is added for Windows Vista and Windows 7 guests. To enable Aero theme support, the experimental VirtualBox WDDM video driver must be installed, which is available with the Guest Additions installation. Since the WDDM video driver is still experimental at this time, it is not installed by default and must be manually selected in the Guest Additions installer by answering “No” int the “Would you like to install basic Direct3D support” dialog displayed when the Direct3D feature is selected. 1OpenGL support for Windows guests was added with VirtualBox 2.1; support for Linux and Solaris followed with VirtualBox 2.2. With VirtualBox 3.0, Direct3D 8/9 support was added for Windows guests. OpenGL 2.0 is now supported as well. With VirtualBox 4.1 Windows Aero theme support is added for Windows Vista and Windows 7 guests (experimental), 4 Guest Additions Note: Unlike the current basic Direct3D support, the WDDM video driver installation does not require the “Safe Mode”. The Aero theme is not enabled by default. To enable it • In Windows Vista guest: right-click on the desktop, in the context menu select “Personal- ize”, then select “Windows Color and Appearance” in the “Personalization” window, in the “Appearance Settings” dialog select “Windows Aero” and press “OK” • In Windows 7 guest: right-click on the desktop, in the context menu select “Personalize” and select any Aero theme in the “Personalization” window Technically, VirtualBox implements this by installing an additional hardware 3D driver inside your guest when the Guest Additions are installed. This driver acts as a hardware 3D driver and reports to the guest operating system that the (virtual) hardware is capable of 3D hardware acceleration. When an application in the guest then requests hardware acceleration through the OpenGL or Direct3D programming interfaces, these are sent to the host through a special communication tunnel implemented by VirtualBox, and then the host performs the requested 3D operation via the host’s programming interfaces. 4.4.2 Hardware 2D video acceleration for Windows guests Starting with version 3.1, the VirtualBox Guest Additions contain experimental hardware 2D video acceleration support for Windows guests. With this feature, if an application (e.g. a video player) inside your Windows VM uses 2D video overlays to play a movie clip, then VirtualBox will attempt to use your host’s video acceler- ation hardware instead of performing overlay stretching and color conversion in software (which would be slow). This currently works for Windows, Linux and Mac host platforms, provided that your host operating system can make use of 2D video acceleration in the first place. The 2D video acceleration currently has the following preconditions: 1. It is only available for Windows guests (XP or later). 2. The Guest Additions must be installed. 3. Because 2D support is still experimental at this time, it is disabled by default and must be manually enabled in the VM settings (see chapter 3.3, General settings, page 48). Technically, VirtualBox implements this by exposing video overlay DirectDraw capabilities in the Guest Additions video driver. The driver sends all overlay commands to the host through a special communication tunnel implemented by VirtualBox. On the host side, OpenGL is then used to implement color space transformation and scaling 4.5 Seamless windows With the “seamless windows” feature of VirtualBox, you can have the windows that are displayed within a virtual machine appear side by side next to the windows of your host. This feature is supported for the following guest operating systems (provided that the Guest Additions are installed): • Windows guests (support added with VirtualBox 1.5); • Supported Linux or Solaris guests running the X Window System (added with VirtualBox 1.6)., 4 Guest Additions After seamless windows are enabled (see below), VirtualBox suppresses the display of the Desktop background of your guest, allowing you to run the windows of your guest operating system seamlessly next to the windows of your host: To enable seamless mode, after starting the virtual machine, press the Host key (normally the right control key) together with “L”. This will enlarge the size of the VM’s display to the size of your host screen and mask out the guest operating system’s background. To go back to the “normal” VM display (i.e. to disable seamless windows), press the Host key and “L” again. 4.6 Guest properties Starting with version 2.1, VirtualBox allows for requesting certain properties from a running guest, provided that the VirtualBox Guest Additions are installed and the VM is running. This is good for two things: 1. A number of predefined VM characteristics are automatically maintained by VirtualBox and can be retrieved on the host, e.g. to monitor VM performance and statistics. 2. In addition, arbitrary string data can be exchanged between guest and host. This works in both directions. To accomplish this, VirtualBox establishes a private communication channel between the VirtualBox Guest Additions and the host, and software on both sides can use this channel to exchange string data for arbitrary purposes. Guest properties are simply string keys to which a value is attached. They can be set (written to) by either the host and the guest, and they can also be read from both sides. In addition to establishing the general mechanism of reading and writing values, a set of predefined guest properties is automatically maintained by the VirtualBox Guest Additions to allow for retrieving interesting guest data such as the guest’s exact operating system and service pack level, the installed version of the Guest Additions, users that are currently logged into the guest OS, network statistics and more. These predefined properties are all prefixed with /VirtualBox/ and organized into a hierarchical tree of keys., 4 Guest Additions

| usbdetach |

## SSE4.2 instructions

To provide SSE 4.1 / SSE 4.2 support to guests, the host CPU has to implement these instruction sets. Starting with VirtualBox 4.3.8 it is possible to enable these instructions for certain guests using the following commands: VBoxManage setextradata "VM name" VBoxInternal/CPUM/SSE4.1 1 VBoxManage setextradata "VM name" VBoxInternal/CPUM/SSE4.2 1 These are a per-VM settings and they are turned off by default. 9.27 Support for keyboard indicators synchronization This feature makes the host keyboard lights match those of the virtual machine’s virtual key- board when the machine window is selected. It is currently implemented for Mac OS X and Windows hosts and available as of releases 4.2.24 and 4.3.8. The feature can be enabled using the following command: VBoxManage setextradata "VM name" GUI/HidLedsSync "1" In order to disable it, use the same command but change “1” to “0”, or use the VBoxManage command to remove the extra data. This is a per-VM setting and it is disabled by default., 10 Technical background The contents of this chapter are not required to use VirtualBox successfully. The following is provided as additional information for readers who are more familiar with computer architecture and technology and wish to find out more about how VirtualBox works “under the hood”. 10.1 Where VirtualBox stores its files In VirtualBox, a virtual machine and its settings are described in a virtual machine settings file in XML format. In addition, most virtual machine have one or more virtual hard disks, which are typically represented by disk images (e.g. in VDI format). Where all these files are stored depends on which version of VirtualBox created the machine. 10.1.1 Machines created by VirtualBox version 4.0 or later Starting with version 4.0, by default, each virtual machine has one directory on your host com- puter where all the files of that machine are stored – the XML settings file (with a .vbox file extension) and its disk images. By default, this “machine folder” is placed in a common folder called “VirtualBox VMs”, which VirtualBox creates in the current system user’s home directory. The location of this home direc- tory depends on the conventions of the host operating system: • On Windows, this is %HOMEDRIVE%%HOMEPATH%; typically something like C:\Documents and Settings\Username\. • On Mac OS X, this is /Users/username. • On Linux and Solaris, this is /home/username. For simplicity, we will abbreviate this as $HOME below. Using that convention, the common folder for all virtual machines is$HOME/VirtualBox VMs. As an example, when you create a virtual machine called “Example VM”, you will find that VirtualBox creates 1. the folder $HOME/VirtualBox VMs/Example VM/ and, in that folder, 2. the settings file Example VM.vbox and 3. the virtual disk image Example VM.vdi. This is the default layout if you use the “Create new virtual machine” wizard as described in chapter 1.7, Creating your first virtual machine, page 18. Once you start working with the VM, additional files will show up: you will find log files in a subfolder called Logs, and once you have taken snapshots, they will appear in a Snapshots subfolder. For each VM, you can change the location of its snapsnots folder in the VM settings. You can change the default machine folder by selecting “Preferences” from the “File” menu in the VirtualBox main window. Then, in the window that pops up, click on the “General” tab. Alternatively, use VBoxManage setproperty machinefolder; see chapter 8.27, VBoxManage setproperty, page 144., 10 Technical background 10.1.2 Machines created by VirtualBox versions before 4.0 If you have upgraded to VirtualBox 4.0 from an earlier version of VirtualBox, you probably have settings files and disks in the earlier file system layout. Before version 4.0, VirtualBox separated the machine settings files from virtual disk images. The machine settings files had an .xml file extension and resided in a folder called “Machines” under the global VirtualBox configuration directory (see the next section). So, for example, on Linux, this was the hidden$HOME/.VirtualBox/Machines directory. The default hard disks folder was called “HardDisks” and resided in the .VirtualBox folder as well. Both locations could be changed by the user in the global preferences. (The concept of a “default hard disk folder” has been abandoned with VirtualBox 4.0, since disk images now reside in each machine’s folder by default.) The old layout had several severe disadvantages. 1. It was very difficult to move a virtual machine from one host to another because the files involved did not reside in the same folder. In addition, the virtual media of all machines were registered with a global registry in the central VirtualBox settings file ($HOME/.VirtualBox/VirtualBox.xml). To move a machine to another host, it was therefore not enough to move the XML settings file and the disk images (which were in different locations), but the hard disk entries from the global media registry XML had to be meticulously copied as well, which was close to impossible if the machine had snapshots and therefore differencing images. 2. Storing virtual disk images, which can grow very large, under the hidden .VirtualBox directory (at least on Linux and Solaris hosts) made many users wonder where their disk space had gone. Whereas new VMs created with VirtualBox 4.0 or later will conform to the new layout, for maximum compatibility, old VMs are not converted to the new layout. Otherwise machine set- tings would be irrevocably broken if a user downgraded from 4.0 back to an older version of VirtualBox. 10.1.3 Global configuration data In addition to the files of the virtual machines, VirtualBox maintains global configura- tion data. On Linux and Solaris as of VirtualBox 4.3, this is in the hidden directory$HOME/.config/VirtualBox, although $HOME/.VirtualBox will be used if it exists for com- patibility with earlier versions; on Windows (and on Linux and Solaris with VirtualBox 4.2 and earlier) this is in$HOME/.VirtualBox; on a Mac it resides in $HOME/Library/VirtualBox. VirtualBox creates this configuration directory automatically if necessary. Optionally, you can supply an alternate configuration directory by setting the VBOX_USER_HOME environment vari- able, or additionally on Linux or Solaris by using the standard XDG_CONFIG_HOME variable. (Since the global VirtualBox.xml settings file points to all other configuration files, this allows for switching between several VirtualBox configurations entirely.) Most importantly, in this directory, VirtualBox stores its global settings file, another XML file called VirtualBox.xml. This includes global configuration options and the list of registered virtual machines with pointers to their XML settings files. (Neither the location of this file nor its directory has changed with VirtualBox 4.0.) Before VirtualBox 4.0, all virtual media (disk image files) were also contained in a global registry in this settings file. For compatibility, this media registry still exists if you upgrade VirtualBox and there are media from machines which were created with a version before 4.0. If you have no such machines, then there will be no global media registry; with VirtualBox 4.0, each machine XML file has its own media registry. Also before VirtualBox 4.0, the default “Machines” folder and the default “HardDisks” folder resided under the VirtualBox configuration directory (e.g.$HOME/.VirtualBox/Machines on, 10 Technical background Linux). If you are upgrading from a VirtualBox version before 4.0, files in these directories are not automatically moved in order not to break backwards compatibility. 10.1.4 Summary of 4.0 configuration changes The following table gives a brief overview of the configuration changes between older versions and version 4.0 or above: Setting Before 4.0 4.0 or above Default machines folder $HOME/.VirtualBox/Machines$HOME/VirtualBox VMs Default disk image location $HOME/.VirtualBox/HardDisks In each machine’s folder Machine settings file .xml .vbox extension Media registry Global VirtualBox.xml file Each machine settings file Media registration Explicit open/close required Automatic on attach 10.1.5 VirtualBox XML files VirtualBox uses XML for both the machine settings files and the global configuration file, VirtualBox.xml. All VirtualBox XML files are versioned. When a new settings file is created (e.g. because a new virtual machine is created), VirtualBox automatically uses the settings format of the current VirtualBox version. These files may not be readable if you downgrade to an earlier version of VirtualBox. However, when VirtualBox encounters a settings file from an earlier version (e.g. after upgrading VirtualBox), it attempts to preserve the settings format as much as possible. It will only silently upgrade the settings format if the current settings cannot be expressed in the old format, for example because you enabled a feature that was not present in an earlier version of VirtualBox.1 In such cases, VirtualBox backs up the old settings file in the virtual machine’s configuration directory. If you need to go back to the earlier version of VirtualBox, then you will need to manually copy these backup files back. We intentionally do not document the specifications of the VirtualBox XML files, as we must reserve the right to modify them in the future. We therefore strongly suggest that you do not edit these files manually. VirtualBox provides complete access to its configuration data through its the VBoxManage command line tool (see chapter 8, VBoxManage, page 113) and its API (see chapter 11, VirtualBox programming interfaces, page 207). 10.2 VirtualBox executables and components VirtualBox was designed to be modular and flexible. When the VirtualBox graphical user inter- face (GUI) is opened and a VM is started, at least three processes are running: 1. VBoxSVC, the VirtualBox service process which always runs in the background. This pro- cess is started automatically by the first VirtualBox client process (the GUI, VBoxManage, VBoxHeadless, the web service or others) and exits a short time after the last client exits. The service is responsible for bookkeeping, maintaining the state of all VMs, and for provid- ing communication between VirtualBox components. This communication is implemented via COM/XPCOM. 1As an example, before VirtualBox 3.1, it was only possible to enable or disable a single DVD drive in a virtual machine. If it was enabled, then it would always be visible as the secondary master of the IDE controller. With VirtualBox 3.1, DVD drives can be attached to arbitrary slots of arbitrary controllers, so they could be the secondary slave of an IDE controller or in a SATA slot. If you have a machine settings file from an earlier version and upgrade VirtualBox to 3.1 and then move the DVD drive from its default position, this cannot be expressed in the old settings format; the XML machine file would get written in the new format, and a backup file of the old format would be kept., 10 Technical background Note: When we refer to “clients” here, we mean the local clients of a particu- lar VBoxSVC server process, not clients in a network. VirtualBox employs its own client/server design to allow its processes to cooperate, but all these processes run un- der the same user account on the host operating system, and this is totally transparent to the user. 2. The GUI process, VirtualBox, a client application based on the cross-platform Qt li- brary. When started without the -startvm option, this application acts as the VirtualBox manager, displaying the VMs and their settings. It then communicates settings and state changes to VBoxSVC and also reflects changes effected through other means, e.g., VBoxManage. 3. If the VirtualBox client application is started with the -startvm argument, it loads the VMM library which includes the actual hypervisor and then runs a virtual machine and provides the input and output for the guest. Any VirtualBox front-end (client) will communicate with the service process and can both control and reflect the current state. For example, either the VM selector or the VM window or VBoxManage can be used to pause the running VM, and other components will always reflect the changed state. The VirtualBox GUI application is only one of several available front ends (clients). The com- plete list shipped with VirtualBox is: 1. VirtualBox, the Qt front end implementing the manager and running VMs; 2. VBoxManage, a less user-friendly but more powerful alternative, described in chapter 8, VBoxManage, page 113. 3. VBoxSDL, a simple graphical front end based on the SDL library; see chapter 9.1, VBoxSDL, the simplified VM displayer, page 158. 4. VBoxHeadless, a VM front end which does not directly provide any video output and keyboard/mouse input, but allows redirection via VirtualBox Remote Desktop Extension; see chapter 7.1.2, VBoxHeadless, the remote desktop server, page 104. 5. vboxwebsrv, the VirtualBox web service process which allows for controlling a VirtualBox host remotely. This is described in detail in the VirtualBox Software Development Kit (SDK) reference; please see chapter 11, VirtualBox programming interfaces, page 207 for details. 6. The VirtualBox Python shell, a Python alternative to VBoxManage. This is also described in the SDK reference. Internally, VirtualBox consists of many more or less separate components. You may encounter these when analyzing VirtualBox internal error messages or log files. These include: • IPRT, a portable runtime library which abstracts file access, threading, string manipulation, etc. Whenever VirtualBox accesses host operating features, it does so through this library for cross-platform portability. • VMM (Virtual Machine Monitor), the heart of the hypervisor. • EM (Execution Manager), controls execution of guest code. • REM (Recompiled Execution Monitor), provides software emulation of CPU instructions. • TRPM (Trap Manager), intercepts and processes guest traps and exceptions. • HWACCM (Hardware Acceleration Manager), provides support for VT-x and AMD-V., 10 Technical background • PDM (Pluggable Device Manager), an abstract interface between the VMM and emulated devices which separates device implementations from VMM internals and makes it easy to add new emulated devices. Through PDM, third-party developers can add new virtual devices to VirtualBox without having to change VirtualBox itself. • PGM (Page Manager), a component controlling guest paging. • PATM (Patch Manager), patches guest code to improve and speed up software virtualiza- tion. • TM (Time Manager), handles timers and all aspects of time inside guests. • CFGM (Configuration Manager), provides a tree structure which holds configuration set- tings for the VM and all emulated devices. • SSM (Saved State Manager), saves and loads VM state. • VUSB (Virtual USB), a USB layer which separates emulated USB controllers from the con- trollers on the host and from USB devices; this also enables remote USB. • DBGF (Debug Facility), a built-in VM debugger. • VirtualBox emulates a number of devices to provide the hardware environment that var- ious guests need. Most of these are standard devices found in many PC compatible ma- chines and widely supported by guest operating systems. For network and storage devices in particular, there are several options for the emulated devices to access the underlying hardware. These devices are managed by PDM. • Guest Additions for various guest operating systems. This is code that is installed from within a virtual machine; see chapter 4, Guest Additions, page 60. • The “Main” component is special: it ties all the above bits together and is the only public API that VirtualBox provides. All the client processes listed above use only this API and never access the hypervisor components directly. As a result, third-party applications that use the VirtualBox Main API can rely on the fact that it is always well-tested and that all capabilities of VirtualBox are fully exposed. It is this API that is described in the VirtualBox SDK mentioned above (again, see chapter 11, VirtualBox programming interfaces, page 207). 10.3 Hardware vs. software virtualization VirtualBox allows software in the virtual machine to run directly on the processor of the host, but an array of complex techniques is employed to intercept operations that would interfere with your host. Whenever the guest attempts to do something that could be harmful to your computer and its data, VirtualBox steps in and takes action. In particular, for lots of hardware that the guest believes to be accessing, VirtualBox simulates a certain “virtual” environment according to how you have configured a virtual machine. For example, when the guest attempts to access a hard disk, VirtualBox redirects these requests to whatever you have configured to be the virtual machine’s virtual hard disk – normally, an image file on your host. Unfortunately, the x86 platform was never designed to be virtualized. Detecting situations in which VirtualBox needs to take control over the guest code that is executing, as described above, is difficult. There are two ways in which to achieve this: • Since 2006, Intel and AMD processors have had support for so-called “hardware virtu- alization”. This means that these processors can help VirtualBox to intercept potentially dangerous operations that a guest operating system may be attempting and also makes it easier to present virtual hardware to a virtual machine., 10 Technical background These hardware features differ between Intel and AMD processors. Intel named its tech- nology VT-x; AMD calls theirs AMD-V. The Intel and AMD support for virtualization is very different in detail, but not very different in principle. Note: On many systems, the hardware virtualization features first need to be enabled in the BIOS before VirtualBox can use them. • As opposed to other virtualization software, for many usage scenarios, VirtualBox does not require hardware virtualization features to be present. Through sophisticated techniques, VirtualBox virtualizes many guest operating systems entirely in software. This means that you can run virtual machines even on older processors which do not support hardware virtualization. Even though VirtualBox does not always require hardware virtualization, enabling it is required in the following scenarios: • Certain rare guest operating systems like OS/2 make use of very esoteric processor instruc- tions that are not supported with our software virtualization. For virtual machines that are configured to contain such an operating system, hardware virtualization is enabled automatically. • VirtualBox’s 64-bit guest support (added with version 2.0) and multiprocessing (SMP, added with version 3.0) both require hardware virtualization to be enabled. (This is not much of a limitation since the vast majority of today’s 64-bit and multicore CPUs ship with hardware virtualization anyway; the exceptions to this rule are e.g. older Intel Celeron and AMD Opteron CPUs.) Warning: Do not run other hypervisors (open-source or commercial virtualization products) together with VirtualBox! While several hypervisors can normally be installed in parallel, do not attempt to run several virtual machines from competing hypervisors at the same time. VirtualBox cannot track what another hypervisor is currently at- tempting to do on the same host, and especially if several products attempt to use hardware virtualization features such as VT-x, this can crash the entire host. Also, within VirtualBox, you can mix software and hardware virtualization when running multiple VMs. In certain cases a small performance penalty will be unavoidable when mixing VT-x and software virtualization VMs. We recommend not mixing virtualization modes if maximum performance and low overhead are essential. This does not apply to AMD-V. 10.4 Details about software virtualization Implementing virtualization on x86 CPUs with no hardware virtualization support is an extraor- dinarily complex task because the CPU architecture was not designed to be virtualized. The problems can usually be solved, but at the cost of reduced performance. Thus, there is a con- stant clash between virtualization performance and accuracy. The x86 instruction set was originally designed in the 1970s and underwent significant changes with the addition of protected mode in the 1980s with the 286 CPU architecture and then again with the Intel 386 and its 32-bit architecture. Whereas the 386 did have limited vir- tualization support for real mode operation (V86 mode, as used by the “DOS Box” of Windows 3.x and OS/2 2.x), no support was provided for virtualizing the entire architecture., 10 Technical background In theory, software virtualization is not overly complex. In addition to the four privilege levels (“rings”) provided by the hardware (of which typically only two are used: ring 0 for kernel mode and ring 3 for user mode), one needs to differentiate between “host context” and “guest context”. In “host context”, everything is as if no hypervisor was active. This might be the active mode if another application on your host has been scheduled CPU time; in that case, there is a host ring 3 mode and a host ring 0 mode. The hypervisor is not involved. In “guest context”, however, a virtual machine is active. So long as the guest code is running in ring 3, this is not much of a problem since a hypervisor can set up the page tables properly and run that code natively on the processor. The problems mostly lie in how to intercept what the guest’s kernel does. There are several possible solutions to these problems. One approach is full software emu- lation, usually involving recompilation. That is, all code to be run by the guest is analyzed, transformed into a form which will not allow the guest to either modify or see the true state of the CPU, and only then executed. This process is obviously highly complex and costly in terms of performance. (VirtualBox contains a recompiler based on QEMU which can be used for pure software emulation, but the recompiler is only activated in special situations, described below.) Another possible solution is paravirtualization, in which only specially modified guest OSes are allowed to run. This way, most of the hardware access is abstracted and any functions which would normally access the hardware or privileged CPU state are passed on to the hypervisor instead. Paravirtualization can achieve good functionality and performance on standard x86 CPUs, but it can only work if the guest OS can actually be modified, which is obviously not always the case. VirtualBox chooses a different approach. When starting a virtual machine, through its ring-0 support kernel driver, VirtualBox has set up the host system so that it can run most of the guest code natively, but it has inserted itself at the “bottom” of the picture. It can then assume control when needed – if a privileged instruction is executed, the guest traps (in particular because an I/O register was accessed and a device needs to be virtualized) or external interrupts occur. VirtualBox may then handle this and either route a request to a virtual device or possibly delegate handling such things to the guest or host OS. In guest context, VirtualBox can therefore be in one of three states: • Guest ring 3 code is run unmodified, at full speed, as much as possible. The number of faults will generally be low (unless the guest allows port I/O from ring 3, something we cannot do as we don’t want the guest to be able to access real ports). This is also referred to as “raw mode”, as the guest ring-3 code runs unmodified. • For guest code in ring 0, VirtualBox employs a nasty trick: it actually reconfigures the guest so that its ring-0 code is run in ring 1 instead (which is normally not used in x86 operating systems). As a result, when guest ring-0 code (actually running in ring 1) such as a guest device driver attempts to write to an I/O register or execute a privileged instruction, the VirtualBox hypervisor in “real” ring 0 can take over. • The hypervisor (VMM) can be active. Every time a fault occurs, VirtualBox looks at the offending instruction and can relegate it to a virtual device or the host OS or the guest OS or run it in the recompiler. In particular, the recompiler is used when guest code disables interrupts and VirtualBox cannot figure out when they will be switched back on (in these situations, VirtualBox actu- ally analyzes the guest code using its own disassembler). Also, certain privileged instruc- tions such as LIDT need to be handled specially. Finally, any real-mode or protected-mode code (e.g. BIOS code, a DOS guest, or any operating system startup) is run in the recom- piler entirely. Unfortunately this only works to a degree. Among others, the following situations require special handling:, 10 Technical background 1. Running ring 0 code in ring 1 causes a lot of additional instruction faults, as ring 1 is not allowed to execute any privileged instructions (of which guest’s ring-0 contains plenty). With each of these faults, the VMM must step in and emulate the code to achieve the desired behavior. While this works, emulating thousands of these faults is very expensive and severely hurts the performance of the virtualized guest. 2. There are certain flaws in the implementation of ring 1 in the x86 architecture that were never fixed. Certain instructions that should trap in ring 1 don’t. This affect for example the LGDT/SGDT, LIDT/SIDT, or POPF/PUSHF instruction pairs. Whereas the “load” operation is privileged and can therefore be trapped, the “store” instruction always succeed. If the guest is allowed to execute these, it will see the true state of the CPU, not the virtualized state. The CPUID instruction also has the same problem. 3. A hypervisor typically needs to reserve some portion of the guest’s address space (both linear address space and selectors) for its own use. This is not entirely transparent to the guest OS and may cause clashes. 4. The SYSENTER instruction (used for system calls) executed by an application running in a guest OS always transitions to ring 0. But that is where the hypervisor runs, not the guest OS. In this case, the hypervisor must trap and emulate the instruction even when it is not desirable. 5. The CPU segment registers contain a “hidden” descriptor cache which is not software- accessible. The hypervisor cannot read, save, or restore this state, but the guest OS may use it. 6. Some resources must (and can) be trapped by the hypervisor, but the access is so frequent that this creates a significant performance overhead. An example is the TPR (Task Priority) register in 32-bit mode. Accesses to this register must be trapped by the hypervisor, but certain guest operating systems (notably Windows and Solaris) write this register very often, which adversely affects virtualization performance. To fix these performance and security issues, VirtualBox contains a Code Scanning and Analysis Manager (CSAM), which disassembles guest code, and the Patch Manager (PATM), which can replace it at runtime. Before executing ring 0 code, CSAM scans it recursively to discover problematic instructions. PATM then performs in-situ patching, i.e. it replaces the instruction with a jump to hypervisor memory where an integrated code generator has placed a more suitable implementation. In reality, this is a very complex task as there are lots of odd situations to be discovered and handled correctly. So, with its current complexity, one could argue that PATM is an advanced in-situ recompiler. In addition, every time a fault occurs, VirtualBox analyzes the offending code to determine if it is possible to patch it in order to prevent it from causing more faults in the future. This approach works well in practice and dramatically improves software virtualization performance. 10.5 Details about hardware virtualization With Intel VT-x, there are two distinct modes of CPU operation: VMX root mode and non-root mode. • In root mode, the CPU operates much like older generations of processors without VT-x support. There are four privilege levels (“rings”), and the same instruction set is supported, with the addition of several virtualization specific instruction. Root mode is what a host operating system without virtualization uses, and it is also used by a hypervisor when virtualization is active., 10 Technical background • In non-root mode, CPU operation is significantly different. There are still four privilege rings and the same instruction set, but a new structure called VMCS (Virtual Machine Con- trol Structure) now controls the CPU operation and determines how certain instructions behave. Non-root mode is where guest systems run. Switching from root mode to non-root mode is called “VM entry”, the switch back is “VM exit”. The VMCS includes a guest and host state area which is saved/restored at VM entry and exit. Most importantly, the VMCS controls which guest operations will cause VM exits. The VMCS provides fairly fine-grained control over what the guests can and can’t do. For example, a hypervisor can allow a guest to write certain bits in shadowed control registers, but not others. This enables efficient virtualization in cases where guests can be allowed to write control bits without disrupting the hypervisor, while preventing them from altering control bits over which the hypervisor needs to retain full control. The VMCS also provides control over interrupt delivery and exceptions. Whenever an instruction or event causes a VM exit, the VMCS contains information about the exit reason, often with accompanying detail. For example, if a write to the CR0 register causes an exit, the offending instruction is recorded, along with the fact that a write access to a control register caused the exit, and information about source and destination register. Thus the hypervisor can efficiently handle the condition without needing advanced techniques such as CSAM and PATM described above. VT-x inherently avoids several of the problems which software virtualization faces. The guest has its own completely separate address space not shared with the hypervisor, which eliminates potential clashes. Additionally, guest OS kernel code runs at privilege ring 0 in VMX non-root mode, obviating the problems by running ring 0 code at less privileged levels. For example the SYSENTER instruction can transition to ring 0 without causing problems. Naturally, even at ring 0 in VMX non-root mode, any I/O access by guest code still causes a VM exit, allowing for device emulation. The biggest difference between VT-x and AMD-V is that AMD-V provides a more complete virtualization environment. VT-x requires the VMX non-root code to run with paging enabled, which precludes hardware virtualization of real-mode code and non-paged protected-mode soft- ware. This typically only includes firmware and OS loaders, but nevertheless complicates VT-x hypervisor implementation. AMD-V does not have this restriction. Of course hardware virtualization is not perfect. Compared to software virtualization, the overhead of VM exits is relatively high. This causes problems for devices whose emulation re- quires high number of traps. One example is the VGA device in 16-color modes, where not only every I/O port access but also every access to the framebuffer memory must be trapped. 10.6 Nested paging and VPIDs In addition to “plain” hardware virtualization, your processor may also support additional so- phisticated techniques:2 • A newer feature called “nested paging” implements some memory management in hard- ware, which can greatly accelerate hardware virtualization since these tasks no longer need to be performed by the virtualization software. With nested paging, the hardware provides another level of indirection when translating linear to physical addresses. Page tables function as before, but linear addresses are now translated to “guest physical” addresses first and not physical addresses directly. A new set of paging registers now exists under the traditional paging mechanism and translates from guest physical addresses to host physical addresses, which are used to access memory. 2VirtualBox 2.0 added support for AMD’s nested paging; support for Intel’s EPT and VPIDs was added with version 2.1., 10 Technical background Nested paging eliminates the overhead caused by VM exits and page table accesses. In essence, with nested page tables the guest can handle paging without intervention from the hypervisor. Nested paging thus significantly improves virtualization performance. On AMD processors, nested paging has been available starting with the Barcelona (K10) architecture – they call it now “rapid virtualization indexing” (RVI). Intel added support for nested paging, which they call “extended page tables” (EPT), with their Core i7 (Nehalem) processors. If nested paging is enabled, the VirtualBox hypervisor can also use large pages to reduce TLB usage and overhead. This can yield a performance improvement of up to 5%. To enable this feature for a VM, you need to use the VBoxManage modifyvm -largepages command; see chapter 8.8, VBoxManage modifyvm, page 125. • On Intel CPUs, another hardware feature called “Virtual Processor Identifiers” (VPIDs) can greatly accelerate context switching by reducing the need for expensive flushing of the processor’s Translation Lookaside Buffers (TLBs). To enable these features for a VM, you need to use the VBoxManage modifyvm -vtxvpid and -largepages commands; see chapter 8.8, VBoxManage modifyvm, page 125., 11 VirtualBox programming interfaces VirtualBox comes with comprehensive support for third-party developers. The so-called “Main API” of VirtualBox exposes the entire feature set of the virtualization engine. It is completely documented and available to anyone who wishes to control VirtualBox programmatically. The Main API is made available to C++ clients through COM (on Windows hosts) or XPCOM (on other hosts). Bridges also exist for SOAP, Java and Python. All programming information (documentation, reference information, header and other in- terface files as well as samples) have been split out to a separate Software Development Kit (SDK), which is available for download from http://www.virtualbox.org. In particular, the SDK comes with a “Programming Guide and Reference” in PDF format, which contains, among other things, the information that was previously in this chapter of the User Manual., 12 Troubleshooting This chapter provides answers to commonly asked questions. In order to improve your user experience with VirtualBox, it is recommended to read this section to learn more about common pitfalls and get recommendations on how to use the product. 12.1 Procedures and tools 12.1.1 Categorizing and isolating problems More often than not, a virtualized guest behaves like a physical system. Any problems that a physical machine would encounter, a virtual machine will encounter as well. If, for example, Internet connectivity is lost due to external issues, virtual machines will be affected just as much as physical ones. If a true VirtualBox problem is encountered, it helps to categorize and isolate the problem first. Here are some of the questions that should be answered before reporting a problem: 1. Is the problem specific to a certain guest OS? Specific release of a guest OS? Especially with Linux guest related problems, the issue may be specific to a certain distribution and version of Linux. 2. Is the problem specific to a certain host OS? Problems are usually not host OS specific (because most of the VirtualBox code base is shared across all supported platforms), but especially in the areas of networking and USB support, there are significant differences between host platforms. Some GUI related issues are also host specific. 3. Is the problem specific to certain host hardware? This category of issues is typically related to the host CPU. Because of significant differences between VT-x and AMD-V, problems may be specific to one or the other technology. The exact CPU model may also make a difference (even for software virtualization) because different CPUs support different features, which may affect certain aspects of guest CPU operation. 4. Is the problem specific to a certain virtualization mode? Some problems may only occur in software virtualization mode, others may be specific to hardware virtualization. 5. Is the problem specific to guest SMP? That is, is it related to the number of virtual CPUs (VCPUs) in the guest? Using more than one CPU usually significantly affects the internal operation of a guest OS. 6. Is the problem specific to the Guest Additions? In some cases, this is a given (e.g., a shared folders problem), in other cases it may be less obvious (for example, display problems). And if the problem is Guest Additions specific, is it also specific to a certain version of the Additions? 7. Is the problem specific to a certain environment? Some problems are related to a particular environment external to the VM; this usually involves network setup. Certain configura- tions of external servers such as DHCP or PXE may expose problems which do not occur with other, similar servers. 8. Is the problem a regression? Knowing that an issue is a regression usually makes it signifi- cantly easier to find the solution. In this case, it is crucial to know which version is affected and which is not., 12 Troubleshooting 12.1.2 Collecting debugging information For problem determination, it is often important to collect debugging information which can be analyzed by VirtualBox support. This section contains information about what kind of informa- tion can be obtained. Every time VirtualBox starts up a VM, a so-called “release log file” is created containing lots of information about the VM configuration and runtime events. The log file is called VBox.log and resides in the VM log file folder. Typically this will be a directory like this:$HOME/VirtualBox VMs/{machinename}/Logs When starting a VM, the configuration file of the last run will be renamed to .1, up to .3. Sometimes when there is a problem, it is useful to have a look at the logs. Also when requesting support for VirtualBox, supplying the corresponding log file is mandatory. For convenience, for each virtual machine, the VirtualBox main window can show these logs in a window. To access it, select a virtual machine from the list on the left and select “Show logs...“ from the “Machine” window. The release log file (VBox.log) contains a wealth of diagnostic information, such as Host OS type and version, VirtualBox version and build (32-bit or 64-bit), a complete dump of the guest’s configuration (CFGM), detailed information about the host CPU type and supported features, whether hardware virtualization is enabled, information about VT-x/AMD-V setup, state tran- sitions (creating, running, paused, stopping, etc.), guest BIOS messages, Guest Additions mes- sages, device-specific log entries and, at the end of execution, final guest state and condensed statistics. In case of crashes, it is very important to collect crash dumps. This is true for both host and guest crashes. For information about enabling core dumps on Linux, Solaris, and OS X systems, refer to the core dump article on the VirtualBox website.1 You can also use VBoxManage debugvm to create a dump of a complete virtual machine; see chapter 8.32, VBoxManage debugvm, page 153. For network related problems, it is often helpful to capture a trace of network traffic. If the traffic is routed through an adapter on the host, it is possible to use Wireshark or a similar tool to capture the traffic there. However, this often also includes a lot of traffic unrelated to the VM. VirtualBox provides an ability to capture network traffic only on a specific VM’s network adapter. Refer to the network tracing article on the VirtualBox website2 for information on enabling this capture. The trace files created by VirtualBox are in .pcap format and can be easily analyzed with Wireshark. 12.1.3 The built-in VM debugger VirtualBox includes a built-in VM debugger, which advanced users may find useful. This debug- ger allows for examining and, to some extent, controlling the VM state. Warning: Use the VM debugger at your own risk. There is no support for it, and the following documentation is only made available for advanced users with a very high level of familiarity with the x86/AMD64 machine instruction set, as well as detailed knowledge of the PC architecture. A degree of familiarity with the internals of the guest OS in question may also be very helpful. The VM debugger is available in all regular production versions of VirtualBox, but it is disabled by default because the average user will have little use for it. There are two ways to access the debugger: 1http://www.virtualbox.org/wiki/Core_dump. 2http://www.virtualbox.org/wiki/Network_tips., 12 Troubleshooting • A debugger console window displayed alongside the VM • Via the telnet protocol at port 5000 The debugger can be enabled in three ways: • Start the VM directly using VirtualBox -startvm, with an additional -dbg, -debug, or -debug-command-line argument. See the VirtualBox usage help for details. • Set the VBOX_GUI_DBG_ENABLED or VBOX_GUI_DBG_AUTO_SHOW environment variable to true before launching the VirtualBox process. Setting these variables (only their presence is checked) is effective even when the first VirtualBox process is the VM selector window. VMs subsequently launched from the selector will have the debugger enabled. • Set the GUI/Dbg/Enabled extra data item to true before launching the VM. This can be set globally or on a per VM basis. A new ’Debug’ menu entry will be added to the VirtualBox application. This menu allows the user to open the debugger console. The VM debugger command syntax is loosely modeled on Microsoft and IBM debuggers used on DOS, OS/2 and Windows. Users familiar with symdeb, CodeView, or the OS/2 kernel debug- ger will find the VirtualBox VM debugger familiar. The most important command is help. This will print brief usage help for all debugger com- mands. The set of commands supported by the VM debugger changes frequently and the help command is always up-to-date. A brief summary of frequently used commands follows: • stop – stops the VM execution and enables single stepping • g – continue VM execution • t – single step an instruction • rg/rh/r – print the guest/hypervisor/current registers • kg/kh/k – print the guest/hypervisor/current call stack • da/db/dw/dd/dq – print memory contents as ASCII/bytes/words/dwords/qwords • u – unassemble memory • dg – print the guest’s GDT • di – print the guest’s IDT • dl – print the guest’s LDT • dt – print the guest’s TSS • dp* – print the guest’s page table structures • bp/br – set a normal/recompiler breakpoint • bl – list breakpoints • bc – clear a breakpoint • writecore – writes a VM core file to disk, refer chapter 12.1.4, VM core format, page 211, 12 Troubleshooting See the built-in help for other available commands. The VM debugger supports symbolic debugging, although symbols for guest code are often not available. For Solaris guests, the detect command automatically determines the guest OS version and locates kernel symbols in guest’s memory. Symbolic debugging is then available. For Linux guests, the detect commands also determines the guest OS version, but there are no symbols in the guest’s memory. Kernel symbols are available in the file /proc/kallsyms on Linux guests. This file must be copied to the host, for example using scp. The loadmap debugger command can be used to make the symbol information available to the VM debugger. Note that the kallsyms file contains the symbols for the currently loaded modules; if the guest’s configuration changes, the symbols will change as well and must be updated. For all guests, a simple way to verify that the correct symbols are loaded is the k command. The guest is normally idling and it should be clear from the symbolic information that the guest operating system’s idle loop is being executed. Another group of debugger commands is the set of info commands. Running info help provides complete usage information. The information commands provide ad-hoc data pertinent to various emulated devices and aspects of the VMM. There is no general guideline for using the info commands, the right command to use depends entirely on the problem being investigated. Some of the info commands are: • cfgm – print a branch of the configuration tree • cpuid – display the guest CPUID leaves • ioport – print registered I/O port ranges • mmio – print registered MMIO ranges • mode – print the current paging mode • pit – print the i8254 PIT state • pic – print the i8259A PIC state • ohci/ehci – print a subset of the OHCI/EHCI USB controller state • pcnet0 – print the PCnet state • vgatext – print the contents of the VGA framebuffer formatted as standard text mode • timers – print all VM timers The output of the info commands generally requires in-depth knowledge of the emulated de- vice and/or VirtualBox VMM internals. However, when used properly, the information provided can be invaluable. 12.1.4 VM core format VirtualBox uses the 64-bit ELF format for its VM core files created by VBoxManage debugvm; see chapter 8.32, VBoxManage debugvm, page 153. The VM core file contain the memory and CPU dumps of the VM and can be useful for debugging your guest OS. The 64-bit ELF object format specficiation can be obtained here: http://downloads.openwatcom.org/ftp/devel/ docs/elf-64-gen.pdf. The overall layout of the VM core format is as follows: [ ELF 64 Header] [ Program Header, type PT_NOTE ] -> offset to COREDESCRIPTOR [ Program Header, type PT_LOAD ] - one for each contiguous physical memory range -> Memory offset of range, 12 Troubleshooting -> File offset [ Note Header, type NT_VBOXCORE ] [ COREDESCRIPTOR ] -> Magic -> VM core file version -> VBox version -> Number of vCPUs etc. [ Note Header, type NT_VBOXCPU ] - one for each vCPU [ vCPU 1 Note Header ] [ CPUMCTX - vCPU 1 dump ] [ Additional Notes + Data ] - currently unused [ Memory dump ] The memory descriptors contain physical addresses relative to the guest and not virtual ad- dresses. Regions of memory such as MMIO regions are not included in the core file. The relevant data structures and definitions can be found in the VirtualBox sources under the following header files: include/VBox/dbgfcorefmt.h, include/VBox/cpumctx.h and src/VBox/Runtime/include/internal/ldrELFCommon.h. The VM core file can be inspected using elfdump and GNU readelf or other similar utilities. 12.2 General 12.2.1 Guest shows IDE/SATA errors for file-based images on slow host file system Occasionally, some host file systems provide very poor writing performance and as a consequence cause the guest to time out IDE/SATA commands. This is normal behavior and should normally cause no real problems, as the guest should repeat commands that have timed out. However, some guests (e.g. some Linux versions) have severe problems if a write to an image file takes longer than about 15 seconds. Some file systems however require more than a minute to com- plete a single write, if the host cache contains a large amount of data that needs to be written. The symptom for this problem is that the guest can no longer access its files during large write or copying operations, usually leading to an immediate hang of the guest. In order to work around this problem (the true fix is to use a faster file system that doesn’t exhibit such unacceptable write performance), it is possible to flush the image file after a cer- tain amount of data has been written. This interval is normally infinite, but can be configured individually for each disk of a VM. For IDE disks use the following command: VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b] For SATA disks use the following command: VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b] The value [x] that selects the disk for IDE is 0 for the master device on the first channel, 1 for the slave device on the first channel, 2 for the master device on the second channel or 3 for the master device on the second channel. For SATA use values between 0 and 29. Only disks support this configuration option; it must not be set for CD/DVD drives. The unit of the interval [b] is the number of bytes written since the last flush. The value for it must be selected so that the occasional long write delays do not occur. Since the proper flush in- terval depends on the performance of the host and the host filesystem, finding the optimal value that makes the problem disappear requires some experimentation. Values between 1000000 and 10000000 (1 to 10 megabytes) are a good starting point. Decreasing the interval both decreases the probability of the problem and the write performance of the guest. Setting the value unnec- essarily low will cost performance without providing any benefits. An interval of 1 will cause a, 12 Troubleshooting flush for each write operation and should solve the problem in any case, but has a severe write performance penalty. Providing a value of 0 for [b] is treated as an infinite flush interval, effectively disabling this workaround. Removing the extra data key by specifying no value for [b] has the same effect. 12.2.2 Responding to guest IDE/SATA flush requests If desired, the virtual disk images can be flushed when the guest issues the IDE FLUSH CACHE command. Normally these requests are ignored for improved performance. The parameters below are only accepted for disk drives. They must not be set for DVD drives. To enable flushing for IDE disks, issue the following command: VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0 The value [x] that selects the disk is 0 for the master device on the first channel, 1 for the slave device on the first channel, 2 for the master device on the second channel or 3 for the master device on the second channel. To enable flushing for SATA disks, issue the following command: VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0 The value [x] that selects the disk can be a value between 0 and 29. Note that this doesn’t affect the flushes performed according to the configuration described in chapter 12.2.1, Guest shows IDE/SATA errors for file-based images on slow host file system, page 212. Restoring the default of ignoring flush commands is possible by setting the value to 1 or by removing the key. 12.2.3 Poor performance caused by host power management On some hardware platforms and operating systems, virtualization performance is negatively affected by host CPU power management. The symptoms may be choppy audio in the guest or erratic guest clock behavior. Some of the problems may be caused by firmware and/or host operating system bugs. There- fore, updating the firmware and applying operating systems fixes is recommended. For optimal virtualization performance, the C1E power state support in the system’s BIOS should be disabled, if such a setting is available (not all systems support the C1E power state). On Intel systems the Intel C State setting should be disabled. Disabling other power management settings may also improve performance. However, a balance between performance and power consumption must always be considered. 12.2.4 GUI: 2D Video Acceleration option is grayed out To use 2D Video Acceleration within VirtualBox, your host’s video card should support certain OpenGL extensions. On startup, VirtualBox checks for those extensions, and, if the test fails, this option is silently grayed out. To find out why it has failed, you can manually execute the following command: VBoxTestOGL -log "log_file_name" -test 2D It will list the required OpenGL extensions one by one and will show you which one failed the test. This usually means that you are running an outdated or misconfigured OpenGL driver on your host. It can also mean that your video chip is lacking required functionality., 12 Troubleshooting 12.3 Windows guests 12.3.1 Windows bluescreens after changing VM configuration Changing certain virtual machine settings can cause Windows guests to fail during start up with a bluescreen. This may happen if you change VM settings after installing Windows, or if you copy a disk image with an already installed Windows to a newly created VM which has settings that differ from the original machine. This applies in particular to the following settings: • The ACPI and I/O APIC settings should never be changed after installing Windows. De- pending on the presence of these hardware features, the Windows installation program chooses special kernel and device driver versions and will fail to startup should these hard- ware features be removed. (Enabling them for a Windows VM which was installed without them does not cause any harm. However, Windows will not use these features in this case.) • Changing the storage controller hardware will cause bootup failures as well. This might also apply to you if you copy a disk image from an older version of VirtualBox to a virtual machine created with a newer VirtualBox version; the default subtype of IDE controller hardware was changed from PIIX3 to PIIX4 with VirtualBox 2.2. Make sure these settings are identical. 12.3.2 Windows 0x101 bluescreens with SMP enabled (IPI timeout) If a VM is configured to have more than one processor (symmetrical multiprocessing, SMP), some configurations of Windows guests crash with an 0x101 error message, indicating a timeout for inter-processor interrupts (IPIs). These interrupts synchronize memory management between processors. According to Microsoft, this is due to a race condition in Windows. A hotfix is available.3 If this does not help, please reduce the number of virtual processors to 1. 12.3.3 Windows 2000 installation failures When installing Windows 2000 guests, you might run into one of the following issues: • Installation reboots, usually during component registration. • Installation fills the whole hard disk with empty log files. • Installation complains about a failure installing msgina.dll. These problems are all caused by a bug in the hard disk driver of Windows 2000. After issuing a hard disk request, there is a race condition in the Windows driver code which leads to corruption if the operation completes too fast, i.e. the hardware interrupt from the IDE controller arrives too soon. With physical hardware, there is a guaranteed delay in most systems so the problem is usually hidden there (however it should be possible to reproduce it on physical hardware as well). In a virtual environment, it is possible for the operation to be done immediately (especially on very fast systems with multiple CPUs) and the interrupt is signaled sooner than on a physical system. The solution is to introduce an artificial delay before delivering such interrupts. This delay can be configured for a VM using the following command: VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1 This sets the delay to one millisecond. In case this doesn’t help, increase it to a value between 1 and 5 milliseconds. Please note that this slows down disk performance. After installation, you should be able to remove the key (or set it to 0). 3See http://support.microsoft.com/kb/955076., 12 Troubleshooting 12.3.4 How to record bluescreen information from Windows guests When Windows guests run into a kernel crash, they display the infamous bluescreen. Depending on how Windows is configured, the information will remain on the screen until the machine is restarted or it will reboot automatically. During installation, Windows is usually configured to reboot automatically. With automatic reboots, there is no chance to record the bluescreen information which might be important for problem determination. VirtualBox provides a method of halting a guest when it wants to perform a reset. In order to enable this feature, issue the following command: VBoxManage setextradata "VM name" "VBoxInternal/PDM/HaltOnReset" 1 12.3.5 No networking in Windows Vista guests With Windows Vista, Microsoft dropped support for the AMD PCNet card that VirtualBox used to provide as the default virtual network card before version 1.6.0. For Windows Vista guests, VirtualBox now uses an Intel E1000 card by default. If, for some reason, you still want to use the AMD card, you need to download the PCNet driver from the AMD website (available for 32-bit Windows only). You can transfer it into the virtual machine using a shared folder, see (see chapter 4.3, Shared folders, page 70). 12.3.6 Windows guests may cause a high CPU load Several background applications of Windows guests, especially virus scanners, are known to increases the CPU load notably even if the guest appears to be idle. We recommend to deactivate virus scanners within virtualized guests if possible. 12.3.7 Long delays when accessing shared folders The performance for accesses to shared folders from a Windows guest might be decreased due to delays during the resolution of the VirtualBox shared folders name service. To fix these de- lays, add the following entries to the file \windows\system32\drivers\etc\lmhosts of the Windows guest: 255.255.255.255 VBOXSVR #PRE 255.255.255.255 VBOXSRV #PRE After doing this change, a reboot of the guest is required. 12.3.8 USB tablet coordinates wrong in Windows 98 guests If a Windows 98 VM is configured to use the emulated USB tablet (absolute pointing device), the coordinate translation may be incorrect and the pointer is restricted to the upper left quarter of the guest’s screen. The USB HID (Human Interface Device) drivers in Windows 98 are very old and do not handle tablets the same way all more recent operating systems do (Windows 2000 and later, Mac OS X, Solaris). To work around the problem, issue the following command: VBoxManage setextradata "VM name" "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0 To restore the default behavior, remove the key or set its value to 1., 12 Troubleshooting 12.3.9 Windows guests are removed from an Active Directory domain after restoring a snapshot If a Windows guest is a member of an Active Directory domain and the snapshot feature of VirtualBox is used, it could happen it loses this status after you restore an older snapshot. The reason is the automatic machine password changing performed by Windows in regular intervals for security purposes. You can disable this feature by following the instruction of this http://support.microsoft.com/kb/154501 article from Microsoft. 12.3.10 Restoring d3d8.dll and d3d9.dll VirtualBox Guest Additions for Windows prior to 4.1.8 did not properly back up the original d3d8.dll and d3d9.dll system files when selecting and installing the experimental Direct3D sup- port. This process replaces both system files with files from the VirtualBox Guest Additions so that Direct3D calls can be handled correctly. Although this issue was fixed with VirtualBox 4.1.8, there is no way the Windows Guest Additions installer can repair these files. Corruption of these files has no implications in case 3D acceleration is enabled and basic Di- rect3D support is installed, that is, without WDDM (on Windows Vista or higher) or on older Win- dows systems like Windows XP. With the basic Direct3D support all Direct3D 8.0 and Direct3D 9.0 applications will utilize VirtualBox Direct3D files directly and thus will run as expected. For WDDM Direct3D support however, the originally shipped d3d8.dll and d3d9.dll files are required in order to run Direct3D 8.0 and Direct3D 9.0 applications. As a result of the above mentioned system files corruption these applications will not work anymore. See below for a step-by-step guide for restoring the original d3d8.dll and d3d9.dll system files in case the VirtualBox Guest Additions installer warned about those incorrect files or when having trouble running Direct3D applications. Note: Starting at Windows 7 the 3D desktop (aka Aero) uses DirectX 10 for rendering so that corrupted d3d8.dll and d3d9.dll system files will have no effect on the actual rendering. This is why such a detected file corruption is not considered as fatal for the basic Direct3D installation on all supported Windows guests, and for WDDM Direct3D installation on Windows 7 and later guests. Extracting d3d8 and d3d9.dll from a Windows XP installation CD: 1. Download and install the latest version of 7-Zip File Manager http//www.7-zip.org 2. Browse into installation CD for example E:\i386 (or AMD64 for 64bit version) 3. Locate file d3d8.dl_ and d3d9.dl_, double click on it and Extract d3d8.dll and d3d9.dll 4. Reboot Windows in Safe mode 5. Copy extracted d3d8.dll and d3d9.dll to C:\Windows\system32 and C:\Windows\system32\dllcache 6. Reboot Extracting d3d8 and d3d9.dll from Windows XP Service pack 1. 1, 3-6 Same as installation CD 2. Use ’Open inside’ to open WindowsXP-KB936929-SP3-x86.exe as archive and browse i386 directory. Extracting d3d8 and d3d9.dll from Vista/Windows7 installation CD or Service Pack iso, 12 Troubleshooting 1. Download and install the latest version of 7-Zip File Manager http//www.7-zip.org 2. Browse into installation CD for example E:\sources 3. Locate file install.wim and double click it. After 7-Zip utility opens the file, you’ll get a few numbered folders. Each numeric subfolder represents a different version of Windows (Starter, Home Basic, and so on) 4. After entering into the one of the numeric folders, browse into Windows\System32 (or C:\Windows\SysWOW64 for 64 bit version) directory locate d3d8.dll and d3d9.dll and extract 5. Copy extracted d3d8.dll and d3d9.dll to C:\Windows\system32 or C:\Windows\SysWOW64 (files from system32 should go to system32, from SysWOW64 to SysWOW64) 6. Reboot 12.4 Linux and X11 guests 12.4.1 Linux guests may cause a high CPU load Some Linux guests may cause a high CPU load even if the guest system appears to be idle. This can be caused by a high timer frequency of the guest kernel. Some Linux distributions, for example Fedora, ship a Linux kernel configured for a timer frequency of 1000Hz. We recommend to recompile the guest kernel and to select a timer frequency of 100Hz. Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of release 4.7 and 5.1 as well as kernels of related Linux distributions (for instance CentOS and Oracle Linux) support a kernel parameter divider=N. Hence, such kernels support a lower timer frequency without recompilation. We suggest to add the kernel parameter divider=10 to select a guest kernel timer frequency of 100Hz. 12.4.2 AMD Barcelona CPUs Most Linux-based guests will fail with AMD Phenoms or Barcelona-level Opterons due to a bug in the Linux kernel. Enable the I/O-APIC to work around the problem (see chapter 3.4, System settings, page 49). 12.4.3 Buggy Linux 2.6 kernel versions The following bugs in Linux kernels prevent them from executing correctly in VirtualBox, causing VM boot crashes: • The Linux kernel version 2.6.18 (and some 2.6.17 versions) introduced a race condition that can cause boot crashes in VirtualBox. Please use a kernel version 2.6.19 or later. • With hardware virtualization and the I/O APIC enabled, kernels before 2.6.24-rc6 may panic on boot with the following message: Kernel panic - not syncing: IO-APIC + timer doesn’t work! Boot with apic=debug and send a report. Then try booting with the ’noapic’ option If you see this message, either disable hardware virtualization or the I/O APIC (see chapter 3.4, System settings, page 49), or upgrade the guest to a newer kernel.4 4See http://www.mail-archive.com/email is hidden/msg30813.html for details about the kernel fix., 12 Troubleshooting 12.4.4 Shared clipboard, auto-resizing and seamless desktop in X11 guests Guest desktop services in guests running the X11 window system (Solaris, Linux and others) are provided by a guest service called VBoxClient, which runs under the ID of the user who started the desktop session and is automatically started using the following command lines VBoxClient -clipboard VBoxClient -display VBoxClient -seamless when your X11 user session is started if you are using a common desktop environment (Gnome, KDE and others). If a particular desktop service is not working correctly, it is worth checking whether the process which should provide it is running. The VBoxClient processes create files in the user’s home directory with names of the form .vboxclient-*.pid when they are running in order to prevent a given service from being started twice. It can happen due to misconfiguration that these files are created owned by root and not deleted when the services are stopped, which will prevent them from being started in future sessions. If the services cannot be started, you may wish to check whether these files still exist. 12.5 Solaris guests 12.5.1 Older Solaris 10 releases hang in 64-bit mode Solaris 10 releases up to and including Solaris 10 8/07 (“S10U4”) incorrectly detect newer Intel processors produced since 2007. This problem leads to the 64-bit Solaris kernel hanging or crashing almost immediately during startup, in both virtualized and physical environments. The recommended solution is upgrading to at least Solaris 10 5/08 (“S10U5”). Alternative solutions include forcing Solaris to always boot the 32-bit kernel or applying a patch for bug 6574102 (while Solaris is using the 32-bit kernel). 12.6 Windows hosts 12.6.1 VBoxSVC out-of-process COM server issues VirtualBox makes use of the Microsoft Component Object Model (COM) for inter- and intra- process communication. This allows VirtualBox to share a common configuration among dif- ferent virtual machine processes and provide several user interface options based on a com- mon architecture. All global status information and configuration is maintained by the process VBoxSVC.exe, which is an out-of-process COM server. Whenever a VirtualBox process is started, it requests access to the COM server and Windows automatically starts the process. Note that it should never be started by the end user. When the last process disconnects from the COM server, it will terminate itself after some seconds. The VirtualBox configuration (XML files) is maintained and owned by the COM server and the files are locked whenever the server runs. In some cases - such as when a virtual machine is terminated unexpectedly - the COM server will not notice that the client is disconnected and stay active for a longer period (10 minutes or so) keeping the configuration files locked. In other rare cases the COM server might experience an internal error and subsequently other processes fail to initialize it. In these situations, it is recommended to use the Windows task manager to kill the process VBoxSVC.exe., 12 Troubleshooting 12.6.2 CD/DVD changes not recognized In case you have assigned a physical CD/DVD drive to a guest and the guest does not notice when the medium changes, make sure that the Windows media change notification (MCN) feature is not turned off. This is represented by the following key in the Windows registry: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun Certain applications may disable this key against Microsoft’s advice. If it is set to 0, change it to 1 and reboot your system. VirtualBox relies on Windows notifying it of media changes. 12.6.3 Sluggish response when using Microsoft RDP client If connecting to a Virtual Machine via the Microsoft RDP client (called Remote Desktop Con- nection), there can be large delays between input (moving the mouse over a menu is the most obvious situation) and output. This is because this RDP client collects input for a certain time before sending it to the RDP server. The interval can be decreased by setting a Windows registry key to smaller values than the default of 100. The key does not exist initially and must be of type DWORD. The unit for its values is milliseconds. Values around 20 are suitable for low-bandwidth connections between the RDP client and server. Values around 4 can be used for a gigabit Ethernet connection. Generally values below 10 achieve a performance that is very close to that of the local input devices and screen of the host on which the Virtual Machine is running. Depending whether the setting should be changed for an individual user or for the system, either HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval or HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval can be set appropriately. 12.6.4 Running an iSCSI initiator and target on a single system Deadlocks can occur on a Windows host when attempting to access an iSCSI target running in a guest virtual machine with an iSCSI initiator (e.g. Microsoft iSCSI Initiator) that is running on the host. This is caused by a flaw in the Windows cache manager component, and causes sluggish host system response for several minutes, followed by a “Delayed Write Failed” error message in the system tray or in a separate message window. The guest is blocked during that period and may show error messages or become unstable. Setting the environment variable VBOX_DISABLE_HOST_DISK_CACHE to 1 will enable a workaround for this problem until Microsoft addresses the issue. For example, open a command prompt window and start VirtualBox like this: set VBOX_DISABLE_HOST_DISK_CACHE=1 VirtualBox While this will decrease guest disk performance (especially writes), it does not affect the per- formance of other applications running on the host., 12 Troubleshooting 12.6.5 Bridged networking adapters missing If no bridged adapters show up in the “Networking” section of the VM settings, this typically means that the bridged networking driver was not installed properly on your host. This could be due to the following reasons: • The maximum allowed filter count was reached on the host. In this case, the MSI log would mention the 0x8004a029 error code returned on NetFlt network component install: VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029) You can try to increase the maximum filter count in the Windows registry at the following key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters The maximum number allowed is 14. After a reboot, try to re-install VirtualBox. • The INF cache is corrupt. In this case, the install log (%windir%\inf\setupapi.log on XP or %windir%\inf\setupapi.dev.log on Vista or later) would typically men- tion the failure to find a suitable driver package for either the sun_VBoxNetFlt or sun_VBoxNetFltmp components. The solution then is to uninstall VirtualBox, remove the INF cache (%windir%\inf\INFCACHE.1), reboot and try to re-install VirtualBox 12.6.6 Host-only networking adapters cannot be created If host-only adapter cannot be created (either via the Manager or VBoxManage), then the INF cache is probably corrupt. In this case, the install log (%windir%\inf\setupapi.log on XP or %windir%\inf\setupapi.dev.log on Vista or later) would typically mention the failure to find a suitable driver package for the sun_VBoxNetAdp component. Again, as with the bridged networking problem described above, the solution is to uninstall VirtualBox, remove the INF cache (%windir%\inf\INFCACHE.1), reboot and try to re-install VirtualBox. 12.7 Linux hosts 12.7.1 Linux kernel module refuses to load If the VirtualBox kernel module (vboxdrv) refuses to load, i.e. you get an “Error inserting vboxdrv: Invalid argument”, check (as root) the output of the dmesg command to find out why the load failed. Most probably the kernel disagrees with the version of the gcc used to compile the module. Make sure that you use the same compiler as used to build the kernel. 12.7.2 Linux host CD/DVD drive not found If you have configured a virtual machine to use the host’s CD/DVD drive, but this does not appear to work, make sure that the current user has permission to access the corresponding Linux device file (/dev/hdc or /dev/scd0 or /dev/cdrom or similar). On most distributions, the user must be added to a corresponding group (usually called cdrom or cdrw). 12.7.3 Linux host CD/DVD drive not found (older distributions) On older Linux distributions, if your CD/DVD device has a different name, VirtualBox may be unable to find it. On older Linux hosts, VirtualBox performs the following steps to locate your CD/DVD drives: 1. VirtualBox examines if the environment variable VBOX_CDROM is defined (see below). If so, VirtualBox omits all the following checks., 12 Troubleshooting 2. VirtualBox tests if /dev/cdrom works. 3. In addition, VirtualBox checks if any CD/DVD drives are currently mounted by checking /etc/mtab. 4. In addition, VirtualBox checks if any of the entries in /etc/fstab point to CD/DVD devices. In other words, you can try to set VBOX_CDROM to contain a list of your CD/DVD devices, separated by colons, for example as follows: export VBOX_CDROM=’/dev/cdrom0:/dev/cdrom1’ On modern Linux distributions, VirtualBox uses the hardware abstraction layer (hal) to locate CD and DVD hardware. 12.7.4 Linux host floppy not found The previous instructions (for CD and DVD drives) apply accordingly to floppy disks, except that on older distributions VirtualBox tests for /dev/fd* devices by default, and this can be overridden with the VBOX_FLOPPY environment variable. 12.7.5 Strange guest IDE error messages when writing to CD/DVD If the experimental CD/DVD writer support is enabled with an incorrect VirtualBox, host or guest configuration, it is possible that any attempt to access the CD/DVD writer fails and simply results in guest kernel error messages (for Linux guests) or application error messages (for Windows guests). VirtualBox performs the usual consistency checks when a VM is powered up (in partic- ular it aborts with an error message if the device for the CD/DVD writer is not writable by the user starting the VM), but it cannot detect all misconfigurations. The necessary host and guest OS configuration is not specific for VirtualBox, but a few frequent problems are listed here which occurred in connection with VirtualBox. Special care must be taken to use the correct device. The configured host CD/DVD device file name (in most cases /dev/cdrom) must point to the device that allows writing to the CD/DVD unit. For CD/DVD writer units connected to a SCSI controller or to a IDE controller that inter- faces to the Linux SCSI subsystem (common for some SATA controllers), this must refer to the SCSI device node (e.g. /dev/scd0). Even for IDE CD/DVD writer units this must refer to the appropriate SCSI CD-ROM device node (e.g. /dev/scd0) if the ide-scsi kernel module is loaded. This module is required for CD/DVD writer support with all Linux 2.4 kernels and some early 2.6 kernels. Many Linux distributions load this module whenever a CD/DVD writer is detected in the system, even if the kernel would support CD/DVD writers without the module. VirtualBox supports the use of IDE device files (e.g. /dev/hdc), provided the kernel supports this and the ide-scsi module is not loaded. Similar rules (except that within the guest the CD/DVD writer is always an IDE device) apply to the guest configuration. Since this setup is very common, it is likely that the default configuration of the guest works as expected. 12.7.6 VBoxSVC IPC issues On Linux, VirtualBox makes use of a custom version of Mozilla XPCOM (cross platform com- ponent object model) for inter- and intra-process communication (IPC). The process VBoxSVC serves as a communication hub between different VirtualBox processes and maintains the global configuration, i.e. the XML database. When starting a VirtualBox component, the processes VBoxSVC and VirtualBoxXPCOMIPCD are started automatically. They are only accessible from the user account they are running under. VBoxSVC owns the VirtualBox configuration database which normally resides in ~/.config/VirtualBox, or the appropriate configuration directory, 12 Troubleshooting for your operating system. While it is running, the configuration files are locked. Communication between the various VirtualBox components and VBoxSVC is performed through a local domain socket residing in /tmp/.vbox--ipc. In case there are communication problems (i.e. a VirtualBox application cannot communicate with VBoxSVC), terminate the daemons and remove the local domain socket directory. 12.7.7 USB not working If USB is not working on your Linux host, make sure that the current user is a member of the vboxusers group. On older hosts, you need to make sure that the user has permission to access the USB filesystem (usbfs), which VirtualBox relies on to retrieve valid information about your host’s USB devices. The rest of this section only applies to those older systems. As usbfs is a virtual filesystem, a chmod on /proc/bus/usb has no effect. The permissions for usbfs can therefore only be changed by editing the /etc/fstab file. For example, most Linux distributions have a user group called usb or similar, of which the current user must be a member. To give all users of that group access to usbfs, make sure the following line is present: # 85 is the USB group none /proc/bus/usb usbfs devgid=85,devmode=66400Replace 85 with the group ID that matches your system (search /etc/group for “usb” or similar). Alternatively, if you don’t mind the security hole, give all users access to USB by changing “664” to “666”. The various distributions are very creative from which script the usbfs filesystem is mounted. Sometimes the command is hidden in unexpected places. For SuSE 10.0 the mount command is part of the udev configuration file /etc/udev/rules.d/50-udev.rules. As this distribution has no user group called usb, you may e.g. use the vboxusers group which was created by the VirtualBox installer. Since group numbers are allocated dynamically, the following example uses 85 as a placeholder. Modify the line containing (a linebreak has been inserted to improve readability) DEVPATH="/module/usbcore", ACTION=="add", RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb" and add the necessary options (make sure that everything is in a single line): DEVPATH="/module/usbcore", ACTION=="add", RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb -o devgid=85,devmode=664" Debian Etch has the mount command in /etc/init.d/mountkernfs.sh. Since that distribu- tion has no group usb, it is also the easiest solution to allow all members of the group vboxusers to access the USB subsystem. Modify the line domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev so that it contains domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=85,devmode=664 As usual, replace the 85 with the actual group number which should get access to USB devices. Other distributions do similar operations in scripts stored in the /etc/init.d directory. 12.7.8 PAX/grsec kernels Linux kernels including the grsec patch (see http://www.grsecurity.net/) and derivates have to disable PAX_MPROTECT for the VBox binaries to be able to start a VM. The reason is that VBox has to create executable code on anonymous memory., 12 Troubleshooting 12.7.9 Linux kernel vmalloc pool exhausted When running a large number of VMs with a lot of RAM on a Linux system (say 20 VMs with 1GB of RAM each), additional VMs might fail to start with a kernel error saying that the vmalloc pool is exhausted and should be extended. The error message also tells you to specify vmalloc=256MB in your kernel parameter list. If adding this parameter to your GRUB or LILO configuration makes the kernel fail to boot (with a weird error message such as “failed to mount the root partition”), then you have probably run into a memory conflict of your kernel and initial RAM disk. This can be solved by adding the following parameter to your GRUB configuration: uppermem 524288 12.8 Solaris hosts 12.8.1 Cannot start VM, not enough contiguous memory The ZFS file system is known to use nearly all available RAM as cache if the default system settings are not changed. This may lead to a heavy fragmentation of the host memory preventing VirtualBox VMs from being started. We recommend to limit the ZFS cache by adding a line set zfs:zfs_arc_max = xxxx to /etc/system where xxxx bytes is the amount of memory usable for the ZFS cache. 12.8.2 VM aborts with out of memory errors on Solaris 10 hosts 32-bit Solaris 10 hosts (bug 1225025) require swap space equal to, or greater than the host’s physical memory size. For example, 8 GB physical memory would require at least 8 GB swap. This can be configured during a Solaris 10 install by choosing a ’custom install’ and changing the default partitions. Note: This restriction applies only to 32-bit Solaris hosts, 64-bit hosts are not affected! For existing Solaris 10 installs, an additional swap image needs to be mounted and used as swap. Hence if you have 1 GB swap and 8 GB of physical memory, you require to add 7 GB more swap. This can be done as follows: For ZFS (as root user): zfs create -V 8gb /__/swap swap -a /dev/zvol/dsk/__/swap To mount if after reboot, add the following line to /etc/vfstab: /dev/zvol/dsk/__/swap - - swap - no - Alternatively, you could grow the existing swap using: zfs set volsize=8G rpool/swap And reboot the system for the changes to take effect. For UFS (as root user): mkfile 7g /path/to/swapfile.img swap -a /path/to/swapfile.img To mount it after reboot, add the following line to /etc/vfstab: /path/to/swap.img - - swap - no -, 13 Security guide 13.1 Overview 13.1.1 General Security Principles The following principles are fundamental to using any application securely. Keep Software Up To Date One of the principles of good security practise is to keep all soft- ware versions and patches up to date. Activate the VirtualBox update notification to get notified when a new VirtualBox release is available. When updating VirtualBox, do not forget to update the Guest Additions. Keep the host operating system as well as the guest operating system up to date. Restrict Network Access to Critical Services Use proper means, for instance a firewall, to protect your computer and your guest(s) from accesses from the outside. Choosing the proper networking mode for VMs helps to separate host networking from the guest and vice versa. Follow the Principle of Least Privilege The principle of least privilege states that users should be given the least amount of privilege necessary to perform their jobs. Always execute VirtualBox as a regular user. We strongly discourage anyone from executing VirtualBox with system privileges. Choose restrictive permissions when creating configuration files, for instance when creating /etc/default/virtualbox, see chapter 2.3.3.7, Automatic installation options, page 42. Mode 0600 would be preferred. Monitor System Activity System security builds on three pillars: good security protocols, proper system configuration and system monitoring. Auditing and reviewing audit records address the third requirement. Each component within a system has some degree of moni- toring capability. Follow audit advice in this document and regularly monitor audit records. Keep Up To Date on Latest Security Information Oracle continually improves its software and documentation. Check this note note yearly for revisions. 13.2 Secure Installation and Configuration 13.2.1 Installation Overview The VirtualBox base package should be downloaded only from a trusted source, for instance the official website http://www.virtualbox.org. The integrity of the package should be verified with the provided SHA256 checksum which can be found on the official website. General VirtualBox installation instructions for the supported hosts can be found in chapter 2, Installation details, page 35. On Windows hosts, the installer allows for disabling USB support, support for bridged net- working, support for host-only networking and the Python language bindings, see chapter 2.1, Installing on Windows hosts, page 35. All these features are enabled by default but disabling some of them could be appropriate if the corresponding functionality is not required by any vir- tual machine. The Python language bindings are only required if the VirtualBox API is to be used, 13 Security guide by external Python applications. In particular USB support and support for the two networking modes require the installation of Windows kernel drivers on the host. Therefore disabling those selected features can not only be used to restrict the user to certain functionality but also to minimize the surface provided to a potential attacker. The general case is to install the complete VirtualBox package. The installation must be done with system privileges. All VirtualBox binaries should be executed as a regular user and never as a privileged user. The Oracle VM VirtualBox extension pack provides additional features and must be down- loaded and installed separately, see chapter 1.5, Installing VirtualBox and extension packs, page 16. As for the base package, the SHA256 checksum of the extension pack should be verified. As the installation requires system privileges, VirtualBox will ask for the system password during the installation of the extension pack. 13.2.2 Post Installation Configuration Normally there is no post installation configuration of VirtualBox components required. How- ever, on Solaris and Linux hosts it is necessary to configure the proper permissions for users executing VMs and who should be able to access certain host resources. For instance, Linux users must be member of the vboxusers group to be able to pass USB devices to a guest. If a serial host interface should be accessed from a VM, the proper permissions must be granted to the user to be able to access that device. The same applies to other resources like raw partitions, DVD/CD drives and sound devices. 13.3 Security Features This section outlines the specific security mechanisms offered by VirtualBox. 13.3.1 The Security Model One property of virtual machine monitors (VMMs) like VirtualBox is to encapsulate a guest by executing it in a protected environment, a virtual machine, running as a user process on the host operating system. The guest cannot communicate directly with the hardware or other computers but only through the VMM. The VMM provides emulated physical resources and devices to the guest which are accessed by the guest operating system to perform the required tasks. The VM settings control the resources provided to the guest, for example the amount of guest memory or the number of guest processors, (see chapter 3.3, General settings, page 48) and the enabled features for that guest (for example remote control, certain screen settings and others). 13.3.2 Secure Configuration of Virtual Machines Several aspects of a virtual machine configuration are subject to security considerations. 13.3.2.1 Networking The default networking mode for VMs is NAT which means that the VM acts like a computer behind a router, see chapter 6.3, Network Address Translation (NAT), page 94. The guest is part of a private subnet belonging to this VM and the guest IP is not visible from the outside. This networking mode works without any additional setup and is sufficient for many purposes. If bridged networking is used, the VM acts like a computer inside the same network as the host, see chapter 6.5, Bridged networking, page 97. In this case, the guest has the same network access as the host and a firewall might be necessary to protect other computers on the subnet from a potential malicious guest as well as to protect the guest from a direct access from other, 13 Security guide computers. In some cases it is worth considering using a forwarding rule for a specific port in NAT mode instead of using bridged networking. Some setups do not require a VM to be connected to the public network at all. Internal networking (see chapter 6.6, Internal networking, page 98) or host-only networking (see chapter 6.7, Host-only networking, page 99) are often sufficient to connect VMs among each other or to connect VMs only with the host but not with the public network. 13.3.2.2 VRDP remote desktop authentication When using the VirtualBox extension pack provided by Oracle for VRDP remote desktop support, you can optionally use various methods to configure RDP authentication. The “null” method is very insecure and should be avoided in a public network. See chapter 7.1.5, RDP authentication, page 107 for details. 13.3.2.3 Clipboard The shared clipboard allows users to share data between the host and the guest. Enabling the clipboard in “Bidirectional” mode allows the guest to read and write the host clipboard. The “Host to guest” mode and the “Guest to host” mode limit the access to one direction. If the guest is able to access the host clipboard it can also potentially access sensitive data from the host which is shared over the clipboard. If the guest is able to read from and/or write to the host clipboard then a remote user con- necting to the guest over the network will also gain this ability, which may not be desirable. As a consequence, the shared clipboard is disabled for new machines. 13.3.2.4 Shared folders If any host folder is shared with the guest then a remote user connected to the guest over the network can access these files too as the folder sharing mechanism cannot be selectively disabled for remote users. 13.3.2.5 3D graphics acceleration Enabling 3D graphics via the Guest Additions exposes the host to additional security risks; see chapter 4.4.1, Hardware 3D acceleration (OpenGL and Direct3D 8/9), page 73. 13.3.2.6 CD/DVD passthrough Enabling CD/DVD passthrough allows the guest to perform advanced operations on the CD/DVD drive, see chapter 5.9, CD/DVD support, page 90. This could induce a security risk as a guest could overwrite data on a CD/DVD medium. 13.3.2.7 USB passthrough Passing USB devices to the guest provides the guest full access to these devices, see chapter 3.10.1, USB settings, page 56. For instance, in addition to reading and writing the content of the partitions of an external USB disk the guest will be also able to read and write the partition table and hardware data of that disk. 13.3.3 Configuring and Using Authentication The following components of VirtualBox can use passwords for authentication:, 13 Security guide • When using remote iSCSI storage and the storage server requires authentication, an initia- tor secret can optionally be supplied with the VBoxManage storageattach command. As long as no settings password is provided (command line option -settingspwfile , this secret is stored unencrypted in the machine configuration and is therefore poten- tially readable on the host. See chapter 5.10, iSCSI servers, page 91 and chapter 8.18, VBoxManage storageattach, page 137. • When using the VirtualBox web service to control a VirtualBox host remotely, connections to the web service are authenticated in various ways. This is described in detail in the VirtualBox Software Development Kit (SDK) reference; please see chapter 11, VirtualBox programming interfaces, page 207. 13.3.4 Potentially insecure operations The following features of VirtualBox can present security problems: • Enabling 3D graphics via the Guest Additions exposes the host to additional security risks; see chapter 4.4.1, Hardware 3D acceleration (OpenGL and Direct3D 8/9), page 73. • When teleporting a machine, the data stream through which the machine’s memory con- tents are transferred from one host to another is not encrypted. A third party with access to the network through which the data is transferred could therefore intercept that data. An SSH tunnel could be used to secure the connection between the two hosts. But when considering teleporting a VM over an untrusted network the first question to answer is how both VMs can securely access the same virtual disk image(s) with a reasonable perfor- mance. • When using the VirtualBox web service to control a VirtualBox host remotely, connections to the web service (through which the API calls are transferred via SOAP XML) are not encrypted, but use plain HTTP by default. This is a potential security risk! For details about the web service, please see chapter 11, VirtualBox programming interfaces, page 207. The web services are not started by default. Please refer to chapter 9.20, Starting the VirtualBox web service automatically, page 189 to find out how to start this service and how to enable SSL/TLS support. It has to be started as a regular user and only the VMs of that user can be controlled. By default, the service binds to localhost preventing any remote connection. • Traffic sent over a UDP Tunnel network attachment is not encrypted. You can either encrypt it on the host network level (with IPsec), or use encrypted protocols in the guest network (such as SSH). The security properties are similar to bridged Ethernet. 13.3.5 Encryption The following components of VirtualBox use encryption to protect sensitive data: • When using the VirtualBox extension pack provided by Oracle for VRDP remote desktop support, RDP data can optionally be encrypted. See chapter 7.1.6, RDP encryption, page 108 for details. Only the Enhanced RDP Security method (RDP5.2) with TLS protocol provides a secure connection. Standard RDP Security (RDP4 and RDP5.1) is vulnerable to a man-in-the-middle attack., 14 Known limitations 14.1 Experimental Features Some VirtualBox features are labeled as experimental. Such features are provided on an “as-is” basis and are not formally supported. However, feedback and suggestions about such features are welcome. A comprehensive list of experimental features follows: • WDDM Direct3D video driver for Windows guests • Hardware 3D acceleration support for Windows, Linux, and Solaris guests • Hardware 2D video playback acceleration support for Windows guests • PCI pass-through (Linux hosts only) • Mac OS X guests (Mac hosts only) • ICH9 chipset emulation • EFI firmware • Host CD/DVD drive pass-through • Support of iSCSI via internal networking • Synthetic CPU reporting 14.2 Known Issues The following section describes known problems with VirtualBox 4.3.12. Unless marked other- wise, these issues are planned to be fixed in later releases. • The following Guest SMP (multiprocessor) limitations exist: – Poor performance with 32-bit guests on AMD CPUs. This affects mainly Windows and Solaris guests, but possibly also some Linux kernel revisions. Partially solved in 3.0.6 for 32 bits Windows NT, 2000, XP and 2003 guests. Requires 3.0.6 or higher Guest Additions to be installed. – Poor performance with 32-bit guests on certain Intel CPU models that do not include virtual APIC hardware optimization support. This affects mainly Windows and Solaris guests, but possibly also some Linux kernel revisions. Partially solved in 3.0.12 for 32 bits Windows NT, 2000, XP and 2003 guests. Requires 3.0.12 or higher Guest Additions to be installed. • 64-bit guests on some 32-bit host systems with VT-x can cause instabilities to your system. If you experience this, do not attempt to execute 64-bit guests. Refer to the VirtualBox user forum for additional information. • NX (no execute, data execution prevention) only works for guests running on 64-bit hosts or guests running on 32-bit hosts with PAE enabled and requires that hardware vir- tualization be enabled., 14 Known limitations • For basic Direct3D support in Windows guests to work, the Guest Additions must be installed in Windows “safe mode”. Press F8 when the Windows guest is booting and select “Safe mode”, then install the Guest Additions. Otherwise Windows’ file protection mech- anism will interfere with the replacement DLLs installed by VirtualBox and keep restoring the original Windows system DLLs. Note: This does not apply to the experimental WDDM Direct3D video driver available for Vista and Windows 7 guests shipped with VirtualBox 4.1. • Guest control. On Windows guests, a process lauched via the guest control execute support will not be able to display a graphical user interface unless the user account under which it is running is currently logged in and has a desktop session. Also, to use accounts without or with an empty password, the guest’s group policy must be changed. To do so, open the group policy editor on the command line by typ- ing gpedit.msc, open the key Computer Configuration\Windows Settings\Security Set- tings\Local Policies\Security Options and change the value of Accounts: Limit local account use of blank passwords to console logon only to Disabled. • Compacting virtual disk images is limited to VDI files. The VBoxManage modifyhd -compact command is currently only implemented for VDI files. At the moment the only way to optimize the size of a virtual disk images in other formats (VMDK, VHD) is to clone the image and then use the cloned image in the VM configuration. • OVF import/export: – OVF localization (multiple languages in one OVF file) is not yet supported. – Some OVF sections like StartupSection, DeploymentOptionSection and InstallSection are ignored. – OVF environment documents, including their property sections and appliance config- uration with ISO images, are not yet supported. – Remote files via HTTP or other mechanisms are not yet supported. • Neither scale mode nor seamless mode work correctly with guests using OpenGL 3D features (such as with compiz-enabled window managers). • The RDP server in the VirtualBox extension pack supports only audio streams in format 22.05kHz stereo 16 bit. If the RDP client requests any other audio format there will be no audio. • Preserving the aspect ratio in scale mode works only on Windows hosts and on Mac OS X hosts. • On Mac OS X hosts, the following features are not yet implemented: – Numlock emulation – CPU frequency metric – Memory ballooning • Mac OS X guests: – Mac OS X guests can only run on a certain host hardware. For details about license and host hardware limitations, please see chapter 3.1.1, Mac OS X guests, page 46 and check the Apple software license conditions. – VirtualBox does not provide Guest Additions for Mac OS X at this time., 14 Known limitations – The graphics resolution currently defaults to 1024x768 as Mac OS X falls back to the built-in EFI display support. See chapter 3.12.1, Video modes in EFI, page 58 for more information on how to change EFI video modes. – Mac OS X guests only work with one CPU assigned to the VM. Support for SMP will be provided in a future release. – Depending on your system and version of Mac OS X, you might experience guest hangs after some time. This can be fixed by turning off energy saving (set timeout to “Never”) in the system preferences. – By default, the VirtualBox EFI enables debug output of the Mac OS X kernel to help you diagnose boot problems. Note that there is a lot of output and not all errors are fatal (they would also show on your physical Mac). You can turn off these messages by issuing this command: VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" " " To revert to the previous behavior, use: VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" "" – It is currently not possible to start a Mac OS X guest in safe mode by specifying “-x” option in “VBoxInternal2/EfiBootArgs” extradata. • Solaris hosts: – There is no support for USB devices connected to Solaris 10 hosts. – USB support on Solaris hosts requires Solaris 11 version snv_124 or higher. Webcams and other isochronous devices are known to have poor performance. – No ACPI information (battery status, power source) is reported to the guest. – No support for using wireless adapters with bridged networking. – Crossbow-based bridged networking on Solaris 11 hosts does not work directly with aggregate links. However, you can manually create a VNIC (using dladm) over the aggregate link and use that with a VM. This technical limitation will be addressed in a future Solaris 11 release. • Guest Additions of version 4.1, 4.1.2 and 4.1.4 for Windows Thus VirtualBox WDDM Video driver may be installed and kept in guest system if Guest additions uninstallation is performed. This is caused by a bug in Guest Additions uninstaller. Note: This does not apply to Guest Additions update, i.e. installing a one version of Guest Additions on top of another works correctly. To solve this problem, one should uninstall the VirtualBox WDDM Video driver manu- ally. To do that open Device Manager, and check whether the Display Adapter is named “VirtualBox Graphics Adapter ..“. If no - there is nothing to be done. If yes - right-click the VirtualBox Graphics Adapter in Device Manager, select “Uninstall”, check “Delete the driver software for this device” and click “OK”. Once uninstallation is done - in Device Manager go to menu “Action” and select “Scan for hardware changes” to make the propper (Windows default) driver be picked up for the Graphics adapter. • Neither virtio nor Intel PRO/1000 drivers for Windows XP guests support segmentation offloading. Therefore Windows XP guests have slower transmission rates comparing to other guest types. Refer to MS Knowledge base article 842264 for additional information. • Guest Additions for OS/2. Shared folders are not yet supported with OS/2 guests. In ad- dition, seamless windows and automatic guest resizing will probably never be implemented due to inherent limitations of the OS/2 graphics system., 15 Change log This section summarizes the changes between VirtualBox versions. Note that this change log is not exhaustive; not all changes are listed. VirtualBox version numbers consist of three numbers separated by dots where the first and second number represent the major version and the 3rd number the minor version. Minor version numbers of official releases are always even. An odd minor version number represents an internal development or test build. In addition, each build contains a revision number. 15.1 Version 4.3.12 (2014-05-16) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed an occasional Guru Meditation (Mac OS X hosts only; bugs #12727, #12954) • VMM: fixed a rare condition that would fail to invalidate guest TLB entries or would inval- idate them when not required (Windows hosts only) • VMM: fixed a VERR_NOT_SUPPORTED Guru Meditation seen with certain guests, e.g. OpenServer 5.0.7 • VMM: more fixes for MSR emulation on certain hardware (tickets #12240, #12875) • GUI: fixed mouse positioning with mouse integration disabled and multiple guest screens (Windows hosts only; bug #9059) • GUI: fixed crash in VM manager (bug #12878) • GUI: fixed crash under rare conditions on entering/exiting fullscreen/seamless mode • Shared Clipboard: don’t stop working after taking a snapshot (bug #12700) • AHCI: fixed a crash under rare circumstances • API: fixed a hang during VM shutdown under rare conditions • NAT: fixed generation of malformed ICMP error datagrams (4.3.10 regression) • NAT: fixed potential crash in DNS proxy • NAT Network: don’t drop port forwarding rules after some time • NAT: fixed ARP cache corruption and network loss in Windows guest caused by iSCSI service activity • USB: improved check if a storage device is currently mounted to the host when the device is about to be attached to the VM (Mac OS X hosts only; #11038) • 3D support: several fixes, including better support for Ubuntu 14.04 • VRDP: fixed a potential crash on client disconnect (bug #12858) • VBoxSVC: fixed a race when a new client is started a few seconds after the last client terminated (Windows hosts only; bugs #11309, #12509), 15 Change log • VBoxSVC: fixed VirtualBox.xml registry corruption after VM renaming • VBoxSVC: fixed a potential crash caused by incorrect USB device filter (Mac OS X hosts only; #11038) • Windows hosts: partly support 32-bit COM on 64-bit systems • Windows host installer: implemented merge module (msm) support • Linux hosts: fixed dependency of boot script on older Debian systems (bug #12262) • Linux guests: fix symbolic link to shared folder helper (bug #12879) • Linux Additions: don’t crash VBoxService during guest execute for users without a pass- word (bug #12994) • Linux Additions: fixed a bug in guest execution where the guest process terminated with VERR_INTERRUPTED to the host 15.2 Version 4.3.10 (2014-03-26) This is a maintenance release. The following items were fixed and/or added: • VMM: more work on improving the emulation of certain MSR registers on certain host CPUs (e.g. bugs #12734, #12736, #12744, #12748, #12686, #12770) • VMM: fixed single-stepping for real-mode guests (VT-x without unrestricted guest execu- tion) and some I/O instructions (bug #12636) • VMM: fixed a potential problem with COW pages if nested paging is not available • GUI: Mac OS X: experimental native full screen support for Mountain Lion and Mavericks (bug #12292) • GUI: Mac OS X: removed the mini-toolbar minimize button which doesn’t work under Mac OS X full screen mode anyway • GUI: experimental HID LEDs synchronization for Windows and Mac OS X hosts: fixed keyboard re-synchronization if the feature is disabled (as done by default; bug #12758) • GUI: fixed a potential crash when opening the preferences menu (bug #12862) • OVF: fixed a crash of the VirtualBox Manager when re-starting guest export (bug #12586) • 3D support: several fixes • HGCM: fixed a problem with saved states which could cause several guest misbehavior after a VM was started from a saved state • Storage: fixed a bug preventing to compact differential snapshots under certain conditions • VBoxSVC: fixed a segmentation fault on Linux hosts if a very long path exists under /dev (bug #12760) • API: fixed guest misbehavior under certain conditions if a storage medium was attached or removed at VM runtime • Windows installer: make the –silent parameter work again (bug #12764) • Mac OS X Networking: prevent local traffic (VM-to/from-host) from leaking to wire (bug #12750), 15 Change log • Windows Additions: fixed the environment for guest processes (4.3.8 regression; bug #12782) • Windows Additions/WDDM: fixed divide by zero exception with multiple guest screens under certain conditions • Windows Additions/WDDM: fixed crashes with 2D video acceleration enabled (4.3.8 re- gression; bug #12745) • Linux Additions: install correctly on Ubuntu guest systems with a /usr/lib64 directory (bug #12513) • X11 Additions: fix for the VBoxClient process not exiting correctly (bug #12348) and consuming too much processor time 15.3 Version 4.3.8 (2014-02-25) This is a maintenance release. The following items were fixed and/or added: • VMM: more work on improving the emulation of certain MSR registers (e.g. bugs #12224, #12544) • VMM: fixed a VERR_INVALID_RPL Guru Meditation when booting certain guests (bug #11350) • VMM: experimental support for SSE 4.1 / SSE 4.2 passthrough, see here how to enable it (bug #8651) • VMM: fix for recent Linux kernels with software virtualization • GUI: experimental HID LEDs synchronization for Windows hosts, see here • GUI: warn the user if the Oracle Extension Pack is not installed and the user tries to activate the remote display feature (bug #9104) • GUI: make sure that a minimized guest (using mini toolbar in full screen / seamless mode) keeps the minimized state (bug #12199) • GUI: popup banner’s “do not show this message again” check-box replaced with corre- sponding button • GUI: network adapter cables can now be connected/disconnected directly through the run- ning virtual machine Devices / Network menu a Network status-bar indicator • GUI: the new VM wizard now proposes 64-bit guests on 64-bit hosts by default; better distinction between 32-bit OS types 64-bit OS types (bug #12533) • GUI: better error message if appliance import fails (bug #12657) • GUI: allow to set host-combination to ’None’ using the Global settings / Input page (bug #12730) • GUI: don’t switch the guest to a black screen during online snapshot merge (4.3 regression) • VBoxManage: when exporting an appliance, support the suppression of MAC addresses, which means they will be always recreated on import, avoiding duplicate MAC addresses for VMs which are imported several times • AHCI: fixed a VM hang during suspend under certain circumstances, 15 Change log • AHCI: fixed a VM hang during online snapshot merge under certain circumstances • AHCI: fixed a bug which resulted in Windows XP guest hangs if a SATA CDROM is attached (bug #12417) • AHCI: fixed a Guru Meditation under certain conditions • AHCI: ejecting a CD/DVD medium failed under certain conditions • AHCI: disk hotplugging fixes • NAT: transparent handling of host sleep/resume and network configuration changes if the dnsproxy is enabled or if the hostresolver is used (bug #12441) • NAT: fixed crash and misbehaviour under some circumstances with ICMP packets having TTL=1 • NAT Network: fixed IPv6 reassembly • NAT Network: ping proxy implemented • OVF: fixed reading of the OVF 0.9 section element (4.3 regression; bug #12345) • OVF: several fixes • 3D support: several fixes, multiscreen fixes (e.g. bug #9124) • 3D support: include 3D content in captured videos (bug #12666) • 3D support: include 3D content in captured screenshot (bug #11758) • VGA: proper handling of legacy graphics modes if the Guest Additions are active (bug #6649) • USB: fixed crash during isochronous transfer under rare circumstances • BIOS: better disk geometry handling of SCSI drives • API: fix crashes in Java API clients using the XPCOM binding, happened with output pa- rameters only (bug #11232) • VBoxSVC: documented the handling of host power management events (see here) and added an extradata item for configuring the handling of the battery-low event (bug #9925) • VBoxSVC: fixed a bug which could trigger a crash if a VM snapshot was restored the second time and the VM has associated bandwidth groups (bug #12569) • VBoxSVC: properly detect ifconfig if located in /bin (bug #12713) • Shared Folders: fixed a failure to restore transient shared folders when starting a VM from a saved state (bug #12578) • Mac OS X hosts: fixed issue when the application icon was frozen in the dock if the bridging interface was not connected to a network (bug #12241) • Linux hosts: also consider the physical package ID when determining the number of phys- ical CPU cores • Linux hosts / guests: don’t warn in kernel log if memory allocation fails (bug #11171) • Solaris hosts: fixed the autostart SMF script (bug #11720), 15 Change log • Windows hosts: fixes for non-ANSI code page user names and similar environment contents (bug #12596) • Windows hosts / guests: fixed setting and using a guest user’s process environment vari- ables (relevant for Guest Control) • Windows Additions: fixed handle leaks in VBoxTray (bug #12563) • Windows Additions: fixed a crash while detecting active guest users • Windows Additions: fixed restoring backed up D3D files on XPDM -> WDDM upgrade • Guest Control: fixed setting and using a guest user’s process environment variables • Linux Additions: support Enterprise Linux 6.5 kernels (bug #12505) • Linux Additions: fixed CPU hot-remove on newer Linux kernels • Linux / Solaris Additions: don’t automount a shared folder which is already mounted • X11 Additions: support X.Org Server 1.15 (bug #12623) 15.4 Version 4.3.6 (2013-12-18) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed a Guru Meditation VINF_EM_TRIPLE_FAULT caused by VMCB caching with nested paging on certain AMD CPUs (bug #12451) • VMM: fixed a Guru Meditation VERR_VMX_UNEXPECTED_INTERRUPTION_EXIT_TYPE while intercepting debug exceptions (VT-x only; bug #12410) • VMM: fixed a Guru Meditation VERR_SVM_UNEXPECTED_EXIT while intercepting debug register accesses (AMD-V only; bug #12481) • VMM: fixed a VERR_SSM_STRUCTURE_MAGIC error when trying to load a saved state made with VBox 4.3.4 when VT-x/AMD-V is disabled. Unfortunately, VBox 4.3.4 produced broken saved states for this configuration so you have to discard these states (bug #12414) • VMM: added a few more MSRs to the whitelist required by certain guests (bug #12245) • GUI: fixed deleting of inaccessible VMs (4.3 regression, bug #12205) • GUI: fixed warnings in VM settings / number of guest processors (bug #12480) • Main: don’t automatically enable 64-bit guests on 64-bit hosts if VT-x/AMD-V is not avail- able (bug #12424) • Main: always expose the DMI memory information to Windows 2012 guests (bug #12017) • Main: fixed occasional crashes on guest display resolution change (bug #7063) • Main: fixed reporting back temporary name when calling IGuestSession::DirectoryCreateTemp() (bug #12498) • API: fix for a hang when launching a GUI VM through the API, which crashes due to GUI unavailability • Storage: fix for BLKCACHE_IOERR runtime errors under rare circumstances (bug #11030) • Network: allow to start more than 5 PCNet instances (bug #12426), 15 Change log • E1000: if the cable was disconnected before the guest initialized the device, the link status was not properly set to ’down’ after the initialization completed despite the fact that there was no connection • 3D support: fixed offset of guest 3D image elements (Mac OS X Retina hosts only; bug #11021) • Solaris hosts: fixed accessing the host driver from non-global zones (4.3 regression, bug #12271) 15.5 Version 4.3.4 (2013-11-29) This is a maintenance release. The following items were fixed and/or added: • VMM: fix for a bug in the Local APIC emulation causing a BSOD when booting certain guests (4.3.0 regression; bug #12240) • VMM: fixed loading of saved states if VT-x/AMD-V was disabled (4.3.2 regression; bug #12291) • VMM: fixed single-stepping inside the guest for certain instructions (VT-x only; bug #10947) • VMM: fixed a performance issue involving APIC accesses after rebooting a VM (4.3.0 re- gression; VT-x only; bug #12296) • VMM: fixed TPR patching to be enabled for 32-bit guests even when the chosen guest type is 64-bit (4.3.0 regression; AMD-V only) • VMM: fixed occasional VINF_EM_TRIPLE_FAULT errors on hosts without the unrestricted guest execution feature (bug #12198) • GUI: don’t bother the user with the BPP warning if no Guest Additions are installed • GUI: fixed machine-window paint artifacts on VM reboot / guest-screen resize • GUI: make sure the assigned license and description are attached to the exported appliance • GUI: fixed bugs in close VM action restrictions handling (bug #12333) • GUI: fixed incorrect wizards text colors for some unusual look and feel styles (bug #11743) • GUI: should restore seamless mode as soon as possible after VM reboot or shutdown • GUI: fixes for medium enumeration • GUI: the OS X hot corners were not accessible while a VirtualBox VM is running (Mac OS X hosts only; bug #4139) • GUI: fixed an old bug which bared the host from cleanly shutdown / reboot if the VM selector window is open (Mac OS X hosts only; bug #8254) • Host-only Networking: fixed creating of host-only network interfaces (4.3.0 regression; bug #12182) • NAT: don’t run into an infinite loop in case the host cannot access any DNS server (4.3.0 regression; bug #12300) • NAT: don’t re-connect the cable if the DNS information changes and the cable was discon- nected before (4.3.0 regression; bug #12225), 15 Change log • NAT: fixed several issues with automatically starting / terminating of NAT networks on VM start / stop and configuration changes • VBoxNetDHCP: don’t block prevent VBoxSVC from terminating (bug #12264) • 2D Video acceleration: fix crashes on presentation mode switches (bug #9194) • BusLogic: allow to run VMs with more than one BusLogic SCSI controller enabled • Keyboard: fixed a VM crash if a VM was resumed from a saved state where at least one key was pressed (bug #11289) • VBoxSVC: fixed a heap corruption under certain conditions (4.3.0 regression) • VBoxSVC: fixed a race leading to a hang during initialization (bug #12349) • OVF: fixed import logic for OVF appliances containing multiple VMs • OVF: improved logic for finding an appropriate image format during OVF import • API: block the removal of the current snapshot if it has child snapshots (only relevant for VMs without snapshottable hard disks, their presence always prevented removal), which resulted in VM config corruption • API: mark VM configs with snapshots but without current snapshot as inaccessible, as this combination is nonsense • API: fixed information for some automatically generated events (only with XPCOM, Win- dows host was not affected), which caused errors when getting some of the attributes over the webservice (bug #12379) • SDK: extended the functionality coverage for the C bindings • Guest Control: various bugfixes and improved VBoxManage help (bugs #8072, #11044, #12336, #12338, #12346, #12371) • Windows hosts: another attempt to fix the massive DPC latency (bug #6242) • Windows host installer: make registering file extensions optional, contributed by Tal Aloni (bug #8009) • Mac OS X hosts: properly sign the kernel extensions for Mavericks hosts (bug #12256) • Mac OS X hosts: fixed a bug where the VirtualBox dock icon was not properly removed from the dock after a VM terminated preventing Mavericks hosts from shutting down (bug #12241) • Mac OS X hosts: fixed minor installer issue (bug #12275) • Linux hosts / guests: Linux 3.13 compile fixes (bug #12358) • Linux guests: build the vboxvideo kernel module correctly on OL/RHEL 6.1 guests (bug #11996) • Linux guests: make 3D work on Slackware 14.1 (bug #12320 comments 3 and 4) • Guest Additions/3D: fixed an occasional dead-lock (bug #12319) • Windows Additions/3D: fixed possible memory leaking (bug #12228) • Windows Additions/XPDM: use separate tables containing valid video modes for each vir- tual monitor • Windows Additions: fixed automatic logins for Vista and newer Windows guests (bug #12332), 15 Change log 15.6 Version 4.3.2 (2013-11-01) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed restoring of the auxiliary TSC MSR in VT-x that caused host BSODs on Windows 8.1 hosts and unpredictable behavior on other hosts (bug #12237) • VMM: provide fake values for a couple of MSRs to make more guests happy on certain hosts • VMM: fixed detection of VT-x on certain machines where the BIOS would not set the VMX LOCK feature bit, which affected the VM settings in the GUI • VMM: fixed TPR threshold which caused BSODs on Windows XP guests that use the I/O APIC (VT-x only; bug #12227) • VMM: fixed PATM saved state incompatibility for software virtualized VMs (bug #12222) • VMM: don’t fail if AMD-V isn’t available if the VM is configured to use software virtualiza- tion • GUI: fixed guest resize breakage on visual representation mode change (when switching from normal to full screen etc) • GUI: make sure the guest screen is resized after restoring a VM from a saved state if the host screen size changed • GUI: disabled SCROLL LED sync from HID LEDs synchronization (Mac OS X hosts only) • Webcam passthrough improvements including GUI support (see chapter 9.7.1, Using a host webcam in the guest, page 168) • Guest Control: implemented more IGuestSession methods • Guest Control: added support for deleting and renaming guest files + directories in VBox- Manage • Guest Control: various bugfixes • API: incorrect handling of hardware UUID default value, resulting in an all zero DMI/SMBIOS UUID, which leads to Windows requesting re-activation (4.3 regression; bug #12244) • 3D support: fixed crash on shutdown if 2D video acceleration is enabled (Mac OS X hosts only) • 3D support: miscellaneous fixes • Storage: fixed detection of CD/DVD media when switching from an empty to a host drive with passthrough enabled • Storage: fixed hang of the VM process when the disk is full under certain circumstances • NAT: listen for changes of NAT Network setting at runtime • NAT: NAT Network DHCP server now saves leases to a persistent storage • Main: monitor changes in host DNS configuration • Mac OS X host: reworked a mechanism of adding a VM desktop alias from the VM selector • Mac OS X installer: remove old kernel extensions during upgrade (bug #12258), 15 Change log • Linux Additions: correctly set umask before installing (bug #12166) • X11 Additions/3D: fix freezes starting 3D desktop (bug #11503, thank you Sam Spilsbury) • X11 Additions/3D: fix depth buffer support (bug #11905) • X11 Additions/3D: fix Age Of Empires 3 rendering (bug #11331) • Windows Additions/3D: fix Google Earth plugin rendering • Windows Additions/WDDM: autoresize fixes 15.7 Version 4.3.0 (2013-10-15) This is a major update. The following major new features were added: • VMM: major rewrite of the VT-x code and the AMD-V code including many bug fixes and performance improvements (for example bug #9659) • VMM: introduced a lightweight instruction interpreter for situations not handled by hard- ware virtualization • GUI: extended messaging mechanism (new non-modal popup overlays used to show non- critical warnings and provide user with additional information) • GUI: keyboard shortcuts management (input page of global preferences extended with possibility to edit general keyboard shortcuts for VirtualBox Manager and Virtual Machine) • GUI: video capturing support (bug #4766) • Added USB touch device emulation • Added experimental support for webcam passthrough complementing USB passthrough (see chapter 9.7.1, Using a host webcam in the guest, page 168) • Added SCSI CD-ROM emulation, including boot support • VRDP: support for IPv6 • Guest Control: guest sessions now are running in dedicated, impersonated session pro- cesses (needs at least Guest Additions 4.3 installed) • Guest Control: implemented IGuestFile support • NAT: experimental virtual router mode: several VMs are attached to the same internal network and share one NAT service (see chapter 6.4, Network Address Translation Service (experimental), page 96) In addition, the following items were fixed and/or added: • VMM: significantly improved performance of NetWare 5.x/6.x guests on host systems with- out nested paging support • VMM: fixed losing host NMIs while in VT-x guest-context • VMM: changed order of actions in emulated task switch (bug #10532) • VMM: allow to activate VT-x while in SMX mode and provide more information if that is not possible • GUI: update check uses https, 15 Change log • GUI: numerous minor internal cleanups and bug fixes • GUI: HID LEDs synchronization when switching between guest window(s) and host (Mac OS X hosts only) • GUI, VBoxManage: when unregistering a VM, also unregister the hard disk images which are used exclusively (bug #10311) • GUI: use the number of physical presented processor cores instead of the number of logical processor cores to check if the users assigned too many virtual CPUs to the guest • Snapshots: made live snapshots work again (bug #9255) • Teleportation: made it work again (bug #9455) • Storage: implemented AHA-154x compatibility mode in the emulated BusLogic SCSI HBA • Storage: significantly improved performance of large ATAPI PIO transfers (BeOS, Minix 3 guests affected) • Storage: added floppy formatting emulation (NB: cannot be used to change existing media geometry) • Settings: global and per-VM default frontend configuration, useful to select the use of alternative VM frontends • Settings: limit depth of snapshot tree to 250 levels, as more will lead to decreased perfor- mance and may trigger crashes • Settings: the per-VM hwvirtextexcl setting has been replaced by a global hwvirtexclusive property • Main: new event queue implementation which does not use the host’s native event queue for processing VirtualBox events anymore • Main: eliminate the use of SysV semaphores on all host OSes other than Windows, namely Linux, Solaris and Mac OS X, with the consequence that no system reconfiguration is needed to run more than approximately 100 VMs • Main: use the XDG standard configuration folder instead of .VirtualBox on systems where it is appropriate (bug #5099) • Main: extension pack framework can now support loading HGCM modules, contributed by Jeff Westphal • VBoxManage: list more information about hard disk/DVD/floppy media, and support the -long option to show really all available details • VBoxManage: added support for optional command line parameters for the automatic Guest Additions update • VBoxManage: added support for listing active guest sessions, guest processes and/or guest files via guestcontrol list • VBoxManage: added support for closing active guest sessions via guestcontrol session close -session-id | -session-name |-all • VBoxManage: added support for terminating active guest processes via guestcontrol process kill|close|terminate -session-id | -session-name ... or guestcontrol [p[s]]kill -session-id | -session-name ... , 15 Change log • VBoxManage: added support for watching guest sessions via guestcontrol watch • VBoxManage: added modifyvm -triplefaultreset to make the VM reset on triple fault instead of triggering a Guru Meditation (see chapter 8.8, VBoxManage modifyvm, page 125) • 3D support: several fixes • 3D support: several fixes for Mac OS X hosts • OVF: several fixes • Extpack Installer: make it work if the file is located in a folder with special characters • Keyboard: fix for reporting key sequences like Ctrl+Alt+Del for the USB keyboard emula- tion • Shared Clipboard/X11: support for BMP-format images, contributed by François Revol • Mac OS X hosts: limited support for Mac OS X 10.9 (Mavericks) • Mac OS X hosts: use a launchd script instead of the deprecated StartupItem mechanism (bug #8940) • Windows hosts: don’t cause massive DPC latency (only on certain hosts; still needs improv- ing; bug #6242) • Windows hosts: consider symlinks when retrieving volume information (bug #11962) • Windows hosts: fixed an issue with USB2 devices being inaccessible when plugged into USB 3.0 ports • Windows Additions: fixed misbehavior with guest display power management (WDDM driver only; bug #11170) • Windows Additions: fixed memory leak caused by WTSQuerySessionInformation() on Win- dows 2000 guests (bug #12072) • Windows Additions: ability to track guest user idle times through the newly introduced event IGuestUserStateChangedEvent • Linux Additions: fixed udev detection in the init script with Linux 3.x kernels 15.8 Version 4.2.22 (2014-01-10) This is a maintenance release. The following items were fixed and/or added: • GUI: Mac OS X host: introduced extradata option “GUI/HidLedsSync” aimed to enable HID LEDs synchronization (feature disabled by default) • GUI: Mac OS X host: fixed issue on MacBook Air/Pro hosts when GUI might freeze in attempt to synchronize HID LEDs • Main: always expose the DMI memory information to Windows 2012 guests (bug #12017) • HGCM: fixed crashes under certain conditions • Storage: fix for BLKCACHE_IOERR runtime errors under rare circumstances (bug #11030) • AHCI: fixed a bug which resulted in Windows XP guest hangs if a SATA CDROM is attached (bug #12417), 15 Change log • AHCI: fixed a Guru Meditation under certain conditions • E1000: if the cable was disconnected before the guest initialized the device, the link status was not properly set to ’down’ after the initialization completed despite the fact that there was no connection • 3D support: fixed offset of guest 3D image elements (Mac OS X Retina hosts only; bug #11021) • 3D support: many fixes • Linux Additions: support Enterprise Linux 6.5 kernels (bug #12505) • Linux Additions: fixed CPU hot-remove on newer Linux kernels • Windows Additions: fixed guest crashes in in Shared Folders service under certain condi- tions 15.9 Version 4.2.20 (2013-11-28) This is a maintenance release. The following items were fixed and/or added: • GUI: always report recommended resolutions for all monitors (not always done since 4.2.12) • GUI: make sure the assigned license and description are attached to the exported appliance • GUI: the OS X hot corners were not accessible while a VirtualBox VM is running (Mac OS X hosts only; bug #4139) • NAT: don’t run into an infinite loop in case the host cannot access any DNS server (4.3.0 regression; bug #12300) • NAT: don’t re-connect the cable if the DNS information changes and the cable was discon- nected before (4.3.0 regression; bug #12225) • Main: properly save the passthrough flag for DVD drives without an attached medium • Keyboard: fixed a VM crash if a VM was resumed from a saved state where at least one key was pressed (bug #11289) • 2D Video acceleration: fix crashes on presentation mode switches (bug #9194) • Storage: fixed errors with snapshots when using QCOW or QED disk images (bug #12144) • Storage: fix for newer Linux kernels not detecting a hard disk as SSD when using the IDE or SATA controller (bug #12025) • Storage: fixed detection of CD/DVD media when switching from an empty to a host drive with passthrough enabled • Snapshots: fixed a bug which could result in lost medium attachments (4.2.18 regression, bug #11750) • Shared Clipboard: fixed potential SEGFAULT when working with UTF8 and UTF16 content (Mac OS X hosts only) • OVF: fixed import logic for OVF appliances containing multiple VMs • Extpack Installer: make it work if the file is located in a folder with special characters, 15 Change log • SDK: extended the functionality coverage for the C bindings • API: block the removal of the current snapshot if it has child snapshots (only relevant for VMs without snapshottable hard disks, their presence always prevented removal), which resulted in VM config corruption • API: mark VM configs with snapshots but without current snapshot as inaccessible, as this combination is nonsense • API: fixed information for some automatically generated events (only with XPCOM, Win- dows host was not affected), which caused errors when getting some of the attributes over the webservice (bug #12379) • Mac OS X hosts: support for Mac OS X 10.9 (Mavericks) • Mac OS X hosts: properly sign the kernel extensions for Mavericks hosts (bug #12256) • Mac OS X hosts: use a launchd script instead of the deprecated StartupItem mechanism (bug #8940) • Mac OS X hosts: fixed a bug where the VirtualBox dock icon was not properly removed from the dock after a VM terminated preventing Mavericks hosts from shutting (bug #12241) • Linux Additions: Linux 3.13 compile fix (bug #12358) • Linux Additions: Linux 3.12 compile fix (bug #12083) • Linux Additions: Linux 3.11 fix for shared folders (bugs #11946, #12128) • Linux Additions: compile fix for SLES11 SP3 • Linux Additions: correctly set umask before installing (bug #12166) • Linux Additions: build the vboxvideo kernel module correctly on OL/RHEL 6.1 guests (bug #11996) • Linux Additions: make 3D work on Slackware 14.1 (bug #12320 comments 3 and 4) • Windows Additions: fixed memory leak caused by WTSQuerySessionInformation() on Win- dows 2000 guests (bug #12072) • Windows Additions: multimonitor resize fixes • X11 Additions/3D: fix freezes starting 3D desktop (bug #11503, thank you Sam Spilsbury) • Guest additions/3D: fix an occasional dead-lock (bug #12319) 15.10 Version 4.2.18 (2013-09-06) This is a maintenance release. The following items were fixed and/or added: • VMM: properly handle NMIs on Linux hosts with X2APIC enabled • VMM: fixed potential crashes with 64-bit guests on 32-bit hosts (bug #11979) • GUI / seamless: properly handle mouse wheel scroll events • GUI, VBoxManage: when unregistering a VM, also unregister the hard disk images which are used exclusively (bug #10311) • GUI: prevent crashes under certain conditions on X11 hosts, 15 Change log • 3D support: multiscreen fixes (incorrect mouse position, flickets) • 3D support: several fixes for the Windows WDDM video driver (multiscreen, seamless) • Snapshots: made live snapshots work again (bug #9255) • Teleportation: made it work again (bug #9455) • VBoxManage: on snapshot take, –pause is default and –live is for doing live snapshots • VBoxSVC: don’t crash on systems with many VLAN interfaces (Solaris hosts only) • Network: after the host resumes from suspend, disconnect and reconnect the virtual net- work cables to force renewing the DHCP leases for the guests. So far only Mac OS X hosts and Windows hosts (bug #10063) • NAT: on name server changes force a reconnect of the virtual network cable to notify the guest (Mac OS X hosts only) • Mac OS X installer: keep previously installed Extension Packs on VirtualBox upgrade • Linux hosts / guests: Linux 3.11 fixes (bug #12001) • Solaris hosts: fixed a potential kernel panic caused due to unexpected preemption due to logging • Windows hosts: fixed an issue with USB2 devices being inaccessible when plugged into USB3 ports • Linux Additions: added PCI device identifier to vboxvideo.ko fixing DRI initialization under certain conditions (bug #11957) • Linux Additions: fixed udev detection in the init script with Linux 3.x kernels 15.11 Version 4.2.16 (2013-07-04) This is a maintenance release. The following items were fixed and/or added: • OVF/OVA: don’t crash on import if no manifest is used (4.2.14 regression; bug #11895) • GUI: do not restore the current snapshot if we power-off after a Guru Mediation • Storage: fixed a crash when hotplugging an empty DVD drive to the VM • Storage: fixed a crash when a guest read from a DVD drive attached to the SATA controller under certain circumstances • EFI: don’t fail with 64-bit guests on 32-bit hosts (bug #11456) • Autostart: fixed VM startup on OS X • Windows hosts: native Windows 8 controls • Windows hosts: restore native style on Vista 32 • Windows hosts / guests: Windows 8.1 adaptions (bug #11899) • Mac OS X hosts: after removing VirtualBox with VirtualBox_Uninstall.tool, remove it from the pkgutil –pkgs list as well, 15 Change log 15.12 Version 4.2.14 (2013-06-21) This is a maintenance release. The following items were fixed and/or added: • VMM: another TLB invalidation fix for non-present pages • VMM: fixed a performance regression (4.2.8 regression; bug #11674) • GUI: fixed a crash on shutdown • GUI: prevent stuck keys under certain conditions on Windows hosts (bugs #2613, #6171) • VRDP: fixed a rare crash on the guest screen resize • VRDP: allow to change VRDP parameters (including enabling/disabling the server) if the VM is paused • USB: fixed passing through devices on Mac OS X host to a VM with 2 or more virtual CPUs (bug #7462) • USB: fixed hang during isochronous transfer with certain devices (4.1 regression; Windows hosts only; bug #11839) • USB: properly handle orphaned URBs (bug #11207) • BIOS: fixed function for returning the PCI interrupt routing table (fixes NetWare 6.x guests) • BIOS: don’t use the ENTER / LEAVE instructions in the BIOS as these don’t work in the real mode as set up by certain guests (e.g. Plan 9 and QNX 4) • DMI: allow to configure DmiChassisType (bug #11832) • Storage: fixed lost writes if iSCSI is used with snapshots and asynchronous I/O (bug #11479) • Storage: fixed accessing certain VHDX images created by Windows 8 (bug #11502) • Storage: fixed hang when creating a snapshot using Parallels disk images (bug #9617) • 3D support: seamless + 3D fixes (bug #11723) • 3D support: version 4.2.12 was not able to read saved states of older versions under certain conditions (bug #11718) • Main/Properties: don’t create a guest property for non-running VMs if the property does not exist and is about to be removed (bug #11765) • Main/Properties: don’t forget to make new guest properties persistent after the VM was terminated (bug #11719) • Main/Display: don’t lose seamless regions during screen resize • Main/OVF: don’t crash during import if the client forgot to call Appliance::interpret() (bug #10845) • Main/OVF: don’t create invalid appliances by stripping the file name if the VM name is very long (bug #11814) • Main/OVF: don’t fail if the appliance contains multiple file references (bug #10689) • Main/Metrics: fixed Solaris file descriptor leak, 15 Change log • Settings: limit depth of snapshot tree to 250 levels, as more will lead to decreased perfor- mance and may trigger crashes • VBoxManage: fixed setting the parent UUID on diff images using sethdparentuuid • Linux hosts: work around for not crashing as a result of automatic NUMA balancing which was introduced in Linux 3.8 (bug #11610) • Windows installer: force the installation of the public certificate in background (i.e. com- pletely prevent user interaction) if the –silent command line option is specified • Windows Additions: fixed problems with partial install in the unattended case • Windows Additions: fixed display glitch with the Start button in seamless mode for some themes • Windows Additions: Seamless mode and auto-resize fixes • Windows Additions: fixed trying to to retrieve new auto-logon credentials if current ones were not processed yet • Windows Additions installer: added the /with_wddm switch to select the experimental WDDM driver by default • Linux Additions: fixed setting own timed out and aborted texts in information label of the lightdm greeter • Linux Additions: fixed compilation against Linux 3.2.0 Ubuntu kernels (4.2.12 regression as a side effect of the Debian kernel build fix; bug #11709) • X11 Additions: reduced the CPU load of VBoxClient in drag’and’drop mode • OS/2 Additions: made the mouse wheel work (bug #6793) • Guest Additions: fixed problems copying and pasting between two guests on an X11 host (bug #11792) • Guest Additions: fixed guest process timeout / kill handling 15.13 Version 4.2.12 (2013-04-12) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed a Guru Meditation on putting Linux guest CPU online if nested paging is dis- abled • VMM: invalidate TLB entries even for non-present pages • GUI: Multi-screen support: fixed a crash on visual-mode change • GUI: Multi-screen support: disabled guest-screens should now remain disabled on visual- mode change • GUI: Multi-screen support: handle host/guest screen plugging/unplugging in different visual-modes • GUI: Multi-screen support: seamless mode: fixed a bug when empty seamless screens were represented by full screen windows, 15 Change log • GUI: Multi-screen support: each machine window in multi-screen configuration should have correct menu-bar now (Mac OS X hosts) • GUI: Multi-screen support: machine window View menu should have correct content in seamless / full screen mode now (Mac OS X hosts) • GUI: VM manager: vertical scroll-bars should be now updated on content/window resize • GUI: VM settings: fixed crash on machine state-change event • GUI: don’t show warnings about enabled or disabled mouse integration if the VM was restored from a saved state • Virtio-net: properly announce that the guest has to handle partial TCP checksums (bug #9380) • Storage: Fixed incorrect alignment of VDI images causing disk size changes when using snapshots (bug #11597) • Audio: fixed broken ALSA & PulseAudio on some Linux hosts due to invalid symbol reso- lution (bug #11615) • PS/2 keyboard: re-apply keyboard repeat delay and rate after a VM was restored from a saved state (bug #10933) • BIOS: updated DMI processor information table (type 4): corrected L1 & L2 cache table handles • Timekeeping: fix several issues which can lead to incorrect time, Solaris guests sporadically showed time going briefly back to Jan 1 1970 • Main/Metrics: disk metrics are collected properly when software RAID, symbolic links or rootfs are used on Linux hosts • VBoxManage: don’t stay paused after a snapshot was created and the VM was running before • VBoxManage: introduced controlvm nicpromisc (bug #11423) • VBoxManage: don’t crash on controlvm guestmemoryballoon of the VM isn’t running (bug #11639) • VBoxHeadless: don’t filter guest property events as this would affect all clients (bug #11644) • Guest control: prevent double CR in the output generated by guest commands and do NLS conversion • Linux hosts / guests: fixed build errors on Linux 3.5 and newer kernels if the CON- FIG_UIDGID_STRICT_TYPE_CHECKS config option is enabled (bug #11664) • Linux Additions: handle fall-back to VESA driver on RedHat-based guests if vboxvideo cannot be loaded • Linux Additions: RHEL/OEL/CentOS 6.4 compile fix (bug #11586) • Linux Additions: Debian Linux kernel 3.2.0-4 (3.2.39) compile fix (bug #11634) • Linux Additions: added auto-logon support for Linux guests using LightDM as the display manager • Windows Additions: Support for multimonitor. Dynamic enable/disable of secondary vir- tual monitors. Support for XPDM/WDDM based guests (bug #6118) • X11 Additions: support X.Org Server 1.14 (bug #11609), 15 Change log 15.14 Version 4.2.10 (2013-03-05) This is a maintenance release. The following items were fixed and/or added: • GUI: fixed keyboard with XQuartz X server (bug #10664) • Main/Display: fixed a crash with multi-monitors under certain conditions (Mac OS X hosts only) • Main/Properties: fixed a crash under certain conditions, for example after wakeup from host hibernate (bug #11444) • Settings: don’t lose the internal network settings if they are not currently active • Storage: another incompatibility fix for VHD differencing images with Hyper-V (bug #5990) • VBoxManage: don’t read beyond the end of the file specified with export –eulafile (bug #11528) • Linux hosts / guests: Linux 3.9-rc0 compile fixes • Linux Additions: fixed two warnings in the shared folders guest kernel module (bug #11390) • Linux Additions: don’t crash VBoxService if libdbus is not available (bug #8638) • Windows Additions: fixed upgrading MultiMedia Redirection (MMR) support 15.15 Version 4.2.8 (2013-02-20) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed a guest crash with a huge amount of guest RAM on VT-x hosts (bug #11306) • GUI: fixed a layout bug in the Mac OS X clone VM dialog (bug #10982) • GUI: not all the translation tags were taken into account during the language switch (bug #11342) • GUI: the take guest screenshot dialog sometimes had no keyboard input available on Win- dows host • Main/Machine: fix the generation of a spurious event for inaccessible VMs which triggered an endless event generation loop in cooperation with the GUI which became unresponsive (4.2.6 regression; bug #11323) • Main/Display: fix for an access violation under certain conditions in multi-monitor config- urations (bug #10539) • Main/Metrics: network metrics are now collected for active (up) interfaces only, the state of an interface being evaluated when the associated metric is enabled via setupMetrics • Snapshots: reduce the time for merging snapshots under certain conditions • Storage: fixed data corruption after resizing a VDI image under certain circumstances (bug #11344) • Storage: fixed non working online merging of snapshots (4.2.6 regression, bug #11359), 15 Change log • Storage: fixed crash when connecting to certain QNAP iSCSI targets • Storage: fixed incompatibility of VHD differencing images with Hyper-V (bug #5990) • Bridged Networking: fixed TCP pseudo header checksum computation for IPv6 (bug #9380) • 3D support: fix Battlefield 1942 game crashes (bug #11369) • Settings: really sanitise the name of VM folders and settings file, the code was disabled before (bug #10549) • Settings: allow to change VRDE settings for saved VMs • VBoxManage: don’t crash during screenshotpng if there is no display (bug #11363) • Linux hosts: work around gcc bug 55940 which might lead to wrong kernel module code if gcc 4.7 is used to compile the 32-bit Linux host kernel (bug #11035) • Linux hosts: fixed inconsistent lock state and deadlock warnings on module load and VM startup when CONFIG_PROVE_LOCKING is enabled (bug #11318) • Linux hosts: made “]“ key work again on Japanese keyboards • Mac OS X hosts: don’t crash the kernel during dtrace if the VBox kernel extensions are loaded (10.6 hosts only; bug #11273) • Solaris / Mac OS X hosts: machine CPU load metrics now report 100% when all cores are fully utilized (used to be a single core) • Solaris 11 host installer: wait for any services left over from a previous installation to be terminated to avoid confusing SMF. • Guest Additions: don’t block signals for processes executed via guest control • Guest Additions: fixed a small memory leak in VBoxService (bug #10970) • Windows Additions: fixed shared folder issue with large reads/writes on 64 bit Windows guests (bug #11115) • Linux Additions: Linux 3.8 compile fixes (bug #11036) • X11 Additions: fixed blocked SIGALRM in 3D desktop sessions (bug #10987) • X11 Additions: fixed an unresolved reference in vboxvideo_drv for X.org 6.8 guests and before (e.g. RHEL4; 4.2.0 regression) • X11 Additions: fixed screen automatic resizing for guests with X.org 1.3 or older (4.2.0 regression) 15.16 Version 4.2.6 (2012-12-19) This is a maintenance release. The following items were fixed and/or added: • VMM: don’t inject stale VT-x events to prevent crashes after VM reset (bug #11256) • VMM: workaround for buggy BIOSes which enable MONITOR only for certain CPUs (bug #9460) • GUI: fixed trimming of anti-aliased text in details-view element headers (4.2.0 regression), 15 Change log • GUI: fixed create-settings-file-alias functionality on Mac hosts (4.2.0 regression) • GUI: fixed take-guest-screenshot functionality on Windows hosts (bug #11095) • GUI: several minor fixes, including palette fixes (bug #11191) • GUI: fixed Windows 2012 OS type (bug #11206) • GUI: allow to terminate the VM even if VBoxSVC crashed • API: fixed cancelling of snapshots, previously this could lead to inconsistent VM configs (bug #6877) • API: fixed identifying disk images by UUID (bug #11209) • 3D support: several fixes • VRDP: fixed occasional crash with external authentication (bug #11156) • VGA: fix for double scan text modes • USB: fixed invalid pending request count at the time of service of DEVICE POWER requests (Windows hosts only; bugs #10021, #11056) • USB keyboard: Korean keyboard workaround (bug #11150) • Storage: fixed hang with QCOW images and asynchronous I/O enabled • Storage: fixed hang with newer VHD images (bug #11279) • Storage: actually write the non-rotational flag to the VM settings (4.2.0 regression) • Virtio-net: fixed the problem with network statistics counters in Session Information dialog (GUI) • Metrics: introduced network rate and disk usage metrics • Metrics: fixed a crash under certain conditions on Solaris hosts • BIOS: fix for El Torito • Shared Folders: if the host folder of a shared folder mapping does not exist, keep it active but mark it as invalid to prevent inconsitent saved states (bug #11147) • VBoxManage: fixed converting disks from raw images • VBoxManage: show snapshot description in the VM or snapshot information • VBoxManage: make implicit opening of media consistent in all places dealing with media • VBoxManage: the iSCSI initiator name was not stored in the settings file when doing storageattach (bug #11212) • VBoxManage: metrics collect now properly handles ’CPU/MHz’ and ’Net/*/LinkSpeed’ metrics • VBoxManage: changing the image UUID or parent UUID as part of storageattach works now in all safe cases • VBoxManage: introduced storageattach –medium additions as a shortcut to mount the ad- ditions image (bug #11165) • OVF: fixed importing OVF files cerated by recent VMware products (bug #10905), 15 Change log • Linux hosts / Bridged Networking: fixed the problem with leaking connections in conntrack (bug #11178) • Linux Additions: added support for ConsoleKit sessions in the vminfo service of VBoxSer- vice • Linux Additions: don’t crash during remount under certain conditions (bug #11291) • Linux/Solaris Additions: fixed guest memory metrics collection • Solaris hosts: added a dependency to ensure that the user directories are reachable when starting VBox services • Windows host installer: integrated user-contributed translations, thanks to all contributors! • Windows Additions: fixed auto-logon installation for Windows 8 • Windows Additions: don’t fail if the shared folders host service is not available • Windows Additions: fixed Guest Additions startup on Windows 2000 guests (bug #11253) • Windows Additions: auto-resize fixes for Windows 8 guests 15.17 Version 4.2.4 (2012-10-26) This is a maintenance release. The following items were fixed and/or added: • GUI: fixed validation warning on global settings / proxy page (4.2.2 regression, bug #11089) • GUI: fixed crash with multiple guest screens on certain conditions (OS X hosts only) • VBoxBalloonCtrl: fixed command line argument handling of ballooning module • VRDP: fixed occasional crash during a video playback in the guest (bug #11082) • BIOS: fixed broken DMI information (4.2 regression) • BIOS: workaround for booting from Windows 2000 floppy disks • EFI: fixed video mode selection loss on VM reboot (#10983) • Parallel: fixed parallel port printing failure/ paper queue empty error (Windows hosts only) • NAT: fixed crash on alias-less DNS responses when host-resolver is used • Storage: fixed hang under rare circumstances 15.18 Version 4.2.2 (2012-10-18) This is a maintenance release. The following items were fixed and/or added: • VMM: adapted to changes in Mac OS X 10.8.2 (bug #10965) • GUI: restored VM item tool-tip functionality (4.2 regression) • GUI: added group item tool-tip functionality • GUI: fixed handling of the .ova/.ovf file name association (4.2 regression), 15 Change log • GUI: it was not possible to change any setting before the first VM was created (bug #10928) • GUI: disable grouping action if all the selected items are full children list of the same group already • GUI: added menu for runtime drag-and-drop option change • GUI: cleanup shared-clipboard menu on visual-mode change • GUI: make sure VM receives keyboard focus on entering full screen mode on Win host (bug #11051) • GUI: disable proxy authentication for security reasons • 3D support: DrawIndexedPrimitiveUP implementation fixes for the Windows WDDM video driver (bug #10929) • Storage: fixed a release assertion in the AHCI emulation when requests where cancelled with asynchronous I/O disabled • Storage: fixed a hang during VM reset under certain circumstances (bug #10898) • NAT: fixed a crash under rare circumstances (Windows hosts only; bug #10128) • NAT: automatically use the host resolver if the host name server is set to some unusual loopback value (bug #10864) • E1000: fixed a VirtualBox crash during intensive network transfers (4.2 regression; bugs #10936, #10969, #10980) • ICH9: fixed PCI bridge initialization • USB mouse: ensure that the last mouse event doesn’t get lost if no URBs are available • BIOS: certain legacy guests (e.g. Windows 95) didn’t find the boot device after a warm reboot • BIOS: don’t trash the palette in text modes when setting the border color • EFI: fixed OS X guest autoboot (4.2 regression) • VBoxManage: fixed output of showvminfo –machinereadable (bug #10973) • VBoxManage: fixed parsing of storageattach –discard (bug #11023) • VBoxManage: fixed wrong output of the HPET setting in showvminfo (bug #11065) • VBoxManage: fixed closing the guest session after executing a guest process via guest control • VBoxShell: adaptions to interface name changes • Guest Additions device: fixed a Guest Additions hang when a machine was reset after a crash • Linux hosts / guests: Linux 3.7-rc1 fixes • Linux Additions: support X.Org Server 1.13 • Linux Additions: fixed a hang when the X server was restarted with old guest kernels • Linux Additions: fixed a VBoxService crash during CPU hot remove (bug #10964), 15 Change log • Windows Additions: fixed automatic screen resize issue for NT4 guests • OS/2 Additions: fixed shutdown hang • OS/2 Additions: fixed mouse driver panic • Solaris hosts: fixed autostart service going into maintenance mode after all VMs started • Solaris hosts: fixed linking the host driver with the dtrace module 15.19 Version 4.2.0 (2012-09-13) This is a major update. The following major new features were added: • Improved Windows 8 support, in particular many 3D-related fixes • GUI: VM groups (bug #288) • GUI: expert mode for wizards • GUI: allow to alter some settings during runtime • Support for up to 36 network cards, in combination with an ICH9 chipset configuration (bug #8805) • Resource control: added support for limiting network IO bandwidth; see chapter 6.10, Limiting bandwidth for network I/O, page 101 (bug #3653) • Added possibility to start VMs during system boot on Linux, OS X and Solaris; see chapter 9.23, Starting virtual machines during system boot, page 194 (bug #950) • Added experimental support for Drag’n’drop from the host to Linux guests. Support for more guests and for guest-to-host is planned. (bug #81) • Added support for parallel port passthrough on Windows hosts • Enhanced API for controlling the guest; please see the SDK reference and API documenta- tion for more information In addition, the following items were fixed and/or added: • Mac OS X hosts: sign application and installer to avoid warnings on Mountain Lion • VMM: fixed a potential host crash triggered by shutting down a VM when another VM was running (only affected 32-bit hosts and 64-bit OS X hosts, 4.1 regression, bug #9897) • VMM: fixed a potential host crash under a high guest memory pressure (seen with Windows 8 guests) • VMM: improved VM context switch performance for Intel CPUs using nested paging • VMM: added support for FlushByASID features of AMD CPUs (Bulldozer and newer) • VMM: fixed unreal mode handling on older CPUs with VT-x (gPXE, Solaris 7/8/9; bug #9941) • VMM: fixed MP tables fixes for I/O APIC interrupt routing relevant for ancient SMP guests (e.g. old OS/2 releases) • VMM: support recent VIA CPUs (bug #10005), 15 Change log • VMM: fixed handling of task gates if VT-x/AMD-V is disabled • VMM: page fusion fixes • GUI: network operations manager • GUI: allow taking screenshots of the current VM window content (bug #5561) • GUI: allow automatically sorting of the VM list • GUI: allow starting of headless VMs from the GUI • GUI: allow reset, shutdown and poweroff from the Manager window • GUI: allow to globally limit the maximum screen resolution for guests • GUI: show the full medium part on hovering the list of recently used ISO images • GUI: do not create additional folders when a new machine has a separator character in its name (bug #6541) • GUI: don’t crash on terminate if the settings dialog is still open (bug #9973) • GUI: consider scaled DPI values when display fonts on Windows hosts (bug #9864) • GUI: if a bridged network interface cannot be found, don’t refuse to start the VM but allow the user to change the setting immediately • Snapshots: fixed a crash when restoring an old snapshot when powering off a VM (bugs #9364, #9604, #10491) • Clipboard: disable the clipboard by default for new VMs (see chapter 13.3.2.3, Clipboard, page 226). It can be enabled at any time using the VM menu • Settings: sanitise the name of VM folders and settings file (bug #10549) • Settings: allow to store the iSCSI initiator secret encrypted • NAT: improvements for the built-in TFTP server (bugs #7385, #10286) • NAT: fixed memory leak when disabling the NAT engine (bug #10801) • E1000: 802.1q VLAN support (bug #10429) • Storage: implemented burning of audio CDs in passthrough mode • Storage: fixed audio CD passthrough for certain media players • Storage: implemented support for discarding unused image blocks through TRIM for SATA and IDE and UNMAP for SCSI when using VDI images • Storage: added support for QED images • Storage: added support for QCOW (full support for v1 and readonly support for v2 images) • Storage: added readonly support for VHDX images • USB: don’t crash if a USB device is plugged or unplugged when saving or loading the VM state (SMP guests only) • Solaris additions: added support for X.org Server 1.11 and 1.12 • Solaris additions: switched to using an in-kernel mouse driver, 15 Change log • Windows hosts: no need to recreate host-only adapters after a VirtualBox update • Windows hosts: updated toolchain; make the source code compatible to VC 2010 and enable some security-related compiler options • Windows Additions: fixed memory leak in VBoxTray (bug #10808) 15.20 Version 4.1.18 (2012-06-06) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed VERR_REM_VIRTUAL_CPU_ERROR under rare conditions after the guest has been reset (bug #5164 and others) • VMM: fixed host freezes with 64-bit guests on 32-bit Linux hosts (bug #10528) • VRDP: added a workaround for rdesktop clients not properly updating the screen size when minimized • AHCI: fixed a rare bug which can cause a guest memory corruption after the guest storage controler has been reset • NAT: another attempt to fix crashes under rare conditions (Windows hosts only; bug #10513) • Mac OS X hosts: addressed issues running Leopard / Snow Leopard (bug #10631) • Linux hosts / Bridged Networking: fixed the problem with device driver unloading on kernels 3.2.18 and newer due to an invalid reference counter (bug #10624) • Linux hosts / guests: Linux 3.5-rc1 fixes • Linux Additions: the guest content was sometimes not properly updated (bug #9887) • Solaris Additions: installer fix for X.org Server 1.11 and 1.12 15.21 Version 4.1.16 (2012-05-22) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed a Guru Meditation VERR_ACCESS_DENIED with certain guests (bugs #7589, #8247) • VMM: fixed a Guru Meditation VERR_PAGE_TABLE_NOT_PRESENT with Ubuntu 32-bit guests with nested paging enabled on AMD CPUs (bug #10183) • VMM: preserve segment limits and attributes when switching to unreal mode required for some legacy guests to work properly (VT-x without unrestricted guest execution only; bug #9941) • VMM: fixed a VM hang after a resume from pause / savestate with SMP guests in rare cases • 3D support: several fixes for the Windows WDDM video driver crash • NAT: fixed a crash on attempt to process ICMP datagram under some circumstances (bug #10527) • Host-only Networking: lifted the maximal number of interfaces to 128 on Linux and Mac OS X hosts (there is no such limitation for Solaris and Windows hosts), 15 Change log • EFI: fixed wrong SEC/PEI Core entry point calculation (bug #10531) • VRDP: fixed a display update problem (bug #10503) • Main: set the proper VM state if savestate failed for some reason (bug #6189) • Main: more useful error message if a medium is inaccessible • VBoxManage: fixed controlvm savestate if the VM is already paused • Mac OS X hosts: addressed issues running on Mountain Lion Preview 3 (bug #10267) • Linux hosts: Linux 3.4 compile fixes • Linux hosts: fixed wrong help path in some rpm-based packages (bug #10418) • Guest Additions: fixed handling of custom environment variables during VBoxManage guestcontrol execute (bug #10581) • Windows Additions: fixed guest driver crash of VBoxSF in certain cases (4.1.10 regression, bug #10408) • Windows Additions: don’t load the WDDM driver if 3D support is not available for Windows 8 guests to keep the guest maintainable in that case (still better to miss some features than providing a blank screen) • Solaris Additions: added support for X.org Server 1.11 and 1.12 15.22 Version 4.1.14 (2012-04-13) This is a maintenance release. The following items were fixed and/or added: • Network: fixed the problem with packets larger than MTU-4 when PCnet or PRO/1000 was bridged to certain types of adapters on OS X hosts (bug #3783) • NAT: fixed a segfault under rare circumstances • 3D support: fixed Windows WDDM video driver crash for SMP guests (bugs #10200, #10331) • Windows Additions, VRDP: fixed occasional corruption of vertical text 15.23 Version 4.1.12 (2012-04-03) This is a maintenance release. The following items were fixed and/or added: • VMM: fixed VERR_NOT_SUPPORTED and VERR_RAW_MODE_INVALID_SMP guru medita- tion due to an invalid reschedule to raw mode (bug #10370) • VMM: fixed PDMCritSectLeave guru meditation under rare circumstances with SMP guests • VMM: proper Math Fault handling with certain legacy guests (bug #9042) • NAT: fixed a socket leak under certain conditions • Storage: better sanity check against reading beyond end-of-file • Audio: fixed a crash in the NUL audio backend (bug #10374; 4.1.10 regression) • HGCM: fixed a crash during savestate under rare circumstances, 15 Change log • Metrics: fixed an occasional crash during VM shutdown if host RAM/VMM metrics are enabled • VBoxSVC: several locking fixes • VBoxManage: return the correct error code if controlvm savestate failed (bug #10134) • Guest Additions: VBoxService should not crash on exit (bug #10326; 4.1.10 regression) • Windows Additions: set the correct time stamp when a file is closed (bug #6473) • Windows Additions: better help if the DirectX backups are not properly installed • Linux Additions: Linux 3.4-rc1 compile fixes 15.24 Version 4.1.10 (2012-03-13) This is a maintenance release. The following items were fixed and/or added: • GUI: if 3D support on the host is not available for some reason, do not only disable this VM setting but also uncheck the checkbox • VMM: fixed a potential problem causing to schedule interrupts during SYSEXIT right after

15

## Similar documents

Using the FarCry dedicated server (Linux) 2004-09-28 © 2019 Crytek 1 Using the FarCry dedicated server (Linux)...1 Profiles...3 Starting dedicated server...3 Running a server without profiles...4 Mapcycle...5 Running the server on a specific network adapter and port...5 Having your server listed on
UTILITY CD For 8cm 210MB CDR DOS Menu ( Bootable CD ) 1) BOOT FROM DRIVE C:\ 2) REBOOT 3) ERD COMMANDER 2005 Designed for WinXP/2000 but gives one a useful GUI in Win9X/ME. (Most components work in Windows VISTA) Includes as standard in ERD Commander : Explorer Disk Commander File Restore Locksmith
…90 shots to thank gravity… …the end…
Using the Torg Drama Deck with MasterBook Rules In general, the Torg Drama Deck may be used with the MasterBook game system without modification, just by reading what's on the card. Nonetheless, here are some guidelines to make the Torg Drama Deck more like the MasterDeck. Note that there are more c
ULTRA DARK-POWERED VIRTUAL GUITAR USER MANUAL Table of Contents Table of Contents ...2 License ... 5 Introduction ...6 System Requirements ...9 [IMPORTANT] Preload buffer size configuration ... 10 Tips ... 11 SPM (Super Performance Multi) ... 12 Multi: V_METAL ...1 3 Instrument select key switches .
Vase Copyright 1998-99 Stephen Hecht. All Rights Reserved A 172mm square produces a model 44mm high with a 40mm square base and a 30mm square opening. 1. White side up. 2. Mountain crease in thirds. 3. Valley crease halfway Valley crease all bisectors. between half-lines and third-lines. AACB4. Fold
GAYELLOW PAGES 1 GAYELLOW PAGES Contents Contents GAYELLOW PAGESTM INFORMING THE LESBIAN, GAY, BISEXUAL & TRANSGENDER COMMUNITY SINCE 1973 ONLINE UPDATE January 2016 Index page 605 The Index includes page number references to: Names, subject headings, subject cross references; Location references (e
Version 1.5 Hardware Manual Release: 21-MAR-2012 VCM II Hardware Manual Trademark Acknowledgements Ford is a registered trademark of Ford Motor Company. Vetronix is a registered trademark of Vetronix Corporation. Copyright Information VCM II Hardware Manual Copyright © 2012 Ford Motor Company. The i
SYBEX Sample Chapter Mastering™ Visual Basic® .NET Database Programming Evangelos Petroutsos; Asli Bilgin Chapter 6: A First Look at ADO.NET Copyright © 2002 SYBEX Inc., 1151 Marina Village Parkway, Alameda, CA 94501. World rights reserved. No part of this publication may be stored in a retrieval sy
VIDEO COPILOT END-USER SOFTWARE LICENSE AGREEMENT IMPORTANT! The Video Copilot software (the “Software”) You seek to download from the Video Copilot website is licensed only on the condition that You agree to the terms and conditions set forth below. PLEASE READ THE TERMS OF THIS SOFTWARE LICENSE AG
VAMPIRE THE MASQUERADE 20th ANNIVERSARY EDITION12FOREWORD For twenty years, you’ve been reading and listening to us talk about Vampire: The Masquerade. This time, we thought it was the community’s turn to talk. We approached a number of rabid Vampire fans from all over the world (some of which have
VirtualDJ 8 – Quick Setup Guide 1 Table of Contents Welcome to VirtualDJ 8!... 3 Installation ... 4 WINDOWS ... 4 MAC ... 5 Opening VirtualDJ 8 for the first time... 7 Installation Notes ... 9 Application paths ... 9 Upgrading to Version 8 ... 9 Database ... 10 System requirements ... 11 Legal Infor
VisiBone ReadMe File 1. English ... 2 2. Français... 3 3. Deutsch ... 4 4. 日本語... 5 5. Italiano... 6 6. Español ... 7 7. Svenska... 8 8. Nederlands... 9 9. Dansk... 10 10. Suomi ... 11 11. Norsk ... 12 12. Português Brasileiro ... 13 13. 한국어... 14 14. 简体中文 ... 15 15. 繁體中文 ... 16 16. Česky... 17 17.
VirtualDJ 8 - User’s Guide 1 Table of Contents A. BASIC FEATURES ... 4 Top Section ... 6 Application Controls & Info ... 6 Waveform Display ... 7 Deck Controls ... 10 Track Info Display ... 10 Basic Deck Controls ... 12 Advanced Deck Controls ... 15 HotCues ... 16 Effects ... 17 Loops... 19 Custom B
Collision SDK Collision SDK is a set of function calls that allows custom vessels to use some advanced features of Visosad. Example of using CSDK is located in \CollisionSDK\sample That is a stock DeltaGlider code with some modificaions, including gear suport and HUD altitude above terrain indicator
Visosad 1.9 Collision detection for Orbiter space flight simulator.. ( ORBITER is written and maintained by Martin Schweiger http://www.orbitersim.com ) Contents Description...1 Installation/Usage...2 Scenario options...3 Making your terrain collision-aware...3 Making your vessel collision-aware...4
1-1 Visual Basic and Databases 1. Introducing Visual Basic and Databases Preview • In this first chapter, we will do a quick overview of what the course entails. We will discuss what you need to complete the course. We’ll take a brief look at what databases are, where they are used, and how Visual B
Advances in Social Science Research Using R For other titles in this series, go to www.springer.com/series/694 H.D. Vinod Editor Advances in Social Science Research Using R Editor Hrishikesh D. Vinod, Ph. D. Department of Economics Fordham University 441 E. Fordham Road Bronx NY 10458 USA ISBN 978-1
® Getting Started VIVEZA 2 Precise Selective Photo Editing for Photoshop®, Lightroom®, and ApertureTM Getting Started VIVEZA 2 Table of contents 2 What’s new 3 Installation 4 Interface 5 Lesson 1 - Darkening the sky in a photograph 8 Lesson 2 - Removing color casts selectively 9 Lesson 3 - Lightenin
Getting Started Guide VMware Player 3.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions of this document, see http://www.vmware.com/support/pubs. EN-000171-00 You can fin
VMware Tools Configuration Utility User's Guide VMware Fusion 3.0 VMware ACE 2.6 VMware Workstation 7.0 VMware Player 3.0 This document supports the version of each product listed and supports all subsequent versions until the document is replaced by a new edition. To check for more recent editions
Praise for Buddha's Little Finger Televin's fine absurdist mind takes on a bit of his country's dubious history and molds it into a Buddhist retelling, in which the plague of doubt cultivated by Russia's past plays beautifully. All the while, his story works with notions of personal and national ide
Oracle©R VM VirtualBox©R User Manual Version 6.0.0 ©c 2004-2018 Oracle Corporation http://www.virtualbox.org Contents Prefacei1First Steps 1 1.1 Why is Virtualization Useful? .2 1.2 Some Terminology .2 1.3 Features Overview .3 1.4 Supported Host Operating Systems .5 1.5 Host CPU Requirements .6 1.6
Van Morrison Born Aug 31, 1945 in Belfast, Northern Ireland Years Active Genres Rock Celtic Rock, Album Rock, Jazz-Rock, Blue-Eyed Soul, Pop/Rock, Folk- Styles Rock, Soft Rock, Adult Contemporary, Singer/Songwriter Instruments Vocals, Saxophone, Leader, Keyboards, Songwriter, Harmonica Reflective, P
BACH EDITION VOLUME I Orchestral Works / Chamber Music CD I-1 BRANDENBURG CONCERTOS 1-2-3 The surviving orchestral works of Johann Sebastian Bach provide examples of concertos and suites, the two most important orchestral genres in the late Baroque. Bach dedicated his final versions of the six Brand
BACH EDITION VOLUME VI Organ Works CD VI-1 ORGAN WORKS The Choir Organ is an attempt to reconstruct the organ built in Kristine Church in 1742 by Johan Niclas Cahman. Cahman has been called “The Father of Swedish Organ Building”. The famous instruments which he built include the cathedral organs at
01_588435 ffirs.qxd 8/1/05 7:15 PM Page i VoIP FOR ‰ DUMmIES 01_588435 ffirs.qxd 8/1/05 7:15 PM Page ii 01_588435 ffirs.qxd 8/1/05 7:15 PM Page iii VoIP FOR ‰ DUMmIES by Timothy Kelly Foreword by Don Peterson Chairman and Chief Executive Officer, Avaya Inc. 01_588435 ffirs.qxd 8/1/05 7:16 PM Page iv
Topic Configuration Maximums VMware® vSphere 4.1 When you select and configure your virtual and physical equipment, you must stay at or below the maximums supported by vSphere 4.1. The limits presented in the following tables represent tested, recommended limits, and they are fully supported by VMwa
UNITED STATES MARINE CORPS THE BASIC SCHOOL MARINE CORPS TRAINING COMMAND CAMP BARRETT, VIRGINIA 22134-5019 MILITARY TOPOGRAPHIC MAP I W140001XQ STUDENT HANDOUT Warrant Officer Basic Course Military Topographic Map I Introduction Cartography is the art and science of expressing the known physical fe
Windows ’98 Installation Guide This document describes the installation procedure of the FT8U232AM evaluation kit using FTDI’s VCP drivers under Windows ’98 and information on what to look for if installation doesn't go as planned. The driver installation is a two stage process, firstly the USB sect