Changeset 73276 in vbox
- Timestamp:
- Jul 20, 2018 5:42:10 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 1 added
- 38 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/manual/Config.kmk
r72949 r73276 46 46 # use docbook from our tools directory 47 47 VBOX_PATH_DOCBOOK ?= $(PATH_DEVTOOLS)/common/DocBook/v1.69.1 48 VBOX_PATH_DOCBOOK_DTD ?= $(PATH_DEVTOOLS)/common/docbook-xml/v4. 348 VBOX_PATH_DOCBOOK_DTD ?= $(PATH_DEVTOOLS)/common/docbook-xml/v4.5 49 49 VBOX_XML_CATALOG ?= $(VBOX_PATH_MANUAL_OUTBASE)/catalog 50 50 VBOX_XML_CATALOG_DOCBOOK ?= $(VBOX_PATH_MANUAL_OUTBASE)/docbook 51 VBOX_XML_CATALOG_MANUAL ?= $(VBOX_PATH_MANUAL_OUTBASE)/manual 52 VBOX_XML_ENTITIES ?= $(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent 51 53 else 52 54 # use docbook of the build host … … 67 69 68 70 ## 69 # Non-pattern-rule approach to editing XSLT files.70 # $(evalcall2 def_vbox_replace_paths_in_xslt)71 # @param 1 The XSLT source file (relative to Makefile dir).72 # @param 2 Optional output subdirectory (leading slash).73 define def_vbox_replace_paths_in_xslt74 OTHER_CLEAN += $$(VBOX_PATH_MANUAL_OUTBASE)$2/$(notdir $1)75 $$(VBOX_PATH_MANUAL_OUTBASE)$2/$(notdir $1): $$(VBOX_PATH_MANUAL_SRC)/$1 | $$$$(dir $$$$@)76 $$(call MSG_L1,Pre-processing $$(<) to $$(@))77 $$(QUIET)$$(SED) \78 -e 's|@VBOX_PATH_DOCBOOK@|$$(VBOX_PATH_DOCBOOK)|g' \79 -e 's|@VBOX_PATH_MANUAL_SRC@|$$(VBOX_PATH_MANUAL_SRC)|g' \80 -e 's|@VBOX_PATH_MANUAL_OUTBASE@|$$(VBOX_PATH_MANUAL_OUTBASE)|g' \81 -e 's|@VBOX_PATH_MANUAL_OUT_LANG@|$$(VBOX_PATH_MANUAL_OUTBASE)$2|g' \82 --output "$$(@)" $$<83 endef84 85 86 ##87 71 # Emits rules for preprocessing refentry sources (applying remarks element), 88 72 # and for producing the actual man pages. … … 96 80 $(3) \ 97 81 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 98 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) \82 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 99 83 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 100 84 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) … … 118 102 $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \ 119 103 $(2) \ 120 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $ (MAKEFILE) | $$$$(dir $$$$@)104 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) $(MAKEFILE) | $$$$(dir $$$$@) 121 105 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@)) 122 106 $$(QUIET)$$(APPEND) -tn "$$@" \ … … 168 152 ' <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file:///$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ 169 153 ' <delegateURI uriStartString="http://www.oasis-open.org/docbook/" catalog="file:///$(VBOX_XML_CATALOG_DOCBOOK)"/>' \ 154 ' <delegateSystem systemIdStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file:///$(VBOX_XML_CATALOG_MANUAL)"/>' \ 155 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_SRC)" catalog="file:///$(VBOX_XML_CATALOG_MANUAL)"/>' \ 156 ' <delegateURI uriStartString="$(VBOX_PATH_MANUAL_OUTBASE)" catalog="file:///$(VBOX_XML_CATALOG_MANUAL)"/>' \ 170 157 '</catalog>' 171 158 … … 177 164 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \ 178 165 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \ 179 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbpoolx.mod"/>' \180 ' <public publicId="-//OASIS//DTD DocBook XML V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd"/>' \181 ' <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbcentx.mod"/>' \182 ' <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbnotnx.mod"/>' \183 ' <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbgenent.mod"/>' \184 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbhierx.mod"/>' \166 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Information Pool V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbpoolx.mod"/>' \ 167 ' <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd"/>' \ 168 ' <public publicId="-//OASIS//ENTITIES DocBook XML Character Entities V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbcentx.mod"/>' \ 169 ' <public publicId="-//OASIS//ENTITIES DocBook XML Notations V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbnotnx.mod"/>' \ 170 ' <public publicId="-//OASIS//ENTITIES DocBook XML Additional General Entities V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbgenent.mod"/>' \ 171 ' <public publicId="-//OASIS//ELEMENTS DocBook XML Document Hierarchy V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/dbhierx.mod"/>' \ 185 172 ' <public publicId="-//OASIS//DTD XML Exchange Table Model 19990315//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/soextblx.dtd"/>' \ 186 ' <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4. 3//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/calstblx.dtd"/>' \187 ' <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4. 3" rewritePrefix="file:///$(VBOX_PATH_DOCBOOK_DTD)"/>' \188 ' <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4. 3" rewritePrefix="file:///$(VBOX_PATH_DOCBOOK_DTD)"/>' \173 ' <public publicId="-//OASIS//DTD DocBook XML CALS Table Model V4.5//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/calstblx.dtd"/>' \ 174 ' <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file:///$(VBOX_PATH_DOCBOOK_DTD)"/>' \ 175 ' <rewriteURI uriStartString="http://www.oasis-open.org/docbook/xml/4.5" rewritePrefix="file:///$(VBOX_PATH_DOCBOOK_DTD)"/>' \ 189 176 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsa.ent"/>' \ 190 177 ' <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN" uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsb.ent"/>' \ … … 208 195 '</catalog>' 209 196 197 # Create a docbook catalog file for xsltproc that points to the local manual files in non-default locations 198 $(VBOX_XML_CATALOG_MANUAL): $(MAKEFILE_CURRENT) | $$(dir $$@) 199 $(call MSG_L1,Creating catalog $@) 200 $(QUIET)$(APPEND) -tn "$@" \ 201 '<?xml version="1.0"?>' \ 202 '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \ 203 '<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">' \ 204 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_ChangeLogImpl.xml" uri="file://$(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml"/>' \ 205 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_VBoxManage_CommandsOverview.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml"/>' \ 206 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xsl" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl"/>' \ 207 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_man_VBoxManage-mediumio.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_man_VBoxManage-mediumio.xml"/>' \ 208 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_man_VBoxManage-debugvm.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_man_VBoxManage-debugvm.xml"/>' \ 209 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_man_VBoxManage-extpack.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_man_VBoxManage-extpack.xml"/>' \ 210 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_man_VBoxManage-unattended.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_man_VBoxManage-unattended.xml"/>' \ 211 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/user_isomakercmd-man.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_isomakercmd-man.xml"/>' \ 212 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef_apiref.xml" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef_apiref.xml"/>' \ 213 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/en_US/all-entities.ent" uri="file://$(VBOX_PATH_MANUAL_OUTBASE)/all-entities.ent"/>' \ 214 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/docbook.xsl" uri="file://$(VBOX_PATH_DOCBOOK)/html/docbook.xsl"/>' \ 215 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/html/chunk.xsl" uri="file://$(VBOX_PATH_DOCBOOK)/html/chunk.xsl"/>' \ 216 ' <system systemId="$(VBOX_PATH_MANUAL_SRC)/htmlhelp/htmlhelp.xsl" uri="file://$(VBOX_PATH_DOCBOOK)/htmlhelp/htmlhelp.xsl"/>' \ 217 '</catalog>' 218 210 219 endif # VBOX_XML_CATALOG 211 220 212 221 222 ifdef VBOX_XML_ENTITIES 223 224 $(VBOX_XML_ENTITIES): $(MAKEFILE_CURRENT) | $$(dir $$@) 225 $(call MSG_L1,Creating entities $@) 226 $(QUIET)$(APPEND) -tn "$@" \ 227 '<!ENTITY VBOX_PRODUCT SYSTEM "$(VBOX_PATH_MANUAL_SRC)/ent-vbox-product.xml" >' \ 228 '<!ENTITY VBOX_VERSION_MAJOR "$(VBOX_VERSION_MAJOR)" >' \ 229 '<!ENTITY VBOX_VERSION_MINOR "$(VBOX_VERSION_MINOR)" >' \ 230 '<!ENTITY VBOX_VERSION_BUILD "$(VBOX_VERSION_MINOR)" >' \ 231 '<!ENTITY VBOX_VERSION_STRING "$(VBOX_VERSION_STRING)" >' \ 232 '<!ENTITY VBOX_VENDOR "$(VBOX_VENDOR)" >' \ 233 '<!ENTITY VBOX_C_YEAR "$(VBOX_C_YEAR)" >' 234 235 endif # VBOX_XML_ENTITIES 236 237 213 238 # 214 239 # Generate rules for editing the refentry to C/H style sheets. 215 240 # 216 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-C-help.xsl,) 217 VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-C-help.xsl 218 219 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-H-help.xsl,) 220 VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_OUTBASE)/docbook-refentry-to-H-help.xsl 241 VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl 242 243 VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl 221 244 222 245 # -
trunk/doc/manual/Makefile.kmk
r69633 r73276 37 37 # -- PDF file via LaTeX: pre-process the XML files in PATH_TARGET, then 38 38 # run our custom "dblatex" perl script on UserManual.xml, which parses 39 # the XML (using the Perl SAX parsers) and dumps a matching latexfile39 # the XML (using the Perl SAX parsers) and dumps a matching LaTeX file 40 40 # to UserManual.tex. This is then regularly processed by pdflatex to 41 41 # generate PDF. … … 125 125 126 126 127 ##128 # Non-pattern-rule approach to editing XML files.129 # $(evalcall2 def_vbox_replace_stuff_in_xml)130 # @param 1 The XSLT source file (relative to Makefile dir).131 # @param 2 Optional output subdirectory (leading slash).132 #133 define def_vbox_replace_stuff_in_xml134 OTHER_CLEAN += $$(VBOX_PATH_MANUAL_OUTBASE)$2/$(notdir $1)135 $$(VBOX_PATH_MANUAL_OUTBASE)$2/$(notdir $1): $$(VBOX_PATH_MANUAL_SRC)/$1 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)136 $$(call MSG_L1,Pre-processing $$(<) to $$(@))137 $$(QUIET)$$(SED) \138 -e 's|@VBOX_PATH_DOCBOOK@|$$(VBOX_PATH_DOCBOOK)|g' \139 -e 's|@VBOX_PATH_MANUAL_SRC@|$$(VBOX_PATH_MANUAL_SRC)|g' \140 -e 's|@VBOX_PATH_MANUAL_OUTBASE@|$$(VBOX_PATH_MANUAL_OUTBASE)|g' \141 -e 's|@VBOX_PATH_MANUAL_OUT_LANG@|$$(VBOX_PATH_MANUAL_OUTBASE)$2|g' \142 \143 -e 's/@VBOX_VERSION_MAJOR@/$$(VBOX_VERSION_MAJOR)/g' \144 -e 's/@VBOX_VERSION_MINOR@/$$(VBOX_VERSION_MINOR)/g' \145 -e 's/@VBOX_VERSION_BUILD@/$$(VBOX_VERSION_BUILD)/g' \146 -e 's/@VBOX_VERSION_STRING@/$$(VBOX_VERSION_STRING)/g' \147 -e 's/@VBOX_VENDOR@/$$(VBOX_VENDOR)/g' \148 -e 's/@VBOX_PRODUCT@/$$(VBOX_PRODUCT)/g' \149 -e 's/@VBOX_C_YEAR@/$$(VBOX_C_YEAR)/g' \150 \151 --output "$$(@)" $$<152 endef153 154 155 156 127 # 157 128 # Targets … … 204 175 endif 205 176 206 VBOX_MANUAL_XML_CHANGELOG = \207 user_ChangeLogImpl.xml208 209 177 VBOX_MANUAL_XML_FILES = \ 210 178 UserManual.xml \ 179 user_Introduction.xml \ 180 user_Installation.xml \ 181 user_BasicConcepts.xml \ 182 user_GuestAdditions.xml \ 183 user_Storage.xml \ 184 user_Networking.xml \ 185 user_Frontends.xml \ 186 user_VBoxManage.xml \ 211 187 user_AdvancedTopics.xml \ 212 user_BasicConcepts.xml \ 213 user_Glossary.xml \ 214 user_Frontends.xml \ 215 user_Installation.xml \ 216 user_GuestAdditions.xml \ 217 user_Introduction.xml \ 188 user_Technical.xml \ 189 user_VirtualBoxAPI.xml \ 190 user_Troubleshooting.xml \ 191 user_Security.xml \ 218 192 user_KnownIssues.xml \ 193 user_ChangeLog.xml \ 194 user_ThirdParty.xml \ 219 195 user_PrivacyPolicy.xml \ 220 user_ Security.xml \221 user_Technical.xml \ 222 user_ThirdParty.xml\223 user_Troubleshooting.xml \224 user_VBoxManage.xml \ 225 user_VirtualBoxAPI.xml\226 user_Storage.xml\227 user_Networking.xml228 229 VBOX_MANUAL_XML_FILES_INCL_CHANGELOG = $(VBOX_MANUAL_XML_FILES)\230 user_ChangeLog.xml196 user_Glossary.xml 197 198 VBOX_MANUAL_XML_FILES_COMMON = \ 199 $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml 200 201 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \ 202 $(eval VBOX_MANUAL_XML_FILES_GENERATED_$$(lang) := \ 203 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 204 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \ 205 $$(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \ 206 $$(VBOX_PATH_MANUAL_OUTBASE)/$$(lang)/user_isomakercmd-man.xml)) 231 207 232 208 VBOX_SDKREF_XML_FILES = \ … … 267 243 $(VBOX_XML_CATALOG) \ 268 244 $(VBOX_XML_CATALOG_DOCBOOK) \ 245 $(VBOX_XML_CATALOG_MANUAL) \ 246 $(VBOX_XML_ENTITIES) \ 269 247 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \ 270 $(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG) \271 $(VBOX_MANUAL_XML_REFENTRY_FILES) \272 248 $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 273 249 $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \ … … 293 269 HTMLHelp/toc.hhc \ 294 270 HTMLHelp/htmlhelp.hhp \ 295 titlepage-htmlhelp.xsl \296 271 UserManual.pdf \ 297 272 VirtualBox.chm \ 298 273 ChangeLog.html \ 299 274 validatemanual.run \ 275 validateaccessibility.run \ 276 validatesdkref.run \ 300 277 )) \ 301 $(VBOX_PATH_MANUAL_OUTBASE)/ $(VBOX_MANUAL_XML_CHANGELOG)\278 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ 302 279 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \ 303 280 $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \ … … 308 285 \ 309 286 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ 310 $(VBOX_SDKREF_XML_FILES) \311 287 $(VBOX_SDKREF_LATEX_FILES_TARGET) \ 312 288 SDKRef.pdf \ … … 315 291 \ 316 292 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \ 317 $(VBOX_ACCESSIBILITY_XML_FILES) \318 293 $(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET) \ 319 294 html-single/Accessibility.html \ … … 381 356 if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK)) 382 357 383 384 ##########################################################################################385 #386 # Rules: Preprocess DocBook XML files387 # (preliminary step for both CHM and PDF generation)388 #389 ##########################################################################################390 391 #392 # The following rules for $(VBOX_PATH_MANUAL_OUTBASE)/*.xml process the XML files393 # in doc/manual to allow for some magic variable replacements. The PDF and CHM394 # targets do not depend on the XML files in doc/manual, but those in395 # $(VBOX_PATH_MANUAL_OUTBASE) instead, which we copy there from here, after that magic396 # processing.397 #398 # So, before copying, the following steps are performed:399 #400 # -- $VBOX_VERSION_* strings are replaced with the actual current VBox version.401 # -- $VBOX_MANAGE_OUTPUT (in VBoxManage.xml) is replaced with the current402 # output of the actual VBoxManage program, to save us from having to403 # update the manual all the time.404 #405 406 # Only one changelog for all languages407 # $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG): $(VBOX_PATH_MANUAL_SRC)/$(VBOX_MANUAL_XML_CHANGELOG) | $$(dir $$@)408 # $(QUIET)$(INSTALL) -m 0644 $< $@409 410 # Manual dependency on user_ChangeLogImpl.xml411 $(foreach lang,$(VBOX_MANUAL_LANGUAGES) \412 ,$(eval $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_ChangeLog.xml: $(VBOX_PATH_MANUAL_SRC)/user_ChangeLogImpl.xml))413 414 # Manual dependency for user_VBoxManage.xml.415 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), \416 $(eval $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_VBoxManage.xml: $(VBOX_PATH_MANUAL_SRC)/$(lang)/user_VBoxManage.xml \417 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \418 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/overview_,$$(filter man_VBoxManage%,$$(VBOX_MANUAL_XML_REFENTRY_FILES))) \419 $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml ))420 421 # Manual dependency for user_AdvancedTopics.xml.422 $(foreach lang,$(VBOX_MANUAL_LANGUAGES) \423 ,$(eval $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_AdvancedTopics.xml: $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/user_isomakercmd-man.xml))424 425 # Intermediate step to do some variable replacement in the document.426 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG) \427 ,$(evalcall2 def_vbox_replace_stuff_in_xml,/$(lang)/$(file),/$(lang))))428 429 358 ## 430 359 # Morph man pages into manual sections. … … 436 365 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \ 437 366 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-sect1.xsl \ 438 $$(VBOX_XML_CATALOG) $ (VBOX_XML_CATALOG_DOCBOOK) \367 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 439 368 $$(VBOX_VERSION_STAMP) | $$(dir $$@) 440 369 $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@) … … 453 382 $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \ 454 383 $$(patsubst overview_%,$$(VBOX_PATH_MANUAL_SRC)/en_US/%,$$(notdir $$@)) \ 455 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \384 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 456 385 | $$(dir $$@) 457 386 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) … … 463 392 $(QUIET)$(APPEND) -tn "$@" \ 464 393 '<?xml version="1.0" encoding="UTF-8"?>' \ 465 '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">' \394 '<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">' \ 466 395 '<sect1> <!-- this will be skipped via xpointer in the include. --> ' 467 396 $(QUIET)$(REDIRECT) -wo [email protected] -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \ … … 511 440 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 512 441 endef 513 514 442 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf)) 515 443 … … 521 449 ########################################################################################## 522 450 523 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/UserManual.pdf): \ 524 $(VBOX_PATH_MANUAL_OUTBASE)/%/UserManual.pdf : \ 525 $(VBOX_PATH_MANUAL_OUTBASE)/%/UserManual.tex \ 526 $(if $(VBOX_OSE),,$(VBOX_PATH_MANUAL_OUTBASE)/%/ucs.sty) \ 527 $(foreach f,$(VBOX_MANUAL_LANGUAGES),\ 528 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/,$(VBOX_MANUAL_PNG_FILES_$(f)))) | $$(dir $$@) 451 452 # Generate PDF from LaTeX 453 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 454 define def_vbox_usermanual_tex_to_pdf 455 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 456 $$(out_dir)/UserManual.pdf: \ 457 $$(out_dir)/UserManual.tex \ 458 $$(if $$(VBOX_OSE),,$$(out_dir)/ucs.sty) \ 459 $$(addprefix $$(out_dir)/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) | $$$$(dir $$$$@) 529 460 # PDF generation via Latex: generate the .tex file 530 $ (call MSG_L1,pdflatex $< (four passes) ->$@)531 $ (QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) --$(VBOX_PDFLATEX_CMD) UserManual.tex532 $ (QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) --$(VBOX_PDFLATEX_CMD) UserManual.tex533 $ (QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) --$(VBOX_PDFLATEX_CMD) UserManual.tex534 $ (QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) --$(VBOX_PDFLATEX_CMD) UserManual.tex535 $ (QUIET)$(SED) -ne '/Warning: Hyper reference/p' $(basename$<).log536 $ (QUIET)$(SED) -n \461 $$(call MSG_L1,pdflatex $$< (four passes) -> $$@) 462 $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex 463 $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex 464 $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex 465 $$(QUIET)$$(REDIRECT) -w+ti /dev/null -C $$(@D) -- $$(VBOX_PDFLATEX_CMD) UserManual.tex 466 $$(QUIET)$$(SED) -ne '/Warning: Hyper reference/p' $$(basename $$<).log 467 $$(QUIET)$$(SED) -n \ 537 468 -e '/Warning: There were \(undefined references\|multiply-defined labels\)/{p; q 1}' \ 538 $(basename $@).log 539 $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@) 540 541 # generate temporary LaTeX source from processed XML 542 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/UserManual.tex): \ 543 $(VBOX_PATH_MANUAL_OUTBASE)/%/UserManual.tex : \ 544 $(VBOX_PATH_MANUAL_OUTBASE)/%/UserManual.xml \ 545 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 546 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/%/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ 547 $(if $(and $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_DOCBOOK_DTD)),$(VBOX_PATH_MANUAL_OUTBASE)/%/validatemanual.run,) \ 548 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE_CURRENT) 549 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 550 $(QUIET)$(RM) -f $(addprefix $(@D)/,$(VBOX_MANUAL_LATEX_FILES_TARGET)) 469 $$(basename $$@).log 470 $$(call MSG_L1,Fresh LaTeX-generated PDF is now at $$@) 471 endef 472 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_tex_to_pdf)) 473 474 # Generate LaTeX from XML 475 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 476 define def_vbox_usermanual_xml_to_tex 477 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 478 $$(out_dir)/UserManual.tex: \ 479 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 480 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 481 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 482 $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 483 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ 484 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 485 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) 486 $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(firstword $$(filter %.xml,$$^)),$$@) 487 $$(QUIET)$$(RM) -f $$(addprefix $$(@D)/,$$(VBOX_MANUAL_LATEX_FILES_TARGET)) 551 488 # generate TeX source from processed docbook and store it in UserManual.tex.tmp; 552 # pass current language to xsltproc in TARGETLANG variable (extract it from the 553 # current directory, should become "de_DE" or the like) 554 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(notdir $(@D)) \ 555 -o [email protected] $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $< 489 # pass current language to xsltproc in TARGETLANG variable 490 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG $(lang) \ 491 -o [email protected] $$(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl $$< 556 492 # for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word; 557 493 # the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections 558 $ (QUIET)$(SED) \494 $$(QUIET)$$(SED) \ 559 495 -e 's|^\\QUOTE{}|\\OQ{}|g' \ 560 496 -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \ 561 497 -e 's|\(\w\)\\QUOTE{}|\1\\CQ{}|g' \ 562 --output $@ [email protected] 563 $(QUIET)$(RM) -f [email protected] 498 --output $$@ [email protected] 499 $$(QUIET)$$(RM) -f [email protected] 500 endef 501 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex)) 564 502 565 503 # Useful aliases … … 577 515 validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run 578 516 $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run: \ 579 $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/UserManual.xml \ 580 $$(addprefix $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/,$$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ 581 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) 517 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 518 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 519 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 520 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 521 $$(VBOX_XML_ENTITIES) $$(MAKEFILE_CURRENT) | $$$$(dir $$$$@) 582 522 $$(call MSG_L1,Validating $$<) 583 523 $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$< … … 585 525 endef 586 526 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml)) 527 528 529 # Handy aliases. 587 530 validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang)) 588 531 … … 605 548 $(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP) 606 549 607 $(evalcall2 def_vbox_replace_stuff_in_xml,/en_US/SDKRef.xml,/en_US) 608 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml: $(VBOX_MANUAL_APIREF_TMP) 609 610 # Turn SDKRef.xml into latex. 550 # Turn SDKRef.xml into LaTeX. 611 551 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.tex: \ 612 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ 552 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ 553 $(VBOX_MANUAL_APIREF_TMP) \ 613 554 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 614 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE_CURRENT) | $$(dir $$@) 555 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run,) \ 556 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 557 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 615 558 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 616 559 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_SDKREF_LATEX_FILES_TARGET)) 617 ## check it for validity first.618 #if defined(VBOX_HAVE_XMLLINT) && defined(VBOX_PATH_DOCBOOK_DTD)619 # $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $<620 #endif621 560 # generate TeX source from processed docbook and store it in SDKRef.tex.tmp 622 561 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ … … 646 585 $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@) 647 586 587 # Validating SDKRef.xml. It is invoked automatically at build time, 588 # but can also be manually invoked via the 'validate-sdkref' alias. 589 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run: \ 590 $(VBOX_PATH_MANUAL_SRC)/en_US/SDKRef.xml \ 591 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_SDKREF_XML_FILES)) \ 592 $(VBOX_MANUAL_APIREF_TMP) \ 593 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 594 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 595 $(call MSG_L1,Validating $<) 596 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $< 597 $(QUIET)$(APPEND) -t "$@" "done" 598 648 599 649 600 # Handy aliases. 650 validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ SDKRef.xml601 validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run 651 602 sdkref:: $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf 652 603 … … 657 608 # 658 609 659 $(evalcall2 def_vbox_replace_stuff_in_xml,/en_US/Accessibility.xml,/en_US) 660 661 # Turn Accessibility.xml into latex. 610 # Turn Accessibility.xml into LaTeX. 662 611 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.tex: \ 663 $(addprefix $(VBOX_PATH_MANUAL_ OUTBASE)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \612 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 664 613 $(VBOX_PATH_MANUAL_SRC)/docbook2latex.xsl \ 665 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(MAKEFILE_CURRENT) | $$(dir $$@) 614 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run,) \ 615 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 616 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 666 617 $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@) 667 618 $(QUIET)$(RM) -f $(addprefix $(@D/),$(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET)) 668 # check it for validity first.669 if defined(VBOX_HAVE_XMLLINT) && defined(VBOX_PATH_DOCBOOK_DTD)670 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $<671 endif672 619 # generate TeX source from processed docbook and store it in Accessibility.tex.tmp 673 620 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \ … … 698 645 699 646 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html: \ 700 $( VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl\701 $( addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \702 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \703 | $$(dir $$@)647 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 648 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ 649 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 650 $(VBOX_XML_ENTITIES) | $$(dir $$@) 704 651 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 705 652 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ 706 653 --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html \ 707 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl \ 708 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.xml 654 $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ 655 $< 656 657 # Validating Accessibility.xml. It is invoked automatically at build time, 658 # but can also be manually invoked via the 'validate-accessibility' alias. 659 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run: \ 660 $(VBOX_PATH_MANUAL_SRC)/en_US/Accessibility.xml \ 661 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_ACCESSIBILITY_XML_FILES)) \ 662 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 663 $(VBOX_XML_ENTITIES) $(MAKEFILE_CURRENT) | $$(dir $$@) 664 $(call MSG_L1,Validating $<) 665 $(QUIET)$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $< 666 $(QUIET)$(APPEND) -t "$@" "done" 667 709 668 710 669 # Handy aliases. 711 validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ Accessibility.xml670 validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run 712 671 accessibility:: $(PATH_STAGE_BIN)/Accessibility.pdf 713 672 accessibility-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html 673 714 674 715 675 … … 722 682 # Microsoft Help Compiler. 723 683 # 724 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_replace_paths_in_xslt,docbook-htmlhelp-formatcfg.xsl,/$(lang))) 725 726 # Manual formatcfg dependencies for the above. 727 $(foreach lang,$(VBOX_MANUAL_LANGUAGES), $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/docbook-htmlhelp-formatcfg.xsl): \ 684 VBOX_DOCBOOK_HTMLHELP_FORMATCFG = \ 685 $(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 728 686 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 729 687 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 730 688 731 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/VirtualBox.chm): \732 $(VBOX_PATH_MANUAL_OUTBASE)/%/VirtualBox.chm: \733 $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp \734 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/,$(VBOX_MANUAL_PNG_FILES_$(f))))735 $(call MSG_L1,hhc $<,=> $@)736 $(QUIET)$(RM) -f $@737 $(QUIET)$(VBOX_HHC) $(subst /,\\,$<)738 $(call MSG_L1,Fresh CHM is now at $@)739 740 689 # Prepare the XSL file for our title page, htmlhelp variant. 741 $( foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/titlepage-htmlhelp.xsl): \690 $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl: \ 742 691 $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@) 743 692 $(call MSG_L1,xsltproc $<) … … 746 695 $(QUIET)$(MV) -f [email protected] $@ 747 696 748 $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/HTMLHelp/htmlhelp.hhp): \ 749 $(VBOX_PATH_MANUAL_OUTBASE)/%/HTMLHelp/htmlhelp.hhp: \ 750 $(VBOX_PATH_MANUAL_OUTBASE)/%/UserManual.xml \ 751 $(VBOX_PATH_MANUAL_OUTBASE)/%/docbook-htmlhelp-formatcfg.xsl \ 752 $(VBOX_PATH_MANUAL_OUTBASE)/%/titlepage-htmlhelp.xsl \ 753 $(VBOX_PATH_MANUAL_OUTBASE)/%/validatemanual.run \ 754 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/%/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ 755 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) 756 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 757 $(QUIET)$(RM) -f $@ 758 $(QUIET)$(MKDIR) -p $(@D) 759 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output $(@D)/ \ 697 # Generate CHM from HHP 698 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 699 define def_vbox_usermanual_hhp_to_chm 700 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 701 $$(out_dir)/VirtualBox.chm: \ 702 $$(out_dir)/HTMLHelp/htmlhelp.hhp \ 703 $$(addprefix $$(out_dir)/HTMLHelp/,$$(VBOX_MANUAL_PNG_FILES_$(lang))) 704 $$(call MSG_L1,hhc $$<,=> $$@) 705 $$(QUIET)$$(RM) -f $$@ 706 $$(QUIET)$$(VBOX_HHC) $$(subst /,\\,$$<) 707 $$(call MSG_L1,Fresh CHM is now at $$@) 708 endef 709 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_hhp_to_chm)) 710 711 # Generate HHP from XML 712 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 713 define def_vbox_usermanual_xml_to_hhp 714 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang) 715 $$(out_dir)/HTMLHelp/htmlhelp.hhp: \ 716 $$(addprefix $$(VBOX_PATH_MANUAL_SRC)/$(lang)/,$$(VBOX_MANUAL_XML_FILES)) \ 717 $$(VBOX_MANUAL_XML_FILES_COMMON) \ 718 $$(VBOX_MANUAL_XML_FILES_GENERATED_$(lang)) \ 719 $$(VBOX_DOCBOOK_HTMLHELP_FORMATCFG) \ 720 $$(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \ 721 $$(if $$(VBOX_HAVE_XMLLINT),$$(out_dir)/validatemanual.run,) \ 722 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 723 $$(VBOX_XML_ENTITIES) 724 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 725 $$(QUIET)$$(RM) -f $$@ 726 $$(QUIET)$$(MKDIR) -p $$(@D) 727 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$(@D)/ \ 760 728 --stringparam htmlhelp.chm \ 761 $(subst /,\\,$(@D)/../VirtualBox.chm) \ 762 $(HTMLHELPOPTS) $(@D)/../docbook-htmlhelp-formatcfg.xsl \ 763 $< 729 $$(subst /,\\,$$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/VirtualBox.chm) \ 730 $$(HTMLHELPOPTS) $$(VBOX_PATH_MANUAL_SRC)/docbook-htmlhelp-formatcfg.xsl \ 731 $$< 732 endef 733 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_hhp)) 764 734 765 735 # copy the PNG files. 766 736 # Note: out_dir needs to be referenced with an escaped $ so it doesn't expand as eval expands it input. 767 define def_vbox_cp_images_html 737 define def_vbox_cp_images_htmlhelp 768 738 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp 769 $ $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \770 739 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \ 740 $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@) 771 741 $$(call MSG_L1,Copying temporary $$< => $$@) 772 $$(QUIET)$$( CP) -f $$< $$@742 $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)' 773 743 endef 774 775 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_html))) 744 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(eval $(def_vbox_cp_images_htmlhelp))) 776 745 777 746 # Packing the docs into a zip file … … 789 758 # 790 759 ########################################################################################## 791 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-html-one-page-formatcfg.xsl,/en_US) 792 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-html-chunks-formatcfg.xsl,/en_US) 793 794 # Manual formatcfg dependencies. 795 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl \ 796 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-chunks-formatcfg.xsl: \ 760 VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \ 761 $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ 797 762 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 798 763 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 799 764 800 765 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html: \ 801 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl \ 802 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ 803 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 766 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ 767 $(VBOX_MANUAL_XML_FILES_COMMON) \ 768 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ 769 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 770 $(VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG) \ 804 771 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ 805 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \806 | $$(dir $$@)772 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 773 $$(VBOX_XML_ENTITIES) | $$(dir $$@) 807 774 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 808 775 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ 809 776 --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/UserManual.html \ 810 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-one-page-formatcfg.xsl \ 811 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.xml 777 $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \ 778 $< 779 780 VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG = \ 781 $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \ 782 $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \ 783 $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl 812 784 813 785 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html: \ 814 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/docbook-html-chunks-formatcfg.xsl \ 815 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG)) \ 816 $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 786 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_XML_FILES)) \ 787 $(VBOX_MANUAL_XML_FILES_COMMON) \ 788 $(VBOX_MANUAL_XML_FILES_GENERATED_en_US) \ 789 $(VBOX_DOCBOOK_HTML_CHUNKS_FORMATCFG) \ 790 $(addprefix $(VBOX_PATH_MANUAL_SRC)/en_US/,$(VBOX_MANUAL_PNG_FILES_en_US)) \ 817 791 $(if $(VBOX_HAVE_XMLLINT),$(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatemanual.run,) \ 818 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) \819 | $$(dir $$@)792 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 793 $(VBOX_XML_ENTITIES) | $$(dir $$@) 820 794 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 821 795 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \ 822 796 --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \ 823 797 --stringparam chunk.section.depth 0 \ 824 $(VBOX_PATH_MANUAL_ OUTBASE)/en_US/docbook-html-chunks-formatcfg.xsl \825 $ (VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.xml798 $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \ 799 $< 826 800 827 801 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \ … … 841 815 # ChangeLog.html 842 816 # 843 # This XSLT rule depends on $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml, which is build by the complex rule 844 # $(foreach f,$(VBOX_MANUAL_LANGUAGES),$(VBOX_PATH_MANUAL_OUTBASE)/$f/user_ChangeLog.xml): ... 845 # much further above. That rule takes en_US/user_ChangeLog.xml and replaces $VIRTUALBOX_CHANGELOG_IMPL 846 # with the actual change log contained in user_ChangeLogImpl.xml 847 # 848 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-changelog-formatcfg.xsl,/en_US) 817 # This XSLT rule formats en_US/user_ChangeLog.xml (which includes the actual change log 818 # contained in user_ChangeLogImpl.xml) as a standalone HTML file. 819 # 849 820 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/ChangeLog.html: \ 850 $(VBOX_PATH_MANUAL_ OUTBASE)/en_US/docbook-changelog-formatcfg.xsl \821 $(VBOX_PATH_MANUAL_SRC)/en_US/docbook-changelog-formatcfg.xsl \ 851 822 $(VBOX_PATH_MANUAL_OUTBASE)/en_US/user_ChangeLog.xml \ 852 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) | $$(dir $$@) 823 $(VBOX_XML_CATALOG) $(VBOX_XML_CATALOG_DOCBOOK) $(VBOX_XML_CATALOG_MANUAL) \ 824 $(VBOX_XML_ENTITIES) | $$(dir $$@) 853 825 $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@) 854 826 $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" "$<" $(filter %.xml,$^) … … 865 837 # VBoxManage man pages (parts also required by VBoxManage built-in help). 866 838 # 867 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-manpage.xsl,)868 839 869 840 ## … … 877 848 $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \ 878 849 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl \ 879 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) \850 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 880 851 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 881 852 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) … … 883 854 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \ 884 855 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage-preprocessing.xsl $$< 885 if defined(VBOX_HAVE_XMLLINT) && "$(USER)" == "bird" # Effing stuff happends on build servers, probably kmk related...856 if defined(VBOX_HAVE_XMLLINT) 886 857 $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@ 887 858 endif … … 889 860 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \ 890 861 $$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(2) \ 891 $$(VBOX_PATH_MANUAL_ OUTBASE)/docbook-refentry-to-manpage.xsl \892 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) \862 $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl \ 863 $$(VBOX_XML_CATALOG) $$(VBOX_XML_CATALOG_DOCBOOK) $$(VBOX_XML_CATALOG_MANUAL) \ 893 864 $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@) 894 865 $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@) 895 866 $$(QUIET)$$(RM) -f "$$@" 896 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_ OUTBASE)/docbook-refentry-to-manpage.xsl $$<867 $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ $$(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manpage.xsl $$< 897 868 endef 898 869 $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \ -
trunk/doc/manual/docbook-changelog-formatcfg.xsl
r69482 r73276 3 3 4 4 <!-- Single html file template --> 5 <xsl:import href=" @VBOX_PATH_DOCBOOK@/html/docbook.xsl"/>6 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/>5 <xsl:import href="html/docbook.xsl"/> 6 <xsl:import href="common-formatcfg.xsl"/> 7 7 8 8 <!-- Adjust some params --> -
trunk/doc/manual/docbook-html-chunks-formatcfg.xsl
r69482 r73276 3 3 4 4 <!-- Single html file template --> 5 <xsl:import href=" @VBOX_PATH_DOCBOOK@/html/chunk.xsl"/>5 <xsl:import href="html/chunk.xsl"/> 6 6 7 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/>8 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-html-formatcfg.xsl"/>7 <xsl:import href="common-formatcfg.xsl"/> 8 <xsl:import href="common-html-formatcfg.xsl"/> 9 9 10 10 <!-- Adjust some params --> -
trunk/doc/manual/docbook-html-one-page-formatcfg.xsl
r57587 r73276 3 3 4 4 <!-- Single html file template --> 5 <xsl:import href=" @VBOX_PATH_DOCBOOK@/html/docbook.xsl"/>5 <xsl:import href="html/docbook.xsl"/> 6 6 7 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/>8 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-html-formatcfg.xsl"/>7 <xsl:import href="common-formatcfg.xsl"/> 8 <xsl:import href="common-html-formatcfg.xsl"/> 9 9 10 10 <!-- Adjust some params --> -
trunk/doc/manual/docbook-htmlhelp-formatcfg.xsl
r56536 r73276 2 2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 3 3 4 <xsl:import href=" @VBOX_PATH_DOCBOOK@/htmlhelp/htmlhelp.xsl"/>5 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/>6 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-html-formatcfg.xsl"/>4 <xsl:import href="htmlhelp/htmlhelp.xsl"/> 5 <xsl:import href="common-formatcfg.xsl"/> 6 <xsl:import href="common-html-formatcfg.xsl"/> 7 7 8 <xsl:include href=" @VBOX_PATH_MANUAL_OUT_LANG@/titlepage-htmlhelp.xsl"/>8 <xsl:include href="titlepage-htmlhelp.xsl"/> 9 9 10 10 <!-- Override the style sheet stuff from common-html-formatcfg.xsl, we don't -
trunk/doc/manual/docbook-refentry-to-C-help.xsl
r68873 r73276 23 23 > 24 24 25 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/string.xsl"/>26 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/>25 <xsl:import href="string.xsl"/> 26 <xsl:import href="common-formatcfg.xsl"/> 27 27 28 28 <xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/> -
trunk/doc/manual/docbook-refentry-to-H-help.xsl
r68860 r73276 22 22 > 23 23 24 <xsl:import href=" @VBOX_PATH_MANUAL_SRC@/string.xsl"/>24 <xsl:import href="string.xsl"/> 25 25 26 26 <xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/> -
trunk/doc/manual/docbook-refentry-to-manpage.xsl
r56533 r73276 19 19 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 20 20 21 <xsl:import href="@VBOX_PATH_DOCBOOK@/manpages/docbook.xsl"/> 22 <!-- <xsl:import href="@VBOX_PATH_MANUAL_SRC@/common-formatcfg.xsl"/> --> 21 <xsl:import href="manpages/docbook.xsl"/> 23 22 24 23 <!-- -
trunk/doc/manual/docbook2latex.xsl
r69482 r73276 697 697 </xsl:template> 698 698 699 <xsl:template match="trademark"> 700 <xsl:apply-templates /> 701 <xsl:text>\textsuperscript{\textregistered}</xsl:text> 702 </xsl:template> 703 699 704 <!-- for some reason, DocBook insists of having image data nested this way always: 700 705 mediaobject -> imageobject -> imagedata -
trunk/doc/manual/en_US/Accessibility.xml
r68450 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 4 8 <book> 5 9 <bookinfo> 6 <title> @VBOX_PRODUCT@<superscript>®</superscript></title>10 <title>&VBOX_PRODUCT;</title> 7 11 8 12 <subtitle>Accessibility Reference</subtitle> 9 13 10 <edition>Version @VBOX_VERSION_STRING@</edition>11 12 <corpauthor> @VBOX_VENDOR@</corpauthor>13 14 <address>http ://www.virtualbox.org</address>14 <edition>Version &VBOX_VERSION_STRING;</edition> 15 16 <corpauthor>&VBOX_VENDOR;</corpauthor> 17 18 <address>https://www.virtualbox.org</address> 15 19 16 20 <copyright> 17 <year>2016- @VBOX_C_YEAR@</year>18 19 <holder> @VBOX_VENDOR@</holder>21 <year>2016-&VBOX_C_YEAR;</year> 22 23 <holder>&VBOX_VENDOR;</holder> 20 24 </copyright> 21 25 </bookinfo> -
trunk/doc/manual/en_US/SDKRef.xml
r71806 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 4 8 <book> 5 9 <bookinfo> 6 <title> @VBOX_PRODUCT@<superscript>®</superscript></title>10 <title>&VBOX_PRODUCT;</title> 7 11 8 12 <subtitle>Programming Guide and Reference</subtitle> 9 13 10 <edition>Version @VBOX_VERSION_STRING@</edition>11 12 <corpauthor> @VBOX_VENDOR@</corpauthor>14 <edition>Version &VBOX_VERSION_STRING;</edition> 15 16 <corpauthor>&VBOX_VENDOR;</corpauthor> 13 17 14 18 <address>http://www.virtualbox.org</address> 15 19 16 20 <copyright> 17 <year>2004- @VBOX_C_YEAR@</year>18 19 <holder> @VBOX_VENDOR@</holder>21 <year>2004-&VBOX_C_YEAR;</year> 22 23 <holder>&VBOX_VENDOR;</holder> 20 24 </copyright> 21 25 </bookinfo> … … 1198 1202 1199 1203 <para>And it will print 1200 " @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@".</para>1204 "&VBOX_VERSION_MAJOR;.&VBOX_VERSION_MINOR;.&VBOX_VERSION_BUILD;".</para> 1201 1205 </listitem> 1202 1206 … … 3086 3090 3087 3091 <para><screen> 3088 DECL VBGL(int) VbglHGCMConnect (VBGLHGCMHANDLE *pHandle, VBoxGuestHGCMConnectInfo *pData);3092 DECLR0VBGL(int) VbglR0HGCMConnect(VBGLHGCMHANDLE *pHandle, const char *pszServiceName, HGCMCLIENTID *pidClient); 3089 3093 </screen> Connects to the service: <screen> 3090 3094 VBoxGuestHGCMConnectInfo data; 3091 3095 3092 memset (&data, sizeof(VBoxGuestHGCMConnectInfo));3096 memset(&data, sizeof(VBoxGuestHGCMConnectInfo)); 3093 3097 3094 3098 data.result = VINF_SUCCESS; … … 3096 3100 strcpy (data.Loc.u.host.achName, "VBoxSharedFolders"); 3097 3101 3098 rc = VbglHGCMConnect (&handle, &data);3102 rc = VbglHGCMConnect (&handle, "VBoxSharedFolders"&data); 3099 3103 3100 3104 if (RT_SUCCESS (rc)) … … 3915 3919 3916 3920 <sect1> 3917 <title>Incompatible API changes with version 5.3</title>3921 <title>Incompatible API changes with version x.x</title> 3918 3922 3919 3923 <itemizedlist> … … 3936 3940 </listitem> 3937 3941 3938 <listitem><para>The <link linkend="FileCopyFlag">FileCopyFlag</link> flags for3939 <link linkend="IGuestSession__directoryCopyFromGuest">IGuestSession::directoryCopyFromGuest()</link>3940 have been implemented.</para>3941 </listitem>3942 3943 3942 <listitem> 3944 3943 <para>The following methods have been implemented: 3945 <link linkend="IGuestSession__directoryCopyFromGuest">IGuestSession::directoryCopyFromGuest()</link> and 3946 <link linkend="IGuestSession__directoryCopyToGuest">IGuestSession::directoryCopyToGuest()</link>, 3947 <link linkend="IFile__queryInfo">IGuestFile::queryInfo()</link>, 3948 <link linkend="IFile__querySize">IGuestFile::querySize()</link>. 3944 <computeroutput>IGuestSession::directoryCopyFromGuest()</computeroutput> and 3945 <computeroutput>IGuestSession::directoryCopyToGuest()</computeroutput>. 3949 3946 </para> 3950 3947 3951 3948 <para>The following attributes have been implemented: 3952 IGuestFsObjInfo::accessTime, IGuestFsObjInfo::birthTime, IGuestFsObjInfo::changeTime and 3953 IGuestFsObjInfo::modificationTime.</para> 3949 <computeroutput>IGuestFsObjInfo::accessTime</computeroutput>, 3950 <computeroutput>IGuestFsObjInfo::birthTime</computeroutput>, 3951 <computeroutput>IGuestFsObjInfo::changeTime</computeroutput> and 3952 <computeroutput>IGuestFsObjInfo::modificationTime</computeroutput>. 3953 </para> 3954 3954 3955 3955 </listitem> -
trunk/doc/manual/en_US/UserManual.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 4 <book> 2 <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 <book id="VBOXU" lang="en"> 8 9 <!-- VBox bookinfo section --> 10 5 11 <bookinfo> 6 <title>@VBOX_PRODUCT@<superscript>®</superscript></title> 12 13 <title>&VBOX_PRODUCT;</title> 7 14 8 15 <subtitle>User Manual</subtitle> 9 16 10 17 <edition>Version 11 @VBOX_VERSION_STRING@</edition>18 &VBOX_VERSION_STRING;</edition> 12 19 13 <corpauthor> @VBOX_VENDOR@</corpauthor>20 <corpauthor>Oracle Corporation</corpauthor> 14 21 15 <address>http ://www.virtualbox.org</address>22 <address>https://www.virtualbox.org</address> 16 23 17 24 <copyright> 18 <year>2004-@VBOX_C_YEAR@</year>19 25 20 <holder>@VBOX_VENDOR@</holder> 26 <year>2004-&VBOX_C_YEAR;</year> 27 28 <holder>Oracle Corporation</holder> 29 21 30 </copyright> 31 22 32 </bookinfo> 23 33 24 <xi:include href="user_Introduction.xml" xpointer="element(/1)"34 <xi:include href="user_Introduction.xml" 25 35 xmlns:xi="http://www.w3.org/2001/XInclude" /> 26 36 27 <xi:include href="user_Installation.xml" xpointer="element(/1)"37 <xi:include href="user_Installation.xml" 28 38 xmlns:xi="http://www.w3.org/2001/XInclude" /> 29 39 30 <xi:include href="user_BasicConcepts.xml" xpointer="element(/1)"40 <xi:include href="user_BasicConcepts.xml" 31 41 xmlns:xi="http://www.w3.org/2001/XInclude" /> 32 42 33 <xi:include href="user_GuestAdditions.xml" xpointer="element(/1)"43 <xi:include href="user_GuestAdditions.xml" 34 44 xmlns:xi="http://www.w3.org/2001/XInclude" /> 35 45 36 <xi:include href="user_Storage.xml" xpointer="element(/1)"46 <xi:include href="user_Storage.xml" 37 47 xmlns:xi="http://www.w3.org/2001/XInclude" /> 38 48 39 <xi:include href="user_Networking.xml" xpointer="element(/1)"49 <xi:include href="user_Networking.xml" 40 50 xmlns:xi="http://www.w3.org/2001/XInclude" /> 41 51 42 <xi:include href="user_Frontends.xml" xpointer="element(/1)"52 <xi:include href="user_Frontends.xml" 43 53 xmlns:xi="http://www.w3.org/2001/XInclude" /> 44 54 45 <xi:include href="user_VBoxManage.xml" xpointer="element(/1)"55 <xi:include href="user_VBoxManage.xml" 46 56 xmlns:xi="http://www.w3.org/2001/XInclude" /> 47 57 48 <xi:include href="user_AdvancedTopics.xml" xpointer="element(/1)"58 <xi:include href="user_AdvancedTopics.xml" 49 59 xmlns:xi="http://www.w3.org/2001/XInclude" /> 50 60 51 <xi:include href="user_Technical.xml" xpointer="element(/1)"61 <xi:include href="user_Technical.xml" 52 62 xmlns:xi="http://www.w3.org/2001/XInclude" /> 53 63 54 <xi:include href="user_VirtualBoxAPI.xml" xpointer="element(/1)"64 <xi:include href="user_VirtualBoxAPI.xml" 55 65 xmlns:xi="http://www.w3.org/2001/XInclude" /> 56 66 57 <xi:include href="user_Troubleshooting.xml" xpointer="element(/1)"67 <xi:include href="user_Troubleshooting.xml" 58 68 xmlns:xi="http://www.w3.org/2001/XInclude" /> 59 69 60 <xi:include href="user_Security.xml" xpointer="element(/1)" 61 xmlns:xi="http://www.w3.org/2001/XInclude" /> 62 63 <xi:include href="user_KnownIssues.xml" xpointer="element(/1)" 70 <xi:include href="user_Security.xml" 64 71 xmlns:xi="http://www.w3.org/2001/XInclude" /> 65 72 66 <xi:include href="user_ ChangeLog.xml" xpointer="element(/1)"73 <xi:include href="user_KnownIssues.xml" 67 74 xmlns:xi="http://www.w3.org/2001/XInclude" /> 68 75 69 <xi:include href="user_ ThirdParty.xml" xpointer="element(/1)"76 <xi:include href="user_ChangeLog.xml" 70 77 xmlns:xi="http://www.w3.org/2001/XInclude" /> 71 78 72 <xi:include href="user_ PrivacyPolicy.xml" xpointer="element(/1)"79 <xi:include href="user_ThirdParty.xml" 73 80 xmlns:xi="http://www.w3.org/2001/XInclude" /> 74 81 75 <xi:include href="user_ Glossary.xml" xpointer="element(/1)"82 <xi:include href="user_PrivacyPolicy.xml" 76 83 xmlns:xi="http://www.w3.org/2001/XInclude" /> 84 85 <xi:include href="user_Glossary.xml" 86 xmlns:xi="http://www.w3.org/2001/XInclude" /> 87 77 88 </book> -
trunk/doc/manual/en_US/man_VBoxManage-debugvm.xml
r69633 r73276 13 13 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 14 14 --> 15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> 16 16 <refentry id="vboxmanage-debugvm" lang="en"> 17 17 -
trunk/doc/manual/en_US/man_VBoxManage-extpack.xml
r69633 r73276 13 13 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 14 14 --> 15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> 16 16 <refentry id="vboxmanage-extpack" lang="en"> 17 17 -
trunk/doc/manual/en_US/man_VBoxManage-mediumio.xml
r72949 r73276 13 13 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 14 14 --> 15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> 16 16 <refentry id="vboxmanage-mediumio" lang="en"> 17 17 -
trunk/doc/manual/en_US/man_VBoxManage-unattended.xml
r69633 r73276 13 13 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 14 14 --> 15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">15 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> 16 16 <refentry id="vboxmanage-unattended" lang="en"> 17 17 -
trunk/doc/manual/en_US/user_AdvancedTopics.xml
r73185 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="AdvancedTopics"> 5 <title>Advanced topics</title> 8 9 <title>Advanced Topics</title> 6 10 7 11 <sect1 id="vboxsdl"> 8 <title>VBoxSDL, the simplified VM displayer</title> 9 10 <sect2> 12 13 <title>VBoxSDL, The Simplified VM Displayer</title> 14 15 <sect2 id="vboxsdl-intro"> 16 11 17 <title>Introduction</title> 12 18 13 <para>VBoxSDL is a simple graphical user interface (GUI) that lacks the 14 nice point-and-click support which VirtualBox, our main GUI, provides. 15 VBoxSDL is currently primarily used internally for debugging VirtualBox 16 and therefore not officially supported. Still, you may find it useful 17 for environments where the virtual machines are not necessarily 18 controlled by the same person that uses the virtual machine.<note> 19 <para>VBoxSDL is not available on the Mac OS X host platform.</para> 20 </note></para> 21 22 <para>As you can see in the following screenshot, VBoxSDL does indeed 23 only provide a simple window that contains only the "pure" virtual 24 machine, without menus or other controls to click upon and no additional 25 indicators of virtual machine activity:</para> 26 27 <para><mediaobject> 19 <para> 20 VBoxSDL is a simple graphical user interface (GUI) that lacks 21 the nice point-and-click support of the main GUI, VirtualBox. 22 VBoxSDL is currently primarily used internally for debugging 23 VirtualBox and therefore not officially supported. But you may 24 find it useful for environments where the virtual machines are 25 not necessarily controlled by the same person that uses the 26 virtual machine. 27 </para> 28 29 <note> 30 <para> 31 VBoxSDL is not available on the Mac OS X host platform. 32 </para> 33 </note> 34 35 <para> 36 As shown in the following screenshot, VBoxSDL provides a simple 37 window that contains only the "pure" virtual machine, without 38 menus or other controls to click and with no additional 39 indicators of virtual machine activity. 40 </para> 41 42 <para> 43 <mediaobject> 28 44 <imageobject> 29 45 <imagedata align="center" fileref="images/vbox-sdl.png" 30 46 width="10cm" /> 31 47 </imageobject> 32 </mediaobject></para> 33 34 <para>To start a virtual machine with VBoxSDL instead of the VirtualBox 35 GUI, enter the following on a command line:<screen>VBoxSDL --startvm <vm></screen></para> 36 37 <para>where <computeroutput><vm></computeroutput> is, as usual 38 with VirtualBox command line parameters, the name or UUID of an existing 39 virtual machine.</para> 48 </mediaobject> 49 </para> 50 51 <para> 52 To start a virtual machine with VBoxSDL instead of the 53 VirtualBox GUI, enter the following on a command line: 54 </para> 55 56 <screen>VBoxSDL --startvm <vm></screen> 57 58 <para> 59 where <computeroutput><vm></computeroutput> is the name or 60 UUID of an existing virtual machine. 61 </para> 62 40 63 </sect2> 41 64 42 <sect2> 43 <title>Secure labeling with VBoxSDL</title> 44 45 <para>When running guest operating systems in full screen mode, the guest 46 operating system usually has control over the whole screen. This could 47 present a security risk as the guest operating system might fool the 48 user into thinking that it is either a different system (which might 49 have a higher security level) or it might present messages on the screen 50 that appear to stem from the host operating system.</para> 51 52 <para>In order to protect the user against the above mentioned security 53 risks, the secure labeling feature has been developed. Secure labeling 54 is currently available only for VBoxSDL. When enabled, a portion of the 55 display area is reserved for a label in which a user defined message is 56 displayed. The label height in set to 20 pixels in VBoxSDL. The label 57 font color and background color can be optionally set as hexadecimal RGB 58 color values. The following syntax is used to enable secure 59 labeling:</para> 60 61 <screen>VBoxSDL --startvm "VM name" 65 <sect2 id="vboxsdl-secure-label"> 66 67 <title>Secure Labeling with VBoxSDL</title> 68 69 <para> 70 When running guest operating systems in full screen mode, the 71 guest operating system usually has control over the whole 72 screen. This could present a security risk as the guest 73 operating system might fool the user into thinking that it is 74 either a different system, which might have a higher security 75 level, or it might present messages on the screen that appear to 76 stem from the host operating system. 77 </para> 78 79 <para> 80 In order to protect the user against the above mentioned 81 security risks, the secure labeling feature has been developed. 82 Secure labeling is currently available only for VBoxSDL. When 83 enabled, a portion of the display area is reserved for a label 84 in which a user defined message is displayed. The label height 85 is set to 20 pixels in VBoxSDL. The label font color and 86 background color can be optionally set as hexadecimal RGB color 87 values. The following syntax is used to enable secure labeling: 88 </para> 89 90 <screen>VBoxSDL --startvm "VM name" 62 91 --securelabel --seclabelfnt ~/fonts/arial.ttf 63 92 --seclabelsiz 14 --seclabelfgcol 00FF00 --seclabelbgcol 00FFFF</screen> 64 93 65 <para>In addition to enabling secure labeling, a TrueType font has to be 66 supplied. To use another font size than 12 point use the parameter 67 <computeroutput>--seclabelsiz</computeroutput>.</para> 68 69 <para>The label text can be set with <screen>VBoxManage setextradata "VM name" "VBoxSDL/SecureLabel" "The Label"</screen> 70 Changing this label will take effect immediately.</para> 71 72 <para>Typically, full screen resolutions are limited to certain 73 "standard" geometries such as 1024 x 768. Increasing this by twenty 74 lines is not usually feasible, so in most cases, VBoxSDL will chose the 75 next higher resolution, e.g. 1280 x 1024 and the guest's screen will not 76 cover the whole display surface. If VBoxSDL is unable to choose a higher 77 resolution, the secure label will be painted on top of the guest's 78 screen surface. In order to address the problem of the bottom part of 79 the guest screen being hidden, VBoxSDL can provide custom video modes to 80 the guest that are reduced by the height of the label. For Windows 81 guests and recent Solaris and Linux guests, the VirtualBox Guest 82 Additions automatically provide the reduced video modes. Additionally, 83 the VESA BIOS has been adjusted to duplicate its standard mode table 84 with adjusted resolutions. The adjusted mode IDs can be calculated using 85 the following formula:</para> 86 87 <screen>reduced_modeid = modeid + 0x30</screen> 88 89 <para>For example, in order to start Linux with 1024 x 748 x 16, the 90 standard mode 0x117 (1024 x 768 x 16) is used as a base. The Linux video 91 mode kernel parameter can then be calculated using:</para> 92 93 <screen>vga = 0x200 | 0x117 + 0x30 94 <para> 95 In addition to enabling secure labeling, a TrueType font has to 96 be supplied. To use another font size than 12 point use the 97 parameter <computeroutput>--seclabelsiz</computeroutput>. 98 </para> 99 100 <para> 101 The label text can be set with: 102 </para> 103 104 <screen>VBoxManage setextradata "VM name" "VBoxSDL/SecureLabel" "The Label"</screen> 105 106 <para> 107 Changing this label will take effect immediately. 108 </para> 109 110 <para> 111 Typically, full screen resolutions are limited to certain 112 standard geometries such as 1024 x 768. Increasing this by 113 twenty lines is not usually feasible, so in most cases, VBoxSDL 114 will chose the next higher resolution, such as 1280 x 1024 and 115 the guest's screen will not cover the whole display surface. If 116 VBoxSDL is unable to choose a higher resolution, the secure 117 label will be painted on top of the guest's screen surface. In 118 order to address the problem of the bottom part of the guest 119 screen being hidden, VBoxSDL can provide custom video modes to 120 the guest that are reduced by the height of the label. For 121 Windows guests and recent Solaris and Linux guests, the 122 VirtualBox Guest Additions automatically provide the reduced 123 video modes. Additionally, the VESA BIOS has been adjusted to 124 duplicate its standard mode table with adjusted resolutions. The 125 adjusted mode IDs can be calculated using the following formula: 126 </para> 127 128 <screen>reduced_modeid = modeid + 0x30</screen> 129 130 <para> 131 For example, in order to start Linux with 1024 x 748 x 16, the 132 standard mode 0x117 (1024 x 768 x 16) is used as a base. The 133 Linux video mode kernel parameter can then be calculated using: 134 </para> 135 136 <screen>vga = 0x200 | 0x117 + 0x30 94 137 vga = 839</screen> 95 138 96 <para>The reason for duplicating the standard modes instead of only 97 supplying the adjusted modes is that most guest operating systems 98 require the standard VESA modes to be fixed and refuse to start with 99 different modes.</para> 100 101 <para>When using the X.org VESA driver, custom modelines have to be 102 calculated and added to the configuration (usually in 103 <literal>/etc/X11/xorg.conf</literal>. A handy tool to determine 104 modeline entries can be found at <literal><ulink 105 url="http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.html">http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.html</ulink></literal>.)</para> 139 <para> 140 The reason for duplicating the standard modes instead of only 141 supplying the adjusted modes is that most guest operating 142 systems require the standard VESA modes to be fixed and refuse 143 to start with different modes. 144 </para> 145 146 <para> 147 When using the X.org VESA driver, custom modelines have to be 148 calculated and added to the configuration, usually in 149 <literal>/etc/X11/xorg.conf</literal>. A handy tool to determine 150 modeline entries can be found at: 151 <ulink 152 url="http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.html">http://www.tkk.fi/Misc/Electronics/faq/vga2rgb/calc.html</ulink>. 153 </para> 154 106 155 </sect2> 107 156 108 <sect2> 109 <title>Releasing modifiers with VBoxSDL on Linux</title> 110 111 <para>When switching from a X virtual terminal (VT) to another VT using 112 Ctrl-Alt-Fx while the VBoxSDL window has the input focus, the guest will 113 receive Ctrl and Alt keypress events without receiving the corresponding 114 key release events. This is an architectural limitation of Linux. In 115 order to reset the modifier keys, it is possible to send 116 <computeroutput>SIGUSR1</computeroutput> to the VBoxSDL main thread 117 (first entry in the <computeroutput>ps</computeroutput> list). For 118 example, when switching away to another VT and saving the virtual 119 machine from this terminal, the following sequence can be used to make 120 sure the VM is not saved with stuck modifiers:</para> 121 122 <para><screen>kill -usr1 <pid> 123 VBoxManage controlvm "Windows 2000" savestate</screen></para> 157 <sect2 id="vboxsdl-modifier-release"> 158 159 <title>Releasing Modifiers with VBoxSDL on Linux</title> 160 161 <para> 162 When switching from a X virtual terminal (VT) to another VT 163 using Ctrl-Alt-F<replaceable>x</replaceable> while the VBoxSDL 164 window has the input focus, the guest will receive Ctrl and Alt 165 keypress events without receiving the corresponding key release 166 events. This is an architectural limitation of Linux. In order 167 to reset the modifier keys, it is possible to send 168 <computeroutput>SIGUSR1</computeroutput> to the VBoxSDL main 169 thread, the first entry in the 170 <computeroutput>ps</computeroutput> list. For example, when 171 switching away to another VT and saving the virtual machine from 172 this terminal, the following sequence can be used to make sure 173 the VM is not saved with stuck modifiers: 174 </para> 175 176 <screen>kill -usr1 <pid> 177 VBoxManage controlvm "Windows 2000" savestate</screen> 178 124 179 </sect2> 180 125 181 </sect1> 126 182 127 183 <sect1 id="autologon"> 128 <title>Automated guest logons</title> 129 130 <para>VirtualBox provides Guest Addition modules for Windows, Linux and 131 Solaris to enable automated logons on the guest.</para> 132 133 <para>When a guest operating system is running in a virtual machine, it 134 might be desirable to perform coordinated and automated logons using 135 credentials from a master logon system. (With "credentials", we are 136 referring to logon information consisting of user name, password and 137 domain name, where each value might be empty.)</para> 184 185 <title>Automated Guest Logons</title> 186 187 <para> 188 VirtualBox provides Guest Addition modules for Windows, Linux, and 189 Solaris to enable automated logons on the guest. 190 </para> 191 192 <para> 193 When a guest operating system is running in a virtual machine, it 194 might be desirable to perform coordinated and automated logons 195 using credentials from a master logon system. Credentials are user 196 name, password, and domain name, where each value might be empty. 197 </para> 138 198 139 199 <sect2 id="autologon_win"> 140 <title>Automated Windows guest logons</title> 141 142 <para>Since Windows NT, Windows has provided a modular system logon 143 subsystem ("Winlogon") which can be customized and extended by means of 144 so-called GINA modules (Graphical Identification and Authentication). 145 With Windows Vista and Windows 7, the GINA modules were replaced with a 146 new mechanism called "credential providers". The VirtualBox Guest 147 Additions for Windows come with both, a GINA and a credential provider 148 module, and therefore enable any Windows guest to perform automated 149 logons.</para> 150 151 <para>To activate the VirtualBox GINA or credential provider module, 152 install the Guest Additions with using the command line switch 153 <computeroutput>/with_autologon</computeroutput>. All the following 154 manual steps required for installing these modules will be then done by 155 the installer.</para> 156 157 <para>To manually install the VirtualBox GINA module, extract the Guest 158 Additions (see <xref linkend="windows-guest-file-extraction" />) and 159 copy the file <computeroutput>VBoxGINA.dll</computeroutput> to the 160 Windows <computeroutput>SYSTEM32</computeroutput> directory. Then, in 161 the registry, create the following key: <screen>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL</screen> 162 with a value of <computeroutput>VBoxGINA.dll</computeroutput>.</para> 200 201 <title>Automated Windows Guest Logons</title> 202 203 <para> 204 Since Windows NT, Windows has provided a modular system logon 205 subsystem, called Winlogon, which can be customized and extended 206 by means of so-called GINA (Graphical Identification and 207 Authentication) modules. With Windows Vista and Windows 7, the 208 GINA modules were replaced with a new mechanism called 209 credential providers. The VirtualBox Guest Additions for Windows 210 come with both, a GINA and a credential provider module, and 211 therefore enable any Windows guest to perform automated logons. 212 </para> 213 214 <para> 215 To activate the VirtualBox GINA or credential provider module, 216 install the Guest Additions using the command line switch 217 <computeroutput>/with_autologon</computeroutput>. All the 218 following manual steps required for installing these modules 219 will be then done by the installer. 220 </para> 221 222 <para> 223 To manually install the VirtualBox GINA module, extract the 224 Guest Additions as shown in 225 <xref linkend="windows-guest-file-extraction" /> and copy the 226 file <computeroutput>VBoxGINA.dll</computeroutput> to the 227 Windows <computeroutput>SYSTEM32</computeroutput> directory. 228 Then, in the registry, create the following key with a value of 229 <computeroutput>VBoxGINA.dll</computeroutput>.: 230 </para> 231 232 <screen>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GinaDLL</screen> 163 233 164 234 <note> 165 <para>The VirtualBox GINA module is implemented as a wrapper around 166 the standard Windows GINA module 167 (<computeroutput>MSGINA.DLL</computeroutput>). As a result, it will 168 most likely not work correctly with 3rd party GINA modules.</para> 235 <para> 236 The VirtualBox GINA module is implemented as a wrapper around 237 the standard Windows GINA module, 238 <computeroutput>MSGINA.DLL</computeroutput>. As a result, it 239 may not work correctly with third party GINA modules. 240 </para> 169 241 </note> 170 242 171 <para>To manually install the VirtualBox credential provider module, 172 extract the Guest Additions (see <xref 173 linkend="windows-guest-file-extraction" />) and copy the file 174 <computeroutput>VBoxCredProv.dll</computeroutput> to the Windows 175 <computeroutput>SYSTEM32</computeroutput> directory. Then, in the 176 registry, create the following keys:<screen>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ 243 <para> 244 To manually install the VirtualBox credential provider module, 245 extract the Guest Additions as shown in 246 <xref 247 linkend="windows-guest-file-extraction" /> and copy 248 the file <computeroutput>VBoxCredProv.dll</computeroutput> to 249 the Windows <computeroutput>SYSTEM32</computeroutput> directory. 250 In the registry, create the following keys: 251 252 <screen>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ 177 253 Authentication\Credential Providers\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B} 178 254 179 255 HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B} 180 256 181 HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32</screen></para> 182 183 <para>with all default values (the key named 184 <computeroutput>(Default)</computeroutput> in each key) set to 185 <computeroutput>VBoxCredProv</computeroutput>. After that a new string 186 named <screen>HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32\ThreadingModel</screen> 187 with a value of <computeroutput>Apartment</computeroutput> has to be 188 created.</para> 189 190 <para>To set credentials, use the following command on a 191 <emphasis>running</emphasis> VM:</para> 192 193 <screen>VBoxManage controlvm "Windows XP" setcredentials "John Doe" "secretpassword" "DOMTEST"</screen> 194 195 <para>While the VM is running, the credentials can be queried by the 196 VirtualBox logon modules (GINA or credential provider) using the 197 VirtualBox Guest Additions device driver. When Windows is in "logged 198 out" mode, the logon modules will constantly poll for credentials and if 199 they are present, a logon will be attempted. After retrieving the 200 credentials, the logon modules will erase them so that the above command 201 will have to be repeated for subsequent logons.</para> 202 203 <para>For security reasons, credentials are not stored in any persistent 204 manner and will be lost when the VM is reset. Also, the credentials are 205 "write-only", i.e. there is no way to retrieve the credentials from the 206 host side. Credentials can be reset from the host side by setting empty 207 values.</para> 208 209 <para>Depending on the particular variant of the Windows guest, the 210 following restrictions apply: <orderedlist> 211 <listitem> 212 <para>For <emphasis role="bold">Windows XP guests,</emphasis> the 213 logon subsystem needs to be configured to use the classic logon 214 dialog as the VirtualBox GINA module does not support the XP-style 215 welcome dialog.</para> 216 </listitem> 217 218 <listitem> 219 <para>For <emphasis role="bold">Windows Vista, Windows 7 220 and Windows 8 guests,</emphasis> the logon subsystem does not support 221 the so-called Secure Attention Sequence 222 (<computeroutput>CTRL+ALT+DEL</computeroutput>). As a result, the 223 guest's group policy settings need to be changed to not use the 224 Secure Attention Sequence. Also, the user name given is only 225 compared to the true user name, not the user friendly name. This 226 means that when you rename a user, you still have to supply the 227 original user name (internally, Windows never renames user 228 accounts).</para> 229 </listitem> 230 231 <listitem> 232 <para>Auto-logon handling of the built-in Windows Remote Desktop 233 Service (formerly known as Terminal Services) is disabled by 234 default. To enable it, create the registry key <screen>HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\VirtualBox Guest Additions\AutoLogon</screen> 235 with a <computeroutput>DWORD</computeroutput> value of 236 <computeroutput>1</computeroutput>.</para> 237 </listitem> 238 </orderedlist></para> 239 240 <para>The following command forces VirtualBox to keep the credentials 241 after they were read by the guest and on VM reset: <screen>VBoxManage setextradata "Windows XP" VBoxInternal/Devices/VMMDev/0/Config/KeepCredentials 1</screen>Note 242 that this is a potential security risk as a malicious application 243 running on the guest could request this information using the proper 244 interface.</para> 257 HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32</screen> 258 </para> 259 260 <para> 261 All default values, the key named 262 <computeroutput>Default</computeroutput>, must be set to 263 <computeroutput>VBoxCredProv</computeroutput>. 264 </para> 265 266 <para> 267 Create a new string named as follows, with a value of 268 <computeroutput>Apartment</computeroutput>. 269 </para> 270 271 <screen>HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}\InprocServer32\ThreadingModel</screen> 272 273 <para> 274 To set credentials, use the following command on a 275 <emphasis>running</emphasis> VM: 276 </para> 277 278 <screen>VBoxManage controlvm "Windows XP" setcredentials "John Doe" "secretpassword" "DOMTEST"</screen> 279 280 <para> 281 While the VM is running, the credentials can be queried by the 282 VirtualBox logon modules, GINA or credential provider, using the 283 VirtualBox Guest Additions device driver. When Windows is in 284 <emphasis>logged out</emphasis> mode, the logon modules will 285 constantly poll for credentials and if they are present, a logon 286 will be attempted. After retrieving the credentials, the logon 287 modules will erase them so that the above command will have to 288 be repeated for subsequent logons. 289 </para> 290 291 <para> 292 For security reasons, credentials are not stored in any 293 persistent manner and will be lost when the VM is reset. Also, 294 the credentials are write-only. There is no way to retrieve the 295 credentials from the host side. Credentials can be reset from 296 the host side by setting empty values. 297 </para> 298 299 <para> 300 Depending on the particular variant of the Windows guest, the 301 following restrictions apply: 302 </para> 303 304 <itemizedlist> 305 306 <listitem> 307 <para> 308 For <emphasis role="bold">Windows XP guests.</emphasis> The 309 logon subsystem needs to be configured to use the classic 310 logon dialog as the VirtualBox GINA module does not support 311 the XP-style welcome dialog. 312 </para> 313 </listitem> 314 315 <listitem> 316 <para> 317 <emphasis role="bold">Windows Vista, Windows 7, and Windows 318 8 guests.</emphasis> The logon subsystem does not support 319 the so-called Secure Attention Sequence, 320 <computeroutput>Ctrl+Alt+Del</computeroutput>. As a result, 321 the guest's group policy settings need to be changed to not 322 use the Secure Attention Sequence. Also, the user name given 323 is only compared to the true user name, not the user 324 friendly name. This means that when you rename a user, you 325 still have to supply the original user name as Windows never 326 renames user accounts internally. 327 </para> 328 </listitem> 329 330 <listitem> 331 <para> 332 Auto-logon handling of the built-in 333 <emphasis role="bold">Windows Remote Desktop 334 Service</emphasis>, formerly known as Terminal Services, is 335 disabled by default. To enable it, create the following 336 registry key with a <computeroutput>DWORD</computeroutput> 337 value of <computeroutput>1</computeroutput>. 338 </para> 339 340 <screen>HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\VirtualBox Guest Additions\AutoLogon</screen> 341 </listitem> 342 343 </itemizedlist> 344 345 <para> 346 The following command forces VirtualBox to keep the credentials 347 after they were read by the guest and on VM reset: 348 349 <screen>VBoxManage setextradata "Windows XP" VBoxInternal/Devices/VMMDev/0/Config/KeepCredentials 1</screen> 350 351 Note that this is a potential security risk, as a malicious 352 application running on the guest could request this information 353 using the proper interface. 354 </para> 355 245 356 </sect2> 246 357 247 358 <sect2 id="autologon_unix"> 248 <title>Automated Linux/Unix guest logons</title> 249 250 <para>Starting with version 3.2, VirtualBox provides a custom PAM module 251 (Pluggable Authentication Module) which can be used to perform automated 252 guest logons on platforms which support this framework. Virtually all 253 modern Linux/Unix distributions rely on PAM.</para> 254 255 <para>For automated logons on Ubuntu (or Ubuntu-derived) distributions 256 using LightDM as the display manager, please see 257 <xref linkend="autologon_unix_lightdm" />.</para> 258 259 <para>The <computeroutput>pam_vbox.so</computeroutput> module itself 260 <emphasis role="bold">does not</emphasis> do an actual verification of 261 the credentials passed to the guest OS; instead it relies on other 262 modules such as <computeroutput>pam_unix.so</computeroutput> or 263 <computeroutput>pam_unix2.so</computeroutput> down in the PAM stack to 264 do the actual validation using the credentials retrieved by 265 <computeroutput>pam_vbox.so</computeroutput>. Therefore 266 <computeroutput>pam_vbox.so</computeroutput> has to be on top of the 267 authentication PAM service list.</para> 359 360 <title>Automated Linux and Unix Guest Logons</title> 361 362 <para> 363 Starting with version 3.2, VirtualBox provides a custom PAM 364 module (Pluggable Authentication Module) which can be used to 365 perform automated guest logons on platforms which support this 366 framework. Virtually all modern Linux and Unix distributions 367 rely on PAM. 368 </para> 369 370 <para> 371 For automated logons on Ubuntu, or Ubuntu-derived, distributions 372 using LightDM as the display manager, see 373 <xref linkend="autologon_unix_lightdm" />. 374 </para> 375 376 <para> 377 The <computeroutput>pam_vbox.so</computeroutput> module itself 378 <emphasis>does not</emphasis> do an actual verification of the 379 credentials passed to the guest OS. Instead it relies on other 380 modules such as <computeroutput>pam_unix.so</computeroutput> or 381 <computeroutput>pam_unix2.so</computeroutput> down in the PAM 382 stack to do the actual validation using the credentials 383 retrieved by <computeroutput>pam_vbox.so</computeroutput>. 384 Therefore <computeroutput>pam_vbox.so</computeroutput> has to be 385 on top of the authentication PAM service list. 386 </para> 268 387 269 388 <note> 270 <para>The <computeroutput>pam_vbox.so</computeroutput> only supports 271 the <computeroutput>auth</computeroutput> primitive. Other primitives 272 such as <computeroutput>account</computeroutput>, 273 <computeroutput>session</computeroutput> or 274 <computeroutput>password</computeroutput> are not supported.</para> 389 <para> 390 The <computeroutput>pam_vbox.so</computeroutput> module only 391 supports the <computeroutput>auth</computeroutput> primitive. 392 Other primitives such as 393 <computeroutput>account</computeroutput>, 394 <computeroutput>session</computeroutput>, or 395 <computeroutput>password</computeroutput> are not supported. 396 </para> 275 397 </note> 276 398 277 <para>The <computeroutput>pam_vbox.so</computeroutput> module is shipped 278 as part of the Guest Additions but it is not installed and/or activated 279 on the guest OS by default. In order to install it, it has to be copied 280 from 281 <computeroutput>/opt/VBoxGuestAdditions-<version>/other/</computeroutput> 282 to the security modules directory, usually 283 <computeroutput>/lib/security/</computeroutput> on 32-bit guest Linuxes 284 or <computeroutput>/lib64/security/</computeroutput> on 64-bit ones. 285 Please refer to your guest OS documentation for the correct PAM module 286 directory.</para> 287 288 <para>For example, to use <computeroutput>pam_vbox.so</computeroutput> 289 with a Ubuntu Linux guest OS and GDM (the GNOME Desktop Manager) to 290 logon users automatically with the credentials passed by the host, the 291 guest OS has to be configured like the following:</para> 399 <para> 400 The <computeroutput>pam_vbox.so</computeroutput> module is 401 shipped as part of the Guest Additions but it is not installed 402 and/or activated on the guest OS by default. In order to install 403 it, it has to be copied from 404 <computeroutput>/opt/VBoxGuestAdditions-<version>/other/</computeroutput> 405 to the security modules directory. This is usually 406 <computeroutput>/lib/security/</computeroutput> on 32-bit Linux 407 guests or <computeroutput>/lib64/security/</computeroutput> on 408 64-bit Linux guests. Please refer to your guest OS documentation 409 for the correct PAM module directory. 410 </para> 411 412 <para> 413 For example, to use <computeroutput>pam_vbox.so</computeroutput> 414 with a Ubuntu Linux guest OS and the GNOME Desktop Manager (GDM) 415 to logon users automatically with the credentials passed by the 416 host, configure the guest OS as follows: 417 </para> 292 418 293 419 <orderedlist> 420 294 421 <listitem> 295 <para>The <computeroutput>pam_vbox.so</computeroutput> module has to 296 be copied to the security modules directory, in this case it is 297 <computeroutput>/lib/security</computeroutput>.</para> 422 <para> 423 Copy the <computeroutput>pam_vbox.so</computeroutput> module 424 to the security modules directory. In this case, 425 <computeroutput>/lib/security</computeroutput>. 426 </para> 298 427 </listitem> 299 428 300 429 <listitem> 301 <para>Edit the PAM configuration file for GDM found at 302 <computeroutput>/etc/pam.d/gdm</computeroutput>, adding the line 303 <computeroutput>auth requisite pam_vbox.so</computeroutput> at the 304 top. Additionally, in most Linux distributions there is a file called 305 <computeroutput>/etc/pam.d/common-auth</computeroutput>. This file 306 is included in many other services (like the GDM file mentioned 307 above). There you also have to add the line <computeroutput>auth 308 requisite pam_vbox.so</computeroutput>.</para> 430 <para> 431 Edit the PAM configuration file for GDM, found at 432 <computeroutput>/etc/pam.d/gdm</computeroutput>. Add the 433 line <computeroutput>auth requisite 434 pam_vbox.so</computeroutput> at the top. Additionally, in 435 most Linux distributions there is a file called 436 <computeroutput>/etc/pam.d/common-auth</computeroutput>. 437 This file is included in many other services, like the GDM 438 file mentioned above. There you also have to add the line 439 <computeroutput>auth requisite pam_vbox.so</computeroutput>. 440 </para> 309 441 </listitem> 310 442 311 443 <listitem> 312 <para>If authentication against the shadow database using 313 <computeroutput>pam_unix.so</computeroutput> or 314 <computeroutput>pam_unix2.so</computeroutput> is desired, the 315 argument <computeroutput>try_first_pass</computeroutput> for 316 <computeroutput>pam_unix.so</computeroutput> or 317 <computeroutput>use_first_pass</computeroutput> for 318 <computeroutput>pam_unix2.so</computeroutput> is needed in order to 319 pass the credentials from the VirtualBox module to the shadow 320 database authentication module. For Ubuntu, this needs to be added 321 to <computeroutput>/etc/pam.d/common-auth</computeroutput>, to the 322 end of the line referencing 323 <computeroutput>pam_unix.so</computeroutput>. This argument tells 324 the PAM module to use credentials already present in the stack, i.e. 325 the ones provided by the VirtualBox PAM module.</para> 444 <para> 445 If authentication against the shadow database using 446 <computeroutput>pam_unix.so</computeroutput> or 447 <computeroutput>pam_unix2.so</computeroutput> is desired, 448 the argument <computeroutput>try_first_pass</computeroutput> 449 for <computeroutput>pam_unix.so</computeroutput> or 450 <computeroutput>use_first_pass</computeroutput> for 451 <computeroutput>pam_unix2.so</computeroutput> is needed in 452 order to pass the credentials from the VirtualBox module to 453 the shadow database authentication module. For Ubuntu, this 454 needs to be added to 455 <computeroutput>/etc/pam.d/common-auth</computeroutput>, to 456 the end of the line referencing 457 <computeroutput>pam_unix.so</computeroutput>. This argument 458 tells the PAM module to use credentials already present in 459 the stack, such as the ones provided by the VirtualBox PAM 460 module. 461 </para> 326 462 </listitem> 463 327 464 </orderedlist> 328 465 329 <para><warning> 330 <para>An incorrectly configured PAM stack can effectively prevent 331 you from logging into your guest system!</para> 332 </warning></para> 333 334 <para>To make deployment easier, you can pass the argument 335 <computeroutput>debug</computeroutput> right after the 336 <computeroutput>pam_vbox.so</computeroutput> statement. Debug log output 337 will then be recorded using syslog.</para> 338 339 <para><note> 340 <para>By default, pam_vbox will not wait for credentials to arrive 341 from the host, in other words: When a login prompt is shown (for 342 example by GDM/KDM or the text console) and pam_vbox does not yet 343 have credentials it does not wait until they arrive. Instead the 344 next module in the PAM stack (depending on the PAM configuration) 345 will have the chance for authentication.</para> 346 </note></para> 347 348 <para>Starting with VirtualBox 4.1.4 pam_vbox supports various guest 349 property parameters which all reside in 350 <computeroutput>/VirtualBox/GuestAdd/PAM/</computeroutput>. These 351 parameters allow pam_vbox to wait for credentials to be provided by the 352 host and optionally can show a message while waiting for those. The 353 following guest properties can be set:</para> 354 355 <orderedlist> 466 <warning> 467 <para> 468 An incorrectly configured PAM stack can effectively prevent 469 you from logging into your guest system. 470 </para> 471 </warning> 472 473 <para> 474 To make deployment easier, you can pass the argument 475 <computeroutput>debug</computeroutput> right after the 476 <computeroutput>pam_vbox.so</computeroutput> statement. Debug 477 log output will then be recorded using syslog. 478 </para> 479 480 <note> 481 <para> 482 By default, pam_vbox will not wait for credentials to arrive 483 from the host. When a login prompt is shown, for example by 484 GDM/KDM or the text console, and pam_vbox does not yet have 485 credentials it does not wait until they arrive. Instead the 486 next module in the PAM stack, depending on the PAM 487 configuration, will have the chance for authentication. 488 </para> 489 </note> 490 491 <para> 492 Starting with VirtualBox 4.1.4 pam_vbox supports various guest 493 property parameters which all reside in 494 <computeroutput>/VirtualBox/GuestAdd/PAM/</computeroutput>. 495 These parameters allow pam_vbox to wait for credentials to be 496 provided by the host and optionally can show a message while 497 waiting for those. The following guest properties can be set: 498 </para> 499 500 <itemizedlist> 501 356 502 <listitem> 357 <para><computeroutput>CredsWait</computeroutput>: Set to "1" if 358 pam_vbox should start waiting until credentials arrive from the 359 host. Until then no other authentication methods such as manually 360 logging in will be available. If this property is empty or get 361 deleted no waiting for credentials will be performed and pam_vbox 362 will act like before (see paragraph above). This property must be 363 set read-only for the guest 364 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 503 <para> 504 <computeroutput>CredsWait</computeroutput>: Set to 1 if 505 pam_vbox should start waiting until credentials arrive from 506 the host. Until then no other authentication methods such as 507 manually logging in will be available. If this property is 508 empty or gets deleted no waiting for credentials will be 509 performed and pam_vbox will act like before. This property 510 must be set read-only for the guest 511 (<computeroutput>RDONLYGUEST</computeroutput>). 512 </para> 365 513 </listitem> 366 514 367 515 <listitem> 368 <para><computeroutput>CredsWaitAbort</computeroutput>: Aborts waiting 369 for credentials when set to any value. Can be set from host and the 370 guest.</para> 516 <para> 517 <computeroutput>CredsWaitAbort</computeroutput>: Aborts 518 waiting for credentials when set to any value. Can be set 519 from host and the guest. 520 </para> 371 521 </listitem> 372 522 373 523 <listitem> 374 <para><computeroutput>CredsWaitTimeout</computeroutput>: Timeout (in 375 seconds) to let pam_vbox wait for credentials to arrive. When no 376 credentials arrive within this timeout, authentication of pam_vbox 377 will be set to failed and the next PAM module in chain will be 378 asked. If this property is not specified, set to "0" or an invalid 379 value, an infinite timeout will be used. This property must be set 380 read-only for the guest 381 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 524 <para> 525 <computeroutput>CredsWaitTimeout</computeroutput>: Timeout, 526 in seconds, to let pam_vbox wait for credentials to arrive. 527 When no credentials arrive within this timeout, 528 authentication of pam_vbox will be set to failed and the 529 next PAM module in chain will be asked. If this property is 530 not specified, set to 0 or an invalid value, an infinite 531 timeout will be used. This property must be set read-only 532 for the guest 533 (<computeroutput>RDONLYGUEST</computeroutput>). 534 </para> 382 535 </listitem> 383 </orderedlist> 384 385 <para>To customize pam_vbox further there are the following guest 386 properties:</para> 387 388 <orderedlist> 536 537 </itemizedlist> 538 539 <para> 540 To customize pam_vbox further there are the following guest 541 properties: 542 </para> 543 544 <itemizedlist> 545 389 546 <listitem> 390 <para><computeroutput>CredsMsgWaiting</computeroutput>: Custom 391 message showed while pam_vbox is waiting for credentials from the 392 host. This property must be set read-only for the guest 393 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 547 <para> 548 <computeroutput>CredsMsgWaiting</computeroutput>: Custom 549 message showed while pam_vbox is waiting for credentials 550 from the host. This property must be set read-only for the 551 guest (<computeroutput>RDONLYGUEST</computeroutput>). 552 </para> 394 553 </listitem> 395 554 396 555 <listitem> 397 <para><computeroutput>CredsMsgWaitTimeout</computeroutput>: Custom 398 message showed when waiting for credentials by pam_vbox timed out, 399 e.g. did not arrive within time. This property must be set read-only 400 for the guest (<computeroutput>RDONLYGUEST</computeroutput>).</para> 556 <para> 557 <computeroutput>CredsMsgWaitTimeout</computeroutput>: Custom 558 message showed when waiting for credentials by pam_vbox has 559 timed out. For example, they did not arrive within time. 560 This property must be set read-only for the guest 561 (<computeroutput>RDONLYGUEST</computeroutput>). 562 </para> 401 563 </listitem> 402 </orderedlist> 403 404 <para><note> 405 <para>If a pam_vbox guest property does not have set the right flags 406 (<computeroutput>RDONLYGUEST</computeroutput>) this property will be 407 ignored then and - depending on the property - a default value will 408 be set. This can result in pam_vbox not waiting for credentials. 409 Consult the appropriate syslog file for more information and use the 410 <computeroutput>debug</computeroutput> option.</para> 411 </note></para> 564 565 </itemizedlist> 566 567 <note> 568 <para> 569 If a pam_vbox guest property does not have the correct flag 570 set (<computeroutput>RDONLYGUEST</computeroutput>) the 571 property is ignored and, depending on the property, a default 572 value will be used. This can result in pam_vbox not waiting 573 for credentials. Consult the appropriate syslog file for more 574 information and use the <computeroutput>debug</computeroutput> 575 option. 576 </para> 577 </note> 412 578 413 579 <sect3 id="autologon_unix_lightdm"> 414 <title>VirtualBox Greeter for Ubuntu / LightDM</title> 415 416 <para>Starting with version 4.2.12, VirtualBox comes with an own greeter 417 module named vbox-greeter which can be used with LightDM 1.0.1 or later. 418 LightDM is the default display manager since Ubuntu 10.11 and therefore 419 also can be used for automated guest logons.</para> 420 421 <para>vbox-greeter does not need the pam_vbox module described above 422 in order to function -- it comes with its own authentication mechanism 423 provided by LightDM. However, to provide maximum of flexibility both 424 modules can be used together on the same guest.</para> 425 426 <para>As for the pam_vbox module, vbox-greeter is shipped as part of 427 the Guest Additions but it is not installed and/or activated on the 428 guest OS by default For installing vbox-greeter automatically upon 429 Guest Additions installation, use the 430 <computeroutput>--with-autologon</computeroutput> switch when starting 431 the VBoxLinuxAdditions.run file:</para><screen># ./VBoxLinuxAdditions.run -- --with-autologon</screen> 432 433 <para>For manual or postponed installation, the 434 <computeroutput>vbox-greeter.desktop</computeroutput> 435 file has to be copied from 580 581 <title>VirtualBox Greeter for Ubuntu/LightDM</title> 582 583 <para> 584 Starting with version 4.2.12, VirtualBox comes with an own 585 greeter module named vbox-greeter which can be used with 586 LightDM 1.0.1 or later. LightDM is the default display manager 587 since Ubuntu 10.11 and therefore also can be used for 588 automated guest logons. 589 </para> 590 591 <para> 592 vbox-greeter does not need the pam_vbox module described above 593 in order to function. It comes with its own authentication 594 mechanism provided by LightDM. However, to provide maximum of 595 flexibility both modules can be used together on the same 596 guest. 597 </para> 598 599 <para> 600 As with the pam_vbox module, vbox-greeter is shipped as part 601 of the Guest Additions but it is not installed or activated on 602 the guest OS by default. To install vbox-greeter automatically 603 upon Guest Additions installation, use the 604 <computeroutput>--with-autologon</computeroutput> switch when 605 starting the VBoxLinuxAdditions.run file: 606 </para> 607 608 <screen># ./VBoxLinuxAdditions.run -- --with-autologon</screen> 609 610 <para> 611 For manual or postponed installation, the 612 <computeroutput>vbox-greeter.desktop</computeroutput> file has 613 to be copied from 614 <computeroutput>/opt/VBoxGuestAdditions-<version>/other/</computeroutput> 615 to the <computeroutput>xgreeters</computeroutput> directory, 616 usually 617 <computeroutput>/usr/share/xgreeters/</computeroutput>. Please 618 refer to your guest OS documentation for the correct LightDM 619 greeter directory. 620 </para> 621 622 <para> 623 The vbox-greeter module itself already was installed by the 624 VirtualBox Guest Additions installer and resides in 625 <computeroutput>/usr/sbin/</computeroutput>. To enable 626 vbox-greeter as the standard greeter module, the file 627 <computeroutput>/etc/lightdm/lightdm.conf</computeroutput> 628 needs to be edited: 629 </para> 630 631 <para> 632 <screen>[SeatDefaults] 633 greeter-session=vbox-greeter</screen> 634 </para> 635 636 <note> 637 <itemizedlist> 638 639 <listitem> 640 <para> 641 The LightDM server needs to be fully restarted in order 642 for vbox-greeter to be used as the default greeter. As 643 root, run <computeroutput>service lightdm 644 --full-restart</computeroutput> on Ubuntu, or simply 645 restart the guest. 646 </para> 647 </listitem> 648 649 <listitem> 650 <para> 651 vbox-greeter is independent of the graphical session 652 chosen by the user, such as Gnome, KDE, or Unity. 653 However, it requires FLTK 1.3 for representing its own 654 user interface. 655 </para> 656 </listitem> 657 658 </itemizedlist> 659 </note> 660 661 <para> 662 There are numerous guest properties which can be used to 663 further customize the login experience. For automatically 664 logging in users, the same guest properties apply as for 665 pam_vbox. See <xref linkend="autologon_unix" />. 666 </para> 667 668 <para> 669 In addition to the above mentioned guest properties, 670 vbox-greeter allows further customization of its user 671 interface. These special guest properties all reside in 672 <computeroutput>/VirtualBox/GuestAdd/Greeter/</computeroutput>: 673 </para> 674 675 <itemizedlist> 676 677 <listitem> 678 <para> 679 <computeroutput>HideRestart</computeroutput>: Set to 1 if 680 vbox-greeter should hide the button to restart the guest. 681 This property must be set read-only for the guest 682 (<computeroutput>RDONLYGUEST</computeroutput>). 683 </para> 684 </listitem> 685 686 <listitem> 687 <para> 688 <computeroutput>HideShutdown</computeroutput>: Set to 1 if 689 vbox-greeter should hide the button to shutdown the guest. 690 This property must be set read-only for the guest 691 (<computeroutput>RDONLYGUEST</computeroutput>). 692 </para> 693 </listitem> 694 695 <listitem> 696 <para> 697 <computeroutput>BannerPath</computeroutput>: Path to a 698 .PNG file for using it as a banner on the top. The image 699 size must be 460 x 90 pixels, any bit depth. This property 700 must be set read-only for the guest 701 (<computeroutput>RDONLYGUEST</computeroutput>). 702 </para> 703 </listitem> 704 705 <listitem> 706 <para> 707 <computeroutput>UseTheming</computeroutput>: Set to 1 for 708 turning on the following theming options. This property 709 must be set read-only for the guest 710 (<computeroutput>RDONLYGUEST</computeroutput>). 711 </para> 712 </listitem> 713 714 <listitem> 715 <para> 716 <computeroutput>Theme/BackgroundColor</computeroutput>: 717 Hexadecimal RRGGBB color for the background. This property 718 must be set read-only for the guest 719 (<computeroutput>RDONLYGUEST</computeroutput>). 720 </para> 721 </listitem> 722 723 <listitem> 724 <para> 725 <computeroutput>Theme/LogonDialog/HeaderColor</computeroutput>: 726 Hexadecimal RRGGBB foreground color for the header text. 727 This property must be set read-only for the guest 728 (<computeroutput>RDONLYGUEST</computeroutput>). 729 </para> 730 </listitem> 731 732 <listitem> 733 <para> 734 <computeroutput>Theme/LogonDialog/BackgroundColor</computeroutput>: 735 Hexadecimal RRGGBB color for the logon dialog background. 736 This property must be set read-only for the guest 737 (<computeroutput>RDONLYGUEST</computeroutput>). 738 </para> 739 </listitem> 740 741 <listitem> 742 <para> 743 <computeroutput>Theme/LogonDialog/ButtonColor</computeroutput>: 744 Hexadecimal RRGGBB background color for the logon dialog 745 button. This property must be set read-only for the guest 746 (<computeroutput>RDONLYGUEST</computeroutput>). 747 </para> 748 </listitem> 749 750 </itemizedlist> 751 752 <note> 753 <para> 754 The same restrictions for the guest properties above apply 755 as for the ones specified in the pam_vbox section. 756 </para> 757 </note> 758 759 </sect3> 760 761 </sect2> 762 763 </sect1> 764 765 <sect1 id="adv-config-win-guest"> 766 767 <title>Advanced Configuration for Windows Guests</title> 768 769 <sect2 id="sysprep"> 770 771 <title>Automated Windows System Preparation</title> 772 773 <para> 774 Beginning with Windows NT 4.0, Microsoft offers a system 775 preparation tool called Sysprep, to prepare a Windows system for 776 deployment or redistribution. Whereas Windows 2000 and XP ship 777 with Sysprep on the installation medium, the tool also is 778 available for download on the Microsoft web site. In a standard 779 installation of Windows Vista and 7, Sysprep is already 780 included. Sysprep mainly consists of an executable called 781 <computeroutput>sysprep.exe</computeroutput> which is invoked by 782 the user to put the Windows installation into preparation mode. 783 </para> 784 785 <para> 786 Starting with VirtualBox 3.2.2, the Guest Additions offer a way 787 to launch a system preparation on the guest operating system in 788 an automated way, controlled from the host system. See 789 <xref linkend="guestadd-guestcontrol" /> for details of how to 790 use this feature with the special identifier 791 <computeroutput>sysprep</computeroutput> as the program to 792 execute, along with the user name 793 <computeroutput>sysprep</computeroutput> and password 794 <computeroutput>sysprep</computeroutput> for the credentials. 795 Sysprep then gets launched with the required system rights. 796 </para> 797 798 <note> 799 <para> 800 Specifying the location of "sysprep.exe" is 801 <emphasis 802 role="bold">not possible</emphasis>. Instead 803 the following paths are used, based on the operating system: 804 </para> 805 806 <itemizedlist> 807 808 <listitem> 809 <para> 810 <computeroutput>C:\sysprep\sysprep.exe</computeroutput> 811 for Windows NT 4.0, 2000 and XP 812 </para> 813 </listitem> 814 815 <listitem> 816 <para> 817 <computeroutput>%WINDIR%\System32\Sysprep\sysprep.exe</computeroutput> 818 for Windows Vista, 2008 Server and 7 819 </para> 820 </listitem> 821 822 </itemizedlist> 823 824 <para> 825 The Guest Additions will automatically use the appropriate 826 path to execute the system preparation tool. 827 </para> 828 </note> 829 830 </sect2> 831 832 </sect1> 833 834 <sect1 id="adv-config-linux-guest"> 835 836 <title>Advanced Configuration for Linux and Solaris Guests</title> 837 838 <sect2 id="linux-guest-manual-setup"> 839 840 <title>Manual Setup of Selected Guest Services on Linux</title> 841 842 <para> 843 The VirtualBox Guest Additions contain several different 844 drivers. If for any reason you do not wish to set them all up, 845 you can install the Guest Additions using the following command: 846 </para> 847 848 <screen> sh ./VBoxLinuxAdditions.run no_setup</screen> 849 850 <para> 851 After this, you will need to at least compile the kernel modules 852 by running the command as root: 853 </para> 854 855 <screen> rcvboxadd setup</screen> 856 857 <para> 858 You will need to replace <emphasis>lib</emphasis> by 859 <emphasis>lib64</emphasis> on some 64bit guests, and on older 860 guests without the udev service you will need to add the 861 <emphasis>vboxadd</emphasis> service to the default runlevel to 862 ensure that the modules get loaded. 863 </para> 864 865 <para> 866 To setup the time synchronization service, add the service 867 vboxadd-service to the default runlevel. To set up the X11 and 868 OpenGL part of the Guest Additions, run the command 869 870 <screen> rcvboxadd-x11 setup</screen> 871 872 You do not need to enable any services for this. 873 </para> 874 875 <para> 876 To recompile the guest kernel modules, use this command: 877 878 <screen> rcvboxadd setup</screen> 879 880 After compilation you should reboot your guest to ensure that 881 the new modules are actually used. 882 </para> 883 884 </sect2> 885 886 <sect2 id="guestxorgsetup"> 887 888 <title>Guest Graphics and Mouse Driver Setup in Depth</title> 889 890 <para> 891 This section assumes that you are familiar with configuring the 892 X.Org server using xorg.conf and optionally the newer mechanisms 893 using hal or udev and xorg.conf.d. If not you can learn about 894 them by studying the documentation which comes with X.Org. 895 </para> 896 897 <para> 898 The VirtualBox Guest Additions include the following drivers for 899 X.Org versions: 900 </para> 901 902 <itemizedlist> 903 904 <listitem> 905 <para> 906 X11R6.8/X11R6.9 and XFree86 version 4.3 (vboxvideo_drv_68.o 907 and vboxmouse_drv_68.o) 908 </para> 909 </listitem> 910 911 <listitem> 912 <para> 913 X11R7.0 (vboxvideo_drv_70.so and vboxmouse_drv_70.so) 914 </para> 915 </listitem> 916 917 <listitem> 918 <para> 919 X11R7.1 (vboxvideo_drv_71.so and vboxmouse_drv_71.so) 920 </para> 921 </listitem> 922 923 <listitem> 924 <para> 925 X.Org Server versions 1.3 and later (vboxvideo_drv_13.so 926 vboxmouse_drv_13.so, and later versions). 927 </para> 928 </listitem> 929 930 </itemizedlist> 931 932 <para> 933 By default these drivers can be found in the folowing directory: 934 </para> 935 936 <para> 436 937 <computeroutput>/opt/VBoxGuestAdditions-<version>/other/</computeroutput> 437 to the <computeroutput>xgreeters</computeroutput> directory, usually 438 <computeroutput>/usr/share/xgreeters/</computeroutput>. 439 Please refer to your guest OS documentation for the correct LightDM 440 greeter directory.</para> 441 442 <para>The vbox-greeter module itself already was installed by the 443 VirtualBox Guest Additions installer and resides in 444 <computeroutput>/usr/sbin/</computeroutput>. To enable vbox-greeter as 445 the standard greeter module, the file 446 <computeroutput>/etc/lightdm/lightdm.conf</computeroutput> needs to be 447 edited:</para> 448 449 <para><screen>[SeatDefaults] 450 greeter-session=vbox-greeter</screen></para> 451 452 <note><para>The LightDM server needs to be fully restarted in order to 453 get vbox-greeter used as the default greeter. As root, do a 454 <computeroutput>service lightdm --full-restart</computeroutput> on 455 Ubuntu, or simply restart the guest.</para></note> 456 457 <note><para>vbox-greeter is independent of the graphical session chosen 458 by the user (like Gnome, KDE, Unity etc). However, it requires FLTK 1.3 459 for representing its own user interface.</para></note> 460 461 <para>There are numerous guest properties which can be used to further 462 customize the login experience. For automatically logging in users, the 463 same guest properties apply as for pam_vbox, see 464 <xref linkend="autologon_unix" />.</para> 465 466 <para>In addition to the above mentioned guest properties, vbox-greeter 467 allows further customization of its user interface. These special guest 468 properties all reside in 469 <computeroutput>/VirtualBox/GuestAdd/Greeter/</computeroutput>:</para> 470 471 <orderedlist> 472 <listitem> 473 <para><computeroutput>HideRestart</computeroutput>: Set to "1" if 474 vbox-greeter should hide the button to restart the guest. This 475 property must be set read-only for the guest 476 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 477 </listitem> 478 479 <listitem> 480 <para><computeroutput>HideShutdown</computeroutput>: Set to "1" if 481 vbox-greeter should hide the button to shutdown the guest. This 482 property must be set read-only for the guest 483 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 484 </listitem> 485 486 <listitem> 487 <para><computeroutput>BannerPath</computeroutput>: Path to a .PNG 488 file for using it as a banner on the top. The image size must be 489 460 x 90 pixels, any bit depth. This property must be 490 set read-only for the guest 491 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 492 </listitem> 493 494 <listitem> 495 <para><computeroutput>UseTheming</computeroutput>: Set to "1" for 496 turning on the following theming options. This property must be 497 set read-only for the guest 498 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 499 </listitem> 500 501 <listitem> 502 <para><computeroutput>Theme/BackgroundColor</computeroutput>: 503 Hexadecimal RRGGBB color for the background. This property must be 504 set read-only for the guest 505 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 506 </listitem> 507 508 <listitem> 509 <para><computeroutput>Theme/LogonDialog/HeaderColor</computeroutput>: 510 Hexadecimal RRGGBB foreground color for the header text. This 511 property must be set read-only for the guest 512 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 513 </listitem> 514 515 <listitem> 516 <para><computeroutput>Theme/LogonDialog/BackgroundColor</computeroutput>: 517 Hexadecimal RRGGBB color for the logon dialog background. This 518 property must be set read-only for the guest 519 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 520 </listitem> 521 522 <listitem> 523 <para><computeroutput>Theme/LogonDialog/ButtonColor</computeroutput>: 524 Hexadecimal RRGGBB background color for the logon dialog button. This 525 property must be set read-only for the guest 526 (<computeroutput>RDONLYGUEST</computeroutput>).</para> 527 </listitem> 528 </orderedlist> 529 530 <note><para>The same restrictions for the guest properties above apply 531 as for the ones specified in the pam_vbox section.</para></note> 532 </sect3> 533 </sect2> 534 </sect1> 535 536 <sect1> 537 <title>Advanced configuration for Windows guests</title> 538 539 <sect2 id="sysprep"> 540 <title>Automated Windows system preparation</title> 541 542 <para>Beginning with Windows NT 4.0, Microsoft offers a "system 543 preparation" tool (in short: Sysprep) to prepare a Windows system for 544 deployment or redistribution. Whereas Windows 2000 and XP ship with 545 Sysprep on the installation medium, the tool also is available for 546 download on the Microsoft web site. In a standard installation of 547 Windows Vista and 7, Sysprep is already included. Sysprep mainly 548 consists of an executable called 549 <computeroutput>sysprep.exe</computeroutput> which is invoked by the 550 user to put the Windows installation into preparation mode.</para> 551 552 <para>Starting with VirtualBox 3.2.2, the Guest Additions offer a way to 553 launch a system preparation on the guest operating system in an 554 automated way, controlled from the host system. To achieve that, see 555 <xref linkend="guestadd-guestcontrol" /> for using the feature with the 556 special identifier <computeroutput>sysprep</computeroutput> as the 557 program to execute, along with the user name 558 <computeroutput>sysprep</computeroutput> and password 559 <computeroutput>sysprep</computeroutput> for the credentials. Sysprep 560 then gets launched with the required system rights.</para> 561 562 <note> 563 <para>Specifying the location of "sysprep.exe" is <emphasis 564 role="bold">not possible</emphasis> -- instead the following paths are 565 used (based on the operating system): <itemizedlist> 566 <listitem> 567 <para><computeroutput>C:\sysprep\sysprep.exe</computeroutput> 568 for Windows NT 4.0, 2000 and XP</para> 569 </listitem> 570 571 <listitem> 572 <para><computeroutput>%WINDIR%\System32\Sysprep\sysprep.exe</computeroutput> 573 for Windows Vista, 2008 Server and 7</para> 574 </listitem> 575 </itemizedlist> The Guest Additions will automatically use the 576 appropriate path to execute the system preparation tool.</para> 577 </note> 578 </sect2> 579 </sect1> 580 581 <sect1> 582 <title>Advanced configuration for Linux and Solaris guests</title> 583 584 <sect2> 585 <title>Manual setup of selected guest services on Linux</title> 586 587 <para>The VirtualBox Guest Additions contain several different drivers. 588 If for any reason you do not wish to set them all up, you can install 589 the Guest Additions using the following command:</para> 590 591 <screen> sh ./VBoxLinuxAdditions.run no_setup</screen> 592 593 <para>After this, you will need to at least compile the kernel modules 594 by running the command <screen> rcvboxadd setup</screen> 595 as root (you will need to replace <emphasis>lib</emphasis> by 596 <emphasis>lib64</emphasis> on some 64bit guests), and on older guests 597 without the udev service you will need to add the 598 <emphasis>vboxadd</emphasis> service to the default runlevel to ensure 599 that the modules get loaded.</para> 600 601 <para>To setup the time synchronization service, 602 add the service vboxadd-service to the default runlevel. To set up the 603 X11 and OpenGL part of the Guest Additions, run the command 604 <screen> rcvboxadd-x11 setup</screen> 605 (you do not need to enable any services for this).</para> 606 607 <para>To recompile the guest kernel modules, use this command: 608 <screen> rcvboxadd setup</screen> 609 After compilation you should reboot your guest to ensure that the new 610 modules are actually used.</para> 611 </sect2> 612 613 <sect2 id="guestxorgsetup"> 614 <title>Guest graphics and mouse driver setup in depth</title> 615 616 <para>This section assumes that you are familiar with configuring the 617 X.Org server using xorg.conf and optionally the newer mechanisms using 618 hal or udev and xorg.conf.d. If not you can learn about them by studying 619 the documentation which comes with X.Org.</para> 620 621 <para>The VirtualBox Guest Additions come with drivers for X.Org 622 versions <itemizedlist> 623 <listitem> 624 <para>X11R6.8/X11R6.9 and XFree86 version 4.3 (vboxvideo_drv_68.o and vboxmouse_drv_68.o)</para> 625 </listitem> 626 627 <listitem> 628 <para>X11R7.0 (vboxvideo_drv_70.so and vboxmouse_drv_70.so)</para> 629 </listitem> 630 631 <listitem> 632 <para>X11R7.1 (vboxvideo_drv_71.so and vboxmouse_drv_71.so)</para> 633 </listitem> 634 635 <listitem> 636 <para>X.Org Server versions 1.3 and later (vboxvideo_drv_13.so and vboxmouse_drv_13.so and so on).</para> 637 </listitem> 638 </itemizedlist> By default these drivers can be found in the 639 directory</para> 640 641 <para><computeroutput>/opt/VBoxGuestAdditions-<version>/other/</computeroutput></para> 642 643 <para>and the correct versions for the X server are symbolically linked 644 into the X.Org driver directories.</para> 645 646 <para>For graphics integration to work correctly, the X server must load 647 the vboxvideo driver (many recent X server versions look for it 648 automatically if they see that they are running in VirtualBox) and for 649 an optimal user experience the guest kernel drivers must be loaded and 650 the Guest Additions tool VBoxClient must be running as a client in the X 651 session. For mouse integration to work correctly, the guest kernel 652 drivers must be loaded and in addition, in X servers from X.Org X11R6.8 653 to X11R7.1 and in XFree86 version 4.3 the right vboxmouse driver must be 654 loaded and associated with /dev/mouse or /dev/psaux; in X.Org server 1.3 655 or later a driver for a PS/2 mouse must be loaded and the right 656 vboxmouse driver must be associated with /dev/vboxguest.</para> 657 658 <para>The VirtualBox guest graphics driver can use any graphics 659 configuration for which the virtual resolution fits into the virtual 660 video memory allocated to the virtual machine (minus a small amount used 661 by the guest driver) as described in <xref 662 linkend="settings-display" />. The driver will offer a range of standard 663 modes at least up to the default guest resolution for all active guest 664 monitors. In X.Org Server 1.3 and later the default mode can be changed 665 by setting the output property VBOX_MODE to 666 "<width>x<height>" for any guest monitor. When VBoxClient 667 and the kernel drivers are active this is done automatically when the 668 host requests a mode change. The driver for older versions can only 669 receive new modes by querying the host for requests at regular 670 intervals.</para> 671 672 <para>With pre-1.3 X Servers you can also add your own modes to the X 673 server configuration file. You simply need to add them to the "Modes" 674 list in the "Display" subsection of the "Screen" section. For example, 675 the section shown here has a custom 2048x800 resolution mode 676 added:</para> 677 678 <screen>Section "Screen" 938 </para> 939 940 <para> 941 The correct versions for the X server are symbolically linked 942 into the X.Org driver directories. 943 </para> 944 945 <para> 946 For graphics integration to work correctly, the X server must 947 load the vboxvideo driver. Many recent X server versions look 948 for it automatically if they see that they are running in 949 VirtualBox. For an optimal user experience the guest kernel 950 drivers must be loaded and the Guest Additions tool VBoxClient 951 must be running as a client in the X session. For mouse 952 integration to work correctly, the guest kernel drivers must be 953 loaded and in addition, in X servers from X.Org X11R6.8 to 954 X11R7.1 and in XFree86 version 4.3 the right vboxmouse driver 955 must be loaded and associated with /dev/mouse or /dev/psaux. In 956 X.Org server 1.3 or later a driver for a PS/2 mouse must be 957 loaded and the right vboxmouse driver must be associated with 958 /dev/vboxguest. 959 </para> 960 961 <para> 962 The VirtualBox guest graphics driver can use any graphics 963 configuration for which the virtual resolution fits into the 964 virtual video memory allocated to the virtual machine, minus a 965 small amount used by the guest driver, as described in 966 <xref 967 linkend="settings-display" />. The driver will offer 968 a range of standard modes at least up to the default guest 969 resolution for all active guest monitors. In X.Org Server 1.3 970 and later the default mode can be changed by setting the output 971 property VBOX_MODE to "<width>x<height>" for any 972 guest monitor. When VBoxClient and the kernel drivers are active 973 this is done automatically when the host requests a mode change. 974 The driver for older versions can only receive new modes by 975 querying the host for requests at regular intervals. 976 </para> 977 978 <para> 979 With pre-1.3 X Servers you can also add your own modes to the X 980 server configuration file. You simply need to add them to the 981 "Modes" list in the "Display" subsection of the "Screen" 982 section. For example, the following section has a custom 983 2048x800 resolution mode added: 984 </para> 985 986 <screen>Section "Screen" 679 987 Identifier "Default Screen" 680 988 Device "VirtualBox graphics card" … … 686 994 EndSubSection 687 995 EndSection</screen> 996 688 997 </sect2> 998 689 999 </sect1> 690 1000 691 1001 <sect1 id="cpuhotplug"> 692 <title>CPU hot-plugging</title> 693 694 <para>With virtual machines running modern server operating systems, 695 VirtualBox supports CPU hot-plugging.<footnote> 696 <para>Support for CPU hot-plugging was introduced with VirtualBox 697 3.2.</para> 698 </footnote> Whereas on a physical computer this would mean that a CPU 699 can be added or removed while the machine is running, VirtualBox supports 700 adding and removing virtual CPUs while a virtual machine is 701 running.</para> 702 703 <para>CPU hot-plugging works only with guest operating systems that 704 support it. So far this applies only to Linux and Windows Server 2008 x64 705 Data Center Edition. Windows supports only hot-add while Linux supports 706 hot-add and hot-remove but to use this feature with more than 8 CPUs a 707 64bit Linux guest is required.</para> 708 709 <para>At this time, CPU hot-plugging requires using the VBoxManage 710 command-line interface. First, hot-plugging needs to be enabled for a 711 virtual machine:<screen>VBoxManage modifyvm "VM name" --cpuhotplug on</screen></para> 712 713 <para>After that, the <computeroutput>--cpus</computeroutput> option specifies the maximum number of CPUs 714 that the virtual machine can have:<screen>VBoxManage modifyvm "VM name" --cpus 8</screen>When 715 the VM is off, you can then add and remove virtual CPUs with the 716 <computeroutput>modifyvm --plugcpu</computeroutput> and 717 <computeroutput>--unplugcpu</computeroutput> subcommands, which take the number of the 718 virtual CPU as a parameter, like this:<screen>VBoxManage modifyvm "VM name" --plugcpu 3 719 VBoxManage modifyvm "VM name" --unplugcpu 3</screen>Note that CPU 0 can never 720 be removed.</para> 721 722 <para>While the VM is running, CPUs can be added and removed with the 723 <computeroutput>controlvm plugcpu</computeroutput> and 724 <computeroutput>unplugcpu</computeroutput> commands 725 instead:<screen>VBoxManage controlvm "VM name" plugcpu 3 726 VBoxManage controlvm "VM name" unplugcpu 3</screen></para> 727 728 <para>See <xref linkend="vboxmanage-modifyvm" /> and <xref 729 linkend="vboxmanage-controlvm" /> for details.</para> 730 731 <para>With Linux guests, the following applies: To prevent ejection while 732 the CPU is still used it has to be ejected from within the guest before. 733 The Linux Guest Additions contain a service which receives hot-remove 734 events and ejects the CPU. Also, after a CPU is added to the VM it is not 735 automatically used by Linux. The Linux Guest Additions service will take 736 care of that if installed. If not a CPU can be started with the following 737 command:<screen>echo 1 > /sys/devices/system/cpu/cpu<id>/online</screen></para> 1002 1003 <title>CPU Hot-Plugging</title> 1004 1005 <para> 1006 With virtual machines running modern server operating systems, 1007 VirtualBox supports CPU hot-plugging. 1008 1009 <footnote> 1010 1011 <para> 1012 Support for CPU hot-plugging was introduced with VirtualBox 1013 3.2. 1014 </para> 1015 1016 </footnote> 1017 1018 Whereas on a physical computer this would mean that a CPU can be 1019 added or removed while the machine is running, VirtualBox supports 1020 adding and removing virtual CPUs while a virtual machine is 1021 running. 1022 </para> 1023 1024 <para> 1025 CPU hot-plugging works only with guest operating systems that 1026 support it. So far this applies only to Linux and Windows Server 1027 2008 x64 Data Center Edition. Windows supports only hot-add while 1028 Linux supports hot-add and hot-remove but to use this feature with 1029 more than 8 CPUs a 64bit Linux guest is required. 1030 </para> 1031 1032 <para> 1033 At this time, CPU hot-plugging requires using the VBoxManage 1034 command-line interface. First, hot-plugging needs to be enabled 1035 for a virtual machine: 1036 1037 <screen>VBoxManage modifyvm "VM name" --cpuhotplug on</screen> 1038 </para> 1039 1040 <para> 1041 After that, the <computeroutput>--cpus</computeroutput> option 1042 specifies the maximum number of CPUs that the virtual machine can 1043 have: 1044 1045 <screen>VBoxManage modifyvm "VM name" --cpus 8</screen> 1046 1047 When the VM is off, you can then add and remove virtual CPUs with 1048 the <computeroutput>modifyvm --plugcpu</computeroutput> and 1049 <computeroutput>--unplugcpu</computeroutput> subcommands, which 1050 take the number of the virtual CPU as a parameter, like this: 1051 1052 <screen>VBoxManage modifyvm "VM name" --plugcpu 3 1053 VBoxManage modifyvm "VM name" --unplugcpu 3</screen> 1054 1055 Note that CPU 0 can never be removed. 1056 </para> 1057 1058 <para> 1059 While the VM is running, CPUs can be added and removed with the 1060 <computeroutput>controlvm plugcpu</computeroutput> and 1061 <computeroutput>unplugcpu</computeroutput> commands instead: 1062 1063 <screen>VBoxManage controlvm "VM name" plugcpu 3 1064 VBoxManage controlvm "VM name" unplugcpu 3</screen> 1065 </para> 1066 1067 <para> 1068 See <xref linkend="vboxmanage-modifyvm" /> and 1069 <xref 1070 linkend="vboxmanage-controlvm" /> for details. 1071 </para> 1072 1073 <para> 1074 With Linux guests, the following applies: 1075 </para> 1076 1077 <para> 1078 To prevent ejection while the CPU is still used it has to be 1079 ejected from within the guest before. The Linux Guest Additions 1080 contain a service which receives hot-remove events and ejects the 1081 CPU. Also, after a CPU is added to the VM it is not automatically 1082 used by Linux. The Linux Guest Additions service will take care of 1083 that if installed. If not a CPU can be started with the following 1084 command: 1085 </para> 1086 1087 <screen>echo 1 > /sys/devices/system/cpu/cpu<id>/online</screen> 1088 738 1089 </sect1> 739 1090 740 1091 <sect1 id="pcipassthrough"> 741 <title>PCI passthrough</title> 742 743 <para>When running on Linux hosts, with a recent enough kernel (at least 744 version <computeroutput>2.6.31</computeroutput>) experimental host PCI 745 devices passthrough is available.<footnote> 746 <para>Experimental support for PCI passthrough was introduced with 747 VirtualBox 4.1.</para> 748 </footnote></para> 1092 1093 <title>PCI Passthrough</title> 1094 1095 <para> 1096 When running on Linux hosts, with a recent enough kernel, at least 1097 version <computeroutput>2.6.31</computeroutput>, experimental host 1098 PCI devices passthrough is available. 1099 1100 <footnote> 1101 1102 <para> 1103 Experimental support for PCI passthrough was introduced with 1104 VirtualBox 4.1. 1105 </para> 1106 1107 </footnote> 1108 </para> 749 1109 750 1110 <note> 751 <para>The PCI passthrough module is shipped as a VirtualBox extension 752 package, which must be installed separately. See <xref 753 linkend="intro-installing" /> for more information.</para> 1111 <para> 1112 The PCI passthrough module is shipped as a VirtualBox extension 1113 package, which must be installed separately. See 1114 <xref 1115 linkend="intro-installing" />. 1116 </para> 754 1117 </note> 755 1118 756 <para>Essentially this feature allows to directly use physical PCI devices 757 on the host by the guest even if host doesn't have drivers for this 758 particular device. Both, regular PCI and some PCI Express cards, are 759 supported. AGP and certain PCI Express cards are not supported at the 760 moment if they rely on GART (Graphics Address Remapping Table) unit 761 programming for texture management as it does rather non-trivial operations 762 with pages remapping interfering with IOMMU. This limitation may be lifted 763 in future releases.</para> 764 765 <para>To be fully functional, PCI passthrough support in VirtualBox 766 depends upon an IOMMU hardware unit which is not yet too widely available. 767 If the device uses bus mastering (i.e. it performs DMA to the OS memory on 768 its own), then an IOMMU is required, otherwise such DMA transactions may 769 write to the wrong physical memory address as the device DMA engine is 770 programmed using a device-specific protocol to perform memory 771 transactions. The IOMMU functions as translation unit mapping physical 772 memory access requests from the device using knowledge of the guest 773 physical address to host physical addresses translation rules.</para> 774 775 <para>Intel's solution for IOMMU is marketed as "Intel Virtualization 776 Technology for Directed I/O" (VT-d), and AMD's one is called AMD-Vi. So 777 please check if your motherboard datasheet has appropriate technology. 778 Even if your hardware doesn't have a IOMMU, certain PCI cards may work 779 (such as serial PCI adapters), but the guest will show a warning on boot 780 and the VM execution will terminate if the guest driver will attempt to 781 enable card bus mastering.</para> 782 783 <para>It is very common that the BIOS or the host OS disables the IOMMU by 784 default. So before any attempt to use it please make sure that 785 <orderedlist> 786 <listitem> 787 <para>Your motherboard has an IOMMU unit.</para> 788 </listitem> 789 790 <listitem> 791 <para>Your CPU supports the IOMMU.</para> 792 </listitem> 793 794 <listitem> 795 <para>The IOMMU is enabled in the BIOS.</para> 796 </listitem> 797 798 <listitem> 799 <para>The VM must run with VT-x/AMD-V and nested paging 800 enabled.</para> 801 </listitem> 802 803 <listitem> 804 <para>Your Linux kernel was compiled with IOMMU support (including 805 DMA remapping, see <computeroutput>CONFIG_DMAR</computeroutput> 806 kernel compilation option). The PCI stub driver 807 (<computeroutput>CONFIG_PCI_STUB</computeroutput>) is required as 808 well.</para> 809 </listitem> 810 811 <listitem> 812 <para>Your Linux kernel recognizes and uses the IOMMU unit 813 (<computeroutput>intel_iommu=on</computeroutput> boot option could 814 be needed). Search for DMAR and PCI-DMA in kernel boot log.</para> 815 </listitem> 816 </orderedlist></para> 817 818 <para>Once you made sure that the host kernel supports the IOMMU, the next 819 step is to select the PCI card and attach it to the guest. To figure out 820 the list of available PCI devices, use the 821 <computeroutput>lspci</computeroutput> command. The output will look like 822 this:</para> 823 <screen>01:00.0 VGA compatible controller: ATI Technologies Inc Cedar PRO [Radeon HD 5450] 1119 <para> 1120 Essentially this feature allows a guest to directly use physical 1121 PCI devices on the host, even if host does not have drivers for 1122 this particular device. Both, regular PCI and some PCI Express 1123 cards, are supported. AGP and certain PCI Express cards are not 1124 supported at the moment if they rely on Graphics Address Remapping 1125 Table (GART) unit programming for texture management as it does 1126 rather non-trivial operations with pages remapping interfering 1127 with IOMMU. This limitation may be lifted in future releases. 1128 </para> 1129 1130 <para> 1131 To be fully functional, PCI passthrough support in VirtualBox 1132 depends upon an IOMMU hardware unit which is not yet too widely 1133 available. If the device uses bus mastering, for example it 1134 performs DMA to the OS memory on its own, then an IOMMU is 1135 required. Otherwise such DMA transactions may write to the wrong 1136 physical memory address as the device DMA engine is programmed 1137 using a device-specific protocol to perform memory transactions. 1138 The IOMMU functions as translation unit mapping physical memory 1139 access requests from the device using knowledge of the guest 1140 physical address to host physical addresses translation rules. 1141 </para> 1142 1143 <para> 1144 Intel's solution for IOMMU is called Intel Virtualization 1145 Technology for Directed I/O (VT-d), and AMD's solution is called 1146 AMD-Vi. Check your motherboard datasheet for the appropriate 1147 technology. Even if your hardware does not have a IOMMU, certain 1148 PCI cards may work, such as serial PCI adapters, but the guest 1149 will show a warning on boot and the VM execution will terminate if 1150 the guest driver will attempt to enable card bus mastering. 1151 </para> 1152 1153 <para> 1154 It is very common that the BIOS or the host OS disables the IOMMU 1155 by default. So before any attempt to use it please make sure that 1156 the following apply: 1157 </para> 1158 1159 <itemizedlist> 1160 1161 <listitem> 1162 <para> 1163 Your motherboard has an IOMMU unit. 1164 </para> 1165 </listitem> 1166 1167 <listitem> 1168 <para> 1169 Your CPU supports the IOMMU. 1170 </para> 1171 </listitem> 1172 1173 <listitem> 1174 <para> 1175 The IOMMU is enabled in the BIOS. 1176 </para> 1177 </listitem> 1178 1179 <listitem> 1180 <para> 1181 The VM must run with VT-x/AMD-V and nested paging enabled. 1182 </para> 1183 </listitem> 1184 1185 <listitem> 1186 <para> 1187 Your Linux kernel was compiled with IOMMU support, including 1188 DMA remapping. See the 1189 <computeroutput>CONFIG_DMAR</computeroutput> kernel 1190 compilation option. The PCI stub driver 1191 (<computeroutput>CONFIG_PCI_STUB</computeroutput>) is required 1192 as well. 1193 </para> 1194 </listitem> 1195 1196 <listitem> 1197 <para> 1198 Your Linux kernel recognizes and uses the IOMMU unit. The 1199 <computeroutput>intel_iommu=on</computeroutput> boot option 1200 could be needed. Search for DMAR and PCI-DMA in kernel boot 1201 log. 1202 </para> 1203 </listitem> 1204 1205 </itemizedlist> 1206 1207 <para> 1208 Once you made sure that the host kernel supports the IOMMU, the 1209 next step is to select the PCI card and attach it to the guest. To 1210 figure out the list of available PCI devices, use the 1211 <computeroutput>lspci</computeroutput> command. The output will 1212 look as follows: 1213 </para> 1214 1215 <screen>01:00.0 VGA compatible controller: ATI Technologies Inc Cedar PRO [Radeon HD 5450] 824 1216 01:00.1 Audio device: ATI Technologies Inc Manhattan HDMI Audio [Mobility Radeon HD 5000 Series] 825 1217 02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit … … 828 1220 03:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03) 829 1221 06:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 8500 GT] (rev a1)</screen> 830 <para>The first column is a PCI address (in format 831 <computeroutput>bus:device.function</computeroutput>). This address could 832 be used to identify the device for further operations. For example, to 833 attach a PCI network controller on the system listed above to the second 834 PCI bus in the guest, as device 5, function 0, use the following command: 835 <screen>VBoxManage modifyvm "VM name" --pciattach 02:00.0@01:05.0</screen> 836 To detach same device, use <screen>VBoxManage modifyvm "VM name" --pcidetach 02:00.0</screen> 837 Please note that both host and guest could freely assign a different PCI 838 address to the card attached during runtime, so those addresses only apply 839 to the address of the card at the moment of attachment (host), and during 840 BIOS PCI init (guest).</para> 841 842 <para>If the virtual machine has a PCI device attached, certain 843 limitations apply: <orderedlist> 1222 1223 <para> 1224 The first column is a PCI address, in the format 1225 <computeroutput>bus:device.function</computeroutput>. This address 1226 could be used to identify the device for further operations. For 1227 example, to attach a PCI network controller on the system listed 1228 above to the second PCI bus in the guest, as device 5, function 0, 1229 use the following command: 1230 </para> 1231 1232 <screen>VBoxManage modifyvm "VM name" --pciattach 02:00.0@01:05.0</screen> 1233 1234 <para> 1235 To detach the same device, use: 1236 </para> 1237 1238 <screen>VBoxManage modifyvm "VM name" --pcidetach 02:00.0</screen> 1239 1240 <para> 1241 Please note that both host and guest could freely assign a 1242 different PCI address to the card attached during runtime, so 1243 those addresses only apply to the address of the card at the 1244 moment of attachment (host), and during BIOS PCI init (guest). 1245 </para> 1246 1247 <para> 1248 If the virtual machine has a PCI device attached, certain 1249 limitations apply: 1250 </para> 1251 1252 <itemizedlist> 1253 1254 <listitem> 1255 <para> 1256 Only PCI cards with non-shared interrupts, such as those using 1257 MSI on the host, are supported at the moment. 1258 </para> 1259 </listitem> 1260 1261 <listitem> 1262 <para> 1263 No guest state can be reliably saved or restored. The internal 1264 state of the PCI card cannot be retrieved. 1265 </para> 1266 </listitem> 1267 1268 <listitem> 1269 <para> 1270 Teleportation, also called live migration, does not work. The 1271 internal state of the PCI card cannot be retrieved. 1272 </para> 1273 </listitem> 1274 1275 <listitem> 1276 <para> 1277 No lazy physical memory allocation. The host will preallocate 1278 the whole RAM required for the VM on startup, as we cannot 1279 catch physical hardware accesses to the physical memory. 1280 </para> 1281 </listitem> 1282 1283 </itemizedlist> 1284 1285 </sect1> 1286 1287 <sect1 id="webcam-passthrough"> 1288 1289 <title>Webcam Passthrough</title> 1290 1291 <sect2 id="webcam-using-guest"> 1292 1293 <title>Using a Host Webcam in the Guest</title> 1294 1295 <para> 1296 VirtualBox 4.3 includes an experimental feature which allows a 1297 guest to use a host webcam. This complements the general USB 1298 passthrough support which was the typical way of using host 1299 webcams in earlier versions. The webcam passthrough support can 1300 handle non-USB video sources in theory, but this is completely 1301 untested. 1302 </para> 1303 1304 <note> 1305 <para> 1306 The webcam passthrough module is shipped as part of the Oracle 1307 VM VirtualBox extension pack, which must be installed 1308 separately. See <xref 1309 linkend="intro-installing" />. 1310 </para> 1311 </note> 1312 1313 <para> 1314 The host webcam can be attached to the VM using Devices menu in 1315 the VM menu bar. The Webcams menu contains a list of available 1316 video input devices on the host. Clicking on a webcam name 1317 attaches or detaches the corresponding host device. 1318 </para> 1319 1320 <para> 1321 The VBoxManage command line tool can be used to enable webcam 1322 passthrough. Please see the host-specific sections below for 1323 additional details. The following commands are available: 1324 </para> 1325 1326 <itemizedlist> 1327 844 1328 <listitem> 845 <para>Only PCI cards with non-shared interrupts (such as using MSI on host) are supported at the moment.</para> 1329 <para> 1330 Get a list of host webcams, or other video input devices: 1331 </para> 1332 1333 <screen>VBoxManage list webcams</screen> 1334 1335 <para> 1336 The output format is as follows: 1337 </para> 1338 1339 <screen>alias "user friendly name" 1340 host path or identifier</screen> 1341 1342 <para> 1343 The alias can be used as a shortcut in other commands. Alias 1344 '.0' means the default video input device on the host. Alias 1345 '.1', '.2'means first, second video input device, and so on. 1346 The device order is host-specific. 1347 </para> 846 1348 </listitem> 847 1349 848 1350 <listitem> 849 <para>No guest state can be reliably saved/restored (as the internal state of the PCI card could not be retrieved).</para> 1351 <para> 1352 Attach a webcam to a running VM: 1353 1354 <screen>VBoxManage controlvm "VM name" webcam attach [host_path|alias [settings]]</screen> 1355 1356 This will attach a USB webcam device to the guest. 1357 </para> 1358 1359 <para> 1360 The <computeroutput>settings</computeroutput> parameter is a 1361 string 1362 <computeroutput>Setting1=Value1;Setting2=Value2</computeroutput>, 1363 which enables you to configure the emulated webcam device. 1364 The following settings are supported: 1365 </para> 1366 1367 <itemizedlist> 1368 1369 <listitem> 1370 <para> 1371 <computeroutput>MaxFramerate</computeroutput>: The 1372 highest rate at which video frames are sent to the 1373 guest. A higher frame rate requires more CPU power. 1374 Therefore sometimes it is useful to set a lower limit. 1375 Default is no limit and allow the guest to use all frame 1376 rates supported by the host webcam. 1377 </para> 1378 </listitem> 1379 1380 <listitem> 1381 <para> 1382 <computeroutput>MaxPayloadTransferSize</computeroutput>: 1383 How many bytes the emulated webcam can send to the guest 1384 at a time. Default value is 3060 bytes, which is used by 1385 some webcams. Higher values can slightly reduce CPU 1386 load, if the guest is able to use larger buffers. 1387 However, a high 1388 <computeroutput>MaxPayloadTransferSize</computeroutput> 1389 might be not supported by some guests. 1390 </para> 1391 </listitem> 1392 1393 </itemizedlist> 850 1394 </listitem> 851 1395 852 1396 <listitem> 853 <para>Teleportation (live migration) doesn't work (for the same reason).</para> 1397 <para> 1398 Detach a webcam from a running VM: 1399 1400 <screen>VBoxManage controlvm "VM name" webcam detach [host_path|alias]</screen> 1401 </para> 854 1402 </listitem> 855 1403 856 1404 <listitem> 857 <para>No lazy physical memory allocation. The host will preallocate the whole RAM required for the VM on startup 858 (as we cannot catch physical hardware accesses to the physical memory).</para> 1405 <para> 1406 List the webcams attached to a running VM: 1407 1408 <screen>VBoxManage controlvm "VM name" webcam list</screen> 1409 1410 The output contains the path or alias which was used in the 1411 <computeroutput>webcam attach</computeroutput> command for 1412 each attached webcam. 1413 </para> 859 1414 </listitem> 860 </orderedlist></para> 1415 1416 </itemizedlist> 1417 1418 </sect2> 1419 1420 <sect2 id="webcam-win-hosts"> 1421 1422 <title>Windows Hosts</title> 1423 1424 <para> 1425 When the webcam device is detached from the host, the emulated 1426 webcam device is automatically detached from the guest. 1427 </para> 1428 1429 </sect2> 1430 1431 <sect2 id="webcam-mac-hosts"> 1432 1433 <title>Mac OS X Hosts</title> 1434 1435 <para> 1436 OS X version 10.9 or later is required. 1437 </para> 1438 1439 <para> 1440 When the webcam device is detached from the host, the emulated 1441 webcam device remains attached to the guest and must be manually 1442 detached using the <computeroutput>VBoxManage controlvm "VM 1443 name" webcam detach ...</computeroutput> command. 1444 </para> 1445 1446 </sect2> 1447 1448 <sect2 id="webcam-linux-hosts"> 1449 1450 <title>Linux and Solaris Hosts</title> 1451 1452 <para> 1453 When the webcam is detached from the host the emulated webcam 1454 device is automatically detached from the guest only if the 1455 webcam is streaming video. If the emulated webcam is inactive it 1456 should be manually detached using the <computeroutput>VBoxManage 1457 controlvm "VM name" webcam detach ...</computeroutput> command. 1458 </para> 1459 1460 <para> 1461 Aliases <computeroutput>.0</computeroutput> and 1462 <computeroutput>.1</computeroutput> are mapped to 1463 <computeroutput>/dev/video0</computeroutput>, alias 1464 <computeroutput>.2</computeroutput> is mapped to 1465 <computeroutput>/dev/video1</computeroutput> and so forth. 1466 </para> 1467 1468 </sect2> 1469 861 1470 </sect1> 862 1471 863 <sect1> 864 <title>Webcam passthrough</title> 865 866 <sect2 id="webcam-passthrough"> 867 <title>Using a host webcam in the guest</title> 868 869 <para>VirtualBox 4.3 includes an experimental feature which allows a guest to use 870 a host webcam. This complements the general USB passthrough support which was the 871 typical way of using host webcams in earlier versions. The webcam passthrough support 872 can handle non-USB video sources in theory, but this is completely untested.</para> 873 874 <note> 875 <para>The webcam passthrough module is shipped as part of the Oracle VM VirtualBox 876 extension pack, which must be installed separately. See <xref 877 linkend="intro-installing" /> for more information.</para> 878 </note> 879 880 <para>The host webcam can be attached to the VM using "Devices" menu in the VM menu bar. 881 The "Webcams" menu contains a list of available video input devices on the host. 882 Clicking on a webcam name attaches or detaches the corresponding host device.</para> 883 884 <para>The VBoxManage command line tool can be used to enable webcam passthrough. 885 Please see the host-specific sections below for additional details. 886 The following commands are available: 887 <itemizedlist> 888 <listitem><para>Get a list of host webcams (or other video input devices): 889 <screen>VBoxManage list webcams</screen> 890 The output format: 891 <screen>alias "user friendly name" 892 host path or identifier</screen> 893 The alias can be used as a shortcut in other commands. Alias '.0' means 894 default video input device on the host, '.1', '.2', etc mean first, second, etc 895 video input device. The device order is host-specific. 896 </para></listitem> 897 <listitem><para>Attach a webcam to a running VM: 898 <screen>VBoxManage controlvm "VM name" webcam attach [host_path|alias [settings]]</screen> 899 This will attach a USB webcam device to the guest.</para> 900 901 <para>The <computeroutput>settings</computeroutput> parameter is a string 902 <computeroutput>Setting1=Value1;Setting2=Value2</computeroutput>, which allows to 903 configure the emulated webcam device. The following settings are supported: 904 <itemizedlist> 905 <listitem> 906 <para><computeroutput>MaxFramerate</computeroutput> The highest rate at which video frames 907 are sent to the guest. A higher frame rate requires more CPU power. Therefore sometimes 908 it is useful to set a lower limit. Default is no limit and allow the guest to use all 909 frame rates supported by the host webcam.</para> 910 </listitem> 911 <listitem> 912 <para><computeroutput>MaxPayloadTransferSize</computeroutput> How many bytes the emulated 913 webcam can send to the guest at a time. Default value is 3060 bytes, which is used by 914 some webcams. Higher values can slightly reduce CPU load, if the guest is able to use 915 larger buffers. However, a high <computeroutput>MaxPayloadTransferSize</computeroutput> 916 might be not supported by some guests.</para> 917 </listitem> 918 </itemizedlist> 919 </para></listitem> 920 <listitem><para>Detach a webcam from a running VM: 921 <screen>VBoxManage controlvm "VM name" webcam detach [host_path|alias]</screen> 922 </para></listitem> 923 <listitem><para>List webcams attached to a running VM: 924 <screen>VBoxManage controlvm "VM name" webcam list</screen> 925 The output contains path or alias which was used in 'webcam attach' command for 926 each attached webcam. 927 </para></listitem> 928 </itemizedlist> 929 </para> 1472 <sect1 id="adv-display-config"> 1473 1474 <title>Advanced Display Configuration</title> 1475 1476 <sect2 id="customvesa"> 1477 1478 <title>Custom VESA Resolutions</title> 1479 1480 <para> 1481 Apart from the standard VESA resolutions, the VirtualBox VESA 1482 BIOS allows you to add up to 16 custom video modes which will be 1483 reported to the guest operating system. When using Windows 1484 guests with the VirtualBox Guest Additions, a custom graphics 1485 driver will be used instead of the fallback VESA solution so 1486 this information does not apply. 1487 </para> 1488 1489 <para> 1490 Additional video modes can be configured for each VM using the 1491 extra data facility. The extra data key is called 1492 <literal>CustomVideoMode<x></literal> with 1493 <literal>x</literal> being a number from 1 to 16. Please note 1494 that modes will be read from 1 until either the following number 1495 is not defined or 16 is reached. The following example adds a 1496 video mode that corresponds to the native display resolution of 1497 many notebook computers: 1498 </para> 1499 1500 <screen>VBoxManage setextradata "VM name" "CustomVideoMode1" "1400x1050x16"</screen> 1501 1502 <para> 1503 The VESA mode IDs for custom video modes start at 1504 <literal>0x160</literal>. In order to use the above defined 1505 custom video mode, the following command line has be supplied to 1506 Linux: 1507 </para> 1508 1509 <screen>vga = 0x200 | 0x160 1510 vga = 864</screen> 1511 1512 <para> 1513 For guest operating systems with VirtualBox Guest Additions, a 1514 custom video mode can be set using the video mode hint feature. 1515 </para> 1516 930 1517 </sect2> 931 1518 932 <sect2> 933 <title>Windows hosts</title> 934 935 <para>When the webcam device is detached from the host, the emulated webcam device is 936 automatically detached from the guest.</para> 1519 <sect2 id="max-resolution-guests"> 1520 1521 <title>Configuring the Maximum Resolution of Guests When Using the Graphical 1522 Frontend</title> 1523 1524 <para> 1525 When guest systems with the Guest Additions installed are 1526 started using the graphical frontend, the normal VirtualBox 1527 application, they will not be allowed to use screen resolutions 1528 greater than the host's screen size unless the user manually 1529 resizes them by dragging the window, switching to full screen or 1530 seamless mode or sending a video mode hint using VBoxManage. 1531 This behavior is what most users will want, but if you have 1532 different needs, it is possible to change it by issuing one of 1533 the following commands from the command line: 1534 </para> 1535 1536 <screen>VBoxManage setextradata global GUI/MaxGuestResolution any</screen> 1537 1538 <para> 1539 will remove all limits on guest resolutions. 1540 </para> 1541 1542 <screen>VBoxManage setextradata global GUI/MaxGuestResolution >width,height<</screen> 1543 1544 <para> 1545 manually specifies a maximum resolution. 1546 </para> 1547 1548 <screen>VBoxManage setextradata global GUI/MaxGuestResolution auto</screen> 1549 1550 <para> 1551 restores the default settings. Note that these settings apply 1552 globally to all guest systems, not just to a single machine. 1553 </para> 1554 937 1555 </sect2> 938 1556 939 <sect2> 940 <title>Mac OS X hosts</title> 941 942 <para>OS X version 10.9 or newer is required.</para> 943 944 <para>When the webcam device is detached from the host, the emulated webcam device 945 remains attached to the guest and must be manually detached using the 946 <computeroutput>VBoxManage controlvm "VM name" webcam detach ...</computeroutput> command.</para> 1557 </sect1> 1558 1559 <sect1 id="adv-storage-config"> 1560 1561 <title>Advanced Storage Configuration</title> 1562 1563 <sect2 id="rawdisk"> 1564 1565 <title>Using a Raw Host Hard Disk From a Guest</title> 1566 1567 <para> 1568 Starting with version 1.4, as an alternative to using virtual 1569 disk images as described in <xref linkend="storage" />, 1570 VirtualBox can also present either entire physical hard disks or 1571 selected partitions as virtual disks to virtual machines. 1572 </para> 1573 1574 <para> 1575 With VirtualBox, this type of access is called <emphasis>raw 1576 hard disk access</emphasis>. It allows a guest operating system 1577 to access its virtual hard disk without going through the host 1578 OS file system. The actual performance difference for image 1579 files vs. raw disk varies greatly depending on the overhead of 1580 the host file system, whether dynamically growing images are 1581 used, and on host OS caching strategies. The caching indirectly 1582 also affects other aspects such as failure behavior. For 1583 example, whether the virtual disk contains all data written 1584 before a host OS crash. Consult your host OS documentation for 1585 details on this. 1586 </para> 1587 1588 <warning> 1589 <para> 1590 Raw hard disk access is for expert users only. Incorrect use 1591 or use of an outdated configuration can lead to 1592 <emphasis 1593 role="bold">total loss of data 1594 </emphasis>on the physical disk. Most importantly, 1595 <emphasis>do not</emphasis> attempt to boot the partition with 1596 the currently running host operating system in a guest. This 1597 will lead to severe data corruption. 1598 </para> 1599 </warning> 1600 1601 <para> 1602 Raw hard disk access, both for entire disks and individual 1603 partitions, is implemented as part of the VMDK image format 1604 support. As a result, you will need to create a special VMDK 1605 image file which defines where the data will be stored. After 1606 creating such a special VMDK image, you can use it like a 1607 regular virtual disk image. For example, you can use the 1608 VirtualBox Manager, see <xref linkend="vdis" />, or 1609 <computeroutput>VBoxManage</computeroutput> to assign the image 1610 to a virtual machine. 1611 </para> 1612 1613 <sect3 id="rawdisk-access-entire-physical-disk"> 1614 1615 <title>Access to Entire Physical Hard Disk</title> 1616 1617 <para> 1618 While this variant is the simplest to set up, you must be 1619 aware that this will give a guest operating system direct and 1620 full access to an <emphasis>entire physical disk</emphasis>. 1621 If your <emphasis>host</emphasis> operating system is also 1622 booted from this disk, please take special care to not access 1623 the partition from the guest at all. On the positive side, the 1624 physical disk can be repartitioned in arbitrary ways without 1625 having to recreate the image file that gives access to the raw 1626 disk. 1627 </para> 1628 1629 <para> 1630 On a Linux host, to create an image that represents an entire 1631 physical hard disk which will not contain any actual data, as 1632 this will all be stored on the physical disk, use the command 1633 1634 <screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk 1635 -rawdisk /dev/sda</screen> 1636 1637 This creates the image <code>/path/to/file.vmdk</code>, which 1638 must be an absolute path. All data will be read and written 1639 from <code>/dev/sda</code>. 1640 </para> 1641 1642 <para> 1643 On a Windows host, instead of the above device specification, 1644 use e.g. <code>\\.\PhysicalDrive0</code>. On a Mac OS X host, 1645 instead of the above device specification use e.g. 1646 <code>/dev/disk1</code>. Note that on OS X you can only get 1647 access to an entire disk if no volume is mounted from it. 1648 </para> 1649 1650 <para> 1651 Creating the image requires read/write access for the given 1652 device. Read/write access is also later needed when using the 1653 image from a virtual machine. On some host platforms, such as 1654 Windows Vista and later, raw disk access may be restricted and 1655 not permitted by the host OS in some situations. 1656 </para> 1657 1658 <para> 1659 Just like with regular disk images, this does not 1660 automatically attach the newly created image to a virtual 1661 machine. This can be done as follows: 1662 1663 <screen>VBoxManage storageattach WindowsXP --storagectl "IDE Controller" 1664 --port 0 --device 0 --type hdd --medium /path/to/file.vmdk</screen> 1665 1666 When this is done the selected virtual machine will boot from 1667 the specified physical disk. 1668 </para> 1669 1670 </sect3> 1671 1672 <sect3 id="rawdisk-access-disk-partitions"> 1673 1674 <title>Access to Individual Physical Hard Disk Partitions</title> 1675 1676 <para> 1677 This <emphasis>raw partition support</emphasis> is quite 1678 similar to the full hard disk access described above. However, 1679 in this case, any partitioning information will be stored 1680 inside the VMDK image. This means that you can install a 1681 different boot loader in the virtual hard disk without 1682 affecting the host's partitioning information. While the guest 1683 will be able to <emphasis>see</emphasis> all partitions that 1684 exist on the physical disk, access will be filtered in that 1685 reading from partitions for which no access is allowed the 1686 partitions will only yield zeroes, and all writes to them are 1687 ignored. 1688 </para> 1689 1690 <para> 1691 To create a special image for raw partition support, which 1692 will contain a small amount of data, on a Linux host, use the 1693 command: 1694 </para> 1695 1696 <screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk 1697 -rawdisk /dev/sda -partitions 1,5</screen> 1698 1699 <para> 1700 The command is identical to the one for full hard disk access, 1701 except for the additional 1702 <computeroutput>-partitions</computeroutput> parameter. This 1703 example would create the image <code>/path/to/file.vmdk</code> 1704 (which, again, must be absolute), and partitions 1 and 5 of 1705 <code>/dev/sda</code> would be made accessible to the guest. 1706 </para> 1707 1708 <para> 1709 VirtualBox uses the same partition numbering as your Linux 1710 host. As a result, the numbers given in the above example 1711 would refer to the first primary partition and the first 1712 logical drive in the extended partition, respectively. 1713 </para> 1714 1715 <para> 1716 On a Windows host, instead of the above device specification, 1717 use e.g. <code>\\.\PhysicalDrive0</code>. On a Mac OS X host, 1718 instead of the above device specification use 1719 <code>/dev/disk1</code>, for example. Note that on OS X you 1720 can only use partitions which are not mounted. Eject the 1721 respective volume first. Partition numbers are the same on 1722 Linux, Windows, and Mac OS X hosts. 1723 </para> 1724 1725 <para> 1726 The numbers for the list of partitions can be taken from the 1727 output of 1728 1729 <screen>VBoxManage internalcommands listpartitions -rawdisk /dev/sda</screen> 1730 1731 The output lists the partition types and sizes to give the 1732 user enough information to identify the partitions necessary 1733 for the guest. 1734 </para> 1735 1736 <para> 1737 Images which give access to individual partitions are specific 1738 to a particular host disk setup. You cannot transfer these 1739 images to another host. Also, whenever the host partitioning 1740 changes, the image <emphasis>must be recreated</emphasis>. 1741 </para> 1742 1743 <para> 1744 Creating the image requires read/write access for the given 1745 device. Read/write access is also later needed when using the 1746 image from a virtual machine. If this is not feasible, there 1747 is a special variant for raw partition access, currently only 1748 available on Linux hosts, that avoids having to give the 1749 current user access to the entire disk. To set up such an 1750 image, use: 1751 </para> 1752 1753 <screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk 1754 -rawdisk /dev/sda -partitions 1,5 -relative</screen> 1755 1756 <para> 1757 When used from a virtual machine, the image will then refer 1758 not to the entire disk, but only to the individual partitions. 1759 In this example, <code>/dev/sda1</code> and 1760 <code>/dev/sda5</code>. As a consequence, read/write access is 1761 only required for the affected partitions, not for the entire 1762 disk. During creation however, read-only access to the entire 1763 disk is required to obtain the partitioning information. 1764 </para> 1765 1766 <para> 1767 In some configurations it may be necessary to change the MBR 1768 code of the created image. For example, to replace the Linux 1769 boot loader that is used on the host by another boot loader. 1770 This allows for example the guest to boot directly to Windows, 1771 while the host boots Linux from the "same" disk. For this 1772 purpose the <computeroutput>-mbr</computeroutput> parameter is 1773 provided. It specifies a file name from which to take the MBR 1774 code. The partition table is not modified at all, so a MBR 1775 file from a system with totally different partitioning can be 1776 used. An example of this is: 1777 </para> 1778 1779 <screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk 1780 -rawdisk /dev/sda -partitions 1,5 -mbr winxp.mbr</screen> 1781 1782 <para> 1783 The modified MBR will be stored inside the image, not on the 1784 host disk. 1785 </para> 1786 1787 <para> 1788 The created image can be attached to a storage controller in a 1789 VM configuration as usual. 1790 </para> 1791 1792 </sect3> 1793 947 1794 </sect2> 948 1795 949 <sect2>950 <title>Linux and Solaris hosts</title>951 952 <para>When the webcam is detached from the host the emulated webcam device is953 automatically detached from the guest only if the webcam is streaming video.954 If the emulated webcam is inactive it should be manually detached using the955 <computeroutput>VBoxManage controlvm "VM name" webcam detach ...</computeroutput> command.</para>956 957 <para>Aliases <computeroutput>.0</computeroutput> and <computeroutput>.1</computeroutput> are mapped958 to <computeroutput>/dev/video0</computeroutput>, alias <computeroutput>.2</computeroutput> is mapped959 to <computeroutput>/dev/video1</computeroutput> and so forth.</para>960 </sect2>961 </sect1>962 963 <sect1>964 <title>Advanced display configuration</title>965 966 <sect2 id="customvesa">967 <title>Custom VESA resolutions</title>968 969 <para>Apart from the standard VESA resolutions, the VirtualBox VESA BIOS970 allows you to add up to 16 custom video modes which will be reported to971 the guest operating system. When using Windows guests with the972 VirtualBox Guest Additions, a custom graphics driver will be used973 instead of the fallback VESA solution so this information does not974 apply.</para>975 976 <para>Additional video modes can be configured for each VM using the977 extra data facility. The extra data key is called978 <literal>CustomVideoMode<x></literal> with <literal>x</literal>979 being a number from 1 to 16. Please note that modes will be read from 1980 until either the following number is not defined or 16 is reached. The981 following example adds a video mode that corresponds to the native982 display resolution of many notebook computers:</para>983 984 <screen>VBoxManage setextradata "VM name" "CustomVideoMode1" "1400x1050x16"</screen>985 986 <para>The VESA mode IDs for custom video modes start at987 <literal>0x160</literal>. In order to use the above defined custom video988 mode, the following command line has be supplied to Linux:</para>989 990 <screen>vga = 0x200 | 0x160991 vga = 864</screen>992 993 <para>For guest operating systems with VirtualBox Guest Additions, a994 custom video mode can be set using the video mode hint feature.</para>995 </sect2>996 997 <sect2>998 <title>Configuring the maximum resolution of guests when using the999 graphical frontend</title>1000 1001 <para>When guest systems with the Guest Additions installed are started1002 using the graphical frontend (the normal VirtualBox application), they1003 will not be allowed to use screen resolutions greater than the host's1004 screen size unless the user manually resizes them by dragging the1005 window, switching to full screen or seamless mode or sending a video mode1006 hint using VBoxManage. This behavior is what most users will want, but1007 if you have different needs, it is possible to change it by issuing one1008 of the following commands from the command line:</para>1009 1010 <screen>VBoxManage setextradata global GUI/MaxGuestResolution any</screen>1011 1012 <para>will remove all limits on guest resolutions.</para>1013 1014 <screen>VBoxManage setextradata global GUI/MaxGuestResolution >width,height<</screen>1015 1016 <para>manually specifies a maximum resolution.</para>1017 1018 <screen>VBoxManage setextradata global GUI/MaxGuestResolution auto</screen>1019 1020 <para>restores the default settings. Note that these settings apply1021 globally to all guest systems, not just to a single machine.</para>1022 </sect2>1023 </sect1>1024 1025 <sect1>1026 <title>Advanced storage configuration</title>1027 1028 <sect2 id="rawdisk">1029 <title>Using a raw host hard disk from a guest</title>1030 1031 <para>Starting with version 1.4, as an alternative to using virtual disk1032 images (as described in detail in <xref linkend="storage" />),1033 VirtualBox can also present either entire physical hard disks or1034 selected partitions thereof as virtual disks to virtual machines.</para>1035 1036 <para>With VirtualBox, this type of access is called "raw hard disk1037 access"; it allows a guest operating system to access its virtual hard1038 disk without going through the host OS file system. The actual1039 performance difference for image files vs. raw disk varies greatly1040 depending on the overhead of the host file system, whether dynamically1041 growing images are used, and on host OS caching strategies. The caching1042 indirectly also affects other aspects such as failure behavior, i.e.1043 whether the virtual disk contains all data written before a host OS1044 crash. Consult your host OS documentation for details on this.</para>1045 1046 <para><warning>1047 <para>Raw hard disk access is for expert users only. Incorrect use1048 or use of an outdated configuration can lead to <emphasis1049 role="bold">total loss of data </emphasis>on the physical disk. Most1050 importantly, <emphasis>do not</emphasis> attempt to boot the1051 partition with the currently running host operating system in a1052 guest. This will lead to severe data corruption.</para>1053 </warning></para>1054 1055 <para>Raw hard disk access -- both for entire disks and individual1056 partitions -- is implemented as part of the VMDK image format support.1057 As a result, you will need to create a special VMDK image file which1058 defines where the data will be stored. After creating such a special1059 VMDK image, you can use it like a regular virtual disk image. For1060 example, you can use the VirtualBox Manager (<xref linkend="vdis" />)1061 or <computeroutput>VBoxManage</computeroutput> to assign the image to a1062 virtual machine.</para>1063 1064 <sect3>1065 <title>Access to entire physical hard disk</title>1066 1067 <para>While this variant is the simplest to set up, you must be aware1068 that this will give a guest operating system direct and full access to1069 an <emphasis>entire physical disk</emphasis>. If your1070 <emphasis>host</emphasis> operating system is also booted from this1071 disk, please take special care to not access the partition from the1072 guest at all. On the positive side, the physical disk can be1073 repartitioned in arbitrary ways without having to recreate the image1074 file that gives access to the raw disk.</para>1075 1076 <para>To create an image that represents an entire physical hard disk1077 (which will not contain any actual data, as this will all be stored on1078 the physical disk), on a Linux host, use the command<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk1079 -rawdisk /dev/sda</screen>This creates the image1080 <code>/path/to/file.vmdk</code> (must be absolute), and all data will1081 be read and written from <code>/dev/sda</code>.</para>1082 1083 <para>On a Windows host, instead of the above device specification,1084 use e.g. <code>\\.\PhysicalDrive0</code>. On a Mac OS X host, instead1085 of the above device specification use e.g. <code>/dev/disk1</code>.1086 Note that on OS X you can only get access to an entire disk if no1087 volume is mounted from it.</para>1088 1089 <para>Creating the image requires read/write access for the given1090 device. Read/write access is also later needed when using the image1091 from a virtual machine. On some host platforms (e.g. Windows Vista1092 and later), raw disk access may be restricted and not permitted by1093 the host OS in some situations.</para>1094 1095 <para>Just like with regular disk images, this does not automatically1096 attach the newly created image to a virtual machine. This can be done1097 with e.g. <screen>VBoxManage storageattach WindowsXP --storagectl "IDE Controller"1098 --port 0 --device 0 --type hdd --medium /path/to/file.vmdk</screen>When1099 this is done the selected virtual machine will boot from the specified1100 physical disk.</para>1101 </sect3>1102 1103 <sect3>1104 <title>Access to individual physical hard disk partitions</title>1105 1106 <para>This "raw partition support" is quite similar to the "full hard1107 disk" access described above. However, in this case, any partitioning1108 information will be stored inside the VMDK image, so you can e.g.1109 install a different boot loader in the virtual hard disk without1110 affecting the host's partitioning information. While the guest will be1111 able to <emphasis>see</emphasis> all partitions that exist on the1112 physical disk, access will be filtered in that reading from partitions1113 for which no access is allowed the partitions will only yield zeroes,1114 and all writes to them are ignored.</para>1115 1116 <para>To create a special image for raw partition support (which will1117 contain a small amount of data, as already mentioned), on a Linux1118 host, use the command<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk1119 -rawdisk /dev/sda -partitions 1,5</screen></para>1120 1121 <para>As you can see, the command is identical to the one for "full1122 hard disk" access, except for the additional1123 <computeroutput>-partitions</computeroutput> parameter. This example1124 would create the image <code>/path/to/file.vmdk</code> (which, again,1125 must be absolute), and partitions 1 and 5 of <code>/dev/sda</code>1126 would be made accessible to the guest.</para>1127 1128 <para>VirtualBox uses the same partition numbering as your Linux host.1129 As a result, the numbers given in the above example would refer to the1130 first primary partition and the first logical drive in the extended1131 partition, respectively.</para>1132 1133 <para>On a Windows host, instead of the above device specification,1134 use e.g. <code>\\.\PhysicalDrive0</code>. On a Mac OS X host, instead1135 of the above device specification use e.g. <code>/dev/disk1</code>.1136 Note that on OS X you can only use partitions which are not mounted1137 (eject the respective volume first). Partition numbers are the same on1138 Linux, Windows and Mac OS X hosts.</para>1139 1140 <para>The numbers for the list of partitions can be taken from the1141 output of<screen>VBoxManage internalcommands listpartitions -rawdisk /dev/sda</screen>The1142 output lists the partition types and sizes to give the user enough1143 information to identify the partitions necessary for the guest.</para>1144 1145 <para>Images which give access to individual partitions are specific1146 to a particular host disk setup. You cannot transfer these images to1147 another host; also, whenever the host partitioning changes, the image1148 <emphasis>must be recreated</emphasis>.</para>1149 1150 <para>Creating the image requires read/write access for the given1151 device. Read/write access is also later needed when using the image1152 from a virtual machine. If this is not feasible, there is a special1153 variant for raw partition access (currently only available on Linux1154 hosts) that avoids having to give the current user access to the1155 entire disk. To set up such an image, use<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk1156 -rawdisk /dev/sda -partitions 1,5 -relative</screen>When used from a1157 virtual machine, the image will then refer not to the entire disk, but1158 only to the individual partitions (in the example1159 <code>/dev/sda1</code> and <code>/dev/sda5</code>). As a consequence,1160 read/write access is only required for the affected partitions, not1161 for the entire disk. During creation however, read-only access to the1162 entire disk is required to obtain the partitioning information.</para>1163 1164 <para>In some configurations it may be necessary to change the MBR1165 code of the created image, e.g. to replace the Linux boot loader that1166 is used on the host by another boot loader. This allows e.g. the guest1167 to boot directly to Windows, while the host boots Linux from the1168 "same" disk. For this purpose the1169 <computeroutput>-mbr</computeroutput> parameter is provided. It1170 specifies a file name from which to take the MBR code. The partition1171 table is not modified at all, so a MBR file from a system with totally1172 different partitioning can be used. An example of this is<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk1173 -rawdisk /dev/sda -partitions 1,5 -mbr winxp.mbr</screen>The modified1174 MBR will be stored inside the image, not on the host disk.</para>1175 1176 <para>The created image can be attached to a storage controller in a1177 VM configuration as usual.</para>1178 </sect3>1179 </sect2>1180 1181 1796 <sect2 id="changevpd"> 1182 <title>Configuring the hard disk vendor product data (VPD)</title> 1183 1184 <para>VirtualBox reports vendor product data for its virtual hard disks 1185 which consist of hard disk serial number, firmware revision and model 1186 number. These can be changed using the following commands:</para> 1187 1188 <screen>VBoxManage setextradata "VM name" 1797 1798 <title>Configuring the Hard Disk Vendor Product Data (VPD)</title> 1799 1800 <para> 1801 VirtualBox reports vendor product data for its virtual hard 1802 disks which consist of hard disk serial number, firmware 1803 revision and model number. These can be changed using the 1804 following commands: 1805 </para> 1806 1807 <screen>VBoxManage setextradata "VM name" 1189 1808 "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial" 1190 1809 VBoxManage setextradata "VM name" … … 1193 1812 "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "model"</screen> 1194 1813 1195 <para>The serial number is a 20 byte alphanumeric string, the firmware 1196 revision an 8 byte alphanumeric string and the model number a 40 byte 1197 alphanumeric string. Instead of "Port0" (referring to the first port), 1198 specify the desired SATA hard disk port.</para> 1199 1200 <para>The above commands apply to virtual machines with an AHCI (SATA) 1201 controller. The commands for virtual machines with an IDE controller 1202 are:</para> 1203 1204 <screen>VBoxManage setextradata "VM name" 1814 <para> 1815 The serial number is a 20 byte alphanumeric string, the firmware 1816 revision an 8 byte alphanumeric string and the model number a 40 1817 byte alphanumeric string. Instead of Port0, referring to the 1818 first port, specify the desired SATA hard disk port. 1819 </para> 1820 1821 <para> 1822 The above commands apply to virtual machines with an AHCI (SATA) 1823 controller. The commands for virtual machines with an IDE 1824 controller are: 1825 </para> 1826 1827 <screen>VBoxManage setextradata "VM name" 1205 1828 "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "serial" 1206 1829 VBoxManage setextradata "VM name" … … 1209 1832 "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/ModelNumber" "model"</screen> 1210 1833 1211 <para>For hard disks it's also possible to mark the 1212 drive as having a non-rotational medium with:</para> 1213 1214 <screen>VBoxManage setextradata "VM name" 1834 <para> 1835 For hard disks it is also possible to mark the drive as having a 1836 non-rotational medium with: 1837 </para> 1838 1839 <screen>VBoxManage setextradata "VM name" 1215 1840 "VBoxInternal/Devices/ahci/0/Config/Port0/NonRotational" "1"</screen> 1216 1841 1217 <para>Additional three parameters are needed for CD/DVD drives to report 1218 the vendor product data:</para> 1219 1220 <screen>VBoxManage setextradata "VM name" 1842 <para> 1843 Additional three parameters are needed for CD/DVD drives to 1844 report the vendor product data: 1845 </para> 1846 1847 <screen>VBoxManage setextradata "VM name" 1221 1848 "VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIVendorId" "vendor" 1222 1849 VBoxManage setextradata "VM name" … … 1225 1852 "VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIRevision" "revision"</screen> 1226 1853 1227 <para>The vendor id is an 8 byte alphanumeric string, the product id an 1228 16 byte alphanumeric string and the revision a 4 byte alphanumeric 1229 string. Instead of "Port0" (referring to the first port), specify the 1230 desired SATA hard disk port.</para> 1854 <para> 1855 The vendor id is an 8 byte alphanumeric string, the product id 1856 an 16 byte alphanumeric string and the revision a 4 byte 1857 alphanumeric string. Instead of Port0, referring to the first 1858 port, specify the desired SATA hard disk port. 1859 </para> 1860 1231 1861 </sect2> 1232 1862 1233 1863 <sect2 id="iscsi-intnet"> 1234 <title>Access iSCSI targets via Internal Networking</title> 1235 1236 <para>As an experimental feature, VirtualBox allows for accessing an 1237 iSCSI target running in a virtual machine which is configured for using 1238 Internal Networking mode. Please see <xref linkend="storage-iscsi" />; 1239 <xref linkend="network_internal" />; and <xref 1240 linkend="vboxmanage-storageattach" /> for additional information.</para> 1241 1242 <para>The IP stack accessing Internal Networking must be configured in 1243 the virtual machine which accesses the iSCSI target. A free static IP 1244 and a MAC address not used by other virtual machines must be chosen. In 1245 the example below, adapt the name of the virtual machine, the MAC 1246 address, the IP configuration and the Internal Networking name 1247 ("MyIntNet") according to your needs. The following eight commands must 1248 first be issued:<screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Trusted 1 1864 1865 <title>Access iSCSI Targets via Internal Networking</title> 1866 1867 <para> 1868 As an experimental feature, VirtualBox allows for accessing an 1869 iSCSI target running in a virtual machine which is configured 1870 for using Internal Networking mode. See 1871 <xref linkend="storage-iscsi" />, 1872 <xref linkend="network_internal" />, and 1873 <xref 1874 linkend="vboxmanage-storageattach" />. 1875 </para> 1876 1877 <para> 1878 The IP stack accessing Internal Networking must be configured in 1879 the virtual machine which accesses the iSCSI target. A free 1880 static IP and a MAC address not used by other virtual machines 1881 must be chosen. In the example below, adapt the name of the 1882 virtual machine, the MAC address, the IP configuration, and the 1883 Internal Networking name (MyIntNet) according to your needs. The 1884 following eight commands must first be issued: 1885 </para> 1886 1887 <screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Trusted 1 1249 1888 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/MAC 08:00:27:01:02:0f 1250 1889 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/IP 10.0.9.1 … … 1253 1892 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/Network MyIntNet 1254 1893 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/TrunkType 2 1255 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/IsService 1</screen></para> 1256 1257 <para>Finally the iSCSI disk must be attached with the 1258 <computeroutput>--intnet</computeroutput> option to tell the iSCSI 1259 initiator to use internal networking:<screen>VBoxManage storageattach ... --medium iscsi 1260 --server 10.0.9.30 --target iqn.2008-12.com.sun:sampletarget --intnet</screen></para> 1261 1262 <para>Compared to a "regular" iSCSI setup, IP address of the target 1263 <emphasis>must</emphasis> be specified as a numeric IP address, as there 1264 is no DNS resolver for internal networking.</para> 1265 1266 <para>The virtual machine with the iSCSI target should be started before 1267 the VM using it is powered on. If a virtual machine using an iSCSI disk 1268 is started without having the iSCSI target powered up, it can take up to 1269 200 seconds to detect this situation. The VM will fail to power 1270 up.</para> 1894 VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/IsService 1</screen> 1895 1896 <para> 1897 Finally the iSCSI disk must be attached with the 1898 <computeroutput>--intnet</computeroutput> option to tell the 1899 iSCSI initiator to use internal networking: 1900 1901 <screen>VBoxManage storageattach ... --medium iscsi 1902 --server 10.0.9.30 --target iqn.2008-12.com.sun:sampletarget --intnet</screen> 1903 </para> 1904 1905 <para> 1906 Compared to a regular iSCSI setup, the IP address of the target 1907 <emphasis>must</emphasis> be specified as a numeric IP address, 1908 as there is no DNS resolver for internal networking. 1909 </para> 1910 1911 <para> 1912 The virtual machine with the iSCSI target should be started 1913 before the VM using it is powered on. If a virtual machine using 1914 an iSCSI disk is started without having the iSCSI target powered 1915 up, it can take up to 200 seconds to detect this situation. The 1916 VM will fail to power up. 1917 </para> 1918 1271 1919 </sect2> 1920 1272 1921 </sect1> 1273 1922 1274 <sect1> 1275 <title>Legacy commands for using serial ports</title> 1276 1277 <para>Starting with version 1.4, VirtualBox provided support for virtual 1278 serial ports, which, at the time, was rather complicated to set up with a 1279 sequence of <computeroutput>VBoxManage setextradata</computeroutput> 1280 statements. Since version 1.5, that way of setting up serial ports is no 1281 longer necessary and <emphasis>deprecated.</emphasis> To set up virtual 1282 serial ports, use the methods now described in <xref 1283 linkend="serialports" />.<note> 1284 <para>For backwards compatibility, the old 1923 <sect1 id="serialports-legacy-cmds"> 1924 1925 <title>Legacy Commands for Using Serial Ports</title> 1926 1927 <para> 1928 Starting with version 1.4, VirtualBox provided support for virtual 1929 serial ports, which, at the time, was rather complicated to set up 1930 with a sequence of <computeroutput>VBoxManage 1931 setextradata</computeroutput> statements. Since version 1.5, that 1932 way of setting up serial ports is no longer necessary and 1933 <emphasis>deprecated.</emphasis> To set up virtual serial ports, 1934 use the methods described in <xref 1935 linkend="serialports" />. 1936 </para> 1937 1938 <note> 1939 <para> 1940 For backwards compatibility, the old 1285 1941 <computeroutput>setextradata</computeroutput> statements, whose 1286 description is retained below from the old version of the manual, take 1287 <emphasis>precedence</emphasis> over the new way of configuring serial 1288 ports. As a result, if configuring serial ports the new way doesn't 1289 work, make sure the VM in question does not have old configuration 1290 data such as below still active.</para> 1291 </note></para> 1292 1293 <para>The old sequence of configuring a serial port used the following 6 1294 commands:</para> 1295 1296 <screen>VBoxManage setextradata "VM name" 1942 description is retained below from the old version of the 1943 manual, take <emphasis>precedence</emphasis> over the new way of 1944 configuring serial ports. As a result, if configuring serial 1945 ports the new way does not work, make sure the VM in question 1946 does not have old configuration data such as below still active. 1947 </para> 1948 </note> 1949 1950 <para> 1951 The old sequence of configuring a serial port used the following 1952 commands: 1953 </para> 1954 1955 <screen>VBoxManage setextradata "VM name" 1297 1956 "VBoxInternal/Devices/serial/0/Config/IRQ" 4 1298 1957 VBoxManage setextradata "VM name" … … 1307 1966 "VBoxInternal/Devices/serial/0/LUN#0/AttachedDriver/Config/IsServer" 1</screen> 1308 1967 1309 <para>This sets up a serial port in the guest with the default settings 1310 for COM1 (IRQ 4, I/O address 0x3f8) and the 1311 <computeroutput>Location</computeroutput> setting assumes that this 1312 configuration is used on a Windows host, because the Windows named pipe 1313 syntax is used. Keep in mind that on Windows hosts a named pipe must 1314 always start with <computeroutput>\\.\pipe\</computeroutput>. On Linux the 1315 same configuration settings apply, except that the path name for the 1316 <computeroutput>Location</computeroutput> can be chosen more freely. Local 1317 domain sockets can be placed anywhere, provided the user running 1318 VirtualBox has the permission to create a new file in the directory. The 1319 final command above defines that VirtualBox acts as a server, i.e. it 1320 creates the named pipe itself instead of connecting to an already existing 1321 one.</para> 1968 <para> 1969 This sets up a serial port in the guest with the default settings 1970 for COM1 (IRQ 4, I/O address 0x3f8) and the 1971 <computeroutput>Location</computeroutput> setting assumes that 1972 this configuration is used on a Windows host, because the Windows 1973 named pipe syntax is used. Keep in mind that on Windows hosts a 1974 named pipe must always start with 1975 <computeroutput>\\.\pipe\</computeroutput>. On Linux the same 1976 configuration settings apply, except that the path name for the 1977 <computeroutput>Location</computeroutput> can be chosen more 1978 freely. Local domain sockets can be placed anywhere, provided the 1979 user running VirtualBox has the permission to create a new file in 1980 the directory. The final command above defines that VirtualBox 1981 acts as a server. It creates the named pipe itself instead of 1982 connecting to an already existing one. 1983 </para> 1984 1322 1985 </sect1> 1323 1986 1324 1987 <sect1 id="changenat"> 1325 <title>Fine-tuning the VirtualBox NAT engine</title> 1326 1327 <sect2> 1328 <title>Configuring the address of a NAT network interface</title> 1329 1330 <para>In NAT mode, the guest network interface is assigned to the IPv4 1331 range <computeroutput>10.0.x.0/24</computeroutput> by default where 1332 <computeroutput>x</computeroutput> corresponds to the instance of the 1333 NAT interface +2. So <computeroutput>x</computeroutput> is 2 when there 1334 is only one NAT instance active. In that case the guest is assigned to 1335 the address <computeroutput>10.0.2.15</computeroutput>, the gateway is 1336 set to <computeroutput>10.0.2.2</computeroutput> and the name server can 1337 be found at <computeroutput>10.0.2.3</computeroutput>.</para> 1338 1339 <para>If, for any reason, the NAT network needs to be changed, this can 1340 be achieved with the following command:</para> 1341 1342 <screen>VBoxManage modifyvm "VM name" --natnet1 "192.168/16"</screen> 1343 1344 <para>This command would reserve the network addresses from 1345 <computeroutput>192.168.0.0</computeroutput> to 1346 <computeroutput>192.168.254.254</computeroutput> for the first NAT 1347 network instance of "VM name". The guest IP would be assigned to 1348 <computeroutput>192.168.0.15</computeroutput> and the default gateway 1349 could be found at <computeroutput>192.168.0.2</computeroutput>.</para> 1988 1989 <title>Fine Tuning the VirtualBox NAT Engine</title> 1990 1991 <sect2 id="nat-address-config"> 1992 1993 <title>Configuring the Address of a NAT Network Interface</title> 1994 1995 <para> 1996 In NAT mode, the guest network interface is assigned to the IPv4 1997 range <computeroutput>10.0.x.0/24</computeroutput> by default 1998 where <computeroutput>x</computeroutput> corresponds to the 1999 instance of the NAT interface +2. So 2000 <computeroutput>x</computeroutput> is 2 when there is only one 2001 NAT instance active. In that case the guest is assigned to the 2002 address <computeroutput>10.0.2.15</computeroutput>, the gateway 2003 is set to <computeroutput>10.0.2.2</computeroutput> and the name 2004 server can be found at 2005 <computeroutput>10.0.2.3</computeroutput>. 2006 </para> 2007 2008 <para> 2009 If the NAT network needs to be changed, use the following 2010 command: 2011 </para> 2012 2013 <screen>VBoxManage modifyvm "VM name" --natnet1 "192.168/16"</screen> 2014 2015 <para> 2016 This command would reserve the network addresses from 2017 <computeroutput>192.168.0.0</computeroutput> to 2018 <computeroutput>192.168.254.254</computeroutput> for the first 2019 NAT network instance of "VM name". The guest IP would be 2020 assigned to <computeroutput>192.168.0.15</computeroutput> and 2021 the default gateway could be found at 2022 <computeroutput>192.168.0.2</computeroutput>. 2023 </para> 2024 1350 2025 </sect2> 1351 2026 1352 2027 <sect2 id="nat-adv-tftp"> 1353 <title>Configuring the boot server (next server) of a NAT network 1354 interface</title> 1355 1356 <para>For network booting in NAT mode, by default VirtualBox uses a 1357 built-in TFTP server at the IP address 10.0.2.4. This default behavior 1358 should work fine for typical remote-booting scenarios. However, it is 1359 possible to change the boot server IP and the location of the boot image 1360 with the following commands: <screen>VBoxManage modifyvm "VM name" --nattftpserver1 10.0.2.2 1361 VBoxManage modifyvm "VM name" --nattftpfile1 /srv/tftp/boot/MyPXEBoot.pxe</screen></para> 2028 2029 <title>Configuring the Boot Server (Next Server) of a NAT Network Interface</title> 2030 2031 <para> 2032 For network booting in NAT mode, by default VirtualBox uses a 2033 built-in TFTP server at the IP address 10.0.2.4. This default 2034 behavior should work fine for typical remote-booting scenarios. 2035 However, it is possible to change the boot server IP and the 2036 location of the boot image with the following commands: 2037 2038 <screen>VBoxManage modifyvm "VM name" --nattftpserver1 10.0.2.2 2039 VBoxManage modifyvm "VM name" --nattftpfile1 /srv/tftp/boot/MyPXEBoot.pxe</screen> 2040 </para> 2041 1362 2042 </sect2> 1363 2043 1364 2044 <sect2 id="nat-adv-settings"> 1365 <title>Tuning TCP/IP buffers for NAT</title> 1366 1367 <para>The VirtualBox NAT stack performance is often determined by its 1368 interaction with the host's TCP/IP stack and the size of several buffers 1369 (<computeroutput>SO_RCVBUF</computeroutput> and 1370 <computeroutput>SO_SNDBUF</computeroutput>). For certain setups users 1371 might want to adjust the buffer size for a better performance. This can 1372 by achieved using the following commands (values are in kilobytes and 1373 can range from 8 to 1024): <screen>VBoxManage modifyvm "VM name" --natsettings1 16000,128,128,0,0</screen> 1374 This example illustrates tuning the NAT settings. The first parameter is 1375 the MTU, then the size of the socket's send buffer and the size of the 1376 socket's receive buffer, the initial size of the TCP send window, and 1377 lastly the initial size of the TCP receive window. Note that specifying 1378 zero means fallback to the default value.</para> 1379 1380 <para>Each of these buffers has a default size of 64KB and default MTU 1381 is 1500.</para> 2045 2046 <title>Tuning TCP/IP Buffers for NAT</title> 2047 2048 <para> 2049 The VirtualBox NAT stack performance is often determined by its 2050 interaction with the host's TCP/IP stack and the size of several 2051 buffers (<computeroutput>SO_RCVBUF</computeroutput> and 2052 <computeroutput>SO_SNDBUF</computeroutput>). For certain setups 2053 users might want to adjust the buffer size for a better 2054 performance. This can by achieved using the following commands, 2055 where values are in kilobytes and can range from 8 to 1024: 2056 2057 <screen>VBoxManage modifyvm "VM name" --natsettings1 16000,128,128,0,0</screen> 2058 2059 This example illustrates tuning the NAT settings. The first 2060 parameter is the MTU, then the size of the socket's send buffer 2061 and the size of the socket's receive buffer, the initial size of 2062 the TCP send window, and lastly the initial size of the TCP 2063 receive window. Note that specifying zero means fallback to the 2064 default value. 2065 </para> 2066 2067 <para> 2068 Each of these buffers has a default size of 64KB and default MTU 2069 is 1500. 2070 </para> 2071 1382 2072 </sect2> 1383 2073 1384 <sect2> 1385 <title>Binding NAT sockets to a specific interface</title> 1386 1387 <para>By default, VirtualBox's NAT engine will route TCP/IP packets 1388 through the default interface assigned by the host's TCP/IP stack. (The 1389 technical reason for this is that the NAT engine uses sockets for 1390 communication.) If, for some reason, you want to change this behavior, 1391 you can tell the NAT engine to bind to a particular IP address instead. 1392 Use the following command: <screen>VBoxManage modifyvm "VM name" --natbindip1 "10.45.0.2"</screen></para> 1393 1394 <para>After this, all outgoing traffic will be sent through the 1395 interface with the IP address 10.45.0.2. Please make sure that this 1396 interface is up and running prior to this assignment.</para> 2074 <sect2 id="nat-bind-sockets"> 2075 2076 <title>Binding NAT Sockets to a Specific Interface</title> 2077 2078 <para> 2079 By default, VirtualBox's NAT engine will route TCP/IP packets 2080 through the default interface assigned by the host's TCP/IP 2081 stack. The technical reason for this is that the NAT engine uses 2082 sockets for communication. If you want to change this behavior, 2083 you can tell the NAT engine to bind to a particular IP address 2084 instead. Use the following command: 2085 2086 <screen>VBoxManage modifyvm "VM name" --natbindip1 "10.45.0.2"</screen> 2087 </para> 2088 2089 <para> 2090 After this, all outgoing traffic will be sent through the 2091 interface with the IP address 10.45.0.2. Please make sure that 2092 this interface is up and running prior to this assignment. 2093 </para> 2094 1397 2095 </sect2> 1398 2096 1399 2097 <sect2 id="nat-adv-dns"> 1400 <title>Enabling DNS proxy in NAT mode</title> 1401 1402 <para>The NAT engine by default offers the same DNS servers to the guest 1403 that are configured on the host. In some scenarios, it can be desirable 1404 to hide the DNS server IPs from the guest, for example when this 1405 information can change on the host due to expiring DHCP leases. In this 1406 case, you can tell the NAT engine to act as DNS proxy using the 1407 following command: <screen>VBoxManage modifyvm "VM name" --natdnsproxy1 on</screen></para> 2098 2099 <title>Enabling DNS Proxy in NAT Mode</title> 2100 2101 <para> 2102 The NAT engine by default offers the same DNS servers to the 2103 guest that are configured on the host. In some scenarios, it can 2104 be desirable to hide the DNS server IPs from the guest, for 2105 example when this information can change on the host due to 2106 expiring DHCP leases. In this case, you can tell the NAT engine 2107 to act as DNS proxy using the following command: 2108 </para> 2109 2110 <screen>VBoxManage modifyvm "VM name" --natdnsproxy1 on</screen> 2111 1408 2112 </sect2> 1409 2113 1410 2114 <sect2 id="nat_host_resolver_proxy"> 1411 <title>Using the host's resolver as a DNS proxy in NAT mode</title> 1412 1413 <para>For resolving network names, the DHCP server of the NAT engine 1414 offers a list of registered DNS servers of the host. If for some reason 1415 you need to hide this DNS server list and use the host's resolver 1416 settings, thereby forcing the VirtualBox NAT engine to intercept DNS 1417 requests and forward them to host's resolver, use the following command: 1418 <screen>VBoxManage modifyvm "VM name" --natdnshostresolver1 on</screen> 1419 Note that this setting is similar to the DNS proxy mode, however whereas 1420 the proxy mode just forwards DNS requests to the appropriate servers, 1421 the resolver mode will interpret the DNS requests and use the host's DNS 1422 API to query the information and return it to the guest.</para> 1423 1424 <sect3 id="nat_host_resolver_name_intercepting"> 1425 <title>User-defined host name resolving</title> 1426 <para>In some cases it might be useful to intercept the name resolving mechanism, 1427 providing a user-defined IP address on a particular DNS request. The intercepting 1428 mechanism allows the user to map not only a single host but domains and even more 1429 complex naming conventions if required.</para> 1430 <para> 1431 The following command sets a rule for mapping a name to a specified IP:</para> 1432 <screen>VBoxManage setextradata "VM name" \ 2115 2116 <title>Using the Host's Resolver as a DNS Proxy in NAT Mode</title> 2117 2118 <para> 2119 For resolving network names, the DHCP server of the NAT engine 2120 offers a list of registered DNS servers of the host. If for some 2121 reason you need to hide this DNS server list and use the host's 2122 resolver settings, thereby forcing the VirtualBox NAT engine to 2123 intercept DNS requests and forward them to host's resolver, use 2124 the following command: 2125 </para> 2126 2127 <screen>VBoxManage modifyvm "VM name" --natdnshostresolver1 on</screen> 2128 2129 <para> 2130 Note that this setting is similar to the DNS proxy mode, however 2131 whereas the proxy mode just forwards DNS requests to the 2132 appropriate servers, the resolver mode will interpret the DNS 2133 requests and use the host's DNS API to query the information and 2134 return it to the guest. 2135 </para> 2136 2137 <sect3 id="nat_host_resolver_name_intercepting"> 2138 2139 <title>User-Defined Host Name Resolving</title> 2140 2141 <para> 2142 In some cases it might be useful to intercept the name 2143 resolving mechanism, providing a user-defined IP address on a 2144 particular DNS request. The intercepting mechanism allows the 2145 user to map not only a single host but domains and even more 2146 complex naming conventions if required. 2147 </para> 2148 2149 <para> 2150 The following command sets a rule for mapping a name to a 2151 specified IP: 2152 </para> 2153 2154 <screen>VBoxManage setextradata "VM name" \ 1433 2155 "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ 1434 2156 <unique rule name of interception rule>/HostIP" <IPv4> … … 1436 2158 "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ 1437 2159 <unique rule name>/HostName" <name of host></screen> 1438 <para>The following command sets a rule for mapping a pattern name to a specified IP:</para> 1439 <screen>VBoxManage setextradata "VM name" \ 2160 2161 <para> 2162 The following command sets a rule for mapping a pattern name 2163 to a specified IP: 2164 </para> 2165 2166 <screen>VBoxManage setextradata "VM name" \ 1440 2167 "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ 1441 2168 <unique rule name>/HostIP" <IPv4> … … 1443 2170 "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ 1444 2171 <unique rule name>/HostNamePattern" <hostpattern></screen> 1445 <para>The host pattern may include <computeroutput>"|", "?" and "*"</computeroutput>.</para> 1446 <para>This example demonstrates how to instruct the host-resolver mechanism to resolve 1447 all domain and probably some mirrors of www.blocked-site.info site with IP 127.0.0.1:</para> 1448 <screen>VBoxManage setextradata "VM name" \ 2172 2173 <para> 2174 The host pattern may include <computeroutput>"|", "?" and 2175 "*"</computeroutput>. 2176 </para> 2177 2178 <para> 2179 This example demonstrates how to instruct the host-resolver 2180 mechanism to resolve all domain and probably some mirrors of 2181 www.blocked-site.info site with IP 127.0.0.1: 2182 </para> 2183 2184 <screen>VBoxManage setextradata "VM name" \ 1449 2185 "VBoxInternal/Devices/e1000/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \ 1450 2186 all_blocked_site/HostIP" 127.0.0.1 … … 1453 2189 all_blocked_site/HostNamePattern" "*.blocked-site.*|*.fb.org"</screen> 1454 2190 1455 <para>The host resolver mechanism should be enabled to use user-defined 1456 mapping rules, otherwise they don't have any effect.</para> 1457 </sect3> 2191 <para> 2192 The host resolver mechanism should be enabled to use 2193 user-defined mapping rules, otherwise they do not have any 2194 effect. 2195 </para> 2196 2197 </sect3> 2198 1458 2199 </sect2> 1459 2200 1460 2201 <sect2 id="nat-adv-alias"> 1461 <title>Configuring aliasing of the NAT engine</title> 1462 1463 <para>By default, the NAT core uses aliasing and uses random ports when 1464 generating an alias for a connection. This works well for the most 1465 protocols like SSH, FTP and so on. Though some protocols might need a 1466 more transparent behavior or may depend on the real port number the 1467 packet was sent from. It is possible to change the NAT mode via the 1468 VBoxManage frontend with the following commands: <screen>VBoxManage modifyvm "VM name" --nataliasmode1 proxyonly</screen> 1469 and <screen>VBoxManage modifyvm "Linux Guest" --nataliasmode1 sameports</screen> 1470 The first example disables aliasing and switches NAT into transparent 1471 mode, the second example enforces preserving of port values. These modes 1472 can be combined if necessary.</para> 2202 2203 <title>Configuring Aliasing of the NAT Engine</title> 2204 2205 <para> 2206 By default, the NAT core uses aliasing and uses random ports 2207 when generating an alias for a connection. This works well for 2208 the most protocols like SSH, FTP and so on. Though some 2209 protocols might need a more transparent behavior or may depend 2210 on the real port number the packet was sent from. It is possible 2211 to change the NAT mode via the VBoxManage frontend with the 2212 following commands: 2213 2214 <screen>VBoxManage modifyvm "VM name" --nataliasmode1 proxyonly</screen> 2215 2216 and 2217 2218 <screen>VBoxManage modifyvm "Linux Guest" --nataliasmode1 sameports</screen> 2219 2220 The first example disables aliasing and switches NAT into 2221 transparent mode, the second example enforces preserving of port 2222 values. These modes can be combined if necessary. 2223 </para> 2224 1473 2225 </sect2> 2226 1474 2227 </sect1> 1475 2228 1476 2229 <sect1 id="changedmi"> 1477 <title>Configuring the BIOS DMI information</title> 1478 1479 <para>The DMI data VirtualBox provides to guests can be changed for a 1480 specific VM. Use the following commands to configure the DMI BIOS 1481 information. In case your VM is configured to use EFI firmware you need to 1482 replace <code>pcbios</code> by <code>efi</code> in the keys.</para> 1483 1484 <glosslist> 1485 <glossentry> 1486 <glossterm>DMI BIOS information</glossterm> 1487 <glossdef> 1488 <para>(type 0)</para> 1489 <screen>VBoxManage setextradata "VM name" 2230 2231 <title>Configuring the BIOS DMI Information</title> 2232 2233 <para> 2234 The DMI data that VirtualBox provides to guests can be changed for 2235 a specific VM. Use the following commands to configure the DMI 2236 BIOS information. In case your VM is configured to use EFI 2237 firmware you need to replace <code>pcbios</code> by 2238 <code>efi</code> in the keys. 2239 </para> 2240 2241 <itemizedlist> 2242 2243 <listitem> 2244 <para> 2245 DMI BIOS information (type 0) 2246 </para> 2247 2248 <screen>VBoxManage setextradata "VM name" 1490 2249 "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor" "BIOS Vendor" 1491 2250 VBoxManage setextradata "VM name" … … 1501 2260 VBoxManage setextradata "VM name" 1502 2261 "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSFirmwareMinor" 4</screen> 1503 </glossdef>1504 </glossentry> 1505 1506 <glossentry>1507 <glossterm>DMI system information</glossterm>1508 < glossdef>1509 <para>(type 1)</para> 1510 2262 </listitem> 2263 2264 <listitem> 2265 <para> 2266 DMI system information (type 1) 2267 </para> 2268 2269 <screen>VBoxManage setextradata "VM name" 1511 2270 "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "System Vendor" 1512 2271 VBoxManage setextradata "VM name" … … 1523 2282 "VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid" 1524 2283 "9852bf98-b83c-49db-a8de-182c42c7226b"</screen> 1525 </glossdef>1526 </glossentry> 1527 1528 <glossentry>1529 <glossterm>DMI board information</glossterm>1530 < glossdef>1531 <para>(type 2)</para> 1532 2284 </listitem> 2285 2286 <listitem> 2287 <para> 2288 DMI board information (type 2) 2289 </para> 2290 2291 <screen>VBoxManage setextradata "VM name" 1533 2292 "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVendor" "Board Vendor" 1534 2293 VBoxManage setextradata "VM name" … … 1544 2303 VBoxManage setextradata "VM name" 1545 2304 "VBoxInternal/Devices/pcbios/0/Config/DmiBoardBoardType" 10</screen> 1546 </glossdef>1547 </glossentry> 1548 1549 <glossentry>1550 <glossterm>DMI system enclosure or chassis</glossterm>1551 < glossdef>1552 <para>(type 3)</para> 1553 2305 </listitem> 2306 2307 <listitem> 2308 <para> 2309 DMI system enclosure or chassis (type 3) 2310 </para> 2311 2312 <screen>VBoxManage setextradata "VM name" 1554 2313 "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor" "Chassis Vendor" 1555 2314 VBoxManage setextradata "VM name" … … 1561 2320 VBoxManage setextradata "VM name" 1562 2321 "VBoxInternal/Devices/pcbios/0/Config/DmiChassisAssetTag" "Chassis Tag"</screen> 1563 </glossdef>1564 </glossentry> 1565 1566 <glossentry>1567 <glossterm>DMI processor information</glossterm>1568 < glossdef>1569 <para>(type 4)</para> 1570 2322 </listitem> 2323 2324 <listitem> 2325 <para> 2326 DMI processor information (type 4) 2327 </para> 2328 2329 <screen>VBoxManage setextradata "VM name" 1571 2330 "VBoxInternal/Devices/pcbios/0/Config/DmiProcManufacturer" "GenuineIntel" 1572 2331 VBoxManage setextradata "VM name" 1573 2332 "VBoxInternal/Devices/pcbios/0/Config/DmiProcVersion" "Pentium(R) III"</screen> 1574 </glossdef>1575 </glossentry> 1576 1577 <glossentry>1578 <glossterm>DMI OEM strings</glossterm>1579 < glossdef>1580 <para>(type 11)</para> 1581 2333 </listitem> 2334 2335 <listitem> 2336 <para> 2337 DMI OEM strings (type 11) 2338 </para> 2339 2340 <screen>VBoxManage setextradata "VM name" 1582 2341 "VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxVer" "vboxVer_1.2.3" 1583 2342 VBoxManage setextradata "VM name" 1584 2343 "VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxRev" "vboxRev_12345"</screen> 1585 </glossdef> 1586 </glossentry> 1587 </glosslist> 1588 1589 <para>If a DMI string is not set, the default value of VirtualBox is used. 1590 To set an empty string use 1591 <computeroutput>"<EMPTY>"</computeroutput>.</para> 1592 1593 <para>Note that in the above list, all quoted parameters (DmiBIOSVendor, 1594 DmiBIOSVersion but not DmiBIOSReleaseMajor) are expected to be strings. If 1595 such a string is a valid number, the parameter is treated as number and 1596 the VM will most probably refuse to start with an 1597 <computeroutput>VERR_CFGM_NOT_STRING</computeroutput> error. In that case, 1598 use <computeroutput>"string:<value>"</computeroutput>, for instance 1599 <screen>VBoxManage setextradata "VM name" 1600 "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"</screen></para> 1601 1602 <para>Changing this information can be necessary to provide the DMI 1603 information of the host to the guest to prevent Windows from asking for a 1604 new product key. On Linux hosts the DMI BIOS information can be obtained 1605 with <screen>dmidecode -t0</screen>and the DMI system information can be 1606 obtained with <screen>dmidecode -t1</screen></para> 2344 </listitem> 2345 2346 </itemizedlist> 2347 2348 <para> 2349 If a DMI string is not set, the default value of VirtualBox is 2350 used. To set an empty string use 2351 <computeroutput>"<EMPTY>"</computeroutput>. 2352 </para> 2353 2354 <para> 2355 Note that in the above list, all quoted parameters (DmiBIOSVendor, 2356 DmiBIOSVersion but not DmiBIOSReleaseMajor) are expected to be 2357 strings. If such a string is a valid number, the parameter is 2358 treated as number and the VM will most probably refuse to start 2359 with an <computeroutput>VERR_CFGM_NOT_STRING</computeroutput> 2360 error. In that case, use 2361 <computeroutput>"string:<value>"</computeroutput>. For 2362 example: 2363 </para> 2364 2365 <screen>VBoxManage setextradata "VM name" 2366 "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:1234"</screen> 2367 2368 <para> 2369 Changing this information can be necessary to provide the DMI 2370 information of the host to the guest to prevent Windows from 2371 asking for a new product key. On Linux hosts, the DMI BIOS 2372 information can be obtained with: 2373 2374 <screen>dmidecode -t0</screen> 2375 2376 The DMI system information can be obtained with: 2377 2378 <screen>dmidecode -t1</screen> 2379 </para> 2380 1607 2381 </sect1> 1608 2382 1609 2383 <sect1 id="changeacpicust"> 1610 <title>Configuring the custom ACPI table</title> 1611 1612 <para>VirtualBox can be configured to present an custom ACPI table to 1613 the guest. Use the following command to configure this:</para> 1614 1615 <screen>VBoxManage setextradata "VM name" 2384 2385 <title>Configuring the Custom ACPI Table</title> 2386 2387 <para> 2388 VirtualBox can be configured to present an custom ACPI table to 2389 the guest. Use the following command to configure this: 2390 </para> 2391 2392 <screen>VBoxManage setextradata "VM name" 1616 2393 "VBoxInternal/Devices/acpi/0/Config/CustomTable" "/path/to/table.bin"</screen> 1617 2394 1618 <para>Configuring a custom ACPI table can prevent Windows 1619 Vista and Windows 7 from asking for a new product key. On Linux hosts, 1620 one of the host tables can be read from 1621 <filename>/sys/firmware/acpi/tables/</filename>.</para> 2395 <para> 2396 Configuring a custom ACPI table can prevent Windows Vista and 2397 Windows 7 from asking for a new product key. On Linux hosts, one 2398 of the host tables can be read from 2399 <filename>/sys/firmware/acpi/tables/</filename>. 2400 </para> 2401 1622 2402 </sect1> 1623 2403 1624 <sect1> 1625 <title>Fine-tuning timers and time synchronization</title> 2404 <sect1 id="fine-tune-timers"> 2405 2406 <title>Fine Tuning Timers and Time Synchronization</title> 1626 2407 1627 2408 <sect2 id="changetscmode"> 1628 <title>Configuring the guest time stamp counter (TSC) to reflect guest 1629 execution</title> 1630 1631 <para>By default, VirtualBox keeps all sources of time visible to the 1632 guest synchronized to a single time source, the monotonic host time. 1633 This reflects the assumptions of many guest operating systems, which 1634 expect all time sources to reflect "wall clock" time. In special 1635 circumstances it may be useful however to make the TSC (time stamp 1636 counter) in the guest reflect the time actually spent executing the 1637 guest.</para> 1638 1639 <para>This special TSC handling mode can be enabled on a per-VM basis, 1640 and for best results must be used only in combination with hardware 1641 virtualization. To enable this mode use the following command:</para> 1642 1643 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/TSCTiedToExecution" 1</screen> 1644 1645 <para>To revert to the default TSC handling mode use:</para> 1646 1647 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/TSCTiedToExecution"</screen> 1648 1649 <para>Note that if you use the special TSC handling mode with a guest 1650 operating system which is very strict about the consistency of time 1651 sources you may get a warning or error message about the timing 1652 inconsistency. It may also cause clocks to become unreliable with some 1653 guest operating systems depending on how they use the TSC.</para> 2409 2410 <title>Configuring the Guest Time Stamp Counter (TSC) to Reflect Guest 2411 Execution</title> 2412 2413 <para> 2414 By default, VirtualBox keeps all sources of time visible to the 2415 guest synchronized to a single time source, the monotonic host 2416 time. This reflects the assumptions of many guest operating 2417 systems, which expect all time sources to reflect "wall clock" 2418 time. In special circumstances it may be useful however to make 2419 the time stamp counter (TSC) in the guest reflect the time 2420 actually spent executing the guest. 2421 </para> 2422 2423 <para> 2424 This special TSC handling mode can be enabled on a per-VM basis, 2425 and for best results must be used only in combination with 2426 hardware virtualization. To enable this mode use the following 2427 command: 2428 </para> 2429 2430 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/TSCTiedToExecution" 1</screen> 2431 2432 <para> 2433 To revert to the default TSC handling mode use: 2434 </para> 2435 2436 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/TSCTiedToExecution"</screen> 2437 2438 <para> 2439 Note that if you use the special TSC handling mode with a guest 2440 operating system which is very strict about the consistency of 2441 time sources you may get a warning or error message about the 2442 timing inconsistency. It may also cause clocks to become 2443 unreliable with some guest operating systems depending on how 2444 they use the TSC. 2445 </para> 2446 1654 2447 </sect2> 1655 2448 1656 2449 <sect2 id="warpguest"> 1657 <title>Accelerate or slow down the guest clock</title> 1658 1659 <para>For certain purposes it can be useful to accelerate or to slow 1660 down the (virtual) guest clock. This can be achieved as follows:</para> 1661 1662 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/WarpDrivePercentage" 200</screen> 1663 1664 <para>The above example will double the speed of the guest clock 1665 while</para> 1666 1667 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/WarpDrivePercentage" 50</screen> 1668 1669 <para>will halve the speed of the guest clock. Note that changing the 1670 rate of the virtual clock can confuse the guest and can even lead to 1671 abnormal guest behavior. For instance, a higher clock rate means shorter 1672 timeouts for virtual devices with the result that a slightly increased 1673 response time of a virtual device due to an increased host load can 1674 cause guest failures. Note further that any time synchronization 1675 mechanism will frequently try to resynchronize the guest clock with the 1676 reference clock (which is the host clock if the VirtualBox Guest 1677 Additions are active). Therefore any time synchronization should be 1678 disabled if the rate of the guest clock is changed as described above 1679 (see <xref linkend="changetimesync" />).</para> 2450 2451 <title>Accelerate or Slow Down the Guest Clock</title> 2452 2453 <para> 2454 For certain purposes it can be useful to accelerate or to slow 2455 down the virtual guest clock. This can be achieved as follows: 2456 </para> 2457 2458 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/WarpDrivePercentage" 200</screen> 2459 2460 <para> 2461 The above example will double the speed of the guest clock while 2462 </para> 2463 2464 <screen>VBoxManage setextradata "VM name" "VBoxInternal/TM/WarpDrivePercentage" 50</screen> 2465 2466 <para> 2467 will halve the speed of the guest clock. Note that changing the 2468 rate of the virtual clock can confuse the guest and can even 2469 lead to abnormal guest behavior. For instance, a higher clock 2470 rate means shorter timeouts for virtual devices with the result 2471 that a slightly increased response time of a virtual device due 2472 to an increased host load can cause guest failures. Note further 2473 that any time synchronization mechanism will frequently try to 2474 resynchronize the guest clock with the reference clock, which is 2475 the host clock if the VirtualBox Guest Additions are active. 2476 Therefore any time synchronization should be disabled if the 2477 rate of the guest clock is changed as described above. See 2478 <xref linkend="changetimesync" />. 2479 </para> 2480 1680 2481 </sect2> 1681 2482 1682 2483 <sect2 id="changetimesync"> 1683 <title>Tuning the Guest Additions time synchronization 1684 parameters</title> 1685 1686 <para>The VirtualBox Guest Additions ensure that the guest's system time 1687 is synchronized with the host time. There are several parameters which 1688 can be tuned. The parameters can be set for a specific VM using the 1689 following command:</para> 1690 1691 <screen>VBoxManage guestproperty set "VM name" "/VirtualBox/GuestAdd/VBoxService/PARAMETER" VALUE</screen> 1692 1693 <para>where <computeroutput>PARAMETER</computeroutput> is one of the 1694 following:</para> 1695 1696 <glosslist> 1697 <glossentry> 1698 <glossterm><computeroutput>--timesync-interval</computeroutput></glossterm> 1699 <glossdef> 1700 <para>Specifies the interval at which to synchronize the time 1701 with the host. The default is 10000 ms (10 seconds).</para> 1702 </glossdef> 1703 </glossentry> 1704 1705 <glossentry> 1706 <glossterm><computeroutput>--timesync-min-adjust</computeroutput></glossterm> 1707 <glossdef> 1708 <para>The minimum absolute drift value measured in milliseconds 1709 to make adjustments for. The default is 1000 ms on OS/2 and 100 1710 ms elsewhere.</para> 1711 </glossdef> 1712 </glossentry> 1713 <glossentry> 1714 <glossterm><computeroutput>--timesync-latency-factor</computeroutput></glossterm> 1715 <glossdef> 1716 <para>The factor to multiply the time query latency with to 1717 calculate the dynamic minimum adjust time. The default is 8 1718 times, that means in detail: Measure the time it takes to 1719 determine the host time (the guest has to contact the VM host 1720 service which may take some time), multiply this value by 8 and 1721 do an adjustment only if the time difference between host and 1722 guest is bigger than this value. Don't do any time adjustment 1723 otherwise.</para> 1724 </glossdef> 1725 </glossentry> 1726 1727 <glossentry> 1728 <glossterm><computeroutput>--timesync-max-latency</computeroutput></glossterm> 1729 <glossdef> 1730 <para>The max host timer query latency to accept. The default is 1731 250 ms.</para> 1732 </glossdef> 1733 </glossentry> 1734 1735 <glossentry> 1736 <glossterm><computeroutput>--timesync-set-threshold</computeroutput></glossterm> 1737 <glossdef> 1738 <para>The absolute drift threshold, given as milliseconds where 1739 to start setting the time instead of trying to smoothly adjust 1740 it. The default is 20 minutes.</para> 1741 </glossdef> 1742 </glossentry> 1743 1744 <glossentry> 1745 <glossterm><computeroutput>--timesync-set-start</computeroutput></glossterm> 1746 <glossdef> 1747 <para>Set the time when starting the time sync service.</para> 1748 </glossdef> 1749 </glossentry> 1750 1751 <glossentry> 1752 <glossterm><computeroutput>--timesync-set-on-restore 1753 0|1</computeroutput></glossterm> 1754 <glossdef> 1755 <para>Set the time after the VM was restored from a saved state 1756 when passing 1 as parameter (default). Disable by passing 0. In 1757 the latter case, the time will be adjusted smoothly which can 1758 take a long time.</para> 1759 </glossdef> 1760 </glossentry> 1761 </glosslist> 1762 1763 <para>All these parameters can be specified as command line parameters 1764 to VBoxService as well.</para> 2484 2485 <title>Tuning the Guest Additions Time Synchronization Parameters</title> 2486 2487 <para> 2488 The VirtualBox Guest Additions ensure that the guest's system 2489 time is synchronized with the host time. There are several 2490 parameters which can be tuned. The parameters can be set for a 2491 specific VM using the following command: 2492 </para> 2493 2494 <screen>VBoxManage guestproperty set "VM name" "/VirtualBox/GuestAdd/VBoxService/PARAMETER" VALUE</screen> 2495 2496 <para> 2497 where <computeroutput>PARAMETER</computeroutput> is one of the 2498 following: 2499 </para> 2500 2501 <variablelist> 2502 2503 <varlistentry> 2504 <term> 2505 <computeroutput>--timesync-interval</computeroutput> 2506 </term> 2507 2508 <listitem> 2509 <para> 2510 Specifies the interval at which to synchronize the time 2511 with the host. The default is 10000 ms (10 seconds). 2512 </para> 2513 </listitem> 2514 </varlistentry> 2515 2516 <varlistentry> 2517 <term> 2518 <computeroutput>--timesync-min-adjust</computeroutput> 2519 </term> 2520 2521 <listitem> 2522 <para> 2523 The minimum absolute drift value measured in milliseconds 2524 to make adjustments for. The default is 1000 ms on OS/2 2525 and 100 ms elsewhere. 2526 </para> 2527 </listitem> 2528 </varlistentry> 2529 2530 <varlistentry> 2531 <term> 2532 <computeroutput>--timesync-latency-factor</computeroutput> 2533 </term> 2534 2535 <listitem> 2536 <para> 2537 The factor to multiply the time query latency with to 2538 calculate the dynamic minimum adjust time. The default is 2539 8 times, which means as follows: 2540 </para> 2541 2542 <para> 2543 Measure the time it takes to determine the host time, the 2544 guest has to contact the VM host service which may take 2545 some time. Multiply this value by 8 and do an adjustment 2546 only if the time difference between host and guest is 2547 bigger than this value. Do not do any time adjustment 2548 otherwise. 2549 </para> 2550 </listitem> 2551 </varlistentry> 2552 2553 <varlistentry> 2554 <term> 2555 <computeroutput>--timesync-max-latency</computeroutput> 2556 </term> 2557 2558 <listitem> 2559 <para> 2560 The max host timer query latency to accept. The default is 2561 250 ms. 2562 </para> 2563 </listitem> 2564 </varlistentry> 2565 2566 <varlistentry> 2567 <term> 2568 <computeroutput>--timesync-set-threshold</computeroutput> 2569 </term> 2570 2571 <listitem> 2572 <para> 2573 The absolute drift threshold, given as milliseconds where 2574 to start setting the time instead of trying to smoothly 2575 adjust it. The default is 20 minutes. 2576 </para> 2577 </listitem> 2578 </varlistentry> 2579 2580 <varlistentry> 2581 <term> 2582 <computeroutput>--timesync-set-start</computeroutput> 2583 </term> 2584 2585 <listitem> 2586 <para> 2587 Set the time when starting the time sync service. 2588 </para> 2589 </listitem> 2590 </varlistentry> 2591 2592 <varlistentry> 2593 <term> 2594 <computeroutput>--timesync-set-on-restore 2595 0|1</computeroutput> 2596 </term> 2597 2598 <listitem> 2599 <para> 2600 Set the time after the VM was restored from a saved state 2601 when passing 1 as parameter (default). Disable by passing 2602 0. In the latter case, the time will be adjusted smoothly 2603 which can take a long time. 2604 </para> 2605 </listitem> 2606 </varlistentry> 2607 2608 </variablelist> 2609 2610 <para> 2611 All these parameters can be specified as command line parameters 2612 to VBoxService as well. 2613 </para> 2614 1765 2615 </sect2> 1766 2616 1767 2617 <sect2 id="disabletimesync"> 1768 2618 1769 <title>Disabling the Guest Additions time synchronization</title> 1770 1771 <para>Once installed and started, the VirtualBox Guest Additions will 1772 try to synchronize the guest time with the host time. This can be 1773 prevented by forbidding the guest service from reading the host 1774 clock:</para> 1775 1776 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1</screen> 2619 <title>Disabling the Guest Additions Time Synchronization</title> 2620 2621 <para> 2622 Once installed and started, the VirtualBox Guest Additions will 2623 try to synchronize the guest time with the host time. This can 2624 be prevented by forbidding the guest service from reading the 2625 host clock: 2626 </para> 2627 2628 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" 1</screen> 2629 1777 2630 </sect2> 2631 1778 2632 </sect1> 1779 2633 1780 2634 <sect1 id="vboxbowsolaris11"> 1781 <title>Installing the alternate bridged networking driver on Solaris 11 1782 hosts</title> 1783 1784 <para>Starting with VirtualBox 4.1, VirtualBox ships a new network filter 1785 driver that utilizes Solaris 11's Crossbow functionality. By default, this 1786 new driver is installed for Solaris 11 hosts (builds 159 and above) that 1787 has support for it.</para> 1788 1789 <para>To force installation of the older STREAMS based network filter 1790 driver, execute as root the following command before installing the 1791 VirtualBox package:</para> 1792 1793 <screen>touch /etc/vboxinst_vboxflt</screen> 1794 1795 <para>To force installation of the Crossbow based network filter driver, 1796 execute as root the following command before installing the VirtualBox 1797 package:</para> 1798 1799 <screen>touch /etc/vboxinst_vboxbow</screen> 1800 1801 <para>To check which driver is currently being used by VirtualBox, 1802 execute:</para> 1803 1804 <screen>modinfo | grep vbox</screen> 1805 1806 <para>If the output contains "vboxbow", it indicates VirtualBox is using 1807 the Crossbow network filter driver, while the name "vboxflt" indicates 1808 usage of the older STREAMS network filter.</para> 2635 2636 <title>Installing the Alternate Bridged Networking Driver on Solaris 11 hosts</title> 2637 2638 <para> 2639 Starting with VirtualBox 4.1, VirtualBox ships a new network 2640 filter driver that utilizes Solaris 11's Crossbow functionality. 2641 By default, this new driver is installed for Solaris 11 hosts 2642 (builds 159 and above) that has support for it. 2643 </para> 2644 2645 <para> 2646 To force installation of the older STREAMS based network filter 2647 driver, execute as root the following command before installing 2648 the VirtualBox package: 2649 </para> 2650 2651 <screen>touch /etc/vboxinst_vboxflt</screen> 2652 2653 <para> 2654 To force installation of the Crossbow based network filter driver, 2655 execute as root the following command before installing the 2656 VirtualBox package: 2657 </para> 2658 2659 <screen>touch /etc/vboxinst_vboxbow</screen> 2660 2661 <para> 2662 To check which driver is currently being used by VirtualBox, 2663 execute: 2664 </para> 2665 2666 <screen>modinfo | grep vbox</screen> 2667 2668 <para> 2669 If the output contains "vboxbow", it indicates VirtualBox is using 2670 the Crossbow network filter driver, while the name "vboxflt" 2671 indicates usage of the older STREAMS network filter. 2672 </para> 2673 1809 2674 </sect1> 1810 2675 1811 2676 <sect1 id="vboxbowvnictemplates"> 1812 <title>VirtualBox VNIC templates for VLANs on Solaris 11 hosts</title> 1813 1814 <para>VirtualBox supports VNIC (Virtual Network Interface) templates for 1815 configuring VMs over VLANs.<footnote> 1816 <para>Support for Crossbow based bridged networking was introduced 1817 with VirtualBox 4.1 and requires Solaris 11 build 159 or above.</para> 1818 </footnote> A VirtualBox VNIC template is a VNIC whose name starts with 1819 "vboxvnic_template" (case-sensitive).</para> 1820 1821 <para>On Solaris 11 hosts<footnote><para>When Crossbow based bridged 1822 networking is used.</para></footnote>, a VNIC template may be used to 1823 specify the VLAN ID to use while bridging over a network link.</para> 1824 1825 <para>Here is an example of how to use a VNIC template to configure a VM 1826 over a VLAN. Create a VirtualBox VNIC template, by executing as root:</para> 1827 1828 <screen>dladm create-vnic -t -l nge0 -v 23 vboxvnic_template0</screen> 1829 1830 <para>This will create a temporary VNIC template over interface "nge0" 1831 with the VLAN ID 23. To create VNIC templates that are persistent across 1832 host reboots, skip the <computeroutput>-t</computeroutput> parameter in the 1833 above command. You may check the current state of links using:</para> 1834 1835 <para><screen>$ dladm show-link 2677 2678 <title>VirtualBox VNIC Templates for VLANs on Solaris 11 Hosts</title> 2679 2680 <para> 2681 VirtualBox supports Virtual Network Interface (VNIC) templates for 2682 configuring VMs over VLANs. 2683 2684 <footnote> 2685 2686 <para> 2687 Support for Crossbow based bridged networking was introduced 2688 with VirtualBox 4.1 and requires Solaris 11 build 159 or 2689 above. 2690 </para> 2691 2692 </footnote> 2693 2694 A VirtualBox VNIC template is a VNIC whose name starts with 2695 "vboxvnic_template". The string is case-sensitive. 2696 </para> 2697 2698 <para> 2699 On Solaris 11 hosts, a VNIC template may be used to specify the 2700 VLAN ID to use while bridging over a network link. 2701 2702 <footnote> 2703 2704 <para> 2705 When Crossbow based bridged networking is used. 2706 </para> 2707 2708 </footnote> 2709 </para> 2710 2711 <para> 2712 Here is an example of how to use a VNIC template to configure a VM 2713 over a VLAN. Create a VirtualBox VNIC template, by executing as 2714 root: 2715 </para> 2716 2717 <screen>dladm create-vnic -t -l nge0 -v 23 vboxvnic_template0</screen> 2718 2719 <para> 2720 This will create a temporary VNIC template over interface "nge0" 2721 with the VLAN ID 23. To create VNIC templates that are persistent 2722 across host reboots, skip the <computeroutput>-t</computeroutput> 2723 parameter in the above command. You may check the current state of 2724 links using: 2725 </para> 2726 2727 <para> 2728 <screen>$ dladm show-link 1836 2729 LINK CLASS MTU STATE BRIDGE OVER 1837 2730 nge0 phys 1500 up -- -- … … 1841 2734 $ dladm show-vnic 1842 2735 LINK OVER SPEED MACADDRESS MACADDRTYPE VID 1843 vboxvnic_template0 nge0 1000 2:8:20:25:12:75 random 23</screen></para> 1844 1845 <para>Once the VNIC template is created, any VMs that need to be on VLAN 1846 23 over the interface "nge0" can be configured to bridge using this VNIC 1847 template.</para> 1848 1849 <para>VNIC templates makes managing VMs on VLANs simpler and efficient. 1850 The VLAN details are not stored as part of every VM's configuration but 1851 rather inherited from the VNIC template while starting the VM. The VNIC 1852 template itself can be modified anytime using <computeroutput>dladm</computeroutput>.</para> 1853 1854 <para>VNIC templates can be created with additional properties such as 1855 bandwidth limits, CPU fanout etc. Refer to your Solaris network 1856 documentation on how to accomplish this. These additional properties, 1857 if any, are also applied to VMs which bridge using the VNIC template.</para> 2736 vboxvnic_template0 nge0 1000 2:8:20:25:12:75 random 23</screen> 2737 </para> 2738 2739 <para> 2740 Once the VNIC template is created, any VMs that need to be on VLAN 2741 23 over the interface "nge0" can be configured to bridge using 2742 this VNIC template. 2743 </para> 2744 2745 <para> 2746 VNIC templates makes managing VMs on VLANs simpler and efficient. 2747 The VLAN details are not stored as part of every VM's 2748 configuration but rather inherited from the VNIC template while 2749 starting the VM. The VNIC template itself can be modified anytime 2750 using <computeroutput>dladm</computeroutput>. 2751 </para> 2752 2753 <para> 2754 VNIC templates can be created with additional properties such as 2755 bandwidth limits, CPU fanout etc. Refer to your Solaris network 2756 documentation on how to accomplish this. These additional 2757 properties, if any, are also applied to VMs which bridge using the 2758 VNIC template. 2759 </para> 2760 1858 2761 </sect1> 1859 2762 1860 2763 <sect1 id="addhostonlysolaris"> 1861 <title>Configuring multiple host-only network interfaces on Solaris 1862 hosts</title> 1863 1864 <para>By default VirtualBox provides you with one host-only network 1865 interface. Adding more host-only network interfaces on Solaris hosts 1866 requires manual configuration. Here's how to add another host-only 1867 network interface.</para> 1868 1869 <para>Begin by stopping all running VMs. Then, unplumb the existing 1870 "vboxnet0" interface by execute the following command as root:</para> 1871 1872 <screen>ifconfig vboxnet0 unplumb</screen> 1873 1874 <para>If you have several vboxnet interfaces, you will need to unplumb 1875 all of them. Once all vboxnet interfaces are unplumbed, remove the 1876 driver by executing the following command as root:</para> 1877 1878 <screen>rem_drv vboxnet</screen> 1879 1880 <para>Edit the file <computeroutput>/platform/i86pc/kernel/drv/vboxnet.conf</computeroutput> 1881 and add a line for the new interface we want to add as shown below:</para> 1882 1883 <screen>name="vboxnet" parent="pseudo" instance=1; 2764 2765 <title>Configuring Multiple Host-Only Network Interfaces on Solaris Hosts</title> 2766 2767 <para> 2768 By default VirtualBox provides you with one host-only network 2769 interface. Adding more host-only network interfaces on Solaris 2770 hosts requires manual configuration. Here is how to add another 2771 host-only network interface. 2772 </para> 2773 2774 <para> 2775 Begin by stopping all running VMs. Then, unplumb the existing 2776 "vboxnet0" interface by execute the following command as root: 2777 </para> 2778 2779 <screen>ifconfig vboxnet0 unplumb</screen> 2780 2781 <para> 2782 If you have several vboxnet interfaces, you will need to unplumb 2783 all of them. Once all vboxnet interfaces are unplumbed, remove the 2784 driver by executing the following command as root: 2785 </para> 2786 2787 <screen>rem_drv vboxnet</screen> 2788 2789 <para> 2790 Edit the file 2791 <computeroutput>/platform/i86pc/kernel/drv/vboxnet.conf</computeroutput> 2792 and add a line for the new interface we want to add as shown 2793 below: 2794 </para> 2795 2796 <screen>name="vboxnet" parent="pseudo" instance=1; 1884 2797 name="vboxnet" parent="pseudo" instance=2;</screen> 1885 2798 1886 <para>Add as many of these lines as required with each line having a 1887 unique instance number.</para> 1888 1889 <para>Next, reload the vboxnet driver by executing the following command 1890 as root:</para> 1891 1892 <screen>add_drv vboxnet</screen> 1893 1894 <para>On Solaris 11.1 and newer hosts you may want to rename the default 1895 vanity interface name. To check what name has been assigned, execute:</para> 1896 1897 <screen>dladm show-phys 2799 <para> 2800 Add as many of these lines as required with each line having a 2801 unique instance number. 2802 </para> 2803 2804 <para> 2805 Next, reload the vboxnet driver by executing the following command 2806 as root: 2807 </para> 2808 2809 <screen>add_drv vboxnet</screen> 2810 2811 <para> 2812 On Solaris 11.1 and newer hosts you may want to rename the default 2813 vanity interface name. To check what name has been assigned, 2814 execute: 2815 </para> 2816 2817 <screen>dladm show-phys 1898 2818 LINK MEDIA STATE SPEED DUPLEX DEVICE 1899 2819 net0 Ethernet up 100 full e1000g0 … … 1901 2821 net1 Ethernet up 1000 full vboxnet0</screen> 1902 2822 1903 <para>In the above example, we can rename "net2" to "vboxnet1" before 1904 proceeding to plumb the interface. This can be done by executing as root:</para> 1905 1906 <screen>dladm rename-link net2 vboxnet1</screen> 1907 1908 <para>Now plumb all the interfaces using 1909 <computeroutput>ifconfig vboxnetX plumb</computeroutput> (where 'X' would 1910 be 1 in this case). Once the interface is plumbed, it may be configured 1911 like any other network interface. Refer to the 1912 <computeroutput>ifconfig</computeroutput> documentation for further details.</para> 1913 1914 <para>To make the newly added interfaces' settings persistent across 1915 reboots, you will need to edit the files 1916 <computeroutput>/etc/inet/netmasks</computeroutput>, and if you are using NWAM 1917 <computeroutput>/etc/nwam/llp</computeroutput> and add the appropriate 1918 entries to set the netmask and static IP for each of those interfaces. The 1919 VirtualBox installer only updates these configuration files for the one 1920 "vboxnet0" interface it creates by default.</para> 2823 <para> 2824 In the above example, we can rename "net2" to "vboxnet1" before 2825 proceeding to plumb the interface. This can be done by executing 2826 as root: 2827 </para> 2828 2829 <screen>dladm rename-link net2 vboxnet1</screen> 2830 2831 <para> 2832 Now plumb all the interfaces using <computeroutput>ifconfig 2833 vboxnetX plumb</computeroutput>, where 'X' would be 1 in this 2834 case. Once the interface is plumbed, it may be configured like any 2835 other network interface. Refer to the 2836 <computeroutput>ifconfig</computeroutput> documentation for 2837 further details. 2838 </para> 2839 2840 <para> 2841 To make the settings for the newly added interfaces persistent 2842 across reboots, you will need to edit the files 2843 <computeroutput>/etc/inet/netmasks</computeroutput>, and if you 2844 are using NWAM <computeroutput>/etc/nwam/llp</computeroutput> and 2845 add the appropriate entries to set the netmask and static IP for 2846 each of those interfaces. The VirtualBox installer only updates 2847 these configuration files for the one "vboxnet0" interface it 2848 creates by default. 2849 </para> 2850 1921 2851 </sect1> 1922 2852 1923 2853 <sect1 id="solariscodedumper"> 1924 <title>Configuring the VirtualBox CoreDumper on Solaris hosts</title> 1925 1926 <para>VirtualBox is capable of producing its own core files for extensive 1927 debugging when things go wrong. Currently this is only available on 1928 Solaris hosts.</para> 1929 1930 <para>The VirtualBox CoreDumper can be enabled using the following 1931 command:</para> 1932 1933 <para><screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpEnabled 1</screen></para> 1934 1935 <para>You can specify which directory to use for core dumps with this 1936 command:</para> 1937 1938 <para><screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpDir <path-to-directory></screen>Make 1939 sure the directory you specify is on a volume with sufficient free space 1940 and that the VirtualBox process has sufficient permissions to write files 1941 to this directory. If you skip this command and don't specify any core 1942 dump directory, the current directory of the VirtualBox executable will be 1943 used (which would most likely fail when writing cores as they are 1944 protected with root permissions). It is recommended you explicitly set a 1945 core dump directory.</para> 1946 1947 <para>You must specify when the VirtualBox CoreDumper should be triggered. 1948 This is done using the following commands:</para> 1949 1950 <para><screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpReplaceSystemDump 1 1951 VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen>At 1952 least one of the above two commands will have to be provided if you have 1953 enabled the VirtualBox CoreDumper.</para> 1954 1955 <para>Setting <computeroutput>CoreDumpReplaceSystemDump</computeroutput> 1956 sets up the VM to override the host's core dumping mechanism and in the 1957 event of any crash only the VirtualBox CoreDumper would produce the core 1958 file.</para> 1959 1960 <para>Setting <computeroutput>CoreDumpLive</computeroutput> sets up the VM 1961 to produce cores whenever the VM process receives a 1962 <computeroutput>SIGUSR2</computeroutput> signal. After producing the core 1963 file, the VM will not be terminated and will continue to run. You can thus 1964 take cores of the VM process using:</para> 1965 1966 <para><screen>kill -s SIGUSR2 <VM-process-id></screen></para> 1967 1968 <para>Core files produced by the VirtualBox CoreDumper are of the form 1969 <computeroutput>core.vb.<ProcessName>.<ProcessID></computeroutput>, 1970 for example <computeroutput>core.vb.VBoxHeadless.11321</computeroutput>.</para> 2854 2855 <title>Configuring the VirtualBox CoreDumper on Solaris Hosts</title> 2856 2857 <para> 2858 VirtualBox is capable of producing its own core files for 2859 extensive debugging when things go wrong. Currently this is only 2860 available on Solaris hosts. 2861 </para> 2862 2863 <para> 2864 The VirtualBox CoreDumper can be enabled using the following 2865 command: 2866 </para> 2867 2868 <para> 2869 <screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpEnabled 1</screen> 2870 </para> 2871 2872 <para> 2873 You can specify which directory to use for core dumps with this 2874 command: 2875 </para> 2876 2877 <para> 2878 <screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpDir <path-to-directory></screen> 2879 2880 Make sure the directory you specify is on a volume with sufficient 2881 free space and that the VirtualBox process has sufficient 2882 permissions to write files to this directory. If you skip this 2883 command and do not specify any core dump directory, the current 2884 directory of the VirtualBox executable will be used. This would 2885 most likely fail when writing cores as they are protected with 2886 root permissions. It is recommended you explicitly set a core dump 2887 directory. 2888 </para> 2889 2890 <para> 2891 You must specify when the VirtualBox CoreDumper should be 2892 triggered. This is done using the following commands: 2893 </para> 2894 2895 <para> 2896 <screen>VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpReplaceSystemDump 1 2897 VBoxManage setextradata "VM name" VBoxInternal2/CoreDumpLive 1</screen> 2898 2899 At least one of the above two commands will have to be provided if 2900 you have enabled the VirtualBox CoreDumper. 2901 </para> 2902 2903 <para> 2904 Setting <computeroutput>CoreDumpReplaceSystemDump</computeroutput> 2905 sets up the VM to override the host's core dumping mechanism and 2906 in the event of any crash only the VirtualBox CoreDumper would 2907 produce the core file. 2908 </para> 2909 2910 <para> 2911 Setting <computeroutput>CoreDumpLive</computeroutput> sets up the 2912 VM to produce cores whenever the VM process receives a 2913 <computeroutput>SIGUSR2</computeroutput> signal. After producing 2914 the core file, the VM will not be terminated and will continue to 2915 run. You can thus take cores of the VM process using: 2916 </para> 2917 2918 <para> 2919 <screen>kill -s SIGUSR2 <VM-process-id></screen> 2920 </para> 2921 2922 <para> 2923 Core files produced by the VirtualBox CoreDumper are of the form 2924 <computeroutput>core.vb.<ProcessName>.<ProcessID></computeroutput>, 2925 for example 2926 <computeroutput>core.vb.VBoxHeadless.11321</computeroutput>. 2927 </para> 2928 1971 2929 </sect1> 1972 2930 1973 2931 <sect1 id="vboxandsolzvmm"> 1974 <title>VirtualBox and Solaris kernel zones</title> 1975 1976 <para>Solaris kernel zones on x86-based systems make use of hardware-assisted 1977 virtualization features like VirtualBox does. However, for kernel zones and 1978 VirtualBox to share this hardware resource, they need to co-operate.</para> 1979 1980 <para>By default, due to performance reasons, VirtualBox acquires the 1981 hardware-assisted virtualization resource (VT-x/AMD-V) globally on the 1982 host machine and uses it until the last VirtualBox VM that requires it is 1983 powered off. This prevents other software from using VT-x/AMD-V during the 1984 time VirtualBox has taken control of it.</para> 1985 1986 <para>VirtualBox can be instructed to relinquish use of hardware-assisted 1987 virtualization features when not executing guest code, thereby allowing 1988 kernel zones to make use of them. To do this, shutdown all VirtualBox VMs 1989 and execute the following command:</para> 1990 1991 <screen>VBoxManage setproperty hwvirtexclusive off</screen> 1992 1993 <para>This command needs to be executed only once as the setting is stored 1994 as part of the global VirtualBox settings which will continue to persist 1995 across host-reboots and VirtualBox upgrades.</para> 2932 2933 <title>VirtualBox and Solaris Kernel Zones</title> 2934 2935 <para> 2936 Solaris kernel zones on x86-based systems make use of 2937 hardware-assisted virtualization features like VirtualBox does. 2938 However, for kernel zones and VirtualBox to share this hardware 2939 resource, they need to co-operate. 2940 </para> 2941 2942 <para> 2943 By default, due to performance reasons, VirtualBox acquires the 2944 hardware-assisted virtualization resource (VT-x/AMD-V) globally on 2945 the host machine and uses it until the last VirtualBox VM that 2946 requires it is powered off. This prevents other software from 2947 using VT-x/AMD-V during the time VirtualBox has taken control of 2948 it. 2949 </para> 2950 2951 <para> 2952 VirtualBox can be instructed to relinquish use of 2953 hardware-assisted virtualization features when not executing guest 2954 code, thereby allowing kernel zones to make use of them. To do 2955 this, shutdown all VirtualBox VMs and execute the following 2956 command: 2957 </para> 2958 2959 <screen>VBoxManage setproperty hwvirtexclusive off</screen> 2960 2961 <para> 2962 This command needs to be executed only once as the setting is 2963 stored as part of the global VirtualBox settings which will 2964 continue to persist across host-reboots and VirtualBox upgrades. 2965 </para> 2966 1996 2967 </sect1> 1997 2968 1998 2969 <sect1 id="guitweaks"> 1999 <title>Locking down the VirtualBox GUI</title> 2000 2001 <sect2> 2002 <title>Customizing the VM manager</title> 2003 2004 <para>There are several advanced customization settings for locking down 2005 the VirtualBox manager, that is, removing some features that the user 2006 should not see.</para> 2007 2008 <para><screen>VBoxManage setextradata global GUI/Customizations OPTION[,OPTION...]</screen></para> 2009 2010 <para>where <computeroutput>OPTION</computeroutput> is one of the 2011 following keywords:<glosslist> 2012 <glossentry> 2013 <glossterm><computeroutput>noSelector</computeroutput></glossterm> 2014 <glossdef> 2015 <para>Don't allow to start the VirtualBox manager. Trying to do so 2016 will show a window containing a proper error message.</para> 2017 </glossdef> 2018 </glossentry> 2019 2020 <glossentry> 2021 <glossterm><computeroutput>noMenuBar</computeroutput></glossterm> 2022 <glossdef> 2023 <para>VM windows will not contain a menu bar.</para> 2024 </glossdef> 2025 </glossentry> 2026 2027 <glossentry> 2028 <glossterm><computeroutput>noStatusBar</computeroutput></glossterm> 2029 <glossdef> 2030 <para>VM windows will not contain a status bar.</para> 2031 </glossdef> 2032 </glossentry> 2033 </glosslist></para> 2034 2035 <para>To disable any of these VM manager customizations do 2036 <screen>VBoxManage setextradata global GUI/Customizations</screen></para> 2970 2971 <title>Locking Down the VirtualBox GUI</title> 2972 2973 <sect2 id="customize-vm-manager"> 2974 2975 <title>Customizing the VM Manager</title> 2976 2977 <para> 2978 There are several advanced customization settings for locking 2979 down the VirtualBox manager. Locking down means removing some 2980 features that the user should not see. 2981 </para> 2982 2983 <para> 2984 <screen>VBoxManage setextradata global GUI/Customizations OPTION[,OPTION...]</screen> 2985 </para> 2986 2987 <para> 2988 where <computeroutput>OPTION</computeroutput> is one of the 2989 following keywords: 2990 </para> 2991 2992 <variablelist> 2993 2994 <varlistentry> 2995 <term> 2996 <computeroutput>noSelector</computeroutput> 2997 </term> 2998 2999 <listitem> 3000 <para> 3001 Do not allow users to start the VirtualBox manager. Trying 3002 to do so will show a window containing a proper error 3003 message. 3004 </para> 3005 </listitem> 3006 </varlistentry> 3007 3008 <varlistentry> 3009 <term> 3010 <computeroutput>noMenuBar</computeroutput> 3011 </term> 3012 3013 <listitem> 3014 <para> 3015 VM windows will not contain a menu bar. 3016 </para> 3017 </listitem> 3018 </varlistentry> 3019 3020 <varlistentry> 3021 <term> 3022 <computeroutput>noStatusBar</computeroutput> 3023 </term> 3024 3025 <listitem> 3026 <para> 3027 VM windows will not contain a status bar. 3028 </para> 3029 </listitem> 3030 </varlistentry> 3031 3032 </variablelist> 3033 3034 <para> 3035 To disable any of these VM manager customizations do 3036 3037 <screen>VBoxManage setextradata global GUI/Customizations</screen> 3038 </para> 2037 3039 2038 3040 </sect2> 2039 <sect2> 2040 2041 <title>VM selector customization</title> 2042 <para>The following per-machine VM extradata settings can be used to change the 2043 behavior of the VM selector window in respect of certain VMs:</para> 2044 <screen>VBoxManage setextradata "VM name" SETTING true</screen> 2045 <para>where <computeroutput>SETTING</computeroutput> can be:</para> 2046 <glosslist> 2047 <glossentry> 2048 <glossterm><computeroutput>GUI/HideDetails</computeroutput></glossterm> 2049 <glossdef> 2050 <para>Don't show the VM configuration of a certain VM. The details 2051 window will remain just empty if this VM is selected.</para> 2052 </glossdef> 2053 </glossentry> 2054 <glossentry> 2055 <glossterm><computeroutput>GUI/PreventReconfiguration</computeroutput></glossterm> 2056 <glossdef> 2057 <para>Don't allow the user to open the settings dialog for a certain VM.</para> 2058 </glossdef> 2059 </glossentry> 2060 <glossentry> 2061 <glossterm><computeroutput>GUI/PreventSnapshotOperations</computeroutput></glossterm> 2062 <glossdef> 2063 <para>Prevent snapshot operations for a VM from the GUI, either at runtime or when 2064 the VM is powered off.</para> 2065 </glossdef> 2066 </glossentry> 2067 <glossentry> 2068 <glossterm><computeroutput>GUI/HideFromManager</computeroutput></glossterm> 2069 <glossdef> 2070 <para>Hide a certain VM in the VM selector window.</para> 2071 </glossdef> 2072 </glossentry> 2073 <glossentry> 2074 <glossterm><computeroutput>GUI/PreventApplicationUpdate</computeroutput></glossterm> 2075 <glossdef> 2076 <para>Disable the automatic update check and hide the corresponding menu item.</para> 2077 </glossdef> 2078 </glossentry> 2079 </glosslist> 2080 <para>Please note that these settings wouldn't prevent the user from 2081 reconfiguring the VM by <computeroutput>VBoxManage modifyvm</computeroutput>.</para> 3041 3042 <sect2 id="customize-vm-selector"> 3043 3044 <title>VM Selector Customization</title> 3045 3046 <para> 3047 The following per-machine VM extradata settings can be used to 3048 change the behavior of the VM selector window in respect of 3049 certain VMs: 3050 </para> 3051 3052 <screen>VBoxManage setextradata "VM name" SETTING true</screen> 3053 3054 <para> 3055 where <computeroutput>SETTING</computeroutput> can be: 3056 </para> 3057 3058 <variablelist> 3059 3060 <varlistentry> 3061 <term> 3062 <computeroutput>GUI/HideDetails</computeroutput> 3063 </term> 3064 3065 <listitem> 3066 <para> 3067 Do not show the VM configuration of a certain VM. The 3068 details window will remain just empty if this VM is 3069 selected. 3070 </para> 3071 </listitem> 3072 </varlistentry> 3073 3074 <varlistentry> 3075 <term> 3076 <computeroutput>GUI/PreventReconfiguration</computeroutput> 3077 </term> 3078 3079 <listitem> 3080 <para> 3081 Do not allow the user to open the settings dialog for a 3082 certain VM. 3083 </para> 3084 </listitem> 3085 </varlistentry> 3086 3087 <varlistentry> 3088 <term> 3089 <computeroutput>GUI/PreventSnapshotOperations</computeroutput> 3090 </term> 3091 3092 <listitem> 3093 <para> 3094 Prevent snapshot operations for a VM from the GUI, either 3095 at runtime or when the VM is powered off. 3096 </para> 3097 </listitem> 3098 </varlistentry> 3099 3100 <varlistentry> 3101 <term> 3102 <computeroutput>GUI/HideFromManager</computeroutput> 3103 </term> 3104 3105 <listitem> 3106 <para> 3107 Hide a certain VM in the VM selector window. 3108 </para> 3109 </listitem> 3110 </varlistentry> 3111 3112 <varlistentry> 3113 <term> 3114 <computeroutput>GUI/PreventApplicationUpdate</computeroutput> 3115 </term> 3116 3117 <listitem> 3118 <para> 3119 Disable the automatic update check and hide the 3120 corresponding menu item. 3121 </para> 3122 </listitem> 3123 </varlistentry> 3124 3125 </variablelist> 3126 3127 <para> 3128 Please note that these settings would not prevent the user from 3129 reconfiguring the VM by <computeroutput>VBoxManage 3130 modifyvm</computeroutput>. 3131 </para> 2082 3132 2083 3133 </sect2> 2084 3134 2085 <sect2> 2086 <title>Configure VM selector menu entries</title> 2087 <para>You can disable (i.e. black-list) certain entries in the global settings 2088 page of the VM selector:</para> 2089 <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages OPTION[,OPTION...]</screen> 2090 <para>where <computeroutput>OPTION</computeroutput> is one of the 2091 following keywords:</para><glosslist> 2092 <glossentry> 2093 <glossterm><computeroutput>General</computeroutput></glossterm> 2094 <glossdef> 2095 <para>Don't show the <emphasis>General</emphasis> settings pane.</para> 2096 </glossdef> 2097 </glossentry> 2098 2099 <glossentry> 2100 <glossterm><computeroutput>Input</computeroutput></glossterm> 2101 <glossdef> 2102 <para>Don't show the <emphasis>Input</emphasis> settings pane.</para> 2103 </glossdef> 2104 </glossentry> 2105 2106 <glossentry> 2107 <glossterm><computeroutput>Update</computeroutput></glossterm> 2108 <glossdef> 2109 <para>Don't show the <emphasis>Update</emphasis> settings pane.</para> 2110 </glossdef> 2111 </glossentry> 2112 2113 <glossentry> 2114 <glossterm><computeroutput>Language</computeroutput></glossterm> 2115 <glossdef> 2116 <para>Don't show the <emphasis>Language</emphasis> settings pane.</para> 2117 </glossdef> 2118 </glossentry> 2119 2120 <glossentry> 2121 <glossterm><computeroutput>Display</computeroutput></glossterm> 2122 <glossdef> 2123 <para>Don't show the <emphasis>Display</emphasis> settings pane.</para> 2124 </glossdef> 2125 </glossentry> 2126 2127 <glossentry> 2128 <glossterm><computeroutput>Network</computeroutput></glossterm> 2129 <glossdef> 2130 <para>Don't show the <emphasis>Network</emphasis> settings pane.</para> 2131 </glossdef> 2132 </glossentry> 2133 2134 <glossentry> 2135 <glossterm><computeroutput>Extensions</computeroutput></glossterm> 2136 <glossdef> 2137 <para>Don't show the <emphasis>Extensions</emphasis> settings pane.</para> 2138 </glossdef> 2139 </glossentry> 2140 2141 <glossentry> 2142 <glossterm><computeroutput>Proxy</computeroutput></glossterm> 2143 <glossdef> 2144 <para>Don't show the <emphasis>Proxy</emphasis> settings pane.</para> 2145 </glossdef> 2146 </glossentry> 2147 2148 </glosslist> 2149 2150 <para>This is a global setting. Any combination of the above is allowed. 2151 To restore the default behavior, use</para> 2152 <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages</screen> 3135 <sect2 id="config-vm-selector-menu"> 3136 3137 <title>Configure VM Selector Menu Entries</title> 3138 3139 <para> 3140 You can disable, or blacklist, certain entries in the global 3141 settings page of the VM selector: 3142 </para> 3143 3144 <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages OPTION[,OPTION...]</screen> 3145 3146 <para> 3147 where <computeroutput>OPTION</computeroutput> is one of the 3148 following keywords: 3149 </para> 3150 3151 <variablelist> 3152 3153 <varlistentry> 3154 <term> 3155 <computeroutput>General</computeroutput> 3156 </term> 3157 3158 <listitem> 3159 <para> 3160 Do not show the <emphasis>General</emphasis> settings 3161 pane. 3162 </para> 3163 </listitem> 3164 </varlistentry> 3165 3166 <varlistentry> 3167 <term> 3168 <computeroutput>Input</computeroutput> 3169 </term> 3170 3171 <listitem> 3172 <para> 3173 Do not show the <emphasis>Input</emphasis> settings pane. 3174 </para> 3175 </listitem> 3176 </varlistentry> 3177 3178 <varlistentry> 3179 <term> 3180 <computeroutput>Update</computeroutput> 3181 </term> 3182 3183 <listitem> 3184 <para> 3185 Do not show the <emphasis>Update</emphasis> settings pane. 3186 </para> 3187 </listitem> 3188 </varlistentry> 3189 3190 <varlistentry> 3191 <term> 3192 <computeroutput>Language</computeroutput> 3193 </term> 3194 3195 <listitem> 3196 <para> 3197 Do not show the <emphasis>Language</emphasis> settings 3198 pane. 3199 </para> 3200 </listitem> 3201 </varlistentry> 3202 3203 <varlistentry> 3204 <term> 3205 <computeroutput>Display</computeroutput> 3206 </term> 3207 3208 <listitem> 3209 <para> 3210 Do not show the <emphasis>Display</emphasis> settings 3211 pane. 3212 </para> 3213 </listitem> 3214 </varlistentry> 3215 3216 <varlistentry> 3217 <term> 3218 <computeroutput>Network</computeroutput> 3219 </term> 3220 3221 <listitem> 3222 <para> 3223 Do not show the <emphasis>Network</emphasis> settings 3224 pane. 3225 </para> 3226 </listitem> 3227 </varlistentry> 3228 3229 <varlistentry> 3230 <term> 3231 <computeroutput>Extensions</computeroutput> 3232 </term> 3233 3234 <listitem> 3235 <para> 3236 Do not show the <emphasis>Extensions</emphasis> settings 3237 pane. 3238 </para> 3239 </listitem> 3240 </varlistentry> 3241 3242 <varlistentry> 3243 <term> 3244 <computeroutput>Proxy</computeroutput> 3245 </term> 3246 3247 <listitem> 3248 <para> 3249 Do not show the <emphasis>Proxy</emphasis> settings pane. 3250 </para> 3251 </listitem> 3252 </varlistentry> 3253 3254 </variablelist> 3255 3256 <para> 3257 This is a global setting. Any combination of the above is 3258 allowed. To restore the default behavior, use 3259 </para> 3260 3261 <screen>VBoxManage setextradata global GUI/RestrictedGlobalSettingsPages</screen> 2153 3262 2154 3263 </sect2> 2155 3264 2156 <sect2> 2157 <title>Configure VM window menu entries</title> 2158 <para>You can disable (i.e. black-list) certain menu actions in the VM window:</para> 2159 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus OPTION[,OPTION...]</screen> 2160 2161 <para>where <computeroutput>OPTION</computeroutput> is one of the 2162 following keywords:</para><glosslist> 2163 <glossentry> 2164 <glossterm><computeroutput>All</computeroutput></glossterm> 2165 <glossdef> 2166 <para>Don't show any menu in the VM window.</para> 2167 </glossdef> 2168 </glossentry> 2169 2170 <glossentry> 2171 <glossterm><computeroutput>Machine</computeroutput></glossterm> 2172 <glossdef> 2173 <para>Don't show the <emphasis>Machine</emphasis> menu in the VM window.</para> 2174 </glossdef> 2175 </glossentry> 2176 2177 <glossentry> 2178 <glossterm><computeroutput>View</computeroutput></glossterm> 2179 <glossdef> 2180 <para>Don't show the <emphasis>View</emphasis> menu in the VM window.</para> 2181 </glossdef> 2182 </glossentry> 2183 2184 <glossentry> 2185 <glossterm><computeroutput>Devices</computeroutput></glossterm> 2186 <glossdef> 2187 <para>Don't show the <emphasis>Devices</emphasis> menu in the VM window.</para> 2188 </glossdef> 2189 </glossentry> 2190 2191 <glossentry> 2192 <glossterm><computeroutput>Help</computeroutput></glossterm> 2193 <glossdef> 2194 <para>Don't show the <emphasis>Help</emphasis> menu in the VM window.</para> 2195 </glossdef> 2196 </glossentry> 2197 2198 <glossentry> 2199 <glossterm><computeroutput>Debug</computeroutput></glossterm> 2200 <glossdef> 2201 <para>Don't show the <emphasis>Debug</emphasis> menu in the VM window. The debug 2202 menu is only visible if the GUI was started with special command line parameters 2203 or environment variable settings.</para> 2204 </glossdef> 2205 </glossentry> 2206 2207 </glosslist> 2208 2209 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2210 the default behavior, use</para> 2211 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> 2212 2213 <para>You can also disable (i.e. blacklist) certain menu actions of certain 2214 menus. Use the following command to disable certain actions of the 2215 <emphasis>Application</emphasis> menu (only available on Mac OS X hosts):</para> 2216 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> 2217 2218 <para>where <computeroutput>OPTION</computeroutput> is one of the 2219 following keywords:</para><glosslist> 2220 <glossentry> 2221 <glossterm><computeroutput>All</computeroutput></glossterm> 2222 <glossdef> 2223 <para>Don't show any menu item in this menu.</para> 2224 </glossdef> 2225 </glossentry> 2226 <glossentry> 2227 <glossterm><computeroutput>About</computeroutput></glossterm> 2228 <glossdef> 2229 <para>Don't show the <emphasis>About</emphasis> menu item in this menu.</para> 2230 </glossdef> 2231 </glossentry> 2232 </glosslist> 2233 2234 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2235 the default behavior, use</para> 2236 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> 2237 2238 <para>Use the following command to disable certain actions of the <emphasis>Machine</emphasis> 2239 menu:</para> 2240 2241 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> 2242 2243 <para>where <computeroutput>OPTION</computeroutput> is one of the 2244 following keywords:</para><glosslist> 2245 <glossentry> 2246 <glossterm><computeroutput>All</computeroutput></glossterm> 2247 <glossdef> 2248 <para>Don't show any menu item in this menu.</para> 2249 </glossdef> 2250 </glossentry> 2251 <glossentry> 2252 <glossterm><computeroutput>SettingsDialog</computeroutput></glossterm> 2253 <glossdef> 2254 <para>Don't show the <emphasis>Settings</emphasis> menu item in this menu.</para> 2255 </glossdef> 2256 </glossentry> 2257 <glossentry> 2258 <glossterm><computeroutput>TakeSnapshot</computeroutput></glossterm> 2259 <glossdef> 2260 <para>Don't show the <emphasis>Take Snapshot</emphasis> menu item in this menu.</para> 2261 </glossdef> 2262 </glossentry> 2263 <glossentry> 2264 <glossterm><computeroutput>TakeScreenshot</computeroutput></glossterm> 2265 <glossdef> 2266 <para>Don't show the <emphasis>Take Screenshot</emphasis> menu item in this menu.</para> 2267 </glossdef> 2268 </glossentry> 2269 <glossentry> 2270 <glossterm><computeroutput>InformationDialog</computeroutput></glossterm> 2271 <glossdef> 2272 <para>Don't show the <emphasis>Session Information</emphasis> menu item in this menu.</para> 2273 </glossdef> 2274 </glossentry> 2275 <glossentry> 2276 <glossterm><computeroutput>MouseIntegration</computeroutput></glossterm> 2277 <glossdef> 2278 <para>Don't show the <emphasis>Disable Mouse Integration</emphasis> menu item in this menu.</para> 2279 </glossdef> 2280 </glossentry> 2281 <glossentry> 2282 <glossterm><computeroutput>TypeCAD</computeroutput></glossterm> 2283 <glossdef> 2284 <para>Don't show the <emphasis>Insert Ctrl+Alt+Del</emphasis> menu item in this menu.</para> 2285 </glossdef> 2286 </glossentry> 2287 <glossentry> 2288 <glossterm><computeroutput>TypeCABS</computeroutput></glossterm> 2289 <glossdef> 2290 <para>Don't show the <emphasis>Insert Ctrl+Alt+Backspace</emphasis> menu item in 2291 this menu (available on X11 hosts only).</para> 2292 </glossdef> 2293 </glossentry> 2294 <glossentry> 2295 <glossterm><computeroutput>Pause</computeroutput></glossterm> 2296 <glossdef> 2297 <para>Don't show the <emphasis>Pause</emphasis> menu item in this menu.</para> 2298 </glossdef> 2299 </glossentry> 2300 <glossentry> 2301 <glossterm><computeroutput>Reset</computeroutput></glossterm> 2302 <glossdef> 2303 <para>Don't show the <emphasis>Reset</emphasis> menu item in this menu.</para> 2304 </glossdef> 2305 </glossentry> 2306 <glossentry> 2307 <glossterm><computeroutput>SaveState</computeroutput></glossterm> 2308 <glossdef> 2309 <para>Don't show the <emphasis>Save the machine state</emphasis> menu item in this menu.</para> 2310 </glossdef> 2311 </glossentry> 2312 <glossentry> 2313 <glossterm><computeroutput>Shutdown</computeroutput></glossterm> 2314 <glossdef> 2315 <para>Don't show the <emphasis>ACPI Shutdown</emphasis> menu item in this menu.</para> 2316 </glossdef> 2317 </glossentry> 2318 <glossentry> 2319 <glossterm><computeroutput>PowerOff</computeroutput></glossterm> 2320 <glossdef> 2321 <para>Don't show the <emphasis>Power Off the machine</emphasis> menu item in this menu.</para> 2322 </glossdef> 2323 </glossentry> 2324 </glosslist> 2325 2326 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2327 the default behavior, use</para> 2328 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions</screen> 2329 2330 <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> 2331 menu:</para> 2332 2333 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions OPTION[,OPTION...]</screen> 2334 2335 <para>where <computeroutput>OPTION</computeroutput> is one of the 2336 following keywords:</para><glosslist> 2337 <glossentry> 2338 <glossterm><computeroutput>All</computeroutput></glossterm> 2339 <glossdef> 2340 <para>Don't show any menu item in this menu.</para> 2341 </glossdef> 2342 </glossentry> 2343 <glossentry> 2344 <glossterm><computeroutput>Fullscreen</computeroutput></glossterm> 2345 <glossdef> 2346 <para>Don't show the <emphasis>Switch to Fullscreen</emphasis> menu item in this menu.</para> 2347 </glossdef> 2348 </glossentry> 2349 <glossentry> 2350 <glossterm><computeroutput>Seamless</computeroutput></glossterm> 2351 <glossdef> 2352 <para>Don't show the <emphasis>Switch to Seamless Mode</emphasis> menu item in this menu.</para> 2353 </glossdef> 2354 </glossentry> 2355 <glossentry> 2356 <glossterm><computeroutput>Scale</computeroutput></glossterm> 2357 <glossdef> 2358 <para>Don't show the <emphasis>Switch to Scaled Mode</emphasis> menu item in this menu.</para> 2359 </glossdef> 2360 </glossentry> 2361 <glossentry> 2362 <glossterm><computeroutput>GuestAutoresize</computeroutput></glossterm> 2363 <glossdef> 2364 <para>Don't show the <emphasis>Auto-resize Guest Display</emphasis> menu item in this menu.</para> 2365 </glossdef> 2366 </glossentry> 2367 <glossentry> 2368 <glossterm><computeroutput>AdjustWindow</computeroutput></glossterm> 2369 <glossdef> 2370 <para>Don't show the <emphasis>Adjust Window Size</emphasis> menu item in this menu.</para> 2371 </glossdef> 2372 </glossentry> 2373 <glossentry> 2374 <glossterm><computeroutput>Multiscreen</computeroutput></glossterm> 2375 <glossdef> 2376 <para>Don't show the <emphasis>Multiscreen</emphasis> menu item in this menu (only visible in full screen / seamless mode).</para> 2377 </glossdef> 2378 </glossentry> 2379 </glosslist> 2380 2381 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2382 the default behavior, use</para> 2383 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions</screen> 2384 2385 <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> 2386 menu:</para> 2387 2388 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions OPTION[,OPTION...]</screen> 2389 2390 <para>where <computeroutput>OPTION</computeroutput> is one of the 2391 following keywords to disable actions in the <emphasis>Devices</emphasis> menu:</para><glosslist> 2392 <glossentry> 2393 <glossterm><computeroutput>All</computeroutput></glossterm> 2394 <glossdef> 2395 <para>Don't show any menu item in this menu.</para> 2396 </glossdef> 2397 </glossentry> 2398 <glossentry> 2399 <glossterm><computeroutput>OpticalDevices</computeroutput></glossterm> 2400 <glossdef> 2401 <para>Don't show the <emphasis>CD/DVD Devices</emphasis> menu item in this menu.</para> 2402 </glossdef> 2403 </glossentry> 2404 <glossentry> 2405 <glossterm><computeroutput>FloppyDevices</computeroutput></glossterm> 2406 <glossdef> 2407 <para>Don't show the <emphasis>FLoppy Devices</emphasis> menu item in this menu.</para> 2408 </glossdef> 2409 </glossentry> 2410 <glossentry> 2411 <glossterm><computeroutput>USBDevices</computeroutput></glossterm> 2412 <glossdef> 2413 <para>Don't show the <emphasis>USB Devices</emphasis> menu item in this menu.</para> 2414 </glossdef> 2415 </glossentry> 2416 <glossentry> 2417 <glossterm><computeroutput>SharedClipboard</computeroutput></glossterm> 2418 <glossdef> 2419 <para>Don't show the <emphasis>Shared Clipboard</emphasis> menu item in this menu.</para> 2420 </glossdef> 2421 </glossentry> 2422 <glossentry> 2423 <glossterm><computeroutput>DragAndDrop</computeroutput></glossterm> 2424 <glossdef> 2425 <para>Don't show the <emphasis>Drag and Drop</emphasis> menu item in this menu.</para> 2426 </glossdef> 2427 </glossentry> 2428 <glossentry> 2429 <glossterm><computeroutput>NetworkSettings</computeroutput></glossterm> 2430 <glossdef> 2431 <para>Don't show the <emphasis>Network Settings...</emphasis> menu item in this menu.</para> 2432 </glossdef> 2433 </glossentry> 2434 <glossentry> 2435 <glossterm><computeroutput>SharedFoldersSettings</computeroutput></glossterm> 2436 <glossdef> 2437 <para>Don't show the <emphasis>Shared Folders Settings...</emphasis> menu item in this menu.</para> 2438 </glossdef> 2439 </glossentry> 2440 <glossentry> 2441 <glossterm><computeroutput>VRDEServer</computeroutput></glossterm> 2442 <glossdef> 2443 <para>Don't show the <emphasis>Remove Display</emphasis> menu item in this menu.</para> 2444 </glossdef> 2445 </glossentry> 2446 <glossentry> 2447 <glossterm><computeroutput>InstallGuestTools</computeroutput></glossterm> 2448 <glossdef> 2449 <para>Don't show the <emphasis>Insert Guest Additions CD imnage...</emphasis> menu item in this menu.</para> 2450 </glossdef> 2451 </glossentry> 2452 </glosslist> 2453 2454 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2455 the default behavior, use</para> 2456 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions</screen> 2457 2458 <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> 2459 menu:</para> 2460 2461 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions OPTION[,OPTION...]</screen> 2462 2463 <para>where <computeroutput>OPTION</computeroutput> is one of the 2464 following keywords to disable actions in the <emphasis>Debug</emphasis> menu (normally completely disabled):</para><glosslist> 2465 <glossentry> 2466 <glossterm><computeroutput>All</computeroutput></glossterm> 2467 <glossdef> 2468 <para>Don't show any menu item in this menu.</para> 2469 </glossdef> 2470 </glossentry> 2471 <glossentry> 2472 <glossterm><computeroutput>Statistics</computeroutput></glossterm> 2473 <glossdef> 2474 <para>Don't show the <emphasis>Statistics...</emphasis> menu item in this menu.</para> 2475 </glossdef> 2476 </glossentry> 2477 <glossentry> 2478 <glossterm><computeroutput>CommandLine</computeroutput></glossterm> 2479 <glossdef> 2480 <para>Don't show the <emphasis>Command Line...</emphasis> menu item in this menu.</para> 2481 </glossdef> 2482 </glossentry> 2483 <glossentry> 2484 <glossterm><computeroutput>Logging</computeroutput></glossterm> 2485 <glossdef> 2486 <para>Don't show the <emphasis>Logging...</emphasis> menu item in this menu.</para> 2487 </glossdef> 2488 </glossentry> 2489 <glossentry> 2490 <glossterm><computeroutput>LogDialog</computeroutput></glossterm> 2491 <glossdef> 2492 <para>Don't show the <emphasis>Show Log...</emphasis> menu item in this menu.</para> 2493 </glossdef> 2494 </glossentry> 2495 </glosslist> 2496 2497 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2498 the default behavior, use</para> 2499 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions</screen> 2500 2501 <para>Use the following command to disable certain actions of the <emphasis>View</emphasis> 2502 menu:</para> 2503 2504 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions OPTION[,OPTION...]</screen> 2505 2506 <para>where <computeroutput>OPTION</computeroutput> is one of the 2507 following keywords to disable actions in the <emphasis>Help</emphasis> menu (normally completely disabled):</para><glosslist> 2508 <glossentry> 2509 <glossterm><computeroutput>All</computeroutput></glossterm> 2510 <glossdef> 2511 <para>Don't show any menu item in this menu.</para> 2512 </glossdef> 2513 </glossentry> 2514 <glossentry> 2515 <glossterm><computeroutput>Contents</computeroutput></glossterm> 2516 <glossdef> 2517 <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> 2518 </glossdef> 2519 </glossentry> 2520 <glossentry> 2521 <glossterm><computeroutput>WebSite</computeroutput></glossterm> 2522 <glossdef> 2523 <para>Don't show the <emphasis>VirtualBox Web Site...</emphasis> menu item in this menu.</para> 2524 </glossdef> 2525 </glossentry> 2526 <glossentry> 2527 <glossterm><computeroutput>ResetWarnings</computeroutput></glossterm> 2528 <glossdef> 2529 <para>Don't show the <emphasis>Reset All Warnings</emphasis> menu item in this menu.</para> 2530 </glossdef> 2531 </glossentry> 2532 <glossentry> 2533 <glossterm><computeroutput>NetworkAccessManager</computeroutput></glossterm> 2534 <glossdef> 2535 <para>Don't show the <emphasis>Network Operations Manager</emphasis> menu item in this menu.</para> 2536 </glossdef> 2537 </glossentry> 2538 <glossentry> 2539 <glossterm><computeroutput>About</computeroutput></glossterm> 2540 <glossdef> 2541 <para>Don't show the <emphasis>About</emphasis> menu item in this menu (only on non Mac OS X hosts).</para> 2542 </glossdef> 2543 </glossentry> 2544 <glossentry> 2545 <glossterm><computeroutput>Contents</computeroutput></glossterm> 2546 <glossdef> 2547 <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> 2548 </glossdef> 2549 </glossentry> 2550 <glossentry> 2551 <glossterm><computeroutput>Contents</computeroutput></glossterm> 2552 <glossdef> 2553 <para>Don't show the <emphasis>Contents...</emphasis> menu item in this menu.</para> 2554 </glossdef> 2555 </glossentry> 2556 </glosslist> 2557 2558 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2559 the default behavior, use</para> 2560 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions</screen> 3265 <sect2 id="config-vm-window-menu"> 3266 3267 <title>Configure VM Window Menu Entries</title> 3268 3269 <para> 3270 You can disable, or blacklist, certain menu actions in the VM 3271 window: 3272 </para> 3273 3274 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus OPTION[,OPTION...]</screen> 3275 3276 <para> 3277 where <computeroutput>OPTION</computeroutput> is one of the 3278 following keywords: 3279 </para> 3280 3281 <variablelist> 3282 3283 <varlistentry> 3284 <term> 3285 <computeroutput>All</computeroutput> 3286 </term> 3287 3288 <listitem> 3289 <para> 3290 Do not show any menu in the VM window. 3291 </para> 3292 </listitem> 3293 </varlistentry> 3294 3295 <varlistentry> 3296 <term> 3297 <computeroutput>Machine</computeroutput> 3298 </term> 3299 3300 <listitem> 3301 <para> 3302 Do not show the <emphasis>Machine</emphasis> menu in the 3303 VM window. 3304 </para> 3305 </listitem> 3306 </varlistentry> 3307 3308 <varlistentry> 3309 <term> 3310 <computeroutput>View</computeroutput> 3311 </term> 3312 3313 <listitem> 3314 <para> 3315 Do not show the <emphasis>View</emphasis> menu in the VM 3316 window. 3317 </para> 3318 </listitem> 3319 </varlistentry> 3320 3321 <varlistentry> 3322 <term> 3323 <computeroutput>Devices</computeroutput> 3324 </term> 3325 3326 <listitem> 3327 <para> 3328 Do not show the <emphasis>Devices</emphasis> menu in the 3329 VM window. 3330 </para> 3331 </listitem> 3332 </varlistentry> 3333 3334 <varlistentry> 3335 <term> 3336 <computeroutput>Help</computeroutput> 3337 </term> 3338 3339 <listitem> 3340 <para> 3341 Do not show the <emphasis>Help</emphasis> menu in the VM 3342 window. 3343 </para> 3344 </listitem> 3345 </varlistentry> 3346 3347 <varlistentry> 3348 <term> 3349 <computeroutput>Debug</computeroutput> 3350 </term> 3351 3352 <listitem> 3353 <para> 3354 Do not show the <emphasis>Debug</emphasis> menu in the VM 3355 window. The debug menu is only visible if the GUI was 3356 started with special command line parameters or 3357 environment variable settings. 3358 </para> 3359 </listitem> 3360 </varlistentry> 3361 3362 </variablelist> 3363 3364 <para> 3365 This is a per-VM setting. Any combination of the above is 3366 allowed. To restore the default behavior, use 3367 </para> 3368 3369 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> 3370 3371 <para> 3372 You can also disable, or blacklist, certain menu actions of 3373 certain menus. Use the following command to disable certain 3374 actions of the <emphasis>Application</emphasis> menu. This is 3375 only available on Mac OS X hosts. 3376 </para> 3377 3378 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> 3379 3380 <para> 3381 where <computeroutput>OPTION</computeroutput> is one of the 3382 following keywords: 3383 </para> 3384 3385 <variablelist> 3386 3387 <varlistentry> 3388 <term> 3389 <computeroutput>All</computeroutput> 3390 </term> 3391 3392 <listitem> 3393 <para> 3394 Do not show any menu item in this menu. 3395 </para> 3396 </listitem> 3397 </varlistentry> 3398 3399 <varlistentry> 3400 <term> 3401 <computeroutput>About</computeroutput> 3402 </term> 3403 3404 <listitem> 3405 <para> 3406 Do not show the <emphasis>About</emphasis> menu item in 3407 this menu. 3408 </para> 3409 </listitem> 3410 </varlistentry> 3411 3412 </variablelist> 3413 3414 <para> 3415 This is a per-VM setting. Any combination of the above is 3416 allowed. To restore the default behavior, use 3417 </para> 3418 3419 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeMenus</screen> 3420 3421 <para> 3422 Use the following command to disable certain actions of the 3423 <emphasis>Machine</emphasis> menu: 3424 </para> 3425 3426 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions OPTION[,OPTION...]</screen> 3427 3428 <para> 3429 where <computeroutput>OPTION</computeroutput> is one of the 3430 following keywords: 3431 </para> 3432 3433 <variablelist> 3434 3435 <varlistentry> 3436 <term> 3437 <computeroutput>All</computeroutput> 3438 </term> 3439 3440 <listitem> 3441 <para> 3442 Do not show any menu item in this menu. 3443 </para> 3444 </listitem> 3445 </varlistentry> 3446 3447 <varlistentry> 3448 <term> 3449 <computeroutput>SettingsDialog</computeroutput> 3450 </term> 3451 3452 <listitem> 3453 <para> 3454 Do not show the <emphasis>Settings</emphasis> menu item in 3455 this menu. 3456 </para> 3457 </listitem> 3458 </varlistentry> 3459 3460 <varlistentry> 3461 <term> 3462 <computeroutput>TakeSnapshot</computeroutput> 3463 </term> 3464 3465 <listitem> 3466 <para> 3467 Do not show the <emphasis>Take Snapshot</emphasis> menu 3468 item in this menu. 3469 </para> 3470 </listitem> 3471 </varlistentry> 3472 3473 <varlistentry> 3474 <term> 3475 <computeroutput>TakeScreenshot</computeroutput> 3476 </term> 3477 3478 <listitem> 3479 <para> 3480 Do not show the <emphasis>Take Screenshot</emphasis> menu 3481 item in this menu. 3482 </para> 3483 </listitem> 3484 </varlistentry> 3485 3486 <varlistentry> 3487 <term> 3488 <computeroutput>InformationDialog</computeroutput> 3489 </term> 3490 3491 <listitem> 3492 <para> 3493 Do not show the <emphasis>Session Information</emphasis> 3494 menu item in this menu. 3495 </para> 3496 </listitem> 3497 </varlistentry> 3498 3499 <varlistentry> 3500 <term> 3501 <computeroutput>MouseIntegration</computeroutput> 3502 </term> 3503 3504 <listitem> 3505 <para> 3506 Do not show the <emphasis>Disable Mouse 3507 Integration</emphasis> menu item in this menu. 3508 </para> 3509 </listitem> 3510 </varlistentry> 3511 3512 <varlistentry> 3513 <term> 3514 <computeroutput>TypeCAD</computeroutput> 3515 </term> 3516 3517 <listitem> 3518 <para> 3519 Do not show the <emphasis>Insert Ctrl+Alt+Del</emphasis> 3520 menu item in this menu. 3521 </para> 3522 </listitem> 3523 </varlistentry> 3524 3525 <varlistentry> 3526 <term> 3527 <computeroutput>TypeCABS</computeroutput> 3528 </term> 3529 3530 <listitem> 3531 <para> 3532 Do not show the <emphasis>Insert 3533 Ctrl+Alt+Backspace</emphasis> menu item in this menu. 3534 Available on X11 hosts only. 3535 </para> 3536 </listitem> 3537 </varlistentry> 3538 3539 <varlistentry> 3540 <term> 3541 <computeroutput>Pause</computeroutput> 3542 </term> 3543 3544 <listitem> 3545 <para> 3546 Do not show the <emphasis>Pause</emphasis> menu item in 3547 this menu. 3548 </para> 3549 </listitem> 3550 </varlistentry> 3551 3552 <varlistentry> 3553 <term> 3554 <computeroutput>Reset</computeroutput> 3555 </term> 3556 3557 <listitem> 3558 <para> 3559 Do not show the <emphasis>Reset</emphasis> menu item in 3560 this menu. 3561 </para> 3562 </listitem> 3563 </varlistentry> 3564 3565 <varlistentry> 3566 <term> 3567 <computeroutput>SaveState</computeroutput> 3568 </term> 3569 3570 <listitem> 3571 <para> 3572 Do not show the <emphasis>Save the machine 3573 state</emphasis> menu item in this menu. 3574 </para> 3575 </listitem> 3576 </varlistentry> 3577 3578 <varlistentry> 3579 <term> 3580 <computeroutput>Shutdown</computeroutput> 3581 </term> 3582 3583 <listitem> 3584 <para> 3585 Do not show the <emphasis>ACPI Shutdown</emphasis> menu 3586 item in this menu. 3587 </para> 3588 </listitem> 3589 </varlistentry> 3590 3591 <varlistentry> 3592 <term> 3593 <computeroutput>PowerOff</computeroutput> 3594 </term> 3595 3596 <listitem> 3597 <para> 3598 Do not show the <emphasis>Power Off the machine</emphasis> 3599 menu item in this menu. 3600 </para> 3601 </listitem> 3602 </varlistentry> 3603 3604 </variablelist> 3605 3606 <para> 3607 This is a per-VM setting. Any combination of the above is 3608 allowed. To restore the default behavior, use 3609 </para> 3610 3611 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeApplicationMenuActions</screen> 3612 3613 <para> 3614 Use the following command to disable certain actions of the 3615 <emphasis>View</emphasis> menu: 3616 </para> 3617 3618 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions OPTION[,OPTION...]</screen> 3619 3620 <para> 3621 where <computeroutput>OPTION</computeroutput> is one of the 3622 following keywords: 3623 </para> 3624 3625 <variablelist> 3626 3627 <varlistentry> 3628 <term> 3629 <computeroutput>All</computeroutput> 3630 </term> 3631 3632 <listitem> 3633 <para> 3634 Do not show any menu item in this menu. 3635 </para> 3636 </listitem> 3637 </varlistentry> 3638 3639 <varlistentry> 3640 <term> 3641 <computeroutput>Fullscreen</computeroutput> 3642 </term> 3643 3644 <listitem> 3645 <para> 3646 Do not show the <emphasis>Switch to Fullscreen</emphasis> 3647 menu item in this menu. 3648 </para> 3649 </listitem> 3650 </varlistentry> 3651 3652 <varlistentry> 3653 <term> 3654 <computeroutput>Seamless</computeroutput> 3655 </term> 3656 3657 <listitem> 3658 <para> 3659 Do not show the <emphasis>Switch to Seamless 3660 Mode</emphasis> menu item in this menu. 3661 </para> 3662 </listitem> 3663 </varlistentry> 3664 3665 <varlistentry> 3666 <term> 3667 <computeroutput>Scale</computeroutput> 3668 </term> 3669 3670 <listitem> 3671 <para> 3672 Do not show the <emphasis>Switch to Scaled Mode</emphasis> 3673 menu item in this menu. 3674 </para> 3675 </listitem> 3676 </varlistentry> 3677 3678 <varlistentry> 3679 <term> 3680 <computeroutput>GuestAutoresize</computeroutput> 3681 </term> 3682 3683 <listitem> 3684 <para> 3685 Do not show the <emphasis>Auto-resize Guest 3686 Display</emphasis> menu item in this menu. 3687 </para> 3688 </listitem> 3689 </varlistentry> 3690 3691 <varlistentry> 3692 <term> 3693 <computeroutput>AdjustWindow</computeroutput> 3694 </term> 3695 3696 <listitem> 3697 <para> 3698 Do not show the <emphasis>Adjust Window Size</emphasis> 3699 menu item in this menu. 3700 </para> 3701 </listitem> 3702 </varlistentry> 3703 3704 <varlistentry> 3705 <term> 3706 <computeroutput>Multiscreen</computeroutput> 3707 </term> 3708 3709 <listitem> 3710 <para> 3711 Do not show the <emphasis>Multiscreen</emphasis> menu item 3712 in this menu. Only visible in full screen/seamless mode. 3713 </para> 3714 </listitem> 3715 </varlistentry> 3716 3717 </variablelist> 3718 3719 <para> 3720 This is a per-VM setting. Any combination of the above is 3721 allowed. To restore the default behavior, use 3722 </para> 3723 3724 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeViewMenuActions</screen> 3725 3726 <para> 3727 Use the following command to disable certain actions of the 3728 <emphasis>View</emphasis> menu: 3729 </para> 3730 3731 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions OPTION[,OPTION...]</screen> 3732 3733 <para> 3734 where <computeroutput>OPTION</computeroutput> is one of the 3735 following keywords to disable actions in the 3736 <emphasis>Devices</emphasis> menu: 3737 </para> 3738 3739 <variablelist> 3740 3741 <varlistentry> 3742 <term> 3743 <computeroutput>All</computeroutput> 3744 </term> 3745 3746 <listitem> 3747 <para> 3748 Do not show any menu item in this menu. 3749 </para> 3750 </listitem> 3751 </varlistentry> 3752 3753 <varlistentry> 3754 <term> 3755 <computeroutput>OpticalDevices</computeroutput> 3756 </term> 3757 3758 <listitem> 3759 <para> 3760 Do not show the <emphasis>CD/DVD Devices</emphasis> menu 3761 item in this menu. 3762 </para> 3763 </listitem> 3764 </varlistentry> 3765 3766 <varlistentry> 3767 <term> 3768 <computeroutput>FloppyDevices</computeroutput> 3769 </term> 3770 3771 <listitem> 3772 <para> 3773 Do not show the <emphasis>Floppy Devices</emphasis> menu 3774 item in this menu. 3775 </para> 3776 </listitem> 3777 </varlistentry> 3778 3779 <varlistentry> 3780 <term> 3781 <computeroutput>USBDevices</computeroutput> 3782 </term> 3783 3784 <listitem> 3785 <para> 3786 Do not show the <emphasis>USB Devices</emphasis> menu item 3787 in this menu. 3788 </para> 3789 </listitem> 3790 </varlistentry> 3791 3792 <varlistentry> 3793 <term> 3794 <computeroutput>SharedClipboard</computeroutput> 3795 </term> 3796 3797 <listitem> 3798 <para> 3799 Do not show the <emphasis>Shared Clipboard</emphasis> menu 3800 item in this menu. 3801 </para> 3802 </listitem> 3803 </varlistentry> 3804 3805 <varlistentry> 3806 <term> 3807 <computeroutput>DragAndDrop</computeroutput> 3808 </term> 3809 3810 <listitem> 3811 <para> 3812 Do not show the <emphasis>Drag and Drop</emphasis> menu 3813 item in this menu. 3814 </para> 3815 </listitem> 3816 </varlistentry> 3817 3818 <varlistentry> 3819 <term> 3820 <computeroutput>NetworkSettings</computeroutput> 3821 </term> 3822 3823 <listitem> 3824 <para> 3825 Do not show the <emphasis>Network Settings...</emphasis> 3826 menu item in this menu. 3827 </para> 3828 </listitem> 3829 </varlistentry> 3830 3831 <varlistentry> 3832 <term> 3833 <computeroutput>SharedFoldersSettings</computeroutput> 3834 </term> 3835 3836 <listitem> 3837 <para> 3838 Do not show the <emphasis>Shared Folders 3839 Settings...</emphasis> menu item in this menu. 3840 </para> 3841 </listitem> 3842 </varlistentry> 3843 3844 <varlistentry> 3845 <term> 3846 <computeroutput>VRDEServer</computeroutput> 3847 </term> 3848 3849 <listitem> 3850 <para> 3851 Do not show the <emphasis>Remove Display</emphasis> menu 3852 item in this menu. 3853 </para> 3854 </listitem> 3855 </varlistentry> 3856 3857 <varlistentry> 3858 <term> 3859 <computeroutput>InstallGuestTools</computeroutput> 3860 </term> 3861 3862 <listitem> 3863 <para> 3864 Do not show the <emphasis>Insert Guest Additions CD 3865 image...</emphasis> menu item in this menu. 3866 </para> 3867 </listitem> 3868 </varlistentry> 3869 3870 </variablelist> 3871 3872 <para> 3873 This is a per-VM setting. Any combination of the above is 3874 allowed. To restore the default behavior, use 3875 </para> 3876 3877 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDevicesMenuActions</screen> 3878 3879 <para> 3880 Use the following command to disable certain actions of the 3881 <emphasis>View</emphasis> menu: 3882 </para> 3883 3884 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions OPTION[,OPTION...]</screen> 3885 3886 <para> 3887 where <computeroutput>OPTION</computeroutput> is one of the 3888 following keywords to disable actions in the 3889 <emphasis>Debug</emphasis> menu, which is normally completely 3890 disabled: 3891 </para> 3892 3893 <variablelist> 3894 3895 <varlistentry> 3896 <term> 3897 <computeroutput>All</computeroutput> 3898 </term> 3899 3900 <listitem> 3901 <para> 3902 Do not show any menu item in this menu. 3903 </para> 3904 </listitem> 3905 </varlistentry> 3906 3907 <varlistentry> 3908 <term> 3909 <computeroutput>Statistics</computeroutput> 3910 </term> 3911 3912 <listitem> 3913 <para> 3914 Do not show the <emphasis>Statistics...</emphasis> menu 3915 item in this menu. 3916 </para> 3917 </listitem> 3918 </varlistentry> 3919 3920 <varlistentry> 3921 <term> 3922 <computeroutput>CommandLine</computeroutput> 3923 </term> 3924 3925 <listitem> 3926 <para> 3927 Do not show the <emphasis>Command Line...</emphasis> menu 3928 item in this menu. 3929 </para> 3930 </listitem> 3931 </varlistentry> 3932 3933 <varlistentry> 3934 <term> 3935 <computeroutput>Logging</computeroutput> 3936 </term> 3937 3938 <listitem> 3939 <para> 3940 Do not show the <emphasis>Logging...</emphasis> menu item 3941 in this menu. 3942 </para> 3943 </listitem> 3944 </varlistentry> 3945 3946 <varlistentry> 3947 <term> 3948 <computeroutput>LogDialog</computeroutput> 3949 </term> 3950 3951 <listitem> 3952 <para> 3953 Do not show the <emphasis>Show Log...</emphasis> menu item 3954 in this menu. 3955 </para> 3956 </listitem> 3957 </varlistentry> 3958 3959 </variablelist> 3960 3961 <para> 3962 This is a per-VM setting. Any combination of the above is 3963 allowed. To restore the default behavior, use 3964 </para> 3965 3966 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeDebuggerMenuActions</screen> 3967 3968 <para> 3969 Use the following command to disable certain actions of the 3970 <emphasis>View</emphasis> menu: 3971 </para> 3972 3973 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions OPTION[,OPTION...]</screen> 3974 3975 <para> 3976 where <computeroutput>OPTION</computeroutput> is one of the 3977 following keywords to disable actions in the 3978 <emphasis>Help</emphasis> menu, which is normally completely 3979 disabled: 3980 </para> 3981 3982 <variablelist> 3983 3984 <varlistentry> 3985 <term> 3986 <computeroutput>All</computeroutput> 3987 </term> 3988 3989 <listitem> 3990 <para> 3991 Do not show any menu item in this menu. 3992 </para> 3993 </listitem> 3994 </varlistentry> 3995 3996 <varlistentry> 3997 <term> 3998 <computeroutput>Contents</computeroutput> 3999 </term> 4000 4001 <listitem> 4002 <para> 4003 Do not show the <emphasis>Contents...</emphasis> menu item 4004 in this menu. 4005 </para> 4006 </listitem> 4007 </varlistentry> 4008 4009 <varlistentry> 4010 <term> 4011 <computeroutput>WebSite</computeroutput> 4012 </term> 4013 4014 <listitem> 4015 <para> 4016 Do not show the <emphasis>VirtualBox Web 4017 Site...</emphasis> menu item in this menu. 4018 </para> 4019 </listitem> 4020 </varlistentry> 4021 4022 <varlistentry> 4023 <term> 4024 <computeroutput>ResetWarnings</computeroutput> 4025 </term> 4026 4027 <listitem> 4028 <para> 4029 Do not show the <emphasis>Reset All Warnings</emphasis> 4030 menu item in this menu. 4031 </para> 4032 </listitem> 4033 </varlistentry> 4034 4035 <varlistentry> 4036 <term> 4037 <computeroutput>NetworkAccessManager</computeroutput> 4038 </term> 4039 4040 <listitem> 4041 <para> 4042 Do not show the <emphasis>Network Operations 4043 Manager</emphasis> menu item in this menu. 4044 </para> 4045 </listitem> 4046 </varlistentry> 4047 4048 <varlistentry> 4049 <term> 4050 <computeroutput>About</computeroutput> 4051 </term> 4052 4053 <listitem> 4054 <para> 4055 Do not show the <emphasis>About</emphasis> menu item in 4056 this menu. Only for non-Mac OS X hosts. 4057 </para> 4058 </listitem> 4059 </varlistentry> 4060 4061 <varlistentry> 4062 <term> 4063 <computeroutput>Contents</computeroutput> 4064 </term> 4065 4066 <listitem> 4067 <para> 4068 Do not show the <emphasis>Contents...</emphasis> menu item 4069 in this menu. 4070 </para> 4071 </listitem> 4072 </varlistentry> 4073 4074 <varlistentry> 4075 <term> 4076 <computeroutput>Contents</computeroutput> 4077 </term> 4078 4079 <listitem> 4080 <para> 4081 Do not show the <emphasis>Contents...</emphasis> menu item 4082 in this menu. 4083 </para> 4084 </listitem> 4085 </varlistentry> 4086 4087 </variablelist> 4088 4089 <para> 4090 This is a per-VM setting. Any combination of the above is 4091 allowed. To restore the default behavior, use 4092 </para> 4093 4094 <screen>VBoxManage setextradata "VM name" GUI/RestrictedRuntimeHelpMenuActions</screen> 2561 4095 2562 4096 </sect2> 2563 4097 2564 <sect2> 2565 2566 <title>Configure VM window status bar entries</title> 2567 2568 <para>You can disable (i.e. black-list) certain status bar items:</para> 2569 <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators OPTION[,OPTION...]</screen> 2570 2571 <para>where <computeroutput>OPTION</computeroutput> is one of the 2572 following keywords:</para><glosslist> 2573 <glossentry> 2574 <glossterm><computeroutput>HardDisks</computeroutput></glossterm> 2575 <glossdef> 2576 <para>Don't show the hard disk icon in the VM window status bar. By default 2577 the hard disk icon is only shown if the VM configuration contains one or 2578 more hard disks.</para> 2579 </glossdef> 2580 </glossentry> 2581 2582 <glossentry> 2583 <glossterm><computeroutput>OpticalDisks</computeroutput></glossterm> 2584 <glossdef> 2585 <para>Don't show the CD icon in the VM window status bar. By default the 2586 CD icon is only shown if the VM configuration contains one or more CD 2587 drives.</para> 2588 </glossdef> 2589 </glossentry> 2590 2591 <glossentry> 2592 <glossterm><computeroutput>FloppyDisks</computeroutput></glossterm> 2593 <glossdef> 2594 <para>Don't show the floppy icon in the VM window status bar. By default the 2595 floppy icon is only shown if the VM configuration contains one or more 2596 floppy drives.</para> 2597 </glossdef> 2598 </glossentry> 2599 2600 <glossentry> 2601 <glossterm><computeroutput>Network</computeroutput></glossterm> 2602 <glossdef> 2603 <para>Don't show the network icon in the VM window status bar. By default 2604 the network icon is only shown if the VM configuration contains one or more 2605 active network adapters.</para> 2606 </glossdef> 2607 </glossentry> 2608 2609 <glossentry> 2610 <glossterm><computeroutput>USB</computeroutput></glossterm> 2611 <glossdef> 2612 <para>Don't show the USB icon in the status bar. </para> 2613 </glossdef> 2614 </glossentry> 2615 2616 <glossentry> 2617 <glossterm><computeroutput>SharedFolders</computeroutput></glossterm> 2618 <glossdef> 2619 <para>Don't show the shared folders icon in the status bar.</para> 2620 </glossdef> 2621 </glossentry> 2622 2623 <glossentry> 2624 <glossterm><computeroutput>VideoCapture</computeroutput></glossterm> 2625 <glossdef> 2626 <para>Don't show the video capture icon in the status bar.</para> 2627 </glossdef> 2628 </glossentry> 2629 2630 <glossentry> 2631 <glossterm><computeroutput>Features</computeroutput></glossterm> 2632 <glossdef> 2633 <para>Don't show the CPU features icon in the status bar.</para> 2634 </glossdef> 2635 </glossentry> 2636 2637 <glossentry> 2638 <glossterm><computeroutput>Mouse</computeroutput></glossterm> 2639 <glossdef> 2640 <para>Don't show the mouse icon in the status bar.</para> 2641 </glossdef> 2642 </glossentry> 2643 2644 <glossentry> 2645 <glossterm><computeroutput>Keyboard</computeroutput></glossterm> 2646 <glossdef> 2647 <para>Don't show the keyboard icon in the status bar.</para> 2648 </glossdef> 2649 </glossentry> 2650 2651 </glosslist> 2652 2653 <para>This is a per-VM setting. Any combination of the above is allowed. If all options 2654 are specified, no icons are displayed in the status bar of the VM window. To restore 2655 the default behavior, use</para> 2656 2657 <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators</screen> 4098 <sect2 id="config-vm-window-status-bar"> 4099 4100 <title>Configure VM Window Status Bar Entries</title> 4101 4102 <para> 4103 You can disable, or blacklist, certain status bar items: 4104 </para> 4105 4106 <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators OPTION[,OPTION...]</screen> 4107 4108 <para> 4109 where <computeroutput>OPTION</computeroutput> is one of the 4110 following keywords: 4111 </para> 4112 4113 <variablelist> 4114 4115 <varlistentry> 4116 <term> 4117 <computeroutput>HardDisks</computeroutput> 4118 </term> 4119 4120 <listitem> 4121 <para> 4122 Do not show the hard disk icon in the VM window status 4123 bar. By default the hard disk icon is only shown if the VM 4124 configuration contains one or more hard disks. 4125 </para> 4126 </listitem> 4127 </varlistentry> 4128 4129 <varlistentry> 4130 <term> 4131 <computeroutput>OpticalDisks</computeroutput> 4132 </term> 4133 4134 <listitem> 4135 <para> 4136 Do not show the CD icon in the VM window status bar. By 4137 default the CD icon is only shown if the VM configuration 4138 contains one or more CD drives. 4139 </para> 4140 </listitem> 4141 </varlistentry> 4142 4143 <varlistentry> 4144 <term> 4145 <computeroutput>FloppyDisks</computeroutput> 4146 </term> 4147 4148 <listitem> 4149 <para> 4150 Do not show the floppy icon in the VM window status bar. 4151 By default the floppy icon is only shown if the VM 4152 configuration contains one or more floppy drives. 4153 </para> 4154 </listitem> 4155 </varlistentry> 4156 4157 <varlistentry> 4158 <term> 4159 <computeroutput>Network</computeroutput> 4160 </term> 4161 4162 <listitem> 4163 <para> 4164 Do not show the network icon in the VM window status bar. 4165 By default the network icon is only shown if the VM 4166 configuration contains one or more active network 4167 adapters. 4168 </para> 4169 </listitem> 4170 </varlistentry> 4171 4172 <varlistentry> 4173 <term> 4174 <computeroutput>USB</computeroutput> 4175 </term> 4176 4177 <listitem> 4178 <para> 4179 Do not show the USB icon in the status bar. 4180 </para> 4181 </listitem> 4182 </varlistentry> 4183 4184 <varlistentry> 4185 <term> 4186 <computeroutput>SharedFolders</computeroutput> 4187 </term> 4188 4189 <listitem> 4190 <para> 4191 Do not show the shared folders icon in the status bar. 4192 </para> 4193 </listitem> 4194 </varlistentry> 4195 4196 <varlistentry> 4197 <term> 4198 <computeroutput>VideoCapture</computeroutput> 4199 </term> 4200 4201 <listitem> 4202 <para> 4203 Do not show the video capture icon in the status bar. 4204 </para> 4205 </listitem> 4206 </varlistentry> 4207 4208 <varlistentry> 4209 <term> 4210 <computeroutput>Features</computeroutput> 4211 </term> 4212 4213 <listitem> 4214 <para> 4215 Do not show the CPU features icon in the status bar. 4216 </para> 4217 </listitem> 4218 </varlistentry> 4219 4220 <varlistentry> 4221 <term> 4222 <computeroutput>Mouse</computeroutput> 4223 </term> 4224 4225 <listitem> 4226 <para> 4227 Do not show the mouse icon in the status bar. 4228 </para> 4229 </listitem> 4230 </varlistentry> 4231 4232 <varlistentry> 4233 <term> 4234 <computeroutput>Keyboard</computeroutput> 4235 </term> 4236 4237 <listitem> 4238 <para> 4239 Do not show the keyboard icon in the status bar. 4240 </para> 4241 </listitem> 4242 </varlistentry> 4243 4244 </variablelist> 4245 4246 <para> 4247 This is a per-VM setting. Any combination of the above is 4248 allowed. If all options are specified, no icons are displayed in 4249 the status bar of the VM window. To restore the default 4250 behavior, use 4251 </para> 4252 4253 <screen>VBoxManage setextradata "VM name" GUI/RestrictedStatusBarIndicators</screen> 2658 4254 2659 4255 </sect2> 2660 4256 2661 <sect2> 2662 <title>Configure VM window visual modes</title> 2663 2664 <para>You can disable (i.e. black-list) certain VM visual modes:</para> 2665 <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates OPTION[,OPTION...]</screen> 2666 2667 <para>where <computeroutput>OPTION</computeroutput> is one of the 2668 following keywords:</para><glosslist> 2669 <glossentry> 2670 <glossterm><computeroutput>Fullscreen</computeroutput></glossterm> 2671 <glossdef> 2672 <para>Don't allow to switch the VM into full screen mode.</para> 2673 </glossdef> 2674 </glossentry> 2675 2676 <glossentry> 2677 <glossterm><computeroutput>Seamless</computeroutput></glossterm> 2678 <glossdef> 2679 <para>Don't allow to switch the VM into seamless mode.</para> 2680 </glossdef> 2681 </glossentry> 2682 2683 <glossentry> 2684 <glossterm><computeroutput>Scale</computeroutput></glossterm> 2685 <glossdef> 2686 <para>Don't allow to switch the VM into scale mode.</para> 2687 </glossdef> 2688 </glossentry> 2689 2690 </glosslist> 2691 2692 <para>This is a per-VM setting. Any combination of the above is allowed. To restore 2693 the default behavior, use</para> 2694 2695 <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates</screen> 4257 <sect2 id="config-vm-window-visual-modes"> 4258 4259 <title>Configure VM Window Visual Modes</title> 4260 4261 <para> 4262 You can disable, or blacklist, certain VM visual modes: 4263 </para> 4264 4265 <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates OPTION[,OPTION...]</screen> 4266 4267 <para> 4268 where <computeroutput>OPTION</computeroutput> is one of the 4269 following keywords: 4270 </para> 4271 4272 <variablelist> 4273 4274 <varlistentry> 4275 <term> 4276 <computeroutput>Fullscreen</computeroutput> 4277 </term> 4278 4279 <listitem> 4280 <para> 4281 Do not allow to switch the VM into full screen mode. 4282 </para> 4283 </listitem> 4284 </varlistentry> 4285 4286 <varlistentry> 4287 <term> 4288 <computeroutput>Seamless</computeroutput> 4289 </term> 4290 4291 <listitem> 4292 <para> 4293 Do not allow to switch the VM into seamless mode. 4294 </para> 4295 </listitem> 4296 </varlistentry> 4297 4298 <varlistentry> 4299 <term> 4300 <computeroutput>Scale</computeroutput> 4301 </term> 4302 4303 <listitem> 4304 <para> 4305 Do not allow to switch the VM into scale mode. 4306 </para> 4307 </listitem> 4308 </varlistentry> 4309 4310 </variablelist> 4311 4312 <para> 4313 This is a per-VM setting. Any combination of the above is 4314 allowed. To restore the default behavior, use 4315 </para> 4316 4317 <screen>VBoxManage setextradata "VM name" GUI/RestrictedVisualStates</screen> 2696 4318 2697 4319 </sect2> 2698 4320 2699 <sect2> 2700 <title>Host Key customization</title> 2701 2702 <para>To disable all host key combinations, open the preferences and 2703 change the host key to <emphasis>None</emphasis>. This might be useful 2704 when using VirtualBox in a kiosk mode.</para> 2705 2706 <para>To redefine or disable certain host key actions, use the following command:</para> 2707 2708 <screen>VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=F,...."</screen> 2709 2710 <para>The following list shows the possible host key actions together with their default 2711 host key shortcut. Setting an action to <emphasis>None</emphasis> will disable 2712 that host key action.</para> 2713 <table> 2714 <title>Host Key customization</title> 4321 <sect2 id="host-key-customize"> 4322 4323 <title>Host Key Customization</title> 4324 4325 <para> 4326 To disable all Host key combinations, open the preferences and 4327 change the Host key to None. This might be useful when using 4328 VirtualBox in a kiosk mode. 4329 </para> 4330 4331 <para> 4332 To redefine or disable certain Host key actions, use the 4333 following command: 4334 </para> 4335 4336 <screen>VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=F,...."</screen> 4337 4338 <para> 4339 <xref linkend="table-host-key-customize"/> shows the possible 4340 Host key actions, together with their default Host key shortcut. 4341 Setting an action to None will disable that Host key action. 4342 </para> 4343 4344 <table id="table-host-key-customize"> 4345 <title>Host Key Customization</title> 2715 4346 <tgroup cols="3"> 2716 4347 <thead> … … 2725 4356 <entry><computeroutput>TakeSnapshot</computeroutput></entry> 2726 4357 <entry>T</entry> 2727 <entry> take a snapshot</entry>4358 <entry>Take a snapshot</entry> 2728 4359 </row> 2729 4360 <row> 2730 4361 <entry><computeroutput>TakeScreenshot</computeroutput></entry> 2731 4362 <entry>E</entry> 2732 <entry> take a screenshot</entry>4363 <entry>Take a screenshot</entry> 2733 4364 </row> 2734 4365 <row> 2735 4366 <entry><computeroutput>MouseIntegration</computeroutput></entry> 2736 4367 <entry>I</entry> 2737 <entry> toggle mouse integration</entry>4368 <entry>Toggle mouse integration</entry> 2738 4369 </row> 2739 4370 <row> 2740 4371 <entry><computeroutput>TypeCAD</computeroutput></entry> 2741 4372 <entry>Del</entry> 2742 <entry> inject Ctrl+Alt+Del</entry>4373 <entry>Inject Ctrl+Alt+Del</entry> 2743 4374 </row> 2744 4375 <row> 2745 4376 <entry><computeroutput>TypeCABS</computeroutput></entry> 2746 4377 <entry>Backspace</entry> 2747 <entry> inject Ctrl+Alt+Backspace</entry>4378 <entry>Inject Ctrl+Alt+Backspace</entry> 2748 4379 </row> 2749 4380 <row> … … 2755 4386 <entry><computeroutput>Reset</computeroutput></entry> 2756 4387 <entry>R</entry> 2757 <entry> (hard)reset the guest</entry>4388 <entry>Hard reset the guest</entry> 2758 4389 </row> 2759 4390 <row> 2760 4391 <entry><computeroutput>SaveState</computeroutput></entry> 2761 4392 <entry></entry> 2762 <entry> save the VM state and terminate the VM</entry>4393 <entry>Save the VM state and terminate the VM</entry> 2763 4394 </row> 2764 4395 <row> 2765 4396 <entry><computeroutput>Shutdown</computeroutput></entry> 2766 4397 <entry>H</entry> 2767 <entry> press the (virtual) ACPI power button</entry>4398 <entry>Press the (virtual) ACPI power button</entry> 2768 4399 </row> 2769 4400 <row> 2770 4401 <entry><computeroutput>PowerOff</computeroutput></entry> 2771 4402 <entry></entry> 2772 <entry> power the VM off (without saving the state!)</entry>4403 <entry>Power the VM off, without saving the state</entry> 2773 4404 </row> 2774 4405 <row> 2775 4406 <entry><computeroutput>Close</computeroutput></entry> 2776 4407 <entry>Q</entry> 2777 <entry> show the VM close dialog</entry>4408 <entry>Show the VM close dialog</entry> 2778 4409 </row> 2779 4410 <row> 2780 4411 <entry><computeroutput>FullscreenMode</computeroutput></entry> 2781 4412 <entry>F</entry> 2782 <entry> switch the VM into full screen</entry>4413 <entry>Switch the VM into full screen</entry> 2783 4414 </row> 2784 4415 <row> 2785 4416 <entry><computeroutput>SeamlessMode</computeroutput></entry> 2786 4417 <entry>L</entry> 2787 <entry> switch the VM into seamless mode</entry>4418 <entry>Switch the VM into seamless mode</entry> 2788 4419 </row> 2789 4420 <row> 2790 4421 <entry><computeroutput>ScaleMode</computeroutput></entry> 2791 4422 <entry>C</entry> 2792 <entry> switch the VM into scale mode</entry>4423 <entry>Switch the VM into scale mode</entry> 2793 4424 </row> 2794 4425 <row> 2795 4426 <entry><computeroutput>GuestAutoResize</computeroutput></entry> 2796 4427 <entry>G</entry> 2797 <entry> automatically resize the guest window</entry>4428 <entry>Automatically resize the guest window</entry> 2798 4429 </row> 2799 4430 <row> 2800 4431 <entry><computeroutput>WindowAdjust</computeroutput></entry> 2801 4432 <entry>A</entry> 2802 <entry> immediately resize the guest window</entry>4433 <entry>Immediately resize the guest window</entry> 2803 4434 </row> 2804 4435 <row> 2805 4436 <entry><computeroutput>PopupMenu</computeroutput></entry> 2806 4437 <entry>Home</entry> 2807 <entry> show popup menu in full screen / seaml. mode</entry>4438 <entry>Show popup menu in full screen / seaml. mode</entry> 2808 4439 </row> 2809 4440 <row> 2810 4441 <entry><computeroutput>SettingsDialog</computeroutput></entry> 2811 4442 <entry>S</entry> 2812 <entry> open the VM settings dialog</entry>4443 <entry>Open the VM settings dialog</entry> 2813 4444 </row> 2814 4445 <row> 2815 4446 <entry><computeroutput>InformationDialog</computeroutput></entry> 2816 4447 <entry>N</entry> 2817 <entry> show the VM information window</entry>4448 <entry>Show the VM information window</entry> 2818 4449 </row> 2819 4450 <row> 2820 4451 <entry><computeroutput>NetworkAdaptersDialog</computeroutput></entry> 2821 4452 <entry></entry> 2822 <entry> show the VM network adapters dialog</entry>4453 <entry>Show the VM network adapters dialog</entry> 2823 4454 </row> 2824 4455 <row> 2825 4456 <entry><computeroutput>SharedFoldersDialog</computeroutput></entry> 2826 4457 <entry></entry> 2827 <entry> show the VM shared folders dialog</entry>4458 <entry>Show the VM shared folders dialog</entry> 2828 4459 </row> 2829 4460 <row> 2830 4461 <entry><computeroutput>InstallGuestAdditions</computeroutput></entry> 2831 4462 <entry>D</entry> 2832 <entry> mount the ISO containing the Guest Additions</entry>4463 <entry>Mount the ISO containing the Guest Additions</entry> 2833 4464 </row> 2834 4465 </tbody> … … 2836 4467 </table> 2837 4468 2838 <para>To disable the full screen mode as well as the seamless mode, use the following command: 2839 <screen>VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=None,SeamlessMode=None"</screen> 4469 <para> 4470 To disable the full screen mode as well as the seamless mode, 4471 use the following command: 4472 4473 <screen>VBoxManage setextradata global GUI/Input/MachineShortcuts "FullscreenMode=None,SeamlessMode=None"</screen> 2840 4474 </para> 2841 4475 2842 4476 </sect2> 2843 4477 2844 <sect2> 2845 <title>Action when terminating the VM</title> 2846 2847 <para>You can disallow (i.e. black-list) certain actions when terminating a VM. 2848 To disallow specific actions, type:</para> 2849 2850 <para><screen>VBoxManage setextradata "VM name" GUI/RestrictedCloseActions OPTION[,OPTION...]</screen></para> 2851 2852 <para>where <computeroutput>OPTION</computeroutput> is one of the 2853 following keywords:</para><glosslist> 2854 <glossentry> 2855 <glossterm><computeroutput>SaveState</computeroutput></glossterm> 2856 <glossdef> 2857 <para>Don't allow the user to save the VM state when terminating 2858 the VM.</para> 2859 </glossdef> 2860 </glossentry> 2861 2862 <glossentry> 2863 <glossterm><computeroutput>Shutdown</computeroutput></glossterm> 2864 <glossdef> 2865 <para>Don't allow the user to shutdown the VM by sending the ACPI 2866 power-off event to the guest.</para> 2867 </glossdef> 2868 </glossentry> 2869 2870 <glossentry> 2871 <glossterm><computeroutput>PowerOff</computeroutput></glossterm> 2872 <glossdef> 2873 <para>Don't allow the user to power off the VM.</para> 2874 </glossdef> 2875 </glossentry> 2876 2877 <glossentry> 2878 <glossterm><computeroutput>PowerOffRestoringSnapshot</computeroutput></glossterm> 2879 <glossdef> 2880 <para>Don't allow the user to return to the last snapshot when 2881 powering off the VM.</para> 2882 </glossdef> 2883 </glossentry> 2884 2885 <glossentry> 2886 <glossterm><computeroutput>Detach</computeroutput></glossterm> 2887 <glossdef> 2888 <para>Don't allow the user to detach from the VM process if the 2889 VM was started in separate mode.</para> 2890 </glossdef> 2891 </glossentry> 2892 2893 </glosslist> 2894 2895 <para>This is a per-VM setting. Any combination of the above is allowed. If all 2896 options are specified, the VM cannot be shut down at all.</para> 4478 <sect2 id="terminate-vm-action"> 4479 4480 <title>Action when Terminating the VM</title> 4481 4482 <para> 4483 You can disallow, or blacklist, certain actions when terminating 4484 a VM. To disallow specific actions, type: 4485 </para> 4486 4487 <para> 4488 <screen>VBoxManage setextradata "VM name" GUI/RestrictedCloseActions OPTION[,OPTION...]</screen> 4489 </para> 4490 4491 <para> 4492 where <computeroutput>OPTION</computeroutput> is one of the 4493 following keywords: 4494 </para> 4495 4496 <variablelist> 4497 4498 <varlistentry> 4499 <term> 4500 <computeroutput>SaveState</computeroutput> 4501 </term> 4502 4503 <listitem> 4504 <para> 4505 Do not allow the user to save the VM state when 4506 terminating the VM. 4507 </para> 4508 </listitem> 4509 </varlistentry> 4510 4511 <varlistentry> 4512 <term> 4513 <computeroutput>Shutdown</computeroutput> 4514 </term> 4515 4516 <listitem> 4517 <para> 4518 Do not allow the user to shutdown the VM by sending the 4519 ACPI power-off event to the guest. 4520 </para> 4521 </listitem> 4522 </varlistentry> 4523 4524 <varlistentry> 4525 <term> 4526 <computeroutput>PowerOff</computeroutput> 4527 </term> 4528 4529 <listitem> 4530 <para> 4531 Do not allow the user to power off the VM. 4532 </para> 4533 </listitem> 4534 </varlistentry> 4535 4536 <varlistentry> 4537 <term> 4538 <computeroutput>PowerOffRestoringSnapshot</computeroutput> 4539 </term> 4540 4541 <listitem> 4542 <para> 4543 Do not allow the user to return to the last snapshot when 4544 powering off the VM. 4545 </para> 4546 </listitem> 4547 </varlistentry> 4548 4549 <varlistentry> 4550 <term> 4551 <computeroutput>Detach</computeroutput> 4552 </term> 4553 4554 <listitem> 4555 <para> 4556 Do not allow the user to detach from the VM process if the 4557 VM was started in separate mode. 4558 </para> 4559 </listitem> 4560 </varlistentry> 4561 4562 </variablelist> 4563 4564 <para> 4565 This is a per-VM setting. Any combination of the above is 4566 allowed. If all options are specified, the VM cannot be shut 4567 down at all. 4568 </para> 4569 2897 4570 </sect2> 2898 4571 2899 <sect2> 2900 <title>Default action when terminating the VM</title> 2901 2902 <para>You can define a specific action for terminating a VM. In contrast to 2903 the setting decribed in the previous section, this setting allows only 2904 one action when the user terminates the VM. No exit menu is shown.</para> 2905 2906 <para><screen>VBoxManage setextradata "VM name" GUI/DefaultCloseAction ACTION</screen></para> 2907 2908 <para>where <computeroutput>ACTION</computeroutput> is one of the 2909 following keywords:</para><glosslist> 2910 <glossentry> 2911 <glossterm><computeroutput>SaveState</computeroutput></glossterm> 2912 <glossdef> 2913 <para>Save the VM state before terminating the VM process.</para> 2914 </glossdef> 2915 </glossentry> 2916 2917 <glossentry> 2918 <glossterm><computeroutput>Shutdown</computeroutput></glossterm> 2919 <glossdef> 2920 <para>The VM is shut down by sending the ACPI power-off event to the guest.</para> 2921 </glossdef> 2922 </glossentry> 2923 2924 <glossentry> 2925 <glossterm><computeroutput>PowerOff</computeroutput></glossterm> 2926 <glossdef> 2927 <para>The VM is powered off.</para> 2928 </glossdef> 2929 </glossentry> 2930 2931 <glossentry> 2932 <glossterm><computeroutput>PowerOffRestoringSnapshot</computeroutput></glossterm> 2933 <glossdef> 2934 <para>The VM is powered off and the saved state returns to the last snapshot.</para> 2935 </glossdef> 2936 </glossentry> 2937 2938 <glossentry> 2939 <glossterm><computeroutput>Detach</computeroutput></glossterm> 2940 <glossdef> 2941 <para>Terminate the frontend but leave the VM process running.</para> 2942 </glossdef> 2943 </glossentry> 2944 2945 </glosslist> 2946 2947 <para>This is a per-VM setting. Any combination of the above is allowed. If all 2948 options are specified, the VM cannot be shut down at all.</para> 4572 <sect2 id="terminate-vm-default-action"> 4573 4574 <title>Default Action when Terminating the VM</title> 4575 4576 <para> 4577 You can define a specific action for terminating a VM. In 4578 contrast to the setting decribed in the previous section, this 4579 setting allows only one action when the user terminates the VM. 4580 No exit menu is shown. 4581 </para> 4582 4583 <para> 4584 <screen>VBoxManage setextradata "VM name" GUI/DefaultCloseAction ACTION</screen> 4585 </para> 4586 4587 <para> 4588 where <computeroutput>ACTION</computeroutput> is one of the 4589 following keywords: 4590 </para> 4591 4592 <variablelist> 4593 4594 <varlistentry> 4595 <term> 4596 <computeroutput>SaveState</computeroutput> 4597 </term> 4598 4599 <listitem> 4600 <para> 4601 Save the VM state before terminating the VM process. 4602 </para> 4603 </listitem> 4604 </varlistentry> 4605 4606 <varlistentry> 4607 <term> 4608 <computeroutput>Shutdown</computeroutput> 4609 </term> 4610 4611 <listitem> 4612 <para> 4613 The VM is shut down by sending the ACPI power-off event to 4614 the guest. 4615 </para> 4616 </listitem> 4617 </varlistentry> 4618 4619 <varlistentry> 4620 <term> 4621 <computeroutput>PowerOff</computeroutput> 4622 </term> 4623 4624 <listitem> 4625 <para> 4626 The VM is powered off. 4627 </para> 4628 </listitem> 4629 </varlistentry> 4630 4631 <varlistentry> 4632 <term> 4633 <computeroutput>PowerOffRestoringSnapshot</computeroutput> 4634 </term> 4635 4636 <listitem> 4637 <para> 4638 The VM is powered off and the saved state returns to the 4639 last snapshot. 4640 </para> 4641 </listitem> 4642 </varlistentry> 4643 4644 <varlistentry> 4645 <term> 4646 <computeroutput>Detach</computeroutput> 4647 </term> 4648 4649 <listitem> 4650 <para> 4651 Terminate the frontend but leave the VM process running. 4652 </para> 4653 </listitem> 4654 </varlistentry> 4655 4656 </variablelist> 4657 4658 <para> 4659 This is a per-VM setting. Any combination of the above is 4660 allowed. If all options are specified, the VM cannot be shut 4661 down at all. 4662 </para> 4663 2949 4664 </sect2> 2950 4665 2951 <sect2> 2952 <title>Action for handling a Guru Meditation</title> 2953 2954 <para>A VM runs into a Guru Meditation if there is a problem which 4666 <sect2 id="guru-meditation-action"> 4667 4668 <title>Action for Handling a Guru Meditation</title> 4669 4670 <para> 4671 A VM runs into a Guru Meditation if there is a problem which 2955 4672 cannot be fixed by other means than terminating the process. The 2956 4673 default is to show a message window which instructs the user to 2957 open a bug report.</para> 2958 <para>This behavior can be configured:</para> 2959 2960 <para><screen>VBoxManage setextradata "VM name" GUI/GuruMeditationHandler MODE</screen></para> 2961 2962 <para>where <computeroutput>MODE</computeroutput> is one of the 2963 following keywords:</para><glosslist> 2964 <glossentry> 2965 <glossterm><computeroutput>Default</computeroutput></glossterm> 2966 <glossdef> 2967 <para>A message window is shown. After the user confirmed, the 2968 VM is terminated.</para> 2969 </glossdef> 2970 </glossentry> 2971 2972 <glossentry> 2973 <glossterm><computeroutput>PowerOff</computeroutput></glossterm> 2974 <glossdef> 2975 <para>The VM is immediately powered-off without showing any message 2976 window. The VM logfile will show information about what happened.</para> 2977 </glossdef> 2978 </glossentry> 2979 2980 <glossentry> 2981 <glossterm><computeroutput>Ignore</computeroutput></glossterm> 2982 <glossdef> 2983 <para>The VM is left in stuck mode. Execution is stopped but no 2984 message window is shown. The VM has to be powered off manually.</para> 2985 </glossdef> 2986 </glossentry> 2987 </glosslist> 2988 2989 <para>This is a per-VM setting.</para> 4674 open a bug report. 4675 </para> 4676 4677 <para> 4678 This behavior can be configured: 4679 </para> 4680 4681 <para> 4682 <screen>VBoxManage setextradata "VM name" GUI/GuruMeditationHandler MODE</screen> 4683 </para> 4684 4685 <para> 4686 where <computeroutput>MODE</computeroutput> is one of the 4687 following keywords: 4688 </para> 4689 4690 <variablelist> 4691 4692 <varlistentry> 4693 <term> 4694 <computeroutput>Default</computeroutput> 4695 </term> 4696 4697 <listitem> 4698 <para> 4699 A message window is shown. After the user confirmed, the 4700 VM is terminated. 4701 </para> 4702 </listitem> 4703 </varlistentry> 4704 4705 <varlistentry> 4706 <term> 4707 <computeroutput>PowerOff</computeroutput> 4708 </term> 4709 4710 <listitem> 4711 <para> 4712 The VM is immediately powered-off without showing any 4713 message window. The VM logfile will show information about 4714 what happened. 4715 </para> 4716 </listitem> 4717 </varlistentry> 4718 4719 <varlistentry> 4720 <term> 4721 <computeroutput>Ignore</computeroutput> 4722 </term> 4723 4724 <listitem> 4725 <para> 4726 The VM is left in stuck mode. Execution is stopped but no 4727 message window is shown. The VM has to be powered off 4728 manually. 4729 </para> 4730 </listitem> 4731 </varlistentry> 4732 4733 </variablelist> 4734 4735 <para> 4736 This is a per-VM setting. 4737 </para> 4738 2990 4739 </sect2> 2991 4740 2992 <sect2> 2993 <title>Configuring automatic mouse capturing</title> 2994 2995 <para> 2996 By default, the mouse is captured if the user clicks on the guest window 2997 and the guest expects relative mouse coordinates at this time. This 2998 happens if the pointing device is configured as PS/2 mouse and the guest did 2999 not (yet) start the VirtualBox Guest Additions (for instance, the guest is 3000 booting or no Guest Additions installed at all) or if the pointing device 3001 is configured as USB tablet but the guest has no USB driver loaded yet. 3002 Once the Guest Additions become active or the USB guest driver is started, 3003 the mouse capture is automatically released. 3004 </para> 3005 <para> 3006 The default behavior is sometimes not desired. Therefore it can be configured: 3007 </para> 3008 <para><screen>VBoxManage setextradata "VM name" GUI/MouseCapturePolicy MODE</screen></para> 3009 3010 <para>where <computeroutput>MODE</computeroutput> is one of the 3011 following keywords:</para><glosslist> 3012 <glossentry> 3013 <glossterm><computeroutput>Default</computeroutput></glossterm> 3014 <glossdef> 3015 <para>The default behavior as described above.</para> 3016 </glossdef> 3017 </glossentry> 3018 <glossentry> 3019 <glossterm><computeroutput>HostComboOnly</computeroutput></glossterm> 3020 <glossdef> 3021 <para>The mouse is only captured if the Host Key is toggled.</para> 3022 </glossdef> 3023 </glossentry> 3024 <glossentry> 3025 <glossterm><computeroutput>Disabled</computeroutput></glossterm> 3026 <glossdef> 3027 <para>The mouse is never captured, also not by toggling the Host Key</para> 3028 </glossdef> 3029 </glossentry> 3030 </glosslist> 3031 3032 <para>This is a per-VM setting.</para> 4741 <sect2 id="mouse-capture"> 4742 4743 <title>Configuring Automatic Mouse Capturing</title> 4744 4745 <para> 4746 By default, the mouse is captured if the user clicks on the 4747 guest window and the guest expects relative mouse coordinates at 4748 this time. This happens if the pointing device is configured as 4749 PS/2 mouse and the guest has not yet started the VirtualBox 4750 Guest Additions. For instance, the guest is booting or the Guest 4751 Additions are not installed, or if the pointing device is 4752 configured as a USB tablet but the guest has no USB driver 4753 loaded yet. Once the Guest Additions become active or the USB 4754 guest driver is started, the mouse capture is automatically 4755 released. 4756 </para> 4757 4758 <para> 4759 The default behavior is sometimes not desired. Therefore it can 4760 be configured: 4761 </para> 4762 4763 <para> 4764 <screen>VBoxManage setextradata "VM name" GUI/MouseCapturePolicy MODE</screen> 4765 </para> 4766 4767 <para> 4768 where <computeroutput>MODE</computeroutput> is one of the 4769 following keywords: 4770 </para> 4771 4772 <variablelist> 4773 4774 <varlistentry> 4775 <term> 4776 <computeroutput>Default</computeroutput> 4777 </term> 4778 4779 <listitem> 4780 <para> 4781 The default behavior as described above. 4782 </para> 4783 </listitem> 4784 </varlistentry> 4785 4786 <varlistentry> 4787 <term> 4788 <computeroutput>HostComboOnly</computeroutput> 4789 </term> 4790 4791 <listitem> 4792 <para> 4793 The mouse is only captured if the Host Key is toggled. 4794 </para> 4795 </listitem> 4796 </varlistentry> 4797 4798 <varlistentry> 4799 <term> 4800 <computeroutput>Disabled</computeroutput> 4801 </term> 4802 4803 <listitem> 4804 <para> 4805 The mouse is never captured, also not by toggling the Host 4806 Key 4807 </para> 4808 </listitem> 4809 </varlistentry> 4810 4811 </variablelist> 4812 4813 <para> 4814 This is a per-VM setting. 4815 </para> 3033 4816 3034 4817 </sect2> 3035 4818 3036 <sect2 id="mouse-capture"> 3037 <title>Configuring automatic mouse capturing</title> 3038 3039 <para> 3040 By default, the mouse is captured if the user clicks on the guest window 3041 and the guest expects relative mouse coordinates at this time. This 3042 happens if the pointing device is configured as PS/2 mouse and the guest did 3043 not (yet) start the VirtualBox Guest Additions (for instance, the guest is 3044 booting or no Guest Additions installed at all) or if the pointing device 3045 is configured as USB tablet but the guest has no USB driver loaded yet. 3046 Once the Guest Additions become active or the USB guest driver is started, 3047 the mouse capture is automatically released. 3048 </para> 3049 <para> 3050 The default behavior is sometimes not desired. Therefore it can be configured: 3051 </para> 3052 <para><screen>VBoxManage setextradata "VM name" GUI/MouseCapturePolicy MODE</screen></para> 3053 3054 <para>where <computeroutput>MODE</computeroutput> is one of the 3055 following keywords:</para><glosslist> 3056 <glossentry> 3057 <glossterm><computeroutput>Default</computeroutput></glossterm> 3058 <glossdef> 3059 <para>The default behavior as described above.</para> 3060 </glossdef> 3061 </glossentry> 3062 <glossentry> 3063 <glossterm><computeroutput>HostComboOnly</computeroutput></glossterm> 3064 <glossdef> 3065 <para>The mouse is only captured if the Host Key is toggled.</para> 3066 </glossdef> 3067 </glossentry> 3068 <glossentry> 3069 <glossterm><computeroutput>Disabled</computeroutput></glossterm> 3070 <glossdef> 3071 <para>The mouse is never captured, also not by toggling the Host Key</para> 3072 </glossdef> 3073 </glossentry> 3074 </glosslist> 3075 3076 <para>This is a per-VM setting.</para> 4819 <sect2 id="legacy-fullscreen-mode"> 4820 4821 <title>Requesting Legacy Full-Screen Mode</title> 4822 4823 <para> 4824 As of version 4.3.16, VirtualBox uses special window manager 4825 facilities to switch a multi-screen machine to full-screen on a 4826 multi-monitor host system. However, not all window managers 4827 provide these facilities correctly, so VirtualBox can be told to 4828 use the old method of switching to full-screen mode instead 4829 using the command: 4830 </para> 4831 4832 <para> 4833 <screen>VBoxManage setextradata global GUI/Fullscreen/LegacyMode true</screen> 4834 </para> 4835 4836 <para> 4837 You can go back to the new method using the command: 4838 </para> 4839 4840 <para> 4841 <screen>VBoxManage setextradata global GUI/Fullscreen/LegacyMode</screen> 4842 </para> 4843 4844 <para> 4845 This is a global setting. 4846 </para> 3077 4847 3078 4848 </sect2> 3079 4849 3080 <sect2 id="legacy-fullscreen-mode"> 3081 <title>Requesting legacy full-screen mode</title> 3082 3083 <para> 3084 As of version 4.3.16, VirtualBox uses special window manager facilities to switch 3085 a multi-screen machine to full-screen on a multi-monitor host system. However, 3086 not all window managers provide these facilities correctly, so VirtualBox can be 3087 told to use the old method of switching to full-screen mode instead using the command: 3088 </para> 3089 <para><screen>VBoxManage setextradata global GUI/Fullscreen/LegacyMode true</screen></para> 3090 3091 <para> 3092 You can go back to the new method using the command: 3093 </para> 3094 <para><screen>VBoxManage setextradata global GUI/Fullscreen/LegacyMode</screen></para> 3095 3096 <para>This is a global setting.</para> 4850 </sect1> 4851 4852 <sect1 id="vboxwebsrv-daemon"> 4853 4854 <title>Starting the VirtualBox Web Service Automatically</title> 4855 4856 <para> 4857 The VirtualBox web service, 4858 <computeroutput>vboxwebsrv</computeroutput>, is used for 4859 controlling VirtualBox remotely. It is documented in detail in the 4860 VirtualBox Software Development Kit (SDK). See 4861 <xref linkend="VirtualBoxAPI" />. As the client base using this 4862 interface is growing, we added start scripts for the various 4863 operation systems we support. The following sections describe how 4864 to use them. The VirtualBox web service is never started 4865 automatically as a result of a standard installation. 4866 </para> 4867 4868 <sect2 id="vboxwebsrv-linux"> 4869 4870 <title>Linux: Starting the Web Service via init</title> 4871 4872 <para> 4873 On Linux, the web service can be automatically started during 4874 host boot by adding appropriate parameters to the file 4875 <computeroutput>/etc/default/virtualbox</computeroutput>. There 4876 is one mandatory parameter, 4877 <computeroutput>VBOXWEB_USER</computeroutput>, which must be set 4878 to the user which will later start the VMs. The parameters in 4879 <xref linkend="table-websrv-config-params"/> all start with the 4880 <computeroutput>VBOXWEB_</computeroutput> prefix string. For 4881 example: <computeroutput>VBOXWEB_HOST</computeroutput> and 4882 <computeroutput>VBOXWEB_PORT</computeroutput>. 4883 4884 <table id="table-websrv-config-params"> 4885 <title>Web Service Configuration Parameters</title> 4886 <tgroup cols="3"> 4887 <thead> 4888 <row> 4889 <entry><emphasis role="bold">Parameter</emphasis></entry> 4890 <entry><emphasis role="bold">Description</emphasis></entry> 4891 <entry><emphasis role="bold">Default</emphasis></entry> 4892 </row> 4893 </thead> 4894 <tbody> 4895 <row> 4896 <entry><computeroutput>USER</computeroutput></entry> 4897 <entry>The user as which the web service runs</entry> 4898 <entry></entry> 4899 </row> 4900 <row> 4901 <entry><computeroutput>HOST</computeroutput></entry> 4902 <entry>The host to bind the web service to</entry> 4903 <entry>localhost</entry> 4904 </row> 4905 <row> 4906 <entry><computeroutput>PORT</computeroutput></entry> 4907 <entry>The port to bind the web service to</entry> 4908 <entry>18083</entry> 4909 </row> 4910 <row> 4911 <entry><computeroutput>SSL_KEYFILE</computeroutput></entry> 4912 <entry>Server key and certificate file, PEM format</entry> 4913 <entry></entry> 4914 </row> 4915 <row> 4916 <entry><computeroutput>SSL_PASSWORDFILE</computeroutput></entry> 4917 <entry>File name for password to server key</entry> 4918 <entry></entry> 4919 </row> 4920 <row> 4921 <entry><computeroutput>SSL_CACERT</computeroutput></entry> 4922 <entry>CA certificate file, PEM format</entry> 4923 <entry></entry> 4924 </row> 4925 <row> 4926 <entry><computeroutput>SSL_CAPATH</computeroutput></entry> 4927 <entry>CA certificate path</entry> 4928 <entry></entry> 4929 </row> 4930 <row> 4931 <entry><computeroutput>SSL_DHFILE</computeroutput></entry> 4932 <entry>DH file name or DH key length in bits</entry> 4933 <entry></entry> 4934 </row> 4935 <row> 4936 <entry><computeroutput>SSL_RANDFILE</computeroutput></entry> 4937 <entry>File containing seed for random number generator</entry> 4938 <entry></entry> 4939 </row> 4940 <row> 4941 <entry><computeroutput>TIMEOUT</computeroutput></entry> 4942 <entry>Session timeout in seconds; 0 disables timeouts</entry> 4943 <entry>300</entry> 4944 </row> 4945 <row> 4946 <entry><computeroutput>CHECK_INTERVAL</computeroutput></entry> 4947 <entry>Frequency of timeout checks in seconds</entry> 4948 <entry>5</entry> 4949 </row> 4950 <row> 4951 <entry><computeroutput>THREADS</computeroutput></entry> 4952 <entry>Maximum number of worker threads to run in parallel</entry> 4953 <entry>100</entry> 4954 </row> 4955 <row> 4956 <entry><computeroutput>KEEPALIVE</computeroutput></entry> 4957 <entry>Maximum number of requests before a socket will be closed</entry> 4958 <entry>100</entry> 4959 </row> 4960 <row> 4961 <entry><computeroutput>ROTATE</computeroutput></entry> 4962 <entry>Number of log files; 0 disables log rotation</entry> 4963 <entry>10</entry> 4964 </row> 4965 <row> 4966 <entry><computeroutput>LOGSIZE</computeroutput></entry> 4967 <entry>Maximum size of a log file in bytes to trigger rotation</entry> 4968 <entry>1MB</entry> 4969 </row> 4970 <row> 4971 <entry><computeroutput>LOGINTERVAL</computeroutput></entry> 4972 <entry>Maximum time interval in seconds to trigger log rotation</entry> 4973 <entry>1 day</entry> 4974 </row> 4975 </tbody> 4976 </tgroup> 4977 </table> 4978 </para> 4979 4980 <para> 4981 Setting the parameter 4982 <computeroutput>SSL_KEYFILE</computeroutput> enables the SSL/TLS 4983 support. Using encryption is strongly encouraged, as otherwise 4984 everything (including passwords) is transferred in clear text. 4985 </para> 4986 3097 4987 </sect2> 4988 4989 <sect2 id="vboxwebsrv-solaris"> 4990 4991 <title>Solaris: Starting the Web Service via SMF</title> 4992 4993 <para> 4994 On Solaris hosts, the VirtualBox web service daemon is 4995 integrated into the SMF framework. You can change the 4996 parameters, but do not have to if the defaults below already 4997 match your needs: 4998 4999 <screen>svccfg -s svc:/application/virtualbox/webservice:default setprop config/host=localhost 5000 svccfg -s svc:/application/virtualbox/webservice:default setprop config/port=18083 5001 svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=root</screen> 5002 </para> 5003 5004 <para> 5005 <xref linkend="table-websrv-config-params"/> showing the 5006 parameter names and defaults also applies for Solaris. The 5007 parameter names must be changed to lowercase and a prefix of 5008 <computeroutput>config/</computeroutput> has to be added. For 5009 example: <computeroutput>config/user</computeroutput> or 5010 <computeroutput>config/ssl_keyfile</computeroutput>. If you make 5011 any change, do not forget to run the following command to put 5012 the changes into effect immediately: 5013 5014 <screen>svcadm refresh svc:/application/virtualbox/webservice:default</screen> 5015 </para> 5016 5017 <para> 5018 If you forget the above command then the previous settings are 5019 used when enabling the service. Check the current property 5020 settings with: 5021 5022 <screen>svcprop -p config svc:/application/virtualbox/webservice:default</screen> 5023 </para> 5024 5025 <para> 5026 When everything is configured correctly you can start the 5027 VirtualBox web service with the following command: 5028 5029 <screen>svcadm enable svc:/application/virtualbox/webservice:default</screen> 5030 </para> 5031 5032 <para> 5033 For more information about SMF, please refer to the Solaris 5034 documentation. 5035 </para> 5036 5037 </sect2> 5038 5039 <sect2 id="vboxwebsrv-osx"> 5040 5041 <title>Mac OS X: Starting the Web Service via launchd</title> 5042 5043 <para> 5044 On Mac OS X, launchd is used to start the VirtualBox webservice. 5045 An example configuration file can be found in 5046 <computeroutput>$HOME/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist</computeroutput>. 5047 It can be enabled by changing the 5048 <computeroutput>Disabled</computeroutput> key from 5049 <computeroutput>true</computeroutput> to 5050 <computeroutput>false</computeroutput>. To manually start the 5051 service use the following command: 5052 5053 <screen>launchctl load ~/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist</screen> 5054 5055 For additional information on how launchd services could be 5056 configured see: 5057 </para> 5058 5059 <para> 5060 <ulink 5061 url="https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html">https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html</ulink>. 5062 </para> 5063 5064 </sect2> 5065 3098 5066 </sect1> 3099 5067 3100 <sect1 id="vboxwebsrv-daemon"> 3101 <title>Starting the VirtualBox web service automatically</title> 3102 3103 <para>The VirtualBox web service 3104 (<computeroutput>vboxwebsrv</computeroutput>) is used for controlling 3105 VirtualBox remotely. It is documented in detail in the VirtualBox Software 3106 Development Kit (SDK); please see <xref linkend="VirtualBoxAPI" />. As the 3107 client base using this interface is growing, we added start scripts for 3108 the various operation systems we support. The following sections describe 3109 how to use them. The VirtualBox web service is never started automatically 3110 as a result of a standard installation.</para> 3111 3112 <sect2 id="vboxwebsrv-linux"> 3113 <title>Linux: starting the webservice via <computeroutput>init</computeroutput></title> 3114 3115 <para>On Linux, the web service can be automatically started during 3116 host boot by adding appropriate parameters to the file 3117 <computeroutput>/etc/default/virtualbox</computeroutput>. 3118 There is one mandatory parameter, <computeroutput>VBOXWEB_USER</computeroutput>, 3119 which must be set to the user which will later start the VMs. The 3120 parameters in the table below all start with <computeroutput>VBOXWEB_</computeroutput> 3121 (<computeroutput>VBOXWEB_HOST</computeroutput>, 3122 <computeroutput>VBOXWEB_PORT</computeroutput> etc.): 3123 <table> 3124 <title>Web service configuration parameters</title> 3125 <tgroup cols="3"> 3126 <thead> 3127 <row> 3128 <entry><emphasis role="bold">Parameter</emphasis></entry> 3129 <entry><emphasis role="bold">Description</emphasis></entry> 3130 <entry><emphasis role="bold">Default</emphasis></entry> 3131 </row> 3132 </thead> 3133 <tbody> 3134 <row> 3135 <entry><computeroutput>USER</computeroutput></entry> 3136 <entry>The user as which the web service runs</entry> 3137 <entry></entry> 3138 </row> 3139 <row> 3140 <entry><computeroutput>HOST</computeroutput></entry> 3141 <entry>The host to bind the web service to</entry> 3142 <entry>localhost</entry> 3143 </row> 3144 <row> 3145 <entry><computeroutput>PORT</computeroutput></entry> 3146 <entry>The port to bind the web service to</entry> 3147 <entry>18083</entry> 3148 </row> 3149 <row> 3150 <entry><computeroutput>SSL_KEYFILE</computeroutput></entry> 3151 <entry>Server key and certificate file, PEM format</entry> 3152 <entry></entry> 3153 </row> 3154 <row> 3155 <entry><computeroutput>SSL_PASSWORDFILE</computeroutput></entry> 3156 <entry>File name for password to server key</entry> 3157 <entry></entry> 3158 </row> 3159 <row> 3160 <entry><computeroutput>SSL_CACERT</computeroutput></entry> 3161 <entry>CA certificate file, PEM format</entry> 3162 <entry></entry> 3163 </row> 3164 <row> 3165 <entry><computeroutput>SSL_CAPATH</computeroutput></entry> 3166 <entry>CA certificate path</entry> 3167 <entry></entry> 3168 </row> 3169 <row> 3170 <entry><computeroutput>SSL_DHFILE</computeroutput></entry> 3171 <entry>DH file name or DH key length in bits</entry> 3172 <entry></entry> 3173 </row> 3174 <row> 3175 <entry><computeroutput>SSL_RANDFILE</computeroutput></entry> 3176 <entry>File containing seed for random number generator</entry> 3177 <entry></entry> 3178 </row> 3179 <row> 3180 <entry><computeroutput>TIMEOUT</computeroutput></entry> 3181 <entry>Session timeout in seconds; 0 disables timeouts</entry> 3182 <entry>300</entry> 3183 </row> 3184 <row> 3185 <entry><computeroutput>CHECK_INTERVAL</computeroutput></entry> 3186 <entry>Frequency of timeout checks in seconds</entry> 3187 <entry>5</entry> 3188 </row> 3189 <row> 3190 <entry><computeroutput>THREADS</computeroutput></entry> 3191 <entry>Maximum number of worker threads to run in parallel</entry> 3192 <entry>100</entry> 3193 </row> 3194 <row> 3195 <entry><computeroutput>KEEPALIVE</computeroutput></entry> 3196 <entry>Maximum number of requests before a socket will be closed</entry> 3197 <entry>100</entry> 3198 </row> 3199 <row> 3200 <entry><computeroutput>ROTATE</computeroutput></entry> 3201 <entry>Number of log files; 0 disables log rotation</entry> 3202 <entry>10</entry> 3203 </row> 3204 <row> 3205 <entry><computeroutput>LOGSIZE</computeroutput></entry> 3206 <entry>Maximum size of a log file in bytes to trigger rotation</entry> 3207 <entry>1MB</entry> 3208 </row> 3209 <row> 3210 <entry><computeroutput>LOGINTERVAL</computeroutput></entry> 3211 <entry>Maximum time interval in seconds to trigger log rotation</entry> 3212 <entry>1 day</entry> 3213 </row> 3214 </tbody> 3215 </tgroup> 3216 </table> 3217 </para> 3218 3219 <para>Setting the parameter <computeroutput>SSL_KEYFILE</computeroutput> 3220 enables the SSL/TLS support. Using encryption is strongly encouraged, as 3221 otherwise everything (including passwords) is transferred in clear 3222 text.</para> 5068 <sect1 id="vboxwatchdog"> 5069 5070 <title>VirtualBox Watchdog</title> 5071 5072 <para> 5073 Starting with VirtualBox 4.2 the memory ballooning service 5074 formerly known as <computeroutput>VBoxBalloonCtrl</computeroutput> 5075 was renamed to VBoxWatchdog, which now incorporates several host 5076 services that are meant to be run in a server environment. 5077 </para> 5078 5079 <para> 5080 These services are as follows: 5081 </para> 5082 5083 <itemizedlist> 5084 5085 <listitem> 5086 <para> 5087 Memory ballooning control, which automatically takes care of a 5088 VM's configured memory balloon. See 5089 <xref linkend="guestadd-balloon" />. This service is useful 5090 for server environments where VMs may dynamically require more 5091 or less memory during runtime. 5092 </para> 5093 5094 <para> 5095 The service periodically checks a VM's current memory balloon 5096 and its free guest RAM and automatically adjusts the current 5097 memory balloon by inflating or deflating it accordingly. This 5098 handling only applies to running VMs having recent Guest 5099 Additions installed. 5100 </para> 5101 </listitem> 5102 5103 <listitem> 5104 <para> 5105 Host isolation detection, which provides a way to detect 5106 whether the host cannot reach the specific VirtualBox server 5107 instance anymore and take appropriate actions, such as 5108 shutting down, saving the current state or even powering down 5109 certain VMs. 5110 </para> 5111 </listitem> 5112 5113 </itemizedlist> 5114 5115 <para> 5116 All configuration values can be either specified via command line 5117 or global extradata, whereas command line values always have a 5118 higher priority when set. Some of the configuration values also be 5119 specified on a per-VM basis. So the overall lookup order is: 5120 command line, per-VM basis extradata (if available), global 5121 extradata. 5122 </para> 5123 5124 <sect2 id="vboxwatchdog-ballonctrl"> 5125 5126 <title>Memory Ballooning Control</title> 5127 5128 <para> 5129 The memory ballooning control inflates and deflates the memory 5130 balloon of VMs based on the VMs free memory and the desired 5131 maximum balloon size. 5132 </para> 5133 5134 <para> 5135 To set up the memory ballooning control the maximum ballooning 5136 size a VM can reach needs to be set. This can be specified via 5137 the command line with: 5138 5139 <screen>--balloon-max <Size in MB></screen> 5140 5141 or on a per-VM basis extradata value with: 5142 5143 <screen>VBoxManage setextradata <VM-Name> VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB></screen> 5144 5145 or using a global extradata value with: 5146 5147 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB></screen> 5148 5149 <note> 5150 <para> 5151 If no maximum ballooning size is specified by at least one 5152 of the parameters above, no ballooning will be performed at 5153 all. 5154 </para> 5155 </note> 5156 </para> 5157 5158 <para> 5159 Setting the ballooning increment in MB can be either done via 5160 command line with: 5161 5162 <screen>--balloon-inc <Size in MB></screen> 5163 5164 or using a global extradata value with: 5165 5166 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonIncrementMB <Size in MB></screen> 5167 5168 The default ballooning increment is 256 MB if not specified. 5169 </para> 5170 5171 <para> 5172 The same options apply for a ballooning decrement. Using the 5173 command line with: 5174 5175 <screen>--balloon-dec <Size in MB></screen> 5176 5177 or using a global extradata value with: 5178 5179 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonDecrementMB <Size in MB></screen> 5180 5181 The default ballooning decrement is 128 MB if not specified. 5182 </para> 5183 5184 <para> 5185 To define the lower limit in MB a balloon can be the command 5186 line with: 5187 5188 <screen>--balloon-lower-limit <Size in MB></screen> 5189 5190 can be used or using a global extradata value with: 5191 5192 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonLowerLimitMB <Size in MB></screen> 5193 5194 is available. Default lower limit is 128 if not specified. 5195 </para> 5196 3223 5197 </sect2> 3224 5198 3225 <sect2 id="vboxwebsrv-solaris"> 3226 <title>Solaris: starting the web service via SMF</title> 3227 3228 <para>On Solaris hosts, the VirtualBox web service daemon is 3229 integrated into the SMF framework. You can change the parameters, but 3230 don't have to if the defaults below already match your needs:<screen>svccfg -s svc:/application/virtualbox/webservice:default setprop config/host=localhost 3231 svccfg -s svc:/application/virtualbox/webservice:default setprop config/port=18083 3232 svccfg -s svc:/application/virtualbox/webservice:default setprop config/user=root</screen></para> 3233 3234 <para>The table in the previous section showing the parameter names and 3235 defaults also applies to Solaris. The parameter names must be changed 3236 to lowercase and a prefix of <computeroutput>config/</computeroutput> 3237 has to be added, e.g. <computeroutput>config/user</computeroutput> or 3238 <computeroutput>config/ssl_keyfile</computeroutput>. If you made any 3239 change, don't forget to run the following command to put the changes into 3240 effect immediately:<screen>svcadm refresh svc:/application/virtualbox/webservice:default</screen></para> 3241 3242 <para>If you forget the above command then the previous settings will 3243 be used when enabling the service. Check the current property settings 3244 with:<screen>svcprop -p config svc:/application/virtualbox/webservice:default</screen></para> 3245 3246 <para>When everything is configured correctly you can start the 3247 VirtualBox web service with the following command:<screen>svcadm enable svc:/application/virtualbox/webservice:default</screen></para> 3248 3249 <para>For more information about SMF, please refer to the Solaris 3250 documentation.</para> 5199 <sect2 id="vboxwatchdog-hostisln"> 5200 5201 <title>Host Isolation Detection</title> 5202 5203 <para> 5204 To detect whether a host is being isolated, that is, the host 5205 cannot reach the VirtualBox server instance anymore, the host 5206 needs to set an alternating value to a global extradata value 5207 within a time period. If this value is not set within that time 5208 period a timeout occurred and the so-called host isolation 5209 response will be performed to the VMs handled. Which VMs are 5210 handled can be controlled by defining VM groups and assigning 5211 VMs to those groups. By default no groups are set, meaning that 5212 all VMs on the server will be handled when no host response is 5213 received within 30 seconds. 5214 </para> 5215 5216 <para> 5217 To set the groups handled by the host isolation detection via 5218 command line: 5219 5220 <screen>--apimon-groups=<string[,stringN]></screen> 5221 5222 or using a global extradata value with: 5223 5224 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/Groups <string[,stringN]></screen> 5225 </para> 5226 5227 <para> 5228 To set the host isolation timeout via command line: 5229 5230 <screen>--apimon-isln-timeout=<ms></screen> 5231 5232 or using a global extradata value with: 5233 5234 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationTimeoutMS <ms></screen> 5235 </para> 5236 5237 <para> 5238 To set the actual host isolation response via command line: 5239 5240 <screen>--apimon-isln-response=<cmd></screen> 5241 5242 or using a global extradata value with: 5243 5244 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationResponse <cmd></screen> 5245 5246 The following response commands are available: 5247 </para> 5248 5249 <itemizedlist> 5250 5251 <listitem> 5252 <para> 5253 <computeroutput>none</computeroutput>. This has no effect. 5254 </para> 5255 </listitem> 5256 5257 <listitem> 5258 <para> 5259 <computeroutput>pause</computeroutput>. Pauses the execution 5260 of a VM. 5261 </para> 5262 </listitem> 5263 5264 <listitem> 5265 <para> 5266 <computeroutput>poweroff</computeroutput>. Shuts down the VM 5267 by pressing the virtual power button. The VM will not have 5268 the chance of saving any data or veto the shutdown process. 5269 </para> 5270 </listitem> 5271 5272 <listitem> 5273 <para> 5274 <computeroutput>save</computeroutput>. Saves the current 5275 machine state and powers off the VM afterwards. If saving 5276 the machine state fails the VM will be paused. 5277 </para> 5278 </listitem> 5279 5280 <listitem> 5281 <para> 5282 <computeroutput>shutdown</computeroutput>. Shuts down the VM 5283 in a gentle way by sending an 5284 <computeroutput>ACPI</computeroutput> shutdown event to the 5285 VM's operating system. The OS then has the chance of doing a 5286 clean shutdown. 5287 </para> 5288 </listitem> 5289 5290 </itemizedlist> 5291 3251 5292 </sect2> 3252 5293 3253 <sect2 id="vboxwebsrv-osx"> 3254 <title>Mac OS X: starting the webservice via launchd</title> 3255 3256 <para>On Mac OS X, launchd is used to start the VirtualBox webservice. An 3257 example configuration file can be found in 3258 <computeroutput>$HOME/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist</computeroutput>. 3259 It can be enabled by changing the 3260 <computeroutput>Disabled</computeroutput> key from 3261 <computeroutput>true</computeroutput> to 3262 <computeroutput>false</computeroutput>. To manually start the 3263 service use the following command: <screen>launchctl load ~/Library/LaunchAgents/org.virtualbox.vboxwebsrv.plist</screen> 3264 For additional information on how launchd services could be 3265 configured see <literal><ulink 3266 url="https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html">https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html</ulink></literal>.</para> 5294 <sect2 id="vboxwatchdog-moreinfo"> 5295 5296 <title>More Information</title> 5297 5298 <para> 5299 For more advanced options and parameters like verbose logging 5300 check the built-in command line help accessible with 5301 <computeroutput>--help</computeroutput>. 5302 </para> 5303 3267 5304 </sect2> 5305 5306 <sect2 id="vboxwatchdog-linux"> 5307 5308 <title>Linux: Starting the Watchdog Service via init</title> 5309 5310 <para> 5311 On Linux, the watchdog service can be automatically started 5312 during host boot by adding appropriate parameters to the file 5313 <computeroutput>/etc/default/virtualbox</computeroutput>. There 5314 is one mandatory parameter, 5315 <computeroutput>VBOXWATCHDOG_USER</computeroutput>, which must 5316 be set to the user which will later start the VMs. For backward 5317 compatibility you can also specify 5318 <computeroutput>VBOXBALLOONCTRL_USER</computeroutput>. 5319 </para> 5320 5321 <para> 5322 The parameters in 5323 <xref linkend="table-vboxwatchdog-config-params"/> all start 5324 with the <computeroutput>VBOXWATCHDOG_</computeroutput> prefix 5325 string. For example: 5326 <computeroutput>VBOXWATCHDOG_BALLOON_INTERVAL</computeroutput> 5327 and <computeroutput>VBOXWATCHDOG_LOGSIZE</computeroutput>. 5328 Legacy parameters such as 5329 <computeroutput>VBOXBALLOONCTRL_INTERVAL</computeroutput> can 5330 still be used. 5331 5332 <table id="table-vboxwatchdog-config-params"> 5333 <title>VirtualBox Watchdog Configuration Parameters</title> 5334 <tgroup cols="3"> 5335 <thead> 5336 <row> 5337 <entry><emphasis role="bold">Parameter</emphasis></entry> 5338 <entry><emphasis role="bold">Description</emphasis></entry> 5339 <entry><emphasis role="bold">Default</emphasis></entry> 5340 </row> 5341 </thead> 5342 <tbody> 5343 <row> 5344 <entry><computeroutput>USER</computeroutput></entry> 5345 <entry>The user as which the watchdog service runs</entry> 5346 <entry></entry> 5347 </row> 5348 <row> 5349 <entry><computeroutput>ROTATE</computeroutput></entry> 5350 <entry>Number of log files; 0 disables log rotation</entry> 5351 <entry>10</entry> 5352 </row> 5353 <row> 5354 <entry><computeroutput>LOGSIZE</computeroutput></entry> 5355 <entry>Maximum size of a log file in bytes to trigger rotation</entry> 5356 <entry>1MB</entry> 5357 </row> 5358 <row> 5359 <entry><computeroutput>LOGINTERVAL</computeroutput></entry> 5360 <entry>Maximum time interval in seconds to trigger log rotation</entry> 5361 <entry>1 day</entry> 5362 </row> 5363 <row> 5364 <entry><computeroutput>BALLOON_INTERVAL</computeroutput></entry> 5365 <entry>Interval for checking the balloon size (msec)</entry> 5366 <entry>30000</entry> 5367 </row> 5368 <row> 5369 <entry><computeroutput>BALLOON_INCREMENT</computeroutput></entry> 5370 <entry>Balloon size increment (MByte)</entry> 5371 <entry>256</entry> 5372 </row> 5373 <row> 5374 <entry><computeroutput>BALLOON_DECREMENT</computeroutput></entry> 5375 <entry>Balloon size decrement (MByte)</entry> 5376 <entry>128</entry> 5377 </row> 5378 <row> 5379 <entry><computeroutput>BALLOON_LOWERLIMIT</computeroutput></entry> 5380 <entry>Balloon size lower limit (MByte)</entry> 5381 <entry>64</entry> 5382 </row> 5383 <row> 5384 <entry><computeroutput>BALLOON_SAFETYMARGIN</computeroutput></entry> 5385 <entry>Free memory required for decreasing the balloon size (MByte)</entry> 5386 <entry>1024</entry> 5387 </row> 5388 </tbody> 5389 </tgroup> 5390 </table> 5391 </para> 5392 5393 </sect2> 5394 5395 <sect2 id="vboxwatchdog-solaris"> 5396 5397 <title>Solaris: Starting the Watchdog Service via SMF</title> 5398 5399 <para> 5400 On Solaris hosts, the VirtualBox watchdog service daemon is 5401 integrated into the SMF framework. You can change the 5402 parameters, but do not have to if the defaults already match 5403 your needs: 5404 </para> 5405 5406 <screen>svccfg -s svc:/application/virtualbox/balloonctrl:default setprop \ 5407 config/balloon_interval=10000 5408 svccfg -s svc:/application/virtualbox/balloonctrl:default setprop \ 5409 config/balloon_safetymargin=134217728</screen> 5410 5411 <para> 5412 <xref linkend="table-vboxwatchdog-config-params"/> also applies 5413 for Solaris. The parameter names must be changed to lowercase 5414 and a prefix of <computeroutput>config/</computeroutput> has to 5415 be added. For example: 5416 <computeroutput>config/user</computeroutput> or 5417 <computeroutput>config/balloon_safetymargin</computeroutput>. If 5418 you made any change, do not forget to run the following command 5419 to put the changes into effect immediately: 5420 5421 <screen>svcadm refresh svc:/application/virtualbox/balloonctrl:default</screen> 5422 </para> 5423 5424 <para> 5425 If you forget the above command then the previous settings will 5426 be used when enabling the service. Check the current property 5427 settings with: 5428 5429 <screen>svcprop -p config svc:/application/virtualbox/balloonctrl:default</screen> 5430 </para> 5431 5432 <para> 5433 When everything is configured correctly you can start the 5434 VirtualBox watchdog service with the following command: 5435 5436 <screen>svcadm enable svc:/application/virtualbox/balloonctrl:default</screen> 5437 </para> 5438 5439 <para> 5440 For more information about SMF, please refer to the Solaris 5441 documentation. 5442 </para> 5443 5444 </sect2> 5445 3268 5446 </sect1> 3269 5447 3270 <sect1 id="vboxwatchdog"> 3271 <title>VirtualBox Watchdog</title> 3272 <para>Starting with VirtualBox 4.2 the memory ballooning service formerly 3273 known as <computeroutput>VBoxBalloonCtrl</computeroutput> was renamed to 3274 VBoxWatchdog, which now incorporates several host services that are meant 3275 to be run in a server environment.</para> 3276 3277 <para>These services are: <itemizedlist> 3278 <listitem> 3279 <para>Memory ballooning control, which automatically takes care of 3280 a VM's configured memory balloon (see <xref linkend="guestadd-balloon" /> 3281 for an introduction to memory ballooning). This especially is useful 3282 for server environments where VMs may dynamically require more or 3283 less memory during runtime.</para> 3284 3285 <para>The service periodically checks a VM's current memory balloon 3286 and its free guest RAM and automatically adjusts the current memory 3287 balloon by inflating or deflating it accordingly. This handling only 3288 applies to running VMs having recent Guest Additions installed.</para> 3289 </listitem> 3290 <listitem> 3291 <para>Host isolation detection, which provides a way to detect whether 3292 the host cannot reach the specific VirtualBox server instance anymore 3293 and take appropriate actions, such as shutting down, saving the 3294 current state or even powering down certain VMs.</para> 3295 </listitem> 3296 </itemizedlist></para> 3297 3298 <para> 3299 All configuration values can be either specified via command line or global 3300 extradata, whereas command line values always have a higher priority when set. 3301 Some of the configuration values also be specified on a per-VM basis. So 3302 the overall lookup order is: command line, per-VM basis extradata (if available), 3303 global extradata. 3304 </para> 3305 3306 <sect2 id="vboxwatchdog-ballonctrl"> 3307 <title>Memory ballooning control</title> 3308 <para>The memory ballooning control inflates and deflates the memory balloon 3309 of VMs based on the VMs free memory and the desired maximum balloon size.</para> 3310 3311 <para>To set up the memory ballooning control the maximum ballooning size a 3312 VM can reach needs to be set. This can be specified via command line with 3313 <screen>--balloon-max <Size in MB></screen>, on a per-VM basis extradata value with 3314 <screen>VBoxManage setextradata <VM-Name> VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB></screen> 3315 or using a global extradata value with 3316 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax <Size in MB></screen> 3317 <note><para>If no maximum ballooning size is specified by at least one of 3318 the parameters above, no ballooning will be performed at all.</para></note> 3319 </para> 3320 3321 <para>Setting the ballooning increment in MB can be either done via 3322 command line with 3323 <screen>--balloon-inc <Size in MB></screen> or using a global 3324 extradata value with 3325 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonIncrementMB <Size in MB></screen> 3326 Default ballooning increment is 256 MB if not specified.</para> 3327 3328 <para>Same goes with the ballooning decrement: Via command line with 3329 <screen>--balloon-dec <Size in MB></screen> or using a global 3330 extradata value with 3331 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonDecrementMB <Size in MB></screen> 3332 Default ballooning decrement is 128 MB if not specified.</para> 3333 3334 <para>To define the lower limit in MB a balloon can be the command line with 3335 <screen>--balloon-lower-limit <Size in MB></screen> can be used or using a global 3336 extradata value with 3337 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonLowerLimitMB <Size in MB></screen> 3338 is available. Default lower limit is 128 if not specified.</para> 3339 </sect2> 3340 3341 <sect2 id="vboxwatchdog-hostisln"> 3342 <title>Host isolation detection</title> 3343 <para>To detect whether a host is being isolated, that is, the host cannot 3344 reach the VirtualBox server instance anymore, the host needs to set an 3345 alternating value to a global extradata value within a time period. If 3346 this value is not set within that time period a timeout occurred and the 3347 so-called host isolation response will be performed to the VMs handled. 3348 Which VMs are handled can be controlled by defining VM groups and assigning 3349 VMs to those groups. By default no groups are set, meaning that all VMs 3350 on the server will be handled when no host response is received within 3351 30 seconds.</para> 3352 3353 <para>To set the groups handled by the host isolation detection via 3354 command line: 3355 <screen>--apimon-groups=<string[,stringN]></screen> or using a global 3356 extradata value with 3357 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/Groups <string[,stringN]></screen> 3358 </para> 3359 3360 <para>To set the host isolation timeout via command line: 3361 <screen>--apimon-isln-timeout=<ms></screen> or using a global 3362 extradata value with 3363 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationTimeoutMS <ms></screen> 3364 </para> 3365 3366 <para>To set the actual host isolation response via command line: 3367 <screen>--apimon-isln-response=<cmd></screen> or using a global 3368 extradata value with 3369 <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationResponse <cmd></screen> 3370 The following response commands are available: 3371 <itemizedlist> 3372 <listitem> 3373 <para><computeroutput>none</computeroutput>, which does nothing.</para> 3374 </listitem> 3375 <listitem> 3376 <para><computeroutput>pause</computeroutput>, which pauses the 3377 execution of a VM.</para> 3378 </listitem> 3379 <listitem> 3380 <para><computeroutput>poweroff</computeroutput>, which shuts down 3381 the VM by pressing the virtual power button. The VM will not have 3382 the chance of saving any data or veto the shutdown process.</para> 3383 </listitem> 3384 <listitem> 3385 <para><computeroutput>save</computeroutput>, which saves the current 3386 machine state and powers off the VM afterwards. If saving the machine 3387 state fails the VM will be paused.</para> 3388 </listitem> 3389 <listitem> 3390 <para><computeroutput>shutdown</computeroutput>, which shuts down 3391 the VM in a gentle way by sending an <computeroutput>ACPI</computeroutput> 3392 shutdown event to the VM's operating system. The OS then has the 3393 chance of doing a clean shutdown.</para> 3394 </listitem> 3395 </itemizedlist> 3396 </para> 3397 </sect2> 3398 3399 <sect2 id="vboxwatchdog-moreinfo"> 3400 <title>More information</title> 3401 <para>For more advanced options and parameters like verbose logging check 3402 the built-in command line help accessible with 3403 <computeroutput>--help</computeroutput>.</para> 3404 </sect2> 3405 3406 <sect2 id="vboxwatchdog-linux"> 3407 <title>Linux: starting the watchdog service via <computeroutput>init</computeroutput></title> 3408 3409 <para>On Linux, the watchdog service can be automatically started during 3410 host boot by adding appropriate parameters to the file 3411 <computeroutput>/etc/default/virtualbox</computeroutput>. 3412 There is one mandatory parameter, <computeroutput>VBOXWATCHDOG_USER</computeroutput>, 3413 which must be set to the user which will later start the VMs. For backward 3414 compatibility you can also specify <computeroutput>VBOXBALLOONCTRL_USER</computeroutput>The 3415 parameters in the table below all start with <computeroutput>VBOXWATCHDOG_</computeroutput> 3416 (<computeroutput>VBOXWATCHDOG_BALLOON_INTERVAL</computeroutput>, 3417 <computeroutput>VBOXWATCHDOG_LOGSIZE</computeroutput> etc., and for 3418 previously existing parameters the 3419 <computeroutput>VBOXBALLOONCTRL_INTERVAL</computeroutput> etc. parameters 3420 can still be used): 3421 <table> 3422 <title>VirtualBox watchdog configuration parameters</title> 3423 <tgroup cols="3"> 3424 <thead> 3425 <row> 3426 <entry><emphasis role="bold">Parameter</emphasis></entry> 3427 <entry><emphasis role="bold">Description</emphasis></entry> 3428 <entry><emphasis role="bold">Default</emphasis></entry> 3429 </row> 3430 </thead> 3431 <tbody> 3432 <row> 3433 <entry><computeroutput>USER</computeroutput></entry> 3434 <entry>The user as which the watchdog service runs</entry> 3435 <entry></entry> 3436 </row> 3437 <row> 3438 <entry><computeroutput>ROTATE</computeroutput></entry> 3439 <entry>Number of log files; 0 disables log rotation</entry> 3440 <entry>10</entry> 3441 </row> 3442 <row> 3443 <entry><computeroutput>LOGSIZE</computeroutput></entry> 3444 <entry>Maximum size of a log file in bytes to trigger rotation</entry> 3445 <entry>1MB</entry> 3446 </row> 3447 <row> 3448 <entry><computeroutput>LOGINTERVAL</computeroutput></entry> 3449 <entry>Maximum time interval in seconds to trigger log rotation</entry> 3450 <entry>1 day</entry> 3451 </row> 3452 <row> 3453 <entry><computeroutput>BALLOON_INTERVAL</computeroutput></entry> 3454 <entry>Interval for checking the balloon size (msec)</entry> 3455 <entry>30000</entry> 3456 </row> 3457 <row> 3458 <entry><computeroutput>BALLOON_INCREMENT</computeroutput></entry> 3459 <entry>Balloon size increment (MByte)</entry> 3460 <entry>256</entry> 3461 </row> 3462 <row> 3463 <entry><computeroutput>BALLOON_DECREMENT</computeroutput></entry> 3464 <entry>Balloon size decrement (MByte)</entry> 3465 <entry>128</entry> 3466 </row> 3467 <row> 3468 <entry><computeroutput>BALLOON_LOWERLIMIT</computeroutput></entry> 3469 <entry>Balloon size lower limit (MByte)</entry> 3470 <entry>64</entry> 3471 </row> 3472 <row> 3473 <entry><computeroutput>BALLOON_SAFETYMARGIN</computeroutput></entry> 3474 <entry>Free memory required for decreasing the balloon size (MByte)</entry> 3475 <entry>1024</entry> 3476 </row> 3477 </tbody> 3478 </tgroup> 3479 </table> 3480 </para> 3481 </sect2> 3482 3483 <sect2 id="vboxwatchdog-solaris"> 3484 <title>Solaris: starting the watchdog service via SMF</title> 3485 3486 <para>On Solaris hosts, the VirtualBox watchdog service daemon is 3487 integrated into the SMF framework. You can change the parameters, but 3488 don't have to if the defaults already match your needs:<screen>svccfg -s svc:/application/virtualbox/balloonctrl:default setprop config/balloon_interval=10000 3489 svccfg -s svc:/application/virtualbox/balloonctrl:default setprop config/balloon_safetymargin=134217728</screen></para> 3490 3491 <para>The table in the previous section showing the parameter names and 3492 defaults also applies to Solaris. The parameter names must be changed 3493 to lowercase and a prefix of <computeroutput>config/</computeroutput> 3494 has to be added, e.g. <computeroutput>config/user</computeroutput> or 3495 <computeroutput>config/balloon_safetymargin</computeroutput>. If you made any 3496 change, don't forget to run the following command to put the changes into 3497 effect immediately:<screen>svcadm refresh svc:/application/virtualbox/balloonctrl:default</screen></para> 3498 3499 <para>If you forget the above command then the previous settings will 3500 be used when enabling the service. Check the current property settings 3501 with:<screen>svcprop -p config svc:/application/virtualbox/balloonctrl:default</screen></para> 3502 3503 <para>When everything is configured correctly you can start the 3504 VirtualBox watchdog service with the following command:<screen>svcadm enable svc:/application/virtualbox/balloonctrl:default</screen></para> 3505 3506 <para>For more information about SMF, please refer to the Solaris 3507 documentation.</para> 3508 </sect2> 5448 <sect1 id="otherextpacks"> 5449 5450 <title>Other Extension Packs</title> 5451 5452 <para> 5453 Starting with VirtualBox 4.2.0 there is another extension pack, 5454 <code>VNC</code>, which is open source and replaces the previous 5455 integration of the VNC remote access protocol. This is 5456 experimental code, and will be initially available in the 5457 VirtualBox source code package only. It is to a large portion code 5458 contributed by users, and is not supported in any way by Oracle. 5459 </para> 5460 5461 <para> 5462 The keyboard handling is severely limited, and only the US 5463 keyboard layout works. Other keyboard layouts will have at least 5464 some keys which produce the wrong results, often with quite 5465 surprising effects, and for layouts which have significant 5466 differences to the US keyboard layout it is most likely unusable. 5467 </para> 5468 5469 <para> 5470 It is possible to install both the Oracle VM VirtualBox Extension 5471 Pack and VNC, but only one VRDE module can be active at any time. 5472 The following command switches to the VNC VRDE module in VNC: 5473 5474 <screen>VBoxManage setproperty vrdeextpack VNC</screen> 5475 </para> 5476 5477 <para> 5478 Configuring the remote access works very similarly to VRDP, see 5479 <xref linkend="vrde" />, with some limitations. VNC does not 5480 support specifying several port numbers, and the authentication is 5481 done differently. VNC can only deal with password authentication, 5482 and there is no option to use password hashes. This leaves no 5483 other choice than having a clear-text password in the VM 5484 configuration, which can be set with the following command: 5485 5486 <screen>VBoxManage modifyvm "VM name" --vrdeproperty VNCPassword=secret</screen> 5487 </para> 5488 5489 <para> 5490 The user is responsible for keeping this password secret, and it 5491 should be removed when a VM configuration is passed to another 5492 person, for whatever purpose. Some VNC servers claim to have 5493 "encrypted" passwords in the configuration. This is not true 5494 encryption, it is only concealing the passwords, which is exactly 5495 as secure as clear-text passwords. 5496 </para> 5497 5498 <para> 5499 The following command switches back to VRDP, if installed: 5500 5501 <screen>VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"</screen> 5502 </para> 5503 3509 5504 </sect1> 3510 5505 3511 <sect1 id="otherextpacks">3512 <title>Other extension packs</title>3513 3514 <para>Starting with VirtualBox 4.2.0 there is another extension pack,3515 <code>VNC</code>, which is open source and replaces the previous3516 integration of the VNC remote access protocol. This is experimental code,3517 and will be initially available in the VirtualBox source code package only.3518 It is to a large portion code contributed by users, and is not supported3519 in any way by Oracle.</para>3520 3521 <para>The keyboard handling is severely limited, and only the US keyboard3522 layout works. Other keyboard layouts will have at least some keys which3523 produce the wrong results (often quite surprising effects), and for layouts3524 which have significant differences to the US keyboard layout it is most3525 likely unusable.</para>3526 3527 <para>It is possible to install both the Oracle VM VirtualBox Extension3528 Pack and VNC, but only one VRDE module can be active at any time. The3529 following command switches to the VNC VRDE module in3530 VNC:<screen>VBoxManage setproperty vrdeextpack VNC</screen></para>3531 3532 <para>Configuring the remote access works very similarly to VRDP (see3533 <xref linkend="vrde" />), with some limitations: VNC does not3534 support specifying several port numbers, and the authentication is done3535 differently. VNC can only deal with password authentication, and there3536 is no option to use password hashes. This leaves no other choice than3537 having a clear-text password in the VM configuration, which can be set with3538 the following command:<screen>VBoxManage modifyvm "VM name" --vrdeproperty VNCPassword=secret</screen></para>3539 3540 <para>The user is responsible for keeping this password secret, and it3541 should be removed when a VM configuration is passed to another person,3542 for whatever purpose. Some VNC servers claim to have "encrypted" passwords3543 in the configuration. This is not true encryption, it is only concealing3544 the passwords, which is exactly as secure as clear-text passwords.</para>3545 3546 <para>The following command switches back to VRDP (if3547 installed):<screen>VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"</screen></para>3548 </sect1>3549 3550 5506 <sect1 id="autostart"> 3551 <title>Starting virtual machines during system boot</title> 3552 3553 <para>Starting with VirtualBox 4.2.0 it is possible to start VMs automatically during 3554 system boot on Linux, Solaris and Mac OS X for all users. </para> 5507 5508 <title>Starting Virtual Machines During System Boot</title> 5509 5510 <para> 5511 Starting with VirtualBox 4.2.0 it is possible to start VMs 5512 automatically during system boot on Linux, Solaris and Mac OS X 5513 for all users. 5514 </para> 3555 5515 3556 5516 <sect2 id="autostart-linux"> 3557 <title>Linux: starting the autostart service via <computeroutput>init</computeroutput></title> 3558 3559 <para>On Linux, the autostart service is activated by setting two variables in 3560 <computeroutput>/etc/default/virtualbox</computeroutput>. 3561 The first one is <computeroutput>VBOXAUTOSTART_DB</computeroutput> which 3562 contains an absolute path to the autostart database directory. 3563 The directory should have write access for every user who should be able to 3564 start virtual machines automatically. Furthermore the directory should have the 3565 sticky bit set. 3566 The second variable is <computeroutput>VBOXAUTOSTART_CONFIG</computeroutput> 3567 which points the service to the autostart configuration file which is used 3568 during boot to determine whether to allow individual users to start a VM 3569 automatically and configure startup delays. 3570 The configuration file can be placed in <computeroutput>/etc/vbox</computeroutput> 3571 and contains several options. One is <computeroutput>default_policy</computeroutput> 3572 which controls whether the autostart service allows or denies to start a VM 3573 for users which are not in the exception list. 3574 The exception list starts with <computeroutput>exception_list</computeroutput> 3575 and contains a comma separated list with usernames. Furthermore a separate 3576 startup delay can be configured for every user to avoid overloading the host. 3577 A sample configuration is given below:</para> 3578 3579 <para><screen> 5517 5518 <title>Linux: Starting the Autostart Service via init</title> 5519 5520 <para> 5521 On Linux, the autostart service is activated by setting two 5522 variables in 5523 <computeroutput>/etc/default/virtualbox</computeroutput>. The 5524 first one is <computeroutput>VBOXAUTOSTART_DB</computeroutput> 5525 which contains an absolute path to the autostart database 5526 directory. The directory should have write access for every user 5527 who should be able to start virtual machines automatically. 5528 Furthermore the directory should have the sticky bit set. The 5529 second variable is 5530 <computeroutput>VBOXAUTOSTART_CONFIG</computeroutput> which 5531 points the service to the autostart configuration file which is 5532 used during boot to determine whether to allow individual users 5533 to start a VM automatically and configure startup delays. The 5534 configuration file can be placed in 5535 <computeroutput>/etc/vbox</computeroutput> and contains several 5536 options. One is <computeroutput>default_policy</computeroutput> 5537 which controls whether the autostart service allows or denies to 5538 start a VM for users which are not in the exception list. The 5539 exception list starts with 5540 <computeroutput>exception_list</computeroutput> and contains a 5541 comma separated list with usernames. Furthermore a separate 5542 startup delay can be configured for every user to avoid 5543 overloading the host. A sample configuration is given below: 5544 </para> 5545 5546 <para> 5547 <screen> 3580 5548 # Default policy is to deny starting a VM, the other option is "allow". 3581 5549 default_policy = deny … … 3593 5561 allow = false 3594 5562 } 3595 </screen></para> 3596 3597 <para>Every user who wants to enable autostart for individual machines 3598 has to set the path to the autostart database directory with 3599 <screen>VBoxManage setproperty autostartdbpath <Autostart directory></screen> 3600 </para> 5563 </screen> 5564 </para> 5565 5566 <para> 5567 Every user who wants to enable autostart for individual machines 5568 has to set the path to the autostart database directory with 5569 5570 <screen>VBoxManage setproperty autostartdbpath <Autostart directory></screen> 5571 </para> 5572 3601 5573 </sect2> 3602 5574 3603 5575 <sect2 id="autostart-solaris"> 3604 <title>Solaris: starting the autostart service via SMF</title> 3605 3606 <para>On Solaris hosts, the VirtualBox autostart daemon is 3607 integrated into the SMF framework. To enable it you have to point the service 3608 to an existing configuration file which has the same format as on Linux (see <xref linkend="autostart-linux" />): 3609 <screen>svccfg -s svc:/application/virtualbox/autostart:default setprop config/config=/etc/vbox/autostart.cfg</screen> 3610 </para> 3611 3612 <para>When everything is configured correctly you can start the 3613 VirtualBox autostart service with the following command:<screen>svcadm enable svc:/application/virtualbox/autostart:default</screen></para> 3614 3615 <para>For more information about SMF, please refer to the Solaris 3616 documentation.</para> 5576 5577 <title>Solaris: Starting the Autostart Service via SMF</title> 5578 5579 <para> 5580 On Solaris hosts, the VirtualBox autostart daemon is integrated 5581 into the SMF framework. To enable it you have to point the 5582 service to an existing configuration file which has the same 5583 format as on Linux, see <xref linkend="autostart-linux" />. For 5584 example: 5585 5586 <screen>svccfg -s svc:/application/virtualbox/autostart:default setprop \ 5587 config/config=/etc/vbox/autostart.cfg</screen> 5588 </para> 5589 5590 <para> 5591 When everything is configured correctly you can start the 5592 VirtualBox autostart service with the following command: 5593 5594 <screen>svcadm enable svc:/application/virtualbox/autostart:default</screen> 5595 </para> 5596 5597 <para> 5598 For more information about SMF, please refer to the Solaris 5599 documentation. 5600 </para> 5601 3617 5602 </sect2> 3618 5603 3619 5604 <sect2 id="autostart-osx"> 3620 <title>Mac OS X: starting the autostart service via launchd</title> 3621 3622 <para>On Mac OS X, launchd is used to start the VirtualBox autostart service. An 3623 example configuration file can be found in 3624 <computeroutput>/Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist</computeroutput>. 3625 To enable the service copy the file to <computeroutput>/Library/LaunchDaemons</computeroutput> and change the 3626 <computeroutput>Disabled</computeroutput> key from 3627 <computeroutput>true</computeroutput> to 3628 <computeroutput>false</computeroutput>. Furthermore replace the second parameter 3629 to an existing configuration file which has the same format as on Linux (see <xref linkend="autostart-linux" />). 3630 To manually start the service use the following command: 3631 <screen>launchctl load /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist</screen> 3632 For additional information on how launchd services could be 3633 configured see <literal><ulink 3634 url="http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html">http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html</ulink></literal>.</para> 5605 5606 <title>Mac OS X: Starting the Autostart Service via launchd</title> 5607 5608 <para> 5609 On Mac OS X, launchd is used to start the VirtualBox autostart 5610 service. An example configuration file can be found in 5611 <computeroutput>/Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist</computeroutput>. 5612 To enable the service copy the file to 5613 <computeroutput>/Library/LaunchDaemons</computeroutput> and 5614 change the <computeroutput>Disabled</computeroutput> key from 5615 <computeroutput>true</computeroutput> to 5616 <computeroutput>false</computeroutput>. Furthermore replace the 5617 second parameter to an existing configuration file which has the 5618 same format as on Linux, see <xref linkend="autostart-linux" />. 5619 To manually start the service use the following command: 5620 5621 <screen>launchctl load /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist</screen> 5622 5623 For additional information on how launchd services could be 5624 configured see: 5625 </para> 5626 5627 <para> 5628 <ulink 5629 url="http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html">http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html</ulink>. 5630 </para> 5631 3635 5632 </sect2> 5633 3636 5634 </sect1> 3637 5635 3638 5636 <sect1 id="vboxexpertstoragemgmt"> 3639 <title>VirtualBox expert storage management</title> 3640 3641 <para>In case the snapshot model of VirtualBox is not sufficient 3642 it is possible to enable a special mode which makes it possible to 3643 reconfigure storage attachments while the VM is paused. 3644 The user has to make sure that the disk data stays consistent to the guest 3645 because unlike with hotplugging the guest is not informed about detached 3646 or newly attached media.</para> 3647 3648 <para>The expert storage management mode can be enabled per VM executing:</para> 3649 3650 <screen>VBoxManage setextradata "VM name" "VBoxInternal2/SilentReconfigureWhilePaused" 1</screen> 3651 3652 <para>Storage attachments can be reconfigured while the VM is paused afterwards using:</para> 3653 <screen>VBoxManage storageattach ...</screen> 5637 5638 <title>VirtualBox Expert Storage Management</title> 5639 5640 <para> 5641 In case the snapshot model of VirtualBox is not sufficient it is 5642 possible to enable a special mode which makes it possible to 5643 reconfigure storage attachments while the VM is paused. The user 5644 has to make sure that the disk data stays consistent to the guest 5645 because unlike with hotplugging the guest is not informed about 5646 detached or newly attached media. 5647 </para> 5648 5649 <para> 5650 The expert storage management mode can be enabled per VM 5651 executing: 5652 </para> 5653 5654 <screen>VBoxManage setextradata "VM name" "VBoxInternal2/SilentReconfigureWhilePaused" 1</screen> 5655 5656 <para> 5657 Storage attachments can be reconfigured while the VM is paused 5658 afterwards using: 5659 </para> 5660 5661 <screen>VBoxManage storageattach ...</screen> 5662 3654 5663 </sect1> 3655 5664 3656 5665 <sect1 id="hostpowertweaks"> 3657 <title>Handling of host power management events</title> 3658 3659 <para>Some host power management events are handled by VirtualBox. The 3660 actual behavior depends on the platform:</para> 3661 3662 <para> 3663 <glosslist> 3664 <glossentry> 3665 <glossterm>Host Suspends</glossterm> 3666 <glossdef> 3667 <para> 3668 This event is generated when the host is about to suspend, that is, 3669 the host saves the state to some non-volatile storage and powers off. 3670 </para> 3671 <para> 3672 This event is currently only handled on Windows hosts and Mac OS X hosts. 3673 When this event is generated, VirtualBox will pause all running VMs. 3674 </para> 3675 </glossdef> 3676 </glossentry> 3677 <glossentry> 3678 <glossterm>Host Resumes</glossterm> 3679 <glossdef> 3680 <para> 3681 This event is generated when the host woke up from the suspended 3682 state. 3683 </para> 3684 <para> 3685 This event is currently only handled on Windows hosts and Mac OS X hosts. 3686 When this event is generated, VirtualBox will resume all VMs which 3687 are where paused before. 3688 </para> 3689 </glossdef> 3690 </glossentry> 3691 <glossentry> 3692 <glossterm>Battery Low</glossterm> 3693 <glossdef> 3694 <para> 3695 The battery level reached a critical level (usually less than 5 3696 percent charged). 3697 </para> 3698 <para> 3699 This event is currently only handled on Windows hosts and Mac OS X hosts. 3700 When this event is generated, VirtualBox will save the state and 3701 terminate all VMs in preparation of a potential host powerdown. 3702 </para> 3703 <para>The behavior can be configured. By executing the following command, 3704 no VM is saved:</para> 3705 <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 0</screen> 3706 <para>This is a global setting as well as a per-VM setting. The per-VM 3707 value has higher precedence than the global value. The following command 3708 will save the state of all VMs but will not save the state of VM "foo":</para> 3709 <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 1 5666 5667 <title>Handling of Host Power Management Events</title> 5668 5669 <para> 5670 Some host power management events are handled by VirtualBox. The 5671 actual behavior depends on the platform: 5672 </para> 5673 5674 <itemizedlist> 5675 5676 <listitem> 5677 <para> 5678 <emphasis role="bold">Host Suspends.</emphasis> This event is 5679 generated when the host is about to suspend, that is, the host 5680 saves the state to some non-volatile storage and powers off. 5681 </para> 5682 5683 <para> 5684 This event is currently only handled on Windows hosts and Mac 5685 OS X hosts. When this event is generated, VirtualBox will 5686 pause all running VMs. 5687 </para> 5688 </listitem> 5689 5690 <listitem> 5691 <para> 5692 <emphasis role="bold">Host Resumes.</emphasis> This event is 5693 generated when the host woke up from the suspended state. 5694 </para> 5695 5696 <para> 5697 This event is currently only handled on Windows hosts and Mac 5698 OS X hosts. When this event is generated, VirtualBox will 5699 resume all VMs which are where paused before. 5700 </para> 5701 </listitem> 5702 5703 <listitem> 5704 <para> 5705 <emphasis role="bold">Battery Low.</emphasis> The battery 5706 level reached a critical level, usually less than 5 percent 5707 charged. 5708 </para> 5709 5710 <para> 5711 This event is currently only handled on Windows hosts and Mac 5712 OS X hosts. When this event is generated, VirtualBox will save 5713 the state and terminate all VMs in preparation of a potential 5714 host powerdown. 5715 </para> 5716 5717 <para> 5718 The behavior can be configured. By executing the following 5719 command, no VM is saved: 5720 </para> 5721 5722 <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 0</screen> 5723 5724 <para> 5725 This is a global setting as well as a per-VM setting. The 5726 per-VM value has higher precedence than the global value. The 5727 following command will save the state of all VMs but will not 5728 save the state of VM "foo": 5729 </para> 5730 5731 <screen>VBoxManage setextradata global "VBoxInternal2/SavestateOnBatteryLow" 1 3710 5732 VBoxManage setextradata "foo" "VBoxInternal2/SavestateOnBatteryLow" 0</screen> 3711 <para>The first line is actually not required as by default the savestate 3712 action is performed.</para> 3713 </glossdef> 3714 </glossentry> 3715 </glosslist> 3716 </para> 3717 </sect1> 3718 3719 <sect1 id="sse412passthrough"> 3720 <title>Passing through SSE4.1 / SSE4.2 instructions</title> 3721 <para> 3722 To provide SSE 4.1 / SSE 4.2 support to guests, the host CPU has to 3723 implement these instruction sets. The instruction sets are exposed 3724 to guests by default, but it is possible to disable the instructions 3725 for certain guests using the following commands:</para> 5733 5734 <para> 5735 The first line is actually not required as by default the 5736 savestate action is performed. 5737 </para> 5738 </listitem> 5739 5740 </itemizedlist> 5741 5742 </sect1> 5743 5744 <sect1 id="sse412passthrough"> 5745 5746 <title>Passing Through SSE4.1/SSE4.2 Instructions</title> 5747 5748 <para> 5749 To provide SSE 4.1/SSE 4.2 support to guests, the host CPU has to 5750 implement these instruction sets. The instruction sets are exposed 5751 to guests by default, but it is possible to disable the instructions 5752 for certain guests using the following commands:</para> 3726 5753 <screen>VBoxManage setextradata "VM name" VBoxInternal/CPUM/IsaExts/SSE4.1 0 3727 5754 VBoxManage setextradata "VM name" VBoxInternal/CPUM/IsaExts/SSE4.2 0</screen> 3728 <para> 3729 These are a per-VM settings which are turned on by default. 3730 </para> 3731 </sect1> 5755 5756 <para> 5757 These are a per-VM settings which are turned on by default. 5758 </para> 5759 5760 </sect1> 3732 5761 3733 5762 <sect1 id="hidledssync"> 3734 <title>Support for keyboard indicator synchronization</title> 3735 3736 <para> 3737 This feature makes the host keyboard indicators (LEDs) match those of the virtual machine's emulated 3738 keyboard when the machine window is active. It is currently implemented for Mac OS X and 3739 Windows hosts. The feature is enabled by default (on a supported host OS), but can be disabled 3740 using the following command: 3741 </para> 3742 3743 <screen>VBoxManage setextradata "VM name" GUI/HidLedsSync 0</screen> 5763 5764 <title>Support for Keyboard Indicators Synchronization</title> 5765 5766 <para> 5767 This feature makes the host keyboard lights match those of the 5768 virtual machine's emulated keyboard when the machine window is 5769 selected. It is currently implemented for Mac OS X and Windows 5770 hosts. The feature is enabled by default (on a supported host OS), 5771 but can be disabled using the following command: 5772 </para> 5773 5774 <screen>VBoxManage setextradata "VM name" GUI/HidLedsSync "0"</screen> 3744 5775 3745 5776 <para> 3746 5777 This is a per-VM setting and it is enabled by default. 3747 5778 </para> 5779 3748 5780 </sect1> 3749 5781 3750 5782 <sect1 id="usbtrafficcapturing"> 3751 <title>Capturing USB traffic for selected devices</title> 3752 3753 <para> 3754 Starting with VirtualBox 5.0 it is possible to capture USB traffic for 3755 single USB devices or on the root hub level which captures the traffic of 3756 all USB devices attached to the root hub. VirtualBox stores the traffic 3757 in a format which is compatible with Wireshark. To capture the traffic 3758 of a specific USB device it must be attached to the VM with VBoxManage 3759 using the following command: 3760 </para> 3761 3762 <screen>VBoxManage controlvm "VM name" usbattach "device uuid|address" --capturefile "filename"</screen> 3763 3764 <para> 3765 In order to enable capturing on the root hub use the following command 3766 while the VM is not running: 3767 </para> 3768 3769 <screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/usb-ehci/0/LUN#0/Config/CaptureFilename "filename"</screen> 3770 3771 <para>The command above enables capturing on the root hub attached to the EHCI controller. 3772 To enable it for the OHCI or XHCI controller replace <computeroutput>usb-ehci</computeroutput> 3773 with <computeroutput>usb-ohci</computeroutput> or <computeroutput>usb-xhci</computeroutput> respectively.</para> 5783 5784 <title>Capturing USB Traffic for Selected Devices</title> 5785 5786 <para> 5787 Starting with VirtualBox 5.0 it is possible to capture USB traffic 5788 for single USB devices or on the root hub level which captures the 5789 traffic of all USB devices attached to the root hub. VirtualBox 5790 stores the traffic in a format which is compatible with Wireshark. 5791 To capture the traffic of a specific USB device it must be 5792 attached to the VM with VBoxManage using the following command: 5793 </para> 5794 5795 <screen>VBoxManage controlvm "VM name" usbattach "device uuid|address" --capturefile "filename"</screen> 5796 5797 <para> 5798 In order to enable capturing on the root hub use the following 5799 command while the VM is not running: 5800 </para> 5801 5802 <screen>VBoxManage setextradata "VM name" \ 5803 VBoxInternal/Devices/usb-ehci/0/LUN#0/Config/CaptureFilename "filename"</screen> 5804 5805 <para> 5806 The command above enables capturing on the root hub attached to 5807 the EHCI controller. To enable it for the OHCI or XHCI controller 5808 replace <computeroutput>usb-ehci</computeroutput> with 5809 <computeroutput>usb-ohci</computeroutput> or 5810 <computeroutput>usb-xhci</computeroutput> respectively. 5811 </para> 5812 3774 5813 </sect1> 3775 5814 3776 5815 <sect1 id="heartbeatservice"> 3777 <title>Configuring the heartbeat service</title> 3778 <para> 3779 VirtualBox ships a simple heartbeat service. Once the Guest Additions are 3780 active, the guest sends frequent heartbeat pings to the host. If the guest 3781 stops sending the heartbeat pings without properly terminating the service, 3782 the VM process will log this event in the VBox.log file. In the future it 3783 might be possible to configure dedicated actions but for now there is only a 3784 warning in the log file.</para> 3785 3786 <para> 3787 There are two parameters to configure. The <emphasis>heartbeat interval</emphasis> 3788 defines the time between two heartbeat pings. The default value is 2 seconds, that 3789 is, the heartbeat service of the VirtualBox Guest Additions will send a heartbeat 3790 ping every two seconds. The value in nanoseconds can be configured like this: 3791 </para> 3792 <screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/VMMDev/0/Config/HeartbeatInterval 2000000000</screen> 3793 <para> 3794 The <emphasis>heartbeat timeout</emphasis> defines the time the host waits 3795 starting from the last heartbeat ping before it defines the guest as unresponsive. 3796 The default value is 2 times the heartbeat interval (4 seconds) and can be configured 3797 as following (in nanoseconds): 3798 </para> 3799 3800 <screen>VBoxManage setextradata "VM name" VBoxInternal/Devices/VMMDev/0/Config/HeartbeatTimeout 4000000000</screen> 5816 5817 <title>Configuring the Heartbeat Service</title> 5818 5819 <para> 5820 VirtualBox ships a simple heartbeat service. Once the Guest 5821 Additions are active, the guest sends frequent heartbeat pings to 5822 the host. If the guest stops sending the heartbeat pings without 5823 properly terminating the service, the VM process will log this 5824 event in the VBox.log file. In the future it might be possible to 5825 configure dedicated actions but for now there is only a warning in 5826 the log file. 5827 </para> 5828 5829 <para> 5830 There are two parameters to configure. The <emphasis>heartbeat 5831 interval</emphasis> defines the time between two heartbeat pings. 5832 The default value is 2 seconds, that is, the heartbeat service of 5833 the VirtualBox Guest Additions will send a heartbeat ping every 5834 two seconds. The value in nanoseconds can be configured like this: 5835 </para> 5836 5837 <screen>VBoxManage setextradata "VM name"\ 5838 VBoxInternal/Devices/VMMDev/0/Config/HeartbeatInterval 2000000000</screen> 5839 5840 <para> 5841 The <emphasis>heartbeat timeout</emphasis> defines the time the 5842 host waits starting from the last heartbeat ping before it defines 5843 the guest as unresponsive. The default value is 2 times the 5844 heartbeat interval (4 seconds) and can be configured as following, 5845 in nanoseconds: 5846 </para> 5847 5848 <screen>VBoxManage setextradata "VM name" \ 5849 VBoxInternal/Devices/VMMDev/0/Config/HeartbeatTimeout 4000000000</screen> 3801 5850 3802 5851 <para> 3803 5852 If the heartbeat timeout expires, there will be a log message like 3804 <emphasis>VMMDev: HeartBeatCheckTimer: Guest seems to be unresponsive. Last heartbeat 3805 received 5 seconds ago.</emphasis> 3806 If another heartbeat ping arrives after this warning, there will be a log 3807 message like 3808 <emphasis>VMMDev: GuestHeartBeat: Guest is alive.</emphasis> 3809 </para> 5853 <emphasis>VMMDev: HeartBeatCheckTimer: Guest seems to be 5854 unresponsive. Last heartbeat received 5 seconds ago.</emphasis> If 5855 another heartbeat ping arrives after this warning, there will be a 5856 log message like <emphasis>VMMDev: GuestHeartBeat: Guest is 5857 alive.</emphasis> 5858 </para> 5859 3810 5860 </sect1> 3811 5861 3812 5862 <sect1 id="diskencryption"> 3813 <title>Encryption of disk images</title> 3814 3815 <para> 3816 Starting with VirtualBox 5.0, it is possible to encrypt the data stored in 3817 hard disk images transparently for the guest. It does not depend on a specific 3818 image format to be used. Images which have the data encrypted are not portable 3819 between VirtualBox and other virtualization software. 3820 </para> 3821 3822 <para> 3823 VirtualBox uses the AES algorithm in XTS mode and supports 128 or 256 bit 3824 data encryption keys (DEK). 3825 The DEK is stored encrypted in the medium properties and is decrypted during 3826 VM startup by entering a password which was chosen when the image was encrypted. 3827 </para> 3828 3829 <para> 3830 Since the DEK is stored as part of the VM configuration file, it is 3831 important that it is kept safe. Losing the DEK means that the data stored 3832 in the disk images is lost irrecoverably. Having complete and up to 3833 date backups of all data related to the VM is the responsibility of the 3834 user. 5863 5864 <title>Encryption of Disk Images</title> 5865 5866 <para> 5867 Starting with VirtualBox 5.0, it is possible to encrypt the data 5868 stored in hard disk images transparently for the guest. It does 5869 not depend on a specific image format to be used. Images which 5870 have the data encrypted are not portable between VirtualBox and 5871 other virtualization software. 5872 </para> 5873 5874 <para> 5875 VirtualBox uses the AES algorithm in XTS mode and supports 128-bit 5876 or 256-bit data encryption keys (DEK). The DEK is stored encrypted 5877 in the medium properties and is decrypted during VM startup by 5878 entering a password which was chosen when the image was encrypted. 5879 </para> 5880 5881 <para> 5882 Since the DEK is stored as part of the VM configuration file, it 5883 is important that it is kept safe. Losing the DEK means that the 5884 data stored in the disk images is lost irrecoverably. Having 5885 complete and up to date backups of all data related to the VM is 5886 the responsibility of the user. 3835 5887 </para> 3836 5888 3837 5889 <sect2 id="diskencryption-limitations"> 3838 <title>Limitations</title> 3839 3840 <para> 3841 There are some limitations the user needs to be aware of when using this 3842 feature: 5890 5891 <title>Limitations of Disk Encryption</title> 5892 5893 <para> 5894 There are some limitations the user needs to be aware of when 5895 using this feature: 3843 5896 </para> 3844 5897 … … 3846 5899 3847 5900 <listitem> 3848 <para>This feature is part of the Oracle VM VirtualBox Extension 5901 <para> 5902 This feature is part of the Oracle VM VirtualBox Extension 3849 5903 Pack, which needs to be installed. Otherwise disk encryption 3850 is unavailable.</para> 3851 </listitem> 3852 3853 <listitem> 3854 <para>Since encryption works only on the stored user data, 3855 it is currently not possible to check for metadata integrity of the disk image. 3856 Attackers might destroy data by removing or changing blocks of data 3857 in the image or change metadata items such as the disk size. 5904 is unavailable. 3858 5905 </para> 3859 5906 </listitem> 3860 5907 3861 5908 <listitem> 3862 <para>Exporting appliances which contain encrypted disk images is not 3863 possible because the OVF specification doesn't support this. 3864 All images are therefore decrypted during export.</para> 3865 </listitem> 3866 3867 <listitem> 3868 <para>The DEK is kept in memory while the VM is running to be able to 3869 decrypt data read and encrypt data written by the guest. While this should 3870 be obvious the user needs to be aware of this because an attacker might be able 3871 to extract the key on a compromised host and decrypt the data.</para> 3872 </listitem> 3873 3874 <listitem> 3875 <para>When encrypting or decrypting the images, the password is 3876 passed in clear text via the VirtualBox API. This needs to be kept 3877 in mind, especially when using third party API clients which make 3878 use of the webservice where the password might be transmitted 3879 over the network. The use of HTTPS is mandatory in such a case. 5909 <para> 5910 Since encryption works only on the stored user data, it is 5911 currently not possible to check for metadata integrity of 5912 the disk image. Attackers might destroy data by removing or 5913 changing blocks of data in the image or change metadata 5914 items such as the disk size. 3880 5915 </para> 3881 5916 </listitem> 3882 5917 3883 5918 <listitem> 3884 <para>Encrypting images with differencing images is only possible if 3885 there are no snapshots or a linear chain of snapshots. This 3886 limitation may be addressed in a future VirtualBox version.</para> 5919 <para> 5920 Exporting appliances which contain encrypted disk images is 5921 not possible because the OVF specification does not support 5922 this. All images are therefore decrypted during export. 5923 </para> 3887 5924 </listitem> 3888 5925 5926 <listitem> 5927 <para> 5928 The DEK is kept in memory while the VM is running to be able 5929 to decrypt data read and encrypt data written by the guest. 5930 While this should be obvious the user needs to be aware of 5931 this because an attacker might be able to extract the key on 5932 a compromised host and decrypt the data. 5933 </para> 5934 </listitem> 5935 5936 <listitem> 5937 <para> 5938 When encrypting or decrypting the images, the password is 5939 passed in clear text via the VirtualBox API. This needs to 5940 be kept in mind, especially when using third party API 5941 clients which make use of the webservice where the password 5942 might be transmitted over the network. The use of HTTPS is 5943 mandatory in such a case. 5944 </para> 5945 </listitem> 5946 5947 <listitem> 5948 <para> 5949 Encrypting images with differencing images is only possible 5950 if there are no snapshots or a linear chain of snapshots. 5951 This limitation may be addressed in a future VirtualBox 5952 version. 5953 </para> 5954 </listitem> 5955 3889 5956 </itemizedlist> 3890 5957 … … 3892 5959 3893 5960 <sect2 id="diskencryption-encryption"> 3894 <title>Encrypting disk images</title> 3895 3896 <para> 3897 Encrypting disk images can be done either using the GUI or VBoxManage. 3898 While the GUI is easier to use, it works on a per VM basis and encrypts 3899 all disk images attached to the specific VM. 3900 With VBoxManage one can encrypt individual images (including all differencing 3901 images). To encrypt an unencrypted medium with VBoxManage, use: 3902 </para> 3903 3904 <screen>VBoxManage encryptmedium "uuid|filename" --newpassword "file|-" --cipher "cipher id" --newpasswordid "id"</screen> 3905 3906 <para> 3907 To supply the encryption password point VBoxManage to the file where the 3908 password is stored or specify <computeroutput>-</computeroutput> to let VBoxManage 3909 ask you for the password on the command line. 3910 </para> 3911 <para> 3912 The cipher parameter specifies the cipher to use for encryption and can be either 3913 <computeroutput>AES-XTS128-PLAIN64</computeroutput> or <computeroutput>AES-XTS256-PLAIN64</computeroutput>. 3914 The specified password identifier can be freely chosen by the user and is 3915 used for correct identification when supplying multiple passwords during 3916 VM startup. 3917 </para> 3918 <para> 3919 If the user uses the same password when encrypting multiple images and also the 3920 same password identifier, the user needs to supply the password only once during 3921 VM startup. 3922 </para> 5961 5962 <title>Encrypting Disk Images</title> 5963 5964 <para> 5965 Encrypting disk images can be done either using the GUI or 5966 VBoxManage. While the GUI is easier to use, it works on a per VM 5967 basis and encrypts all disk images attached to the specific VM. 5968 With VBoxManage one can encrypt individual images, including all 5969 differencing images. To encrypt an unencrypted medium with 5970 VBoxManage, use: 5971 </para> 5972 5973 <screen>VBoxManage encryptmedium "uuid|filename" \ 5974 --newpassword "file|-" --cipher "cipher id" --newpasswordid "id"</screen> 5975 5976 <para> 5977 To supply the encryption password point VBoxManage to the file 5978 where the password is stored or specify 5979 <computeroutput>-</computeroutput> to let VBoxManage ask you for 5980 the password on the command line. 5981 </para> 5982 5983 <para> 5984 The cipher parameter specifies the cipher to use for encryption 5985 and can be either 5986 <computeroutput>AES-XTS128-PLAIN64</computeroutput> or 5987 <computeroutput>AES-XTS256-PLAIN64</computeroutput>. The 5988 specified password identifier can be freely chosen by the user 5989 and is used for correct identification when supplying multiple 5990 passwords during VM startup. 5991 </para> 5992 5993 <para> 5994 If the user uses the same password when encrypting multiple 5995 images and also the same password identifier, the user needs to 5996 supply the password only once during VM startup. 5997 </para> 5998 3923 5999 </sect2> 3924 6000 3925 6001 <sect2 id="diskencryption-startvm"> 3926 <title>Starting a VM with encrypted images</title> 3927 3928 <para> 3929 When a VM is started using the GUI, a dialog will open where the user 3930 needs to enter all passwords for all encrypted images attached to the VM. 3931 If another frontend like VBoxHeadless is used, the VM will be paused as soon 3932 as the guest tries to access an encrypted disk. 3933 The user needs to provide the passwords through VBoxManage using the following 3934 command: 3935 </para> 3936 3937 <screen>VBoxManage controlvm "uuid|vmname" addencpassword "id" "password" [--removeonsuspend "yes|no"]</screen> 3938 3939 <para> 3940 The <computeroutput>id</computeroutput> parameter must be the same as the password identifier 3941 supplied when encrypting the images. <computeroutput>password</computeroutput> is the password 3942 used when encrypting the images. The user can optionally specify 3943 <computeroutput>--removeonsuspend "yes|no"</computeroutput> to specify whether 3944 to remove the password from VM memory when the VM is suspended. Before the VM can be 3945 resumed, the user needs to supply the passwords again. This is useful when 3946 a VM is suspended by a host suspend event and the user doesn't want 3947 the password to remain in memory. 3948 </para> 6002 6003 <title>Starting a VM with Encrypted Images</title> 6004 6005 <para> 6006 When a VM is started using the GUI, a dialog will open where the 6007 user needs to enter all passwords for all encrypted images 6008 attached to the VM. If another frontend like VBoxHeadless is 6009 used, the VM will be paused as soon as the guest tries to access 6010 an encrypted disk. The user needs to provide the passwords 6011 through VBoxManage using the following command: 6012 </para> 6013 6014 <screen>VBoxManage controlvm "uuid|vmname" addencpassword "id" "password" [--removeonsuspend "yes|no"]</screen> 6015 6016 <para> 6017 The <computeroutput>id</computeroutput> parameter must be the 6018 same as the password identifier supplied when encrypting the 6019 images. <computeroutput>password</computeroutput> is the 6020 password used when encrypting the images. The user can 6021 optionally specify <computeroutput>--removeonsuspend 6022 "yes|no"</computeroutput> to specify whether to remove the 6023 password from VM memory when the VM is suspended. Before the VM 6024 can be resumed, the user needs to supply the passwords again. 6025 This is useful when a VM is suspended by a host suspend event 6026 and the user does not want the password to remain in memory. 6027 </para> 6028 3949 6029 </sect2> 3950 6030 3951 6031 <sect2 id="diskencryption-decryption"> 3952 <title>Decrypting encrypted images</title> 3953 3954 <para> 3955 In some circumstances it might be required to decrypt previously encrypted 3956 images. This can be done in the GUI for a complete VM or using VBoxManage 3957 with the following command: 3958 </para> 3959 3960 <screen>VBoxManage encryptmedium "uuid|filename" --oldpassword "file|-"</screen> 3961 3962 <para> 3963 The only required parameter is the password the image was encrypted with. 3964 The options are the same as for encrypting images. 3965 </para> 6032 6033 <title>Decrypting Encrypted Images</title> 6034 6035 <para> 6036 In some circumstances it might be required to decrypt previously 6037 encrypted images. This can be done in the GUI for a complete VM 6038 or using VBoxManage with the following command: 6039 </para> 6040 6041 <screen>VBoxManage encryptmedium "uuid|filename" --oldpassword "file|-"</screen> 6042 6043 <para> 6044 The only required parameter is the password the image was 6045 encrypted with. The options are the same as for encrypting 6046 images. 6047 </para> 6048 3966 6049 </sect2> 6050 3967 6051 </sect1> 3968 6052 3969 6053 <sect1 id="gimdebug"> 3970 <title>Paravirtualized debugging</title> 3971 3972 <para>In this section we cover debugging of guest operating systems using interfaces 3973 supported by paravirtualization providers.</para> 6054 6055 <title>Paravirtualized Debugging</title> 6056 6057 <para> 6058 In this section we cover debugging of guest operating systems 6059 using interfaces supported by paravirtualization providers. 6060 </para> 3974 6061 3975 6062 <note> 3976 <para>Paravirtualized debugging significantly alter guest operating system behaviour 3977 and should only be used by expert users for debugging and diagnostics.</para> 6063 <para> 6064 Paravirtualized debugging significantly alter guest operating 6065 system behaviour and should only be used by expert users for 6066 debugging and diagnostics. 6067 </para> 3978 6068 </note> 3979 6069 3980 <para>These debug options are specified as a string of key-value pairs separated by 3981 commas. An empty string disables paravirtualized debugging.</para> 6070 <para> 6071 These debug options are specified as a string of key-value pairs 6072 separated by commas. An empty string disables paravirtualized 6073 debugging. 6074 </para> 3982 6075 3983 6076 <sect2 id="gimdebughyperv"> 3984 <title>Hyper-V debug options</title> 3985 3986 <para>All of the options listed below are optional, and thus the default value 3987 specified will be used when the corresponding key-value pair is not 3988 specified.</para> 6077 6078 <title>Hyper-V Debug Options</title> 6079 6080 <para> 6081 All of the options listed below are optional, and thus the 6082 default value specified will be used when the corresponding 6083 key-value pair is not specified. 6084 </para> 3989 6085 3990 6086 <itemizedlist> 6087 3991 6088 <listitem> 3992 <para>Key: <emphasis role="bold"><computeroutput>enabled</computeroutput></emphasis></para> 3993 <para>Value: <computeroutput>0</computeroutput> or <computeroutput>1</computeroutput></para> 3994 <para>Default: <computeroutput>0</computeroutput></para> 3995 <para>Specify <computeroutput>1</computeroutput> to enable the Hyper-V debug 3996 interface. If this key-value pair is not specified or the value is not 3997 <computeroutput>1</computeroutput>, the Hyper-V debug interface is disabled 3998 regardless of other key-value pairs being present.</para> 6089 <para> 6090 Key: 6091 <emphasis role="bold"><computeroutput>enabled</computeroutput></emphasis> 6092 </para> 6093 6094 <para> 6095 Value: <computeroutput>0</computeroutput> or 6096 <computeroutput>1</computeroutput> 6097 </para> 6098 6099 <para> 6100 Default: <computeroutput>0</computeroutput> 6101 </para> 6102 6103 <para> 6104 Specify <computeroutput>1</computeroutput> to enable the 6105 Hyper-V debug interface. If this key-value pair is not 6106 specified or the value is not 6107 <computeroutput>1</computeroutput>, the Hyper-V debug 6108 interface is disabled regardless of other key-value pairs 6109 being present. 6110 </para> 3999 6111 </listitem> 6112 4000 6113 <listitem> 4001 <para>Key: <emphasis role="bold"><computeroutput>address</computeroutput></emphasis></para> 4002 <para>Value: IPv4 address</para> 4003 <para>Default: 127.0.0.1</para> 4004 <para>Specify the IPv4 address where the remote debugger is connected.</para> 6114 <para> 6115 Key: 6116 <emphasis role="bold"><computeroutput>address</computeroutput></emphasis> 6117 </para> 6118 6119 <para> 6120 Value: IPv4 address 6121 </para> 6122 6123 <para> 6124 Default: 127.0.0.1 6125 </para> 6126 6127 <para> 6128 Specify the IPv4 address where the remote debugger is 6129 connected. 6130 </para> 4005 6131 </listitem> 6132 4006 6133 <listitem> 4007 <para>Key: <emphasis role="bold"><computeroutput>port</computeroutput></emphasis></para> 4008 <para>Value: UDP port number</para> 4009 <para>Default: 50000</para> 4010 <para>Specify the UDP port number where the remote debugger is connected.</para> 6134 <para> 6135 Key: 6136 <emphasis role="bold"><computeroutput>port</computeroutput></emphasis> 6137 </para> 6138 6139 <para> 6140 Value: UDP port number 6141 </para> 6142 6143 <para> 6144 Default: 50000 6145 </para> 6146 6147 <para> 6148 Specify the UDP port number where the remote debugger is 6149 connected. 6150 </para> 4011 6151 </listitem> 6152 4012 6153 <listitem> 4013 <para>Key: <emphasis role="bold"><computeroutput>vendor</computeroutput></emphasis></para> 4014 <para>Value: Hyper-V vendor signature reported via CPUID to the guest</para> 4015 <para>Default: When debugging is enabled: <computeroutput>Microsoft Hv</computeroutput>, 4016 otherwise: <computeroutput>VBoxVBoxVBox</computeroutput></para> 4017 <para>Specify the Hyper-V vendor signature which is exposed to the guest via CPUID. 4018 For debugging Microsoft Windows guests, it is required the hypervisor reports 4019 the Microsoft vendor.</para> 6154 <para> 6155 Key: 6156 <emphasis role="bold"><computeroutput>vendor</computeroutput></emphasis> 6157 </para> 6158 6159 <para> 6160 Value: Hyper-V vendor signature reported via CPUID to the 6161 guest 6162 </para> 6163 6164 <para> 6165 Default: When debugging is enabled: 6166 <computeroutput>Microsoft Hv</computeroutput>, otherwise: 6167 <computeroutput>VBoxVBoxVBox</computeroutput> 6168 </para> 6169 6170 <para> 6171 Specify the Hyper-V vendor signature which is exposed to the 6172 guest via CPUID. For debugging Microsoft Windows guests, it 6173 is required the hypervisor reports the Microsoft vendor. 6174 </para> 4020 6175 </listitem> 6176 4021 6177 <listitem> 4022 <para>Key: <emphasis role="bold"><computeroutput>hypercallinterface</computeroutput> 4023 </emphasis></para> 4024 <para>Value: <computeroutput>0</computeroutput> or <computeroutput>1</computeroutput></para> 4025 <para>Default: <computeroutput>0</computeroutput></para> 4026 <para>Specify whether hypercalls should be suggested for initiating debug data 4027 transfers between host and guest rather than MSRs when requested by the guest.</para> 6178 <para> 6179 Key: 6180 <emphasis role="bold"><computeroutput>hypercallinterface</computeroutput> 6181 </emphasis> 6182 </para> 6183 6184 <para> 6185 Value: <computeroutput>0</computeroutput> or 6186 <computeroutput>1</computeroutput> 6187 </para> 6188 6189 <para> 6190 Default: <computeroutput>0</computeroutput> 6191 </para> 6192 6193 <para> 6194 Specify whether hypercalls should be suggested for 6195 initiating debug data transfers between host and guest 6196 rather than MSRs when requested by the guest. 6197 </para> 4028 6198 </listitem> 6199 4029 6200 <listitem> 4030 <para>Key: <emphasis role="bold"><computeroutput>vsinterface</computeroutput> 4031 </emphasis></para> 4032 <para>Value: <computeroutput>0</computeroutput> or <computeroutput>1</computeroutput></para> 4033 <para>Default: When debugging is enabled, <computeroutput>1</computeroutput>, 4034 otherwise <computeroutput>0</computeroutput></para> 4035 <para>Specify whether to expose the "VS#1" (virtualization service) interface to the 4036 guest. This interface is required for debugging Microsoft Windows 10 32-bit guests, but 4037 is optional for other Windows versions.</para> 6201 <para> 6202 Key: 6203 <emphasis role="bold"><computeroutput>vsinterface</computeroutput> 6204 </emphasis> 6205 </para> 6206 6207 <para> 6208 Value: <computeroutput>0</computeroutput> or 6209 <computeroutput>1</computeroutput> 6210 </para> 6211 6212 <para> 6213 Default: When debugging is enabled, 6214 <computeroutput>1</computeroutput>, otherwise 6215 <computeroutput>0</computeroutput> 6216 </para> 6217 6218 <para> 6219 Specify whether to expose the "VS#1" (virtualization 6220 service) interface to the guest. This interface is required 6221 for debugging Microsoft Windows 10 32-bit guests, but is 6222 optional for other Windows versions. 6223 </para> 4038 6224 </listitem> 6225 4039 6226 </itemizedlist> 4040 6227 4041 6228 <sect3 id="gimdebughyperv-windows-setup"> 4042 <title>Setting up Windows guests for debugging with the Hyper-V paravirtualization provider</title> 4043 4044 <para>Windows supports debugging over a serial cable, USB, IEEE 1394 Firewire, and Ethernet 4045 (only Windows 8 and later). USB and IEEE 1394 are not applicable for virtual machines, and 4046 Ethernet requires Windows 8 or later. While serial connection is universally usable, it is 4047 slow.</para> 4048 4049 <para>Debugging using the Hyper-V debug transport, supported on Windows Vista and later, 4050 offers significant benefits. It provides excellent performance due to direct host-to-guest 4051 transfers, it is easy to set up and requires minimal support from the hypervisor. It can be 4052 used with the debugger running on the same host as the VM or with the debugger and VM on 4053 separate machines connected over a network.</para> 4054 4055 <sect4><title>Prerequisites</title> 4056 <itemizedlist> 4057 <listitem> 4058 <para>A VM configured for Hyper-V paravirtualization running a Windows Vista or newer 4059 Windows guest. You may check the effective paravirtualization provider for your VM from 4060 the output of the following VBoxManage command:</para> 4061 <para><screen>VBoxManage showvminfo "VM name"</screen></para> 4062 </listitem> 4063 4064 <listitem> 4065 <para>A sufficiently up-to-date version of the Microsoft WinDbg debugger required 4066 to debug the version of Windows in your VM.</para> 4067 </listitem> 4068 4069 <listitem> 4070 <para>While Windows 8 and newer Windows guests ship with Hyper-V debug support, 4071 Windows 7 and Vista do not. To use Hyper-V debugging with a Windows 7 or Vista 4072 guest, copy the file 4073 <computeroutput>kdvm.dll</computeroutput> from a Windows 8.0 installation<footnote> 4074 <para>Only Windows 8.0 ships <computeroutput>kdvm.dll</computeroutput>. Windows 8.1 4075 and newer Windows versions do not.</para></footnote>. This file is 4076 typically located in <computeroutput>C:\Windows\System32</computeroutput>. Copy it 4077 to the same location in your Windows 7/Vista guest. Make sure you copy the 32-bit or 4078 64-bit version of the DLL which matches your guest OS.</para> 4079 </listitem> 4080 </itemizedlist> 4081 </sect4> 4082 4083 <sect4><title>VM and guest configuration</title> 4084 <orderedlist> 4085 <listitem> 4086 <para>Power off the VM.</para> 4087 </listitem> 4088 4089 <listitem> 4090 <para>Enable the debug options by executing the following VBoxManage command:</para> 4091 <para><screen>VBoxManage modifyvm "VM name" --paravirtdebug "enabled=1"</screen></para> 4092 <para>The above command assumes your debugger will connect to your host machine 4093 on UDP port 50000. However, if you need to run the debugger on a remote machine 4094 you may specify the remote address and port here, e.g. using:</para> 4095 <para> 4096 <screen>VBoxManage modifyvm "VM name" --paravirtdebug "enabled=1,address=192.168.32.1,port=55000"</screen> 4097 </para> 4098 <para>Refer <xref linkend="gimdebughyperv" /> for the complete set of options.</para> 4099 </listitem> 4100 4101 <listitem> 4102 <para>Start the VM.</para> 4103 </listitem> 4104 4105 <listitem> 4106 <para>In the guest, start an elevated command prompt and execute the 4107 following commands:</para> 4108 <itemizedlist> 4109 <listitem><para>For a Windows 8 or newer Windows guest:</para> 4110 <para> 4111 <screen>bcdedit /dbgsettings net hostip:5.5.5.5 port:50000 key:1.2.3.4</screen> 4112 </para> 4113 </listitem> 4114 <listitem><para>For a Windows 7 or Vista guest:</para> 4115 <para> 4116 <screen>bcdedit /set loadoptions host_ip=5.5.5.5,host_port=50000,encryption_key=1.2.3.4</screen> 4117 <screen>bcdedit /set dbgtransport kdvm.dll</screen> 4118 </para> 4119 <para>The IP address and port in the <computeroutput>bcdedit</computeroutput> command 4120 are ignored when using the Hyper-V debug transport. Any valid IP and a port number greater 4121 than 49151 and lower than 65536 can be entered.</para> 4122 4123 <para>The encryption key in the <computeroutput>bcdedit</computeroutput> command is 4124 relevant and must be valid. The key "1.2.3.4" used in the above example is valid 4125 and may be used if security is not a concern. If you do not specify any encryption key, 4126 <computeroutput>bcdedit</computeroutput> will generate one for you and you will need to copy 4127 this key to later enter in Microsoft WinDbg on the remote end. This encryption key is used 4128 to encrypt the debug data exchanged between Windows and the debugger.</para> 4129 </listitem> 4130 <listitem> 4131 <para>Execute one or more of the following commands to enable debugging for 4132 the appropriate phase or component of your Windows guest: </para> 4133 <para> 4134 <screen>bcdedit /set debug on</screen> 4135 <screen>bcdedit /set bootdebug on</screen> 4136 <screen>bcdedit /set {bootmgr} bootdebug on</screen> 4137 </para> 4138 <para>Please note that the <computeroutput>bootdebug</computeroutput> options are only 4139 effective on Windows 8 or newer when using the Hyper-V debug transport. Refer to Microsoft 4140 Windows documentation for detailed explanation of <computeroutput>bcdedit</computeroutput> 4141 options.</para> 4142 </listitem> 4143 </itemizedlist> 4144 </listitem> 4145 4146 <listitem> 4147 <para>Start Microsoft WinDbg on your host machine or remote host.</para> 4148 4149 <para>From the "File" menu, select "Kernel debug". Under the "NET" tab, specify the UDP port 4150 number you used in the <computeroutput>paravirtdebug</computeroutput> options. If you didn't 4151 specify any, leave it as 50000. Ensure that the UDP port is not blocked by a firewall or other 4152 security software.</para> 4153 4154 <para>In the "Key" field, enter <computeroutput>1.2.3.4</computeroutput> or the encryption 4155 key from the <computeroutput>bcdedit</computeroutput> command in your Windows guest.</para> 4156 4157 <para>Now press "OK" to start listening for connections. Microsoft WinDbg typically shows 4158 a "Waiting to reconnect" message during this phase.</para> 4159 4160 <para>Alternatively, launch WinDbg from the command line to directly start a debug session: 4161 <screen>windbg.exe -k net:port=50000,key=1.2.3.4</screen> 4162 Please refer to the WinDbg documentation for complete command line syntax. 4163 </para> 4164 4165 </listitem> 4166 4167 <listitem> 4168 <para>Reboot your Windows guest and it should then connect as a debuggee with Microsoft 4169 WinDbg.</para> 4170 </listitem> 4171 </orderedlist> 4172 </sect4> 6229 6230 <title>Setting up Windows Guests for Debugging with the Hyper-V 6231 Paravirtualization Provider</title> 6232 6233 <para> 6234 Windows supports debugging over a serial cable, USB, IEEE 1394 6235 Firewire, and Ethernet (only Windows 8 and later). USB and 6236 IEEE 1394 are not applicable for virtual machines, and 6237 Ethernet requires Windows 8 or later. While serial connection 6238 is universally usable, it is slow. 6239 </para> 6240 6241 <para> 6242 Debugging using the Hyper-V debug transport, supported on 6243 Windows Vista and later, offers significant benefits. It 6244 provides excellent performance due to direct host-to-guest 6245 transfers, it is easy to set up and requires minimal support 6246 from the hypervisor. It can be used with the debugger running 6247 on the same host as the VM or with the debugger and VM on 6248 separate machines connected over a network. 6249 </para> 6250 6251 <para> 6252 <emphasis role="bold">Prerequisites</emphasis> 6253 </para> 6254 6255 <itemizedlist> 6256 6257 <listitem> 6258 <para> 6259 A VM configured for Hyper-V paravirtualization running a 6260 Windows Vista or newer Windows guest. You may check the 6261 effective paravirtualization provider for your VM from the 6262 output of the following VBoxManage command: 6263 </para> 6264 6265 <para> 6266 <screen>VBoxManage showvminfo "VM name"</screen> 6267 </para> 6268 </listitem> 6269 6270 <listitem> 6271 <para> 6272 A sufficiently up-to-date version of the Microsoft WinDbg 6273 debugger required to debug the version of Windows in your 6274 VM. 6275 </para> 6276 </listitem> 6277 6278 <listitem> 6279 <para> 6280 While Windows 8 and newer Windows guests ship with Hyper-V 6281 debug support, Windows 7 and Vista do not. To use Hyper-V 6282 debugging with a Windows 7 or Vista guest, copy the file 6283 <computeroutput>kdvm.dll</computeroutput> from a Windows 6284 8.0 installation 6285 6286 <footnote> 6287 6288 <para> 6289 Only Windows 8.0 ships 6290 <computeroutput>kdvm.dll</computeroutput>. Windows 8.1 6291 and newer Windows versions do not. 6292 </para> 6293 6294 </footnote> 6295 6296 . This file is typically located in 6297 <computeroutput>C:\Windows\System32</computeroutput>. Copy 6298 it to the same location in your Windows 7/Vista guest. 6299 Make sure you copy the 32-bit or 64-bit version of the DLL 6300 which matches your guest OS. 6301 </para> 6302 </listitem> 6303 6304 </itemizedlist> 6305 6306 <para> 6307 <emphasis role="bold">VM and Guest Configuration</emphasis> 6308 </para> 6309 6310 <orderedlist> 6311 6312 <listitem> 6313 <para> 6314 Power off the VM. 6315 </para> 6316 </listitem> 6317 6318 <listitem> 6319 <para> 6320 Enable the debug options by executing the following 6321 VBoxManage command: 6322 </para> 6323 6324 <para> 6325 <screen>VBoxManage modifyvm "VM name" --paravirtdebug "enabled=1"</screen> 6326 </para> 6327 6328 <para> 6329 The above command assumes your debugger will connect to 6330 your host machine on UDP port 50000. However, if you need 6331 to run the debugger on a remote machine you may specify 6332 the remote address and port here. For example:: 6333 </para> 6334 6335 <para> 6336 <screen>VBoxManage modifyvm "VM name" --paravirtdebug "enabled=1,address=192.168.32.1,port=55000"</screen> 6337 </para> 6338 6339 <para> 6340 See <xref linkend="gimdebughyperv" /> for the complete set 6341 of options. 6342 </para> 6343 </listitem> 6344 6345 <listitem> 6346 <para> 6347 Start the VM. 6348 </para> 6349 </listitem> 6350 6351 <listitem> 6352 <para> 6353 In the guest, start an elevated command prompt and execute 6354 the following commands: 6355 </para> 6356 6357 <itemizedlist> 6358 6359 <listitem> 6360 <para> 6361 For a Windows 8 or newer Windows guest: 6362 </para> 6363 6364 <para> 6365 <screen>bcdedit /dbgsettings net hostip:5.5.5.5 port:50000 key:1.2.3.4</screen> 6366 </para> 6367 </listitem> 6368 6369 <listitem> 6370 <para> 6371 For a Windows 7 or Vista guest: 6372 </para> 6373 6374 <para> 6375 <screen>bcdedit /set loadoptions host_ip=5.5.5.5,host_port=50000,encryption_key=1.2.3.4</screen> 6376 6377 <screen>bcdedit /set dbgtransport kdvm.dll</screen> 6378 </para> 6379 6380 <para> 6381 The IP address and port in the 6382 <computeroutput>bcdedit</computeroutput> command are 6383 ignored when using the Hyper-V debug transport. Any 6384 valid IP and a port number greater than 49151 and 6385 lower than 65536 can be entered. 6386 </para> 6387 6388 <para> 6389 The encryption key in the 6390 <computeroutput>bcdedit</computeroutput> command is 6391 relevant and must be valid. The key "1.2.3.4" used in 6392 the above example is valid and may be used if security 6393 is not a concern. If you do not specify any encryption 6394 key, <computeroutput>bcdedit</computeroutput> will 6395 generate one for you and you will need to copy this 6396 key to later enter in Microsoft WinDbg on the remote 6397 end. This encryption key is used to encrypt the debug 6398 data exchanged between Windows and the debugger. 6399 </para> 6400 </listitem> 6401 6402 <listitem> 6403 <para> 6404 Execute one or more of the following commands to 6405 enable debugging for the appropriate phase or 6406 component of your Windows guest: 6407 </para> 6408 6409 <para> 6410 <screen>bcdedit /set debug on</screen> 6411 6412 <screen>bcdedit /set bootdebug on</screen> 6413 6414 <screen>bcdedit /set {bootmgr} bootdebug on</screen> 6415 </para> 6416 6417 <para> 6418 Please note that the 6419 <computeroutput>bootdebug</computeroutput> options are 6420 only effective on Windows 8 or newer when using the 6421 Hyper-V debug transport. Refer to Microsoft Windows 6422 documentation for detailed explanation of 6423 <computeroutput>bcdedit</computeroutput> options. 6424 </para> 6425 </listitem> 6426 6427 </itemizedlist> 6428 </listitem> 6429 6430 <listitem> 6431 <para> 6432 Start Microsoft WinDbg on your host machine or remote 6433 host. 6434 </para> 6435 6436 <para> 6437 From the <emphasis role="bold">File</emphasis> menu, 6438 select <emphasis role="bold">Kernel Debug</emphasis>. On 6439 the NET tab, specify the UDP port number you used in the 6440 <computeroutput>paravirtdebug</computeroutput> options. If 6441 you did not specify any, leave it as 50000. Ensure that 6442 the UDP port is not blocked by a firewall or other 6443 security software. 6444 </para> 6445 6446 <para> 6447 In the Key field, enter 6448 <computeroutput>1.2.3.4</computeroutput> or the encryption 6449 key from the <computeroutput>bcdedit</computeroutput> 6450 command in your Windows guest. 6451 </para> 6452 6453 <para> 6454 Click <emphasis role="bold">OK</emphasis> to start 6455 listening for connections. Microsoft WinDbg typically 6456 shows a "Waiting to reconnect" message during this phase. 6457 </para> 6458 6459 <para> 6460 Alternatively, launch WinDbg from the command line to 6461 directly start a debug session: 6462 6463 <screen>windbg.exe -k net:port=50000,key=1.2.3.4</screen> 6464 6465 Please refer to the WinDbg documentation for complete 6466 command line syntax. 6467 </para> 6468 </listitem> 6469 6470 <listitem> 6471 <para> 6472 Reboot your Windows guest and it should then connect as a 6473 debuggee with Microsoft WinDbg. 6474 </para> 6475 </listitem> 6476 6477 </orderedlist> 6478 4173 6479 </sect3> 6480 4174 6481 </sect2> 6482 4175 6483 </sect1> 4176 6484 4177 6485 <sect1 id="pcspeaker_passthrough"> 4178 <title>PC speaker passthrough</title> 4179 4180 <para>As an experimental feature (primarily due to being limited to Linux 4181 host only and unknown Linux distribution coverage) VirtualBox supports 4182 passing through the PC speaker to the host. The PC speaker (sometimes 4183 called system speaker) is a way to produce audible feedback such as beeps 4184 without the need for regular audio/sound card support.</para> 4185 4186 <para>The PC speaker passthrough feature in VirtualBox handles beeps only. 4187 Advanced PC speaker use by the VM (such as PCM audio) will not work, 4188 resulting in undefined host behavior.</para> 4189 4190 <para>Producing beeps on Linux is unfortunately a very complex topic. 4191 VirtualBox offers a collection of options, in an attempt to make this work 4192 deterministically and reliably on as many Linux distributions and system 4193 configurations as possible: 4194 <table> 4195 <title>PC speaker configuration options</title> 4196 <tgroup cols="3"> 4197 <thead> 4198 <row> 4199 <entry><emphasis role="bold">Code</emphasis></entry> 4200 <entry><emphasis role="bold">Device</emphasis></entry> 4201 <entry><emphasis role="bold">Notes</emphasis></entry> 4202 </row> 4203 </thead> 4204 <tbody> 4205 <row> 4206 <entry>1</entry> 4207 <entry><computeroutput>/dev/input/ by-path/platform- pcspkr-event-spkr</computeroutput></entry> 4208 <entry>Direct host PC speaker use.</entry> 4209 </row> 4210 <row> 4211 <entry>2</entry> 4212 <entry><computeroutput>/dev/tty</computeroutput></entry> 4213 <entry>Uses the terminal association of the VM process. VM needs 4214 to be started on a virtual console.</entry> 4215 </row> 4216 <row> 4217 <entry>3</entry> 4218 <entry><computeroutput>/dev/tty0</computeroutput> or 6486 6487 <title>PC Speaker Passthrough</title> 6488 6489 <para> 6490 As an experimental feature, primarily due to being limited to 6491 Linux host only and unknown Linux distribution coverage, 6492 VirtualBox supports passing through the PC speaker to the host. 6493 The PC speaker, sometimes called the system speaker, is a way to 6494 produce audible feedback such as beeps without the need for 6495 regular audio and sound card support. 6496 </para> 6497 6498 <para> 6499 The PC speaker passthrough feature in VirtualBox handles beeps 6500 only. Advanced PC speaker use by the VM, such as PCM audio, will 6501 not work, resulting in undefined host behavior. 6502 </para> 6503 6504 <para> 6505 Producing beeps on Linux is a very complex topic. VirtualBox 6506 offers a collection of options, in an attempt to make this work 6507 deterministically and reliably on as many Linux distributions and 6508 system configurations as possible. These are summarized in 6509 <xref linkend="table-pcspeaker-config"/>. 6510 </para> 6511 6512 <table id="table-pcspeaker-config"> 6513 <title>PC Speaker Configuration Options</title> 6514 <tgroup cols="3"> 6515 <thead> 6516 <row> 6517 <entry><emphasis role="bold">Code</emphasis></entry> 6518 <entry><emphasis role="bold">Device</emphasis></entry> 6519 <entry><emphasis role="bold">Notes</emphasis></entry> 6520 </row> 6521 </thead> 6522 <tbody> 6523 <row> 6524 <entry>1</entry> 6525 <entry><computeroutput>/dev/input/ by-path/platform- 6526 pcspkr-event-spkr</computeroutput></entry> 6527 <entry>Direct host PC speaker use.</entry> 6528 </row> 6529 <row> 6530 <entry>2</entry> 6531 <entry><computeroutput>/dev/tty</computeroutput></entry> 6532 <entry>Uses the terminal association of the VM process. VM needs to be started 6533 on a virtual console.</entry> 6534 </row> 6535 <row> 6536 <entry>3</entry> 6537 <entry><computeroutput>/dev/tty0</computeroutput> or 4219 6538 <computeroutput>/dev/vc/0</computeroutput></entry> 4220 <entry>Can only be used by user <computeroutput>root</computeroutput> 4221 or users with capability <computeroutput>cap_sys_tty_config</computeroutput></entry> 4222 </row> 4223 <row> 4224 <entry>9</entry> 4225 <entry>user specified console or evdev device path</entry> 4226 <entry>Like 1-3, just with a custom device path.</entry> 4227 </row> 4228 <row> 4229 <entry>70</entry> 4230 <entry><computeroutput>/dev/tty</computeroutput></entry> 4231 <entry>Standard beep only. Loses frequency and length. See code 4232 2.</entry> 4233 </row> 4234 <row> 4235 <entry>79</entry> 4236 <entry>user specified terminal device path</entry> 4237 <entry>Like 70, just with a custom device path.</entry> 4238 </row> 4239 <row> 4240 <entry>100</entry> 4241 <entry>all of the above</entry> 4242 <entry>Tries all above codes.</entry> 4243 </row> 4244 </tbody> 4245 </tgroup> 4246 </table> 4247 </para> 4248 4249 <para>To enable PC speaker passthrough use the following command: 4250 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/i8254/0/Config/PassthroughSpeaker" N</screen> 4251 Replace <computeroutput>N</computeroutput> with the code representing the 4252 case you want to use. Changing this setting will take effect when the VM is 4253 started next. It is safe to enable PC speaker passthrough on all host OSes. 4254 It will only have an effect on Linux.</para> 4255 4256 <para>The VM log file, <computeroutput>VBox.log</computeroutput>, will 4257 contain lines with the prefix <computeroutput>PIT: speaker:</computeroutput> 4258 showing the PC speaker passthrough setup activities. It gives hints which 4259 device it picked or why it failed.</para> 4260 4261 <para>Enabling PC speaker passthrough for the VM is usually the simple 4262 part. The real difficulty is making sure that VirtualBox can access the 4263 necessary device, because in a typical Linux install most of them can only 4264 be accessed by user <computeroutput>root</computeroutput>. You should 4265 follow the preferred way to persistently change this, e.g. by referring to 4266 your distribution's documentation. Since there are countless Linux 4267 distribution variants, we can only give the general hints that there is 4268 often a way to give the X11 session user access to additional devices, or 4269 you need to find a working solution using a udev configuration file. If 4270 everything fails you might try setting the permissions using a script 4271 which is run late enough in the host system startup.</para> 4272 4273 <para>Sometimes additional rules are applied by the kernel to limit access 4274 (e.g. that the VM process must have the same controlling terminal as the 4275 device configured to be used for beeping, something which is often very 4276 difficult to achieve for GUI applications such as VirtualBox). The table 4277 above contains some hints, but generally refer to the Linux 4278 documentation.</para> 4279 4280 <para>If you have trouble getting any beeps even if the device permissions 4281 are set up and VBox.log confirms that it uses evdev or console for the 4282 PC speaker control, check if your system has a PC speaker. Some systems do 4283 not have one. Other complications can arise from Linux rerouting the PC 4284 speaker output to a sound card. Check if the beeps are audible if you 4285 connect speakers to your sound card. Today almost all systems have one. 4286 Finally, check if the audio mixer control has a channel named "beep" 4287 (could be hidden in the mixer settings) and that it isn't muted.</para> 6539 <entry>Can only be used by user <computeroutput>root</computeroutput> or users 6540 with capability 6541 <computeroutput>cap_sys_tty_config</computeroutput></entry> 6542 </row> 6543 <row> 6544 <entry>9</entry> 6545 <entry>user specified console or evdev device path</entry> 6546 <entry>Like 1-3, just with a custom device path.</entry> 6547 </row> 6548 <row> 6549 <entry>70</entry> 6550 <entry><computeroutput>/dev/tty</computeroutput></entry> 6551 <entry>Standard beep only. Loses frequency and length. See code 2.</entry> 6552 </row> 6553 <row> 6554 <entry>79</entry> 6555 <entry>user specified terminal device path</entry> 6556 <entry>Like 70, just with a custom device path.</entry> 6557 </row> 6558 <row> 6559 <entry>100</entry> 6560 <entry>all of the above</entry> 6561 <entry>Tries all above codes.</entry> 6562 </row> 6563 </tbody> 6564 </tgroup> 6565 </table> 6566 6567 <para> 6568 To enable PC speaker passthrough use the following command: 6569 6570 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/i8254/0/Config/PassthroughSpeaker" N</screen> 6571 6572 Replace <computeroutput>N</computeroutput> with the code 6573 representing the case you want to use. Changing this setting will 6574 take effect when the VM is started next. It is safe to enable PC 6575 speaker passthrough on all host OSes. It will only have an effect 6576 on Linux. 6577 </para> 6578 6579 <para> 6580 The VM log file, <computeroutput>VBox.log</computeroutput>, will 6581 contain lines with the prefix <computeroutput>PIT: 6582 speaker:</computeroutput> showing the PC speaker passthrough setup 6583 activities. It gives hints which device it picked or why it 6584 failed. 6585 </para> 6586 6587 <para> 6588 Enabling PC speaker passthrough for the VM is usually the simple 6589 part. The real difficulty is making sure that VirtualBox can 6590 access the necessary device, because in a typical Linux install 6591 most of them can only be accessed by user 6592 <computeroutput>root</computeroutput>. You should follow the 6593 preferred way to persistently change this, e.g. by referring to 6594 your distribution's documentation. Since there are countless Linux 6595 distribution variants, we can only give the general hints that 6596 there is often a way to give the X11 session user access to 6597 additional devices, or you need to find a working solution using a 6598 udev configuration file. If everything fails you might try setting 6599 the permissions using a script which is run late enough in the 6600 host system startup. 6601 </para> 6602 6603 <para> 6604 Sometimes additional rules are applied by the kernel to limit 6605 access (e.g. that the VM process must have the same controlling 6606 terminal as the device configured to be used for beeping, 6607 something which is often very difficult to achieve for GUI 6608 applications such as VirtualBox). The table above contains some 6609 hints, but generally refer to the Linux documentation. 6610 </para> 6611 6612 <para> 6613 If you have trouble getting any beeps even if the device 6614 permissions are set up and VBox.log confirms that it uses evdev or 6615 console for the PC speaker control, check if your system has a PC 6616 speaker. Some systems do not have one. Other complications can 6617 arise from Linux rerouting the PC speaker output to a sound card. 6618 Check if the beeps are audible if you connect speakers to your 6619 sound card. Today almost all systems have one. Finally, check if 6620 the audio mixer control has a channel named "beep" (could be 6621 hidden in the mixer settings) and that it is not muted. 6622 </para> 6623 4288 6624 </sect1> 4289 6625 4290 6626 <sect1 id="usbip"> 4291 <title>Accessing USB devices exposed over the network with USB/IP</title> 4292 4293 <para>Starting with 5.1.0, VirtualBox supports passing through USB 4294 devices which are exposed over the network using the USB over IP protocol 4295 without the need to configure the client side provided by the kernel and 4296 usbip tools. Furthermore, this feature works with VirtualBox running on any 4297 supported host, rather than just Linux alone - as is the case with the official 4298 client.</para> 4299 4300 <para>To enable support for passing through USB/IP devices, the device server exporting 4301 the devices must be added with the following command: 4302 <screen>VBoxManage usbdevsource add "Unique name" --backend "USBIP" --address "Device server[:port]"</screen> 4303 USB devices exported on the device server are then accessible through the GUI 4304 or VBoxManage, like any USB devices attached locally. This can be used multiple times 4305 to access different device servers.</para> 4306 4307 <para>To remove a device server, the following command can be used: 4308 <screen>VBoxManage usbdevsource remove "Unique name"</screen> 6627 6628 <title>Accessing USB devices Exposed Over the Network with USB/IP</title> 6629 6630 <para> 6631 Starting with 5.1.0, VirtualBox supports passing through USB 6632 devices which are exposed over the network using the USB over IP 6633 protocol without the need to configure the client side provided by 6634 the kernel and usbip tools. Furthermore, this feature works with 6635 VirtualBox running on any supported host, rather than just Linux 6636 alone, as is the case with the official client. 6637 </para> 6638 6639 <para> 6640 To enable support for passing through USB/IP devices, the device 6641 server exporting the devices must be added with the following 6642 command: 6643 6644 <screen>VBoxManage usbdevsource add "Unique name" --backend "USBIP" --address "Device server[:port]"</screen> 6645 6646 USB devices exported on the device server are then accessible 6647 through the GUI or VBoxManage, like any USB devices attached 6648 locally. This can be used multiple times to access different 6649 device servers. 6650 </para> 6651 6652 <para> 6653 To remove a device server, the following command can be used: 6654 6655 <screen>VBoxManage usbdevsource remove "Unique name"</screen> 4309 6656 </para> 4310 6657 4311 6658 <sect2 id="usbip-setup-server"> 4312 <title>Setting up USB/IP support on a Linux system</title> 4313 4314 <para>This section gives a brief overview on how to set up a Linux based system 4315 to act as a USB device server. The system on the server requires that the 4316 <computeroutput>usbip-core.ko</computeroutput> and 4317 <computeroutput>usbip-host.ko</computeroutput> kernel drivers 4318 are available, and that the USB/IP tools package is installed. 4319 The particular installation method for the necessary tools depends on which 4320 distribution is used. 4321 For example, for Debian based systems - the following command should be used to 4322 install the required tools: 4323 <screen>apt-get install usbip-utils</screen></para> 4324 <para>To check whether the necessary tools are already installed use 4325 the following command: 4326 <screen> 6659 6660 <title>Setting up USB/IP Support on a Linux System</title> 6661 6662 <para> 6663 This section gives a brief overview on how to set up a Linux 6664 based system to act as a USB device server. The system on the 6665 server requires that the 6666 <computeroutput>usbip-core.ko</computeroutput> and 6667 <computeroutput>usbip-host.ko</computeroutput> kernel drivers 6668 are available, and that the USB/IP tools package is installed. 6669 The particular installation method for the necessary tools 6670 depends on which distribution is used. For example, for Debian 6671 based systems - the following command should be used to install 6672 the required tools: 6673 6674 <screen>apt-get install usbip-utils</screen> 6675 </para> 6676 6677 <para> 6678 To check whether the necessary tools are already installed use 6679 the following command: 6680 6681 <screen> 4327 6682 $ usbip list -l 4328 </screen></para> 4329 <para> 4330 which should produce output similar to that shown in the example below: 4331 <screen> 6683 </screen> 6684 </para> 6685 6686 <para> 6687 This should produce output similar to that shown in the example 6688 below: 6689 6690 <screen> 4332 6691 - busid 4-2 (0bda:0301) 4333 6692 Realtek Semiconductor Corp. : multicard reader (0bda:0301) … … 4335 6694 - busid 5-1 (046d:c52b) 4336 6695 Logitech, Inc. : Unifying Receiver (046d:c52b) 4337 </screen></para> 4338 4339 <para>If everything is installed, the USB/IP server needs to be started as 4340 <computeroutput>root</computeroutput> using the following command: 4341 <screen>usbipd -D</screen> 4342 Refer to the documentation for the installed distribution to determine how to start the 4343 service when the system boots.</para> 4344 4345 <para>By default, no device on the server is exported - and this must be done manually 4346 for each device. To export a device use: 4347 <screen>usbip bind -b "bus identifier"</screen> 4348 To export the multicard reader from above, for example - use: 4349 <screen>usbip bind -b 4-2</screen></para> 6696 </screen> 6697 </para> 6698 6699 <para> 6700 If everything is installed, the USB/IP server needs to be 6701 started as <computeroutput>root</computeroutput> using the 6702 following command: 6703 6704 <screen>usbipd -D</screen> 6705 6706 Refer to the documentation for the installed distribution to 6707 determine how to start the service when the system boots. 6708 </para> 6709 6710 <para> 6711 By default, no device on the server is exported. This must be 6712 done manually for each device. To export a device use: 6713 6714 <screen>usbip bind -b "bus identifier"</screen> 6715 6716 To export the multicard reader from above, for example - use: 6717 6718 <screen>usbip bind -b 4-2</screen> 6719 </para> 6720 4350 6721 </sect2> 4351 6722 4352 6723 <sect2 id="usbip-security"> 4353 <title>Security considerations</title> 4354 4355 <para>The communication between the server and client is unencrypted and 4356 there is no authorization required to access exported devices. An attacker 4357 might sniff sensitive data or gain control over a device. To mitigate this 4358 risk, the device should be exposed over a local network to which only trusted 4359 clients have access. To access the device remotely over a public network, 4360 a VPN solution should be used to provide the required level of security protection.</para> 6724 6725 <title>Security Considerations</title> 6726 6727 <para> 6728 The communication between the server and client is unencrypted 6729 and there is no authorization required to access exported 6730 devices. An attacker might sniff sensitive data or gain control 6731 over a device. To mitigate this risk, the device should be 6732 exposed over a local network to which only trusted clients have 6733 access. To access the device remotely over a public network, a 6734 VPN solution should be used to provide the required level of 6735 security protection. 6736 </para> 6737 4361 6738 </sect2> 6739 4362 6740 </sect1> 4363 6741 4364 <xi:include href="user_isomakercmd-man.xml" x pointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" />6742 <xi:include href="user_isomakercmd-man.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 4365 6743 4366 6744 </chapter> 4367 -
trunk/doc/manual/en_US/user_BasicConcepts.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="BasicConcepts"> 5 <title>Configuring virtual machines</title> 6 7 <para>Whereas <xref linkend="Introduction" /> gave you a quick introduction 8 to VirtualBox and how to get your first virtual machine running, the 9 following chapter describes in detail how to configure virtual 10 machines.</para> 11 12 <para>You have considerable latitude in deciding what virtual hardware will 13 be provided to the guest. The virtual hardware can be used for communicating 14 with the host system or with other guests. For instance, if you provide 15 VirtualBox with the image of a CD-ROM in an ISO file, VirtualBox can present 16 this image to a guest system as if it were a physical CD-ROM. Similarly, you 17 can give a guest system access to the real network via its virtual network 18 card, and, if you so choose, give the host system, other guests, or 19 computers on the Internet access to the guest system.</para> 8 9 <title>Configuring Virtual Machines</title> 10 11 <para> 12 Whereas <xref linkend="Introduction" /> gave you a quick 13 introduction to VirtualBox and how to get your first virtual machine 14 running, the following chapter describes in detail how to configure 15 virtual machines. 16 </para> 17 18 <para> 19 You have considerable latitude in deciding what virtual hardware 20 will be provided to the guest. The virtual hardware can be used for 21 communicating with the host system or with other guests. For 22 instance, if you provide VirtualBox with the image of a CD-ROM in an 23 ISO file, VirtualBox can present this image to a guest system as if 24 it were a physical CD-ROM. Similarly, you can give a guest system 25 access to the real network via its virtual network card, and, if you 26 so choose, give the host system, other guests, or computers on the 27 Internet access to the guest system. 28 </para> 20 29 21 30 <sect1 id="guestossupport"> 22 <title>Supported guest operating systems</title> 23 24 <para>Since VirtualBox is designed to provide a generic virtualization 25 environment for x86 systems, it may run operating systems of any kind, 26 even those not listed here. However, the focus is to optimize VirtualBox 27 for the following guest systems:</para> 28 29 <para><glosslist> 30 <glossentry> 31 <glossterm>Windows NT 4.0</glossterm> 32 33 <glossdef> 34 <para>All versions, editions and service packs are fully 35 supported; however, there are some issues with older service 36 packs. We recommend to install service pack 6a. Guest Additions 37 are available with a limited feature set.</para> 38 </glossdef> 39 </glossentry> 40 41 <glossentry> 42 <glossterm>Windows 2000 / XP / Server 2003 / Vista / Server 2008 / 43 7 / 8 / 8.1 / 10 RTM 10240 / Server 2012</glossterm> 44 45 <glossdef> 46 <para>All versions, editions and service packs are fully supported 47 (including 64-bit versions, under the preconditions listed below). 48 Guest Additions are available. Windows 8 and later requires hardware 49 virtualization to be enabled.</para> 50 </glossdef> 51 </glossentry> 52 53 <glossentry> 54 <glossterm>DOS / Windows 3.x / 95 / 98 / ME</glossterm> 55 56 <glossdef> 57 <para>Limited testing has been performed. Use beyond legacy 58 installation mechanisms not recommended. No Guest Additions 59 available.</para> 60 </glossdef> 61 </glossentry> 62 63 <glossentry> 64 <glossterm>Linux 2.4</glossterm> 65 66 <glossdef> 67 <para>Limited support.</para> 68 </glossdef> 69 </glossentry> 70 71 <glossentry> 72 <glossterm>Linux 2.6</glossterm> 73 74 <glossdef> 75 <para>All versions/editions are fully supported (32 bits and 64 76 bits). Guest Additions are available.</para> 77 78 <para>We strongly recommend using a Linux kernel version 2.6.13 or 79 higher for better performance.<note> 80 <para>Certain Linux kernel releases have bugs that prevent 81 them from executing in a virtual environment; please see <xref 82 linkend="ts_linux-buggy" /> for details.</para> 83 </note></para> 84 </glossdef> 85 </glossentry> 86 87 <glossentry> 88 <glossterm>Linux 3.x and later</glossterm> 89 90 <glossdef> 91 <para>All versions/editions are fully supported (32 bits and 64 92 bits). Guest Additions are available.</para> 93 </glossdef> 94 </glossentry> 95 96 <glossentry> 97 <glossterm>Solaris 10 (u6 and higher), Solaris 11 (including Solaris 98 11 Express)</glossterm> 99 100 <glossdef> 101 <para>Fully supported (64 bits, prior to Solaris 11 11/11 also 32 bits). 102 Guest Additions are available.</para> 103 </glossdef> 104 </glossentry> 105 106 <glossentry> 107 <glossterm>FreeBSD</glossterm> 108 109 <glossdef> 110 <para>Requires hardware virtualization to be enabled. Limited 111 support. Guest Additions are not available yet.</para> 112 </glossdef> 113 </glossentry> 114 115 <glossentry> 116 <glossterm>OpenBSD</glossterm> 117 118 <glossdef> 119 <para>Requires hardware virtualization to be enabled. Versions 3.7 120 and later are supported. Guest Additions are not available 121 yet.</para> 122 </glossdef> 123 </glossentry> 124 125 <glossentry> 126 <glossterm>OS/2 Warp 4.5</glossterm> 127 128 <glossdef> 129 <para>Requires hardware virtualization to be enabled. We 130 officially support MCP2 only; other OS/2 versions may or may not 131 work. Guest Additions are available with a limited feature 132 set.<footnote> 133 <para>See <xref linkend="KnownIssues" />.</para> 134 </footnote></para> 135 </glossdef> 136 </glossentry> 137 138 <glossentry> 139 <glossterm>Mac OS X</glossterm> 140 141 <glossdef> 142 <para>VirtualBox 3.2 added experimental support for Mac OS X 143 guests, but this comes with restrictions. Please see the following 144 section as well as <xref linkend="KnownIssues" />.</para> 145 </glossdef> 146 </glossentry> 147 </glosslist></para> 31 32 <title>Supported Guest Operating Systems</title> 33 34 <para> 35 Since VirtualBox is designed to provide a generic virtualization 36 environment for x86 systems, it may run operating systems of any 37 kind, even those not listed here. However, the focus is to 38 optimize VirtualBox for the following guest systems: 39 </para> 40 41 <itemizedlist> 42 43 <listitem> 44 <para> 45 <emphasis role="bold">Windows NT 4.0:</emphasis> 46 </para> 47 48 <para> 49 All versions, editions and service packs are fully supported. 50 However, there are some issues with older service packs. We 51 recommend that you install service pack 6a. Guest Additions 52 are available with a limited feature set. 53 </para> 54 </listitem> 55 56 <listitem> 57 <para> 58 <emphasis role="bold">Windows 2000/XP/Server 2003/Vista/Server 59 2008/7/8/8.1/10 RTM 10240/Server 2012:</emphasis> 60 </para> 61 62 <para> 63 All versions, editions and service packs are fully supported, 64 including 64-bit versions, under the preconditions listed 65 below. Guest Additions are available. Windows 8 and later 66 requires hardware virtualization to be enabled. 67 </para> 68 </listitem> 69 70 <listitem> 71 <para> 72 <emphasis role="bold">DOS/Windows 3.x/95/98/ME:</emphasis> 73 </para> 74 75 <para> 76 Limited testing has been performed. Use beyond legacy 77 installation mechanisms is not recommended. Guest Additions 78 are not available. 79 </para> 80 </listitem> 81 82 <listitem> 83 <para> 84 <emphasis role="bold">Linux 2.4:</emphasis> 85 </para> 86 87 <para> 88 Limited support. 89 </para> 90 </listitem> 91 92 <listitem> 93 <para> 94 <emphasis role="bold">Linux 2.6:</emphasis> 95 </para> 96 97 <para> 98 All versions and editions are fully supported, both 32-bit and 99 64-bit. Guest Additions are available. 100 </para> 101 102 <para> 103 We strongly recommend using a Linux kernel version of 2.6.13 104 or later for best performance. 105 </para> 106 107 <note> 108 <para> 109 Certain Linux kernel releases have bugs that prevent them 110 from executing in a virtual environment. See 111 <xref 112 linkend="ts_linux-buggy" />. 113 </para> 114 </note> 115 </listitem> 116 117 <listitem> 118 <para> 119 <emphasis role="bold">Linux 3.x and later:</emphasis> 120 </para> 121 122 <para> 123 All versions and editions are fully supported, both 32-bit and 124 64-bit. Guest Additions are available. 125 </para> 126 </listitem> 127 128 <listitem> 129 <para> 130 <emphasis role="bold"> Solaris 10u6 and higher, Solaris 11, 131 including Solaris 11 Express:</emphasis> 132 </para> 133 134 <para> 135 Fully supported. 64-bit, prior to Solaris 11 11/11, and also 136 32 32-bit. Guest Additions are available. 137 </para> 138 </listitem> 139 140 <listitem> 141 <para> 142 <emphasis role="bold">FreeBSD:</emphasis> 143 </para> 144 145 <para> 146 Requires hardware virtualization to be enabled. Limited 147 support. Guest Additions are not available yet. 148 </para> 149 </listitem> 150 151 <listitem> 152 <para> 153 <emphasis role="bold"> OpenBSD:</emphasis> 154 </para> 155 156 <para> 157 Requires hardware virtualization to be enabled. Versions 3.7 158 and later are supported. Guest Additions are not available 159 yet. 160 </para> 161 </listitem> 162 163 <listitem> 164 <para> 165 <emphasis role="bold">OS/2 Warp 4.5:</emphasis> 166 </para> 167 168 <para> 169 Requires hardware virtualization to be enabled. We officially 170 support MCP2 only. Other OS/2 versions may or may not work. 171 Guest Additions are available with a limited feature set. See 172 <xref linkend="KnownIssues" />. 173 </para> 174 </listitem> 175 176 <listitem> 177 <para> 178 <emphasis role="bold">Mac OS X:</emphasis> 179 </para> 180 181 <para> 182 VirtualBox 3.2 added experimental support for Mac OS X guests, 183 but this comes with restrictions. See 184 <xref linkend="intro-macosxguests"/> and also 185 <xref linkend="KnownIssues" />. 186 </para> 187 </listitem> 188 189 </itemizedlist> 148 190 149 191 <sect2 id="intro-macosxguests"> 150 <title>Mac OS X guests</title> 151 152 <para>Starting with version 3.2, VirtualBox has experimental support for 153 Mac OS X guests. This allows you to install and execute unmodified 154 versions of Mac OS X on supported host hardware.</para> 155 156 <para>Whereas competing solutions perform modifications to the Mac OS X 157 install DVDs (e.g. different boot loader and replaced files), VirtualBox 158 is the first product to provide the modern PC architecture expected by 159 OS X without requiring any "hacks".</para> 160 161 <para>You should be aware of a number of <emphasis role="bold">important 162 issues</emphasis> before attempting to install a Mac OS X guest:<orderedlist> 163 <listitem> 164 <para>Mac OS X is commercial, licensed software and contains 165 <emphasis role="bold">both license and technical restrictions</emphasis> 166 that limit its use to certain hardware and usage scenarios. It is 167 important that you understand and obey these restrictions.</para> 168 169 <para>In particular, for most versions of Mac OS X, Apple prohibits 170 installing them on non-Apple hardware.</para> 171 172 <para>These license restrictions are also enforced on a technical 173 level. Mac OS X verifies whether it is running on Apple hardware, 174 and most DVDs that come with Apple hardware even check for an 175 exact model. These restrictions are <emphasis>not</emphasis> 176 circumvented by VirtualBox and continue to apply.</para> 177 </listitem> 178 179 <listitem> 180 <para>Only <emphasis role="bold">CPUs</emphasis> known and tested 181 by Apple are supported. As a result, if your Intel CPU is newer 182 than the build of Mac OS X, or if you have a non-Intel CPU, it will 183 most likely panic during bootup with an "Unsupported CPU" 184 exception. It is generally best to use the Mac OS X DVD that came 185 with your Apple hardware.</para> 186 </listitem> 187 188 <listitem> 189 <para>The Mac OS X installer expects the harddisk to be 190 <emphasis role="bold">partitioned</emphasis> so when it does not 191 offer a selection, you have to launch the Disk Utility from the 192 "Tools" menu and partition the hard disk. Then close the Disk 193 Utility and proceed with the installation.</para> 194 </listitem> 195 196 <listitem> 197 <para>In addition, as Mac OS X support in VirtualBox is currently 198 still experimental, please refer also to <xref linkend="KnownIssues" />.</para> 199 </listitem> 200 </orderedlist></para> 192 193 <title>Mac OS X Guests</title> 194 195 <para> 196 Starting with version 3.2, VirtualBox has experimental support 197 for Mac OS X guests. This allows you to install and execute 198 unmodified versions of Mac OS X on supported host hardware. 199 </para> 200 201 <para> 202 Whereas competing solutions perform modifications to the Mac OS 203 X install DVDs, such as a different boot loader and replaced 204 files, VirtualBox is the first product to provide the modern PC 205 architecture expected by OS X without requiring any "hacks". 206 </para> 207 208 <para> 209 You should be aware of a number of important issues before 210 attempting to install a Mac OS X guest: 211 </para> 212 213 <itemizedlist> 214 215 <listitem> 216 <para> 217 Mac OS X is commercial, licensed software and contains 218 <emphasis role="bold">both license and technical 219 restrictions</emphasis> that limit its use to certain 220 hardware and usage scenarios. It is important that you 221 understand and obey these restrictions. 222 </para> 223 224 <para> 225 In particular, for most versions of Mac OS X, Apple 226 prohibits installing them on non-Apple hardware. 227 </para> 228 229 <para> 230 These license restrictions are also enforced on a technical 231 level. Mac OS X verifies whether it is running on Apple 232 hardware, and most DVDs that come with Apple hardware even 233 check for an exact model. These restrictions are 234 <emphasis>not</emphasis> circumvented by VirtualBox and 235 continue to apply. 236 </para> 237 </listitem> 238 239 <listitem> 240 <para> 241 Only <emphasis role="bold">CPUs</emphasis> known and tested 242 by Apple are supported. As a result, if your Intel CPU is 243 newer than the build of Mac OS X, or if you have a non-Intel 244 CPU, it will most likely panic during bootup with an 245 "Unsupported CPU" exception. It is generally best to use the 246 Mac OS X DVD that came with your Apple hardware. 247 </para> 248 </listitem> 249 250 <listitem> 251 <para> 252 The Mac OS X installer expects the harddisk to be 253 <emphasis role="bold">partitioned</emphasis> so when it does 254 not offer a selection, you have to start the Disk Utility 255 from the Tools menu and partition the hard disk. Then close 256 the Disk Utility and proceed with the installation. 257 </para> 258 </listitem> 259 260 <listitem> 261 <para> 262 In addition, as Mac OS X support in VirtualBox is currently 263 still experimental, see also <xref linkend="KnownIssues" />. 264 </para> 265 </listitem> 266 267 </itemizedlist> 268 201 269 </sect2> 202 270 203 271 <sect2 id="intro-64bitguests"> 204 <title>64-bit guests</title> 205 206 <para>VirtualBox supports 64-bit guest operating systems, even on 32-bit 207 host operating systems,<footnote> 208 <para>64-bit guest support was added with VirtualBox 2.0; support 209 for 64-bit guests on 32-bit hosts was added with VirtualBox 210 2.1.</para> 211 </footnote> provided that the following conditions are 212 met:<orderedlist> 213 <listitem> 214 <para>You need a 64-bit processor with hardware virtualization 215 support (see <xref linkend="hwvirt" />).</para> 216 </listitem> 217 218 <listitem> 219 <para>You must enable hardware virtualization for the particular 220 VM for which you want 64-bit support; software virtualization is 221 not supported for 64-bit VMs.</para> 222 </listitem> 223 224 <listitem> 225 <para>If you want to use 64-bit guest support on a 32-bit host 226 operating system, you must also select a 64-bit operating system 227 for the particular VM. Since supporting 64 bits on 32-bit hosts 228 incurs additional overhead, VirtualBox only enables this support 229 upon explicit request.</para> 230 231 <para>On 64-bit hosts (which typically come with hardware 232 virtualization support), 64-bit guest operating systems are always 233 supported regardless of settings, so you can simply install a 234 64-bit operating system in the guest.</para> 235 </listitem> 236 </orderedlist></para> 237 238 <para><warning> 239 <para>On any host, you should enable the <emphasis role="bold">I/O 240 APIC</emphasis> for virtual machines that you intend to use in 241 64-bit mode. This is especially true for 64-bit Windows VMs. See 242 <xref linkend="settings-general-advanced" />. In addition, for 243 64-bit Windows guests, you should make sure that the VM uses the 244 <emphasis role="bold">Intel networking device</emphasis>, since 245 there is no 64-bit driver support for the AMD PCNet card; see <xref 246 linkend="nichardware" />.</para> 247 </warning></para> 248 249 <para>If you use the "Create VM" wizard of the VirtualBox graphical user 250 interface (see <xref linkend="gui-createvm" />), VirtualBox will 251 automatically use the correct settings for each selected 64-bit 252 operating system type.</para> 272 273 <title>64-bit Guests</title> 274 275 <para> 276 VirtualBox supports 64-bit guest operating systems, even on 277 32-bit host operating systems, 278 279 <footnote> 280 281 <para> 282 64-bit guest support was added with VirtualBox 2.0; support 283 for 64-bit guests on 32-bit hosts was added with VirtualBox 284 2.1. 285 </para> 286 287 </footnote> 288 289 provided that the following conditions are met: 290 </para> 291 292 <itemizedlist> 293 294 <listitem> 295 <para> 296 You need a 64-bit processor with hardware virtualization 297 support. See <xref linkend="hwvirt" />. 298 </para> 299 </listitem> 300 301 <listitem> 302 <para> 303 You must enable hardware virtualization for the particular 304 VM for which you want 64-bit support. Software 305 virtualization is not supported for 64-bit VMs. 306 </para> 307 </listitem> 308 309 <listitem> 310 <para> 311 If you want to use 64-bit guest support on a 32-bit host 312 operating system, you must also select a 64-bit operating 313 system for the particular VM. Since supporting 64 bits on 314 32-bit hosts incurs additional overhead, VirtualBox only 315 enables this support upon explicit request. 316 </para> 317 318 <para> 319 On 64-bit hosts, which typically come with hardware 320 virtualization support, 64-bit guest operating systems are 321 always supported regardless of settings. So you can simply 322 install a 64-bit operating system in the guest. 323 </para> 324 </listitem> 325 326 </itemizedlist> 327 328 <para> 329 <warning> 330 <para> 331 On any host, you should enable <emphasis role="bold">I/O 332 APIC</emphasis> for virtual machines that you intend to use 333 in 64-bit mode. This is especially true for 64-bit Windows 334 VMs. See <xref linkend="settings-general-advanced" />. In 335 addition, for 64-bit Windows guests, you should make sure 336 that the VM uses the <emphasis role="bold">Intel networking 337 device</emphasis>, since there is no 64-bit driver support 338 for the AMD PCNet card. See 339 <xref 340 linkend="nichardware" />. 341 </para> 342 </warning> 343 </para> 344 345 <para> 346 If you use the <emphasis role="bold">Create VM </emphasis> 347 wizard of the VirtualBox graphical user interface, see 348 <xref linkend="gui-createvm" />, VirtualBox will automatically 349 use the correct settings for each selected 64-bit operating 350 system type. 351 </para> 352 253 353 </sect2> 354 254 355 </sect1> 255 356 256 357 <sect1 id="basic-unattended"> 257 <title>Unattended guest installation</title> 258 <para>VirtualBox is able to automatically install a guest by providing 259 the installation medium as well as a few parameters like the name of 260 the default user.</para> 261 <para>To perform an unattended guest installation, a VM has to be 262 prepared. A VM can be created using the GUI as described in <xref 263 linkend="gui-createvm" /> or by using VBoxManage as described in 264 <xref linkend="vboxmanage-createvm" />. In general it's sufficient to 265 chose the type of the guest operating system and to use the proposed 266 defaults for that operating system. See the following sections on how 267 to change the VM settings for certain needs.</para> 268 <para>After the VM was created, the VM has to be prepared for unattended 269 guest execution use VBoxManage, see <xref 270 linkend="vboxmanage-unattended" />. During this step VirtualBox scans 271 the installation medium and changes certain parameters for a seamless 272 installation as a guest running on VirtualBox.</para> 273 <para>Once the preparation phase was successfully finished, the VM can 274 be started either from the GUI or from VBoxManage, see <xref 275 linkend="vboxmanage-startvm" />. The VM will now perform the automatic 276 installation. Please note that the boot order was changed during the 277 preparation phase by giving the virtual hard disk the highest priority. 278 As the disk is normally empty before an automatic installation is started, 279 the VM will boot from the virtual DVD drive as next available boot medium 280 and the installation will start. If, for some reason, the virtual hard 281 disk contains a bootable operating system then the installation will not 282 start unless the boot order was manually changed by pressing F12 during 283 the BIOS splash screen.</para> 358 359 <title>Unattended Guest Installation</title> 360 361 <para> 362 VirtualBox is able to automatically install a guest by providing 363 the installation medium as well as a few parameters like the name 364 of the default user. 365 </para> 366 367 <para> 368 To perform an unattended guest installation, a VM has to be 369 prepared. A VM can be created using the GUI as described in 370 <xref 371 linkend="gui-createvm" /> or by using VBoxManage as 372 described in <xref linkend="vboxmanage-createvm" />. In general 373 it's sufficient to chose the type of the guest operating system 374 and to use the proposed defaults for that operating system. See 375 the following sections on how to change the VM settings for 376 certain needs. 377 </para> 378 379 <para> 380 After the VM was created, the VM has to be prepared for unattended 381 guest execution use VBoxManage, see 382 <xref 383 linkend="vboxmanage-unattended" />. During this step 384 VirtualBox scans the installation medium and changes certain 385 parameters for a seamless installation as a guest running on 386 VirtualBox. 387 </para> 388 389 <para> 390 Once the preparation phase was successfully finished, the VM can 391 be started either from the GUI or from VBoxManage, see 392 <xref 393 linkend="vboxmanage-startvm" />. The VM will now perform 394 the automatic installation. Please note that the boot order was 395 changed during the preparation phase by giving the virtual hard 396 disk the highest priority. As the disk is normally empty before an 397 automatic installation is started, the VM will boot from the 398 virtual DVD drive as next available boot medium and the 399 installation will start. If, for some reason, the virtual hard 400 disk contains a bootable operating system then the installation 401 will not start unless the boot order was manually changed by 402 pressing F12 during the BIOS splash screen. 403 </para> 404 284 405 </sect1> 285 406 286 <sect1> 287 <title>Emulated hardware</title> 288 289 <para>VirtualBox virtualizes nearly all hardware of the host. Depending on 290 a VM's configuration, the guest will see the following virtual 291 hardware:<itemizedlist> 292 <listitem> 293 <para><emphasis role="bold">Input devices.</emphasis> By default, 407 <sect1 id="emul-hardware"> 408 409 <title>Emulated Hardware</title> 410 411 <para> 412 VirtualBox virtualizes nearly all hardware of the host. Depending 413 on a VM's configuration, the guest will see the following virtual 414 hardware: 415 </para> 416 417 <itemizedlist> 418 419 <listitem> 420 <para> 421 <emphasis role="bold">Input devices.</emphasis> By default, 294 422 VirtualBox emulates a standard PS/2 keyboard and mouse. These 295 423 devices are supported by almost all past and present operating 296 systems.</para> 297 298 <para>In addition, VirtualBox can provide virtual USB input devices 299 to avoid having to capture mouse and keyboard, as described in <xref 300 linkend="keyb_mouse_normal" />.</para> 424 systems. 425 </para> 426 427 <para> 428 In addition, VirtualBox can provide virtual USB input devices 429 to avoid having to capture mouse and keyboard, as described in 430 <xref 431 linkend="keyb_mouse_normal" />. 432 </para> 433 </listitem> 434 435 <listitem> 436 <para> 437 <emphasis role="bold">Graphics.</emphasis> The VirtualBox 438 graphics device (sometimes referred to as VGA device) is, 439 unlike nearly all other emulated devices, not based on any 440 physical counterpart. It is a simple, synthetic device which 441 provides compatibility with standard VGA and several extended 442 registers used by the VESA BIOS Extensions (VBE). 443 </para> 444 </listitem> 445 446 <listitem> 447 <para> 448 <emphasis role="bold">Storage.</emphasis> VirtualBox currently 449 emulates the standard ATA interface found on Intel PIIX3/PIIX4 450 chips, the SATA (AHCI) interface, and two SCSI adapters (LSI 451 Logic and BusLogic). See 452 <xref linkend="harddiskcontrollers" /> for details. Whereas 453 providing one of these would be enough for VirtualBox by 454 itself, this multitude of storage adapters is required for 455 compatibility with other hypervisors. Windows is particularly 456 picky about its boot devices, and migrating VMs between 457 hypervisors is very difficult or impossible if the storage 458 controllers are different. 459 </para> 460 </listitem> 461 462 <listitem> 463 <para> 464 <emphasis role="bold">Networking.</emphasis> See 465 <xref 466 linkend="nichardware" />. 467 </para> 468 </listitem> 469 470 <listitem> 471 <para> 472 <emphasis role="bold">USB.</emphasis> VirtualBox emulates 473 three USB host controllers: xHCI, EHCI, and OHCI. While xHCI 474 handles all USB transfer speeds, only guest operating systems 475 released approximately after 2011 support xHCI. Note that for 476 Windows 7 guests, 3rd party drivers must be installed for xHCI 477 support. 478 </para> 479 480 <para> 481 Older operating systems typically support OHCI and EHCI. The 482 two controllers are needed because OHCI only handles USB low- 483 and full-speed devices (both USB 1.x and 2.0), while EHCI only 484 handles high-speed devices (USB 2.0 only). 485 </para> 486 487 <para> 488 The emulated USB controllers do not communicate directly with 489 devices on the host but rather with a virtual USB layer which 490 abstracts the USB protocol and allows the use of remote USB 491 devices. 492 </para> 493 </listitem> 494 495 <listitem> 496 <para> 497 <emphasis role="bold">Audio.</emphasis> See 498 <xref 499 linkend="settings-audio" />. 500 </para> 501 </listitem> 502 503 </itemizedlist> 504 505 </sect1> 506 507 <sect1 id="generalsettings"> 508 509 <title>General Settings</title> 510 511 <para> 512 In the Settings window, under 513 <emphasis role="bold">General</emphasis>, you can configure the 514 most fundamental aspects of the virtual machine such as memory and 515 essential hardware. There are three tabs: Basic, Advanced and 516 Description. 517 </para> 518 519 <sect2 id="settings-basic"> 520 521 <title>Basic Tab</title> 522 523 <para> 524 In the Basic tab of the General settings category, you can find 525 these settings: 526 </para> 527 528 <itemizedlist> 529 530 <listitem> 531 <para> 532 <emphasis role="bold">Name:</emphasis> The name under which 533 the VM is shown in the list of VMs in the main window. Under 534 this name, VirtualBox also saves the VM's configuration 535 files. By changing the name, VirtualBox renames these files 536 as well. As a result, you can only use characters which are 537 allowed in your host operating system's file names. 538 </para> 539 540 <para> 541 Note that internally, VirtualBox uses unique identifiers 542 (UUIDs) to identify virtual machines. You can display these 543 with <computeroutput>VBoxManage</computeroutput>. 544 </para> 301 545 </listitem> 302 546 303 547 <listitem> 304 <para><emphasis role="bold">Graphics.</emphasis> The VirtualBox 305 graphics device (sometimes referred to as VGA device) is, unlike 306 nearly all other emulated devices, not based on any physical 307 counterpart. It is a simple, synthetic device which provides 308 compatibility with standard VGA and several extended registers used 309 by the VESA BIOS Extensions (VBE).</para> 548 <para> 549 <emphasis role="bold">Operating system/version:</emphasis> 550 The type of the guest operating system that is, or will be, 551 installed in the VM. This is the same setting that was 552 specified in the "New Virtual Machine" wizard. See 553 <xref 554 linkend="gui-createvm" />. 555 </para> 556 557 <para> 558 Whereas the default settings of a newly created VM depend on 559 the selected operating system type, changing the type later 560 has no effect on VM settings. This value is purely 561 informational and decorative. 562 </para> 310 563 </listitem> 311 564 565 </itemizedlist> 566 567 </sect2> 568 569 <sect2 id="settings-general-advanced"> 570 571 <title>Advanced Tab</title> 572 573 <para> 574 The following settings are available in the Advanced tab: 575 </para> 576 577 <itemizedlist> 578 312 579 <listitem> 313 <para><emphasis role="bold">Storage.</emphasis> VirtualBox currently 314 emulates the standard ATA interface found on Intel PIIX3/PIIX4 315 chips, the SATA (AHCI) interface, and two SCSI adapters (LSI Logic 316 and BusLogic); see <xref linkend="harddiskcontrollers" /> for 317 details. Whereas providing one of these would be enough for 318 VirtualBox by itself, this multitude of storage adapters is required 319 for compatibility with other hypervisors. Windows is particularly 320 picky about its boot devices, and migrating VMs between hypervisors 321 is very difficult or impossible if the storage controllers are 322 different.</para> 580 <para> 581 <emphasis role="bold">Snapshot Folder:</emphasis> By 582 default, VirtualBox saves snapshot data together with your 583 other VirtualBox configuration data. See 584 <xref 585 linkend="vboxconfigdata" />. With this 586 setting, you can specify any other folder for each VM. 587 </para> 323 588 </listitem> 324 589 325 590 <listitem> 326 <para><emphasis role="bold">Networking.</emphasis> See <xref 327 linkend="nichardware" />.</para> 591 <para> 592 <emphasis role="bold">Shared Clipboard:</emphasis> You can 593 select here whether the clipboard of the guest operating 594 system should be shared with that of your host. If you 595 select <emphasis role="bold">Bidirectional</emphasis>, then 596 VirtualBox will always make sure that both clipboards 597 contain the same data. If you select 598 <emphasis role="bold">Host to Guest</emphasis> or 599 <emphasis role="bold">Guest to Host</emphasis>, then 600 VirtualBox will only ever copy clipboard data in one 601 direction. 602 </para> 603 604 <para> 605 Clipboard sharing requires that the VirtualBox Guest 606 Additions be installed. In such a case, this setting has no 607 effect. See <xref linkend="guestadditions" />. 608 </para> 609 610 <para> 611 The shared clipboard is disabled by default. See 612 <xref linkend="security_clipboard"/> for an explanation. 613 This setting can be changed at any time using the "Shared 614 Clipboard" menu item in the "Devices" menu of the virtual 615 machine. 616 </para> 328 617 </listitem> 329 618 330 619 <listitem> 331 <para><emphasis role="bold">USB.</emphasis> VirtualBox emulates three 332 USB host controllers: xHCI, EHCI, and OHCI. While xHCI handles all USB 333 transfer speeds, only guest operating systems released approximately 334 after 2011 support xHCI. Note that for Windows 7 guests, 3rd party 335 drivers must be installed for xHCI support.</para> 336 <para> 337 Older operating systems typically support OHCI and EHCI. The two 338 controllers are needed because OHCI only handles USB low- and full-speed 339 devices (both USB 1.x and 2.0), while EHCI only handles high-speed 340 devices (USB 2.0 only).</para> 341 <para> 342 The emulated USB controllers do not 343 communicate directly with devices on the host but rather with a 344 virtual USB layer which abstracts the USB protocol and allows the 345 use of remote USB devices.</para> 620 <para> 621 <emphasis role="bold">Drag and Drop:</emphasis> This setting 622 enables support for drag and drop. Select an object, such as 623 a file, from the host or guest and directly copy or open it 624 on the guest or host. Multiple per-VM drag and drop modes 625 allow restricting access in either direction. 626 </para> 627 628 <para> 629 For drag and drop to work the Guest Additions need to be 630 installed on the guest. 631 </para> 632 633 <note> 634 <para> 635 Drag and drop is disabled by default. This setting can be 636 changed at any time using the <emphasis role="bold">Drag 637 and Drop</emphasis> menu item in the Devices menu of the 638 virtual machine. 639 </para> 640 </note> 641 642 <para> 643 See <xref linkend="guestadd-dnd"/>. 644 645 <footnote> 646 647 <para> 648 Experimental support for drag and drop was added with 649 VirtualBox 4.2. 650 </para> 651 652 </footnote> 653 </para> 346 654 </listitem> 347 655 656 </itemizedlist> 657 658 </sect2> 659 660 <sect2 id="settings-description"> 661 662 <title>Description Tab</title> 663 664 <para> 665 Here you can enter any description for your virtual machine, if 666 you want. This has no effect on the functionality of the 667 machine, but you may find this space useful to note down things 668 like the configuration of a virtual machine and the software 669 that has been installed into it. 670 </para> 671 672 <para> 673 To insert a line break into the description text field, press 674 <emphasis>Shift+Enter</emphasis>. 675 </para> 676 677 </sect2> 678 679 </sect1> 680 681 <sect1 id="settings-system"> 682 683 <title>System Settings</title> 684 685 <para> 686 The System category groups various settings that are related to 687 the basic hardware that is presented to the virtual machine. 688 </para> 689 690 <note> 691 <para> 692 As the activation mechanism of Microsoft Windows is sensitive to 693 hardware changes, if you are changing hardware settings for a 694 Windows guest, some of these changes may trigger a request for 695 another activation with Microsoft. 696 </para> 697 </note> 698 699 <sect2 id="settings-motherboard"> 700 701 <title>Motherboard Tab</title> 702 703 <para> 704 On the Motherboard tab, you can influence virtual hardware that 705 would normally be on the motherboard of a real computer. 706 </para> 707 708 <itemizedlist> 709 348 710 <listitem> 349 <para><emphasis role="bold">Audio.</emphasis> See <xref 350 linkend="settings-audio" />.</para> 711 <para> 712 <emphasis role="bold">Base memory:</emphasis> Sets the 713 amount of RAM that is allocated and given to the VM when it 714 is running. The specified amount of memory will be requested 715 from the host operating system, so it must be available or 716 made available as free memory on the host when attempting to 717 start the VM and will not be available to the host while the 718 VM is running. This is the same setting that was specified 719 in the "New Virtual Machine" wizard, as described in 720 <xref linkend="gui-createvm" />. 721 </para> 722 723 <para> 724 Generally, it is possible to change the memory size after 725 installing the guest operating system. But you must not 726 reduce the memory to an amount where the operating system 727 would no longer boot. 728 </para> 351 729 </listitem> 352 </itemizedlist></para> 730 731 <listitem> 732 <para> 733 <emphasis role="bold">Boot order:</emphasis> Determines the 734 order in which the guest operating system will attempt to 735 boot from the various virtual boot devices. Analogous to a 736 real PC's BIOS setting, VirtualBox can tell a guest OS to 737 start from the virtual floppy, the virtual CD/DVD drive, the 738 virtual hard drive (each of these as defined by the other VM 739 settings), the network, or none of these. 740 </para> 741 742 <para> 743 If you select <emphasis role="bold">Network</emphasis>, the 744 VM will attempt to boot from a network via the PXE 745 mechanism. This needs to be configured in detail on the 746 command line. See 747 <xref 748 linkend="vboxmanage-modifyvm" />. 749 </para> 750 </listitem> 751 752 <listitem> 753 <para> 754 <emphasis role="bold">Chipset:</emphasis> You can select 755 which chipset will be presented to the virtual machine. 756 Before VirtualBox 4.0, PIIX3 was the only available option 757 here. For modern guest operating systems such as Mac OS X, 758 that old chipset is no longer well supported. As a result, 759 VirtualBox 4.0 introduced an emulation of the more modern 760 ICH9 chipset, which supports PCI express, three PCI buses, 761 PCI-to-PCI bridges and Message Signaled Interrupts (MSI). 762 This allows modern operating systems to address more PCI 763 devices and no longer requires IRQ sharing. Using the ICH9 764 chipset it is also possible to configure up to 36 network 765 cards, up to 8 network adapters with PIIX3. Note that the 766 ICH9 support is experimental and not recommended for guest 767 operating systems which do not require it. 768 </para> 769 </listitem> 770 771 <listitem> 772 <para> 773 <emphasis role="bold">Pointing Device:</emphasis> The 774 default virtual pointing devices for older guests is the 775 traditional PS/2 mouse. If set to <emphasis>USB 776 tablet</emphasis>, VirtualBox reports to the virtual machine 777 that a USB tablet device is present and communicates mouse 778 events to the virtual machine through this device. The third 779 setting is a <emphasis>USB Multi-Touch Tablet</emphasis> 780 which is suited for recent Windows guests. 781 </para> 782 783 <para> 784 Using the virtual USB tablet has the advantage that 785 movements are reported in absolute coordinates, instead of 786 as relative position changes. This allows VirtualBox to 787 translate mouse events over the VM window into tablet events 788 without having to "capture" the mouse in the guest as 789 described in 790 <xref 791 linkend="keyb_mouse_normal" />. This 792 makes using the VM less tedious even if Guest Additions are 793 not installed. 794 795 <footnote> 796 797 <para> 798 The virtual USB tablet was added with VirtualBox 3.2. 799 Depending on the guest operating system selected, this 800 is now enabled by default for new virtual machines. 801 </para> 802 803 </footnote> 804 </para> 805 </listitem> 806 807 <listitem> 808 <para> 809 <emphasis role="bold">Enable I/O APIC:</emphasis> Advanced 810 Programmable Interrupt Controllers (APICs) are a newer x86 811 hardware feature that have replaced old-style Programmable 812 Interrupt Controllers (PICs) in recent years. With an I/O 813 APIC, operating systems can use more than 16 interrupt 814 requests (IRQs) and therefore avoid IRQ sharing for improved 815 reliability. 816 </para> 817 818 <note> 819 <para> 820 Enabling the I/O APIC is <emphasis>required</emphasis> for 821 64-bit guest operating systems, especially Windows Vista. 822 It is also required if you want to use more than one 823 virtual CPU in a virtual machine. 824 </para> 825 </note> 826 827 <para> 828 However, software support for I/O APICs has been unreliable 829 with some operating systems other than Windows. Also, the 830 use of an I/O APIC slightly increases the overhead of 831 virtualization and therefore slows down the guest OS a 832 little. 833 </para> 834 835 <warning> 836 <para> 837 All Windows operating systems starting with Windows 2000 838 install different kernels depending on whether an I/O APIC 839 is available. As with ACPI, the I/O APIC therefore 840 <emphasis>must not be turned off after 841 installation</emphasis> of a Windows guest OS. Turning it 842 on after installation will have no effect however. 843 </para> 844 </warning> 845 </listitem> 846 847 <listitem> 848 <para> 849 <emphasis role="bold">Enable EFI:</emphasis> Enables 850 Extensible Firmware Interface (EFI), which replaces the 851 legacy BIOS and may be useful for certain advanced use 852 cases. See <xref linkend="efi" />. 853 </para> 854 </listitem> 855 856 <listitem> 857 <para> 858 <emphasis role="bold">Hardware clock in UTC time:</emphasis> 859 If checked, VirtualBox will report the system time in UTC 860 format to the guest instead of local (host) time. This 861 affects how the virtual real-time clock (RTC) operates and 862 may be useful for Unix-like guest operating systems, which 863 typically expect the hardware clock to be set to UTC. 864 </para> 865 </listitem> 866 867 </itemizedlist> 868 869 <para> 870 In addition, you can turn off the <emphasis role="bold">Advanced 871 Configuration and Power Interface (ACPI)</emphasis> which 872 VirtualBox presents to the guest operating system by default. 873 ACPI is the current industry standard to allow operating systems 874 to recognize hardware, configure motherboards and other devices 875 and manage power. As all modern PCs contain this feature and 876 Windows and Linux have been supporting it for years, it is also 877 enabled by default in VirtualBox. It can only be turned off on 878 the command line. See 879 <xref 880 linkend="vboxmanage-modifyvm" />. 881 </para> 882 883 <warning> 884 <para> 885 All Windows operating systems starting with Windows 2000 886 install different kernels depending on whether ACPI is 887 available, so ACPI <emphasis>must not be turned off</emphasis> 888 after installation of a Windows guest OS. Turning it on after 889 installation will have no effect however. 890 </para> 891 </warning> 892 893 </sect2> 894 895 <sect2 id="settings-processor"> 896 897 <title>Processor Tab</title> 898 899 <para> 900 On the Processor tab, you can set how many virtual 901 <emphasis role="bold">CPU cores</emphasis> the guest operating 902 systems should see. Starting with version 3.0, VirtualBox 903 supports symmetrical multiprocessing (SMP) and can present up to 904 32 virtual CPU cores to each virtual machine. 905 </para> 906 907 <para> 908 You should not, however, configure virtual machines to use more 909 CPU cores than are available physically (real cores, no 910 hyperthreads). 911 </para> 912 913 <para> 914 On this tab you can also set the <emphasis role="bold">CPU 915 execution cap</emphasis>. This setting limits the amount of time 916 a host CPU spends to emulate a virtual CPU. The default setting 917 is 100% meaning that there is no limitation. A setting of 50% 918 implies a single virtual CPU can use up to 50% of a single host 919 CPU. Note that limiting the execution time of the virtual CPUs 920 may induce guest timing problems. 921 </para> 922 923 <para> 924 In addition, the <emphasis role="bold">Enable PAE/NX</emphasis> 925 setting determines whether the PAE and NX capabilities of the 926 host CPU will be exposed to the virtual machine. PAE stands for 927 "Physical Address Extension". Normally, if enabled and supported 928 by the operating system, then even a 32-bit x86 CPU can access 929 more than 4 GB of RAM. This is made possible by adding another 4 930 bits to memory addresses, so that with 36 bits, up to 64 GB can 931 be addressed. Some operating systems, such as Ubuntu Server, 932 require PAE support from the CPU and cannot be run in a virtual 933 machine without it. 934 </para> 935 936 <para> 937 With virtual machines running modern server operating systems, 938 VirtualBox also supports CPU hot-plugging. For details, see 939 <xref linkend="cpuhotplug" />. 940 </para> 941 942 </sect2> 943 944 <sect2 id="settings-acceleration"> 945 946 <title>Acceleration Tab</title> 947 948 <para> 949 On this page, you can determine whether and how VirtualBox 950 should use hardware virtualization extensions that your host CPU 951 may support. This is the case with most CPUs built after 2006. 952 </para> 953 954 <para> 955 You can select for each virtual machine individually whether 956 VirtualBox should use software or hardware virtualization. 957 958 <footnote> 959 960 <para> 961 Prior to VirtualBox version 2.2, software virtualization was 962 the default; starting with version 2.2, VirtualBox will 963 enable hardware virtualization by default for new virtual 964 machines that you create. Existing virtual machines are not 965 automatically changed for compatibility reasons, and the 966 default can of course be changed for each virtual machine. 967 </para> 968 969 </footnote> 970 </para> 971 972 <para> 973 In most cases, the default settings will be fine; VirtualBox 974 will have picked sensible defaults depending on the operating 975 system that you selected when you created the virtual machine. 976 In certain situations, however, you may want to change these 977 preconfigured defaults. 978 </para> 979 980 <para> 981 Advanced users may be interested in technical details about 982 software vs. hardware virtualization. See 983 <xref 984 linkend="hwvirt" />. 985 </para> 986 987 <para> 988 If your host's CPU supports the <emphasis role="bold">nested 989 paging</emphasis> (AMD-V) or 990 <emphasis role="bold">EPT</emphasis> (Intel VT-x) features, then 991 you can expect a significant performance increase by enabling 992 nested paging in addition to hardware virtualization. For 993 technical details, see <xref linkend="nestedpaging" />. 994 </para> 995 996 <para> 997 Starting with version 5.0, VirtualBox provides 998 paravirtualization interfaces to improve time-keeping accuracy 999 and performance of guest operating systems. The options 1000 available are documented under the 1001 <computeroutput>paravirtprovider</computeroutput> option in 1002 <xref linkend="vboxmanage-modifyvm" />. For further details on 1003 the paravirtualization providers, see 1004 <xref linkend="gimproviders" />. 1005 </para> 1006 1007 </sect2> 1008 353 1009 </sect1> 354 1010 355 <sect1 id="generalsettings"> 356 <title>General settings</title> 357 358 <para>In the Settings window, under "General", you can configure the most 359 fundamental aspects of the virtual machine such as memory and essential 360 hardware. There are three tabs, "Basic", "Advanced" and 361 "Description".</para> 362 363 <sect2> 364 <title>"Basic" tab</title> 365 366 <para>Under the "Basic" tab of the "General" settings category, you can 367 find these settings:</para> 368 369 <glosslist> 370 <glossentry> 371 <glossterm>Name</glossterm> 372 373 <glossdef> 374 <para>The name under which the VM is shown in the list of VMs in 375 the main window. Under this name, VirtualBox also saves the VM's 376 configuration files. By changing the name, VirtualBox renames 377 these files as well. As a result, you can only use characters 378 which are allowed in your host operating system's file 379 names.</para> 380 381 <para>Note that internally, VirtualBox uses unique identifiers 382 (UUIDs) to identify virtual machines. You can display these with 383 <computeroutput>VBoxManage</computeroutput>.</para> 384 </glossdef> 385 </glossentry> 386 387 <glossentry> 388 <glossterm>Operating system / version</glossterm> 389 390 <glossdef> 391 <para>The type of the guest operating system that is (or will be) 392 installed in the VM. This is the same setting that was specified 393 in the "New Virtual Machine" wizard, as described in <xref 394 linkend="gui-createvm" />.</para> 395 396 <para>Whereas the default settings of a newly created VM depend on 397 the selected operating system type, changing the type later has no 398 effect on VM settings; this value is then purely informational and 399 decorative.</para> 400 </glossdef> 401 </glossentry> 402 </glosslist> 403 </sect2> 404 405 <sect2 id="settings-general-advanced"> 406 <title>"Advanced" tab</title> 407 408 <para><glosslist> 409 <glossentry> 410 <glossterm>Snapshot Folder</glossterm> 411 412 <glossdef> 413 <para>By default, VirtualBox saves snapshot data together with 414 your other VirtualBox configuration data; see <xref 415 linkend="vboxconfigdata" />. With this setting, you can specify 416 any other folder for each VM.</para> 417 </glossdef> 418 </glossentry> 419 420 <glossentry> 421 <glossterm>Shared Clipboard</glossterm> 422 423 <glossdef> 424 <para>You can select here whether the clipboard of the guest 425 operating system should be shared with that of your host. If you 426 select "Bidirectional", then VirtualBox will always make sure 427 that both clipboards contain the same data. If you select "Host 428 to guest" or "Guest to host", then VirtualBox will only ever 429 copy clipboard data in one direction.</para> 430 431 <para>Clipboard sharing requires that the VirtualBox Guest 432 Additions be installed. As a result, this setting has no effect 433 otherwise; see <xref linkend="guestadditions" /> for 434 details.</para> 435 436 <para>The shared clipboard is disabled by default. See 437 <xref linkend="security_clipboard"/> for an explanation. This 438 setting can be changed at any time using the "Shared Clipboard" 439 menu item in the "Devices" menu of the virtual machine.</para> 440 </glossdef> 441 </glossentry> 442 443 <glossentry> 444 <glossterm>Drag and Drop</glossterm> 445 <glossdef> 446 <para>This setting allows to enable support for drag and drop: Select 447 an object (e.g. a file) from the host or guest and directly copy 448 or open it on the guest or host. Multiple per-VM drag and drop modes 449 allow restricting access in either direction.</para> 450 451 <para>For drag and drop to work the Guest Additions need to be 452 installed on the guest.</para> 453 454 <para><note><para>Drag and drop is disabled by default. This setting can be 455 changed at any time using the "Drag and Drop" menu item in the 456 "Devices" menu of the virtual machine.</para></note></para> 457 458 <para>See <xref linkend="guestadd-dnd"/> for more information. 459 <footnote><para>Experimental support for drag and drop was added 460 with VirtualBox 4.2.</para></footnote></para> 461 </glossdef> 462 </glossentry> 463 464 </glosslist></para> 465 </sect2> 466 467 <sect2> 468 <title>"Description" tab</title> 469 470 <para>Here you can enter any description for your virtual machine, if 471 you want. This has no effect on the functionality of the machine, but 472 you may find this space useful to note down things like the 473 configuration of a virtual machine and the software that has been 474 installed into it.</para> 475 <para>To insert a line break into the description text field, press 476 <emphasis>Shift+Enter</emphasis>.</para> 477 </sect2> 1011 <sect1 id="settings-display"> 1012 1013 <title>Display Settings</title> 1014 1015 <itemizedlist> 1016 1017 <listitem> 1018 <para> 1019 <emphasis role="bold">Video memory size:</emphasis> Sets the 1020 size of the memory provided by the virtual graphics card 1021 available to the guest, in MB. As with the main memory, the 1022 specified amount will be allocated from the host's resident 1023 memory. Based on the amount of video memory, higher 1024 resolutions and color depths may be available. 1025 </para> 1026 1027 <para> 1028 The GUI will show a warning if the amount of video memory is 1029 too small to be able to switch the VM into full screen mode. 1030 The minimum value depends on the number of virtual monitors, 1031 the screen resolution and the color depth of the host display 1032 as well as of the activation of <emphasis>3D 1033 acceleration</emphasis> and <emphasis>2D video 1034 acceleration</emphasis>. A rough estimate is (<emphasis>color 1035 depth</emphasis> / 8) x <emphasis>vertical pixels</emphasis> x 1036 <emphasis>horizontal pixels</emphasis> x <emphasis>number of 1037 screens</emphasis> = <emphasis>number of bytes</emphasis>. 1038 Like said above, there might be extra memory required for any 1039 activated display acceleration setting. 1040 </para> 1041 </listitem> 1042 1043 <listitem> 1044 <para> 1045 <emphasis role="bold">Monitor count:</emphasis> With this 1046 setting VirtualBox can provide more than one virtual monitor 1047 to a virtual machine. If a guest operating system, such as 1048 Windows, supports multiple attached monitors, VirtualBox can 1049 pretend that multiple virtual monitors are present. 1050 1051 <footnote> 1052 1053 <para> 1054 Multiple monitor support was added with VirtualBox 3.2. 1055 </para> 1056 1057 </footnote> 1058 1059 Up to eight such virtual monitors are supported. 1060 </para> 1061 1062 <para> 1063 The output of the multiple monitors are displayed on the host 1064 in multiple VM windows which are running side by side. 1065 </para> 1066 1067 <para> 1068 However, in full screen and seamless mode, they use the 1069 available physical monitors attached to the host. As a result, 1070 for full screen and seamless modes to work with multiple 1071 monitors, you will need at least as many physical monitors as 1072 you have virtual monitors configured, or VirtualBox will 1073 report an error. You can configure the relationship between 1074 guest and host monitors using the view menu by pressing Host 1075 key + Home when you are in full screen or seamless mode. 1076 </para> 1077 1078 <para> 1079 See also <xref linkend="KnownIssues" />. 1080 </para> 1081 </listitem> 1082 1083 <listitem> 1084 <para> 1085 <emphasis role="bold">Enable 3D acceleration:</emphasis> If a 1086 virtual machine has Guest Additions installed, you can select 1087 here whether the guest should support accelerated 3D graphics. 1088 See <xref linkend="guestadd-3d" />. 1089 </para> 1090 </listitem> 1091 1092 <listitem> 1093 <para> 1094 <emphasis role="bold">Enable 2D video acceleration:</emphasis> 1095 If a virtual machine with Microsoft Windows has Guest 1096 Additions installed, you can select here whether the guest 1097 should support accelerated 2D video graphics. See 1098 <xref 1099 linkend="guestadd-2d" />. 1100 </para> 1101 </listitem> 1102 1103 <listitem> 1104 <para> 1105 <emphasis role="bold">Remote display:</emphasis> On the 1106 <emphasis role="bold">Remote Display</emphasis> tab, if the 1107 VirtualBox Remote Display Extension (VRDE) is installed, you 1108 can enable the VRDP server that is built into VirtualBox. This 1109 enables you to connect to the console of the virtual machine 1110 remotely with any standard RDP viewer, such as 1111 <computeroutput>mstsc.exe</computeroutput> that comes with 1112 Microsoft Windows. On Linux and Solaris systems you can use 1113 the standard open source 1114 <computeroutput>rdesktop</computeroutput> program. These 1115 features are described in <xref linkend="vrde" />. 1116 </para> 1117 </listitem> 1118 1119 <listitem> 1120 <para> 1121 <emphasis role="bold">Video Capture:</emphasis> On the 1122 <emphasis role="bold">Video Capture</emphasis> tab you can 1123 enable video capturing for this VM. Note that this feature can 1124 also be enabled/disabled while the VM is executed. 1125 </para> 1126 </listitem> 1127 1128 </itemizedlist> 1129 478 1130 </sect1> 479 1131 480 <sect1 id="settings-system">481 <title>System settings</title>482 483 <para>The "System" category groups various settings that are related to484 the basic hardware that is presented to the virtual machine.<note>485 <para>As the activation mechanism of Microsoft Windows is sensitive to486 hardware changes, if you are changing hardware settings for a Windows487 guest, some of these changes may trigger a request for another488 activation with Microsoft.</para>489 </note></para>490 491 <sect2 id="settings-motherboard">492 <title>"Motherboard" tab</title>493 494 <para>On the "Motherboard" tab, you can influence virtual hardware that495 would normally be on the motherboard of a real computer.<glosslist>496 <glossentry>497 <glossterm>Base memory</glossterm>498 499 <glossdef>500 <para>This sets the amount of RAM that is allocated and given to501 the VM when it is running. The specified amount of memory will502 be requested from the host operating system, so it must be503 available or made available as free memory on the host when504 attempting to start the VM and will not be available to the host505 while the VM is running. This is the same setting that was506 specified in the "New Virtual Machine" wizard, as described with507 guidelines under <xref linkend="gui-createvm" /> above.</para>508 509 <para>Generally, it is possible to change the memory size after510 installing the guest operating system (provided you do not511 reduce the memory to an amount where the operating system would512 no longer boot).</para>513 </glossdef>514 </glossentry>515 516 <glossentry>517 <glossterm>Boot order</glossterm>518 519 <glossdef>520 <para>This setting determines the order in which the guest521 operating system will attempt to boot from the various virtual522 boot devices. Analogous to a real PC's BIOS setting, VirtualBox523 can tell a guest OS to start from the virtual floppy, the524 virtual CD/DVD drive, the virtual hard drive (each of these as525 defined by the other VM settings), the network, or none of526 these.</para>527 528 <para>If you select "Network", the VM will attempt to boot from529 a network via the PXE mechanism. This needs to be configured in530 detail on the command line; please see <xref531 linkend="vboxmanage-modifyvm" />.</para>532 </glossdef>533 </glossentry>534 535 <glossentry>536 <glossterm>Chipset</glossterm>537 538 <glossdef>539 <para>Here you can select which chipset will be presented to the540 virtual machine. Before VirtualBox 4.0, PIIX3 was the only541 available option here. For modern guest operating systems such542 as Mac OS X, that old chipset is no longer well supported. As a543 result, VirtualBox 4.0 introduced an emulation of the more544 modern ICH9 chipset, which supports PCI express, three PCI545 buses, PCI-to-PCI bridges and Message Signaled Interrupts546 (MSI). This allows modern operating systems to address more PCI547 devices and no longer requires IRQ sharing. Using the ICH9 chipset548 it is also possible to configure up to 36 network cards (up to 8549 network adapters with PIIX3). Note that the ICH9 support is550 experimental and not recommended for guest operating systems which551 do not require it.</para>552 </glossdef>553 </glossentry>554 555 <glossentry>556 <glossterm>Pointing Device</glossterm>557 558 <glossdef>559 <para>The default virtual pointing devices for older guests is the560 traditional PS/2 mouse. If set to <emphasis>USB tablet</emphasis>,561 VirtualBox reports to the virtual machine that a USB tablet562 device is present and communicates mouse events to563 the virtual machine through this device. The third setting is564 a <emphasis>USB Multi-Touch Tablet</emphasis> which is suited565 for recent Windows guests.</para>566 567 <para>Using the virtual USB tablet has the advantage that568 movements are reported in absolute coordinates (instead of as569 relative position changes), which allows VirtualBox to translate570 mouse events over the VM window into tablet events without571 having to "capture" the mouse in the guest as described in <xref572 linkend="keyb_mouse_normal" />. This makes using the VM less573 tedious even if Guest Additions are not installed.<footnote>574 <para>The virtual USB tablet was added with VirtualBox 3.2.575 Depending on the guest operating system selected, this is576 now enabled by default for new virtual machines.</para>577 </footnote></para>578 </glossdef>579 </glossentry>580 <glossentry>581 <glossterm>Enable I/O APIC</glossterm>582 583 <glossdef>584 <para>Advanced Programmable Interrupt Controllers (APICs) are a585 newer x86 hardware feature that have replaced old-style586 Programmable Interrupt Controllers (PICs) in recent years. With587 an I/O APIC, operating systems can use more than 16 interrupt588 requests (IRQs) and therefore avoid IRQ sharing for improved589 reliability.<note>590 <para>Enabling the I/O APIC is <emphasis>required</emphasis>591 for 64-bit guest operating systems, especially Windows592 Vista; it is also required if you want to use more than one593 virtual CPU in a virtual machine.</para>594 </note></para>595 596 <para>However, software support for I/O APICs has been597 unreliable with some operating systems other than Windows. Also,598 the use of an I/O APIC slightly increases the overhead of599 virtualization and therefore slows down the guest OS a600 little.<warning>601 <para>All Windows operating systems starting with Windows602 2000 install different kernels depending on whether an I/O603 APIC is available. As with ACPI, the I/O APIC therefore604 <emphasis>must not be turned off after605 installation</emphasis> of a Windows guest OS. Turning it on606 after installation will have no effect however.</para>607 </warning></para>608 </glossdef>609 </glossentry>610 611 <glossentry>612 <glossterm>Enable EFI</glossterm>613 614 <glossdef>615 <para>This enables Extensible Firmware Interface (EFI), which616 replaces the legacy BIOS and may be useful for certain617 advanced use cases. Please refer to <xref linkend="efi" /> for618 details.</para>619 </glossdef>620 </glossentry>621 622 <glossentry>623 <glossterm>Hardware clock in UTC time</glossterm>624 625 <glossdef>626 <para>If checked, VirtualBox will report the system time in UTC627 format to the guest instead of local (host) time. This affects628 how the virtual real-time clock (RTC) operates and may be useful629 for Unix-like guest operating systems, which typically expect630 the hardware clock to be set to UTC.</para>631 </glossdef>632 </glossentry>633 634 </glosslist></para>635 636 <para>In addition, you can turn off the <emphasis role="bold">Advanced637 Configuration and Power Interface (ACPI)</emphasis> which VirtualBox638 presents to the guest operating system by default. ACPI is the current639 industry standard to allow operating systems to recognize hardware,640 configure motherboards and other devices and manage power. As all modern641 PCs contain this feature and Windows and Linux have been supporting it642 for years, it is also enabled by default in VirtualBox. It can only be643 turned off on the command line; see <xref644 linkend="vboxmanage-modifyvm" />.<warning>645 <para>All Windows operating systems starting with Windows 2000646 install different kernels depending on whether ACPI is available, so647 ACPI <emphasis>must not be turned off</emphasis> after installation648 of a Windows guest OS. Turning it on after installation will have no649 effect however.</para>650 </warning></para>651 </sect2>652 653 <sect2 id="settings-processor">654 <title>"Processor" tab</title>655 656 <para>On the "Processor" tab, you can set how many virtual <emphasis657 role="bold">CPU cores</emphasis> the guest operating systems should see.658 Starting with version 3.0, VirtualBox supports symmetrical659 multiprocessing (SMP) and can present up to 32 virtual CPU cores to each660 virtual machine.</para>661 662 <para>You should not, however, configure virtual machines to use more663 CPU cores than you have available physically (real cores, no hyperthreads).</para>664 665 <para>On this tab you can also set the <emphasis role="bold">"CPU execution666 cap"</emphasis>. This setting667 limits the amount of time a host CPU spends to emulate a virtual CPU.668 The default setting is 100% meaning that there is no limitation. A setting669 of 50% implies a single virtual CPU can use up to 50% of a single host670 CPU. Note that limiting the execution time of the virtual CPUs may induce671 guest timing problems.</para>672 673 <para>In addition, the <emphasis role="bold">"Enable PAE/NX"</emphasis>674 setting determines whether the PAE and NX capabilities of the host CPU675 will be exposed to the virtual machine. PAE stands for "Physical Address676 Extension". Normally, if enabled and supported by the operating system,677 then even a 32-bit x86 CPU can access more than 4 GB of RAM. This is678 made possible by adding another 4 bits to memory addresses, so that with679 36 bits, up to 64 GB can be addressed. Some operating systems (such as680 Ubuntu Server) require PAE support from the CPU and cannot be run in a681 virtual machine without it.</para>682 683 <para>With virtual machines running modern server operating systems,684 VirtualBox also supports CPU hot-plugging. For details about this,685 please refer to <xref linkend="cpuhotplug" />.</para>686 </sect2>687 688 <sect2>689 <title>"Acceleration" tab</title>690 691 <para>On this page, you can determine whether and how VirtualBox should692 use hardware virtualization extensions that your host CPU may support.693 This is the case with most CPUs built after 2006.</para>694 695 <para>You can select for each virtual machine individually whether696 VirtualBox should use software or hardware virtualization.<footnote>697 <para>Prior to VirtualBox version 2.2, software virtualization was698 the default; starting with version 2.2, VirtualBox will enable699 hardware virtualization by default for new virtual machines that you700 create. (Existing virtual machines are not automatically changed for701 compatibility reasons, and the default can of course be changed for702 each virtual machine.)</para>703 </footnote></para>704 705 <para>In most cases, the default settings will be fine; VirtualBox will706 have picked sensible defaults depending on the operating system that you707 selected when you created the virtual machine. In certain situations,708 however, you may want to change these preconfigured defaults.</para>709 710 <para>Advanced users may be interested in technical details about711 software vs. hardware virtualization; please see <xref712 linkend="hwvirt" />.</para>713 714 <para>If your host's CPU supports the <emphasis role="bold">nested715 paging</emphasis> (AMD-V) or <emphasis role="bold">EPT</emphasis> (Intel716 VT-x) features, then you can expect a significant performance increase717 by enabling nested paging in addition to hardware virtualization. For718 technical details, see <xref linkend="nestedpaging" />.</para>719 720 <para>Starting with version 5.0, VirtualBox provides paravirtualization721 interfaces to improve time-keeping accuracy and performance of guest722 operating systems. The options available are documented under the723 <computeroutput>paravirtprovider</computeroutput> option724 in <xref linkend="vboxmanage-modifyvm" />. For further details on725 the paravirtualization providers, please refer to726 <xref linkend="gimproviders" />.</para>727 </sect2>728 </sect1>729 730 <sect1 id="settings-display">731 <title>Display settings</title>732 733 <glosslist>734 <glossentry>735 <glossterm>Video memory size</glossterm>736 737 <glossdef>738 <para>This sets the size of the memory provided by the virtual739 graphics card available to the guest, in MB. As with the main740 memory, the specified amount will be allocated from the host's741 resident memory. Based on the amount of video memory, higher742 resolutions and color depths may be available.</para>743 <para>The GUI will show a warning if the amount of video memory744 is too small to be able to switch the VM into full screen mode.745 The minimum value depends on the number of virtual monitors, the746 screen resolution and the color depth of the host display as well747 as of the activation of <emphasis>3D acceleration</emphasis> and748 <emphasis>2D video acceleration</emphasis>. A rough estimate749 is (<emphasis>color depth</emphasis> / 8) x750 <emphasis>vertical pixels</emphasis> x751 <emphasis>horizontal pixels</emphasis> x752 <emphasis>number of screens</emphasis> = <emphasis>number of bytes</emphasis>.753 Like said above, there might be extra memory required for any754 activated display acceleration setting.</para>755 </glossdef>756 </glossentry>757 758 <glossentry>759 <glossterm>Monitor count</glossterm>760 761 <glossdef>762 <para>With this setting VirtualBox can provide more than one virtual763 monitor to a virtual machine. If a guest operating system (such as764 Windows) supports multiple attached monitors, VirtualBox can pretend765 that multiple virtual monitors are present.<footnote>766 <para>Multiple monitor support was added with VirtualBox767 3.2.</para>768 </footnote> Up to 8 such virtual monitors are supported.</para>769 770 <para>The output of the multiple monitors will be displayed on the771 host in multiple VM windows which are running side by side.</para>772 773 <para>However, in full screen and seamless mode, they will use the774 available physical monitors attached to the host. As a result, for775 full screen and seamless modes to work with multiple monitors, you776 will need at least as many physical monitors as you have virtual777 monitors configured, or VirtualBox will report an error. You can778 configure the relationship between guest and host monitors using the779 view menu by pressing Host key + Home when you are in full screen or780 seamless mode.</para>781 782 <para>Please see <xref linkend="KnownIssues" /> also.</para>783 </glossdef>784 </glossentry>785 786 <glossentry>787 <glossterm>Enable 3D acceleration</glossterm>788 789 <glossdef>790 <para>If a virtual machine has Guest Additions installed, you can791 select here whether the guest should support accelerated 3D792 graphics. Please refer to <xref linkend="guestadd-3d" /> for793 details.</para>794 </glossdef>795 </glossentry>796 797 <glossentry>798 <glossterm>Enable 2D video acceleration</glossterm>799 800 <glossdef>801 <para>If a virtual machine with Microsoft Windows has Guest802 Additions installed, you can select here whether the guest should803 support accelerated 2D video graphics. Please refer to <xref804 linkend="guestadd-2d" /> for details.</para>805 </glossdef>806 </glossentry>807 808 <glossentry>809 <glossterm>Remote display</glossterm>810 811 <glossdef>812 <para>Under the "Remote display" tab, if the VirtualBox Remote813 Display Extension (VRDE) is installed, you can enable the VRDP server814 that is built into VirtualBox. This allows you to connect to the815 console of the virtual machine remotely with any standard RDP viewer,816 such as <computeroutput>mstsc.exe</computeroutput> that comes with817 Microsoft Windows. On Linux and Solaris systems you can use the818 standard open-source <computeroutput>rdesktop</computeroutput>819 program. These features are described in detail in820 <xref linkend="vrde" />.</para>821 </glossdef>822 </glossentry>823 824 <glossentry>825 <glossterm>Video Capture</glossterm>826 827 <glossdef>828 <para>Under the "Video Capture" tab you can enable video capturing829 for this VM. Note that this feature can also be enabled/disabled830 while the VM is executed.</para>831 </glossdef>832 </glossentry>833 </glosslist>834 </sect1>835 836 1132 <sect1 id="settings-storage"> 837 <title>Storage settings</title> 838 839 <para>The "Storage" category in the VM settings allows you to connect 840 virtual hard disk, CD/DVD and floppy images and drives to your virtual 841 machine.</para> 842 843 <para>In a real PC, so-called "storage controllers" connect physical disk 844 drives to the rest of the computer. Similarly, VirtualBox presents virtual 845 storage controllers to a virtual machine. Under each controller, the 846 virtual devices (hard disks, CD/DVD or floppy drives) attached to the 847 controller are shown.<note> 848 <para>This section can only give you a quick introduction to the 849 VirtualBox storage settings. Since VirtualBox gives you an enormous 850 wealth of options in this area, we have dedicated an entire chapter of 851 this User Manual to explaining all the details: please see <xref 852 linkend="storage" />.</para> 853 </note></para> 854 855 <para>If you have used the "Create VM" wizard to create a machine, you 856 will normally see something like the following:</para> 857 858 <para><mediaobject> 1133 1134 <title>Storage Settings</title> 1135 1136 <para> 1137 The Storage category in the VM settings enables you to connect 1138 virtual hard disk, CD/DVD, and floppy images and drives to your 1139 virtual machine. 1140 </para> 1141 1142 <para> 1143 In a real PC, so-called "storage controllers" connect physical 1144 disk drives to the rest of the computer. Similarly, VirtualBox 1145 presents virtual storage controllers to a virtual machine. Under 1146 each controller, the virtual devices, such as hard disks, CD/DVD 1147 or floppy drives, attached to the controller are shown. 1148 1149 <note> 1150 <para> 1151 This section can only give you a quick introduction to the 1152 VirtualBox storage settings. Since VirtualBox gives you an 1153 enormous wealth of options in this area, we have dedicated an 1154 entire chapter of this User Manual to explaining all the 1155 details. See <xref 1156 linkend="storage" />. 1157 </para> 1158 </note> 1159 </para> 1160 1161 <para> 1162 If you have used the <emphasis role="bold">Create VM</emphasis> 1163 wizard to create a machine, you will normally see something like 1164 the following: 1165 </para> 1166 1167 <para> 1168 <mediaobject> 859 1169 <imageobject> 860 1170 <imagedata align="center" fileref="images/vm-settings-harddisk.png" 861 1171 width="10cm" /> 862 1172 </imageobject> 863 </mediaobject></para> 864 865 <para>Depending on the guest operating system type that you selected when 866 you created the VM, the typical layout of storage devices in a new VM is 867 as follows:<itemizedlist> 868 <listitem> 869 <para>You will see an <emphasis role="bold">IDE 870 controller,</emphasis> to which a virtual CD/DVD drive has been 871 attached (to the "secondary master" port of the IDE 872 controller).</para> 873 </listitem> 874 875 <listitem> 876 <para>You will also see a <emphasis role="bold">SATA 877 controller,</emphasis> which is a more modern type of storage 1173 </mediaobject> 1174 </para> 1175 1176 <para> 1177 Depending on the guest operating system type that you selected 1178 when you created the VM, the typical layout of storage devices in 1179 a new VM is as follows: 1180 </para> 1181 1182 <itemizedlist> 1183 1184 <listitem> 1185 <para> 1186 You will see an <emphasis role="bold">IDE 1187 controller</emphasis>, to which a virtual CD/DVD drive has 1188 been attached to the "secondary master" port of the IDE 1189 controller. 1190 </para> 1191 </listitem> 1192 1193 <listitem> 1194 <para> 1195 You will also see a <emphasis role="bold">SATA 1196 controller</emphasis>, which is a more modern type of storage 878 1197 controller for higher hard disk data throughput, to which the 879 virtual hard disks are attached. Initially you will normally have 880 one such virtual disk, but as you can see in the above screenshot, 881 you can have more than one, each represented by a disk image file 882 (VDI files, in this case).</para> 883 </listitem> 884 </itemizedlist></para> 885 886 <para>If you created your VM with an older version of VirtualBox, the 887 default storage layout may differ. You might then only have an IDE 888 controller to which both the CD/DVD drive and the hard disks have been 889 attached. This might also apply if you selected an older operating system 890 type when you created the VM. Since older operating systems do not support 891 SATA without additional drivers, VirtualBox will make sure that no such 892 devices are present initially. Please see <xref 893 linkend="harddiskcontrollers" /> for additional information.</para> 894 895 <para>VirtualBox also provides a <emphasis role="bold">floppy 896 controller</emphasis>, which is special: you cannot add devices other than 897 floppy drives to it. Virtual floppy drives, like virtual CD/DVD drives, 898 can be connected to either a host floppy drive (if you have one) or a disk 899 image, which in this case must be in RAW format.</para> 900 901 <para>You can modify these media attachments freely. For example, if you 902 wish to copy some files from another virtual disk that you created, you 903 can connect that disk as a second hard disk, as in the above screenshot. 904 You could also add a second virtual CD/DVD drive, or change where these 905 items are attached. The following options are available:<itemizedlist> 906 <listitem> 907 <para>To <emphasis role="bold">add another virtual hard disk, or a 908 CD/DVD or floppy drive,</emphasis> select the storage controller to 909 which it should be added (IDE, SATA, SCSI, SAS, floppy controller) 910 and then click on the "add disk" button below the tree. You can then 911 either select "Add CD/DVD device" or "Add Hard Disk". (If you 912 clicked on a floppy controller, you can add a floppy drive instead.) 913 Alternatively, right-click on the storage controller and select a 914 menu item there.</para> 915 916 <para>On the right part of the window, you can then set the 917 following:<orderedlist> 1198 virtual hard disks are attached. Initially you will normally 1199 have one such virtual disk, but as you can see in the above 1200 screenshot, you can have more than one. Each is represented by 1201 a disk image file, VDI files in this case. 1202 </para> 1203 </listitem> 1204 1205 </itemizedlist> 1206 1207 <para> 1208 If you created your VM with an older version of VirtualBox, the 1209 default storage layout may differ. You might then only have an IDE 1210 controller to which both the CD/DVD drive and the hard disks have 1211 been attached. This might also apply if you selected an older 1212 operating system type when you created the VM. Since older 1213 operating systems do not support SATA without additional drivers, 1214 VirtualBox will make sure that no such devices are present 1215 initially. See <xref 1216 linkend="harddiskcontrollers" />. 1217 </para> 1218 1219 <para> 1220 VirtualBox also provides a <emphasis role="bold">floppy 1221 controller</emphasis>. You cannot add devices other than floppy 1222 drives to this controller. Virtual floppy drives, like virtual 1223 CD/DVD drives, can be connected to either a host floppy drive, if 1224 you have one, or a disk image, which in this case must be in RAW 1225 format. 1226 </para> 1227 1228 <para> 1229 You can modify these media attachments freely. For example, if you 1230 wish to copy some files from another virtual disk that you 1231 created, you can connect that disk as a second hard disk, as in 1232 the above screenshot. You could also add a second virtual CD/DVD 1233 drive, or change where these items are attached. The following 1234 options are available: 1235 </para> 1236 1237 <itemizedlist> 1238 1239 <listitem> 1240 <para> 1241 To <emphasis role="bold">add another virtual hard disk, or a 1242 CD/DVD or floppy drive</emphasis>, select the storage 1243 controller to which it should be added (IDE, SATA, SCSI, SAS, 1244 floppy controller) and then click on the 1245 <emphasis role="bold">Add Disk</emphasis> button below the 1246 tree. You can then either select <emphasis role="bold">Add 1247 CD/DVD Device</emphasis> or <emphasis role="bold">Add Hard 1248 Disk</emphasis>. If you clicked on a floppy controller, you 1249 can add a floppy drive instead. Alternatively, right-click on 1250 the storage controller and select a menu item there. 1251 </para> 1252 1253 <para> 1254 On the right part of the window, you can then set the 1255 following: 1256 </para> 1257 1258 <orderedlist> 1259 1260 <listitem> 1261 <para> 1262 You can then select to which 1263 <emphasis 1264 role="bold">device 1265 slot</emphasis> of the controller the virtual disk should 1266 be connected to. IDE controllers have four slots which 1267 have traditionally been called "primary master", "primary 1268 slave", "secondary master" and "secondary slave". By 1269 contrast, SATA and SCSI controllers offer you up to 30 1270 slots to which virtual devices can be attached. 1271 </para> 1272 </listitem> 1273 1274 <listitem> 1275 <para> 1276 You can select which <emphasis role="bold">image 1277 file</emphasis> to use. 1278 </para> 1279 1280 <itemizedlist> 1281 918 1282 <listitem> 919 <para>You can then select to which <emphasis 920 role="bold">device slot</emphasis> of the controller the 921 virtual disk should be connected to. IDE controllers have four 922 slots which have traditionally been called "primary master", 923 "primary slave", "secondary master" and "secondary slave". By 924 contrast, SATA and SCSI controllers offer you up to 30 slots 925 to which virtual devices can be attached.</para> 926 </listitem> 927 928 <listitem> 929 <para>You can select which <emphasis role="bold">image 930 file</emphasis> to use.<itemizedlist> 931 <listitem> 932 <para>For virtual hard disks, a button with a drop-down 933 list appears on the right, offering you to either select 934 a <emphasis role="bold">virtual hard disk 935 file</emphasis> using a standard file dialog or to 936 <emphasis role="bold">create a new hard disk</emphasis> 937 (image file), which will bring up the "Create new disk" 938 wizard, which was described in <xref 939 linkend="gui-createvm" />.</para> 940 941 <para>For details on the image file types that are 942 supported, please see <xref 943 linkend="vdidetails" />.</para> 944 </listitem> 945 946 <listitem> 947 <para>For virtual CD/DVD drives, the image files will 948 typically be in the standard ISO format instead. Most 949 commonly, you will select this option when installing an 950 operating system from an ISO file that you have obtained 951 from the Internet. For example, most Linux distributions 952 are available in this way.</para> 953 954 <para>For virtual CD/DVD drives, the following 955 additional options are available:</para> 956 957 <para><itemizedlist> 958 <listitem> 959 <para>If you select <emphasis role="bold">"Host 960 drive"</emphasis> from the list, then the physical 961 device of the host computer is connected to the VM, 962 so that the guest operating system can read from and 963 write to your physical device. This is, for 964 instance, useful if you want to install Windows from 965 a real installation CD. In this case, select your 966 host drive from the drop-down list presented.</para> 967 968 <para>If you want to write (burn) CDs or DVDs using 969 the host drive, you need to also enable the 970 <emphasis role="bold">"Passthrough"</emphasis> 971 option; see <xref linkend="storage-cds" />.</para> 972 </listitem> 973 974 <listitem> 975 <para>If you select <emphasis role="bold">"Remove 976 disk from virtual drive",</emphasis> VirtualBox will 977 present an empty CD/DVD drive to the guest into 978 which no media has been inserted.</para> 979 </listitem> 980 </itemizedlist></para> 981 </listitem> 982 </itemizedlist></para> 983 </listitem> 984 </orderedlist></para> 985 </listitem> 986 987 <listitem> 988 <para>To <emphasis role="bold">remove an attachment,</emphasis> 989 select it and click on the "remove" icon at the bottom (or 990 right-click on it and select the menu item).</para> 991 </listitem> 992 </itemizedlist></para> 993 994 <para>Removable media (CD/DVDs and floppies) can be changed while the 995 guest is running. Since the "Settings" dialog is not available at that 996 time, you can also access these settings from the "Devices" menu of your 997 virtual machine window.</para> 998 </sect1> 999 1000 <sect1 id="settings-audio"> 1001 <title>Audio settings</title> 1002 1003 <para>The "Audio" section in a virtual machine's Settings window 1004 determines whether the VM will see a sound card connected, and whether the 1005 audio output should be heard on the host system.</para> 1006 1007 <para>If audio is enabled for a guest, you can choose between the 1008 emulation of an Intel AC'97 controller, an Intel HD Audio 1009 controller<footnote> 1010 <para>Intel HD Audio support was added with VirtualBox 4.0 because 1011 Windows 7 and later (as well as 64-bit Windows Vista) do not support 1012 the Intel AC'97 controller out of the box.</para> 1013 </footnote> or a SoundBlaster 16 card. In any case, you can select what 1014 audio driver VirtualBox will use on the host.</para> 1015 1016 <para>On a Linux host, depending on your host configuration, you can also 1017 select between the OSS, ALSA or the PulseAudio subsystem. On newer Linux 1018 distributions, the PulseAudio subsystem should be preferred.</para> 1019 1020 <para>Since VirtualBox 5.0 only OSS is supported on Solaris hosts - the "Solaris Audio" 1021 audio backend is no longer supported on Solaris hosts.</para> 1022 </sect1> 1023 1024 <sect1 id="settings-network"> 1025 <title>Network settings</title> 1026 1027 <para>The "Network" section in a virtual machine's Settings window allows 1028 you to configure how VirtualBox presents virtual network cards to your VM, 1029 and how they operate.</para> 1030 1031 <para>When you first create a virtual machine, VirtualBox by default 1032 enables one virtual network card and selects the "Network Address 1033 Translation" (NAT) mode for it. This way the guest can connect to the 1034 outside world using the host's networking and the outside world can 1035 connect to services on the guest which you choose to make visible outside 1036 of the virtual machine.</para> 1037 1038 <para>This default setup is good for probably 95% of VirtualBox users. 1039 However, VirtualBox is extremely flexible in how it can virtualize 1040 networking. It supports many virtual network cards per virtual machine, 1041 the first four of which can be configured in detail in the Manager window. 1042 Additional network cards can be configured on the command line with 1043 VBoxManage. </para> 1044 1045 <para>Because of the vast array of options available, we have dedicated an 1046 entire chapter of this manual to discussing networking configuration; 1047 please see <xref linkend="networkingdetails" />.</para> 1048 </sect1> 1049 1050 <sect1 id="serialports"> 1051 <title>Serial ports</title> 1052 1053 <para>VirtualBox fully supports virtual serial ports in a virtual machine 1054 in an easy-to-use manner.<footnote> 1055 <para>Serial port support was added with VirtualBox 1.5.</para> 1056 </footnote></para> 1057 1058 <para>Ever since the original IBM PC, personal computers have been 1059 equipped with one or two serial ports (also called COM ports by DOS and 1060 Windows). Serial ports were commonly used with modems, and some 1061 computer mice used to be connected to serial ports before USB became 1062 commonplace. 1063 </para> 1064 1065 <para>While serial ports are no longer as ubiquitous as they used to be, 1066 there are still some important uses left for them. For example, serial 1067 ports can be used to set up a primitive network over a null-modem cable, 1068 in case Ethernet is not available. Also, serial ports are indispensable 1069 for system programmers needing to do kernel debugging, since kernel 1070 debugging software usually interacts with developers over a serial port. 1071 With virtual serial ports, system programmers can do kernel debugging on a 1072 virtual machine instead of needing a real computer to connect to.</para> 1073 1074 <para>If a virtual serial port is enabled, the guest operating system sees 1075 a standard 16550A compatible UART device. Both receiving and transmitting 1076 data is supported. How this virtual serial port is then connected to the 1077 host is configurable, and the details depend on your host operating system. 1078 </para> 1079 1080 <para>You can use either the graphical user interface or the command-line 1081 <computeroutput>VBoxManage</computeroutput> tool to set up virtual serial 1082 ports. For the latter, please refer to <xref 1083 linkend="vboxmanage-modifyvm" />; in that section, look for the 1084 <computeroutput>--uart</computeroutput> and 1085 <computeroutput>--uartmode</computeroutput> options.</para> 1086 1087 <para>In either case, you can configure up to four virtual serial ports per 1088 virtual machine. For each such device, you will need to 1089 determine<orderedlist> 1090 <listitem> 1091 <para>what kind of serial port the virtual machine should see by 1092 selecting an I/O base address and interrupt (IRQ). For these, we 1093 recommend to use the traditional values<footnote> 1094 <para>See, for example, <ulink 1095 url="http://en.wikipedia.org/wiki/COM_(hardware_interface)">http://en.wikipedia.org/wiki/COM_(hardware_interface)</ulink>.</para> 1096 </footnote>, which are:</para> 1097 1098 <para><orderedlist> 1099 <listitem> 1100 <para>COM1: I/O base 0x3F8, IRQ 4</para> 1101 </listitem> 1102 1103 <listitem> 1104 <para>COM2: I/O base 0x2F8, IRQ 3</para> 1105 </listitem> 1106 1107 <listitem> 1108 <para>COM3: I/O base 0x3E8, IRQ 4</para> 1109 </listitem> 1110 1111 <listitem> 1112 <para>COM4: I/O base 0x2E8, IRQ 3</para> 1113 </listitem> 1114 </orderedlist></para> 1115 </listitem> 1116 1117 <listitem> 1118 <para>Then, you will need to determine what this virtual port should 1119 be connected to. For each virtual serial port, you have the 1120 following options:</para> 1121 1122 <para><itemizedlist> 1123 <listitem> 1124 <para>You can elect to have the virtual serial port 1125 "disconnected", which means that the guest will see the 1126 device, but it will behave as if no cable had been connected 1127 to it.</para> 1128 </listitem> 1129 1130 <listitem> 1131 <para>You can connect the virtual serial port to a physical 1132 serial port on your host. (On a Windows host, this will be a 1133 name like <computeroutput>COM1</computeroutput>; on Linux or 1134 Solaris hosts, it will be a device node like 1135 <computeroutput>/dev/ttyS0</computeroutput>). VirtualBox will 1136 then simply redirect all data received from and sent to the 1137 virtual serial port to the physical device.</para> 1138 </listitem> 1139 1140 <listitem> 1141 <para>You can tell VirtualBox to connect the virtual serial 1142 port to a software pipe on the host. This depends on your host 1143 operating system:<itemizedlist> 1144 <listitem> 1145 <para>On a Windows host, data will be sent and received 1146 through a named pipe. The pipe name must be in the format 1147 <computeroutput>\\.\pipe\<name></computeroutput> 1148 where <computeroutput><name></computeroutput> should 1149 identify the virtual machine but may be freely 1150 chosen.</para> 1151 </listitem> 1152 1153 <listitem> 1154 <para>On a Mac, Linux or Solaris host, a local 1155 domain socket is used instead. The socket filename must be 1156 chosen such that the user running VirtualBox has 1157 sufficient privileges to create and write to it. The 1158 <computeroutput>/tmp</computeroutput> directory is often a 1159 good candidate.</para> 1160 <para>On Linux there are various tools which can connect 1161 to a local domain socket or create one in server mode. The 1162 most flexible tool is 1163 <computeroutput>socat</computeroutput> and is available 1164 as part of many distributions.</para> 1165 </listitem> 1166 </itemizedlist></para> 1167 1168 <para>In this case, you can configure whether VirtualBox 1169 should create the named pipe (or, on non-Windows hosts, the 1170 local domain socket) itself or whether VirtualBox should 1171 assume that the pipe (or socket) exists already. With the 1172 <computeroutput>VBoxManage</computeroutput> command-line 1173 options, this is referred to as "server" or "client" mode, 1174 respectively.</para> 1175 1176 <para>For a direct connection between two virtual machines 1177 (corresponding to a null-modem cable), simply configure one VM 1178 to create a pipe/socket and another to attach to it. 1283 <para> 1284 For virtual hard disks, a button with a drop-down list 1285 appears on the right, offering you to either select a 1286 <emphasis role="bold">virtual hard disk 1287 file</emphasis> using a standard file dialog or to 1288 <emphasis role="bold">create a new hard 1289 disk</emphasis> (image file). The latter option 1290 displays the <emphasis role="bold">Create New 1291 Disk</emphasis> wizard, described in 1292 <xref 1293 linkend="gui-createvm" />. 1294 </para> 1295 1296 <para> 1297 For details on the image file types that are 1298 supported, see 1299 <xref 1300 linkend="vdidetails" />. 1179 1301 </para> 1180 1302 </listitem> 1181 1303 1182 1304 <listitem> 1183 <para>You can send the virtual serial port output to a file. 1184 This option is very useful for capturing diagnostic output from 1185 a guest. Any file may be used for this purpose, as long as the 1186 user running VirtualBox has sufficient privileges to create and 1187 write to the file. 1305 <para> 1306 For virtual CD/DVD drives, the image files will 1307 typically be in the standard ISO format instead. Most 1308 commonly, you will select this option when installing 1309 an operating system from an ISO file that you have 1310 obtained from the Internet. For example, most Linux 1311 distributions are available in this way. 1312 </para> 1313 1314 <para> 1315 For virtual CD/DVD drives, the following additional 1316 options are available: 1317 </para> 1318 1319 <itemizedlist> 1320 1321 <listitem> 1322 <para> 1323 If you select <emphasis role="bold">Host 1324 Drive</emphasis> from the list, then the physical 1325 device of the host computer is connected to the 1326 VM, so that the guest operating system can read 1327 from and write to your physical device. This is, 1328 for instance, useful if you want to install 1329 Windows from a real installation CD. In this case, 1330 select your host drive from the drop-down list 1331 presented. 1332 </para> 1333 1334 <para> 1335 If you want to write (burn) CDs or DVDs using the 1336 host drive, you need to also enable the 1337 <emphasis role="bold">Passthrough</emphasis> 1338 option. See <xref linkend="storage-cds" />. 1339 </para> 1340 </listitem> 1341 1342 <listitem> 1343 <para> 1344 If you select <emphasis role="bold">Remove Disk 1345 from Virtual Drive</emphasis>, VirtualBox will 1346 present an empty CD/DVD drive to the guest into 1347 which no media has been inserted. 1348 </para> 1349 </listitem> 1350 1351 </itemizedlist> 1352 </listitem> 1353 1354 </itemizedlist> 1355 </listitem> 1356 1357 </orderedlist> 1358 </listitem> 1359 1360 <listitem> 1361 <para> 1362 To <emphasis role="bold">remove an attachment</emphasis>, 1363 either select it and click on the 1364 <emphasis role="bold">Remove</emphasis> icon at the bottom, or 1365 right-click on it and select the menu item. 1366 </para> 1367 </listitem> 1368 1369 </itemizedlist> 1370 1371 <para> 1372 Removable media, such as CD/DVDs and floppies, can be changed 1373 while the guest is running. Since the Settings dialog is not 1374 available at that time, you can also access these settings from 1375 the <emphasis role="bold">Devices</emphasis> menu of your virtual 1376 machine window. 1377 </para> 1378 1379 </sect1> 1380 1381 <sect1 id="settings-audio"> 1382 1383 <title>Audio Settings</title> 1384 1385 <para> 1386 The Audio section in a virtual machine's Settings window 1387 determines whether the VM will see a sound card connected, and 1388 whether the audio output should be heard on the host system. 1389 </para> 1390 1391 <para> 1392 If audio is enabled for a guest, you can choose between the 1393 emulation of an Intel AC'97 controller, an Intel HD Audio 1394 controller 1395 1396 <footnote> 1397 1398 <para> 1399 Intel HD Audio support was added with VirtualBox 4.0 because 1400 Windows 7 and later (as well as 64-bit Windows Vista) do not 1401 support the Intel AC'97 controller out of the box. 1402 </para> 1403 1404 </footnote> 1405 1406 or a SoundBlaster 16 card. In any case, you can select what audio 1407 driver VirtualBox will use on the host. 1408 </para> 1409 1410 <para> 1411 On a Linux host, depending on your host configuration, you can 1412 also select between the OSS, ALSA, or the PulseAudio subsystem. On 1413 newer Linux distributions, the PulseAudio subsystem should be 1414 preferred. 1415 </para> 1416 1417 <para> 1418 Since VirtualBox 5.0 only OSS is supported on Solaris hosts. The 1419 "Solaris Audio" audio backend is no longer supported on Solaris 1420 hosts. 1421 </para> 1422 1423 </sect1> 1424 1425 <sect1 id="settings-network"> 1426 1427 <title>Network Settings</title> 1428 1429 <para> 1430 The Network section in a virtual machine's Settings window enables 1431 you to configure how VirtualBox presents virtual network cards to 1432 your VM, and how they operate. 1433 </para> 1434 1435 <para> 1436 When you first create a virtual machine, VirtualBox by default 1437 enables one virtual network card and selects the Network Address 1438 Translation (NAT) mode for it. This way the guest can connect to 1439 the outside world using the host's networking and the outside 1440 world can connect to services on the guest which you choose to 1441 make visible outside of the virtual machine. 1442 </para> 1443 1444 <para> 1445 This default setup is good for the majority of VirtualBox users. 1446 However, VirtualBox is extremely flexible in how it can virtualize 1447 networking. It supports many virtual network cards per virtual 1448 machine, the first four of which can be configured in detail in 1449 the Manager window. Additional network cards can be configured on 1450 the command line with VBoxManage. 1451 </para> 1452 1453 <para> 1454 Because of the vast array of options available, we have dedicated 1455 an entire chapter of this manual to discussing networking 1456 configuration. See <xref linkend="networkingdetails" />. 1457 </para> 1458 1459 </sect1> 1460 1461 <sect1 id="serialports"> 1462 1463 <title>Serial Ports</title> 1464 1465 <para> 1466 VirtualBox fully supports virtual serial ports in a virtual 1467 machine in an easy-to-use manner. 1468 1469 <footnote> 1470 1471 <para> 1472 Serial port support was added with VirtualBox 1.5. 1473 </para> 1474 1475 </footnote> 1476 </para> 1477 1478 <para> 1479 Ever since the original IBM PC, personal computers have been 1480 equipped with one or two serial ports, also called COM ports by 1481 DOS and Windows. Serial ports were commonly used with modems, and 1482 some computer mice used to be connected to serial ports before USB 1483 became commonplace. 1484 </para> 1485 1486 <para> 1487 While serial ports are no longer as ubiquitous as they used to be, 1488 there are still some important uses left for them. For example, 1489 serial ports can be used to set up a primitive network over a 1490 null-modem cable, in case Ethernet is not available. Also, serial 1491 ports are indispensable for system programmers needing to do 1492 kernel debugging, since kernel debugging software usually 1493 interacts with developers over a serial port. With virtual serial 1494 ports, system programmers can do kernel debugging on a virtual 1495 machine instead of needing a real computer to connect to. 1496 </para> 1497 1498 <para> 1499 If a virtual serial port is enabled, the guest operating system 1500 sees a standard 16550A compatible UART device. Both receiving and 1501 transmitting data is supported. How this virtual serial port is 1502 then connected to the host is configurable, and the details depend 1503 on your host operating system. 1504 </para> 1505 1506 <para> 1507 You can use either the graphical user interface or the 1508 command-line <computeroutput>VBoxManage</computeroutput> tool to 1509 set up virtual serial ports. For the latter, see 1510 <xref 1511 linkend="vboxmanage-modifyvm" /> for information on the 1512 <computeroutput>--uart</computeroutput> and 1513 <computeroutput>--uartmode</computeroutput> options. 1514 </para> 1515 1516 <para> 1517 In either case, you can configure up to four virtual serial ports 1518 per virtual machine. For each such device, you will need to 1519 determine the following: 1520 </para> 1521 1522 <orderedlist> 1523 1524 <listitem> 1525 <para> 1526 What kind of serial port the virtual machine should see, by 1527 selecting an I/O base address and interrupt (IRQ). For these, 1528 we recommend you use the traditional values, as follows: 1529 1530 <footnote> 1531 1532 <para> 1533 See, for example, 1534 <ulink 1535 url="http://en.wikipedia.org/wiki/COM_(hardware_interface)">http://en.wikipedia.org/wiki/COM_(hardware_interface)</ulink>. 1536 </para> 1537 1538 </footnote> 1539 </para> 1540 1541 <itemizedlist> 1542 1543 <listitem> 1544 <para> 1545 COM1: I/O base 0x3F8, IRQ 4 1546 </para> 1547 </listitem> 1548 1549 <listitem> 1550 <para> 1551 COM2: I/O base 0x2F8, IRQ 3 1552 </para> 1553 </listitem> 1554 1555 <listitem> 1556 <para> 1557 COM3: I/O base 0x3E8, IRQ 4 1558 </para> 1559 </listitem> 1560 1561 <listitem> 1562 <para> 1563 COM4: I/O base 0x2E8, IRQ 3 1564 </para> 1565 </listitem> 1566 1567 </itemizedlist> 1568 </listitem> 1569 1570 <listitem> 1571 <para> 1572 Then, you will need to determine what this virtual port should 1573 be connected to. For each virtual serial port, you have the 1574 following options: 1575 </para> 1576 1577 <itemizedlist> 1578 1579 <listitem> 1580 <para> 1581 You can configure the virtual serial port to be 1582 "disconnected". This means that the guest will see the 1583 device, but it will behave as if no cable had been 1584 connected to it. 1585 </para> 1586 </listitem> 1587 1588 <listitem> 1589 <para> 1590 You can connect the virtual serial port to a physical 1591 serial port on your host. On a Windows host, this will be 1592 a name like <computeroutput>COM1</computeroutput>. On 1593 Linux or Solaris hosts, it will be a device node like 1594 <computeroutput>/dev/ttyS0</computeroutput>. VirtualBox 1595 will then simply redirect all data received from and sent 1596 to the virtual serial port to the physical device. 1597 </para> 1598 </listitem> 1599 1600 <listitem> 1601 <para> 1602 You can tell VirtualBox to connect the virtual serial port 1603 to a software pipe on the host. This depends on your host 1604 operating system, as follows: 1605 </para> 1606 1607 <itemizedlist> 1608 1609 <listitem> 1610 <para> 1611 On a Windows host, data will be sent and received 1612 through a named pipe. The pipe name must be in the 1613 format 1614 <computeroutput>\\.\pipe\<name></computeroutput> 1615 where <computeroutput><name></computeroutput> 1616 should identify the virtual machine but may be freely 1617 chosen. 1188 1618 </para> 1189 1619 </listitem> 1190 1620 1191 1621 <listitem> 1192 <para>TCP Socket: Useful for forwarding serial traffic over TCP/IP, 1193 acting as a server, or it can act as a TCP client connecting to other 1194 servers. It allows a remote machine to directly connect to the guest's 1195 serial port via TCP. 1622 <para> 1623 On a Mac, Linux, or Solaris host, a local domain 1624 socket is used instead. The socket filename must be 1625 chosen such that the user running VirtualBox has 1626 sufficient privileges to create and write to it. The 1627 <computeroutput>/tmp</computeroutput> directory is 1628 often a good candidate. 1196 1629 </para> 1197 <itemizedlist> 1198 <listitem> 1199 <para>TCP Server: Uncheck the 1200 <emphasis>Connect to existing pipe/socket</emphasis> checkbox and specify 1201 the <emphasis role="bold"><computeroutput>port</computeroutput></emphasis> 1202 number. Typically 23 or 2023. Note that on UNIX-like systems you will 1203 have to use a port a number greater than 1024 for regular users. 1204 </para> 1205 <para> 1206 The client can use software such as <computeroutput>PuTTY</computeroutput> 1207 or the <computeroutput>telnet</computeroutput> command line 1208 tool to access the TCP Server. 1209 </para> 1210 </listitem> 1211 <listitem> 1212 <para>TCP Client: To create a virtual null-modem cable over the Internet or 1213 LAN, the other side can connect via TCP by specifying <emphasis role="bold"> 1214 <computeroutput>hostname:port</computeroutput></emphasis>. The TCP socket 1215 will act in client mode if check the <emphasis>Connect to existing pipe/socket</emphasis> 1216 checkbox. 1217 </para> 1218 </listitem> 1219 </itemizedlist> 1630 1631 <para> 1632 On Linux there are various tools which can connect to 1633 a local domain socket or create one in server mode. 1634 The most flexible tool is 1635 <computeroutput>socat</computeroutput> and is 1636 available as part of many distributions. 1637 </para> 1220 1638 </listitem> 1221 1639 1222 </itemizedlist></para> 1640 </itemizedlist> 1641 1642 <para> 1643 In this case, you can configure whether VirtualBox should 1644 create the named pipe (or, on non-Windows hosts, the local 1645 domain socket) itself or whether VirtualBox should assume 1646 that the pipe or socket exists already. With the 1647 <computeroutput>VBoxManage</computeroutput> command-line 1648 options, this is referred to as "server" or "client" mode, 1649 respectively. 1650 </para> 1651 1652 <para> 1653 For a direct connection between two virtual machines, 1654 corresponding to a null-modem cable, simply configure one 1655 VM to create a pipe/socket and another to attach to it. 1656 </para> 1657 </listitem> 1658 1659 <listitem> 1660 <para> 1661 You can send the virtual serial port output to a file. 1662 This option is very useful for capturing diagnostic output 1663 from a guest. Any file may be used for this purpose, as 1664 long as the user running VirtualBox has sufficient 1665 privileges to create and write to the file. 1666 </para> 1667 </listitem> 1668 1669 <listitem> 1670 <para> 1671 TCP Socket: Useful for forwarding serial traffic over 1672 TCP/IP, acting as a server, or it can act as a TCP client 1673 connecting to other servers. It allows a remote machine to 1674 directly connect to the guest's serial port via TCP. 1675 </para> 1676 1677 <itemizedlist> 1678 1679 <listitem> 1680 <para> 1681 TCP Server: Uncheck the <emphasis>Connect to existing 1682 pipe/socket</emphasis> checkbox and specify the 1683 <emphasis role="bold"><computeroutput>port</computeroutput></emphasis> 1684 number. Typically 23 or 2023. Note that on UNIX-like 1685 systems you will have to use a port a number greater 1686 than 1024 for regular users. 1687 </para> 1688 1689 <para> 1690 The client can use software such as 1691 <computeroutput>PuTTY</computeroutput> or the 1692 <computeroutput>telnet</computeroutput> command line 1693 tool to access the TCP Server. 1694 </para> 1695 </listitem> 1696 1697 <listitem> 1698 <para> 1699 TCP Client: To create a virtual null-modem cable over 1700 the Internet or LAN, the other side can connect via 1701 TCP by specifying 1702 <computeroutput>hostname:port</computeroutput>. The 1703 TCP socket will act in client mode if you check the 1704 <emphasis role="bold">Connect to existing 1705 pipe/socket</emphasis> checkbox. 1706 </para> 1707 </listitem> 1708 1709 </itemizedlist> 1710 </listitem> 1711 1712 </itemizedlist> 1713 </listitem> 1714 1715 </orderedlist> 1716 1717 <para> 1718 Up to four serial ports can be configured per virtual machine, but 1719 you can pick any port numbers out of the above. However, serial 1720 ports cannot reliably share interrupts; if both ports are to be 1721 used at the same time, they must use different interrupt levels, 1722 for example COM1 and COM2, but not COM1 and COM3. 1723 </para> 1724 1725 </sect1> 1726 1727 <sect1 id="usb-support"> 1728 1729 <title>USB Support</title> 1730 1731 <sect2 id="settings-usb"> 1732 1733 <title>USB Settings</title> 1734 1735 <para> 1736 The USB section in a virtual machine's Settings window enables 1737 you to configure VirtualBox's sophisticated USB support. 1738 </para> 1739 1740 <para> 1741 VirtualBox can enable virtual machines to access the USB devices 1742 on your host directly. To achieve this, VirtualBox presents the 1743 guest operating system with a virtual USB controller. As soon as 1744 the guest system starts using a USB device, it will appear as 1745 unavailable on the host. 1746 </para> 1747 1748 <note> 1749 <itemizedlist> 1750 1751 <listitem> 1752 <para> 1753 Be careful with USB devices that are currently in use on 1754 the host! For example, if you allow your guest to connect 1755 to your USB hard disk that is currently mounted on the 1756 host, when the guest is activated, it will be disconnected 1757 from the host without a proper shutdown. This may cause 1758 data loss. 1759 </para> 1760 </listitem> 1761 1762 <listitem> 1763 <para> 1764 Solaris hosts have a few known limitations regarding USB 1765 support. See <xref linkend="KnownIssues" />. 1766 </para> 1767 </listitem> 1768 1769 </itemizedlist> 1770 </note> 1771 1772 <para> 1773 In addition to allowing a guest access to your local USB 1774 devices, VirtualBox even allows your guests to connect to remote 1775 USB devices by use of the VirtualBox Remote Desktop Extension 1776 (VRDE). See <xref linkend="usb-over-rdp" />. 1777 </para> 1778 1779 <para> 1780 In the Settings dialog, you can first configure whether USB is 1781 available in the guest at all, and then choose the level of USB 1782 support: OHCI for USB 1.1, EHCI (which will also enable OHCI) 1783 for USB 2.0, or xHCI for all USB speeds. 1784 </para> 1785 1786 <note> 1787 <para> 1788 The xHCI and EHCI controllers are shipped as a VirtualBox 1789 extension package, which must be installed separately. See 1790 <xref 1791 linkend="intro-installing" />. 1792 </para> 1793 </note> 1794 1795 <para> 1796 When USB support is enabled for a VM, you can determine in 1797 detail which devices will be automatically attached to the 1798 guest. For this, you can create so-called "filters" by 1799 specifying certain properties of the USB device. USB devices 1800 with a matching filter will be automatically passed to the guest 1801 once they are attached to the host. USB devices without a 1802 matching filter can be passed manually to the guest, for example 1803 by using the <emphasis role="bold">Devices</emphasis>, 1804 <emphasis role="bold">USB</emphasis> menu. 1805 </para> 1806 1807 <para> 1808 Clicking on the <emphasis role="bold">+</emphasis> button to the 1809 right of the <emphasis role="bold">USB Device Filters</emphasis> 1810 window creates a new filter. You can give the filter a name, for 1811 later reference, and specify the filter criteria. The more 1812 criteria you specify, the more precisely devices will be 1813 selected. For instance, if you specify only a vendor ID of 046d, 1814 all devices produced by Logitech will be available to the guest. 1815 If you fill in all fields, on the other hand, the filter will 1816 only apply to a particular device model from a particular 1817 vendor, and not even to other devices of the same type with a 1818 different revision and serial number. 1819 </para> 1820 1821 <para> 1822 In detail, the following criteria are available: 1823 </para> 1824 1825 <itemizedlist> 1826 1827 <listitem> 1828 <para> 1829 <emphasis role="bold">Vendor and product ID</emphasis>. With 1830 USB, each vendor of USB products carries an identification 1831 number that is unique world-wide, called the 1832 <emphasis>vendor ID</emphasis>. Similarly, each line of 1833 products is assigned a <emphasis>product ID</emphasis> 1834 number. Both numbers are commonly written in hexadecimal 1835 (that is, they are composed of the numbers 0-9 and the 1836 letters A-F), and a colon separates the vendor from the 1837 product ID. For example, 1838 <computeroutput>046d:c016</computeroutput> stands for 1839 Logitech as a vendor, and the M-UV69a Optical Wheel Mouse 1840 product. 1841 </para> 1842 1843 <para> 1844 Alternatively, you can also specify 1845 <emphasis 1846 role="bold">Manufacturer</emphasis> and 1847 <emphasis 1848 role="bold">Product</emphasis> by name. 1849 </para> 1850 1851 <para> 1852 To list all the USB devices that are connected to your host 1853 machine with their respective vendor IDs and product IDs, 1854 use the following command: 1855 1856 <screen>VBoxManage list usbhost</screen> 1857 </para> 1858 1859 <para> 1860 On Windows, you can also see all USB devices that are 1861 attached to your system in the Device Manager. On Linux, you 1862 can use the <computeroutput>lsusb</computeroutput> command. 1863 </para> 1223 1864 </listitem> 1224 </orderedlist>Up to four serial ports can be configured per virtual 1225 machine, but you can pick any port numbers out of the above. However, 1226 serial ports cannot reliably share interrupts; if both ports are to be 1227 used at the same time, they must use different interrupt levels, for 1228 example COM1 and COM2, but not COM1 and COM3. 1229 </para> 1865 1866 <listitem> 1867 <para> 1868 <emphasis role="bold">Serial number</emphasis>. While vendor 1869 ID and product ID are quite specific to identify USB 1870 devices, if you have two identical devices of the same brand 1871 and product line, you will also need their serial numbers to 1872 filter them out correctly. 1873 </para> 1874 </listitem> 1875 1876 <listitem> 1877 <para> 1878 <emphasis role="bold">Remote</emphasis>. This setting 1879 specifies whether the device will be local only, remote only 1880 (such as over VRDP), or either. 1881 </para> 1882 </listitem> 1883 1884 </itemizedlist> 1885 1886 <para> 1887 On a Windows host, you will need to unplug and reconnect a USB 1888 device to use it after creating a filter for it. 1889 </para> 1890 1891 <para> 1892 As an example, you could create a new USB filter and specify a 1893 vendor ID of 046d (Logitech, Inc), a manufacturer index of 1, 1894 and "not remote". Then any USB devices on the host system 1895 produced by Logitech, Inc with a manufacturer index of 1 will be 1896 visible to the guest system. 1897 </para> 1898 1899 <para> 1900 Several filters can select a single device. For example, a 1901 filter which selects all Logitech devices, and one which selects 1902 a particular webcam. 1903 </para> 1904 1905 <para> 1906 You can deactivate filters without deleting them by clicking in 1907 the checkbox next to the filter name. 1908 </para> 1909 1910 </sect2> 1911 1912 <sect2 id="usb-implementation-notes"> 1913 1914 <title>Implementation Notes for Windows and Linux Hosts</title> 1915 1916 <para> 1917 On Windows hosts, a kernel mode device driver provides USB proxy 1918 support. It implements both a USB monitor, which allows 1919 VirtualBox to capture devices when they are plugged in, and a 1920 USB device driver to claim USB devices for a particular virtual 1921 machine. As opposed to VirtualBox versions before 1.4.0, system 1922 reboots are no longer necessary after installing the driver. 1923 Also, you no longer need to replug devices for VirtualBox to 1924 claim them. 1925 </para> 1926 1927 <para> 1928 On newer Linux hosts, VirtualBox accesses USB devices through 1929 special files in the file system. When VirtualBox is installed, 1930 these are made available to all users in the 1931 <computeroutput>vboxusers</computeroutput> system group. In 1932 order to be able to access USB from guest systems, make sure 1933 that you are a member of this group. 1934 </para> 1935 1936 <para> 1937 On older Linux hosts, USB devices are accessed using the 1938 <computeroutput>usbfs</computeroutput> file system. Therefore, 1939 the user executing VirtualBox needs read and write permission to 1940 the USB file system. Most distributions provide a group (e.g. 1941 <computeroutput>usbusers</computeroutput>) which the VirtualBox 1942 user needs to be added to. Also, VirtualBox can only proxy to 1943 virtual machines USB devices which are not claimed by a Linux 1944 host USB driver. The <computeroutput>Driver=</computeroutput> 1945 entry in <computeroutput>/proc/bus/usb/devices</computeroutput> 1946 will show you which devices are currently claimed. See also 1947 <xref 1948 linkend="ts_usb-linux" /> for details about 1949 <computeroutput>usbfs</computeroutput>. 1950 </para> 1951 1952 </sect2> 1953 1230 1954 </sect1> 1231 1955 1232 <sect1> 1233 <title>USB support</title> 1234 1235 <sect2 id="settings-usb"> 1236 <title>USB settings</title> 1237 1238 <para>The "USB" section in a virtual machine's Settings window allows 1239 you to configure VirtualBox's sophisticated USB support.</para> 1240 1241 <para>VirtualBox can allow virtual machines to access the USB devices on 1242 your host directly. To achieve this, VirtualBox presents the guest 1243 operating system with a virtual USB controller. As soon as the guest 1244 system starts using a USB device, it will appear as unavailable on the 1245 host.<note> 1246 <orderedlist> 1247 <listitem> 1248 <para>Be careful with USB devices that are currently in use on 1249 the host! For example, if you allow your guest to connect to 1250 your USB hard disk that is currently mounted on the host, when 1251 the guest is activated, it will be disconnected from the host 1252 without a proper shutdown. This may cause data loss.</para> 1253 </listitem> 1254 1255 <listitem> 1256 <para>Solaris hosts have a few known limitations regarding USB 1257 support; please see <xref linkend="KnownIssues" />.</para> 1258 </listitem> 1259 </orderedlist> 1260 </note></para> 1261 1262 <para>In addition to allowing a guest access to your local USB devices, 1263 VirtualBox even allows your guests to connect to remote USB devices by 1264 use of the VirtualBox Remote Desktop Extension (VRDE). For details about 1265 this, see <xref linkend="usb-over-rdp" />.</para> 1266 1267 <para>In the Settings dialog, you can first configure whether USB is 1268 available in the guest at all, and then choose the level of USB support: 1269 OHCI for USB 1.1, EHCI (which will also enable OHCI) for USB 2.0, 1270 or xHCI for all USB speeds. <note> 1271 <para>The xHCI and EHCI controllers are shipped as a VirtualBox extension 1272 package, which must be installed separately. See <xref 1273 linkend="intro-installing" /> for more information.</para> 1274 </note></para> 1275 1276 <para>When USB support is enabled for a VM, you can determine in detail 1277 which devices will be automatically attached to the guest. For this, you 1278 can create so-called "filters" by specifying certain properties of 1279 the USB device. USB devices with a matching filter will be automatically 1280 passed to the guest once they are attached to the host. USB devices 1281 without a matching filter can be passed manually to the guest, for 1282 example by using the Devices / USB devices menu.</para> 1283 1284 <para>Clicking on the "+" button to the right of the "USB Device 1285 Filters" window creates a <emphasis role="bold">new filter.</emphasis> 1286 You can give the filter a name (for referencing it later) and specify 1287 the filter criteria. The more criteria you specify, the more precisely 1288 devices will be selected. For instance, if you specify only a vendor ID 1289 of 046d, all devices produced by Logitech will be available to the 1290 guest. If you fill in all fields, on the other hand, the filter will 1291 only apply to a particular device model from a particular vendor, and 1292 not even to other devices of the same type with a different revision and 1293 serial number.</para> 1294 1295 <para>In detail, the following criteria are available:</para> 1296 1297 <orderedlist> 1298 <listitem> 1299 <para><emphasis role="bold">Vendor and product ID.</emphasis> With 1300 USB, each vendor of USB products carries an identification number 1301 that is unique world-wide, the "vendor ID". Similarly, each line of 1302 products is assigned a "product ID" number. Both numbers are 1303 commonly written in hexadecimal (that is, they are composed of the 1304 numbers 0-9 and the letters A-F), and a colon separates the vendor 1305 from the product ID. For example, 1306 <computeroutput>046d:c016</computeroutput> stands for Logitech as a 1307 vendor, and the "M-UV69a Optical Wheel Mouse" product.</para> 1308 1309 <para>Alternatively, you can also specify <emphasis 1310 role="bold">"Manufacturer"</emphasis> and <emphasis 1311 role="bold">"Product"</emphasis> by name.</para> 1312 1313 <para>To list all the USB devices that are connected to your host 1314 machine with their respective vendor and product IDs, you can use 1315 the following command (see <xref linkend="vboxmanage" />): <screen>VBoxManage list usbhost</screen></para> 1316 1317 <para>On Windows, you can also see all USB devices that are attached 1318 to your system in the Device Manager. On Linux, you can use the 1319 <computeroutput>lsusb</computeroutput> command.</para> 1320 </listitem> 1321 1322 <listitem> 1323 <para><emphasis role="bold">Serial number.</emphasis> While vendor 1324 and product ID are already quite specific to identify USB devices, 1325 if you have two identical devices of the same brand and product 1326 line, you will also need their serial numbers to filter them out 1327 correctly.</para> 1328 </listitem> 1329 1330 <listitem> 1331 <para><emphasis role="bold">Remote.</emphasis> This setting 1332 specifies whether the device will be local only, or remote only 1333 (over VRDP), or either.</para> 1334 </listitem> 1335 </orderedlist> 1336 1337 <para>On a Windows host, you will need to unplug and reconnect a USB 1338 device to use it after creating a filter for it.</para> 1339 1340 <para>As an example, you could create a new USB filter and specify a 1341 vendor ID of 046d (Logitech, Inc), a manufacturer index of 1, and "not 1342 remote". Then any USB devices on the host system produced by Logitech, 1343 Inc with a manufacturer index of 1 will be visible to the guest 1344 system.</para> 1345 1346 <para>Several filters can select a single device -- for example, a 1347 filter which selects all Logitech devices, and one which selects a 1348 particular webcam.</para> 1349 1350 <para>You can <emphasis role="bold">deactivate</emphasis> filters 1351 without deleting them by clicking in the checkbox next to the filter 1352 name.</para> 1956 <sect1 id="shared-folders"> 1957 1958 <title>Shared Folders</title> 1959 1960 <para> 1961 Shared folders enable you to easily exchange data between a 1962 virtual machine and your host. This feature requires that the 1963 VirtualBox Guest Additions be installed in a virtual machine and 1964 is described in detail in <xref linkend="sharedfolders" />. 1965 </para> 1966 1967 </sect1> 1968 1969 <sect1 id="user-interface"> 1970 1971 <title>User Interface</title> 1972 1973 <para> 1974 The User Interface section allows you to change certain aspects of 1975 the user interface of this VM. 1976 </para> 1977 1978 <itemizedlist> 1979 1980 <listitem> 1981 <para> 1982 <emphasis role="bold">Menu Bar:</emphasis> This widget enables 1983 you to disable menus by clicking on the menu to release it, 1984 menu entries by unchecking the checkbox of the entry to 1985 disable it and the complete menu bar by unchecking the 1986 rightmost checkbox. 1987 </para> 1988 </listitem> 1989 1990 <listitem> 1991 <para> 1992 <emphasis role="bold">Mini ToolBar:</emphasis> In full screen 1993 or seamless mode, VirtualBox can display a small toolbar that 1994 contains some of the items that are normally available from 1995 the virtual machine's menu bar. This toolbar reduces itself to 1996 a small gray line unless you move the mouse over it. With the 1997 toolbar, you can return from full screen or seamless mode, 1998 control machine execution or enable certain devices. If you do 1999 not want to see the toolbar, disable this setting. 2000 </para> 2001 2002 <para> 2003 The second setting enables you to show the toolbar at the top 2004 of the screen, instead of showing it at the bottom. 2005 </para> 2006 </listitem> 2007 2008 <listitem> 2009 <para> 2010 <emphasis role="bold">Status Bar:</emphasis> This widget 2011 allows you to disable icons on the status bar by unchecking 2012 the checkbox of an icon to disable it, to rearrange icons by 2013 dragging and dropping the icon, and to disable the complete 2014 status bar by unchecking the leftmost checkbox. 2015 </para> 2016 </listitem> 2017 2018 </itemizedlist> 2019 2020 </sect1> 2021 2022 <sect1 id="efi"> 2023 2024 <title>Alternative Firmware (EFI)</title> 2025 2026 <para> 2027 Starting with release 3.1, VirtualBox includes experimental 2028 support for the Extensible Firmware Interface (EFI), which is a 2029 new industry standard intended to eventually replace the legacy 2030 BIOS as the primary interface for bootstrapping computers and 2031 certain system services later. 2032 </para> 2033 2034 <para> 2035 By default, VirtualBox uses the BIOS firmware for virtual 2036 machines. To use EFI for a given virtual machine, you can enable 2037 EFI in the machine's Settings dialog. See 2038 <xref linkend="settings-motherboard" />. Alternatively, use the 2039 <computeroutput>VBoxManage</computeroutput> command line interface 2040 as follows: 2041 </para> 2042 2043 <screen>VBoxManage modifyvm "VM name" --firmware efi</screen> 2044 2045 <para> 2046 To switch back to using the BIOS: 2047 </para> 2048 2049 <screen>VBoxManage modifyvm "VM name" --firmware bios</screen> 2050 2051 <para> 2052 One notable user of EFI is Apple's Mac OS X, but more recent 2053 Linuxes and Windows, starting with Vista, offer special versions 2054 that can be booted using EFI as well. 2055 </para> 2056 2057 <para> 2058 Another possible use of EFI in VirtualBox is development and 2059 testing of EFI applications, without booting any OS. 2060 </para> 2061 2062 <para> 2063 Note that the VirtualBox EFI support is experimental and will be 2064 enhanced as EFI matures and becomes more widespread. Mac OS X, 2065 Linux, and newer Windows guests are known to work fine. Windows 7 2066 guests are unable to boot with the VirtualBox EFI implementation. 2067 </para> 2068 2069 <sect2 id="efividmode"> 2070 2071 <title>Video Modes in EFI</title> 2072 2073 <para> 2074 EFI provides two distinct video interfaces: GOP (Graphics Output 2075 Protocol) and UGA (Universal Graphics Adapter). Modern operating 2076 systems, such as Mac OS X, generally use GOP, while some older 2077 ones still use UGA. VirtualBox provides a configuration option 2078 to control the graphics resolution for both interfaces, making 2079 the difference mostly irrelevant for users. 2080 </para> 2081 2082 <para> 2083 The default resolution is 1024x768. To select a graphics 2084 resolution for EFI, use the following 2085 <computeroutput>VBoxManage</computeroutput> command: 2086 </para> 2087 2088 <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiGraphicsResolution HxV</screen> 2089 2090 <para> 2091 Determine the horizontal resolution H and the vertical 2092 resolution V from the following list of default resolutions: 2093 </para> 2094 2095 <variablelist> 2096 2097 <varlistentry> 2098 <term> 2099 VGA 2100 </term> 2101 2102 <listitem> 2103 <para> 2104 640x480, 32bpp, 4:3 2105 </para> 2106 </listitem> 2107 </varlistentry> 2108 2109 <varlistentry> 2110 <term> 2111 SVGA 2112 </term> 2113 2114 <listitem> 2115 <para> 2116 800x600, 32bpp, 4:3 2117 </para> 2118 </listitem> 2119 </varlistentry> 2120 2121 <varlistentry> 2122 <term> 2123 XGA 2124 </term> 2125 2126 <listitem> 2127 <para> 2128 1024x768, 32bpp, 4:3 2129 </para> 2130 </listitem> 2131 </varlistentry> 2132 2133 <varlistentry> 2134 <term> 2135 XGA+ 2136 </term> 2137 2138 <listitem> 2139 <para> 2140 1152x864, 32bpp, 4:3 2141 </para> 2142 </listitem> 2143 </varlistentry> 2144 2145 <varlistentry> 2146 <term> 2147 HD 2148 </term> 2149 2150 <listitem> 2151 <para> 2152 1280x720, 32bpp, 16:9 2153 </para> 2154 </listitem> 2155 </varlistentry> 2156 2157 <varlistentry> 2158 <term> 2159 WXGA 2160 </term> 2161 2162 <listitem> 2163 <para> 2164 1280x800, 32bpp, 16:10 2165 </para> 2166 </listitem> 2167 </varlistentry> 2168 2169 <varlistentry> 2170 <term> 2171 SXGA 2172 </term> 2173 2174 <listitem> 2175 <para> 2176 1280x1024, 32bpp, 5:4 2177 </para> 2178 </listitem> 2179 </varlistentry> 2180 2181 <varlistentry> 2182 <term> 2183 SXGA+ 2184 </term> 2185 2186 <listitem> 2187 <para> 2188 1400x1050, 32bpp, 4:3 2189 </para> 2190 </listitem> 2191 </varlistentry> 2192 2193 <varlistentry> 2194 <term> 2195 WXGA+ 2196 </term> 2197 2198 <listitem> 2199 <para> 2200 1440x900, 32bpp, 16:10 2201 </para> 2202 </listitem> 2203 </varlistentry> 2204 2205 <varlistentry> 2206 <term> 2207 HD+ 2208 </term> 2209 2210 <listitem> 2211 <para> 2212 1600x900, 32bpp, 16:9 2213 </para> 2214 </listitem> 2215 </varlistentry> 2216 2217 <varlistentry> 2218 <term> 2219 UXGA 2220 </term> 2221 2222 <listitem> 2223 <para> 2224 1600x1200, 32bpp, 4:3 2225 </para> 2226 </listitem> 2227 </varlistentry> 2228 2229 <varlistentry> 2230 <term> 2231 WSXGA+ 2232 </term> 2233 2234 <listitem> 2235 <para> 2236 1680x1050, 32bpp, 16:10 2237 </para> 2238 </listitem> 2239 </varlistentry> 2240 2241 <varlistentry> 2242 <term> 2243 Full HD 2244 </term> 2245 2246 <listitem> 2247 <para> 2248 1920x1080, 32bpp, 16:9 2249 </para> 2250 </listitem> 2251 </varlistentry> 2252 2253 <varlistentry> 2254 <term> 2255 WUXGA 2256 </term> 2257 2258 <listitem> 2259 <para> 2260 1920x1200, 32bpp, 16:10 2261 </para> 2262 </listitem> 2263 </varlistentry> 2264 2265 <varlistentry> 2266 <term> 2267 DCI 2K 2268 </term> 2269 2270 <listitem> 2271 <para> 2272 2048x1080, 32bpp, 19:10 2273 </para> 2274 </listitem> 2275 </varlistentry> 2276 2277 <varlistentry> 2278 <term> 2279 Full HD+ 2280 </term> 2281 2282 <listitem> 2283 <para> 2284 2160x1440, 32bpp, 3:2 2285 </para> 2286 </listitem> 2287 </varlistentry> 2288 2289 <varlistentry> 2290 <term> 2291 Unnamed 2292 </term> 2293 2294 <listitem> 2295 <para> 2296 2304x1440, 32bpp, 16:10 2297 </para> 2298 </listitem> 2299 </varlistentry> 2300 2301 <varlistentry> 2302 <term> 2303 QHD 2304 </term> 2305 2306 <listitem> 2307 <para> 2308 2560x1440, 32bpp, 16:9 2309 </para> 2310 </listitem> 2311 </varlistentry> 2312 2313 <varlistentry> 2314 <term> 2315 WQXGA 2316 </term> 2317 2318 <listitem> 2319 <para> 2320 2560x1600, 32bpp, 16:10 2321 </para> 2322 </listitem> 2323 </varlistentry> 2324 2325 <varlistentry> 2326 <term> 2327 QWXGA+ 2328 </term> 2329 2330 <listitem> 2331 <para> 2332 2880x1800, 32bpp, 16:10 2333 </para> 2334 </listitem> 2335 </varlistentry> 2336 2337 <varlistentry> 2338 <term> 2339 QHD+ 2340 </term> 2341 2342 <listitem> 2343 <para> 2344 3200x1800, 32bpp, 16:9 2345 </para> 2346 </listitem> 2347 </varlistentry> 2348 2349 <varlistentry> 2350 <term> 2351 WQSXGA 2352 </term> 2353 2354 <listitem> 2355 <para> 2356 3200x2048, 32bpp, 16:10 2357 </para> 2358 </listitem> 2359 </varlistentry> 2360 2361 <varlistentry> 2362 <term> 2363 4K UHD 2364 </term> 2365 2366 <listitem> 2367 <para> 2368 3840x2160, 32bpp, 16:9 2369 </para> 2370 </listitem> 2371 </varlistentry> 2372 2373 <varlistentry> 2374 <term> 2375 WQUXGA 2376 </term> 2377 2378 <listitem> 2379 <para> 2380 3840x2400, 32bpp, 16:10 2381 </para> 2382 </listitem> 2383 </varlistentry> 2384 2385 <varlistentry> 2386 <term> 2387 DCI 4K 2388 </term> 2389 2390 <listitem> 2391 <para> 2392 4096x2160, 32bpp, 19:10 2393 </para> 2394 </listitem> 2395 </varlistentry> 2396 2397 <varlistentry> 2398 <term> 2399 HXGA 2400 </term> 2401 2402 <listitem> 2403 <para> 2404 4096x3072, 32bpp, 4:3 2405 </para> 2406 </listitem> 2407 </varlistentry> 2408 2409 <varlistentry> 2410 <term> 2411 UHD+ 2412 </term> 2413 2414 <listitem> 2415 <para> 2416 5120x2880, 32bpp, 16:9 2417 </para> 2418 </listitem> 2419 </varlistentry> 2420 2421 <varlistentry> 2422 <term> 2423 WHXGA 2424 </term> 2425 2426 <listitem> 2427 <para> 2428 5120x3200, 32bpp, 16:10 2429 </para> 2430 </listitem> 2431 </varlistentry> 2432 2433 <varlistentry> 2434 <term> 2435 WHSXGA 2436 </term> 2437 2438 <listitem> 2439 <para> 2440 6400x4096, 32bpp, 16:10 2441 </para> 2442 </listitem> 2443 </varlistentry> 2444 2445 <varlistentry> 2446 <term> 2447 HUXGA 2448 </term> 2449 2450 <listitem> 2451 <para> 2452 6400x4800, 32bpp, 4:3 2453 </para> 2454 </listitem> 2455 </varlistentry> 2456 2457 <varlistentry> 2458 <term> 2459 8K UHD2 2460 </term> 2461 2462 <listitem> 2463 <para> 2464 7680x4320, 32bpp, 16:9 2465 </para> 2466 </listitem> 2467 </varlistentry> 2468 2469 </variablelist> 2470 2471 <para> 2472 If this list of default resolution does not cover your needs, 2473 see <xref linkend="customvesa" />. Note that the color depth 2474 value specified in a custom video mode must be specified (8, 16, 2475 24 and 32 are accepted), but it is silently assumed to be 32 by 2476 EFI. 2477 </para> 2478 2479 <para> 2480 The EFI default video resolution settings can only be changed 2481 when the VM is powered off. 2482 </para> 2483 1353 2484 </sect2> 1354 2485 1355 <sect2> 1356 <title>Implementation notes for Windows and Linux hosts</title> 1357 1358 <para>On Windows hosts, a kernel mode device driver provides USB proxy 1359 support. It implements both a USB monitor, which allows VirtualBox to 1360 capture devices when they are plugged in, and a USB device driver to 1361 claim USB devices for a particular virtual machine. As opposed to 1362 VirtualBox versions before 1.4.0, system reboots are no longer necessary 1363 after installing the driver. Also, you no longer need to replug devices 1364 for VirtualBox to claim them.</para> 1365 1366 <para>On newer Linux hosts, VirtualBox accesses USB devices through 1367 special files in the file system. When VirtualBox is installed, these 1368 are made available to all users in the 1369 <computeroutput>vboxusers</computeroutput> system group. In order to be 1370 able to access USB from guest systems, make sure that you are a member 1371 of this group.</para> 1372 1373 <para>On older Linux hosts, USB devices are accessed using the 1374 <computeroutput>usbfs</computeroutput> file system. Therefore, the user 1375 executing VirtualBox needs read and write permission to the USB file 1376 system. Most distributions provide a group (e.g. 1377 <computeroutput>usbusers</computeroutput>) which the VirtualBox user 1378 needs to be added to. Also, VirtualBox can only proxy to virtual 1379 machines USB devices which are not claimed by a Linux host USB driver. 1380 The <computeroutput>Driver=</computeroutput> entry in 1381 <computeroutput>/proc/bus/usb/devices</computeroutput> will show you 1382 which devices are currently claimed. Please refer to <xref 1383 linkend="ts_usb-linux" /> also for details about 1384 <computeroutput>usbfs</computeroutput>.</para> 2486 <sect2 id="efibootargs"> 2487 2488 <title>Specifying Boot Arguments</title> 2489 2490 <para> 2491 It is currently not possible to manipulate EFI variables from 2492 within a running guest. For example, setting the "boot-args" 2493 variable by running the <computeroutput>nvram</computeroutput> 2494 tool in a Mac OS X guest will not work. As an alternative way, 2495 "VBoxInternal2/EfiBootArgs" extradata can be passed to a VM in 2496 order to set the "boot-args" variable. To change the "boot-args" 2497 EFI variable: 2498 2499 <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiBootArgs <value></screen> 2500 </para> 2501 1385 2502 </sect2> 2503 1386 2504 </sect1> 1387 2505 1388 <sect1>1389 <title>Shared folders</title>1390 1391 <para>Shared folders allow you to easily exchange data between a virtual1392 machine and your host. This feature requires that the VirtualBox Guest1393 Additions be installed in a virtual machine and is described in detail in1394 <xref linkend="sharedfolders" />.</para>1395 </sect1>1396 1397 <sect1>1398 <title>User Interface</title>1399 1400 <para>The "User Interface" section allows you to change certain aspects of1401 the user interface of this VM.</para>1402 1403 <para><glosslist>1404 <glossentry>1405 <glossterm>Menu Bar</glossterm>1406 <glossdef>1407 <para>This widget allows you to disable certain menus (click at1408 the menu to release it), certain menu entries (uncheck the1409 checkbox of the entry to disable it) and the complete menu bar1410 (uncheck the rightmost checkbox).1411 </para>1412 </glossdef>1413 </glossentry>1414 1415 <glossentry>1416 <glossterm>Mini ToolBar</glossterm>1417 <glossdef>1418 <para>In full screen or seamless mode, VirtualBox can display a1419 small toolbar that contains some of the items that are normally1420 available from the virtual machine's menu bar. This toolbar1421 reduces itself to a small gray line unless you move the mouse1422 over it. With the toolbar, you can return from full screen or1423 seamless mode, control machine execution or enable certain1424 devices. If you don't want to see the toolbar, disable this1425 setting.</para>1426 <para>The second setting allows to show the toolbar at the top1427 of the screen instead of showing it at the bottom.</para>1428 </glossdef>1429 </glossentry>1430 1431 <glossentry>1432 <glossterm>Status Bar</glossterm>1433 <glossdef>1434 <para>This widget allows you to disable certain icons of the1435 status bar (uncheck the checkbox of an icon to disable it),1436 to re-arrange icons (drag and drop the icon) and to disable the1437 complete status bar (uncheck the leftmost checkbox).</para>1438 </glossdef>1439 </glossentry>1440 </glosslist></para>1441 1442 </sect1>1443 1444 <sect1 id="efi">1445 <title>Alternative firmware (EFI)</title>1446 1447 <para>Starting with release 3.1, VirtualBox includes experimental support1448 for the Extensible Firmware Interface (EFI), which is a new industry1449 standard intended to eventually replace the legacy BIOS as the primary1450 interface for bootstrapping computers and certain system services1451 later.</para>1452 1453 <para>By default, VirtualBox uses the BIOS firmware for virtual machines.1454 To use EFI for a given virtual machine, you can enable EFI in the1455 machine's "Settings" dialog (see <xref linkend="settings-motherboard" />).1456 Alternatively, use the <computeroutput>VBoxManage</computeroutput> command1457 line interface like this: <screen>VBoxManage modifyvm "VM name" --firmware efi</screen>1458 To switch back to using the BIOS, use: <screen>VBoxManage modifyvm "VM name" --firmware bios</screen>One1459 notable user of EFI is Apple's Mac OS X, but more recent Linuxes1460 and Windows (starting with Vista) offer special versions that can be1461 booted using EFI as well.</para>1462 1463 <para>Another possible use of EFI in VirtualBox is development and testing1464 of EFI applications, without booting any OS.</para>1465 1466 <para>Note that the VirtualBox EFI support is experimental and will be1467 enhanced as EFI matures and becomes more widespread. Mac OS X, Linux1468 and newer Windows guests are known to work fine. Windows 7 guests are1469 unable to boot with the VirtualBox EFI implementation.</para>1470 1471 <sect2 id="efividmode">1472 <title>Video modes in EFI</title>1473 1474 <para>EFI provides two distinct video interfaces: GOP (Graphics Output1475 Protocol) and UGA (Universal Graphics Adapter). Modern operating systems1476 (such as Mac OS X) generally use GOP, while some older ones still use1477 UGA. VirtualBox provides a configuration option to control the1478 graphics resolution for both interfaces, making the difference mostly1479 irrelevant for users.</para>1480 1481 <para>The default resolution is 1024x768. To select a graphics resolution1482 for EFI, use the following <computeroutput>VBoxManage</computeroutput>1483 command:1484 <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiGraphicsResolution HxV</screen>1485 Determine the horizontal resolution H and the vertical resolution V from1486 the following list of default resolutions:</para>1487 1488 <glosslist>1489 <glossentry>1490 <glossterm>VGA</glossterm>1491 <glossdef>1492 <para>640x480, 32bpp, 4:3</para>1493 </glossdef>1494 </glossentry>1495 1496 <glossentry>1497 <glossterm>SVGA</glossterm>1498 <glossdef>1499 <para>800x600, 32bpp, 4:3</para>1500 </glossdef>1501 </glossentry>1502 1503 <glossentry>1504 <glossterm>XGA</glossterm>1505 <glossdef>1506 <para>1024x768, 32bpp, 4:3</para>1507 </glossdef>1508 </glossentry>1509 1510 <glossentry>1511 <glossterm>XGA+</glossterm>1512 <glossdef>1513 <para>1152x864, 32bpp, 4:3</para>1514 </glossdef>1515 </glossentry>1516 1517 <glossentry>1518 <glossterm>HD</glossterm>1519 <glossdef>1520 <para>1280x720, 32bpp, 16:9</para>1521 </glossdef>1522 </glossentry>1523 1524 <glossentry>1525 <glossterm>WXGA</glossterm>1526 <glossdef>1527 <para>1280x800, 32bpp, 16:10</para>1528 </glossdef>1529 </glossentry>1530 1531 <glossentry>1532 <glossterm>SXGA</glossterm>1533 <glossdef>1534 <para>1280x1024, 32bpp, 5:4</para>1535 </glossdef>1536 </glossentry>1537 1538 <glossentry>1539 <glossterm>SXGA+</glossterm>1540 <glossdef>1541 <para>1400x1050, 32bpp, 4:3</para>1542 </glossdef>1543 </glossentry>1544 1545 <glossentry>1546 <glossterm>WXGA+</glossterm>1547 <glossdef>1548 <para>1440x900, 32bpp, 16:10</para>1549 </glossdef>1550 </glossentry>1551 1552 <glossentry>1553 <glossterm>HD+</glossterm>1554 <glossdef>1555 <para>1600x900, 32bpp, 16:9</para>1556 </glossdef>1557 </glossentry>1558 1559 <glossentry>1560 <glossterm>UXGA</glossterm>1561 <glossdef>1562 <para>1600x1200, 32bpp, 4:3</para>1563 </glossdef>1564 </glossentry>1565 1566 <glossentry>1567 <glossterm>WSXGA+</glossterm>1568 <glossdef>1569 <para>1680x1050, 32bpp, 16:10</para>1570 </glossdef>1571 </glossentry>1572 1573 <glossentry>1574 <glossterm>Full HD</glossterm>1575 <glossdef>1576 <para>1920x1080, 32bpp, 16:9</para>1577 </glossdef>1578 </glossentry>1579 1580 <glossentry>1581 <glossterm>WUXGA</glossterm>1582 <glossdef>1583 <para>1920x1200, 32bpp, 16:10</para>1584 </glossdef>1585 </glossentry>1586 1587 <glossentry>1588 <glossterm>DCI 2K</glossterm>1589 <glossdef>1590 <para>2048x1080, 32bpp, 19:10</para>1591 </glossdef>1592 </glossentry>1593 1594 <glossentry>1595 <glossterm>Full HD+</glossterm>1596 <glossdef>1597 <para>2160x1440, 32bpp, 3:2</para>1598 </glossdef>1599 </glossentry>1600 1601 <glossentry>1602 <glossterm>Unnamed</glossterm>1603 <glossdef>1604 <para>2304x1440, 32bpp, 16:10</para>1605 </glossdef>1606 </glossentry>1607 1608 <glossentry>1609 <glossterm>QHD</glossterm>1610 <glossdef>1611 <para>2560x1440, 32bpp, 16:9</para>1612 </glossdef>1613 </glossentry>1614 1615 <glossentry>1616 <glossterm>WQXGA</glossterm>1617 <glossdef>1618 <para>2560x1600, 32bpp, 16:10</para>1619 </glossdef>1620 </glossentry>1621 1622 <glossentry>1623 <glossterm>QWXGA+</glossterm>1624 <glossdef>1625 <para>2880x1800, 32bpp, 16:10</para>1626 </glossdef>1627 </glossentry>1628 1629 <glossentry>1630 <glossterm>QHD+</glossterm>1631 <glossdef>1632 <para>3200x1800, 32bpp, 16:9</para>1633 </glossdef>1634 </glossentry>1635 1636 <glossentry>1637 <glossterm>WQSXGA</glossterm>1638 <glossdef>1639 <para>3200x2048, 32bpp, 16:10</para>1640 </glossdef>1641 </glossentry>1642 1643 <glossentry>1644 <glossterm>4K UHD</glossterm>1645 <glossdef>1646 <para>3840x2160, 32bpp, 16:9</para>1647 </glossdef>1648 </glossentry>1649 1650 <glossentry>1651 <glossterm>WQUXGA</glossterm>1652 <glossdef>1653 <para>3840x2400, 32bpp, 16:10</para>1654 </glossdef>1655 </glossentry>1656 1657 <glossentry>1658 <glossterm>DCI 4K</glossterm>1659 <glossdef>1660 <para>4096x2160, 32bpp, 19:10</para>1661 </glossdef>1662 </glossentry>1663 1664 <glossentry>1665 <glossterm>HXGA</glossterm>1666 <glossdef>1667 <para>4096x3072, 32bpp, 4:3</para>1668 </glossdef>1669 </glossentry>1670 1671 <glossentry>1672 <glossterm>UHD+</glossterm>1673 <glossdef>1674 <para>5120x2880, 32bpp, 16:9</para>1675 </glossdef>1676 </glossentry>1677 1678 <glossentry>1679 <glossterm>WHXGA</glossterm>1680 <glossdef>1681 <para>5120x3200, 32bpp, 16:10</para>1682 </glossdef>1683 </glossentry>1684 1685 <glossentry>1686 <glossterm>WHSXGA</glossterm>1687 <glossdef>1688 <para>6400x4096, 32bpp, 16:10</para>1689 </glossdef>1690 </glossentry>1691 1692 <glossentry>1693 <glossterm>HUXGA</glossterm>1694 <glossdef>1695 <para>6400x4800, 32bpp, 4:3</para>1696 </glossdef>1697 </glossentry>1698 1699 <glossentry>1700 <glossterm>8K UHD2</glossterm>1701 <glossdef>1702 <para>7680x4320, 32bpp, 16:9</para>1703 </glossdef>1704 </glossentry>1705 1706 </glosslist>1707 1708 <para>If this list of default resolution does not cover your needs, see1709 <xref linkend="customvesa" />. Note that the color depth value specified1710 in a custom video mode must be specified (8, 16, 24 and 32 are accepted),1711 but it is silently assumed to be 32 by EFI.</para>1712 1713 <para>The EFI default video resolution settings can only be changed when1714 the VM is powered off.</para>1715 </sect2>1716 1717 <sect2 id="efibootargs">1718 <title>Specifying boot arguments</title>1719 1720 <para>It is currently not possible to manipulate EFI variables from within a running guest1721 (e.g., setting the "boot-args" variable by running the <computeroutput>nvram</computeroutput> tool in a Mac OS X guest will not work).1722 As an alternative way, "VBoxInternal2/EfiBootArgs" extradata can be passed to a VM in order to set1723 the "boot-args" variable. To change the "boot-args" EFI variable:1724 <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiBootArgs <value></screen>1725 </para>1726 </sect2>1727 1728 </sect1>1729 2506 </chapter> -
trunk/doc/manual/en_US/user_ChangeLog.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 4 8 <chapter id="ChangeLog"> 5 <title>Change log</title>9 <title>Change Log</title> 6 10 7 11 <para>This section summarizes the changes between VirtualBox versions. Note 8 that this change log is not exhaustive ;not all changes are listed.</para>12 that this change log is not exhaustive and not all changes are listed.</para> 9 13 10 14 <para>VirtualBox version numbers consist of three numbers separated by dots … … 14 18 In addition, each build contains a revision number.</para> 15 19 16 <xi:include href=" @VBOX_PATH_MANUAL_SRC@/user_ChangeLogImpl.xml" xpointer="xpointer(/chapter/*)"20 <xi:include href="user_ChangeLogImpl.xml" xpointer="xpointer(/chapter/*)" 17 21 xmlns:xi="http://www.w3.org/2001/XInclude" /> 18 22 19 <sect1 >20 <title>Older Change log details</title>23 <sect1 id="change-log-older"> 24 <title>Older Change Log Details</title> 21 25 <para>With VirtualBox 5.0, changelog information for versions before 4.3 22 26 was removed in order to save space. To access this information, please -
trunk/doc/manual/en_US/user_Frontends.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="remotevm"> 5 <title>Remote virtual machines</title> 8 9 <title>Remote Virtual Machines</title> 6 10 7 11 <sect1 id="vrde"> 8 <title>Remote display (VRDP support)</title> 9 10 <para>VirtualBox can display virtual machines remotely, meaning that a 11 virtual machine can execute on one computer even though the machine will be 12 displayed on a second computer, and the machine will be controlled from 13 there as well, as if the virtual machine was running on that second 14 computer.</para> 15 16 <para>For maximum flexibility, starting with VirtualBox 4.0, VirtualBox 17 implements remote machine display through a generic extension interface, 18 the VirtualBox Remote Desktop Extension (VRDE). The base open-source 19 VirtualBox package only provides this interface, while implementations can 20 be supplied by third parties with VirtualBox extension packages, which 21 must be installed separately from the base package. See <xref 22 linkend="intro-installing" /> for more information.</para> 23 24 <para>Oracle provides support for the <emphasis role="bold">VirtualBox 25 Remote Display Protocol (VRDP)</emphasis> in such a VirtualBox extension 26 package. When this package is installed, VirtualBox versions 4.0 and later 27 support VRDP the same way as binary (non-open-source) versions of 28 VirtualBox before 4.0 did.</para> 29 30 <para>VRDP is a backwards-compatible extension to Microsoft's Remote 31 Desktop Protocol (RDP). As a result, you can use any standard RDP client 32 to control the remote VM.</para> 33 34 <para>Even when the extension is installed, the VRDP server is disabled by 35 default. It can easily be enabled on a per-VM basis either in the 36 VirtualBox Manager in the "Display" settings (see <xref 37 linkend="settings-display" />) or with 38 <computeroutput>VBoxManage</computeroutput>:<screen>VBoxManage modifyvm "VM name" --vrde on</screen></para> 39 40 <para>By default, the VRDP server uses TCP port 41 <computeroutput>3389</computeroutput>. You will need to change the 42 default port if you run more than one VRDP server, since the port can 43 only be used by one server at a time; you might also need to change it 44 on Windows hosts since the default port might already be used by the RDP 45 server that is built into Windows itself. Ports 5000 through 5050 are 46 typically not used and might be a good choice.</para> 47 48 <para>The port can be changed either in the "Display" settings of the 49 graphical user interface or with 50 <computeroutput>--vrdeport</computeroutput> option of the 51 <computeroutput>VBoxManage modifyvm</computeroutput> command. You can 52 specify a comma-separated list of ports or ranges of ports. Use a dash 53 between two port numbers to specify a range. The VRDP server will bind 54 to <emphasis role="bold">one</emphasis> of available ports from the 55 specified list. For example, <computeroutput>VBoxManage modifyvm "VM 56 name" --vrdeport 5000,5010-5012</computeroutput> will configure the 57 server to bind to one of the ports 5000, 5010, 5011 or 5012. See <xref 58 linkend="vboxmanage-modifyvm-vrde" /> for details.</para> 59 60 <para>The actual port used by a running VM can be either queried with 61 <computeroutput>VBoxManage showvminfo</computeroutput> command or seen 62 in the GUI on the "Runtime" tab of the "Session Information Dialog", 63 which is accessible via the "Machine" menu of the VM window.</para> 64 65 <para>Support for IPv6 has been implemented in VirtualBox 4.3. 66 If the host OS supports IPv6 the VRDP server will automatically 67 listen for IPv6 connections in addition to IPv4.</para> 12 13 <title>Remote Display (VRDP Support)</title> 14 15 <para> 16 VirtualBox can display virtual machines remotely, meaning that a 17 virtual machine can execute on one computer even though the 18 machine will be displayed on a second computer, and the machine 19 will be controlled from there as well, as if the virtual machine 20 was running on that second computer. 21 </para> 22 23 <para> 24 For maximum flexibility, starting with VirtualBox 4.0, VirtualBox 25 implements remote machine display through a generic extension 26 interface, the VirtualBox Remote Desktop Extension (VRDE). The 27 base open source VirtualBox package only provides this interface, 28 while implementations can be supplied by third parties with 29 VirtualBox extension packages, which must be installed separately 30 from the base package. See 31 <xref 32 linkend="intro-installing" />. 33 </para> 34 35 <para> 36 Oracle provides support for the VirtualBox Remote Display Protocol 37 (VRDP) in such a VirtualBox extension package. When this package 38 is installed, VirtualBox versions 4.0 and later support VRDP the 39 same way as binary (non-open source) versions of VirtualBox before 40 4.0 did. 41 </para> 42 43 <para> 44 VRDP is a backwards-compatible extension to Microsoft's Remote 45 Desktop Protocol (RDP). As a result, you can use any standard RDP 46 client to control the remote VM. 47 </para> 48 49 <para> 50 Even when the extension is installed, the VRDP server is disabled 51 by default. It can easily be enabled on a per-VM basis either in 52 the VirtualBox Manager in the Display settings, see 53 <xref 54 linkend="settings-display" />, or with 55 <computeroutput>VBoxManage</computeroutput>: 56 </para> 57 58 <screen>VBoxManage modifyvm "VM name" --vrde on</screen> 59 60 <para> 61 By default, the VRDP server uses TCP port 62 <computeroutput>3389</computeroutput>. You will need to change the 63 default port if you run more than one VRDP server, since the port 64 can only be used by one server at a time. You might also need to 65 change it on Windows hosts since the default port might already be 66 used by the RDP server that is built into Windows itself. Ports 67 5000 through 5050 are typically not used and might be a good 68 choice. 69 </para> 70 71 <para> 72 The port can be changed either in the Display settings of the 73 graphical user interface or with 74 <computeroutput>--vrdeport</computeroutput> option of the 75 <computeroutput>VBoxManage modifyvm</computeroutput> command. You 76 can specify a comma-separated list of ports or ranges of ports. 77 Use a dash between two port numbers to specify a range. The VRDP 78 server will bind to <emphasis>one</emphasis> of the available 79 ports from the specified list. For example, 80 <computeroutput>VBoxManage modifyvm "VM name" --vrdeport 81 5000,5010-5012</computeroutput> will configure the server to bind 82 to one of the ports 5000, 5010, 5011, or 5012. See 83 <xref 84 linkend="vboxmanage-modifyvm-vrde" />. 85 </para> 86 87 <para> 88 The actual port used by a running VM can be either queried with 89 the <computeroutput>VBoxManage showvminfo</computeroutput> command 90 or seen in the GUI on the Runtime tab of the Session Information 91 dialog, which is accessible via the Machine menu of the VM window. 92 </para> 93 94 <para> 95 Support for IPv6 has been implemented in VirtualBox 4.3. If the 96 host OS supports IPv6 the VRDP server will automatically listen 97 for IPv6 connections in addition to IPv4. 98 </para> 68 99 69 100 <sect2 id="rdp-viewers"> 70 <title>Common third-party RDP viewers</title> 71 72 <para>Since VRDP is backwards-compatible to RDP, you can use any 73 standard RDP viewer to connect to such a remote virtual machine 74 (examples follow below). For this to work, you must specify the 75 <emphasis role="bold">IP address</emphasis> of your 76 <emphasis>host</emphasis> system (not of the virtual machine!) as the 77 server address to connect to, as well as the <emphasis role="bold">port 78 number</emphasis> that the VRDP server is using.</para> 79 80 <para>Here follow examples for the most common RDP viewers:<itemizedlist> 81 <listitem> 82 <para>On Windows, you can use the Microsoft Terminal Services 83 Connector (<computeroutput>mstsc.exe</computeroutput>) that ships 84 with Windows. You can start it by bringing up the "Run" dialog 85 (press the Windows key and "R") and typing "mstsc". You can also 86 find it under "Start" → "All Programs" → "Accessories" 87 → "Remote Desktop Connection". If you use the "Run" dialog, 88 you can type in options directly:<screen>mstsc 1.2.3.4:3389</screen></para> 89 90 <para>Replace <computeroutput>1.2.3.4</computeroutput> with the host IP address, 91 and <computeroutput>3389</computeroutput> with a different port if necessary.</para> 92 93 <note> 94 <para>IPv6 address must be enclosed in square brackets to specify a port. 95 For example: <computeroutput>mstsc [fe80::1:2:3:4]:3389</computeroutput></para> 96 </note> 97 98 <note> 99 <para>When connecting to localhost in order to test the 100 connection, the addresses 101 <computeroutput>localhost</computeroutput> and 102 <computeroutput>127.0.0.1</computeroutput> might not work using 103 <computeroutput>mstsc.exe</computeroutput>. Instead, the address 104 <computeroutput>127.0.0.2[:3389]</computeroutput> has to be 105 used.</para> 106 </note> 107 </listitem> 108 109 <listitem> 110 <para>On other systems, you can use the standard open-source 111 <computeroutput>rdesktop</computeroutput> program. This ships with 112 most Linux distributions, but VirtualBox also comes with a 113 modified variant of rdesktop for remote USB support (see <xref 114 linkend="usb-over-rdp" /> below).</para> 115 116 <para>With rdesktop, use a command line such as the 117 following:<screen>rdesktop -a 16 -N 1.2.3.4:3389</screen></para> 118 119 <para>As said for the Microsoft viewer above, replace <computeroutput>1.2.3.4</computeroutput> 120 with the host IP address, and <computeroutput>3389</computeroutput> with a different port if 121 necessary. The <computeroutput>-a 16</computeroutput> option 122 requests a color depth of 16 bits per pixel, which we recommend. 123 (For best performance, after installation of the guest operating 124 system, you should set its display color depth to the same value). 125 The <computeroutput>-N</computeroutput> option enables use of the 126 NumPad keys.</para> 127 </listitem> 128 129 <listitem> 130 <para>If you run the KDE desktop, you might prefer 131 <computeroutput>krdc</computeroutput>, the KDE RDP viewer. The 132 command line would look like this:<screen>krdc rdp://1.2.3.4:3389</screen></para> 133 134 <para>Again, replace <computeroutput>1.2.3.4</computeroutput> with the host IP address, 135 and <computeroutput>3389</computeroutput> with a different port if necessary. 136 The "rdp://" bit is required with krdc to switch it into RDP mode.</para> 137 </listitem> 138 139 <listitem> 140 <para>With Sun Ray thin clients you can use 141 <computeroutput>uttsc</computeroutput>, which is part of the 142 Sun Ray Windows Connector package. See the corresponding 143 documentation for details.</para> 144 </listitem> 145 </itemizedlist></para> 146 </sect2> 147 148 <sect2 id="vboxheadless"> 149 <title>VBoxHeadless, the remote desktop server</title> 150 151 <para>While any VM started from the VirtualBox Manager is capable of 152 running virtual machines remotely, it is not convenient to have to run 153 the full-fledged GUI if you never want to have VMs displayed locally in 154 the first place. In particular, if you are running server hardware whose 155 only purpose is to host VMs, and all your VMs are supposed to run 156 remotely over VRDP, then it is pointless to have a graphical user 157 interface on the server at all -- especially since, on a Linux or 158 Solaris host, the VirtualBox manager comes with dependencies on the Qt 159 and SDL libraries. This is inconvenient if you would rather not have the 160 X Window system on your server at all.</para> 161 162 <para>VirtualBox therefore comes with yet another front-end called 163 <computeroutput>VBoxHeadless</computeroutput>, which produces no visible 164 output on the host at all, but still can deliver VRDP data. This 165 front-end has no dependencies on the X Window system on Linux and 166 Solaris hosts.<footnote> 167 <para>Before VirtualBox 1.6, the headless server was called 168 <computeroutput>VBoxVRDP</computeroutput>. For the sake of backwards 169 compatibility, the VirtualBox installation still installs an 170 executable with that name as well.</para> 171 </footnote></para> 172 173 <para>To start a virtual machine with 174 <computeroutput>VBoxHeadless</computeroutput>, you have three 175 options:</para> 101 102 <title>Common Third-Party RDP Viewers</title> 103 104 <para> 105 Since VRDP is backwards-compatible to RDP, you can use any 106 standard RDP viewer to connect to such a remote virtual machine. 107 For this to work, you must specify the IP address of your 108 <emphasis>host</emphasis> system, not of the virtual machine, as 109 the server address to connect to. You must also specify the port 110 number that the VRDP server is using. 111 </para> 112 113 <para> 114 The following examples are for the most common RDP viewers: 115 </para> 176 116 177 117 <itemizedlist> 178 <listitem> 179 <para>You can use <screen>VBoxManage startvm "VM name" --type headless</screen>The 180 extra <computeroutput>--type</computeroutput> option causes 181 VirtualBox to use <computeroutput>VBoxHeadless</computeroutput> as 182 the front-end to the internal virtualization engine instead of the 183 Qt front-end.</para> 184 </listitem> 185 186 <listitem> 187 <para>One alternative is to use 188 <computeroutput>VBoxHeadless</computeroutput> directly, as 189 follows:<screen>VBoxHeadless --startvm <uuid|name></screen></para> 190 191 <para>This way of starting the VM helps troubleshooting problems 192 reported by <computeroutput>VBoxManage startvm ...</computeroutput> 193 because you can see sometimes more detailed error messages, 194 especially for early failures before the VM execution is started. 195 In normal situations <computeroutput>VBoxManage startvm</computeroutput> 196 is preferred since it runs the VM directly as a background process 197 which has to be done explicitly when directly starting 198 <computeroutput>VBoxHeadless</computeroutput>.</para> 199 </listitem> 200 201 <listitem> 202 <para>The other alternative is to start 203 <computeroutput>VBoxHeadless</computeroutput> from the VirtualBox 204 Manager GUI, by holding the Shift key when starting a virtual 205 machine or selecting <computeroutput>Headless Start</computeroutput> 206 from the <computeroutput>Machine</computeroutput> menu. 207 </para> 208 </listitem> 209 </itemizedlist> 210 211 <para>Since VirtualBox version 5.0, when you use 212 <computeroutput>VBoxHeadless</computeroutput> to start a VM, 213 the VRDP server will be enabled according to the VM configuration. 214 You can override the VM's setting using <computeroutput>--vrde</computeroutput> 215 command line parameter. To enable the VRDP server start the VM like 216 this:<screen>VBoxHeadless --startvm <uuid|name> --vrde on</screen> 217 and to disable it:<screen>VBoxHeadless --startvm <uuid|name> --vrde off</screen> 218 To have the VRDP server enabled depending on the VM configuration, as the 219 other front-ends would, you can still use: 220 <screen>VBoxHeadless --startvm <uuid|name> --vrde config</screen> 221 but this is the same as <screen>VBoxHeadless --startvm <uuid|name></screen></para> 222 223 <para>If you start the VM with <computeroutput>VBoxManage startvm ...</computeroutput> 224 then the configuration settings of the VM are always used.</para> 225 </sect2> 226 227 <sect2> 228 <title>Step by step: creating a virtual machine on a headless 229 server</title> 230 231 <para>The following instructions may give you an idea how to create a 232 virtual machine on a headless server over a network connection. We will 233 create a virtual machine, establish an RDP connection and install a 234 guest operating system -- all without having to touch the headless 235 server. All you need is the following:</para> 236 237 <para><orderedlist> 238 <listitem> 239 <para>VirtualBox on a server machine with a supported host 240 operating system. The VirtualBox extension pack for the VRDP 241 server must be installed (see the previous section). For the 242 following example, we will assume a Linux server.</para> 243 </listitem> 244 245 <listitem> 246 <para>An ISO file accessible from the server, containing the 247 installation data for the guest operating system to install (we 248 will assume Windows XP in the following example).</para> 249 </listitem> 250 251 <listitem> 252 <para>A terminal connection to that host through which you can 253 access a command line (e.g. via 254 <computeroutput>ssh</computeroutput>).</para> 255 </listitem> 256 257 <listitem> 258 <para>An RDP viewer on the remote client; see <xref 259 linkend="rdp-viewers" /> above for examples.</para> 260 </listitem> 261 </orderedlist>Note again that on the server machine, since we will 262 only use the headless server, neither Qt nor SDL nor the X Window system 263 will be needed.</para> 264 265 <para><orderedlist> 266 <listitem> 267 <para>On the headless server, create a new virtual machine:</para> 268 269 <screen>VBoxManage createvm --name "Windows XP" --ostype WindowsXP --register</screen> 270 271 <para>Note that if you do not specify 272 <computeroutput>--register</computeroutput>, you will have to 273 manually use the <computeroutput>registervm</computeroutput> 274 command later.</para> 275 276 <para>Note further that you do not need to specify 277 <computeroutput>--ostype</computeroutput>, but doing so selects 278 some sane default values for certain VM parameters, for example 279 the RAM size and the type of the virtual network device. To get a 280 complete list of supported operating systems you can use</para> 281 282 <screen>VBoxManage list ostypes</screen> 283 </listitem> 284 285 <listitem> 286 <para>Make sure the settings for this VM are appropriate for the 287 guest operating system that we will install. For example:<screen>VBoxManage modifyvm "Windows XP" --memory 256 --acpi on --boot1 dvd --nic1 nat</screen></para> 288 </listitem> 289 290 <listitem> 291 <para>Create a virtual hard disk for the VM (in this case, 10 GB in 292 size):<screen>VBoxManage createhd --filename "WinXP.vdi" --size 10000</screen></para> 293 </listitem> 294 295 <listitem> 296 <para>Add an IDE Controller to the new VM:<screen>VBoxManage storagectl "Windows XP" --name "IDE Controller" 297 --add ide --controller PIIX4</screen></para> 298 </listitem> 299 300 <listitem> 301 <para>Set the VDI file created above as the first virtual hard 302 disk of the new VM:<screen>VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" 303 --port 0 --device 0 --type hdd --medium "WinXP.vdi"</screen></para> 304 </listitem> 305 306 <listitem> 307 <para>Attach the ISO file that contains the operating system 308 installation that you want to install later to the virtual 309 machine, so the machine can boot from it:<screen>VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" 310 --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso</screen></para> 311 </listitem> 312 313 <listitem> 314 <para>Enable VirtualBox remote desktop extension (the VRDP server): 315 <screen>VBoxManage modifyvm "Windows XP" --vrde on</screen></para> 316 </listitem> 317 318 <listitem> 319 <para>Start the virtual machine using VBoxHeadless:<screen>VBoxHeadless --startvm "Windows XP"</screen></para> 320 321 <para>If everything worked, you should see a copyright notice. If, 322 instead, you are returned to the command line, then something went 323 wrong.</para> 324 </listitem> 325 326 <listitem> 327 <para>On the client machine, fire up the RDP viewer and try to 328 connect to the server (see <xref linkend="rdp-viewers" /> above 329 for how to use various common RDP viewers).</para> 330 331 <para>You should now be seeing the installation routine of your 332 guest operating system remotely in the RDP viewer.</para> 333 </listitem> 334 </orderedlist></para> 335 </sect2> 336 337 <sect2 id="usb-over-rdp"> 338 <title>Remote USB</title> 339 340 <para>As a special feature on top of the VRDP support, VirtualBox 341 supports remote USB devices over the wire as well. That is, the 342 VirtualBox guest that runs on one computer can access the USB devices of 343 the remote computer on which the VRDP data is being displayed the same 344 way as USB devices that are connected to the actual host. This allows 345 for running virtual machines on a VirtualBox host that acts as a server, 346 where a client can connect from elsewhere that needs only a network 347 adapter and a display capable of running an RDP viewer. When USB devices 348 are plugged into the client, the remote VirtualBox server can access 349 them.</para> 350 351 <para>For these remote USB devices, the same filter rules apply as for 352 other USB devices, as described with <xref linkend="settings-usb" />. 353 All you have to do is specify "Remote" (or "Any") when setting up these 354 rules.</para> 355 356 <para>Accessing remote USB devices is only possible if the RDP client 357 supports this extension. On Linux and Solaris hosts, the VirtualBox 358 installation provides a suitable VRDP client called 359 <computeroutput>rdesktop-vrdp</computeroutput>. Recent versions of 360 <computeroutput>uttsc</computeroutput>, a client tailored for the use 361 with Sun Ray thin clients, also support accessing remote USB devices. 362 RDP clients for other platforms will be provided in future VirtualBox 363 versions.</para> 364 365 <para>To make a remote USB device available to a VM, 366 <computeroutput>rdesktop-vrdp</computeroutput> should be started as 367 follows:<screen>rdesktop-vrdp -r usb -a 16 -N my.host.address</screen> 368 Please refer to <xref linkend="ts_usb-linux" /> for further details on how 369 to properly set up the permissions for USB devices. Furthermore it is 370 advisable to 371 disable automatic loading of any host driver on the remote host which 372 might work on USB devices to ensure that the devices are accessible by 373 the RDP client. If the setup was properly done on the remote host, 374 plug/unplug events are visible on the VBox.log file of the VM.</para> 375 </sect2> 376 377 <sect2 id="vbox-auth"> 378 <title>RDP authentication</title> 379 380 <para>For each virtual machine that is remotely accessible via RDP, you 381 can individually determine if and how client connections are 382 authenticated. For this, use <computeroutput>VBoxManage 383 modifyvm</computeroutput> command with the 384 <computeroutput>--vrdeauthtype</computeroutput> option; see <xref 385 linkend="vboxmanage-modifyvm" /> for a general introduction. Three 386 methods of authentication are available:<itemizedlist> 387 <listitem> 388 <para>The "null" method means that there is no authentication at 389 all; any client can connect to the VRDP server and thus the 390 virtual machine. This is, of course, very insecure and only to be 391 recommended for private networks.</para> 392 </listitem> 393 394 <listitem> 395 <para>The "external" method provides external authentication 396 through a special authentication library. VirtualBox ships with 397 two such authentication libraries:<orderedlist> 398 <listitem> 399 <para>The default authentication library, 400 <computeroutput>VBoxAuth</computeroutput>, authenticates 401 against user credentials of the hosts. Depending on the host 402 platform, this means:<itemizedlist> 403 <listitem> 404 <para>On Linux hosts, 405 <computeroutput>VBoxAuth.so</computeroutput> 406 authenticates users against the host's PAM 407 system.</para> 408 </listitem> 409 410 <listitem> 411 <para>On Windows hosts, 412 <computeroutput>VBoxAuth.dll</computeroutput> 413 authenticates users against the host's WinLogon 414 system.</para> 415 </listitem> 416 417 <listitem> 418 <para>On Mac OS X hosts, 419 <computeroutput>VBoxAuth.dylib</computeroutput> 420 authenticates users against the host's directory 421 service.<footnote> 422 <para>Support for Mac OS X was added in version 423 3.2.</para> 424 </footnote></para> 425 </listitem> 426 </itemizedlist></para> 427 428 <para>In other words, the "external" method per default 429 performs authentication with the user accounts that exist on 430 the host system. Any user with valid authentication 431 credentials is accepted, i.e. the username does not have to 432 correspond to the user running the VM.</para> 433 </listitem> 434 435 <listitem> 436 <para>An additional library called 437 <computeroutput>VBoxAuthSimple</computeroutput> performs 438 authentication against credentials configured in the 439 "extradata" section of a virtual machine's XML settings 440 file. This is probably the simplest way to get 441 authentication that does not depend on a running and 442 supported guest (see below). The following steps are 443 required:<orderedlist> 444 <listitem> 445 <para>Enable 446 <computeroutput>VBoxAuthSimple</computeroutput> with 447 the following command:</para> 448 449 <para><screen>VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"</screen></para> 450 </listitem> 451 452 <listitem> 453 <para>To enable the library for a particular VM, you 454 must then switch authentication to external:<screen>VBoxManage modifyvm "VM name" --vrdeauthtype external</screen></para> 455 456 <para>Replace 457 <computeroutput><vm></computeroutput> with the 458 VM name or UUID.</para> 459 </listitem> 460 461 <listitem> 462 <para>You will then need to configure users and 463 passwords by writing items into the machine's 464 extradata. Since the XML machine settings file, into 465 whose "extradata" section the password needs to be 466 written, is a plain text file, VirtualBox uses hashes 467 to encrypt passwords. The following command must be 468 used:<screen>VBoxManage setextradata "VM name" "VBoxAuthSimple/users/<user>" <hash></screen></para> 469 470 <para>Replace 471 <computeroutput><vm></computeroutput> with the 472 VM name or UUID, 473 <computeroutput><user></computeroutput> with the 474 user name who should be allowed to log in and 475 <computeroutput><hash></computeroutput> with the 476 encrypted password. As an example, to obtain the hash 477 value for the password "secret", you can use the 478 following command:<screen>VBoxManage internalcommands passwordhash "secret"</screen></para> 479 480 <para>This will print 481 <screen>2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b</screen> 482 You can then use VBoxManage setextradata to store this 483 value in the machine's "extradata" section.</para> 484 485 <para>As example, combined together, to set the 486 password for the user "john" and the machine "My VM" 487 to "secret", use this command:<screen>VBoxManage setextradata "My VM" "VBoxAuthSimple/users/john" 488 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b</screen></para> 489 </listitem> 490 </orderedlist></para> 491 </listitem> 492 </orderedlist></para> 493 </listitem> 494 495 <listitem> 496 <para>Finally, the "guest" authentication method performs 497 authentication with a special component that comes with the Guest 498 Additions; as a result, authentication is not performed on the 499 host, but with the <emphasis>guest</emphasis> user 500 accounts.</para> 501 502 <para>This method is currently still in testing and not yet 503 supported.</para> 504 </listitem> 505 </itemizedlist></para> 506 507 <para>In addition to the methods described above, you can replace the 508 default "external" authentication module with any other module. For 509 this, VirtualBox provides a well-defined interface that allows you to 510 write your own authentication module. This is described in detail in the 511 VirtualBox Software Development Kit (SDK) reference; please see <xref 512 linkend="VirtualBoxAPI" /> for details.</para> 513 </sect2> 514 515 <sect2 id="vrde-crypt"> 516 <title>RDP encryption</title> 517 518 <para>RDP features data stream encryption, which is based on the RC4 519 symmetric cipher (with keys up to 128bit). The RC4 keys are being 520 replaced in regular intervals (every 4096 packets).</para> 521 522 <para>RDP provides different authentication methods:<orderedlist> 523 <listitem> 524 <para>Historically, RDP4 authentication was used, with which the 525 RDP client does not perform any checks in order to verify the 526 identity of the server it connects to. Since user credentials can 527 be obtained using a "man in the middle" (MITM) attack, RDP4 528 authentication is insecure and should generally not be 529 used.</para> 530 </listitem> 531 532 <listitem> 533 <para>RDP5.1 authentication employs a server certificate for which 534 the client possesses the public key. This way it is guaranteed 535 that the server possess the corresponding private key. However, as 536 this hard-coded private key became public some years ago, RDP5.1 537 authentication is also insecure.</para> 538 </listitem> 539 540 <listitem> 541 <para>RDP5.2 authentication uses the Enhanced RDP Security, which 542 means that an external security protocol is used to secure the 543 connection. RDP4 and RDP5.1 use Standard RDP Security. 544 The VRDP server supports Enhanced RDP Security with TLS protocol and, 545 as a part of TLS handshake, sends the server certificate to the 546 client.</para> 547 548 <para>The <computeroutput>Security/Method</computeroutput> VRDE 549 property sets the desired security method, which is used for a 550 connection. Valid values are:<itemizedlist> 118 119 <listitem> 120 <para> 121 On Windows, you can use the Microsoft Terminal Services 122 Connector, <computeroutput>mstsc.exe</computeroutput>, that 123 is included with Windows. Press the 124 <emphasis role="bold">Windows key + R</emphasis>, to display 125 the Run dialog. Enter <command>mstsc</command> to start the 126 program. You can also find the program in 127 <emphasis role="bold">Start</emphasis>, 128 <emphasis role="bold">All Programs</emphasis>, 129 <emphasis role="bold">Accessories</emphasis>, 130 <emphasis role="bold">Remote Desktop Connection</emphasis>. 131 If you use the Run dialog, you can type in options directly. 132 For example: 133 </para> 134 135 <screen>mstsc 1.2.3.4:3389</screen> 136 137 <para> 138 Replace <computeroutput>1.2.3.4</computeroutput> with the 139 host IP address, and <computeroutput>3389</computeroutput> 140 with a different port, if necessary. 141 </para> 142 143 <note> 144 <itemizedlist> 145 551 146 <listitem> 552 147 <para> 553 <computeroutput>Negotiate</computeroutput> - both Enhanced (TLS)554 and Standard RDP Security connections are allowed. The security555 method is negotiated with the client. This is the default setting.148 IPv6 addresses must be enclosed in square brackets to 149 specify a port. For example: <computeroutput>mstsc 150 [fe80::1:2:3:4]:3389</computeroutput> 556 151 </para> 557 152 </listitem> … … 559 154 <listitem> 560 155 <para> 561 <computeroutput>RDP</computeroutput> - only Standard RDP Security 562 is accepted.</para> 156 When connecting to localhost in order to test the 157 connection, the addresses 158 <computeroutput>localhost</computeroutput> and 159 <computeroutput>127.0.0.1</computeroutput> might not 160 work using <computeroutput>mstsc.exe</computeroutput>. 161 Instead, the address 162 <computeroutput>127.0.0.2[:3389]</computeroutput> has 163 to be used. 164 </para> 563 165 </listitem> 564 166 565 <listitem> 566 <para> 567 <computeroutput>TLS</computeroutput> - only Enhanced RDP Security 568 is accepted. The client must support TLS.</para> 167 </itemizedlist> 168 </note> 169 </listitem> 170 171 <listitem> 172 <para> 173 On other systems, you can use the standard open source 174 <computeroutput>rdesktop</computeroutput> program. This 175 ships with most Linux distributions, but VirtualBox also 176 comes with a modified variant of rdesktop for remote USB 177 support. See <xref 178 linkend="usb-over-rdp" />. 179 </para> 180 181 <para> 182 With rdesktop, use a command line such as the following: 183 </para> 184 185 <screen>rdesktop -a 16 -N 1.2.3.4:3389</screen> 186 187 <para> 188 Replace <computeroutput>1.2.3.4</computeroutput> with the 189 host IP address, and <computeroutput>3389</computeroutput> 190 with a different port, if necessary. The <computeroutput>-a 191 16</computeroutput> option requests a color depth of 16 bits 192 per pixel, which we recommend. For best performance, after 193 installation of the guest operating system, you should set 194 its display color depth to the same value. The 195 <computeroutput>-N</computeroutput> option enables use of 196 the NumPad keys. 197 </para> 198 </listitem> 199 200 <listitem> 201 <para> 202 If you run the KDE desktop, you can use 203 <computeroutput>krdc</computeroutput>, the KDE RDP viewer. A 204 typical command line is as follows: 205 </para> 206 207 <screen>krdc rdp://1.2.3.4:3389</screen> 208 209 <para> 210 Replace <computeroutput>1.2.3.4</computeroutput> with the 211 host IP address, and <computeroutput>3389</computeroutput> 212 with a different port, if necessary. The "rdp://" prefix is 213 required with krdc to switch it into RDP mode. 214 </para> 215 </listitem> 216 217 <listitem> 218 <para> 219 With Sun Ray thin clients you can use 220 <computeroutput>uttsc</computeroutput>, which is part of the 221 Sun Ray Windows Connector package. See the Sun Ray 222 documentation for details. 223 </para> 224 </listitem> 225 226 </itemizedlist> 227 228 </sect2> 229 230 <sect2 id="vboxheadless"> 231 232 <title>VBoxHeadless, the Remote Desktop Server</title> 233 234 <para> 235 While any VM started from the VirtualBox Manager is capable of 236 running virtual machines remotely, it is not convenient to have 237 to run the full-fledged GUI if you never want to have VMs 238 displayed locally in the first place. In particular, if you are 239 running server hardware whose only purpose is to host VMs, and 240 all your VMs are supposed to run remotely over VRDP, then it is 241 pointless to have a graphical user interface on the server at 242 all. This is especially true for Linux or Solaris hosts, as the 243 VirtualBox manager comes with dependencies on the Qt and SDL 244 libraries. This is inconvenient if you would rather not have the 245 X Window system on your server at all. 246 </para> 247 248 <para> 249 VirtualBox therefore comes with a front-end called 250 <computeroutput>VBoxHeadless</computeroutput>, which produces no 251 visible output on the host at all, but still can deliver VRDP 252 data. This front-end has no dependencies on the X Window system 253 on Linux and Solaris hosts. 254 255 <footnote> 256 257 <para> 258 Before VirtualBox 1.6, the headless server was called 259 <computeroutput>VBoxVRDP</computeroutput>. For the sake of 260 backwards compatibility, the VirtualBox installation still 261 installs an executable with that name as well. 262 </para> 263 264 </footnote> 265 </para> 266 267 <para> 268 To start a virtual machine with 269 <computeroutput>VBoxHeadless</computeroutput>, you have the 270 following options: 271 </para> 272 273 <itemizedlist> 274 275 <listitem> 276 <para> 277 Use the <computeroutput>VBoxManage</computeroutput> command, 278 as follows: 279 </para> 280 281 <screen>VBoxManage startvm "VM name" --type headless</screen> 282 283 <para> 284 The <computeroutput>--type</computeroutput> option causes 285 VirtualBox to use 286 <computeroutput>VBoxHeadless</computeroutput> as the 287 front-end to the internal virtualization engine, instead of 288 the Qt front-end. 289 </para> 290 </listitem> 291 292 <listitem> 293 <para> 294 Use the <computeroutput>VBoxHeadless</computeroutput> 295 command, as follows: 296 </para> 297 298 <screen>VBoxHeadless --startvm <uuid|name></screen> 299 300 <para> 301 This way of starting the VM helps troubleshooting problems 302 reported by <computeroutput>VBoxManage startvm 303 </computeroutput>, because you can sometimes see more 304 detailed error messages, especially for early failures 305 before the VM execution is started. In normal situations 306 <computeroutput>VBoxManage startvm</computeroutput> is 307 preferred, since it runs the VM directly as a background 308 process which has to be done explicitly when directly 309 starting <computeroutput>VBoxHeadless</computeroutput>. 310 </para> 311 </listitem> 312 313 <listitem> 314 <para> 315 Start <computeroutput>VBoxHeadless</computeroutput> from the 316 VirtualBox Manager GUI, by holding the Shift key when 317 starting a virtual machine or by selecting 318 <emphasis role="bold">Headless Start</emphasis> from the 319 <emphasis role="bold">Machine</emphasis> menu. 320 </para> 321 </listitem> 322 323 </itemizedlist> 324 325 <para> 326 Since VirtualBox version 5.0, when you use 327 <computeroutput>VBoxHeadless</computeroutput> to start a VM, the 328 VRDP server will be enabled according to the VM configuration. 329 You can override the VM's setting using 330 <computeroutput>--vrde</computeroutput> command line parameter. 331 To enable the VRDP server start the VM like this: 332 333 <screen>VBoxHeadless --startvm <uuid|name> --vrde on</screen> 334 335 To disable the VRDP server: 336 337 <screen>VBoxHeadless --startvm <uuid|name> --vrde off</screen> 338 339 To have the VRDP server enabled depending on the VM 340 configuration, as the other front-ends would, you can use: 341 342 <screen>VBoxHeadless --startvm <uuid|name> --vrde config</screen> 343 344 This command is the same as: 345 346 <screen>VBoxHeadless --startvm <uuid|name></screen> 347 </para> 348 349 <para> 350 If you start the VM with <computeroutput>VBoxManage 351 startvm</computeroutput> then the configuration settings of the 352 VM are always used. 353 </para> 354 355 </sect2> 356 357 <sect2 id="headless-vm-steps"> 358 359 <title>Step by Step: Creating a Virtual Machine on a Headless Server</title> 360 361 <para> 362 The following instructions describe how to create a virtual 363 machine on a headless server over a network connection. This 364 example creates a virtual machine, establishes an RDP connection 365 and installs a guest operating system. All of these tasks are 366 done without having to touch the headless server. You need the 367 following prerequisites: 368 </para> 369 370 <itemizedlist> 371 372 <listitem> 373 <para> 374 VirtualBox on a server machine with a supported host 375 operating system. The VirtualBox extension pack for the VRDP 376 server must be installed, see <xref linkend="vrde"/>. The 377 procedures assume a Linux server is used. 378 </para> 379 </listitem> 380 381 <listitem> 382 <para> 383 An ISO file accessible from the server, containing the 384 installation data for the guest operating system to install. 385 Windows XP is used in the example. 386 </para> 387 </listitem> 388 389 <listitem> 390 <para> 391 A terminal connection to that host through which you can 392 access a command line, such as 393 <computeroutput>ssh</computeroutput>. 394 </para> 395 </listitem> 396 397 <listitem> 398 <para> 399 An RDP viewer on the remote client. See 400 <xref 401 linkend="rdp-viewers" /> for examples. 402 </para> 403 </listitem> 404 405 </itemizedlist> 406 407 <para> 408 Note that on the server machine, since we will only use the 409 headless server, Qt, SDL, and the X Window system are not 410 required. 411 </para> 412 413 <orderedlist> 414 415 <listitem> 416 <para> 417 On the headless server, create a new virtual machine. For 418 example: 419 </para> 420 421 <screen>VBoxManage createvm --name "Windows XP" --ostype WindowsXP --register</screen> 422 423 <para> 424 If you do not specify 425 <computeroutput>--register</computeroutput>, you will have 426 to manually use the 427 <computeroutput>registervm</computeroutput> command later. 428 </para> 429 430 <para> 431 You do not need to specify 432 <computeroutput>--ostype</computeroutput>, but doing so 433 selects some sensible default values for certain VM 434 parameters. For example, the RAM size and the type of the 435 virtual network device. To get a complete list of supported 436 operating systems you can use the following command: 437 </para> 438 439 <screen>VBoxManage list ostypes</screen> 440 </listitem> 441 442 <listitem> 443 <para> 444 Make sure the settings for the VM are appropriate for the 445 guest operating system that we will install. For example: 446 </para> 447 448 <screen>VBoxManage modifyvm "Windows XP" --memory 256 --acpi on --boot1 dvd --nic1 nat</screen> 449 </listitem> 450 451 <listitem> 452 <para> 453 Create a virtual hard disk for the VM. For example, to 454 create a 10 GB virtual hard disk: 455 </para> 456 457 <screen>VBoxManage createhd --filename "WinXP.vdi" --size 10000</screen> 458 </listitem> 459 460 <listitem> 461 <para> 462 Add an IDE Controller to the new VM. For example: 463 </para> 464 465 <screen>VBoxManage storagectl "Windows XP" --name "IDE Controller" 466 --add ide --controller PIIX4</screen> 467 </listitem> 468 469 <listitem> 470 <para> 471 Set the VDI file you created as the first virtual hard disk 472 of the new VM. For example: 473 </para> 474 475 <screen>VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" 476 --port 0 --device 0 --type hdd --medium "WinXP.vdi"</screen> 477 </listitem> 478 479 <listitem> 480 <para> 481 Attach the ISO file that contains the operating system 482 installation that you want to install later to the virtual 483 machine. This is done so that the VM can boot from it. 484 </para> 485 486 <screen>VBoxManage storageattach "Windows XP" --storagectl "IDE Controller" 487 --port 0 --device 1 --type dvddrive --medium /full/path/to/iso.iso</screen> 488 </listitem> 489 490 <listitem> 491 <para> 492 Enable the VirtualBox Remote Desktop Extension, the VRDP 493 server, as follows: 494 </para> 495 496 <screen>VBoxManage modifyvm "Windows XP" --vrde on</screen> 497 </listitem> 498 499 <listitem> 500 <para> 501 Start the virtual machine using the 502 <computeroutput>VBoxHeadless</computeroutput> command: 503 </para> 504 505 <screen>VBoxHeadless --startvm "Windows XP"</screen> 506 507 <para> 508 If the configuration steps worked, you should see a 509 copyright notice. If you are returned to the command line, 510 then something did not work correctly. 511 </para> 512 </listitem> 513 514 <listitem> 515 <para> 516 On the client machine, start the RDP viewer and connect to 517 the server. See <xref linkend="rdp-viewers" /> for details 518 of how to use various common RDP viewers. 519 </para> 520 521 <para> 522 The installation routine of your guest operating system 523 should be displayed in the RDP viewer. 524 </para> 525 </listitem> 526 527 </orderedlist> 528 529 </sect2> 530 531 <sect2 id="usb-over-rdp"> 532 533 <title>Remote USB</title> 534 535 <para> 536 As a special feature additional to the VRDP support, VirtualBox 537 also supports remote USB devices over the wire. That is, the 538 VirtualBox guest that runs on one computer can access the USB 539 devices of the remote computer on which the VRDP data is being 540 displayed the same way as USB devices that are connected to the 541 actual host. This allows for running virtual machines on a 542 VirtualBox host that acts as a server, where a client can 543 connect from elsewhere that needs only a network adapter and a 544 display capable of running an RDP viewer. When USB devices are 545 plugged into the client, the remote VirtualBox server can access 546 them. 547 </para> 548 549 <para> 550 For these remote USB devices, the same filter rules apply as for 551 other USB devices. See <xref linkend="settings-usb" />. All you 552 have to do is specify Remote, or Any, when setting up these 553 rules. 554 </para> 555 556 <para> 557 Accessing remote USB devices is only possible if the RDP client 558 supports this extension. On Linux and Solaris hosts, the 559 VirtualBox installation provides a suitable VRDP client called 560 <computeroutput>rdesktop-vrdp</computeroutput>. Recent versions 561 of <computeroutput>uttsc</computeroutput>, a client tailored for 562 the use with Sun Ray thin clients, also support accessing remote 563 USB devices. RDP clients for other platforms will be provided in 564 future VirtualBox versions. 565 </para> 566 567 <para> 568 To make a remote USB device available to a VM, 569 <computeroutput>rdesktop-vrdp</computeroutput> should be started 570 as follows: 571 572 <screen>rdesktop-vrdp -r usb -a 16 -N my.host.address</screen> 573 574 Please refer to <xref linkend="ts_usb-linux" /> for further 575 details on how to properly set up the permissions for USB 576 devices. Furthermore it is advisable to disable automatic 577 loading of any host driver on the remote host which might work 578 on USB devices to ensure that the devices are accessible by the 579 RDP client. If the setup was properly done on the remote host, 580 plug/unplug events are visible on the VBox.log file of the VM. 581 </para> 582 583 </sect2> 584 585 <sect2 id="vbox-auth"> 586 587 <title>RDP Authentication</title> 588 589 <para> 590 For each virtual machine that is remotely accessible via RDP, 591 you can individually determine if and how client connections are 592 authenticated. For this, use <computeroutput>VBoxManage 593 modifyvm</computeroutput> command with the 594 <computeroutput>--vrdeauthtype</computeroutput> option. See 595 <xref 596 linkend="vboxmanage-modifyvm" />. The following 597 methods of authentication are available: 598 </para> 599 600 <itemizedlist> 601 602 <listitem> 603 <para> 604 The <emphasis role="bold">null</emphasis> method means that 605 there is no authentication at all. Any client can connect to 606 the VRDP server and thus the virtual machine. This is very 607 insecure and only to be recommended for private networks. 608 </para> 609 </listitem> 610 611 <listitem> 612 <para> 613 The <emphasis role="bold">external</emphasis> method 614 provides external authentication through a special 615 authentication library. VirtualBox ships with two special 616 authentication libraries: 617 </para> 618 619 <orderedlist> 620 621 <listitem> 622 <para> 623 The default authentication library, 624 <computeroutput>VBoxAuth</computeroutput>, authenticates 625 against user credentials of the hosts. Depending on the 626 host platform, this means the following: 627 </para> 628 629 <itemizedlist> 630 631 <listitem> 632 <para> 633 On Linux hosts, 634 <computeroutput>VBoxAuth.so</computeroutput> 635 authenticates users against the host's PAM system. 636 </para> 569 637 </listitem> 570 </itemizedlist> 571 For example the following command allows a client to use either Standard 572 or Enhanced RDP Security connection: 573 <screen>vboxmanage modifyvm "VM name" --vrdeproperty "Security/Method=negotiate"</screen> 574 </para> 575 576 <para>If the <computeroutput>Security/Method</computeroutput> property is 577 set to either <computeroutput>Negotiate</computeroutput> or 578 <computeroutput>TLS</computeroutput>, the TLS protocol will be automatically 579 used by the server, if the client supports TLS. However, in order to use TLS 580 the server must possess the Server Certificate, the Server Private Key and the 581 Certificate Authority (CA) Certificate. The following example shows how to 582 generate a server certificate.<orderedlist> 638 583 639 <listitem> 584 <para>Create a CA self signed certificate: 585 <screen>openssl req -new -x509 -days 365 -extensions v3_ca \ 586 -keyout ca_key_private.pem -out ca_cert.pem</screen></para> 640 <para> 641 On Windows hosts, 642 <computeroutput>VBoxAuth.dll</computeroutput> 643 authenticates users against the host's WinLogon 644 system. 645 </para> 587 646 </listitem> 588 647 589 648 <listitem> 590 <para>Generate a server private key and a request for signing: 591 <screen>openssl genrsa -out server_key_private.pem 592 openssl req -new -key server_key_private.pem -out server_req.pem</screen></para> 649 <para> 650 On Mac OS X hosts, 651 <computeroutput>VBoxAuth.dylib</computeroutput> 652 authenticates users against the host's directory 653 service. 654 655 <footnote> 656 657 <para> 658 Support for Mac OS X was added in version 3.2. 659 </para> 660 661 </footnote> 662 </para> 593 663 </listitem> 594 664 665 </itemizedlist> 666 667 <para> 668 In other words, the external method by default performs 669 authentication with the user accounts that exist on the 670 host system. Any user with valid authentication 671 credentials is accepted. For example, the username does 672 not have to correspond to the user running the VM. 673 </para> 674 </listitem> 675 676 <listitem> 677 <para> 678 An additional library called 679 <computeroutput>VBoxAuthSimple</computeroutput> performs 680 authentication against credentials configured in the 681 "extradata" section of a virtual machine's XML settings 682 file. This is probably the simplest way to get 683 authentication that does not depend on a running and 684 supported guest. The following steps are required: 685 </para> 686 687 <orderedlist> 688 595 689 <listitem> 596 <para>Generate the server certificate: 597 <screen>openssl x509 -req -days 365 -in server_req.pem \ 598 -CA ca_cert.pem -CAkey ca_key_private.pem -set_serial 01 -out server_cert.pem</screen></para> 690 <para> 691 Enable 692 <computeroutput>VBoxAuthSimple</computeroutput> with 693 the following command: 694 </para> 695 696 <screen>VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"</screen> 599 697 </listitem> 600 </orderedlist> 601 The server must be configured to access the required files: 602 <screen>vboxmanage modifyvm "VM name" \ 698 699 <listitem> 700 <para> 701 To enable the library for a particular VM, you must 702 switch authentication to external, as follows: 703 </para> 704 705 <screen>VBoxManage modifyvm "VM name" --vrdeauthtype external</screen> 706 707 <para> 708 Replace <computeroutput><vm></computeroutput> 709 with the VM name or UUID. 710 </para> 711 </listitem> 712 713 <listitem> 714 <para> 715 You then need to configure users and passwords by 716 writing items into the machine's extradata. Since 717 the XML machine settings file, into whose 718 <computeroutput>extradata</computeroutput> section 719 the password needs to be written, is a plain text 720 file, VirtualBox uses hashes to encrypt passwords. 721 The following command must be used: 722 </para> 723 724 <screen>VBoxManage setextradata "VM name" "VBoxAuthSimple/users/<user>" <hash></screen> 725 726 <para> 727 Replace <computeroutput><vm></computeroutput> 728 with the VM name or UUID, 729 <computeroutput><user></computeroutput> with 730 the user name who should be allowed to log in and 731 <computeroutput><hash></computeroutput> with 732 the encrypted password. As an example, to obtain the 733 hash value for the password 734 <computeroutput>secret</computeroutput>, you can use 735 the following command: 736 </para> 737 738 <screen>VBoxManage internalcommands passwordhash "secret"</screen> 739 740 <para> 741 This command will generate output similar to the 742 following: 743 </para> 744 745 <screen>2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b</screen> 746 747 <para> 748 You then use VBoxManage setextradata to store this 749 value in the machine's 750 <computeroutput>extradata</computeroutput> section. 751 </para> 752 753 <para> 754 As a combined example, to set the password for the 755 user <computeroutput>john</computeroutput> and the 756 machine <computeroutput>My VM</computeroutput> to 757 <computeroutput>secret</computeroutput>, use this 758 command: 759 </para> 760 761 <screen>VBoxManage setextradata "My VM" "VBoxAuthSimple/users/john" 762 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b</screen> 763 </listitem> 764 765 </orderedlist> 766 </listitem> 767 768 </orderedlist> 769 </listitem> 770 771 <listitem> 772 <para> 773 The <emphasis role="bold">guest</emphasis> authentication 774 method performs authentication with a special component that 775 comes with the Guest Additions. As a result, authentication 776 is not performed on the host, but with the guest user 777 accounts. 778 </para> 779 780 <para> 781 This method is currently still in testing and not yet 782 supported. 783 </para> 784 </listitem> 785 786 </itemizedlist> 787 788 <para> 789 In addition to the methods described above, you can replace the 790 default external authentication module with any other module. 791 For this, VirtualBox provides a well-defined interface that 792 allows you to write your own authentication module. This is 793 described in detail in the VirtualBox Software Development Kit 794 (SDK) reference. See <xref 795 linkend="VirtualBoxAPI" />. 796 </para> 797 798 </sect2> 799 800 <sect2 id="vrde-crypt"> 801 802 <title>RDP Encryption</title> 803 804 <para> 805 RDP features data stream encryption, which is based on the RC4 806 symmetric cipher, with keys up to 128-bit. The RC4 keys are 807 replaced at regular intervals, every 4096 packets. 808 </para> 809 810 <para> 811 RDP provides the following different authentication methods: 812 </para> 813 814 <itemizedlist> 815 816 <listitem> 817 <para> 818 <emphasis role="bold">RDP4</emphasis> authentication was 819 used historically. With RDP4, the RDP client does not 820 perform any checks in order to verify the identity of the 821 server it connects to. Since user credentials can be 822 obtained using a "man in the middle" (MITM) attack, RDP4 823 authentication is insecure and should generally not be used. 824 </para> 825 </listitem> 826 827 <listitem> 828 <para> 829 <emphasis role="bold">RDP5.1</emphasis> authentication 830 employs a server certificate for which the client possesses 831 the public key. This way it is guaranteed that the server 832 possess the corresponding private key. However, as this 833 hard-coded private key became public some years ago, RDP5.1 834 authentication is also insecure. 835 </para> 836 </listitem> 837 838 <listitem> 839 <para> 840 <emphasis role="bold">RDP5.2</emphasis> authentication uses 841 Enhanced RDP Security, which means that an external security 842 protocol is used to secure the connection. RDP4 and RDP5.1 843 use Standard RDP Security. The VRDP server supports Enhanced 844 RDP Security with TLS protocol and, as a part of TLS 845 handshake, sends the server certificate to the client. 846 </para> 847 848 <para> 849 The <computeroutput>Security/Method</computeroutput> VRDE 850 property sets the desired security method, which is used for 851 a connection. Valid values are as follows: 852 </para> 853 854 <itemizedlist> 855 856 <listitem> 857 <para> 858 <emphasis role="bold">Negotiate.</emphasis> Both 859 Enhanced (TLS) and Standard RDP Security connections are 860 allowed. The security method is negotiated with the 861 client. This is the default setting. 862 </para> 863 </listitem> 864 865 <listitem> 866 <para> 867 <emphasis role="bold">RDP.</emphasis> Only Standard RDP 868 Security is accepted. 869 </para> 870 </listitem> 871 872 <listitem> 873 <para> 874 <emphasis role="bold">TLS.</emphasis> Only Enhanced RDP 875 Security is accepted. The client must support TLS. 876 </para> 877 </listitem> 878 879 </itemizedlist> 880 881 <para> 882 For example, the following command allows a client to use 883 either Standard or Enhanced RDP Security connection: 884 </para> 885 886 <screen>vboxmanage modifyvm "VM name" --vrdeproperty "Security/Method=negotiate"</screen> 887 888 <para> 889 If the <computeroutput>Security/Method</computeroutput> 890 property is set to either Negotiate or TLS, the TLS protocol 891 will be automatically used by the server, if the client 892 supports TLS. However, in order to use TLS the server must 893 possess the Server Certificate, the Server Private Key and 894 the Certificate Authority (CA) Certificate. The following 895 example shows how to generate a server certificate. 896 </para> 897 898 <orderedlist> 899 900 <listitem> 901 <para> 902 Create a CA self signed certificate. 903 </para> 904 905 <screen>openssl req -new -x509 -days 365 -extensions v3_ca \ 906 -keyout ca_key_private.pem -out ca_cert.pem</screen> 907 </listitem> 908 909 <listitem> 910 <para> 911 Generate a server private key and a request for signing. 912 </para> 913 914 <screen>openssl genrsa -out server_key_private.pem 915 openssl req -new -key server_key_private.pem -out server_req.pem</screen> 916 </listitem> 917 918 <listitem> 919 <para> 920 Generate the server certificate. 921 </para> 922 923 <screen>openssl x509 -req -days 365 -in server_req.pem \ 924 -CA ca_cert.pem -CAkey ca_key_private.pem -set_serial 01 -out server_cert.pem</screen> 925 </listitem> 926 927 </orderedlist> 928 929 <para> 930 The server must be configured to access the required files. 931 For example: 932 </para> 933 934 <screen>vboxmanage modifyvm "VM name" \ 603 935 --vrdeproperty "Security/CACertificate=path/ca_cert.pem"</screen> 604 <screen>vboxmanage modifyvm "VM name" \ 936 937 <screen>vboxmanage modifyvm "VM name" \ 605 938 --vrdeproperty "Security/ServerCertificate=path/server_cert.pem"</screen> 606 <screen>vboxmanage modifyvm "VM name" \ 939 940 <screen>vboxmanage modifyvm "VM name" \ 607 941 --vrdeproperty "Security/ServerPrivateKey=path/server_key_private.pem"</screen> 608 </para> 609 </listitem> 610 </orderedlist></para> 611 612 <para>As the client that connects to the server determines what type 613 of encryption will be used, with rdesktop, the Linux RDP viewer, use the 614 <computeroutput>-4</computeroutput> or 615 <computeroutput>-5</computeroutput> options.</para> 942 </listitem> 943 944 </itemizedlist> 945 946 <para> 947 As the client that connects to the server determines what type 948 of encryption will be used, with rdesktop, the Linux RDP viewer, 949 use the <computeroutput>-4</computeroutput> or 950 <computeroutput>-5</computeroutput> options. 951 </para> 952 616 953 </sect2> 617 954 618 955 <sect2 id="vrde-multiconnection"> 619 <title>Multiple connections to the VRDP server</title> 620 621 <para>The VRDP server of VirtualBox supports multiple simultaneous 622 connections to the same running VM from different clients. All connected 623 clients see the same screen output and share a mouse pointer and 624 keyboard focus. This is similar to several people using the same 625 computer at the same time, taking turns at the keyboard.</para> 626 627 <para>The following command enables multiple connection mode: <screen>VBoxManage modifyvm "VM name" --vrdemulticon on</screen></para> 956 957 <title>Multiple Connections to the VRDP Server</title> 958 959 <para> 960 The VRDP server of VirtualBox supports multiple simultaneous 961 connections to the same running VM from different clients. All 962 connected clients see the same screen output and share a mouse 963 pointer and keyboard focus. This is similar to several people 964 using the same computer at the same time, taking turns at the 965 keyboard. 966 </para> 967 968 <para> 969 The following command enables multiple connection mode: 970 971 <screen>VBoxManage modifyvm "VM name" --vrdemulticon on</screen> 972 </para> 973 628 974 </sect2> 629 975 630 976 <sect2 id="vrde-multimonitor"> 631 <title>Multiple remote monitors</title> 632 633 <para>To access two or more remote VM displays you have to enable the 634 VRDP multiconnection mode (see <xref 635 linkend="vrde-multiconnection" />).</para> 636 637 <para>The RDP client can select the virtual monitor number to connect to 638 using the <computeroutput>domain</computeroutput> logon parameter 639 (<computeroutput>-d</computeroutput>). If the parameter ends with 640 <computeroutput>@</computeroutput> followed by a number, VirtualBox 641 interprets this number as the screen index. The primary guest screen is 642 selected with <computeroutput>@1</computeroutput>, the first secondary 643 screen is <computeroutput>@2</computeroutput>, etc.</para> 644 645 <para>The Microsoft RDP6 client does not let you specify a separate 646 domain name. Instead, use 647 <computeroutput>domain\username</computeroutput> in the 648 <computeroutput>Username:</computeroutput> field -- for example, 649 <computeroutput>@2\name</computeroutput>. 650 <computeroutput>name</computeroutput> must be supplied, and must be the 651 name used to log in if the VRDP server is set up to require credentials. 652 If it is not, you may use any text as the username.</para> 977 978 <title>Multiple Remote Monitors</title> 979 980 <para> 981 To access two or more remote VM displays you have to enable the 982 VRDP multiconnection mode. See 983 <xref 984 linkend="vrde-multiconnection" />. 985 </para> 986 987 <para> 988 The RDP client can select the virtual monitor number to connect 989 to using the <computeroutput>domain</computeroutput> logon 990 parameter (<computeroutput>-d</computeroutput>). If the 991 parameter ends with <computeroutput>@</computeroutput> followed 992 by a number, VirtualBox interprets this number as the screen 993 index. The primary guest screen is selected with 994 <computeroutput>@1</computeroutput>, the first secondary screen 995 is <computeroutput>@2</computeroutput>, and so on. 996 </para> 997 998 <para> 999 The Microsoft RDP6 client does not let you specify a separate 1000 domain name. Instead, use 1001 <computeroutput>domain\username</computeroutput> in the 1002 <computeroutput>Username:</computeroutput> field. For example, 1003 <computeroutput>@2\name</computeroutput>. 1004 <computeroutput>name</computeroutput> must be supplied, and must 1005 be the name used to log in if the VRDP server is set up to 1006 require credentials. If it is not, you may use any text as the 1007 username. 1008 </para> 1009 653 1010 </sect2> 654 1011 655 1012 <sect2 id="vrde-videochannel"> 656 <title>VRDP video redirection</title> 657 658 <para>Starting with VirtualBox 3.2, the VRDP server can redirect video 659 streams from the guest to the RDP client. Video frames are compressed 660 using the JPEG algorithm allowing a higher compression ratio than 661 standard RDP bitmap compression methods. It is possible to increase the 662 compression ratio by lowering the video quality.</para> 663 664 <para>The VRDP server automatically detects video streams in a guest as 665 frequently updated rectangular areas. As a result, this method works 666 with any guest operating system without having to install additional 667 software in the guest; in particular, the Guest Additions are not 668 required.</para> 669 670 <para>On the client side, however, currently only the Windows 7 Remote 671 Desktop Connection client supports this feature. If a client does not 672 support video redirection, the VRDP server falls back to regular bitmap 673 updates.</para> 674 675 <para>The following command enables video redirection: <screen>VBoxManage modifyvm "VM name" --vrdevideochannel on</screen></para> 676 677 <para>The quality of the video is defined as a value from 10 to 100 678 percent, representing a JPEG compression level (where lower numbers mean 679 lower quality but higher compression). The quality can be changed using 680 the following command: <screen>VBoxManage modifyvm "VM name" --vrdevideochannelquality 75</screen></para> 1013 1014 <title>VRDP Video Redirection</title> 1015 1016 <para> 1017 Starting with VirtualBox 3.2, the VRDP server can redirect video 1018 streams from the guest to the RDP client. Video frames are 1019 compressed using the JPEG algorithm allowing a higher 1020 compression ratio than standard RDP bitmap compression methods. 1021 It is possible to increase the compression ratio by lowering the 1022 video quality. 1023 </para> 1024 1025 <para> 1026 The VRDP server automatically detects video streams in a guest 1027 as frequently updated rectangular areas. As a result, this 1028 method works with any guest operating system without having to 1029 install additional software in the guest. In particular, the 1030 Guest Additions are not required. 1031 </para> 1032 1033 <para> 1034 On the client side, however, currently only the Windows 7 Remote 1035 Desktop Connection client supports this feature. If a client 1036 does not support video redirection, the VRDP server falls back 1037 to regular bitmap updates. 1038 </para> 1039 1040 <para> 1041 The following command enables video redirection: 1042 1043 <screen>VBoxManage modifyvm "VM name" --vrdevideochannel on</screen> 1044 </para> 1045 1046 <para> 1047 The quality of the video is defined as a value from 10 to 100 1048 percent, representing a JPEG compression level, where lower 1049 numbers mean lower quality but higher compression. The quality 1050 can be changed using the following command: 1051 1052 <screen>VBoxManage modifyvm "VM name" --vrdevideochannelquality 75</screen> 1053 </para> 1054 681 1055 </sect2> 682 1056 683 1057 <sect2 id="vrde-customization"> 684 <title>VRDP customization</title> 685 686 <para>With VirtualBox 4.0 it is possible to disable display output, 687 mouse and keyboard input, audio, remote USB or clipboard individually in 688 the VRDP server.</para> 689 690 <para>The following commands change corresponding server 691 settings:</para> 692 693 <screen>VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=1 1058 1059 <title>VRDP Customization</title> 1060 1061 <para> 1062 With VirtualBox 4.0 it is possible to disable display output, 1063 mouse and keyboard input, audio, remote USB, or clipboard 1064 individually in the VRDP server. 1065 </para> 1066 1067 <para> 1068 The following commands change corresponding server settings: 1069 </para> 1070 1071 <screen>VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=1 694 1072 VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableInput=1 695 1073 VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUSB=1 … … 698 1076 VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUpstreamAudio=1</screen> 699 1077 700 <para>To reenable a feature use a similar command without the trailing 701 1. For example: <screen>VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=</screen></para> 702 703 <para>These properties were introduced with VirtualBox 3.2.10. However, 704 in the 3.2.x series, it was necessary to use the following commands to 705 alter these settings instead:</para> 706 707 <screen>VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay" 1 1078 <para> 1079 To reenable a feature use a similar command without the trailing 1080 1. For example: 1081 1082 <screen>VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableDisplay=</screen> 1083 </para> 1084 1085 <para> 1086 These properties were introduced with VirtualBox 3.2.10. 1087 However, in the 3.2.x series, it was necessary to use the 1088 following commands to alter these settings instead: 1089 </para> 1090 1091 <screen>VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay" 1 708 1092 VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableInput" 1 709 1093 VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableUSB" 1 … … 711 1095 VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableClipboard" 1</screen> 712 1096 713 <para>To reenable a feature use a similar command without the trailing 714 1. For example: <screen>VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay"</screen></para> 1097 <para> 1098 To reenable a feature use a similar command without the trailing 1099 1. For example: 1100 1101 <screen>VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableDisplay"</screen> 1102 </para> 1103 715 1104 </sect2> 1105 716 1106 </sect1> 717 1107 718 1108 <sect1 id="teleporting"> 1109 719 1110 <title>Teleporting</title> 720 1111 721 <para>Starting with version 3.1, VirtualBox supports "teleporting" -- that 722 is, moving a virtual machine over a network from one VirtualBox host to 723 another, while the virtual machine is running. This works regardless of 724 the host operating system that is running on the hosts: you can teleport 725 virtual machines between Solaris and Mac hosts, for example.</para> 726 727 <para>Teleporting requires that a machine be currently running on one 728 host, which is then called the <emphasis role="bold">"source"</emphasis>. 729 The host to which the virtual machine will be teleported will then be 730 called the <emphasis role="bold">"target"</emphasis>; the machine on the 731 target is then configured to wait for the source to contact the target. 732 The machine's running state will then be transferred from the source to 733 the target with minimal downtime.</para> 734 735 <para>Teleporting happens over any TCP/IP network; the source and the 736 target only need to agree on a TCP/IP port which is specified in the 737 teleporting settings.</para> 738 739 <para>At this time, there are a few prerequisites for this to work, 740 however:<orderedlist> 741 <listitem> 742 <para>On the target host, you must configure a virtual machine in 743 VirtualBox with exactly the same hardware settings as the machine on 744 the source that you want to teleport. This does not apply to 745 settings which are merely descriptive, such as the VM name, but 746 obviously for teleporting to work, the target machine must have the 747 same amount of memory and other hardware settings. Otherwise 748 teleporting will fail with an error message.</para> 749 </listitem> 750 751 <listitem> 752 <para>The two virtual machines on the source and the target must 753 share the same storage (hard disks as well as floppy and CD/DVD 754 images). This means that they either use the same iSCSI targets or 755 that the storage resides somewhere on the network and both hosts 756 have access to it via NFS or SMB/CIFS.</para> 757 758 <para>This also means that neither the source nor the target machine 759 can have any snapshots.</para> 760 </listitem> 761 </orderedlist></para> 762 763 <para>Then perform the following steps:<orderedlist> 764 <listitem> 765 <para>On the <emphasis>target</emphasis> host, configure the virtual 766 machine to wait for a teleport request to arrive when it is started, 767 instead of actually attempting to start the machine. This is done 768 with the following VBoxManage command:<screen>VBoxManage modifyvm <targetvmname> --teleporter on --teleporterport <port></screen></para> 769 770 <para>where <computeroutput><targetvmname></computeroutput> is 1112 <para> 1113 Starting with version 3.1, VirtualBox supports 1114 <emphasis>teleporting</emphasis>. Teleporting is moving a virtual 1115 machine over a network from one VirtualBox host to another, while 1116 the virtual machine is running. This works regardless of the host 1117 operating system that is running on the hosts. You can teleport 1118 virtual machines between Solaris and Mac hosts, for example. 1119 </para> 1120 1121 <para> 1122 Teleporting requires that a machine be currently running on one 1123 host, which is called the <emphasis>source</emphasis>. The host to 1124 which the virtual machine will be teleported is called the 1125 <emphasis>target</emphasis>. The machine on the target is then 1126 configured to wait for the source to contact the target. The 1127 machine's running state will then be transferred from the source 1128 to the target with minimal downtime. 1129 </para> 1130 1131 <para> 1132 Teleporting happens over any TCP/IP network. The source and the 1133 target only need to agree on a TCP/IP port which is specified in 1134 the teleporting settings. 1135 </para> 1136 1137 <para> 1138 At this time, there are a few prerequisites for this to work, as 1139 follows: 1140 </para> 1141 1142 <itemizedlist> 1143 1144 <listitem> 1145 <para> 1146 On the target host, you must configure a virtual machine in 1147 VirtualBox with exactly the same hardware settings as the 1148 machine on the source that you want to teleport. This does not 1149 apply to settings which are merely descriptive, such as the VM 1150 name, but obviously for teleporting to work, the target 1151 machine must have the same amount of memory and other hardware 1152 settings. Otherwise teleporting will fail with an error 1153 message. 1154 </para> 1155 </listitem> 1156 1157 <listitem> 1158 <para> 1159 The two virtual machines on the source and the target must 1160 share the same storage, hard disks as well as floppy disks and 1161 CD/DVD images. This means that they either use the same iSCSI 1162 targets or that the storage resides somewhere on the network 1163 and both hosts have access to it via NFS or SMB/CIFS. 1164 </para> 1165 1166 <para> 1167 This also means that neither the source nor the target machine 1168 can have any snapshots. 1169 </para> 1170 </listitem> 1171 1172 </itemizedlist> 1173 1174 <para> 1175 To configure teleporting, perform the following steps: 1176 </para> 1177 1178 <orderedlist> 1179 1180 <listitem> 1181 <para> 1182 On the <emphasis>target</emphasis> host, configure the virtual 1183 machine to wait for a teleport request to arrive when it is 1184 started, instead of actually attempting to start the machine. 1185 This is done with the following VBoxManage command: 1186 </para> 1187 1188 <screen>VBoxManage modifyvm <targetvmname> --teleporter on --teleporterport <port></screen> 1189 1190 <para> 1191 where <computeroutput><targetvmname></computeroutput> is 771 1192 the name of the virtual machine on the target host and 772 1193 <computeroutput><port></computeroutput> is a TCP/IP port 773 1194 number to be used on both the source and the target hosts. For 774 example, use 6000. For details, see <xref 775 linkend="vboxmanage-modifyvm-teleport" />.</para> 776 </listitem> 777 778 <listitem> 779 <para>Start the VM on the target host. You will see that instead of 780 actually running, it will show a progress dialog. indicating that it 781 is waiting for a teleport request to arrive.</para> 782 </listitem> 783 784 <listitem> 785 <para>Start the machine on the <emphasis>source</emphasis> host as 786 usual. When it is running and you want it to be teleported, issue 787 the following command on the source host:<screen>VBoxManage controlvm <sourcevmname> teleport --host <targethost> --port <port></screen></para> 788 789 <para>where <computeroutput><sourcevmname></computeroutput> is 790 the name of the virtual machine on the source host (the machine that 791 is currently running), 792 <computeroutput><targethost></computeroutput> is the host or 793 IP name of the target host on which the machine is waiting for the 794 teleport request, and <computeroutput><port></computeroutput> 795 must be the same number as specified in the command on the target 796 host. For details, see <xref 797 linkend="vboxmanage-controlvm" />.</para> 798 </listitem> 799 </orderedlist></para> 800 801 <para>For testing, you can also teleport machines on the same host; in 802 that case, use "localhost" as the hostname on both the source and the 803 target host.<note> 804 <para>In rare cases, if the CPUs of the source and the target are very 805 different, teleporting can fail with an error message, or the target 806 may hang. This may happen especially if the VM is running application 807 software that is highly optimized to run on a particular CPU without 808 correctly checking that certain CPU features are actually present. 809 VirtualBox filters what CPU capabilities are presented to the guest 810 operating system. Advanced users can attempt to restrict these virtual 811 CPU capabilities with the <computeroutput>VBoxManage --modifyvm 812 --cpuid</computeroutput> command; see <xref 813 linkend="vboxmanage-modifyvm-teleport" />.</para> 814 </note></para> 1195 example, use 6000. See 1196 <xref 1197 linkend="vboxmanage-modifyvm-teleport" />. 1198 </para> 1199 </listitem> 1200 1201 <listitem> 1202 <para> 1203 Start the VM on the target host. Instead of running, the VM 1204 shows a progress dialog, indicating that it is waiting for a 1205 teleport request to arrive. 1206 </para> 1207 </listitem> 1208 1209 <listitem> 1210 <para> 1211 Start the VM on the <emphasis>source</emphasis> host as usual. 1212 When it is running and you want it to be teleported, issue the 1213 following command on the source host: 1214 </para> 1215 1216 <screen>VBoxManage controlvm <sourcevmname> teleport --host <targethost> --port <port></screen> 1217 1218 <para> 1219 where <computeroutput><sourcevmname></computeroutput> is 1220 the name of the virtual machine on the source host (the 1221 machine that is currently running), 1222 <computeroutput><targethost></computeroutput> is the 1223 host or IP name of the target host on which the machine is 1224 waiting for the teleport request, and 1225 <computeroutput><port></computeroutput> must be the same 1226 number as specified in the command on the target host. See 1227 <xref 1228 linkend="vboxmanage-controlvm" />. 1229 </para> 1230 </listitem> 1231 1232 </orderedlist> 1233 1234 <para> 1235 For testing, you can also teleport machines on the same host. In 1236 that case, use localhost as the hostname on both the source and 1237 the target host. 1238 </para> 1239 1240 <note> 1241 <para> 1242 In rare cases, if the CPUs of the source and the target are very 1243 different, teleporting can fail with an error message, or the 1244 target may hang. This may happen especially if the VM is running 1245 application software that is highly optimized to run on a 1246 particular CPU without correctly checking that certain CPU 1247 features are actually present. VirtualBox filters what CPU 1248 capabilities are presented to the guest operating system. 1249 Advanced users can attempt to restrict these virtual CPU 1250 capabilities with the <computeroutput>VBoxManage --modifyvm 1251 --cpuid</computeroutput> command. See 1252 <xref 1253 linkend="vboxmanage-modifyvm-teleport" />. 1254 </para> 1255 </note> 1256 815 1257 </sect1> 1258 816 1259 </chapter> -
trunk/doc/manual/en_US/user_Glossary.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE glossary PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <glossary id="Glossary"> 5 <glossdiv> 8 9 <glossdiv> 10 6 11 <title>A</title> 7 12 8 <glossentry> 9 <glossterm>ACPI</glossterm> 10 11 <glossdef> 12 <para>Advanced Configuration and Power Interface, an industry 13 specification for BIOS and hardware extensions to configure PC 14 hardware and perform power management. Windows 2000 and higher as well 15 as Linux 2.4 and higher support ACPI. Windows can only enable or 16 disable ACPI support at installation time.</para> 17 </glossdef> 18 </glossentry> 19 20 <glossentry> 21 <glossterm>AHCI</glossterm> 22 23 <glossdef> 24 <para>Advanced Host Controller Interface, the interface that supports 25 SATA devices such as hard disks. See <xref 26 linkend="harddiskcontrollers" />.</para> 27 </glossdef> 28 </glossentry> 29 30 <glossentry> 31 <glossterm>AMD-V</glossterm> 32 33 <glossdef> 34 <para>The hardware virtualization features built into modern AMD 35 processors. See <xref linkend="hwvirt" />.</para> 36 </glossdef> 37 </glossentry> 38 39 <glossentry> 40 <glossterm>API</glossterm> 41 42 <glossdef> 43 <para>Application Programming Interface.</para> 44 </glossdef> 45 </glossentry> 46 47 <glossentry> 48 <glossterm>APIC</glossterm> 49 50 <glossdef> 51 <para>Advanced Programmable Interrupt Controller, a newer version of 52 the original PC PIC (programmable interrupt controller). Most modern 53 CPUs contain an on-chip APIC ("local APIC"). Many systems also contain 54 an I/O APIC (input output APIC) as a separate chip which provides more 55 than 16 IRQs. Windows 2000 and higher use a different kernel if they 56 detect an I/O APIC during installation. Therefore an I/O APIC must not 57 be removed after installation.</para> 58 </glossdef> 59 </glossentry> 60 61 <glossentry> 62 <glossterm>ATA</glossterm> 63 64 <glossdef> 65 <para>Advanced Technology Attachment, an industry standard for hard 66 disk interfaces (synonymous with IDE). See <xref 67 linkend="harddiskcontrollers" />.</para> 68 </glossdef> 69 </glossentry> 70 </glossdiv> 71 72 <glossdiv> 13 <glossentry><glossterm>ACPI</glossterm> 14 15 <glossdef> 16 17 <para> 18 Advanced Configuration and Power Interface, an industry 19 specification for BIOS and hardware extensions to configure PC 20 hardware and perform power management. Windows 2000 and higher 21 as well as Linux 2.4 and higher support ACPI. Windows can only 22 enable or disable ACPI support at installation time. 23 </para> 24 25 </glossdef> 26 27 </glossentry> 28 29 <glossentry><glossterm>AHCI</glossterm> 30 31 <glossdef> 32 33 <para> 34 Advanced Host Controller Interface, the interface that 35 supports SATA devices such as hard disks. See 36 <xref 37 linkend="harddiskcontrollers" />. 38 </para> 39 40 </glossdef> 41 42 </glossentry> 43 44 <glossentry><glossterm>AMD-V</glossterm> 45 46 <glossdef> 47 48 <para> 49 The hardware virtualization features built into modern AMD 50 processors. See <xref linkend="hwvirt" />. 51 </para> 52 53 </glossdef> 54 55 </glossentry> 56 57 <glossentry><glossterm>API</glossterm> 58 59 <glossdef> 60 61 <para> 62 Application Programming Interface. 63 </para> 64 65 </glossdef> 66 67 </glossentry> 68 69 <glossentry><glossterm>APIC</glossterm> 70 71 <glossdef> 72 73 <para> 74 Advanced Programmable Interrupt Controller, a newer version of 75 the original PC PIC (programmable interrupt controller). Most 76 modern CPUs contain an on-chip APIC, called a local APIC. Many 77 systems also contain an I/O APIC (input output APIC) as a 78 separate chip which provides more than 16 IRQs. Windows 2000 79 and higher use a different kernel if they detect an I/O APIC 80 during installation. Therefore an I/O APIC must not be removed 81 after installation. 82 </para> 83 84 </glossdef> 85 86 </glossentry> 87 88 <glossentry><glossterm>ATA</glossterm> 89 90 <glossdef> 91 92 <para> 93 Advanced Technology Attachment, an industry standard for hard 94 disk interfaces which is synonymous with IDE. See 95 <xref 96 linkend="harddiskcontrollers" />. 97 </para> 98 99 </glossdef> 100 101 </glossentry> 102 103 </glossdiv> 104 105 <glossdiv> 106 73 107 <title>B</title> 74 108 75 <glossentry> 76 <glossterm>BIOS</glossterm> 77 78 <glossdef> 79 <para>Basic Input/Output System, the firmware built into most personal 80 computers which is responsible of initializing the hardware after the 81 computer has been turned on and then booting an operating system. 82 VirtualBox ships with its own virtual BIOS that runs when a virtual 83 machine is started.</para> 84 </glossdef> 85 </glossentry> 86 </glossdiv> 87 88 <glossdiv> 109 <glossentry><glossterm>BIOS</glossterm> 110 111 <glossdef> 112 113 <para> 114 Basic Input/Output System, the firmware built into most 115 personal computers which is responsible of initializing the 116 hardware after the computer has been turned on and then 117 booting an operating system. VirtualBox ships with its own 118 virtual BIOS that runs when a virtual machine is started. 119 </para> 120 121 </glossdef> 122 123 </glossentry> 124 125 </glossdiv> 126 127 <glossdiv> 128 89 129 <title>C</title> 90 130 91 <glossentry> 92 <glossterm>COM</glossterm> 93 94 <glossdef> 95 <para>Microsoft Component Object Model, a programming infrastructure 96 for modular software. COM allows applications to provide application 97 programming interfaces which can be accessed from various other 98 programming languages and applications. VirtualBox makes use of COM 99 both internally and externally to provide a comprehensive API to 3rd 100 party developers.</para> 101 </glossdef> 102 </glossentry> 103 </glossdiv> 104 105 <glossdiv> 131 <glossentry><glossterm>COM</glossterm> 132 133 <glossdef> 134 135 <para> 136 Microsoft Component Object Model, a programming infrastructure 137 for modular software. COM allows applications to provide 138 application programming interfaces which can be accessed from 139 various other programming languages and applications. 140 VirtualBox makes use of COM both internally and externally to 141 provide a comprehensive API to 3rd party developers. 142 </para> 143 144 </glossdef> 145 146 </glossentry> 147 148 </glossdiv> 149 150 <glossdiv> 151 106 152 <title>D</title> 107 153 108 <glossentry> 109 <glossterm>DHCP</glossterm> 110 111 <glossdef> 112 <para>Dynamic Host Configuration Protocol. This allows a networking 113 device in a network to acquire its IP address (and other networking 114 details) automatically, in order to avoid having to configure all 115 devices in a network with fixed IP addresses. VirtualBox has a 116 built-in DHCP server that delivers an IP addresses to a virtual 117 machine when networking is configured to NAT; see <xref 118 linkend="networkingdetails" />.</para> 119 </glossdef> 120 </glossentry> 121 </glossdiv> 122 123 <glossdiv> 154 <glossentry><glossterm>DHCP</glossterm> 155 156 <glossdef> 157 158 <para> 159 Dynamic Host Configuration Protocol. This allows a networking 160 device in a network to acquire its IP address and other 161 networking details automatically, in order to avoid having to 162 configure all devices in a network with fixed IP addresses. 163 VirtualBox has a built-in DHCP server that delivers an IP 164 addresses to a virtual machine when networking is configured 165 to NAT. See <xref 166 linkend="networkingdetails" />. 167 </para> 168 169 </glossdef> 170 171 </glossentry> 172 173 </glossdiv> 174 175 <glossdiv> 176 124 177 <title>E</title> 125 178 126 <glossentry> 127 <glossterm>EFI</glossterm> 128 129 <glossdef> 130 <para>Extensible Firmware Interface, a firmware built into computers 131 which is designed to replace the aging BIOS. Originally designed by 132 Intel, most modern operating systems can now boot on computers which 133 have EFI instead of a BIOS built into them; see <xref 134 linkend="efi" />.</para> 135 </glossdef> 136 </glossentry> 137 138 <glossentry> 139 <glossterm>EHCI</glossterm> 140 141 <glossdef> 142 <para>Enhanced Host Controller Interface, the interface that 143 implements the USB 2.0 standard.</para> 144 </glossdef> 145 </glossentry> 146 </glossdiv> 147 148 <glossdiv> 179 <glossentry><glossterm>EFI</glossterm> 180 181 <glossdef> 182 183 <para> 184 Extensible Firmware Interface, a firmware built into computers 185 which is designed to replace the aging BIOS. Originally 186 designed by Intel, most modern operating systems can now boot 187 on computers which have EFI instead of a BIOS built into them. 188 See <xref 189 linkend="efi" />. 190 </para> 191 192 </glossdef> 193 194 </glossentry> 195 196 <glossentry><glossterm>EHCI</glossterm> 197 198 <glossdef> 199 200 <para> 201 Enhanced Host Controller Interface, the interface that 202 implements the USB 2.0 standard. 203 </para> 204 205 </glossdef> 206 207 </glossentry> 208 209 </glossdiv> 210 211 <glossdiv> 212 149 213 <title>G</title> 150 214 151 <glossentry> 152 <glossterm>GUI</glossterm> 153 154 <glossdef> 155 <para>Graphical User Interface. Commonly used as an antonym to a 156 "command line interface", in the context of VirtualBox, we sometimes 157 refer to the main graphical 158 <computeroutput>VirtualBox</computeroutput> program as the "GUI", to 159 differentiate it from the <computeroutput>VBoxManage</computeroutput> 160 interface.</para> 161 </glossdef> 162 </glossentry> 163 164 <glossentry> 165 <glossterm>GUID</glossterm> 166 167 <glossdef> 168 <para>See UUID.</para> 169 </glossdef> 170 </glossentry> 171 </glossdiv> 172 173 <glossdiv> 215 <glossentry><glossterm>GUI</glossterm> 216 217 <glossdef> 218 219 <para> 220 Graphical User Interface. Commonly used as an antonym to a 221 "command line interface". In the context of VirtualBox, we 222 sometimes refer to the main graphical 223 <computeroutput>VirtualBox</computeroutput> program as the 224 "GUI", to differentiate it from the 225 <computeroutput>VBoxManage</computeroutput> interface. 226 </para> 227 228 </glossdef> 229 230 </glossentry> 231 232 <glossentry><glossterm>GUID</glossterm> 233 234 <glossdef> 235 236 <para> 237 See UUID. 238 </para> 239 240 </glossdef> 241 242 </glossentry> 243 244 </glossdiv> 245 246 <glossdiv> 247 174 248 <title>I</title> 175 249 176 <glossentry> 177 <glossterm>IDE</glossterm> 178 179 <glossdef> 180 <para>Integrated Drive Electronics, an industry standard for hard disk 181 interfaces. See <xref linkend="harddiskcontrollers" />.</para> 182 </glossdef> 183 </glossentry> 184 185 <glossentry> 186 <glossterm>I/O APIC</glossterm> 187 188 <glossdef> 189 <para>See APIC.</para> 190 </glossdef> 191 </glossentry> 192 193 <glossentry> 194 <glossterm>iSCSI</glossterm> 195 196 <glossdef> 197 <para>Internet SCSI; see <xref linkend="storage-iscsi" />.</para> 198 </glossdef> 199 </glossentry> 200 </glossdiv> 201 202 <glossdiv> 250 <glossentry><glossterm>IDE</glossterm> 251 252 <glossdef> 253 254 <para> 255 Integrated Drive Electronics, an industry standard for hard 256 disk interfaces. See <xref linkend="harddiskcontrollers" />. 257 </para> 258 259 </glossdef> 260 261 </glossentry> 262 263 <glossentry><glossterm>I/O APIC</glossterm> 264 265 <glossdef> 266 267 <para> 268 See APIC. 269 </para> 270 271 </glossdef> 272 273 </glossentry> 274 275 <glossentry><glossterm>iSCSI</glossterm> 276 277 <glossdef> 278 279 <para> 280 Internet SCSI. See <xref linkend="storage-iscsi" />. 281 </para> 282 283 </glossdef> 284 285 </glossentry> 286 287 </glossdiv> 288 289 <glossdiv> 290 203 291 <title>M</title> 204 292 205 <glossentry> 206 <glossterm>MAC</glossterm> 207 208 <glossdef> 209 <para>Media Access Control, a part of an Ethernet network card. A MAC 210 address is a 6-byte number which identifies a network card. It is 211 typically written in hexadecimal notation where the bytes are 212 separated by colons, such as 213 <computeroutput>00:17:3A:5E:CB:08</computeroutput>.</para> 214 </glossdef> 215 </glossentry> 216 217 <glossentry> 218 <glossterm>MSI</glossterm> 219 220 <glossdef> 221 <para>Message Signaled Interrupts, as supported by modern chipsets 222 such as the ICH9; see <xref linkend="settings-motherboard" />. As 223 opposed to traditional pin-based interrupts, with MSI, a small amount 224 of data can accompany the actual interrupt message. This reduces the 225 amount of hardware pins required, allows for more interrupts and 226 better performance.</para> 227 </glossdef> 228 </glossentry> 229 </glossdiv> 230 231 <glossdiv> 293 <glossentry><glossterm>MAC</glossterm> 294 295 <glossdef> 296 297 <para> 298 Media Access Control, a part of an Ethernet network card. A 299 MAC address is a 6-byte number which identifies a network 300 card. It is typically written in hexadecimal notation where 301 the bytes are separated by colons, such as 302 <computeroutput>00:17:3A:5E:CB:08</computeroutput>. 303 </para> 304 305 </glossdef> 306 307 </glossentry> 308 309 <glossentry><glossterm>MSI</glossterm> 310 311 <glossdef> 312 313 <para> 314 Message Signaled Interrupts, as supported by modern chipsets 315 such as the ICH9. See <xref linkend="settings-motherboard" />. 316 As opposed to traditional pin-based interrupts, with MSI, a 317 small amount of data can accompany the actual interrupt 318 message. This reduces the amount of hardware pins required, 319 allows for more interrupts and better performance. 320 </para> 321 322 </glossdef> 323 324 </glossentry> 325 326 </glossdiv> 327 328 <glossdiv> 329 232 330 <title>N</title> 233 331 234 <glossentry> 235 <glossterm>NAT</glossterm> 236 237 <glossdef> 238 <para>Network Address Translation. A technique to share networking 239 interfaces by which an interface modifies the source and/or target IP 240 addresses of network packets according to specific rules. Commonly 241 employed by routers and firewalls to shield an internal network from 242 the Internet, VirtualBox can use NAT to easily share a host's physical 243 networking hardware with its virtual machines. See <xref 244 linkend="network_nat" />.</para> 245 </glossdef> 246 </glossentry> 247 </glossdiv> 248 249 <glossdiv> 332 <glossentry><glossterm>NAT</glossterm> 333 334 <glossdef> 335 336 <para> 337 Network Address Translation. A technique to share networking 338 interfaces by which an interface modifies the source and/or 339 target IP addresses of network packets according to specific 340 rules. Commonly employed by routers and firewalls to shield an 341 internal network from the Internet, VirtualBox can use NAT to 342 easily share a host's physical networking hardware with its 343 virtual machines. See <xref 344 linkend="network_nat" />. 345 </para> 346 347 </glossdef> 348 349 </glossentry> 350 351 </glossdiv> 352 353 <glossdiv> 354 250 355 <title>O</title> 251 356 252 <glossentry> 253 <glossterm>OVF</glossterm> 254 255 <glossdef> 256 <para>Open Virtualization Format, a cross-platform industry standard 257 to exchange virtual appliances between virtualization products; see 258 <xref linkend="ovf" />.</para> 259 </glossdef> 260 </glossentry> 261 </glossdiv> 262 263 <glossdiv> 357 <glossentry><glossterm>OVF</glossterm> 358 359 <glossdef> 360 361 <para> 362 Open Virtualization Format, a cross-platform industry standard 363 to exchange virtual appliances between virtualization 364 products. See <xref linkend="ovf" />. 365 </para> 366 367 </glossdef> 368 369 </glossentry> 370 371 </glossdiv> 372 373 <glossdiv> 374 264 375 <title>P</title> 265 376 266 <glossentry> 267 <glossterm>PAE</glossterm> 268 269 <glossdef> 270 <para>Physical Address Extension. This allows accessing more than 4 GB 271 of RAM even in 32-bit environments; see <xref 272 linkend="settings-general-advanced" />.</para> 273 </glossdef> 274 </glossentry> 275 276 <glossentry> 277 <glossterm>PIC</glossterm> 278 279 <glossdef> 280 <para>See APIC.</para> 281 </glossdef> 282 </glossentry> 283 284 <glossentry> 285 <glossterm>PXE</glossterm> 286 287 <glossdef> 288 <para>Preboot Execution Environment, an industry standard for booting 289 PC systems from remote network locations. It includes DHCP for IP 290 configuration and TFTP for file transfer. Using UNDI, a hardware 291 independent driver stack for accessing the network card from bootstrap 292 code is available.</para> 293 </glossdef> 294 </glossentry> 295 </glossdiv> 296 297 <glossdiv> 377 <glossentry><glossterm>PAE</glossterm> 378 379 <glossdef> 380 381 <para> 382 Physical Address Extension. This allows accessing more than 4 383 GB of RAM even in 32-bit environments. See 384 <xref 385 linkend="settings-general-advanced" />. 386 </para> 387 388 </glossdef> 389 390 </glossentry> 391 392 <glossentry><glossterm>PIC</glossterm> 393 394 <glossdef> 395 396 <para> 397 See APIC. 398 </para> 399 400 </glossdef> 401 402 </glossentry> 403 404 <glossentry><glossterm>PXE</glossterm> 405 406 <glossdef> 407 408 <para> 409 Preboot Execution Environment, an industry standard for 410 booting PC systems from remote network locations. It includes 411 DHCP for IP configuration and TFTP for file transfer. Using 412 UNDI, a hardware independent driver stack for accessing the 413 network card from bootstrap code is available. 414 </para> 415 416 </glossdef> 417 418 </glossentry> 419 420 </glossdiv> 421 422 <glossdiv> 423 298 424 <title>R</title> 299 425 300 <glossentry> 301 <glossterm>RDP</glossterm> 302 303 <glossdef> 304 <para>Remote Desktop Protocol, a protocol developed by Microsoft as an 305 extension to the ITU T.128 and T.124 video conferencing protocol. With 306 RDP, a PC system can be controlled from a remote location using a 307 network connection over which data is transferred in both directions. 308 Typically graphics updates and audio are sent from the remote machine 309 and keyboard and mouse input events are sent from the client. A 310 VirtualBox extension package by Oracle provides VRDP, an enhanced 311 implementation of the relevant standards which is largely compatible 312 with Microsoft's RDP implementation. See <xref linkend="vrde" /> for 313 details.</para> 314 </glossdef> 315 </glossentry> 316 </glossdiv> 317 318 <glossdiv> 426 <glossentry><glossterm>RDP</glossterm> 427 428 <glossdef> 429 430 <para> 431 Remote Desktop Protocol, a protocol developed by Microsoft as 432 an extension to the ITU T.128 and T.124 video conferencing 433 protocol. With RDP, a PC system can be controlled from a 434 remote location using a network connection over which data is 435 transferred in both directions. Typically graphics updates and 436 audio are sent from the remote machine and keyboard and mouse 437 input events are sent from the client. A VirtualBox extension 438 package by Oracle provides VRDP, an enhanced implementation of 439 the relevant standards which is largely compatible with 440 Microsoft's RDP implementation. See <xref linkend="vrde" /> 441 for details. 442 </para> 443 444 </glossdef> 445 446 </glossentry> 447 448 </glossdiv> 449 450 <glossdiv> 451 319 452 <title>S</title> 320 453 321 <glossentry> 322 <glossterm>SAS</glossterm> 323 324 <glossdef> 325 <para>Serial Attached SCSI, an industry standard for hard disk 326 interfaces. See <xref linkend="harddiskcontrollers" />.</para> 327 </glossdef> 328 </glossentry> 329 330 <glossentry> 331 <glossterm>SATA</glossterm> 332 333 <glossdef> 334 <para>Serial ATA, an industry standard for hard disk interfaces. See 335 <xref linkend="harddiskcontrollers" />.</para> 336 </glossdef> 337 </glossentry> 338 339 <glossentry> 340 <glossterm>SCSI</glossterm> 341 342 <glossdef> 343 <para>Small Computer System Interface. An industry standard for data 344 transfer between devices, especially for storage. See <xref 345 linkend="harddiskcontrollers" />.</para> 346 </glossdef> 347 </glossentry> 348 349 <glossentry> 350 <glossterm>SMP</glossterm> 351 352 <glossdef> 353 <para>Symmetrical Multiprocessing, meaning that the resources of a 354 computer are shared between several processors. These can either be 355 several processor chips or, as is more common with modern hardware, 356 multiple CPU cores in one processor.</para> 357 </glossdef> 358 </glossentry> 359 360 <glossentry> 361 <glossterm>SSD</glossterm> 362 363 <glossdef> 364 <para>Solid-state drive, uses microchips for storing data in a computer 365 system. Compared to classical hard-disks they are having no mechanical 366 components like spinning disks. 367 </para> 368 </glossdef> 369 </glossentry> 370 </glossdiv> 371 372 <glossdiv> 454 <glossentry><glossterm>SAS</glossterm> 455 456 <glossdef> 457 458 <para> 459 Serial Attached SCSI, an industry standard for hard disk 460 interfaces. See <xref linkend="harddiskcontrollers" />. 461 </para> 462 463 </glossdef> 464 465 </glossentry> 466 467 <glossentry><glossterm>SATA</glossterm> 468 469 <glossdef> 470 471 <para> 472 Serial ATA, an industry standard for hard disk interfaces. See 473 <xref linkend="harddiskcontrollers" />. 474 </para> 475 476 </glossdef> 477 478 </glossentry> 479 480 <glossentry><glossterm>SCSI</glossterm> 481 482 <glossdef> 483 484 <para> 485 Small Computer System Interface. An industry standard for data 486 transfer between devices, especially for storage. See 487 <xref 488 linkend="harddiskcontrollers" />. 489 </para> 490 491 </glossdef> 492 493 </glossentry> 494 495 <glossentry><glossterm>SMP</glossterm> 496 497 <glossdef> 498 499 <para> 500 Symmetrical Multiprocessing, meaning that the resources of a 501 computer are shared between several processors. These can 502 either be several processor chips or, as is more common with 503 modern hardware, multiple CPU cores in one processor. 504 </para> 505 506 </glossdef> 507 508 </glossentry> 509 510 <glossentry><glossterm>SSD</glossterm> 511 512 <glossdef> 513 514 <para> 515 Solid-state drive, uses microchips for storing data in a 516 computer system. Compared to classical hard-disks they are 517 having no mechanical components like spinning disks. 518 </para> 519 520 </glossdef> 521 522 </glossentry> 523 524 </glossdiv> 525 526 <glossdiv> 527 373 528 <title>T</title> 374 529 375 <glossentry> 376 <glossterm>TAR</glossterm> 377 378 <glossdef> 379 <para>A widely used file format for archiving. Originally, this stood 380 for "Tape ARchive" and was already supported by very early Unix 381 versions for backing up data on tape. The file format is still widely 382 used today, for example, with OVF archives (with an 383 <computeroutput>.ova</computeroutput> file extension); see <xref 384 linkend="ovf" />.</para> 385 </glossdef> 386 </glossentry> 387 </glossdiv> 388 389 <glossdiv> 530 <glossentry><glossterm>TAR</glossterm> 531 532 <glossdef> 533 534 <para> 535 A widely used file format for archiving. Originally, this 536 stood for Tape ARchive and was already supported by very early 537 Unix versions for backing up data on tape. The file format is 538 still widely used today. For example, with OVF archives using 539 an <computeroutput>.ova</computeroutput> file extension. See 540 <xref 541 linkend="ovf" />. 542 </para> 543 544 </glossdef> 545 546 </glossentry> 547 548 </glossdiv> 549 550 <glossdiv> 551 390 552 <title>U</title> 391 553 392 <glossentry> 393 <glossterm>UUID</glossterm> 394 395 <glossdef> 396 <para>A Universally Unique Identifier -- often also called GUID 397 (Globally Unique Identifier) -- is a string of numbers and letters 398 which can be computed dynamically and is guaranteed to be unique. 399 Generally, it is used as a global handle to identify entities. 400 VirtualBox makes use of UUIDs to identify VMs, Virtual Disk Images 401 (VDI files) and other entities.</para> 402 </glossdef> 403 </glossentry> 404 </glossdiv> 405 406 <glossdiv> 554 <glossentry><glossterm>UUID</glossterm> 555 556 <glossdef> 557 558 <para> 559 A Universally Unique Identifier, often also called GUID 560 (Globally Unique Identifier). A UUID is a string of numbers 561 and letters which can be computed dynamically and is 562 guaranteed to be unique. Generally, it is used as a global 563 handle to identify entities. VirtualBox makes use of UUIDs to 564 identify VMs, Virtual Disk Images (VDI files), and other 565 entities. 566 </para> 567 568 </glossdef> 569 570 </glossentry> 571 572 </glossdiv> 573 574 <glossdiv> 575 407 576 <title>V</title> 408 577 409 <glossentry> 410 <glossterm>VM</glossterm> 411 412 <glossdef> 413 <para>Virtual Machine -- a virtual computer that VirtualBox allows you 414 to run on top of your actual hardware. See <xref 415 linkend="virtintro" /> for details.</para> 416 </glossdef> 417 </glossentry> 418 419 <glossentry> 420 <glossterm>VMM</glossterm> 421 422 <glossdef> 423 <para>Virtual Machine Manager -- the component of VirtualBox that 424 controls VM execution. See <xref linkend="technical-components" /> for 425 a list of VirtualBox components.</para> 426 </glossdef> 427 </glossentry> 428 429 <glossentry> 430 <glossterm>VRDE</glossterm> 431 432 <glossdef> 433 <para>VirtualBox Remote Desktop Extension. This interface is built 434 into VirtualBox to allow VirtualBox extension packages to supply 435 remote access to virtual machines. A VirtualBox extension package by 436 Oracle provides VRDP support; see <xref linkend="vrde" /> for 437 details.</para> 438 </glossdef> 439 </glossentry> 440 441 <glossentry> 442 <glossterm>VRDP</glossterm> 443 444 <glossdef> 445 <para>See RDP.</para> 446 </glossdef> 447 </glossentry> 448 449 <glossentry> 450 <glossterm>VT-x</glossterm> 451 452 <glossdef> 453 <para>The hardware virtualization features built into modern Intel 454 processors. See <xref linkend="hwvirt" />.</para> 455 </glossdef> 456 </glossentry> 457 </glossdiv> 458 459 <glossdiv> 578 <glossentry><glossterm>VM</glossterm> 579 580 <glossdef> 581 582 <para> 583 Virtual Machine. A virtual computer that VirtualBox enables 584 you to run on top of your actual hardware. See 585 <xref 586 linkend="virtintro" /> for details. 587 </para> 588 589 </glossdef> 590 591 </glossentry> 592 593 <glossentry><glossterm>VMM</glossterm> 594 595 <glossdef> 596 597 <para> 598 Virtual Machine Manager. The component of VirtualBox that 599 controls VM execution. See 600 <xref linkend="technical-components" /> for a list of 601 VirtualBox components. 602 </para> 603 604 </glossdef> 605 606 </glossentry> 607 608 <glossentry><glossterm>VRDE</glossterm> 609 610 <glossdef> 611 612 <para> 613 VirtualBox Remote Desktop Extension. This interface is built 614 into VirtualBox to allow VirtualBox extension packages to 615 supply remote access to virtual machines. A VirtualBox 616 extension package by Oracle provides VRDP support. See 617 <xref linkend="vrde" />. 618 </para> 619 620 </glossdef> 621 622 </glossentry> 623 624 <glossentry><glossterm>VRDP</glossterm> 625 626 <glossdef> 627 628 <para> 629 See RDP. 630 </para> 631 632 </glossdef> 633 634 </glossentry> 635 636 <glossentry><glossterm>VT-x</glossterm> 637 638 <glossdef> 639 640 <para> 641 The hardware virtualization features built into modern Intel 642 processors. See <xref linkend="hwvirt" />. 643 </para> 644 645 </glossdef> 646 647 </glossentry> 648 649 </glossdiv> 650 651 <glossdiv> 652 460 653 <title>X</title> 461 654 462 <glossentry> 463 <glossterm>xHCI</glossterm> 464 465 <glossdef> 466 <para>eXtended Host Controller Interface, the interface that 467 implements the USB 3.0 standard.</para> 468 </glossdef> 469 </glossentry> 470 471 <glossentry> 472 <glossterm>XML</glossterm> 473 474 <glossdef> 475 <para>The eXtensible Markup Language, a metastandard for all kinds of 476 textual information. XML only specifies how data in the document is 477 organized generally and does not prescribe how to semantically 478 organize content.</para> 479 </glossdef> 480 </glossentry> 481 482 <glossentry> 483 <glossterm>XPCOM</glossterm> 484 485 <glossdef> 486 <para>Mozilla Cross Platform Component Object Model, a programming 487 infrastructure developed by the Mozilla browser project which is 488 similar to Microsoft COM and allows applications to provide a modular 489 programming interface. VirtualBox makes use of XPCOM on Linux both 490 internally and externally to provide a comprehensive API to 491 third-party developers.</para> 492 </glossdef> 493 </glossentry> 494 </glossdiv> 655 <glossentry><glossterm>xHCI</glossterm> 656 657 <glossdef> 658 659 <para> 660 eXtended Host Controller Interface, the interface that 661 implements the USB 3.0 standard. 662 </para> 663 664 </glossdef> 665 666 </glossentry> 667 668 <glossentry><glossterm>XML</glossterm> 669 670 <glossdef> 671 672 <para> 673 The eXtensible Markup Language, a metastandard for all kinds 674 of textual information. XML only specifies how data in the 675 document is organized generally and does not prescribe how to 676 semantically organize content. 677 </para> 678 679 </glossdef> 680 681 </glossentry> 682 683 <glossentry><glossterm>XPCOM</glossterm> 684 685 <glossdef> 686 687 <para> 688 Mozilla Cross Platform Component Object Model, a programming 689 infrastructure developed by the Mozilla browser project which 690 is similar to Microsoft COM and allows applications to provide 691 a modular programming interface. VirtualBox makes use of XPCOM 692 on Linux both internally and externally to provide a 693 comprehensive API to third-party developers. 694 </para> 695 696 </glossdef> 697 698 </glossentry> 699 700 </glossdiv> 701 495 702 </glossary> -
trunk/doc/manual/en_US/user_GuestAdditions.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="guestadditions"> 8 5 9 <title>Guest Additions</title> 6 10 7 <para>The previous chapter covered getting started with VirtualBox and 8 installing operating systems in a virtual machine. For any serious and 9 interactive use, the VirtualBox Guest Additions will make your life much 10 easier by providing closer integration between host and guest and improving 11 the interactive performance of guest systems. This chapter describes the 12 Guest Additions in detail.</para> 13 14 <sect1> 15 <title>Introduction</title> 16 17 <para>As mentioned in <xref linkend="virtintro" />, the Guest Additions 18 are designed to be installed <emphasis>inside</emphasis> a virtual machine 19 after the guest operating system has been installed. They consist of 20 device drivers and system applications that optimize the guest operating 21 system for better performance and usability. Please see <xref 22 linkend="guestossupport" /> for details on what guest operating systems 23 are fully supported with Guest Additions by VirtualBox.</para> 24 25 <para>The VirtualBox Guest Additions for all supported guest operating 26 systems are provided as a single CD-ROM image file which is called 27 <computeroutput>VBoxGuestAdditions.iso</computeroutput>. This image file 28 is located in the installation directory of VirtualBox. To install the 29 Guest Additions for a particular VM, you mount this ISO file in your VM as 30 a virtual CD-ROM and install from there.</para> 31 32 <para>The Guest Additions offer the following features:<glosslist> 33 <glossentry> 34 <glossterm>Mouse pointer integration</glossterm> 35 36 <glossdef> 37 <para>To overcome the limitations for mouse support that were 38 described in <xref linkend="keyb_mouse_normal" />, this provides 39 you with seamless mouse support. You will only have one mouse 40 pointer and pressing the Host key is no longer required to "free" 41 the mouse from being captured by the guest OS. To make this work, 42 a special mouse driver is installed in the guest that communicates 43 with the "real" mouse driver on your host and moves the guest 44 mouse pointer accordingly.</para> 45 </glossdef> 46 </glossentry> 47 48 <glossentry> 49 <glossterm>Shared folders</glossterm> 50 51 <glossdef> 52 <para>These provide an easy way to exchange files between the host 53 and the guest. Much like ordinary Windows network shares, you can 54 tell VirtualBox to treat a certain host directory as a shared 55 folder, and VirtualBox will make it available to the guest 56 operating system as a network share, irrespective of whether guest 57 actually has a network. For details, please refer to <xref 58 linkend="sharedfolders" />.</para> 59 </glossdef> 60 </glossentry> 61 62 <glossentry> 63 <glossterm>Better video support</glossterm> 64 65 <glossdef> 66 <para>While the virtual graphics card which VirtualBox emulates 67 for any guest operating system provides all the basic features, 68 the custom video drivers that are installed with the Guest 69 Additions provide you with extra high and non-standard video modes 70 as well as accelerated video performance.</para> 71 72 <para>In addition, with Windows, Linux and Solaris guests, you can 73 resize the virtual machine's window if the Guest Additions are 74 installed. The video resolution in the guest will be automatically 75 adjusted (as if you had manually entered an arbitrary resolution 76 in the guest's display settings). Please see <xref 77 linkend="intro-resize-window" /> also.</para> 78 79 <para>Finally, if the Guest Additions are installed, 3D graphics 80 and 2D video for guest applications can be accelerated; see <xref 81 linkend="guestadd-video" />.</para> 82 </glossdef> 83 </glossentry> 84 85 <glossentry> 86 <glossterm>Seamless windows</glossterm> 87 88 <glossdef> 89 <para>With this feature, the individual windows that are displayed 90 on the desktop of the virtual machine can be mapped on the host's 91 desktop, as if the underlying application was actually running on 92 the host. See <xref linkend="seamlesswindows" /> for 93 details.</para> 94 </glossdef> 95 </glossentry> 96 97 <glossentry> 98 <glossterm>Generic host/guest communication channels</glossterm> 99 100 <glossdef> 101 <para>The Guest Additions enable you to control and monitor guest 102 execution in ways other than those mentioned above. The so-called 103 "guest properties" provide a generic string-based mechanism to 104 exchange data bits between a guest and a host, some of which have 105 special meanings for controlling and monitoring the guest; see 106 <xref linkend="guestadd-guestprops" /> for details.</para> 107 108 <para>Additionally, applications can be started in a guest from 109 the host; see <xref linkend="guestadd-guestcontrol" />.</para> 110 </glossdef> 111 </glossentry> 112 113 <glossentry> 114 <glossterm>Time synchronization</glossterm> 115 116 <glossdef> 117 <para>With the Guest Additions installed, VirtualBox can ensure 118 that the guest's system time is better synchronized with that of 119 the host.</para> 120 121 <para>For various reasons, the time in the guest might run at a 122 slightly different rate than the time on the host. The host could 123 be receiving updates via NTP and its own time might not run 124 linearly. A VM could also be paused, which stops the flow of time 125 in the guest for a shorter or longer period of time. When the wall 126 clock time between the guest and host only differs slightly, the 127 time synchronization service attempts to gradually and smoothly 128 adjust the guest time in small increments to either "catch up" or 129 "lose" time. When the difference is too great (e.g., a VM paused 130 for hours or restored from saved state), the guest time is changed 131 immediately, without a gradual adjustment.</para> 132 133 <para>The Guest Additions will re-synchronize the time regularly. 134 See <xref linkend="changetimesync" /> for how to configure the 135 parameters of the time synchronization mechanism.</para> 136 </glossdef> 137 </glossentry> 138 139 <glossentry> 140 <glossterm>Shared clipboard</glossterm> 141 142 <glossdef> 143 <para>With the Guest Additions installed, the clipboard of the 144 guest operating system can optionally be shared with your host 145 operating system; see <xref linkend="generalsettings" />.</para> 146 </glossdef> 147 </glossentry> 148 149 <glossentry> 150 <glossterm>Automated logons (credentials passing)</glossterm> 151 152 <glossdef> 153 <para>For details, please see <xref linkend="autologon" />.</para> 154 </glossdef> 155 </glossentry> 156 </glosslist></para> 157 158 <para>Each version of VirtualBox, even minor releases, ship with their own 159 version of the Guest Additions. While the interfaces through which the 160 VirtualBox core communicates with the Guest Additions are kept stable so 161 that Guest Additions already installed in a VM should continue to work 162 when VirtualBox is upgraded on the host, for best results, it is 163 recommended to keep the Guest Additions at the same version.</para> 164 165 <para>Starting with VirtualBox 3.1, the Windows and Linux Guest Additions 166 therefore check automatically whether they have to be updated. If the host 167 is running a newer VirtualBox version than the Guest Additions, a 168 notification with further instructions is displayed in the guest.</para> 169 170 <para>To disable this update check for the Guest Additions of a given 171 virtual machine, set the value of its 172 <computeroutput>/VirtualBox/GuestAdd/CheckHostVersion</computeroutput> 173 guest property to <computeroutput>0</computeroutput>; see <xref 174 linkend="guestadd-guestprops" /> for details.</para> 11 <para> 12 The previous chapter covered getting started with VirtualBox and 13 installing operating systems in a virtual machine. For any serious 14 and interactive use, the VirtualBox Guest Additions will make your 15 life much easier by providing closer integration between host and 16 guest and improving the interactive performance of guest systems. 17 This chapter describes the Guest Additions in detail. 18 </para> 19 20 <sect1 id="guestadd-intro"> 21 22 <title>Introduction to Guest Additions</title> 23 24 <para> 25 As mentioned in <xref linkend="virtintro" />, the Guest Additions 26 are designed to be installed <emphasis>inside</emphasis> a virtual 27 machine after the guest operating system has been installed. They 28 consist of device drivers and system applications that optimize 29 the guest operating system for better performance and usability. 30 See <xref 31 linkend="guestossupport" /> for details on what 32 guest operating systems are fully supported with Guest Additions 33 by VirtualBox. 34 </para> 35 36 <para> 37 The VirtualBox Guest Additions for all supported guest operating 38 systems are provided as a single CD-ROM image file which is called 39 <computeroutput>VBoxGuestAdditions.iso</computeroutput>. This 40 image file is located in the installation directory of VirtualBox. 41 To install the Guest Additions for a particular VM, you mount this 42 ISO file in your VM as a virtual CD-ROM and install from there. 43 </para> 44 45 <para> 46 The Guest Additions offer the following features: 47 </para> 48 49 <itemizedlist> 50 51 <listitem> 52 <para> 53 <emphasis role="bold">Mouse pointer integration</emphasis>. To 54 overcome the limitations for mouse support described in 55 <xref linkend="keyb_mouse_normal" />, this feature provides 56 you with seamless mouse support. You will only have one mouse 57 pointer and pressing the Host key is no longer required to 58 "free" the mouse from being captured by the guest OS. To make 59 this work, a special mouse driver is installed in the guest 60 that communicates with the "real" mouse driver on your host 61 and moves the guest mouse pointer accordingly. 62 </para> 63 </listitem> 64 65 <listitem> 66 <para> 67 <emphasis role="bold">Shared folders.</emphasis> These provide 68 an easy way to exchange files between the host and the guest. 69 Much like ordinary Windows network shares, you can tell 70 VirtualBox to treat a certain host directory as a shared 71 folder, and VirtualBox will make it available to the guest 72 operating system as a network share, irrespective of whether 73 guest actually has a network. See 74 <xref 75 linkend="sharedfolders" />. 76 </para> 77 </listitem> 78 79 <listitem> 80 <para> 81 <emphasis role="bold">Better video support.</emphasis> While 82 the virtual graphics card which VirtualBox emulates for any 83 guest operating system provides all the basic features, the 84 custom video drivers that are installed with the Guest 85 Additions provide you with extra high and non-standard video 86 modes, as well as accelerated video performance. 87 </para> 88 89 <para> 90 In addition, with Windows, Linux, and Solaris guests, you can 91 resize the virtual machine's window if the Guest Additions are 92 installed. The video resolution in the guest will be 93 automatically adjusted, as if you had manually entered an 94 arbitrary resolution in the guest's display settings. See 95 <xref 96 linkend="intro-resize-window" />. 97 </para> 98 99 <para> 100 If the Guest Additions are installed, 3D graphics and 2D video 101 for guest applications can be accelerated. See 102 <xref 103 linkend="guestadd-video" />. 104 </para> 105 </listitem> 106 107 <listitem> 108 <para> 109 <emphasis role="bold">Seamless windows.</emphasis> With this 110 feature, the individual windows that are displayed on the 111 desktop of the virtual machine can be mapped on the host's 112 desktop, as if the underlying application was actually running 113 on the host. See <xref linkend="seamlesswindows" />. 114 </para> 115 </listitem> 116 117 <listitem> 118 <para> 119 <emphasis role="bold">Generic host/guest communication 120 channels.</emphasis> The Guest Additions enable you to control 121 and monitor guest execution. The "guest properties" provide a 122 generic string-based mechanism to exchange data bits between a 123 guest and a host, some of which have special meanings for 124 controlling and monitoring the guest. See 125 <xref linkend="guestadd-guestprops" />. 126 </para> 127 128 <para> 129 Additionally, applications can be started in a guest from the 130 host. See <xref linkend="guestadd-guestcontrol" />. 131 </para> 132 </listitem> 133 134 <listitem> 135 <para> 136 <emphasis role="bold">Time synchronization.</emphasis> With 137 the Guest Additions installed, VirtualBox can ensure that the 138 guest's system time is better synchronized with that of the 139 host. 140 </para> 141 142 <para> 143 For various reasons, the time in the guest might run at a 144 slightly different rate than the time on the host. The host 145 could be receiving updates via NTP and its own time might not 146 run linearly. A VM could also be paused, which stops the flow 147 of time in the guest for a shorter or longer period of time. 148 When the wall clock time between the guest and host only 149 differs slightly, the time synchronization service attempts to 150 gradually and smoothly adjust the guest time in small 151 increments to either "catch up" or "lose" time. When the 152 difference is too great, for example if a VM paused for hours 153 or restored from saved state, the guest time is changed 154 immediately, without a gradual adjustment. 155 </para> 156 157 <para> 158 The Guest Additions will resynchronize the time regularly. See 159 <xref linkend="changetimesync" /> for how to configure the 160 parameters of the time synchronization mechanism. 161 </para> 162 </listitem> 163 164 <listitem> 165 <para> 166 <emphasis role="bold">Shared clipboard.</emphasis> With the 167 Guest Additions installed, the clipboard of the guest 168 operating system can optionally be shared with your host 169 operating system. See <xref linkend="generalsettings" />. 170 </para> 171 </listitem> 172 173 <listitem> 174 <para> 175 <emphasis role="bold">Automated logons.</emphasis> Also called 176 credentials passing. See <xref linkend="autologon" />. 177 </para> 178 </listitem> 179 180 </itemizedlist> 181 182 <para> 183 Each version of VirtualBox, even minor releases, ship with their 184 own version of the Guest Additions. While the interfaces through 185 which the VirtualBox core communicates with the Guest Additions 186 are kept stable so that Guest Additions already installed in a VM 187 should continue to work when VirtualBox is upgraded on the host, 188 for best results, it is recommended to keep the Guest Additions at 189 the same version. 190 </para> 191 192 <para> 193 Starting with VirtualBox 3.1, the Windows and Linux Guest 194 Additions therefore check automatically whether they have to be 195 updated. If the host is running a newer VirtualBox version than 196 the Guest Additions, a notification with further instructions is 197 displayed in the guest. 198 </para> 199 200 <para> 201 To disable this update check for the Guest Additions of a given 202 virtual machine, set the value of its 203 <computeroutput>/VirtualBox/GuestAdd/CheckHostVersion</computeroutput> 204 guest property to <computeroutput>0</computeroutput>. See 205 <xref 206 linkend="guestadd-guestprops" />. 207 </para> 208 175 209 </sect1> 176 210 177 <sect1> 211 <sect1 id="guestadd-install"> 212 178 213 <title>Installing and Maintaining Guest Additions</title> 179 214 180 <para>Guest Additions are available for virtual machines running Windows, 181 Linux, Solaris or OS/2. The following sections describe the specifics of 182 each variant in detail.</para> 215 <para> 216 Guest Additions are available for virtual machines running 217 Windows, Linux, Solaris, or OS/2. The following sections describe 218 the specifics of each variant in detail. 219 </para> 183 220 184 221 <sect2 id="additions-windows"> 222 185 223 <title>Guest Additions for Windows</title> 186 224 187 <para>The VirtualBox Windows Guest Additions are designed to be 188 installed in a virtual machine running a Windows operating system. The 189 following versions of Windows guests are supported:</para> 225 <para> 226 The VirtualBox Windows Guest Additions are designed to be 227 installed in a virtual machine running a Windows operating 228 system. The following versions of Windows guests are supported: 229 </para> 190 230 191 231 <itemizedlist> 192 <listitem> 193 <para>Microsoft Windows NT 4.0 (any service pack)</para> 194 </listitem> 195 196 <listitem> 197 <para>Microsoft Windows 2000 (any service pack)</para> 198 </listitem> 199 200 <listitem> 201 <para>Microsoft Windows XP (any service pack)</para> 202 </listitem> 203 204 <listitem> 205 <para>Microsoft Windows Server 2003 (any service pack)</para> 206 </listitem> 207 208 <listitem> 209 <para>Microsoft Windows Server 2008</para> 210 </listitem> 211 212 <listitem> 213 <para>Microsoft Windows Vista (all editions)</para> 214 </listitem> 215 216 <listitem> 217 <para>Microsoft Windows 7 (all editions)</para> 218 </listitem> 219 220 <listitem> 221 <para>Microsoft Windows 8 (all editions)</para> 222 </listitem> 223 224 <listitem> 225 <para>Microsoft Windows 10 RTM build 10240</para> 226 </listitem> 227 228 <listitem> 229 <para>Microsoft Windows Server 2012</para> 232 233 <listitem> 234 <para> 235 Microsoft Windows NT 4.0 (any service pack) 236 </para> 237 </listitem> 238 239 <listitem> 240 <para> 241 Microsoft Windows 2000 (any service pack) 242 </para> 243 </listitem> 244 245 <listitem> 246 <para> 247 Microsoft Windows XP (any service pack) 248 </para> 249 </listitem> 250 251 <listitem> 252 <para> 253 Microsoft Windows Server 2003 (any service pack) 254 </para> 255 </listitem> 256 257 <listitem> 258 <para> 259 Microsoft Windows Server 2008 260 </para> 261 </listitem> 262 263 <listitem> 264 <para> 265 Microsoft Windows Vista (all editions) 266 </para> 267 </listitem> 268 269 <listitem> 270 <para> 271 Microsoft Windows 7 (all editions) 272 </para> 273 </listitem> 274 275 <listitem> 276 <para> 277 Microsoft Windows 8 (all editions) 278 </para> 279 </listitem> 280 281 <listitem> 282 <para> 283 Microsoft Windows 10 RTM build 10240 284 </para> 285 </listitem> 286 287 <listitem> 288 <para> 289 Microsoft Windows Server 2012 290 </para> 230 291 </listitem> 231 292 … … 233 294 234 295 <sect3 id="mountingadditionsiso"> 235 <title>Installation</title> 236 237 <para>In the "Devices" menu in the virtual machine's menu bar, 238 VirtualBox has a handy menu item named "Insert Guest Additions CD image", 239 which mounts the Guest Additions ISO file inside your virtual machine. 240 A Windows guest should then automatically start the Guest Additions 241 installer, which installs the Guest Additions into your Windows 242 guest. Other guest operating systems (or if automatic start of 243 software on CD is disabled) need manual start of the installer.</para> 296 297 <title>Installing the Windows Guest Additions</title> 298 299 <para> 300 In the Devices menu in the virtual machine's menu bar, 301 VirtualBox has a menu item <emphasis role="bold">Insert Guest 302 Additions CD Image</emphasis>, which mounts the Guest 303 Additions ISO file inside your virtual machine. A Windows 304 guest should then automatically start the Guest Additions 305 installer, which installs the Guest Additions into your 306 Windows guest. Other guest operating systems, or if automatic 307 start of software on CD is disabled, need a manual start of 308 the installer. 309 </para> 244 310 245 311 <note> 246 <para>For the basic Direct3D acceleration to work in a Windows guest, 247 you have to install the WDDM video driver available for Windows Vista 248 or higher.<footnote><para>An experimental WDDM driver was 249 added with VirtualBox 4.1.</para></footnote> For Windows 8 and higher 250 only the WDDM Direct3D video driver is available. For basic Direct3D 251 acceleration to work in Windows XP guests, you have to install the 252 Guest Additions in "Safe Mode", see <xref linkend="KnownIssues" /> for 253 details.</para> 312 <para> 313 For the basic Direct3D acceleration to work in a Windows 314 guest, you have to install the WDDM video driver available 315 for Windows Vista or higher. 316 317 <footnote> 318 319 <para> 320 An experimental WDDM driver was added with VirtualBox 321 4.1. 322 </para> 323 324 </footnote> 325 326 For Windows 8 and higher only the WDDM Direct3D video driver 327 is available. For basic Direct3D acceleration to work in 328 Windows XP guests, you have to install the Guest Additions 329 in Safe Mode. See <xref linkend="KnownIssues" /> for 330 details. 331 </para> 254 332 </note> 255 333 256 <para>If you prefer to mount the additions manually, you can perform 257 the following steps:</para> 334 <para> 335 If you prefer to mount the Guest Additions manually, you can 336 perform the following steps: 337 </para> 258 338 259 339 <orderedlist> 260 <listitem> 261 <para>Start the virtual machine in which you have installed 262 Windows.</para> 263 </listitem> 264 265 <listitem> 266 <para>Select "Mount CD/DVD-ROM" from the "Devices" menu in the 267 virtual machine's menu bar and then "CD/DVD-ROM image". This 268 brings up the Virtual Media Manager described in <xref 269 linkend="vdis" />.</para> 270 </listitem> 271 272 <listitem> 273 <para>In the Virtual Media Manager, press the "Add" button and 274 browse your host file system for the 275 <computeroutput>VBoxGuestAdditions.iso</computeroutput> 276 file:<itemizedlist> 277 <listitem> 278 <para>On a Windows host, you can find this file in the 279 VirtualBox installation directory (usually under 340 341 <listitem> 342 <para> 343 Start the virtual machine in which you have installed 344 Windows. 345 </para> 346 </listitem> 347 348 <listitem> 349 <para> 350 Select <emphasis role="bold">Mount CD/DVD-ROM</emphasis> 351 from the Devices menu in the virtual machine's menu bar 352 and then <emphasis role="bold">CD/DVD-ROM 353 Image</emphasis>. This displays the Virtual Media Manager, 354 described in <xref 355 linkend="vdis" />. 356 </para> 357 </listitem> 358 359 <listitem> 360 <para> 361 In the Virtual Media Manager, click 362 <emphasis role="bold">Add</emphasis> and browse your host 363 file system for the 364 <computeroutput>VBoxGuestAdditions.iso</computeroutput> 365 file. 366 </para> 367 368 <itemizedlist> 369 370 <listitem> 371 <para> 372 On a Windows host, this file is in the VirtualBox 373 installation directory, usually in 280 374 <computeroutput>C:\Program 281 files\Oracle\VirtualBox</computeroutput> ).</para> 282 </listitem> 283 284 <listitem> 285 <para>On Mac OS X hosts, you can find this file in the 286 application bundle of VirtualBox. (Right click on the 287 VirtualBox icon in Finder and choose <emphasis>Show Package 288 Contents</emphasis>. There it is located in the 289 <computeroutput>Contents/MacOS</computeroutput> 290 folder.)</para> 291 </listitem> 292 293 <listitem> 294 <para>On a Linux host, you can find this file in the 295 <computeroutput>additions</computeroutput> folder under 296 where you installed VirtualBox (normally 297 <computeroutput>/opt/VirtualBox/</computeroutput>).</para> 298 </listitem> 299 300 <listitem> 301 <para>On Solaris hosts, you can find this file in the 302 <computeroutput>additions</computeroutput> folder under 303 where you installed VirtualBox (normally 304 <computeroutput>/opt/VirtualBox</computeroutput>).</para> 305 </listitem> 306 </itemizedlist></para> 307 </listitem> 308 309 <listitem> 310 <para>Back in the Virtual Media Manager, select that ISO file and 311 press the "Select" button. This will mount the ISO file and 312 present it to your Windows guest as a CD-ROM.</para> 313 </listitem> 375 files\Oracle\VirtualBox</computeroutput>. 376 </para> 377 </listitem> 378 379 <listitem> 380 <para> 381 On Mac OS X hosts, this file is in the application 382 bundle of VirtualBox. Right-click on the VirtualBox 383 icon in Finder and choose <emphasis role="bold">Show 384 Package Contents</emphasis>. The file is located in 385 the <computeroutput>Contents/MacOS</computeroutput> 386 folder. 387 </para> 388 </listitem> 389 390 <listitem> 391 <para> 392 On a Linux host, this file is in the 393 <computeroutput>additions</computeroutput> folder 394 where you installed VirtualBox, usually 395 <computeroutput>/opt/VirtualBox/</computeroutput>. 396 </para> 397 </listitem> 398 399 <listitem> 400 <para> 401 On Solaris hosts, this file is in the 402 <computeroutput>additions</computeroutput> folder 403 where you installed VirtualBox, usually 404 <computeroutput>/opt/VirtualBox</computeroutput>. 405 </para> 406 </listitem> 407 408 </itemizedlist> 409 </listitem> 410 411 <listitem> 412 <para> 413 In the Virtual Media Manager, select the ISO file and 414 click <emphasis role="bold">Select</emphasis> button. This 415 mounts the ISO file and presents it to your Windows guest 416 as a CD-ROM. 417 </para> 418 </listitem> 419 314 420 </orderedlist> 315 421 316 <para>Unless you have the Autostart feature disabled in your Windows 317 guest, Windows will now autostart the VirtualBox Guest Additions 318 installation program from the Additions ISO. If the Autostart feature 319 has been turned off, choose 320 <computeroutput>VBoxWindowsAdditions.exe</computeroutput> from the 321 CD/DVD drive inside the guest to start the installer.</para> 322 323 <para>The installer will add several device drivers to the Windows 324 driver database and then invoke the hardware detection wizard.</para> 325 326 <para>Depending on your configuration, it might display warnings that 327 the drivers are not digitally signed. You must confirm these in order 328 to continue the installation and properly install the 329 Additions.</para> 330 331 <para>After installation, reboot your guest operating system to 332 activate the Additions.</para> 422 <para> 423 Unless you have the Autostart feature disabled in your Windows 424 guest, Windows will now autostart the VirtualBox Guest 425 Additions installation program from the Additions ISO. If the 426 Autostart feature has been turned off, choose 427 <computeroutput>VBoxWindowsAdditions.exe</computeroutput> from 428 the CD/DVD drive inside the guest to start the installer. 429 </para> 430 431 <para> 432 The installer will add several device drivers to the Windows 433 driver database and then invoke the hardware detection wizard. 434 </para> 435 436 <para> 437 Depending on your configuration, it might display warnings 438 that the drivers are not digitally signed. You must confirm 439 these in order to continue the installation and properly 440 install the Additions. 441 </para> 442 443 <para> 444 After installation, reboot your guest operating system to 445 activate the Additions. 446 </para> 447 333 448 </sect3> 334 449 335 <sect3> 450 <sect3 id="additions-windows-updating"> 451 336 452 <title>Updating the Windows Guest Additions</title> 337 453 338 <para>Windows Guest Additions can be updated by running the 339 installation program again, as previously described. This will then 340 replace the previous Additions drivers with updated versions.</para> 341 342 <para>Alternatively, you may also open the Windows Device Manager and 343 select "Update driver..." for two devices:</para> 454 <para> 455 Windows Guest Additions can be updated by running the 456 installation program again. This replaces the previous 457 Additions drivers with updated versions. 458 </para> 459 460 <para> 461 Alternatively, you can also open the Windows Device Manager 462 and select <emphasis role="bold">Update Driver...</emphasis> 463 for the following devices: 464 </para> 344 465 345 466 <orderedlist> 346 <listitem> 347 <para>the VirtualBox Graphics Adapter and</para> 348 </listitem> 349 350 <listitem> 351 <para>the VirtualBox System Device.</para> 352 </listitem> 467 468 <listitem> 469 <para> 470 VirtualBox Graphics Adapter 471 </para> 472 </listitem> 473 474 <listitem> 475 <para> 476 VirtualBox System Device 477 </para> 478 </listitem> 479 353 480 </orderedlist> 354 481 355 <para>For each, choose to provide your own driver and use "Have Disk" 356 to point the wizard to the CD-ROM drive with the Guest 357 Additions.</para> 482 <para> 483 For each, choose the option to provide your own driver, click 484 <emphasis role="bold">Have Disk</emphasis> and navigate to the 485 CD-ROM drive with the Guest Additions. 486 </para> 487 358 488 </sect3> 359 489 360 <sect3> 490 <sect3 id="additions-windows-install-unattended"> 491 361 492 <title>Unattended Installation</title> 362 493 363 <para>As a prerequisite for avoid popups while performing an 364 unattended installation of the VirtualBox Guest Additions, the code 365 signing certificates used to sign the drivers needs to be installed in 366 the right certificates stores in the guest system. Failing to do this 367 will cause a typical windows installation to pop up a dialog asking 368 whether its allowable to install each driver.</para> 369 370 <note><para>On some Windows versions like Windows 2000 and Windows XP the user intervention 371 popups mentioned above always will be displayed, even after importing the Oracle certificates.</para></note> 372 373 <para>Since VirtualBox 4.2 installing those code signing certificates 374 on a Windows guest can be done in an automated fashion using the 375 <computeroutput>VBoxCertUtil.exe</computeroutput> utility found on the Guest 376 Additions installation CD in the <computeroutput>cert</computeroutput> 377 folder:</para> 378 379 <itemizedlist> 380 <listitem> 381 <para>Log in as Administrator on the guest.</para> 382 </listitem> 383 384 <listitem> 385 <para>Mount the VirtualBox Guest Additions .ISO.</para> 386 </listitem> 387 388 <listitem> 389 <para>Open a command line window on the guest and change to 390 the <computeroutput>cert</computeroutput> folder on the VirtualBox 391 Guest Additions CD.</para> 392 </listitem> 393 394 <listitem> 395 <para>Do<screen>VBoxCertUtil.exe add-trusted-publisher vbox*.cer --root vbox*.cer</screen></para> 396 <para>This will install the certificates to the certificate store. When installing the same certificate 397 more than once, an appropriate error will be displayed.</para> 398 </listitem> 399 </itemizedlist> 400 401 <para>Prior to VirtualBox 4.2 the code signing certificates need to be imported in more manual style 402 using the <computeroutput>certutil.exe</computeroutput> utility, which is shipped since Windows 403 Vista. For Windows versions before Vista you need to download and install <computeroutput>certutil.exe</computeroutput> 404 manually. Since the certificates are not accompanied on the VirtualBox Guest Additions CD-ROM 405 prior to 4.2, these need to get extracted from a signed VirtualBox executable first.</para> 406 407 <para>In the following example the needed certificates will be extracted from the VirtualBox 408 Windows Guest Additions installer on the CD-ROM:</para> 409 410 <glosslist> 411 <glossentry> 412 <glossterm>VeriSign Code Signing CA</glossterm> 413 <glossdef> 414 <para>Open the Windows Explorer.</para> 415 <itemizedlist> 416 <listitem> 417 <para>Right click on VBoxWindowsAdditions-<Architecture>.exe, 418 click on "Properties"</para> 419 </listitem> 420 <listitem> 421 <para>Go to tab "Digital Signatures", choose "Oracle Corporation" and click on "Details"</para> 422 </listitem> 423 <listitem> 424 <para>In tab "General" click on "View Certificate"</para> 425 </listitem> 426 <listitem> 427 <para>In tab "Certification Path" select "VeriSign Class 3 Public Primary CA"</para> 428 </listitem> 429 <listitem> 430 <para>Click on "View Certificate"</para> 431 </listitem> 432 <listitem> 433 <para>In tab "Details" click on "Copy to File ..."</para> 434 </listitem> 435 <listitem> 436 <para>In the upcoming wizard choose "DER encoded binary X.509 (.CER)" 437 and save the certificate file to a local path, finish the wizard</para> 438 </listitem> 439 <listitem> 440 <para>Close certificate dialog for "Verisign Class 3 Code Signing 441 2010 CA"</para> 442 </listitem> 443 </itemizedlist> 444 </glossdef> 445 </glossentry> 446 447 <glossentry> 448 <glossterm>Oracle Corporation</glossterm> 449 <glossdef> 450 <para>Open the Windows Explorer.</para> 451 <itemizedlist> 452 <listitem> 453 <para>Right click on VBoxWindowsAdditions-<Architecture>.exe, 454 click on "Properties"</para> 455 </listitem> 456 <listitem> 457 <para>Go to tab "Digital Signatures", choose "Oracle Corporation" and click on "Details"</para> 458 </listitem> 459 <listitem> 460 <para>In tab "General" click on "View Certificate"</para> 461 </listitem> 462 <listitem> 463 <para>In tab "Details" click on "Copy to File ..."</para> 464 </listitem> 465 <listitem> 466 <para>In the upcoming wizard choose "DER encoded binary X.509 (.CER)" 467 and save the certificate file to a local path, finish the wizard</para> 468 </listitem> 469 <listitem> 470 <para>Close certificate dialog for "Oracle Corporation"</para> 471 </listitem> 472 </itemizedlist> 473 </glossdef> 474 </glossentry> 475 </glosslist> 476 477 <para>After exporting the two certificates above they can be imported into the 478 certificate store using the <computeroutput>certutil.exe</computeroutput> 479 utility:</para> 480 481 <para><computeroutput>certutil -addstore -f Root "<Path to exported 482 certificate file>"</computeroutput></para> 483 484 <para>In order to allow for completely unattended guest installations, 485 you can specify a command line parameter to the install 486 launcher:</para> 487 488 <screen>VBoxWindowsAdditions.exe /S</screen> 489 490 <para>This automatically installs the right files and drivers for the 491 corresponding platform (32- or 64-bit).</para> 492 493 <note><para>By default on an unattended installation on a Vista or Windows 494 7 guest, there will be the XPDM graphics driver installed. This graphics 495 driver does not support Windows Aero / Direct3D on the guest – instead 496 the WDDM graphics driver needs to be installed. To select this driver by 497 default, add the command line parameter 498 <computeroutput>/with_wddm</computeroutput> when invoking the Windows 499 Guest Additions installer (only required for Vista and Windows 7).</para></note> 500 <note><para>For Windows Aero to run correctly on a guest, the guest's 501 VRAM size needs to be configured to at least 128 MB.</para></note> 502 503 <para>For more options regarding unattended guest installations, 504 consult the command line help by using the command:</para> 505 506 <screen>VBoxWindowsAdditions.exe /?</screen> 494 <para> 495 As a prerequisite for avoid popups while performing an 496 unattended installation of the VirtualBox Guest Additions, the 497 code signing certificates used to sign the drivers needs to be 498 installed in the right certificates stores in the guest 499 system. Failing to do this will cause a typical windows 500 installation to pop up a dialog asking whether its allowable 501 to install each driver. 502 </para> 503 504 <note> 505 <para> 506 On some Windows versions like Windows 2000 and Windows XP 507 the user intervention popups mentioned above always will be 508 displayed, even after importing the Oracle certificates. 509 </para> 510 </note> 511 512 <para> 513 Since VirtualBox 4.2, installing the code signing certificates 514 on a Windows guest can be done in an automated fashion using 515 the <computeroutput>VBoxCertUtil.exe</computeroutput> utility 516 found on the Guest Additions installation CD in the 517 <computeroutput>cert</computeroutput> folder: 518 </para> 519 520 <orderedlist> 521 522 <listitem> 523 <para> 524 Log in as Administrator on the guest. 525 </para> 526 </listitem> 527 528 <listitem> 529 <para> 530 Mount the VirtualBox Guest Additions .ISO. 531 </para> 532 </listitem> 533 534 <listitem> 535 <para> 536 Open a command line window on the guest and change to the 537 <computeroutput>cert</computeroutput> folder on the 538 VirtualBox Guest Additions CD. 539 </para> 540 </listitem> 541 542 <listitem> 543 <para> 544 Run the following command: 545 </para> 546 547 <screen>VBoxCertUtil.exe add-trusted-publisher vbox*.cer --root vbox*.cer</screen> 548 549 <para> 550 This command installs the certificates to the certificate 551 store. When installing the same certificate more than 552 once, an appropriate error will be displayed. 553 </para> 554 </listitem> 555 556 </orderedlist> 557 558 <para> 559 Prior to VirtualBox 4.2 the code signing certificates need to 560 be imported in more manual style using the 561 <computeroutput>certutil.exe</computeroutput> utility, which 562 is shipped since Windows Vista. For Windows versions before 563 Vista you need to download and install 564 <computeroutput>certutil.exe</computeroutput> manually. Since 565 the certificates are not accompanied on the VirtualBox Guest 566 Additions CD-ROM prior to 4.2, these need to get extracted 567 from a signed VirtualBox executable first. 568 </para> 569 570 <para> 571 In the following examples the required certificates are 572 extracted from the VirtualBox Windows Guest Additions 573 installer on the CD-ROM. 574 </para> 575 576 <para> 577 For a VeriSign Code Signing CA certificate, do the following: 578 </para> 579 580 <orderedlist> 581 582 <listitem> 583 <para> 584 Open the Windows Explorer. 585 </para> 586 </listitem> 587 588 <listitem> 589 <para> 590 Right click on 591 VBoxWindowsAdditions-<replaceable>arch</replaceable>.exe, 592 and choose <emphasis role="bold">Properties</emphasis>. 593 </para> 594 </listitem> 595 596 <listitem> 597 <para> 598 Go to the Digital Signatures tab, choose 599 <emphasis role="bold">Oracle Corporation</emphasis> and 600 click on <emphasis role="bold">Details</emphasis>. 601 </para> 602 </listitem> 603 604 <listitem> 605 <para> 606 On the General tab, click on <emphasis role="bold">View 607 Certificate</emphasis>. 608 </para> 609 </listitem> 610 611 <listitem> 612 <para> 613 On the Certification Path tab, select 614 <emphasis role="bold">VeriSign Class 3 Public Primary 615 CA</emphasis>. 616 </para> 617 </listitem> 618 619 <listitem> 620 <para> 621 Click <emphasis role="bold">View Certificate</emphasis>. 622 </para> 623 </listitem> 624 625 <listitem> 626 <para> 627 On the Details tab, click <emphasis role="bold">Copy to 628 File</emphasis>. 629 </para> 630 </listitem> 631 632 <listitem> 633 <para> 634 In the displayed wizard choose <emphasis role="bold">DER 635 Encoded Binary X.509 (.CER)</emphasis> and save the 636 certificate file to a local path. Close the wizard. 637 </para> 638 </listitem> 639 640 <listitem> 641 <para> 642 Close the certificate dialog for Verisign Class 3 Code 643 Signing 2010 CA. 644 </para> 645 </listitem> 646 647 </orderedlist> 648 649 <para> 650 For an Oracle Corporation CA certificate, do the following: 651 </para> 652 653 <orderedlist> 654 655 <listitem> 656 <para> 657 Open the Windows Explorer. 658 </para> 659 </listitem> 660 661 <listitem> 662 <para> 663 Right-click on 664 VBoxWindowsAdditions-<replaceable>arch</replaceable>.exe 665 and choose <emphasis role="bold">Properties</emphasis>. 666 </para> 667 </listitem> 668 669 <listitem> 670 <para> 671 Go to the Digital Signatures tab, choose 672 <emphasis role="bold">Oracle Corporation</emphasis> and 673 click on <emphasis role="bold">Details</emphasis>. 674 </para> 675 </listitem> 676 677 <listitem> 678 <para> 679 On the General tab, click on <emphasis role="bold">View 680 Certificate</emphasis>. 681 </para> 682 </listitem> 683 684 <listitem> 685 <para> 686 On the Details tab, click on <emphasis role="bold">Copy to 687 File</emphasis>. 688 </para> 689 </listitem> 690 691 <listitem> 692 <para> 693 In the displayed wizard choose <emphasis role="bold">DER 694 Encoded Binary X.509 (.CER)</emphasis> and save the 695 certificate file to a local path. Close the wizard 696 </para> 697 </listitem> 698 699 <listitem> 700 <para> 701 Close the certificate dialog for Oracle Corporation. 702 </para> 703 </listitem> 704 705 </orderedlist> 706 707 <para> 708 After exporting the two certificates above they can be 709 imported into the certificate store using the 710 <computeroutput>certutil.exe</computeroutput> utility, as 711 follows: 712 </para> 713 714 <screen>certutil -addstore -f Root "<Path to 715 exported certificate file>"</screen> 716 717 <para> 718 In order to allow for completely unattended guest 719 installations, you can specify a command line parameter to the 720 install launcher: 721 </para> 722 723 <screen>VBoxWindowsAdditions.exe /S</screen> 724 725 <para> 726 This automatically installs the right files and drivers for 727 the corresponding platform, 32-bit or 64-bit. 728 </para> 729 730 <note> 731 <para> 732 By default on an unattended installation on a Vista or 733 Windows 7 guest, there will be the XPDM graphics driver 734 installed. This graphics driver does not support Windows 735 Aero / Direct3D on the guest. Instead, the WDDM graphics 736 driver needs to be installed. To select this driver by 737 default, add the command line parameter 738 <computeroutput>/with_wddm</computeroutput> when invoking 739 the Windows Guest Additions installer. This is only required 740 for Vista and Windows 7. 741 </para> 742 </note> 743 744 <note> 745 <para> 746 For Windows Aero to run correctly on a guest, the guest's 747 VRAM size needs to be configured to at least 128 MB. 748 </para> 749 </note> 750 751 <para> 752 For more options regarding unattended guest installations, 753 consult the command line help by using the command: 754 </para> 755 756 <screen>VBoxWindowsAdditions.exe /?</screen> 757 507 758 </sect3> 508 759 509 760 <sect3 id="windows-guest-file-extraction"> 510 <title>Manual file extraction</title> 511 512 <para>If you would like to install the files and drivers manually, you 513 can extract the files from the Windows Guest Additions setup by 514 typing:</para> 515 516 <screen>VBoxWindowsAdditions.exe /extract</screen> 517 518 <para>To explicitly extract the Windows Guest Additions for another 519 platform than the current running one (e.g. 64-bit files on a 32-bit 520 system), you have to execute the appropriate platform installer 521 (<computeroutput>VBoxWindowsAdditions-x86.exe</computeroutput> or 522 <computeroutput>VBoxWindowsAdditions-amd64.exe</computeroutput>) with 523 the <computeroutput>/extract</computeroutput> parameter.</para> 761 762 <title>Manual file Extraction</title> 763 764 <para> 765 If you would like to install the files and drivers manually, 766 you can extract the files from the Windows Guest Additions 767 setup as follows 768 </para> 769 770 <screen>VBoxWindowsAdditions.exe /extract</screen> 771 772 <para> 773 To explicitly extract the Windows Guest Additions for another 774 platform than the current running one, such as 64-bit files on 775 a 32-bit system, you must use the appropriate platform 776 installer. Use 777 <computeroutput>VBoxWindowsAdditions-x86.exe</computeroutput> 778 or 779 <computeroutput>VBoxWindowsAdditions-amd64.exe</computeroutput> 780 with the <computeroutput>/extract</computeroutput> parameter. 781 </para> 782 524 783 </sect3> 525 784 526 785 </sect2> 527 786 528 <sect2> 787 <sect2 id="additions-linux"> 788 529 789 <title>Guest Additions for Linux</title> 530 790 531 <para>Like the Windows Guest Additions, the VirtualBox Guest Additions 532 for Linux are a set of device drivers and system applications which may 533 be installed in the guest operating system.</para> 534 535 <para>The following Linux distributions are officially supported:</para> 791 <para> 792 Like the Windows Guest Additions, the VirtualBox Guest Additions 793 for Linux are a set of device drivers and system applications 794 which may be installed in the guest operating system. 795 </para> 796 797 <para> 798 The following Linux distributions are officially supported: 799 </para> 536 800 537 801 <itemizedlist> 538 <listitem> 539 <para>Oracle Linux as of version 5 including UEK kernels;</para> 540 </listitem> 541 542 <listitem> 543 <para>Fedora as of Fedora Core 4;</para> 544 </listitem> 545 546 <listitem> 547 <para>Redhat Enterprise Linux as of version 3;</para> 548 </listitem> 549 550 <listitem> 551 <para>SUSE and openSUSE Linux as of version 9;</para> 552 </listitem> 553 554 <listitem> 555 <para>Ubuntu as of version 5.10.</para> 556 </listitem> 802 803 <listitem> 804 <para> 805 Oracle Linux as of version 5, including UEK kernels 806 </para> 807 </listitem> 808 809 <listitem> 810 <para> 811 Fedora as of Fedora Core 4 812 </para> 813 </listitem> 814 815 <listitem> 816 <para> 817 Redhat Enterprise Linux as of version 3 818 </para> 819 </listitem> 820 821 <listitem> 822 <para> 823 SUSE and openSUSE Linux as of version 9 824 </para> 825 </listitem> 826 827 <listitem> 828 <para> 829 Ubuntu as of version 5.10 830 </para> 831 </listitem> 832 557 833 </itemizedlist> 558 834 559 <para>Many other distributions are known to work with the Guest 560 Additions.</para> 561 562 <para>The version of the Linux kernel supplied by default in SUSE and 563 openSUSE 10.2, Ubuntu 6.10 (all versions) and Ubuntu 6.06 (server 564 edition) contains a bug which can cause it to crash during startup when 565 it is run in a virtual machine. The Guest Additions work in those 566 distributions.</para> 567 568 <para>Note that some Linux distributions already come with all or part of 569 the VirtualBox Guest Additions. You may choose to keep the distribution's 570 version of the Guest Additions but these are often not up to date and 571 limited in functionality, so we recommend replacing them with the 572 Guest Additions that come with VirtualBox. The VirtualBox Linux Guest 573 Additions installer tries to detect existing installation and replace 574 them but depending on how the distribution integrates the Guest 575 Additions, this may require some manual interaction. It is highly 576 recommended to take a snapshot of the virtual machine before replacing 577 pre-installed Guest Additions.</para> 578 579 <sect3> 835 <para> 836 Many other distributions are known to work with the Guest 837 Additions. 838 </para> 839 840 <para> 841 The version of the Linux kernel supplied by default in SUSE and 842 openSUSE 10.2, Ubuntu 6.10 (all versions) and Ubuntu 6.06 843 (server edition) contains a bug which can cause it to crash 844 during startup when it is run in a virtual machine. The Guest 845 Additions work in those distributions. 846 </para> 847 848 <para> 849 Note that some Linux distributions already come with all or part 850 of the VirtualBox Guest Additions. You may choose to keep the 851 distribution's version of the Guest Additions but these are 852 often not up to date and limited in functionality, so we 853 recommend replacing them with the Guest Additions that come with 854 VirtualBox. The VirtualBox Linux Guest Additions installer tries 855 to detect existing installation and replace them but depending 856 on how the distribution integrates the Guest Additions, this may 857 require some manual interaction. It is highly recommended to 858 take a snapshot of the virtual machine before replacing 859 pre-installed Guest Additions. 860 </para> 861 862 <sect3 id="additions-linux-install"> 863 580 864 <title>Installing the Linux Guest Additions</title> 581 865 582 <para>The VirtualBox Guest Additions for Linux are provided on the 583 same virtual CD-ROM file as the Guest Additions for Windows described 584 above. They also come with an installation program guiding you through 585 the setup process, although, due to the significant differences between 586 Linux distributions, installation may be slightly more complex.</para> 587 588 <para>Installation generally involves the following steps:</para> 866 <para> 867 The VirtualBox Guest Additions for Linux are provided on the 868 same virtual CD-ROM file as the Guest Additions for Windows. 869 See <xref linkend="mountingadditionsiso"/>. They also come 870 with an installation program that guides you through the setup 871 process. However, due to the significant differences between 872 Linux distributions, installation may be slightly more complex 873 when compared to Windows. 874 </para> 875 876 <para> 877 Installation generally involves the following steps: 878 </para> 589 879 590 880 <orderedlist> 591 <listitem> 592 <para>Before installing the Guest Additions, you will have to 593 prepare your guest system for building external kernel modules. 594 This works similarly as described in <xref 595 linkend="externalkernelmodules" />, except that this step must now 596 be performed in your Linux <emphasis>guest</emphasis> instead of 597 on a Linux host system, as described there.</para> 598 599 <para>If you suspect that something has gone wrong, check that your 600 guest is set up correctly and try executing the command 601 <screen>rcvboxadd setup</screen> as root.</para> 602 </listitem> 603 604 <listitem> 605 <para>Insert the 606 <computeroutput>VBoxGuestAdditions.iso</computeroutput> CD file 607 into your Linux guest's virtual CD-ROM drive, exactly the same way 608 as described for a Windows guest in <xref 609 linkend="mountingadditionsiso" />.</para> 610 </listitem> 611 612 <listitem> 613 <para>Change to the directory where your CD-ROM drive is mounted 614 and execute as root:</para> 615 616 <screen>sh ./VBoxLinuxAdditions.run</screen> 617 618 </listitem> 881 882 <listitem> 883 <para> 884 Before installing the Guest Additions, you prepare your 885 guest system for building external kernel modules. This 886 works as described in 887 <xref 888 linkend="externalkernelmodules" />, 889 except that this step must be performed in your Linux 890 <emphasis>guest</emphasis> instead of on a Linux host 891 system. 892 </para> 893 894 <para> 895 If you suspect that something has gone wrong, check that 896 your guest is set up correctly and run the following 897 command as root: 898 </para> 899 900 <screen>rcvboxadd setup</screen> 901 </listitem> 902 903 <listitem> 904 <para> 905 Insert the 906 <computeroutput>VBoxGuestAdditions.iso</computeroutput> CD 907 file into your Linux guest's virtual CD-ROM drive, as 908 described for a Windows guest in 909 <xref 910 linkend="mountingadditionsiso" />. 911 </para> 912 </listitem> 913 914 <listitem> 915 <para> 916 Change to the directory where your CD-ROM drive is mounted 917 and run the following command as root: 918 </para> 919 920 <screen>sh ./VBoxLinuxAdditions.run</screen> 921 </listitem> 922 619 923 </orderedlist> 924 620 925 </sect3> 621 926 622 <sect3> 623 <title>Graphics and mouse integration</title> 624 625 <para>In Linux and Solaris guests, VirtualBox graphics and mouse 626 integration goes through the X Window System. VirtualBox can use 627 the X.Org variant of the system (or XFree86 version 4.3 which is 628 identical to the first X.Org release). During the installation process, 629 the X.Org display server will be set up to use the graphics and mouse 630 drivers which come with the Guest Additions.</para> 631 632 <para>After installing the Guest Additions into a fresh installation of 633 a supported Linux distribution or Solaris system (many unsupported 634 systems will work correctly too), the guest's graphics 635 mode will change to fit the size of the VirtualBox window 636 on the host when it is resized. You can also ask the guest system to 637 switch to a particular resolution by sending a "video mode hint" using 638 the <computeroutput>VBoxManage</computeroutput> tool.</para> 639 640 <para>Multiple guest monitors are supported in guests using the X.Org 641 server version 1.3 (which is part of release 7.3 of the X Window System 642 version 11) or a later version. The layout of the guest screens can 643 be adjusted as needed using the tools which come with the guest 644 operating system.</para> 645 646 <para>If you want to understand more about the details of how the 647 X.Org drivers are set up (in particular if you wish to use them in a 648 setting which our installer doesn't handle correctly), you should read 649 <xref linkend="guestxorgsetup" />.</para> 927 <sect3 id="additions-linux-graphics-mouse"> 928 929 <title>Graphics and Mouse Integration</title> 930 931 <para> 932 In Linux and Solaris guests, VirtualBox graphics and mouse 933 integration goes through the X Window System. VirtualBox can 934 use the X.Org variant of the system, or XFree86 version 4.3 935 which is identical to the first X.Org release. During the 936 installation process, the X.Org display server will be set up 937 to use the graphics and mouse drivers which come with the 938 Guest Additions. 939 </para> 940 941 <para> 942 After installing the Guest Additions into a fresh installation 943 of a supported Linux distribution or Solaris system, many 944 unsupported systems will work correctly too, the guest's 945 graphics mode will change to fit the size of the VirtualBox 946 window on the host when it is resized. You can also ask the 947 guest system to switch to a particular resolution by sending a 948 video mode hint using the 949 <computeroutput>VBoxManage</computeroutput> tool. 950 </para> 951 952 <para> 953 Multiple guest monitors are supported in guests using the 954 X.Org server version 1.3, which is part of release 7.3 of the 955 X Window System version 11, or a later version. The layout of 956 the guest screens can be adjusted as needed using the tools 957 which come with the guest operating system. 958 </para> 959 960 <para> 961 If you want to understand more about the details of how the 962 X.Org drivers are set up, in particular if you wish to use 963 them in a setting which our installer does not handle 964 correctly, see <xref linkend="guestxorgsetup" />. 965 </para> 966 650 967 </sect3> 651 968 652 <sect3> 969 <sect3 id="additions-linux-updating"> 970 653 971 <title>Updating the Linux Guest Additions</title> 654 972 655 <para>The Guest Additions can simply be updated by going through the 656 installation procedure again with an updated CD-ROM image. This will 657 replace the drivers with updated versions. You should reboot after 658 updating the Guest Additions.</para> 973 <para> 974 The Guest Additions can simply be updated by going through the 975 installation procedure again with an updated CD-ROM image. 976 This will replace the drivers with updated versions. You 977 should reboot after updating the Guest Additions. 978 </para> 979 659 980 </sect3> 660 981 661 <sect3> 982 <sect3 id="additions-linux-uninstall"> 983 662 984 <title>Uninstalling the Linux Guest Additions</title> 663 985 664 <para>If you have a version of the Guest Additions installed on your 665 virtual machine and wish to remove it without installing new ones, you 666 can do so by inserting the Guest Additions CD image into the virtual 667 CD-ROM drive as described above and running the installer for the 668 current Guest Additions with the "uninstall" parameter from the path 669 that the CD image is mounted on in the guest: <screen>sh ./VBoxLinuxAdditions.run uninstall</screen></para> 670 671 <para>While this will normally work without issues, you may need to do some 672 manual cleanup of the guest (particularly of the XFree86Config or 673 xorg.conf file) in some cases, particularly if the Additions version 674 installed or the guest operating system were very old, or if you made 675 your own changes to the Guest Additions setup after you installed 676 them.</para> 677 678 <para>Starting with version 3.1.0, you can uninstall the Additions by 679 invoking <screen>/opt/VBoxGuestAdditions-@VBOX_VERSION_STRING@/uninstall.sh</screen>Please 680 replace 681 <computeroutput>/opt/VBoxGuestAdditions-@VBOX_VERSION_STRING@</computeroutput> 682 with the correct Guest Additions installation directory.</para> 986 <para> 987 If you have a version of the Guest Additions installed on your 988 virtual machine and wish to remove it without installing new 989 ones, you can do so by inserting the Guest Additions CD image 990 into the virtual CD-ROM drive as described above and running 991 the installer for the current Guest Additions with the 992 <computeroutput>uninstall</computeroutput> parameter from the 993 path that the CD image is mounted on in the guest: 994 995 <screen>sh ./VBoxLinuxAdditions.run uninstall</screen> 996 </para> 997 998 <para> 999 While this will normally work without issues, you may need to 1000 do some manual cleanup of the guest in some cases, especially 1001 of the XFree86Config or xorg.conf file. In particular, if the 1002 Additions version installed or the guest operating system were 1003 very old, or if you made your own changes to the Guest 1004 Additions setup after you installed them. 1005 </para> 1006 1007 <para> 1008 Starting with version 3.1.0, you can uninstall the Additions 1009 as follows: 1010 </para> 1011 1012 <screen>/opt/VBoxGuestAdditions-<replaceable>version</replaceable>/uninstall.sh</screen> 1013 1014 <para> 1015 Replace 1016 <computeroutput>/opt/VBoxGuestAdditions-<replaceable>version</replaceable></computeroutput> 1017 with the correct Guest Additions installation directory. 1018 </para> 1019 683 1020 </sect3> 1021 684 1022 </sect2> 685 1023 686 <sect2> 1024 <sect2 id="additions-solaris"> 1025 687 1026 <title>Guest Additions for Solaris</title> 688 1027 689 <para>Like the Windows Guest Additions, the VirtualBox Guest Additions 690 for Solaris take the form of a set of device drivers and system 691 applications which may be installed in the guest operating 692 system.</para> 693 694 <para>The following Solaris distributions are officially 695 supported:</para> 1028 <para> 1029 Like the Windows Guest Additions, the VirtualBox Guest Additions 1030 for Solaris take the form of a set of device drivers and system 1031 applications which may be installed in the guest operating 1032 system. 1033 </para> 1034 1035 <para> 1036 The following Solaris distributions are officially supported: 1037 </para> 696 1038 697 1039 <itemizedlist> 698 <listitem> 699 <para>Solaris 11 including Solaris 11 Express;</para> 700 </listitem> 701 702 <listitem> 703 <para>Solaris 10 (u5 and higher);</para> 704 </listitem> 1040 1041 <listitem> 1042 <para> 1043 Solaris 11, including Solaris 11 Express 1044 </para> 1045 </listitem> 1046 1047 <listitem> 1048 <para> 1049 Solaris 10 u5 and higher 1050 </para> 1051 </listitem> 1052 705 1053 </itemizedlist> 706 1054 707 <para>Other distributions may work if they are based on comparable 708 software releases.</para> 709 710 <sect3> 1055 <para> 1056 Other distributions may work if they are based on comparable 1057 software releases. 1058 </para> 1059 1060 <sect3 id="additions-solaris-install"> 1061 711 1062 <title>Installing the Solaris Guest Additions</title> 712 1063 713 <para>The VirtualBox Guest Additions for Solaris are provided on the 714 same ISO CD-ROM as the Additions for Windows and Linux described 715 above. They also come with an installation program guiding you through 716 the setup process.</para> 717 718 <para>Installation involves the following steps:</para> 1064 <para> 1065 The VirtualBox Guest Additions for Solaris are provided on the 1066 same ISO CD-ROM as the Additions for Windows and Linux. They 1067 come with an installation program that guides you through the 1068 setup process. 1069 </para> 1070 1071 <para> 1072 Installation involves the following steps: 1073 </para> 719 1074 720 1075 <orderedlist> 721 <listitem> 722 <para>Mount the 723 <computeroutput>VBoxGuestAdditions.iso</computeroutput> file as 724 your Solaris guest's virtual CD-ROM drive, exactly the same way as 725 described for a Windows guest in <xref 726 linkend="mountingadditionsiso" />.</para> 727 728 <para>If in case the CD-ROM drive on the guest doesn't get mounted 729 (observed on some versions of Solaris 10), execute as root:</para> 730 731 <screen>svcadm restart volfs</screen> 732 </listitem> 733 734 <listitem> 735 <para>Change to the directory where your CD-ROM drive is mounted 736 and execute as root:</para> 737 738 <screen>pkgadd -G -d ./VBoxSolarisAdditions.pkg</screen> 739 </listitem> 740 741 <listitem> 742 <para>Choose "1" and confirm installation of the Guest Additions 743 package. After the installation is complete, re-login to X server 744 on your guest to activate the X11 Guest Additions.</para> 745 </listitem> 1076 1077 <listitem> 1078 <para> 1079 Mount the 1080 <computeroutput>VBoxGuestAdditions.iso</computeroutput> 1081 file as your Solaris guest's virtual CD-ROM drive, exactly 1082 the same way as described for a Windows guest in 1083 <xref 1084 linkend="mountingadditionsiso" />. 1085 </para> 1086 1087 <para> 1088 If the CD-ROM drive on the guest does not get mounted, as 1089 seen with some versions of Solaris 10, run the following 1090 command as root: 1091 </para> 1092 1093 <screen>svcadm restart volfs</screen> 1094 </listitem> 1095 1096 <listitem> 1097 <para> 1098 Change to the directory where your CD-ROM drive is mounted 1099 and run the following command as root: 1100 </para> 1101 1102 <screen>pkgadd -G -d ./VBoxSolarisAdditions.pkg</screen> 1103 </listitem> 1104 1105 <listitem> 1106 <para> 1107 Choose <emphasis role="bold">1</emphasis> and confirm 1108 installation of the Guest Additions package. After the 1109 installation is complete, log out and log in to X server 1110 on your guest, to activate the X11 Guest Additions. 1111 </para> 1112 </listitem> 1113 746 1114 </orderedlist> 1115 747 1116 </sect3> 748 1117 749 <sect3> 1118 <sect3 id="additions-solaris-uninstall"> 1119 750 1120 <title>Uninstalling the Solaris Guest Additions</title> 751 1121 752 <para>The Solaris Guest Additions can be safely removed by removing 753 the package from the guest. Open a root terminal session and 754 execute:</para> 755 756 <para><screen>pkgrm SUNWvboxguest</screen></para> 1122 <para> 1123 The Solaris Guest Additions can be safely removed by removing 1124 the package from the guest. Open a root terminal session and 1125 run the following command: 1126 </para> 1127 1128 <para> 1129 <screen>pkgrm SUNWvboxguest</screen> 1130 </para> 1131 757 1132 </sect3> 758 1133 759 <sect3> 1134 <sect3 id="additions-solaris-updating"> 1135 760 1136 <title>Updating the Solaris Guest Additions</title> 761 1137 762 <para>The Guest Additions should be updated by first uninstalling the 763 existing Guest Additions and then installing the new ones. Attempting 764 to install new Guest Additions without removing the existing ones is 765 not possible.</para> 1138 <para> 1139 The Guest Additions should be updated by first uninstalling 1140 the existing Guest Additions and then installing the new ones. 1141 Attempting to install new Guest Additions without removing the 1142 existing ones is not possible. 1143 </para> 1144 766 1145 </sect3> 1146 767 1147 </sect2> 768 1148 769 <sect2> 1149 <sect2 id="additions-os2"> 1150 770 1151 <title>Guest Additions for OS/2</title> 771 1152 772 <para>VirtualBox also ships with a set of drivers that improve running 773 OS/2 in a virtual machine. Due to restrictions of OS/2 itself, this 774 variant of the Guest Additions has a limited feature set; see <xref 775 linkend="KnownIssues" /> for details.</para> 776 777 <para>The OS/2 Guest Additions are provided on the same ISO CD-ROM as 778 those for the other platforms. As a result, mount the ISO in OS/2 as 779 described previously. The OS/2 Guest Additions are located in the 780 directory <computeroutput>\32bit\OS2</computeroutput>.</para> 781 782 <para>As we do not provide an automatic installer at this time, please 783 refer to the <computeroutput>readme.txt</computeroutput> file in that 784 directory, which describes how to install the OS/2 Guest Additions 785 manually.</para> 1153 <para> 1154 VirtualBox also ships with a set of drivers that improve running 1155 OS/2 in a virtual machine. Due to restrictions of OS/2 itself, 1156 this variant of the Guest Additions has a limited feature set. 1157 See <xref 1158 linkend="KnownIssues" /> for details. 1159 </para> 1160 1161 <para> 1162 The OS/2 Guest Additions are provided on the same ISO CD-ROM as 1163 those for the other platforms. Mount the ISO in OS/2 as 1164 described previously. The OS/2 Guest Additions are located in 1165 the directory <computeroutput>\32bit\OS2</computeroutput>. 1166 </para> 1167 1168 <para> 1169 We do not provide an automatic installer at this time. See the 1170 <computeroutput>readme.txt</computeroutput> file in the CD-ROM 1171 directory, which describes how to install the OS/2 Guest 1172 Additions manually. 1173 </para> 1174 786 1175 </sect2> 1176 787 1177 </sect1> 788 1178 789 1179 <sect1 id="sharedfolders"> 790 <title>Shared folders</title> 791 792 <para>With the "shared folders" feature of VirtualBox, you can access 793 files of your host system from within the guest system. This is similar 794 how you would use network shares in Windows networks -- except that shared 795 folders do not need require networking, only the Guest Additions. Shared 796 Folders are supported with Windows (2000 or newer), Linux and Solaris 797 guests.</para> 798 799 <para>Shared folders must physically reside on the 800 <emphasis>host</emphasis> and are then shared with the guest, which uses a 801 special file system driver in the Guest Addition to talk to the host. For 802 Windows guests, shared folders are implemented as a pseudo-network 803 redirector; for Linux and Solaris guests, the Guest Additions provide a 804 virtual file system.</para> 805 806 <para>To share a host folder with a virtual machine in VirtualBox, you 807 must specify the path of that folder and choose for it a "share name" that 808 the guest can use to access it. Hence, first create the shared folder on 809 the host; then, within the guest, connect to it.</para> 810 811 <para>There are several ways in which shared folders can be set up for a 812 particular virtual machine:<itemizedlist> 813 <listitem> 814 <para>In the window of a running VM, you can select "Shared folders" 815 from the "Devices" menu, or click on the folder icon on the status 816 bar in the bottom right corner.</para> 817 </listitem> 818 819 <listitem> 820 <para>If a VM is not currently running, you can configure shared 821 folders in each virtual machine's "Settings" dialog.</para> 822 </listitem> 823 824 <listitem> 825 <para>From the command line, you can create shared folders using 826 VBoxManage, as follows: <screen>VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test"</screen></para> 827 828 <para>See <xref linkend="vboxmanage-sharedfolder" /> for 829 details.</para> 830 </listitem> 831 </itemizedlist></para> 832 833 <para>There are two types of shares:</para> 1180 1181 <title>Shared Folders</title> 1182 1183 <para> 1184 With the <emphasis>shared folders</emphasis> feature of 1185 VirtualBox, you can access files of your host system from within 1186 the guest system. This is similar how you would use network shares 1187 in Windows networks, except that shared folders do not need 1188 require networking, only the Guest Additions. Shared Folders are 1189 supported with Windows 2000 or later, Linux, and Solaris guests. 1190 </para> 1191 1192 <para> 1193 Shared folders must physically reside on the 1194 <emphasis>host</emphasis> and are then shared with the guest, 1195 which uses a special file system driver in the Guest Addition to 1196 talk to the host. For Windows guests, shared folders are 1197 implemented as a pseudo-network redirector. For Linux and Solaris 1198 guests, the Guest Additions provide a virtual file system. 1199 </para> 1200 1201 <para> 1202 To share a host folder with a virtual machine in VirtualBox, you 1203 must specify the path of that folder and choose for it a 1204 <emphasis>share nam</emphasis>e that the guest can use to access 1205 it. Hence, first create the shared folder on the host. Then, 1206 within the guest, you can connect to it. 1207 </para> 1208 1209 <para> 1210 There are several ways in which shared folders can be set up for a 1211 particular virtual machine: 1212 </para> 1213 1214 <itemizedlist> 1215 1216 <listitem> 1217 <para> 1218 In the window of a running VM, you select 1219 <emphasis role="bold">Shared Folders</emphasis> from the 1220 <emphasis role="bold">Devices</emphasis> menu, or click on the 1221 folder icon on the status bar in the bottom right corner. 1222 </para> 1223 </listitem> 1224 1225 <listitem> 1226 <para> 1227 If a VM is not currently running, you can configure shared 1228 folders in each virtual machine's Settings dialog. 1229 </para> 1230 </listitem> 1231 1232 <listitem> 1233 <para> 1234 From the command line, you can create shared folders using 1235 VBoxManage, as follows: 1236 </para> 1237 1238 <screen>VBoxManage sharedfolder add "VM name" --name "sharename" --hostpath "C:\test"</screen> 1239 1240 <para> 1241 See <xref linkend="vboxmanage-sharedfolder" />. 1242 </para> 1243 </listitem> 1244 1245 </itemizedlist> 1246 1247 <para> 1248 There are two types of shares: 1249 </para> 834 1250 835 1251 <orderedlist> 1252 836 1253 <listitem> 837 <para>VM shares which are only available to the VM for which they have 838 been defined;</para> 1254 <para> 1255 VM shares which are only available to the VM for which they 1256 have been defined. 1257 </para> 839 1258 </listitem> 840 1259 841 1260 <listitem> 842 <para>transient VM shares, which can be added and removed at runtime 843 and do not persist after a VM has stopped; for these, add the 844 <computeroutput>--transient</computeroutput> option to the above 845 command line.</para> 1261 <para> 1262 Transient VM shares, which can be added and removed at runtime 1263 and do not persist after a VM has stopped. For these, add the 1264 <computeroutput>--transient</computeroutput> option to the 1265 above command line. 1266 </para> 846 1267 </listitem> 1268 847 1269 </orderedlist> 848 1270 849 <para>Shared folders have read/write access to the files at the host path 850 by default. To restrict the guest to have read-only access, create a 851 read-only shared folder. This can either be achieved using the GUI or by 852 appending the parameter <computeroutput>--readonly</computeroutput> when 853 creating the shared folder with VBoxManage.</para> 854 855 <para>Starting with version 4.0, VirtualBox shared folders also support 856 symbolic links (<emphasis role="bold">symlinks</emphasis>), under the 857 following conditions:<orderedlist> 858 <listitem> 859 <para>The host operating system must support symlinks (i.e. a Mac, 860 Linux or Solaris host is required).</para> 861 </listitem> 862 863 <listitem> 864 <para>Currently only Linux and Solaris Guest Additions support 865 symlinks.</para> 866 </listitem> 867 868 <listitem> 869 <para>For security reasons the guest OS is not allowed to create 870 symlinks by default. If you trust the guest OS to not abuse the 871 functionality, you can enable creation of symlinks for "sharename" 872 with: 873 <screen>VBoxManage setextradata "VM name" VBoxInternal2/SharedFoldersEnableSymlinksCreate/sharename 1</screen></para> 874 </listitem> 875 </orderedlist></para> 1271 <para> 1272 Shared folders have read/write access to the files at the host 1273 path by default. To restrict the guest to have read-only access, 1274 create a read-only shared folder. This can either be achieved 1275 using the GUI or by appending the parameter 1276 <computeroutput>--readonly</computeroutput> when creating the 1277 shared folder with VBoxManage. 1278 </para> 1279 1280 <para> 1281 Starting with version 4.0, VirtualBox shared folders also support 1282 symbolic links (<emphasis>symlinks</emphasis>), under the 1283 following conditions: 1284 </para> 1285 1286 <orderedlist> 1287 1288 <listitem> 1289 <para> 1290 The host operating system must support symlinks. For example, 1291 a Mac OS X, Linux, or Solaris host is required. 1292 </para> 1293 </listitem> 1294 1295 <listitem> 1296 <para> 1297 Currently only Linux and Solaris Guest Additions support 1298 symlinks. 1299 </para> 1300 </listitem> 1301 1302 <listitem> 1303 <para> 1304 For security reasons the guest OS is not allowed to create 1305 symlinks by default. If you trust the guest OS to not abuse 1306 the functionality, you can enable creation of symlinks for a 1307 shared folder as follows: 1308 </para> 1309 1310 <screen>VBoxManage setextradata "VM name" VBoxInternal2/SharedFoldersEnableSymlinksCreate/<replaceable>sharename</replaceable> 1</screen> 1311 </listitem> 1312 1313 </orderedlist> 876 1314 877 1315 <sect2 id="sf_mount_manual"> 878 <title>Manual mounting</title> 879 880 <para>You can mount the shared folder from inside a VM the same way as 881 you would mount an ordinary network share:</para> 882 883 <para><itemizedlist> 884 <listitem> 885 <para>In a Windows guest, shared folders are browseable and 886 therefore visible in Windows Explorer. So, to attach the host's 887 shared folder to your Windows guest, open Windows Explorer and 888 look for it under "My Networking Places" → "Entire Network" 889 → "VirtualBox Shared Folders". By right-clicking on a shared 890 folder and selecting "Map network drive" from the menu that pops 891 up, you can assign a drive letter to that shared folder.</para> 892 893 <para>Alternatively, on the Windows command line, use the 894 following:</para> 895 896 <screen>net use x: \\vboxsvr\sharename</screen> 897 898 <para>While <computeroutput>vboxsvr</computeroutput> is a fixed 899 name (note that <computeroutput>vboxsrv</computeroutput> would 900 also work), replace "x:" with the drive letter that you want to 901 use for the share, and <computeroutput>sharename</computeroutput> 902 with the share name specified with 903 <computeroutput>VBoxManage</computeroutput>.</para> 904 </listitem> 905 906 <listitem> 907 <para>In a Linux guest, use the following command:</para> 908 909 <screen>mount -t vboxsf [-o OPTIONS] sharename mountpoint</screen> 910 911 <para>To mount a shared folder during boot, add the following 912 entry to /etc/fstab:</para> 913 914 <screen>sharename mountpoint vboxsf defaults 0 0</screen> 915 </listitem> 916 917 <listitem> 918 <para>In a Solaris guest, use the following command:</para> 919 920 <screen>mount -F vboxfs [-o OPTIONS] sharename mountpoint</screen> 921 922 <para>Replace <computeroutput>sharename</computeroutput> (use 923 lowercase) with the share name specified with 924 <computeroutput>VBoxManage</computeroutput> or the GUI, and 925 <computeroutput>mountpoint</computeroutput> with the path where 926 you want the share to be mounted on the guest (e.g. 927 <computeroutput>/mnt/share</computeroutput>). The usual mount 928 rules apply, that is, create this directory first if it does not 929 exist yet.</para> 930 931 <para>Here is an example of mounting the shared folder for the 932 user "jack" on Solaris:</para> 933 934 <screen>$ id 1316 1317 <title>Manual Mounting</title> 1318 1319 <para> 1320 You can mount the shared folder from inside a VM, in the same 1321 way as you would mount an ordinary network share: 1322 </para> 1323 1324 <itemizedlist> 1325 1326 <listitem> 1327 <para> 1328 In a Windows guest, shared folders are browseable and 1329 therefore visible in Windows Explorer. To attach the host's 1330 shared folder to your Windows guest, open Windows Explorer 1331 and look for the folder in <emphasis role="bold">My 1332 Networking Place</emphasis>s, <emphasis role="bold">Entire 1333 Network</emphasis>, <emphasis role="bold">VirtualBox Shared 1334 Folders</emphasis>. By right-clicking on a shared folder and 1335 selecting <emphasis role="bold">Map Network Drive</emphasis> 1336 from the menu that pops up, you can assign a drive letter to 1337 that shared folder. 1338 </para> 1339 1340 <para> 1341 Alternatively, on the Windows command line, use the 1342 following command: 1343 </para> 1344 1345 <screen>net use x: \\vboxsvr\sharename</screen> 1346 1347 <para> 1348 While <computeroutput>vboxsvr</computeroutput> is a fixed 1349 name, note that <computeroutput>vboxsrv</computeroutput> 1350 would also work, replace <replaceable>x:</replaceable> with 1351 the drive letter that you want to use for the share, and 1352 <replaceable>sharename</replaceable> with the share name 1353 specified with <computeroutput>VBoxManage</computeroutput>. 1354 </para> 1355 </listitem> 1356 1357 <listitem> 1358 <para> 1359 In a Linux guest, use the following command: 1360 </para> 1361 1362 <screen>mount -t vboxsf [-o OPTIONS] sharename mountpoint</screen> 1363 1364 <para> 1365 To mount a shared folder during boot, add the following 1366 entry to <computeroutput>/etc/fstab</computeroutput>: 1367 </para> 1368 1369 <screen>sharename mountpoint vboxsf defaults 0 0</screen> 1370 </listitem> 1371 1372 <listitem> 1373 <para> 1374 In a Solaris guest, use the following command: 1375 </para> 1376 1377 <screen>mount -F vboxfs [-o OPTIONS] sharename mountpoint</screen> 1378 1379 <para> 1380 Replace <replaceable>sharename</replaceable>, use a 1381 lowercase string, with the share name specified with 1382 <computeroutput>VBoxManage</computeroutput> or the GUI. 1383 Replace <replaceable>mountpoint</replaceable> with the path 1384 where you want the share to be mounted on the guest, such as 1385 <computeroutput>/mnt/share</computeroutput>. The usual mount 1386 rules apply. For example, create this directory first if it 1387 does not exist yet. 1388 </para> 1389 1390 <para> 1391 Here is an example of mounting the shared folder for the 1392 user jack on Solaris: 1393 </para> 1394 1395 <screen>$ id 935 1396 uid=5000(jack) gid=1(other) 936 1397 $ mkdir /export/home/jack/mount … … 941 1402 $</screen> 942 1403 943 <para>Beyond the standard options supplied by the 944 <computeroutput>mount</computeroutput> command, the following are 945 available:</para> 946 947 <screen>iocharset CHARSET</screen> 948 949 <para>to set the character set used for I/O operations. Note that 950 on Linux guests, if the "iocharset" option is not specified then 951 the Guest Additions driver will attempt to use the character set 952 specified by the CONFIG_NLS_DEFAULT kernel option. If this option 953 is not set either then UTF-8 will be used. Also,</para> 954 955 <screen>convertcp CHARSET</screen> 956 957 <para>is available in order to specify the character set used for 958 the shared folder name (utf8 by default).</para> 959 960 <para>The generic mount options (documented in the mount manual 961 page) apply also. Especially useful are the options 1404 <para> 1405 Beyond the standard options supplied by the 1406 <computeroutput>mount</computeroutput> command, the 1407 following are available: 1408 </para> 1409 1410 <screen>iocharset CHARSET</screen> 1411 1412 <para> 1413 This option sets the character set used for I/O operations. 1414 Note that on Linux guests, if the 1415 <computeroutput>iocharset</computeroutput> option is not 1416 specified, then the Guest Additions driver will attempt to 1417 use the character set specified by the CONFIG_NLS_DEFAULT 1418 kernel option. If this option is not set either, then UTF-8 1419 is used. 1420 </para> 1421 1422 <screen>convertcp CHARSET</screen> 1423 1424 <para> 1425 This option specifies the character set used for the shared 1426 folder name. This is UTF-8 by default. 1427 </para> 1428 1429 <para> 1430 The generic mount options, documented in the 1431 <computeroutput>mount</computeroutput> manual page, apply 1432 also. Especially useful are the options 962 1433 <computeroutput>uid</computeroutput>, 963 1434 <computeroutput>gid</computeroutput> and 964 <computeroutput>mode</computeroutput>, as they allow access by 965 normal users (in read/write mode, depending on the settings) even 966 if root has mounted the filesystem.</para> 967 </listitem> 968 </itemizedlist></para> 1435 <computeroutput>mode</computeroutput>, as they can allow 1436 access by normal users in read/write mode, depending on the 1437 settings, even if root has mounted the filesystem. 1438 </para> 1439 </listitem> 1440 1441 </itemizedlist> 1442 969 1443 </sect2> 970 1444 971 1445 <sect2 id="sf_mount_auto"> 972 <title>Automatic mounting</title> 973 974 <para>Starting with version 4.0, VirtualBox can mount shared folders 975 automatically, at your option. If automatic mounting is enabled for a 976 specific shared folder, the Guest Additions will automatically mount 977 that folder as soon as a user logs into the guest OS. The details depend 978 on the guest OS type:<itemizedlist> 979 <listitem> 980 <para>With <emphasis role="bold">Windows guests,</emphasis> any 981 auto-mounted shared folder will receive its own drive letter (e.g. 982 <computeroutput>E:</computeroutput>) depending on the free drive 983 letters remaining in the guest.</para> 984 985 <para>If there no free drive letters left, auto-mounting will 986 fail; as a result, the number of auto-mounted shared folders is 987 typically limited to 22 or less with Windows guests.</para> 988 </listitem> 989 990 <listitem> 991 <para>With <emphasis role="bold">Linux guests,</emphasis> 992 auto-mounted shared folders are mounted into the 993 <computeroutput>/media</computeroutput> directory, along with the 994 prefix <computeroutput>sf_</computeroutput>. For example, the 995 shared folder <computeroutput>myfiles</computeroutput> would be 996 mounted to <computeroutput>/media/sf_myfiles</computeroutput> on 997 Linux and <computeroutput>/mnt/sf_myfiles</computeroutput> on 998 Solaris.</para> 999 1000 <para>The guest property 1446 1447 <title>Automatic Mounting</title> 1448 1449 <para> 1450 Starting with version 4.0, VirtualBox provides the option to 1451 mount shared folders automatically If automatic mounting is 1452 enabled for a specific shared folder, the Guest Additions will 1453 automatically mount that folder as soon as a user logs in to the 1454 guest OS. The details depend on the guest OS type, as follows: 1455 </para> 1456 1457 <itemizedlist> 1458 1459 <listitem> 1460 <para> 1461 <emphasis role="bold">Windows guests.</emphasis> Any 1462 auto-mounted shared folder will receive its own drive 1463 letter, such as <computeroutput>E:</computeroutput>, 1464 depending on the free drive letters remaining in the guest. 1465 </para> 1466 1467 <para> 1468 If there are no free drive letters left, auto-mounting will 1469 fail. As a result, the number of auto-mounted shared folders 1470 is typically limited to 22 or less with Windows guests. 1471 </para> 1472 </listitem> 1473 1474 <listitem> 1475 <para> 1476 <emphasis role="bold">Linux guests.</emphasis> Auto-mounted 1477 shared folders are mounted into the 1478 <computeroutput>/media</computeroutput> directory, along 1479 with the prefix <computeroutput>sf_</computeroutput>. For 1480 example, the shared folder 1481 <computeroutput>myfiles</computeroutput> would be mounted to 1482 <computeroutput>/media/sf_myfiles</computeroutput> on Linux 1483 and <computeroutput>/mnt/sf_myfiles</computeroutput> on 1484 Solaris. 1485 </para> 1486 1487 <para> 1488 The guest property 1001 1489 <computeroutput>/VirtualBox/GuestAdd/SharedFolders/MountPrefix</computeroutput> 1002 determines the prefix that is used. Change that guest property to 1003 a value other than "sf" to change that prefix; see <xref 1004 linkend="guestadd-guestprops" /> for details.<note> 1005 <para>Access to auto-mounted shared folders is only 1006 granted to the user group 1007 <computeroutput>vboxsf</computeroutput>, which is created by 1008 the VirtualBox Guest Additions installer. Hence guest users 1009 have to be member of that group to have read/write 1010 access or to have read-only access in case the folder is not 1011 mapped writable.</para> 1012 </note></para> 1013 1014 <para>To change the mount directory to something other than 1015 <computeroutput>/media</computeroutput>, you can set the guest 1016 property 1017 <computeroutput>/VirtualBox/GuestAdd/SharedFolders/MountDir</computeroutput>.</para> 1018 </listitem> 1019 1020 <listitem> 1021 <para><emphasis role="bold">Solaris guests</emphasis> behave like 1022 Linux guests except that <computeroutput>/mnt</computeroutput> is 1023 used as the default mount directory instead of 1024 <computeroutput>/media</computeroutput>.</para> 1025 </listitem> 1026 </itemizedlist></para> 1027 1028 <para>To have any changes to auto-mounted shared folders applied while a 1029 VM is running, the guest OS needs to be rebooted. (This applies only to 1030 auto-mounted shared folders, not the ones which are mounted 1031 manually.)</para> 1490 determines the prefix that is used. Change that guest 1491 property to a value other than 1492 <computeroutput>sf</computeroutput> to use another prefix. 1493 See <xref 1494 linkend="guestadd-guestprops" />. 1495 </para> 1496 1497 <note> 1498 <para> 1499 Access to auto-mounted shared folders is only granted to 1500 the user group <computeroutput>vboxsf</computeroutput>, 1501 which is created by the VirtualBox Guest Additions 1502 installer. Therefore, guest users have to be member of 1503 that group to have read/write access, or to have read-only 1504 access if the folder is not mapped writable. 1505 </para> 1506 </note> 1507 1508 <para> 1509 To change the mount directory to something other than 1510 <computeroutput>/media</computeroutput>, you can set the 1511 guest property 1512 <computeroutput>/VirtualBox/GuestAdd/SharedFolders/MountDir</computeroutput>. 1513 </para> 1514 </listitem> 1515 1516 <listitem> 1517 <para> 1518 <emphasis role="bold">Solaris guests</emphasis> behave like 1519 Linux guests, except that 1520 <computeroutput>/mnt</computeroutput> is used as the default 1521 mount directory instead of 1522 <computeroutput>/media</computeroutput>. 1523 </para> 1524 </listitem> 1525 1526 </itemizedlist> 1527 1528 <para> 1529 To have any changes to auto-mounted shared folders applied while 1530 a VM is running, the guest OS needs to be rebooted. This applies 1531 only to auto-mounted shared folders, not the ones which are 1532 mounted manually. 1533 </para> 1534 1032 1535 </sect2> 1536 1033 1537 </sect1> 1034 1538 1035 1539 <sect1 id="guestadd-dnd"> 1540 1036 1541 <title>Drag and Drop</title> 1037 1542 1038 <para>Starting with version 5.0, VirtualBox supports to drag and drop content 1039 from the host to the guest and vice versa. For this to work the latest Guest 1040 Additions must be installed on the guest.</para> 1041 1042 <para>Drag and drop transparently allows copying or opening files, directories 1043 and even certain clipboard formats from one end to the other, e.g. from the 1044 host to the guest or from the guest to the host. One then can perform drag and 1045 drop operations between the host and a VM as it would be a native drag and drop 1046 operation on the host OS.</para> 1047 1048 <para>At the moment drag and drop is implemented for Windows- and X-Windows-based 1049 systems, both, on host and guest side. As X-Windows sports different drag and drop 1050 protocols only the most used one, XDND, is supported for now. Applications using 1051 other protocols (such as Motif or OffiX) will not be recognized by VirtualBox.</para> 1052 1053 <para>In context of using drag and drop the origin of the data is called 1054 <emphasis role="bold">source</emphasis>, that is, where the actual data comes 1055 from and is specified. On the other hand there is the 1056 <emphasis role="bold">target</emphasis>, which specifies where the data from 1057 the source should go to. Transferring data from the source to the target can 1058 be done in various ways, e.g. copying, moving or linking.<footnote><para>At 1059 the moment only copying of data is supported. Moving or linking is not yet 1060 implemented.</para></footnote></para> 1061 1062 <para>When transferring data from the host to the guest OS, the host in 1063 this case is the source, whereas the guest OS is the target. However, when 1064 doing it the other way around, that is, transferring data from the guest OS 1065 to the host, the guest OS this time became the source and the host is the 1066 target.</para> 1067 1068 <para>For security reasons drag and drop can be configured at runtime on a 1069 per-VM basis either using the "Drag and Drop" menu item in the "Devices" menu 1070 of the virtual machine or VBoxManage. The following four modes are 1071 available:</para> 1072 1073 <para><mediaobject> 1074 <imageobject> 1075 <imagedata align="center" fileref="images/dnd-modes.png" 1543 <para> 1544 Starting with version 5.0, VirtualBox enables you to drag and drop 1545 content from the host to the guest, and vice versa. For this to 1546 work the latest Guest Additions must be installed on the guest. 1547 </para> 1548 1549 <para> 1550 Drag and drop transparently allows copying or opening files, 1551 directories, and even certain clipboard formats from one end to 1552 the other. for example, from the host to the guest or from the 1553 guest to the host. You then can perform drag and drop operations 1554 between the host and a VM, as it would be a native drag and drop 1555 operation on the host OS. 1556 </para> 1557 1558 <para> 1559 At the moment drag and drop is implemented for Windows-based and 1560 X-Windows-based systems, both on the host and guest side. As 1561 X-Windows supports many different drag and drop protocols only the 1562 most common one, XDND, is supported for now. Applications using 1563 other protocols, such as Motif or OffiX, will not be recognized by 1564 VirtualBox. 1565 </para> 1566 1567 <para> 1568 In the context of using drag and drop, the origin of the data is 1569 called the <emphasis>source</emphasis>. That is, where the actual 1570 data comes from and is specified. The <emphasis>target</emphasis> 1571 specifies where the data from the source should go to. 1572 Transferring data from the source to the target can be done in 1573 various ways, such as copying, moving, or linking. 1574 1575 <footnote> 1576 1577 <para> 1578 At the moment only copying of data is supported. Moving or 1579 linking is not yet implemented. 1580 </para> 1581 1582 </footnote> 1583 </para> 1584 1585 <para> 1586 When transferring data from the host to the guest OS, the host in 1587 this case is the source, whereas the guest OS is the target. 1588 However, when transferring data from the guest OS to the host, the 1589 guest OS this time became the source and the host is the target. 1590 </para> 1591 1592 <para> 1593 For security reasons drag and drop can be configured at runtime on 1594 a per-VM basis either using the <emphasis role="bold">Drag and 1595 Drop</emphasis> menu item in the "Devices" menu of the virtual 1596 machine or VBoxManage. The following modes are available: 1597 </para> 1598 1599 <para> 1600 <mediaobject> 1601 <imageobject> 1602 <imagedata align="center" fileref="images/dnd-modes.png" 1076 1603 width="10cm" /> 1077 1604 </imageobject> 1078 </mediaobject></para> 1605 </mediaobject> 1606 </para> 1079 1607 1080 1608 <itemizedlist> 1609 1081 1610 <listitem> 1082 <para><emphasis role="bold">Disabled</emphasis> disables the drag and drop 1083 entirely. This is the default when creating new VMs.</para> 1611 <para> 1612 <emphasis role="bold">Disabled.</emphasis> Disables the drag 1613 and drop feature entirely. This is the default when creating 1614 new VMs. 1615 </para> 1084 1616 </listitem> 1617 1085 1618 <listitem> 1086 <para><emphasis role="bold">Host To Guest</emphasis> enables performing 1087 drag and drop operations from the host to the guest only.</para> 1619 <para> 1620 <emphasis role="bold">Host To Guest.</emphasis> Enables drag 1621 and drop operations from the host to the guest only. 1622 </para> 1088 1623 </listitem> 1624 1089 1625 <listitem> 1090 <para><emphasis role="bold">Guest To Host</emphasis> enables performing 1091 drag and drop operations from the guest to the host only.</para> 1626 <para> 1627 <emphasis role="bold">Guest To Host.</emphasis> Enables drag 1628 and drop operations from the guest to the host only. 1629 </para> 1092 1630 </listitem> 1631 1093 1632 <listitem> 1094 <para><emphasis role="bold">Bidirectional</emphasis> enables performing 1095 drag and drop operations to both directions, e.g. from the host to the guest 1096 and vice versa.</para> 1633 <para> 1634 <emphasis role="bold">Bidirectional.</emphasis> Enables drag 1635 and drop operations in both directions. From from the host to 1636 the guest, and from the guest to the host. 1637 </para> 1097 1638 </listitem> 1639 1098 1640 </itemizedlist> 1099 1641 1100 <note><para>Drag and drop support depends on the frontend being used; at the 1101 moment only the VirtualBox Manager frontend provides this 1102 functionality.</para></note> 1103 1104 <para>To use VBoxManage for controlling the current drag and drop mode, see <xref 1105 linkend="vboxmanage" />. The commands <computeroutput>modifyvm</computeroutput> 1106 and <computeroutput>controlvm</computeroutput> allow setting the VM's current 1107 drag and drop mode via command line.</para> 1642 <note> 1643 <para> 1644 Drag and drop support depends on the frontend being used. At the 1645 moment, only the VirtualBox Manager frontend provides this 1646 functionality. 1647 </para> 1648 </note> 1649 1650 <para> 1651 To use VBoxManage for controlling the current drag and drop mode, 1652 see <xref 1653 linkend="vboxmanage" />. The commands 1654 <computeroutput>modifyvm</computeroutput> and 1655 <computeroutput>controlvm</computeroutput> allow setting of the 1656 VM's current drag and drop mode via the command line. 1657 </para> 1108 1658 1109 1659 <sect2 id="guestadd-dnd-formats"> 1110 <title>Supported formats</title> 1111 1112 <para>As VirtualBox can run on a variety of host OSes and also supports a wide 1113 range of guests, certain data formats must be translated after those 1114 got transferred over so that the target OS (that is, the side which receiving the 1115 data) is able to handle them in an appropriate manner.</para> 1116 1117 <note><para>When dragging files however, no data conversion is done in any way, e.g. 1118 when transferring a file from a Linux guest to a Windows host the Linux-specific 1119 line endings won't be converted to Windows ones.</para></note> 1120 1121 <para>The following formats are handled by the VirtualBox drag and drop service: 1122 <itemizedlist> 1123 <listitem> 1124 <para><emphasis role="bold">Plain text</emphasis>, from applications such as 1125 text editors, internet browsers and terminal windows</para> 1126 </listitem> 1127 <listitem> 1128 <para><emphasis role="bold">Files</emphasis>, from file managers such 1129 as Windows explorer, Nautilus and Finder</para> 1130 </listitem> 1131 <listitem> 1132 <para><emphasis role="bold">Directories</emphasis>, where the same applies 1133 as for files</para> 1134 </listitem> 1135 </itemizedlist> 1136 </para> 1660 1661 <title>Supported Formats</title> 1662 1663 <para> 1664 As VirtualBox can run on a variety of host operating systems and 1665 also supports a wide range of guests, certain data formats must 1666 be translated after transfer. This is so that the target 1667 operating system, which receiving the data, is able to handle 1668 them in an appropriate manner. 1669 </para> 1670 1671 <note> 1672 <para> 1673 When dragging files no data conversion is done in any way. For 1674 example, when transferring a file from a Linux guest to a 1675 Windows host the Linux-specific line endings are not converted 1676 to Windows line endings. 1677 </para> 1678 </note> 1679 1680 <para> 1681 The following formats are handled by the VirtualBox drag and 1682 drop service: 1683 </para> 1684 1685 <itemizedlist> 1686 1687 <listitem> 1688 <para> 1689 <emphasis role="bold">Plain text:</emphasis> From 1690 applications such as text editors, internet browsers and 1691 terminal windows. 1692 </para> 1693 </listitem> 1694 1695 <listitem> 1696 <para> 1697 <emphasis role="bold">Files:</emphasis> From file managers 1698 such as Windows Explorer, Nautilus, and Finder. 1699 </para> 1700 </listitem> 1701 1702 <listitem> 1703 <para> 1704 <emphasis role="bold">Directories:</emphasis> For 1705 directories, the same formats apply as for files. 1706 </para> 1707 </listitem> 1708 1709 </itemizedlist> 1710 1137 1711 </sect2> 1138 1712 1139 1713 <sect2 id="guestadd-dnd-limitations"> 1140 <title>Known limitations</title> 1141 1142 <para>The following limitations are known: 1143 <itemizedlist> 1144 <listitem> 1145 <para>On Windows hosts, dragging and dropping content from 1146 <emphasis role="bold">UAC-elevated (User Account Control)</emphasis> programs 1147 to non-UAC-elevated programs and vice versa is now allowed. So when starting 1148 VirtualBox with Administrator privileges then drag and drop will not work with 1149 the Windows Explorer which runs with regular user privileges by default.</para> 1150 </listitem> 1151 </itemizedlist> 1152 </para> 1714 1715 <title>Known Limitations</title> 1716 1717 <para> 1718 The following limitations are known for drag and drop: 1719 </para> 1720 1721 <para> 1722 On Windows hosts, dragging and dropping content between 1723 UAC-elevated (User Account Control) programs and 1724 non-UAC-elevated programs is not allowed. If you start 1725 VirtualBox with Administrator privileges then drag and drop will 1726 not work with Windows Explorer, which runs with regular user 1727 privileges by default. 1728 </para> 1729 1153 1730 </sect2> 1154 1731 … … 1156 1733 1157 1734 <sect1 id="guestadd-video"> 1158 <title>Hardware-accelerated graphics</title> 1735 1736 <title>Hardware-Accelerated Graphics</title> 1159 1737 1160 1738 <sect2 id="guestadd-3d"> 1161 <title>Hardware 3D acceleration (OpenGL and Direct3D 8/9)</title> 1162 1163 <para>The VirtualBox Guest Additions contain experimental hardware 3D 1164 support for Windows, Linux and Solaris guests.<footnote> 1165 <para>OpenGL support for Windows guests was added with VirtualBox 1166 2.1; support for Linux and Solaris followed with VirtualBox 2.2. 1167 With VirtualBox 3.0, Direct3D 8/9 support was added for Windows 1168 guests. OpenGL 2.0 is now supported as well. 1169 With VirtualBox 4.1 Windows Aero theme support is added for 1170 Windows Vista and Windows 7 guests (experimental)</para> 1171 </footnote></para> 1172 1173 <para>With this feature, if an application inside your virtual machine 1174 uses 3D features through the OpenGL or Direct3D 8/9 programming 1175 interfaces, instead of emulating them in software (which would be slow), 1176 VirtualBox will attempt to use your host's 3D hardware. This works for 1177 all supported host platforms (Windows, Mac, Linux, Solaris), provided 1178 that your host operating system can make use of your accelerated 3D 1179 hardware in the first place.</para> 1180 1181 <para>The 3D acceleration currently has the following 1182 preconditions:<orderedlist> 1183 <listitem> 1184 <para>It is only available for certain Windows, Linux and Solaris 1185 guests. In particular:<itemizedlist> 1186 <listitem> 1187 <para>3D acceleration with Windows guests requires Windows 1188 2000, Windows XP, Vista or Windows 7. Both OpenGL and 1189 Direct3D 8/9 (not with Windows 2000) are supported 1190 (experimental).</para> 1191 </listitem> 1192 1193 <listitem> 1194 <para>OpenGL on Linux requires kernel 2.6.27 and higher as 1195 well as X.org server version 1.5 and higher. Ubuntu 10.10 1196 and Fedora 14 have been tested and confirmed as 1197 working.</para> 1198 </listitem> 1199 1200 <listitem> 1201 <para>OpenGL on Solaris guests requires X.org server version 1202 1.5 and higher.</para> 1203 </listitem> 1204 </itemizedlist></para> 1205 </listitem> 1206 1207 <listitem> 1208 <para>The Guest Additions must be installed.<note> 1209 <para>For the basic Direct3D acceleration to work in a Windows Guest, 1210 VirtualBox needs to replace Windows system files in the 1211 virtual machine. As a result, the Guest Additions installation 1212 program offers Direct3D acceleration as an option that must 1213 be explicitly enabled. Also, you must install the Guest 1214 Additions in "Safe Mode". This does <emphasis role="bold">not</emphasis> 1215 apply to the WDDM Direct3D video driver available for Vista 1216 and higher, see <xref linkend="KnownIssues" /> for details.</para></note> 1739 1740 <title>Hardware 3D Acceleration (OpenGL and Direct3D 8/9)</title> 1741 1742 <para> 1743 The VirtualBox Guest Additions contain experimental hardware 3D 1744 support for Windows, Linux, and Solaris guests. 1745 1746 <footnote> 1747 1748 <para> 1749 OpenGL support for Windows guests was added with VirtualBox 1750 2.1; support for Linux and Solaris followed with VirtualBox 1751 2.2. With VirtualBox 3.0, Direct3D 8/9 support was added for 1752 Windows guests. OpenGL 2.0 is now supported as well. With 1753 VirtualBox 4.1 Windows Aero theme support is added for 1754 Windows Vista and Windows 7 guests (experimental) 1755 </para> 1756 1757 </footnote> 1758 </para> 1759 1760 <para> 1761 With this feature, if an application inside your virtual machine 1762 uses 3D features through the OpenGL or Direct3D 8/9 programming 1763 interfaces, instead of emulating them in software, which would 1764 be slow, VirtualBox will attempt to use your host's 3D hardware. 1765 This works for all supported host platforms, provided that your 1766 host operating system can make use of your accelerated 3D 1767 hardware in the first place. 1768 </para> 1769 1770 <para> 1771 The 3D acceleration feature currently has the following 1772 preconditions: 1773 </para> 1774 1775 <orderedlist> 1776 1777 <listitem> 1778 <para> 1779 It is only available for certain Windows, Linux, and Solaris 1780 guests. In particular: 1781 </para> 1782 1783 <itemizedlist> 1784 1785 <listitem> 1786 <para> 1787 3D acceleration with Windows guests requires Windows 1788 2000, Windows XP, Vista or Windows 7. Both OpenGL and 1789 Direct3D 8/9 (not with Windows 2000) are supported 1790 (experimental). 1217 1791 </para> 1218 </listitem> 1219 1220 <listitem> 1221 <para>Because 3D support is still experimental at this time, it is 1222 disabled by default and must be <emphasis role="bold">manually 1223 enabled</emphasis> in the VM settings (see <xref 1224 linkend="generalsettings" />).<note> 1792 </listitem> 1793 1794 <listitem> 1795 <para> 1796 OpenGL on Linux requires kernel 2.6.27 and higher as 1797 well as X.org server version 1.5 and higher. Ubuntu 1798 10.10 and Fedora 14 have been tested and confirmed as 1799 working. 1800 </para> 1801 </listitem> 1802 1803 <listitem> 1804 <para> 1805 OpenGL on Solaris guests requires X.org server version 1806 1.5 and higher. 1807 </para> 1808 </listitem> 1809 1810 </itemizedlist> 1811 </listitem> 1812 1813 <listitem> 1814 <para> 1815 The Guest Additions must be installed. 1816 </para> 1817 1818 <note> 1819 <para> 1820 For the basic Direct3D acceleration to work in a Windows 1821 Guest, VirtualBox needs to replace Windows system files in 1822 the virtual machine. As a result, the Guest Additions 1823 installation program offers Direct3D acceleration as an 1824 option that must be explicitly enabled. Also, you must 1825 install the Guest Additions in Safe Mode. This does 1826 <emphasis>not</emphasis> apply to the WDDM Direct3D video 1827 driver available for Vista and higher. See 1828 <xref linkend="KnownIssues" /> for details. 1829 </para> 1830 </note> 1831 </listitem> 1832 1833 <listitem> 1834 <para> 1835 Because 3D support is still experimental at this time, it is 1836 disabled by default and must be <emphasis>manually 1837 enabled</emphasis> in the VM settings. See 1838 <xref 1839 linkend="generalsettings" />. 1840 </para> 1841 1842 <note> 1225 1843 <para> 1226 1844 Untrusted guest systems should not be allowed to use 1227 VirtualBox's 3D acceleration features, just as untrusted host 1228 software should not be allowed to use 3D acceleration. Drivers 1229 for 3D hardware are generally too complex to be made properly 1230 secure and any software which is allowed to access them may be 1231 able to compromise the operating system running them. In 1232 addition, enabling 3D acceleration gives the guest direct access 1233 to a large body of additional program code in the VirtualBox 1234 host process which it might conceivably be able to use to crash 1235 the virtual machine. 1236 </para> 1237 </note></para> 1238 </listitem> 1239 </orderedlist></para> 1240 1241 <para>To enable Aero theme support, 1242 the VirtualBox WDDM video driver must be installed, 1243 which is available with the Guest Additions installation. 1244 The WDDM driver is not installed by default for Vista and Windows 7 1245 guest and must be <emphasis role="bold">manually 1246 selected</emphasis> in the Guest Additions installer by answering "No" 1247 in the "Would you like to install basic Direct3D support" dialog 1248 displayed when the Direct3D feature is selected.</para> 1249 1250 <para>The Aero theme is not enabled by default. To enable it 1251 <itemizedlist> 1252 <listitem> 1253 <para>In Windows Vista guest: right-click on the desktop, in the 1254 context menu select "Personalize", then select "Windows Color and Appearance" 1255 in the "Personalization" window, in the "Appearance Settings" dialog select 1256 "Windows Aero" and press "OK"</para> 1257 </listitem> 1258 <listitem> 1259 <para>In Windows 7 guest: right-click on the desktop, in the 1260 context menu select "Personalize" and select any Aero theme 1261 in the "Personalization" window</para> 1262 </listitem> 1263 </itemizedlist> 1264 </para> 1265 1266 <para>Technically, VirtualBox implements this by installing an 1267 additional hardware 3D driver inside your guest when the Guest Additions 1268 are installed. This driver acts as a hardware 3D driver and reports to 1269 the guest operating system that the (virtual) hardware is capable of 3D 1270 hardware acceleration. When an application in the guest then requests 1271 hardware acceleration through the OpenGL or Direct3D programming 1272 interfaces, these are sent to the host through a special communication 1273 tunnel implemented by VirtualBox, and then the <emphasis>host</emphasis> 1274 performs the requested 3D operation via the host's programming 1275 interfaces.</para> 1845 VirtualBox's 3D acceleration features, just as untrusted 1846 host software should not be allowed to use 3D 1847 acceleration. Drivers for 3D hardware are generally too 1848 complex to be made properly secure and any software which 1849 is allowed to access them may be able to compromise the 1850 operating system running them. In addition, enabling 3D 1851 acceleration gives the guest direct access to a large body 1852 of additional program code in the VirtualBox host process 1853 which it might conceivably be able to use to crash the 1854 virtual machine. 1855 </para> 1856 </note> 1857 </listitem> 1858 1859 </orderedlist> 1860 1861 <para> 1862 To enable Aero theme support, the VirtualBox WDDM video driver 1863 must be installed, which is available with the Guest Additions 1864 installation. The WDDM driver is not installed by default for 1865 Vista and Windows 7 guest and must be <emphasis>manually 1866 selected</emphasis> in the Guest Additions installer by clicking 1867 <emphasis role="bold">No</emphasis> in the 1868 <emphasis role="bold">Would You Like to Install Basic Direct3D 1869 Support</emphasis> dialog displayed when the Direct3D feature is 1870 selected. 1871 </para> 1872 1873 <para> 1874 The Aero theme is not enabled by default. To enable it, do the 1875 following: 1876 </para> 1877 1878 <itemizedlist> 1879 1880 <listitem> 1881 <para> 1882 <emphasis role="bold">Windows Vista guests:</emphasis> 1883 Right-click on the desktop and select 1884 <emphasis role="bold">Personalize</emphasis>, then select 1885 <emphasis role="bold">Windows Color and 1886 Appearance</emphasis> in the Personalization window. In the 1887 Appearance Settings dialog, select 1888 <emphasis role="bold">Windows Aero</emphasis> and click 1889 <emphasis role="bold">OK</emphasis>. 1890 </para> 1891 </listitem> 1892 1893 <listitem> 1894 <para> 1895 <emphasis role="bold">Windows 7 guests:</emphasis> 1896 Right-click on the desktop and select 1897 <emphasis role="bold">Personalize</emphasis>. Select any 1898 Aero theme in the Personalization window. 1899 </para> 1900 </listitem> 1901 1902 </itemizedlist> 1903 1904 <para> 1905 Technically, VirtualBox implements this by installing an 1906 additional hardware 3D driver inside your guest when the Guest 1907 Additions are installed. This driver acts as a hardware 3D 1908 driver and reports to the guest operating system that the 1909 (virtual) hardware is capable of 3D hardware acceleration. When 1910 an application in the guest then requests hardware acceleration 1911 through the OpenGL or Direct3D programming interfaces, these are 1912 sent to the host through a special communication tunnel 1913 implemented by VirtualBox, and then the 1914 <emphasis>host</emphasis> performs the requested 3D operation 1915 via the host's programming interfaces. 1916 </para> 1917 1276 1918 </sect2> 1277 1919 1278 1920 <sect2 id="guestadd-2d"> 1279 <title>Hardware 2D video acceleration for Windows guests</title> 1280 1281 <para>Starting with version 3.1, the VirtualBox Guest Additions contain 1282 experimental hardware 2D video acceleration support for Windows 1283 guests.</para> 1284 1285 <para>With this feature, if an application (e.g. a video player) inside 1286 your Windows VM uses 2D video overlays to play a movie clip, then 1287 VirtualBox will attempt to use your host's video acceleration hardware 1288 instead of performing overlay stretching and color conversion in 1289 software (which would be slow). This currently works for Windows, Linux 1290 and Mac host platforms, provided that your host operating system can 1291 make use of 2D video acceleration in the first place.</para> 1292 1293 <para>The 2D video acceleration currently has the following 1294 preconditions:<orderedlist> 1295 <listitem> 1296 <para>It is only available for Windows guests (XP or 1297 later).</para> 1298 </listitem> 1299 1300 <listitem> 1301 <para>The Guest Additions must be installed.</para> 1302 </listitem> 1303 1304 <listitem> 1305 <para>Because 2D support is still experimental at this time, it is 1306 disabled by default and must be <emphasis role="bold">manually 1307 enabled</emphasis> in the VM settings (see <xref 1308 linkend="generalsettings" />).</para> 1309 </listitem> 1310 </orderedlist></para> 1311 1312 <para>Technically, VirtualBox implements this by exposing video overlay 1313 DirectDraw capabilities in the Guest Additions video driver. The driver 1314 sends all overlay commands to the host through a special communication 1315 tunnel implemented by VirtualBox. On the host side, OpenGL is then used 1316 to implement color space transformation and scaling</para> 1921 1922 <title>Hardware 2D Video Acceleration for Windows Guests</title> 1923 1924 <para> 1925 Starting with version 3.1, the VirtualBox Guest Additions 1926 contain experimental hardware 2D video acceleration support for 1927 Windows guests. 1928 </para> 1929 1930 <para> 1931 With this feature, if an application such as a video player 1932 inside your Windows VM uses 2D video overlays to play a movie 1933 clip, then VirtualBox will attempt to use your host's video 1934 acceleration hardware instead of performing overlay stretching 1935 and color conversion in software, which would be slow. This 1936 currently works for Windows, Linux and Mac host platforms, 1937 provided that your host operating system can make use of 2D 1938 video acceleration in the first place. 1939 </para> 1940 1941 <para> 1942 Hardware 2D video acceleration currently has the following 1943 preconditions: 1944 </para> 1945 1946 <orderedlist> 1947 1948 <listitem> 1949 <para> 1950 Only available for Windows guests (XP or later). 1951 </para> 1952 </listitem> 1953 1954 <listitem> 1955 <para> 1956 Guest Additions must be installed. 1957 </para> 1958 </listitem> 1959 1960 <listitem> 1961 <para> 1962 Because 2D support is still experimental at this time, it is 1963 disabled by default and must be <emphasis>manually 1964 enabled</emphasis> in the VM settings. See 1965 <xref 1966 linkend="generalsettings" />. 1967 </para> 1968 </listitem> 1969 1970 </orderedlist> 1971 1972 <para> 1973 Technically, VirtualBox implements this by exposing video 1974 overlay DirectDraw capabilities in the Guest Additions video 1975 driver. The driver sends all overlay commands to the host 1976 through a special communication tunnel implemented by 1977 VirtualBox. On the host side, OpenGL is then used to implement 1978 color space transformation and scaling 1979 </para> 1980 1317 1981 </sect2> 1982 1318 1983 </sect1> 1319 1984 1320 1985 <sect1 id="seamlesswindows"> 1321 <title>Seamless windows</title> 1322 1323 <para>With the "seamless windows" feature of VirtualBox, you can have the 1324 windows that are displayed within a virtual machine appear side by side 1325 next to the windows of your host. This feature is supported for the 1326 following guest operating systems (provided that the Guest Additions are 1327 installed):<itemizedlist> 1328 <listitem> 1329 <para>Windows guests (support added with VirtualBox 1.5);</para> 1330 </listitem> 1331 1332 <listitem> 1333 <para>Supported Linux or Solaris guests running the X Window System 1334 (added with VirtualBox 1.6).</para> 1335 </listitem> 1336 </itemizedlist></para> 1337 1338 <para>After seamless windows are enabled (see below), VirtualBox 1339 suppresses the display of the Desktop background of your guest, allowing 1340 you to run the windows of your guest operating system seamlessly next to 1341 the windows of your host:</para> 1342 1343 <para><mediaobject> 1344 <imageobject> 1345 <imagedata align="center" fileref="images/seamless.png" width="14cm" /> 1346 </imageobject> 1347 </mediaobject>To enable seamless mode, after starting the virtual 1348 machine, press the Host key (normally the right control key) together with 1349 "L". This will enlarge the size of the VM's display to the size of your 1350 host screen and mask out the guest operating system's background. To go 1351 back to the "normal" VM display (i.e. to disable seamless windows), press 1352 the Host key and "L" again.</para> 1986 1987 <title>Seamless Windows</title> 1988 1989 <para> 1990 With the <emphasis>seamless windows</emphasis> feature of 1991 VirtualBox, you can have the windows that are displayed within a 1992 virtual machine appear side by side next to the windows of your 1993 host. This feature is supported for the following guest operating 1994 systems, provided that the Guest Additions are installed: 1995 </para> 1996 1997 <itemizedlist> 1998 1999 <listitem> 2000 <para> 2001 Windows guests (support added with VirtualBox 1.5) 2002 </para> 2003 </listitem> 2004 2005 <listitem> 2006 <para> 2007 Supported Linux or Solaris guests running the X Window System 2008 (added with VirtualBox 1.6) 2009 </para> 2010 </listitem> 2011 2012 </itemizedlist> 2013 2014 <para> 2015 After seamless windows are enabled, VirtualBox suppresses the 2016 display of the desktop background of your guest, allowing you to 2017 run the windows of your guest operating system seamlessly next to 2018 the windows of your host. 2019 </para> 2020 2021 <mediaobject> 2022 <imageobject> 2023 <imagedata align="center" fileref="images/seamless.png" width="14cm" /> 2024 </imageobject> 2025 </mediaobject> 2026 2027 <para> 2028 To enable seamless mode, after starting the virtual machine, press 2029 the <emphasis role="bold">Host key + L</emphasis>. The Host key is 2030 normally the right control key. This will enlarge the size of the 2031 VM's display to the size of your host screen and mask out the 2032 guest operating system's background. To disable seamless windows 2033 and go back to the normal VM display, press the Host key + L 2034 again. 2035 </para> 2036 1353 2037 </sect1> 1354 2038 1355 2039 <sect1 id="guestadd-guestprops"> 1356 <title>Guest properties</title> 1357 1358 <para>Starting with version 2.1, VirtualBox allows for requesting certain 1359 properties from a running guest, provided that the VirtualBox Guest 1360 Additions are installed and the VM is running. This is good for two 1361 things:<orderedlist> 1362 <listitem> 1363 <para>A number of predefined VM characteristics are automatically 1364 maintained by VirtualBox and can be retrieved on the host, e.g. to 1365 monitor VM performance and statistics.</para> 1366 </listitem> 1367 1368 <listitem> 1369 <para>In addition, arbitrary string data can be exchanged between 1370 guest and host. This works in both directions.</para> 1371 </listitem> 1372 </orderedlist></para> 1373 1374 <para>To accomplish this, VirtualBox establishes a private communication 1375 channel between the VirtualBox Guest Additions and the host, and software 1376 on both sides can use this channel to exchange string data for arbitrary 1377 purposes. Guest properties are simply string keys to which a value is 1378 attached. They can be set (written to) by either the host and the guest, 1379 and they can also be read from both sides.</para> 1380 1381 <para>In addition to establishing the general mechanism of reading and 1382 writing values, a set of predefined guest properties is automatically 1383 maintained by the VirtualBox Guest Additions to allow for retrieving 1384 interesting guest data such as the guest's exact operating system and 1385 service pack level, the installed version of the Guest Additions, users 1386 that are currently logged into the guest OS, network statistics and more. 1387 These predefined properties are all prefixed with 1388 <computeroutput>/VirtualBox/</computeroutput> and organized into a 1389 hierarchical tree of keys.</para> 1390 1391 <para>Some of this runtime information is shown when you select "Session 1392 Information Dialog" from a virtual machine's "Machine" menu.</para> 1393 1394 <para>A more flexible way to use this channel is via the 1395 <computeroutput>VBoxManage guestproperty</computeroutput> command set; see 1396 <xref linkend="vboxmanage-guestproperty" /> for details. For example, to 1397 have <emphasis>all</emphasis> the available guest properties for a given 1398 running VM listed with their respective values, use this:<screen>$ VBoxManage guestproperty enumerate "Windows Vista III" 1399 VirtualBox Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 1400 (C) 2005-@VBOX_C_YEAR@ @VBOX_VENDOR@ 2040 2041 <title>Guest Properties</title> 2042 2043 <para> 2044 Starting with version 2.1, VirtualBox enables requesting of 2045 certain properties from a running guest, provided that the 2046 VirtualBox Guest Additions are installed and the VM is running. 2047 This provides the following advantages: 2048 </para> 2049 2050 <itemizedlist> 2051 2052 <listitem> 2053 <para> 2054 A number of predefined VM characteristics are automatically 2055 maintained by VirtualBox and can be retrieved on the host. For 2056 example, to monitor VM performance and statistics. 2057 </para> 2058 </listitem> 2059 2060 <listitem> 2061 <para> 2062 Arbitrary string data can be exchanged between guest and host. 2063 This works in both directions. 2064 </para> 2065 </listitem> 2066 2067 </itemizedlist> 2068 2069 <para> 2070 To accomplish this, VirtualBox establishes a private communication 2071 channel between the VirtualBox Guest Additions and the host, and 2072 software on both sides can use this channel to exchange string 2073 data for arbitrary purposes. Guest properties are simply string 2074 keys to which a value is attached. They can be set, or written to, 2075 by either the host and the guest. They can also be read from both 2076 sides. 2077 </para> 2078 2079 <para> 2080 In addition to establishing the general mechanism of reading and 2081 writing values, a set of predefined guest properties is 2082 automatically maintained by the VirtualBox Guest Additions to 2083 allow for retrieving interesting guest data such as the guest's 2084 exact operating system and service pack level, the installed 2085 version of the Guest Additions, users that are currently logged 2086 into the guest OS, network statistics and more. These predefined 2087 properties are all prefixed with 2088 <computeroutput>/VirtualBox/</computeroutput> and organized into a 2089 hierarchical tree of keys. 2090 </para> 2091 2092 <para> 2093 Some of this runtime information is shown when you select 2094 <emphasis role="bold">Session Information Dialog</emphasis> from a 2095 virtual machine's Machine menu. 2096 </para> 2097 2098 <para> 2099 A more flexible way to use this channel is via the 2100 <computeroutput>VBoxManage guestproperty</computeroutput> command. 2101 See <xref linkend="vboxmanage-guestproperty" />. For example, to 2102 have <emphasis>all</emphasis> the available guest properties for a 2103 given running VM listed with their respective values, use this 2104 command: 2105 </para> 2106 2107 <screen>$ VBoxManage guestproperty enumerate "Windows Vista III" 2108 VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable> 2109 (C) 2005-2018 Oracle Corporation 1401 2110 All rights reserved. 1402 2111 … … 1412 2121 Name: /VirtualBox/GuestAdd/Revision, value: 40720, 1413 2122 timestamp: 1229098279345664000, flags: 1414 Name: /VirtualBox/GuestAdd/Version, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@,2123 Name: /VirtualBox/GuestAdd/Version, value: <replaceable>version-number</replaceable>, 1415 2124 timestamp: 1229098279479515000, flags: 1416 Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2125 Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: <replaceable>version-number</replaceable>r40720, 1417 2126 timestamp: 1229098279651731000, flags: 1418 Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2127 Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: <replaceable>version-number</replaceable>r40720, 1419 2128 timestamp: 1229098279804835000, flags: 1420 Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2129 Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: <replaceable>version-number</replaceable>r40720, 1421 2130 timestamp: 1229098279880611000, flags: 1422 Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2131 Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: <replaceable>version-number</replaceable>r40720, 1423 2132 timestamp: 1229098279882618000, flags: 1424 Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2133 Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: <replaceable>version-number</replaceable>r40720, 1425 2134 timestamp: 1229098279883195000, flags: 1426 Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2135 Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: <replaceable>version-number</replaceable>r40720, 1427 2136 timestamp: 1229098279885027000, flags: 1428 Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2137 Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: <replaceable>version-number</replaceable>r40720, 1429 2138 timestamp: 1229098279886838000, flags: 1430 Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2139 Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: <replaceable>version-number</replaceable>r40720, 1431 2140 timestamp: 1229098279890600000, flags: 1432 Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2141 Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: <replaceable>version-number</replaceable>r40720, 1433 2142 timestamp: 1229098279893056000, flags: 1434 Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,2143 Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: <replaceable>version-number</replaceable>r40720, 1435 2144 timestamp: 1229098279895767000, flags: 1436 2145 Name: /VirtualBox/GuestInfo/OS/LoggedInUsers, value: 1, … … 1451 2160 timestamp: 1229099826300524000, flags: 1452 2161 Name: /VirtualBox/GuestInfo/OS/LoggedInUsersList, value: username, 1453 timestamp: 1229099826317386000, flags:</screen></para> 1454 1455 <para>To query the value of a single property, use the "get" subcommand 1456 like this:<screen>$ VBoxManage guestproperty get "Windows Vista III" "/VirtualBox/GuestInfo/OS/Product" 1457 VirtualBox Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 1458 (C) 2005-@VBOX_C_YEAR@ @VBOX_VENDOR@ 2162 timestamp: 1229099826317386000, flags:</screen> 2163 2164 <para> 2165 To query the value of a single property, use the 2166 <computeroutput>get</computeroutput> subcommand as follows: 2167 </para> 2168 2169 <screen>$ VBoxManage guestproperty get "Windows Vista III" "/VirtualBox/GuestInfo/OS/Product" 2170 VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable> 2171 (C) 2005-2018 Oracle Corporation 1459 2172 All rights reserved. 1460 2173 1461 Value: Windows Vista Business Edition</screen></para> 1462 1463 <para>To add or change guest properties from the guest, use the tool 1464 <computeroutput>VBoxControl</computeroutput>. This tool is included in the 1465 Guest Additions of VirtualBox 2.2 or later. When started from a Linux 1466 guest, this tool requires root privileges for security reasons:<screen>$ sudo VBoxControl guestproperty enumerate 1467 VirtualBox Guest Additions Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 1468 (C) 2009-@VBOX_C_YEAR@ @VBOX_VENDOR@ 2174 Value: Windows Vista Business Edition</screen> 2175 2176 <para> 2177 To add or change guest properties from the guest, use the tool 2178 <computeroutput>VBoxControl</computeroutput>. This tool is 2179 included in the Guest Additions of VirtualBox 2.2 or later. When 2180 started from a Linux guest, this tool requires root privileges for 2181 security reasons: 2182 </para> 2183 2184 <screen>$ sudo VBoxControl guestproperty enumerate 2185 VirtualBox Guest Additions Command Line Management Interface Version <replaceable>version-number</replaceable> 2186 (C) 2005-2018 Oracle Corporation 1469 2187 All rights reserved. 1470 2188 … … 1473 2191 Name: /VirtualBox/GuestInfo/OS/Version, value: #59-Ubuntu SMP Thu Jan 28 01:23:03 UTC 2010, 1474 2192 timestamp: 1265813265836305000, flags: <NULL> 1475 ...</screen></para> 1476 1477 <para>For more complex needs, you can use the VirtualBox programming 1478 interfaces; see <xref linkend="VirtualBoxAPI" />.</para> 2193 ...</screen> 2194 2195 <para> 2196 For more complex needs, you can use the VirtualBox programming 2197 interfaces. See <xref linkend="VirtualBoxAPI" />. 2198 </para> 2199 1479 2200 </sect1> 1480 2201 1481 2202 <sect1 id="guestadd-guestcontrol"> 1482 <title>Guest control</title> 1483 1484 <para>Starting with version 3.2, the Guest Additions of VirtualBox allow 1485 starting applications inside a VM from the host system.</para> 1486 1487 <para>For this to work, the application needs to be installed inside the 1488 guest; no additional software needs to be installed on the host. 1489 Additionally, text mode output (to stdout and stderr) can be shown on the 1490 host for further processing along with options to specify user credentials 1491 and a timeout value (in milliseconds) to limit time the application is 1492 able to run.</para> 1493 1494 <para>This feature can be used to automate deployment of software within 1495 the guest.</para> 1496 1497 <para>Starting with version 4.0, the Guest Additions for Windows allow for 1498 automatic updating (only already installed Guest Additions 4.0 or later). 1499 Also, copying files from host to the guest as well as remotely creating 1500 guest directories is available.</para> 1501 1502 <para>To use these features, use the VirtualBox command line, see <xref 1503 linkend="vboxmanage-guestcontrol" />.</para> 2203 2204 <title>Guest Control</title> 2205 2206 <para> 2207 Starting with version 3.2, the Guest Additions of VirtualBox allow 2208 starting applications inside a VM from the host system. 2209 </para> 2210 2211 <para> 2212 For this to work, the application needs to be installed inside the 2213 guest. No additional software needs to be installed on the host. 2214 Additionally, text mode output to stdout and stderr can be shown 2215 on the host for further processing. There are options to specify 2216 user credentials and a timeout value, in milliseconds, to limit 2217 the time the application is able to run. 2218 </para> 2219 2220 <para> 2221 This feature can be used to automate deployment of software within 2222 the guest. 2223 </para> 2224 2225 <para> 2226 Starting with version 4.0, the Guest Additions for Windows allow 2227 for automatic updating. This applies for already installed Guest 2228 Additions version 4.0 or later. Also, copying files from host to 2229 the guest as well as remotely creating guest directories is 2230 available. 2231 </para> 2232 2233 <para> 2234 To use these features, use the VirtualBox command line. See 2235 <xref 2236 linkend="vboxmanage-guestcontrol" />. 2237 </para> 2238 1504 2239 </sect1> 1505 2240 1506 <sect1> 1507 <title>Memory overcommitment</title> 1508 1509 <para>In server environments with many VMs; the Guest Additions can be 1510 used to share physical host memory between several VMs, reducing the total 1511 amount of memory in use by the VMs. If memory usage is the limiting factor 1512 and CPU resources are still available, this can help with packing more VMs 1513 on each host.</para> 2241 <sect1 id="guestadd-memory-usage"> 2242 2243 <title>Memory Overcommitment</title> 2244 2245 <para> 2246 In server environments with many VMs, the Guest Additions can be 2247 used to share physical host memory between several VMs. This 2248 reduces the total amount of memory in use by the VMs. If memory 2249 usage is the limiting factor and CPU resources are still 2250 available, this can help with running more VMs on each host. 2251 </para> 1514 2252 1515 2253 <sect2 id="guestadd-balloon"> 1516 <title>Memory ballooning</title> 1517 1518 <para>Starting with version 3.2, the Guest Additions of VirtualBox can 1519 change the amount of host memory that a VM uses while the machine is 1520 running. Because of how this is implemented, this feature is called 1521 "memory ballooning".</para> 2254 2255 <title>Memory Ballooning</title> 2256 2257 <para> 2258 Starting with version 3.2, the Guest Additions of VirtualBox can 2259 change the amount of host memory that a VM uses while the 2260 machine is running. Because of how this is implemented, this 2261 feature is called <emphasis>memory ballooning</emphasis>. 2262 </para> 1522 2263 1523 2264 <note> 1524 <para>VirtualBox supports memory ballooning only on 64-bit hosts, and 1525 it is not supported on Mac OS X hosts.</para> 2265 <itemizedlist> 2266 2267 <listitem> 2268 <para> 2269 VirtualBox supports memory ballooning only on 64-bit 2270 hosts. It is not supported on Mac OS X hosts. 2271 </para> 2272 </listitem> 2273 2274 <listitem> 2275 <para> 2276 Memory ballooning does not work with large pages enabled. 2277 To turn off large pages support for a VM, run 2278 <computeroutput>VBoxManage modifyvm <VM name> 2279 --largepages off</computeroutput> 2280 </para> 2281 </listitem> 2282 2283 </itemizedlist> 1526 2284 </note> 1527 2285 2286 <para> 2287 Normally, to change the amount of memory allocated to a virtual 2288 machine, you have to shut down the virtual machine entirely and 2289 modify its settings. With memory ballooning, memory that was 2290 allocated for a virtual machine can be given to another virtual 2291 machine without having to shut the machine down. 2292 </para> 2293 2294 <para> 2295 When memory ballooning is requested, the VirtualBox Guest 2296 Additions, which run inside the guest, allocate physical memory 2297 from the guest operating system on the kernel level and lock 2298 this memory down in the guest. This ensures that the guest will 2299 not use that memory any longer. No guest applications can 2300 allocate it, and the guest kernel will not use it either. 2301 VirtualBox can then reuse this memory and give it to another 2302 virtual machine. 2303 </para> 2304 2305 <para> 2306 The memory made available through the ballooning mechanism is 2307 only available for reuse by VirtualBox. It is 2308 <emphasis>not</emphasis> returned as free memory to the host. 2309 Requesting balloon memory from a running guest will therefore 2310 not increase the amount of free, unallocated memory on the host. 2311 Effectively, memory ballooning is therefore a memory 2312 overcommitment mechanism for multiple virtual machines while 2313 they are running. This can be useful to temporarily start 2314 another machine, or in more complicated environments, for 2315 sophisticated memory management of many virtual machines that 2316 may be running in parallel depending on how memory is used by 2317 the guests. 2318 </para> 2319 2320 <para> 2321 At this time, memory ballooning is only supported through 2322 VBoxManage. Use the following command to increase or decrease 2323 the size of the memory balloon within a running virtual machine 2324 that has Guest Additions installed: 2325 </para> 2326 2327 <screen>VBoxManage controlvm "VM name" guestmemoryballoon n</screen> 2328 2329 <para> 2330 where <replaceable>VM name</replaceable> is the name or UUID of 2331 the virtual machine in question and <replaceable>n</replaceable> 2332 is the amount of memory to allocate from the guest in megabytes. 2333 See <xref 2334 linkend="vboxmanage-controlvm" />. 2335 </para> 2336 2337 <para> 2338 You can also set a default balloon that will automatically be 2339 requested from the VM every time after it has started up with 2340 the following command: 2341 2342 <screen>VBoxManage modifyvm "VM name" --guestmemoryballoon n</screen> 2343 </para> 2344 2345 <para> 2346 By default, no balloon memory is allocated. This is a VM 2347 setting, like other <computeroutput>modifyvm</computeroutput> 2348 settings, and therefore can only be set while the machine is 2349 shut down. See <xref 2350 linkend="vboxmanage-modifyvm" />. 2351 </para> 2352 2353 </sect2> 2354 2355 <sect2 id="guestadd-pagefusion"> 2356 2357 <title>Page Fusion</title> 2358 2359 <para> 2360 Whereas memory ballooning simply reduces the amount of RAM that 2361 is available to a VM, Page Fusion works differently. It avoids 2362 memory duplication between several similar running VMs. 2363 </para> 2364 2365 <para> 2366 In a server environment running several similar VMs, for example 2367 with identical operating systems, on the same host, lots of 2368 memory pages are identical. VirtualBox's Page Fusion technology, 2369 introduced with VirtualBox 3.2, is a novel technique to 2370 efficiently identify these identical memory pages and share them 2371 between multiple VMs. 2372 </para> 2373 1528 2374 <note> 1529 <para>Memory ballooning does not work with large pages enabled. To 1530 turn off large pages support for a VM, run 1531 <computeroutput>VBoxManage modifyvm <VM name> --largepages off</computeroutput> 2375 <para> 2376 VirtualBox supports Page Fusion only on 64-bit hosts, and it 2377 is not supported on Mac OS X hosts. Page Fusion currently 2378 works only with Windows 2000 and later guests. 1532 2379 </para> 1533 2380 </note> 1534 2381 1535 <para>Normally, to change the amount of memory allocated to a virtual 1536 machine, one has to shut down the virtual machine entirely and modify 1537 its settings. With memory ballooning, memory that was allocated for a 1538 virtual machine can be given to another virtual machine without having 1539 to shut the machine down.</para> 1540 1541 <para>When memory ballooning is requested, the VirtualBox Guest 1542 Additions (which run inside the guest) allocate physical memory from the 1543 guest operating system on the kernel level and lock this memory down in 1544 the guest. This ensures that the guest will not use that memory any 1545 longer: no guest applications can allocate it, and the guest kernel will 1546 not use it either. VirtualBox can then re-use this memory and give it to 1547 another virtual machine.</para> 1548 1549 <para>The memory made available through the ballooning mechanism is only 1550 available for re-use by VirtualBox. It is <emphasis>not</emphasis> 1551 returned as free memory to the host. Requesting balloon memory from a 1552 running guest will therefore not increase the amount of free, 1553 unallocated memory on the host. Effectively, memory ballooning is 1554 therefore a memory overcommitment mechanism for multiple virtual 1555 machines while they are running. This can be useful to temporarily start 1556 another machine, or in more complicated environments, for sophisticated 1557 memory management of many virtual machines that may be running in 1558 parallel depending on how memory is used by the guests.</para> 1559 1560 <para>At this time, memory ballooning is only supported through 1561 VBoxManage. Use the following command to increase or decrease the size 1562 of the memory balloon within a running virtual machine that has Guest 1563 Additions installed: <screen>VBoxManage controlvm "VM name" guestmemoryballoon <n></screen>where 1564 <computeroutput>"VM name"</computeroutput> is the name or UUID of the 1565 virtual machine in question and 1566 <computeroutput><n></computeroutput> is the amount of memory to 1567 allocate from the guest in megabytes. See <xref 1568 linkend="vboxmanage-controlvm" /> for more information.</para> 1569 1570 <para>You can also set a default balloon that will automatically be 1571 requested from the VM every time after it has started up with the 1572 following command: <screen>VBoxManage modifyvm "VM name" --guestmemoryballoon <n></screen></para> 1573 1574 <para>By default, no balloon memory is allocated. This is a VM setting, 1575 like other <computeroutput>modifyvm</computeroutput> settings, and 1576 therefore can only be set while the machine is shut down; see <xref 1577 linkend="vboxmanage-modifyvm" />.</para> 2382 <para> 2383 The more similar the VMs on a given host are, the more 2384 efficiently Page Fusion can reduce the amount of host memory 2385 that is in use. It therefore works best if all VMs on a host run 2386 identical operating systems, such as Windows XP Service Pack 2. 2387 Instead of having a complete copy of each operating system in 2388 each VM, Page Fusion identifies the identical memory pages in 2389 use by these operating systems and eliminates the duplicates, 2390 sharing host memory between several machines. This is called 2391 <emphasis>deduplication</emphasis>. If a VM tries to modify a 2392 page that has been shared with other VMs, a new page is 2393 allocated again for that VM with a copy of the shared page. This 2394 is called <emphasis>copy on write</emphasis>. All this is fully 2395 transparent to the virtual machine. 2396 </para> 2397 2398 <para> 2399 You may be familiar with this kind of memory overcommitment from 2400 other hypervisor products, which call this feature 2401 <emphasis>page sharing</emphasis> or <emphasis>same page 2402 merging</emphasis>. However, Page Fusion differs significantly 2403 from those other solutions, whose approaches have several 2404 drawbacks: 2405 </para> 2406 2407 <itemizedlist> 2408 2409 <listitem> 2410 <para> 2411 Traditional hypervisors scan <emphasis>all</emphasis> guest 2412 memory and compute checksums (hashes) for every single 2413 memory page. Then, they look for pages with identical hashes 2414 and compare the entire content of those pages. If two pages 2415 produce the same hash, it is very likely that the pages are 2416 identical in content. This process can take rather long, 2417 especially if the system is not idling. As a result, the 2418 additional memory only becomes available after a significant 2419 amount of time, such as hours or sometimes days. Even worse, 2420 this kind of page sharing algorithm generally consumes 2421 significant CPU resources and increases the virtualization 2422 overhead by 10 to 20%. 2423 </para> 2424 2425 <para> 2426 Page Fusion in VirtualBox uses logic in the VirtualBox Guest 2427 Additions to quickly identify memory cells that are most 2428 likely identical across VMs. It can therefore achieve most 2429 of the possible savings of page sharing almost immediately 2430 and with almost no overhead. 2431 </para> 2432 </listitem> 2433 2434 <listitem> 2435 <para> 2436 Page Fusion is also much less likely to be confused by 2437 identical memory that it will eliminate, just to learn 2438 seconds later that the memory will now change and having to 2439 perform a highly expensive and often service-disrupting 2440 reallocation. 2441 </para> 2442 </listitem> 2443 2444 </itemizedlist> 2445 2446 <para> 2447 At this time, Page Fusion can only be controlled with 2448 VBoxManage, and only while a VM is shut down. To enable Page 2449 Fusion for a VM, use the following command: 2450 </para> 2451 2452 <screen>VBoxManage modifyvm "VM name" --pagefusion on</screen> 2453 2454 <para> 2455 You can observe Page Fusion operation using some metrics. 2456 <computeroutput>RAM/VMM/Shared</computeroutput> shows the total 2457 amount of fused pages, whereas the per-VM metric 2458 <computeroutput>Guest/RAM/Usage/Shared</computeroutput> will 2459 return the amount of fused memory for a given VM. See 2460 <xref 2461 linkend="vboxmanage-metrics" /> for information on 2462 how to query metrics. 2463 </para> 2464 2465 <note> 2466 <para> 2467 Enabling Page Fusion might indirectly increase the chances for 2468 malicious guests to successfully attack other VMs running on 2469 the same host. See <xref linkend="pot-insecure"/>. 2470 </para> 2471 </note> 2472 1578 2473 </sect2> 1579 2474 1580 <sect2 id="guestadd-pagefusion">1581 <title>Page Fusion</title>1582 1583 <para>Whereas memory ballooning simply reduces the amount of RAM that is1584 available to a VM, Page Fusion works differently: it avoids memory1585 duplication between several similar running VMs.</para>1586 1587 <para>In a server environment running several similar VMs (e.g. with1588 identical operating systems) on the same host, lots of memory pages are1589 identical. VirtualBox's Page Fusion technology, introduced with1590 VirtualBox 3.2, is a novel technique to efficiently identify these1591 identical memory pages and share them between multiple VMs.<note>1592 <para>VirtualBox supports Page Fusion only on 64-bit hosts, and it1593 is not supported on Mac OS X hosts. Page Fusion currently works only1594 with Windows guests (2000 and later).</para>1595 </note></para>1596 1597 <para>The more similar the VMs on a given host are, the more efficiently1598 Page Fusion can reduce the amount of host memory that is in use. It1599 therefore works best if all VMs on a host run identical operating1600 systems (e.g. Windows XP Service Pack 2). Instead of having a complete1601 copy of each operating system in each VM, Page Fusion identifies the1602 identical memory pages in use by these operating systems and eliminates1603 the duplicates, sharing host memory between several machines1604 ("deduplication"). If a VM tries to modify a page that has been shared1605 with other VMs, a new page is allocated again for that VM with a copy of1606 the shared page ("copy on write"). All this is fully transparent to the1607 virtual machine.</para>1608 1609 <para>You may be familiar with this kind of memory overcommitment from1610 other hypervisor products, which call this feature "page sharing" or1611 "same page merging". However, Page Fusion differs significantly from1612 those other solutions, whose approaches have several1613 drawbacks:<orderedlist>1614 <listitem>1615 <para>Traditional hypervisors scan <emphasis>all</emphasis> guest1616 memory and compute checksums (hashes) for every single memory1617 page. Then, they look for pages with identical hashes and compare1618 the entire content of those pages; if two pages produce the same1619 hash, it is very likely that the pages are identical in content.1620 This, of course, can take rather long, especially if the system is1621 not idling. As a result, the additional memory only becomes1622 available after a significant amount of time (this can be hours or1623 even days!). Even worse, this kind of page sharing algorithm1624 generally consumes significant CPU resources and increases the1625 virtualization overhead by 10-20%.</para>1626 1627 <para>Page Fusion in VirtualBox uses logic in the VirtualBox Guest1628 Additions to quickly identify memory cells that are most likely1629 identical across VMs. It can therefore achieve most of the1630 possible savings of page sharing almost immediately and with1631 almost no overhead.</para>1632 </listitem>1633 1634 <listitem>1635 <para>Page Fusion is also much less likely to be confused by1636 identical memory that it will eliminate just to learn seconds1637 later that the memory will now change and having to perform a1638 highly expensive and often service-disrupting reallocation.</para>1639 </listitem>1640 </orderedlist></para>1641 1642 <para>At this time, Page Fusion can only be controlled with VBoxManage,1643 and only while a VM is shut down. To enable Page Fusion for a VM, use1644 the following command:<screen>VBoxManage modifyvm "VM name" --pagefusion on</screen></para>1645 1646 <para>You can observe Page Fusion operation using some metrics.1647 <computeroutput>RAM/VMM/Shared</computeroutput> shows the total amount1648 of fused pages, whereas the per-VM metric1649 <computeroutput>Guest/RAM/Usage/Shared</computeroutput> will return the1650 amount of fused memory for a given VM. Please refer to <xref1651 linkend="metrics" /> for information on how to query metrics.</para>1652 1653 <note><para>Enabling Page Fusion might indirectly increase the chances1654 for malicious guests to successfully attack other VMs running on the1655 same host, see <xref linkend="pot-insecure"/>.</para></note>1656 </sect2>1657 2475 </sect1> 2476 1658 2477 </chapter> -
trunk/doc/manual/en_US/user_Installation.xml
r70838 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="installation"> 5 <title>Installation details</title> 6 7 <para>As installation of VirtualBox varies depending on your host operating 8 system, we provide installation instructions in four separate chapters for 9 Windows, Mac OS X, Linux and Solaris, respectively.</para> 8 9 <title>Installation Details</title> 10 11 <para> 12 As installation of VirtualBox varies depending on your host 13 operating system, we provide installation instructions in four 14 separate chapters for Windows, Mac OS X, Linux and Solaris, 15 respectively. 16 </para> 10 17 11 18 <sect1 id="installation_windows"> 12 <title>Installing on Windows hosts</title> 13 14 <sect2> 19 20 <title>Installing on Windows Hosts</title> 21 22 <sect2 id="install-win-prereq"> 23 15 24 <title>Prerequisites</title> 16 25 17 <para>For the various versions of Windows that we support as host 18 operating systems, please refer to <xref 19 linkend="hostossupport" />.</para> 20 21 <para>In addition, Windows Installer 1.1 or higher must be present on 22 your system. This should be the case if you have all recent Windows 23 updates installed.</para> 24 </sect2> 25 26 <sect2> 27 <title>Performing the installation</title> 28 29 <para>The VirtualBox installation can be started <itemizedlist> 26 <para> 27 For the various versions of Windows that are supported as host 28 operating systems, please refer to 29 <xref 30 linkend="hostossupport" />. 31 </para> 32 33 <para> 34 In addition, Windows Installer 1.1 or higher must be present on 35 your system. This should be the case if you have all recent 36 Windows updates installed. 37 </para> 38 39 </sect2> 40 41 <sect2 id="install-win-performing"> 42 43 <title>Performing the Installation</title> 44 45 <para> 46 The VirtualBox installation can be started in either of the 47 following ways: 48 </para> 49 50 <itemizedlist> 51 52 <listitem> 53 <para> 54 By double-clicking on the executable file, which contains 55 both 32-bit and 64-bit architectures. 56 </para> 57 </listitem> 58 59 <listitem> 60 <para> 61 By entering the following command: 62 </para> 63 64 <screen>VirtualBox-<version>-<revision>-Win.exe -extract</screen> 65 66 <para> 67 This will extract both installers into a temporary 68 directory, along with .MSI files. Run the following command 69 to to perform the installation: 70 </para> 71 72 <screen>msiexec /i VirtualBox-<version>-<revision>-MultiArch_<x86|amd64>.msi</screen> 73 </listitem> 74 75 </itemizedlist> 76 77 <para> 78 Using either way displays the installation Welcome dialog and 79 enables you to choose where to install VirtualBox, and which 80 components to install. In addition to the VirtualBox 81 application, the following components are available: 82 </para> 83 84 <itemizedlist> 85 86 <listitem> 87 <para> 88 <emphasis role="bold">USB support.</emphasis> This package 89 contains special drivers for your Windows host that 90 VirtualBox requires to fully support USB devices inside your 91 virtual machines. 92 </para> 93 </listitem> 94 95 <listitem> 96 <para> 97 <emphasis role="bold">Networking.</emphasis> This package 98 contains extra networking drivers for your Windows host that 99 VirtualBox needs to support Bridged Networking. This enables 100 your VM's virtual network cards to be accessed from other 101 machines on your physical network. 102 </para> 103 </listitem> 104 105 <listitem> 106 <para> 107 <emphasis role="bold">Python support.</emphasis> This 108 package contains Python scripting support for the VirtualBox 109 API, see <xref linkend="VirtualBoxAPI" />. For this to work, 110 an already working Windows Python installation on the system 111 is required. 112 </para> 113 114 <para> 115 See, for example: 116 <ulink 117 url="http://www.python.org/download/windows/">http://www.python.org/download/windows/</ulink>. 118 </para> 119 120 <note> 121 <para> 122 Python version at least 2.6 is required. Since VirtualBox 123 5.1, Python 3 is also supported. 124 </para> 125 </note> 126 </listitem> 127 128 </itemizedlist> 129 130 <para> 131 Depending on your Windows configuration, you may see warnings 132 about unsigned drivers, or similar. Click 133 <emphasis role="bold">Continue</emphasis> for these warnings, as 134 otherwise VirtualBox might not function correctly after 135 installation. 136 </para> 137 138 <para> 139 The installer will create a VirtualBox group in the Windows 140 Start menu, which allows you to launch the application and 141 access its documentation. 142 </para> 143 144 <para> 145 With standard settings, VirtualBox will be installed for all 146 users on the local system. If this is not wanted, you must 147 invoke the installer by first extracting as follows: 148 </para> 149 150 <screen>VirtualBox.exe -extract</screen> 151 152 <para> 153 Then, run either of the following commands on the extracted .MSI 154 files. This will install VirtualBox only for the current user. 155 </para> 156 157 <screen>VirtualBox.exe -msiparams ALLUSERS=2</screen> 158 159 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi ALLUSERS=2</screen> 160 161 <para> 162 If you do not want to install all features of VirtualBox, you 163 can set the optional <computeroutput>ADDLOCAL</computeroutput> 164 parameter to explicitly name the features to be installed. The 165 following features are available: 166 </para> 167 168 <variablelist> 169 170 <varlistentry> 171 <term> 172 VBoxApplication 173 </term> 174 30 175 <listitem> 31 <para>either by double-clicking on its executable file (contains 32 both 32- and 64-bit architectures)</para> 176 <para> 177 Main binaries of VirtualBox. 178 179 <note> 180 <para> 181 This feature must not be absent, since it contains the 182 minimum set of files to have working VirtualBox 183 installation. 184 </para> 185 </note> 186 </para> 33 187 </listitem> 188 </varlistentry> 189 190 <varlistentry> 191 <term> 192 VBoxUSB 193 </term> 34 194 35 195 <listitem> 36 <para>or by entering <screen>VirtualBox-<version>-<revision>-Win.exe -extract</screen></para> 37 38 <para>on the command line. This will extract both installers into 39 a temporary directory in which you'll then find the usual .MSI 40 files. Then you can do a <screen>msiexec /i VirtualBox-<version>-<revision>-MultiArch_<x86|amd64>.msi</screen> 41 to perform the installation.</para> 196 <para> 197 USB support. 198 </para> 42 199 </listitem> 43 </itemizedlist></para> 44 45 <para>In either case, this will display the installation welcome dialog 46 and allow you to choose where to install VirtualBox to and which 47 components to install. In addition to the VirtualBox application, the 48 following components are available:<glosslist> 49 <glossentry> 50 <glossterm>USB support</glossterm> 51 52 <glossdef> 53 <para>This package contains special drivers for your Windows 54 host that VirtualBox requires to fully support USB devices 55 inside your virtual machines.</para> 56 </glossdef> 57 </glossentry> 58 59 <glossentry> 60 <glossterm>Networking</glossterm> 61 62 <glossdef> 63 <para>This package contains extra networking drivers for your 64 Windows host that VirtualBox needs to support Bridged Networking 65 (to make your VM's virtual network cards accessible from other 66 machines on your physical network).</para> 67 </glossdef> 68 </glossentry> 69 70 <glossentry> 71 <glossterm>Python Support</glossterm> 72 73 <glossdef> 74 <para>This package contains Python scripting support for the 75 VirtualBox API (see <xref linkend="VirtualBoxAPI" />). For this 76 to work, an already working Windows Python installation on the 77 system is required. 78 <note><para>Python version ≥ 2.6 is required. Since VirtualBox 5.1 Python 3 is also supported.</para></note> 79 <footnote> 80 <para>See, for example, <ulink 81 url="http://www.python.org/download/windows/">http://www.python.org/download/windows/</ulink>.</para> 82 </footnote></para> 83 </glossdef> 84 </glossentry> 85 </glosslist></para> 86 87 <para>Depending on your Windows configuration, you may see warnings 88 about "unsigned drivers" or similar. Please select "Continue" on these 89 warnings as otherwise VirtualBox might not function correctly after 90 installation.</para> 91 92 <para>The installer will create a "VirtualBox" group in the Windows 93 "Start" menu which allows you to launch the application and access its 94 documentation.</para> 95 96 <para>With standard settings, VirtualBox will be installed for all users 97 on the local system. In case this is not wanted, you have to invoke the 98 installer by first extracting it by using <screen>VirtualBox.exe -extract</screen> 99 and then do as follows: <screen>VirtualBox.exe -msiparams ALLUSERS=2</screen> 100 or <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi ALLUSERS=2</screen> 101 on the extracted .MSI files. This will install VirtualBox only for the 102 current user.</para> 103 104 <para>If you do not want to install all features of VirtualBox, you can 105 set the optional <computeroutput>ADDLOCAL</computeroutput> parameter to 106 explicitly name the features to be installed. The following features are 107 available: <glosslist> 108 <glossentry> 109 <glossterm>VBoxApplication</glossterm> 110 111 <glossdef> 112 <para>Main binaries of VirtualBox.<note> 113 <para>This feature must not be absent since it contains the 114 minimum set of files to have working VirtualBox 115 installation.</para> 116 </note></para> 117 </glossdef> 118 </glossentry> 119 120 <glossentry> 121 <glossterm>VBoxUSB</glossterm> 122 123 <glossdef> 124 <para>USB support.</para> 125 </glossdef> 126 </glossentry> 127 128 <glossentry> 129 <glossterm>VBoxNetwork</glossterm> 130 131 <glossdef> 132 <para>All networking support; includes the VBoxNetworkFlt and 133 VBoxNetworkAdp features (see below).</para> 134 </glossdef> 135 </glossentry> 136 137 <glossentry> 138 <glossterm>VBoxNetworkFlt</glossterm> 139 140 <glossdef> 141 <para>Bridged networking support.</para> 142 </glossdef> 143 </glossentry> 144 145 <glossentry> 146 <glossterm>VBoxNetworkAdp</glossterm> 147 148 <glossdef> 149 <para>Host-only networking support.</para> 150 </glossdef> 151 </glossentry> 152 153 <glossentry> 154 <glossterm>VBoxPython</glossterm> 155 156 <glossdef> 157 <para>Python support. 158 <note><para>Python version ≥ 2.6 is required. Since VirtualBox 5.1 Python 3 is also supported.</para></note> 200 </varlistentry> 201 202 <varlistentry> 203 <term> 204 VBoxNetwork 205 </term> 206 207 <listitem> 208 <para> 209 All networking support. This includes the VBoxNetworkFlt 210 and VBoxNetworkAdp features. 211 </para> 212 </listitem> 213 </varlistentry> 214 215 <varlistentry> 216 <term> 217 VBoxNetworkFlt 218 </term> 219 220 <listitem> 221 <para> 222 Bridged networking support. 223 </para> 224 </listitem> 225 </varlistentry> 226 227 <varlistentry> 228 <term> 229 VBoxNetworkAdp 230 </term> 231 232 <listitem> 233 <para> 234 Host-only networking support 235 </para> 236 </listitem> 237 </varlistentry> 238 239 <varlistentry> 240 <term> 241 VBoxPython 242 </term> 243 244 <listitem> 245 <para> 246 Python support 247 </para> 248 249 <note> 250 <para> 251 Python version at least 2.6 is required. Since 252 VirtualBox 5.1, Python 3 is also supported. 159 253 </para> 160 </glossdef> 161 </glossentry> 162 </glosslist>For example, to only install USB support along with the 163 main binaries, do a: <screen>VirtualBox.exe -msiparams ADDLOCAL=VBoxApplication,VBoxUSB</screen> 164 or <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi ADDLOCAL=VBoxApplication,VBoxUSB</screen></para> 165 166 <para> 167 The user is able to choose between NDIS5 and NDIS6 host network filters drivers during 168 the installation. This is realized via a command line parameter 169 <computeroutput>NETWORKTYPE</computeroutput>. 170 The NDIS6 driver is default for Windows Vista and later. For older Windows versions, 171 the installer will automatically select the NDIS5 driver and this cannot be changed. 172 For Windows Vista and later the user can force to install the (legacy) NDIS5 host 173 network filter driver using <computeroutput>NETWORKTYPE=NDIS5</computeroutput>. For 174 example, to install the NDIS5 driver on Windows 7, do 175 <screen>VirtualBox.exe -msiparams NETWORKTYPE=NDIS5</screen> 176 or 177 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi NETWORKTYPE=NDIS5</screen> 178 </para> 179 180 181 </sect2> 182 183 <sect2> 254 </note> 255 </listitem> 256 </varlistentry> 257 258 </variablelist> 259 260 <para> 261 For example, to only install USB support along with the main 262 binaries, run either of the following commands: 263 </para> 264 265 <screen>VirtualBox.exe -msiparams ADDLOCAL=VBoxApplication,VBoxUSB</screen> 266 267 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi ADDLOCAL=VBoxApplication,VBoxUSB</screen> 268 269 <para> 270 The user is able to choose between NDIS5 and NDIS6 host network 271 filter drivers during the installation. This is done using a 272 command line parameter, 273 <computeroutput>NETWORKTYPE</computeroutput>. The NDIS6 driver 274 is default for Windows Vista and later. For older Windows 275 versions, the installer will automatically select the NDIS5 276 driver and this cannot be changed. For Windows Vista and later 277 the user can force an install of the legacy NDIS5 host network 278 filter driver by using 279 <computeroutput>NETWORKTYPE=NDIS5</computeroutput>. For example, 280 to install the NDIS5 driver on Windows 7 use either of the 281 following commands: 282 </para> 283 284 <screen>VirtualBox.exe -msiparams NETWORKTYPE=NDIS5</screen> 285 286 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi NETWORKTYPE=NDIS5</screen> 287 288 </sect2> 289 290 <sect2 id="install-win-uninstall"> 291 184 292 <title>Uninstallation</title> 185 293 186 <para>As VirtualBox uses the standard Microsoft Windows installer, 187 VirtualBox can be safely uninstalled at any time by choosing the program 188 entry in the "Add/Remove Programs" applet in the Windows Control 189 Panel.</para> 190 </sect2> 191 192 <sect2> 193 <title>Unattended installation</title> 194 195 <para>Unattended installations can be performed using the standard MSI 196 support.</para> 197 198 </sect2> 199 200 <sect2> 201 <title>Public properties</title> 202 203 <para>The following public properties can be specified via MSI API, 204 <screen>VirtualBox.exe -msiparams NAME=VALUE [...]</screen> 205 or 206 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi NAME=VALUE [...]</screen> 207 to control additional behavior and/or features of the Windows host installer: 208 <glosslist> 209 <glossentry> 210 <glossterm>VBOX_INSTALLDESKTOPSHORTCUT</glossterm> 211 212 <glossdef> 213 <para>Specifies whether or not a VirtualBox icon on the desktop 214 should be created.</para> 215 216 <para>Set to <computeroutput>1</computeroutput> to enable, 217 <computeroutput>0</computeroutput> to disable. Default is 1.</para> 218 </glossdef> 219 </glossentry> 220 221 <glossentry> 222 <glossterm>VBOX_INSTALLQUICKLAUNCHSHORTCUT</glossterm> 223 224 <glossdef> 225 <para>Specifies whether or not a VirtualBox icon in the Quick Launch 226 Bar should be created.</para> 227 228 <para>Set to <computeroutput>1</computeroutput> to enable, 229 <computeroutput>0</computeroutput> to disable. Default is 1.</para> 230 </glossdef> 231 </glossentry> 232 233 <glossentry> 234 <glossterm>VBOX_REGISTERFILEEXTENSIONS</glossterm> 235 236 <glossdef> 237 <para>Specifies whether or not the file extensions .vbox, 238 .vbox-extpack, .ovf, .ova, .vdi, .vmdk, .vhd and .vdd should be 239 associated with VirtualBox. Files of these types then will be opened 240 with VirtualBox.</para> 241 242 <para>Set to <computeroutput>1</computeroutput> to enable, 243 <computeroutput>0</computeroutput> to disable. Default is 1.</para> 244 </glossdef> 245 </glossentry> 246 247 <glossentry> 248 <glossterm>VBOX_START</glossterm> 249 250 <glossdef> 251 <para>Specifies whether or not VirtualBox should be started right after 252 successful installation.</para> 253 254 <para>Set to <computeroutput>1</computeroutput> to enable, 255 <computeroutput>0</computeroutput> to disable. Default is 1.</para> 256 </glossdef> 257 </glossentry> 258 </glosslist> 259 </para> 260 261 </sect2> 294 <para> 295 As VirtualBox uses the standard Microsoft Windows installer, 296 VirtualBox can be safely uninstalled at any time. Click the 297 program entry in the <emphasis role="bold">Add/Remove 298 Programs</emphasis> list in the Windows Control Panel. 299 </para> 300 301 </sect2> 302 303 <sect2 id="install-win-unattended"> 304 305 <title>Unattended Installation</title> 306 307 <para> 308 Unattended installations can be performed using the standard MSI 309 support. 310 </para> 311 312 </sect2> 313 314 <sect2 id="install-win-public-props"> 315 316 <title>Public Properties</title> 317 318 <para> 319 Public properties can be specified via MSI API, to control 320 additional behavior and features of the Windows host installer. 321 Use either of the following commands: 322 </para> 323 324 <screen>VirtualBox.exe -msiparams NAME=VALUE [...]</screen> 325 326 <screen>msiexec /i VirtualBox-<version>-MultiArch_<x86|amd64>.msi NAME=VALUE [...]</screen> 327 328 <para> 329 The following public properties are available. 330 </para> 331 332 <itemizedlist> 333 334 <listitem> 335 <para> 336 VBOX_INSTALLDESKTOPSHORTCUT 337 </para> 338 339 <para> 340 Specifies whether or not a VirtualBox icon on the desktop 341 should be created. 342 </para> 343 344 <para> 345 Set to <computeroutput>1</computeroutput> to enable, 346 <computeroutput>0</computeroutput> to disable. Default is 1. 347 </para> 348 </listitem> 349 350 <listitem> 351 <para> 352 VBOX_INSTALLQUICKLAUNCHSHORTCUT 353 </para> 354 355 <para> 356 Specifies whether or not a VirtualBox icon in the Quick 357 Launch Bar should be created. 358 </para> 359 360 <para> 361 Set to <computeroutput>1</computeroutput> to enable, 362 <computeroutput>0</computeroutput> to disable. Default is 1. 363 </para> 364 </listitem> 365 366 <listitem> 367 <para> 368 VBOX_REGISTERFILEEXTENSIONS 369 </para> 370 371 <para> 372 Specifies whether or not the file extensions .vbox, 373 .vbox-extpack, .ovf, .ova, .vdi, .vmdk, .vhd and .vdd should 374 be associated with VirtualBox. Files of these types then 375 will be opened with VirtualBox. 376 </para> 377 378 <para> 379 Set to <computeroutput>1</computeroutput> to enable, 380 <computeroutput>0</computeroutput> to disable. Default is 1. 381 </para> 382 </listitem> 383 384 <listitem> 385 <para> 386 VBOX_START 387 </para> 388 389 <para> 390 Specifies whether or not VirtualBox should be started right 391 after successful installation. 392 </para> 393 394 <para> 395 Set to <computeroutput>1</computeroutput> to enable, 396 <computeroutput>0</computeroutput> to disable. Default is 1. 397 </para> 398 </listitem> 399 400 </itemizedlist> 401 402 </sect2> 403 262 404 </sect1> 263 405 264 <sect1> 265 <title>Installing on Mac OS X hosts</title> 266 267 <sect2> 268 <title>Performing the installation</title> 269 270 <para>For Mac OS X hosts, VirtualBox ships in a disk image 271 (<computeroutput>dmg</computeroutput>) file. Perform the following 272 steps: <orderedlist> 406 <sect1 id="installation-mac"> 407 408 <title>Installing on Mac OS X Hosts</title> 409 410 <sect2 id="install-mac-performing"> 411 412 <title>Performing the Installation</title> 413 414 <para> 415 For Mac OS X hosts, VirtualBox ships in a disk image 416 (<computeroutput>dmg</computeroutput>) file. Perform the 417 following steps to install on a Mac OS X host: 418 </para> 419 420 <orderedlist> 421 422 <listitem> 423 <para> 424 Double-click on the <computeroutput>dmg</computeroutput> 425 file, to mount the contents. 426 </para> 427 </listitem> 428 429 <listitem> 430 <para> 431 A window opens, prompting you to double-click on the 432 <computeroutput>VirtualBox.pkg</computeroutput> installer 433 file displayed in that window. 434 </para> 435 </listitem> 436 437 <listitem> 438 <para> 439 This will start the installer, which allows you to select 440 where to install VirtualBox. 441 </para> 442 </listitem> 443 444 </orderedlist> 445 446 <para> 447 After installation, you can find a VirtualBox icon in the 448 "Applications" folder in the Finder. 449 </para> 450 451 </sect2> 452 453 <sect2 id="install-mac-uninstall"> 454 455 <title>Uninstallation</title> 456 457 <para> 458 To uninstall VirtualBox, open the disk image 459 <computeroutput>dmg</computeroutput> file and double-click on 460 the uninstall icon shown. 461 </para> 462 463 </sect2> 464 465 <sect2 id="install-mac-unattended"> 466 467 <title>Unattended Installation</title> 468 469 <para> 470 To perform a non-interactive installation of VirtualBox you can 471 use the command line version of the installer application. 472 </para> 473 474 <para> 475 Mount the disk image (<computeroutput>dmg</computeroutput>) 476 file, as described in the installation procedure, or use the 477 following command line: 478 </para> 479 480 <screen>hdiutil attach /path/to/VirtualBox-xyz.dmg</screen> 481 482 <para> 483 Open a terminal session and run the following command: 484 </para> 485 486 <screen>sudo installer -pkg /Volumes/VirtualBox/VirtualBox.pkg -target /Volumes/Macintosh\ HD</screen> 487 488 </sect2> 489 490 </sect1> 491 492 <sect1 id="install-linux-host"> 493 494 <title>Installing on Linux Hosts</title> 495 496 <sect2 id="install-linux-prereq"> 497 498 <title>Prerequisites</title> 499 500 <para> 501 For the various versions of Linux that are supported as host 502 operating systems, see <xref 503 linkend="hostossupport" />. 504 </para> 505 506 <para> 507 You will need to install the following packages on your Linux 508 system before starting the installation. Some systems will do 509 this for you automatically when you install VirtualBox. 510 </para> 511 512 <itemizedlist> 513 514 <listitem> 515 <para> 516 Qt 5.3.2 or higher. Qt 5.6.2 or higher is recommended. 517 </para> 518 </listitem> 519 520 <listitem> 521 <para> 522 SDL 1.2.7 or higher. This graphics library is typically 523 called <computeroutput>libsdl</computeroutput> or similar. 524 </para> 525 </listitem> 526 527 </itemizedlist> 528 529 <note> 530 <para> 531 These packages are only required if you want to run the 532 VirtualBox graphical user interfaces. In particular, 533 <computeroutput>VirtualBox</computeroutput>, the graphical 534 VirtualBox manager, requires both Qt and SDL. 535 <computeroutput>VBoxSDL</computeroutput>, the simplified GUI, 536 requires only SDL. If you only want to run 537 <computeroutput>VBoxHeadless</computeroutput>, neither Qt nor 538 SDL are required. 539 </para> 540 </note> 541 542 </sect2> 543 544 <sect2 id="externalkernelmodules"> 545 546 <title>The VirtualBox Driver Modules</title> 547 548 <para> 549 In order to run other operating systems in virtual machines 550 alongside your main operating system, VirtualBox needs to 551 integrate very tightly into the system. To do this it installs a 552 driver module called <computeroutput>vboxdrv</computeroutput> 553 which does a lot of that work into the system kernel, which is 554 the part of the operating system which controls your processor 555 and physical hardware. Without this kernel module, you can still 556 use the VirtualBox manager to configure virtual machines, but 557 they will not start. It also installs network drivers called 558 <computeroutput>vboxnetflt</computeroutput> and 559 <computeroutput>vboxnetadp</computeroutput> which enable virtual 560 machines to make more use of your computer's network 561 capabilities and are needed for any virtual machine networking 562 beyond the basic NAT mode. 563 </para> 564 565 <para> 566 Since distributing driver modules separately from the kernel is 567 not something which Linux supports well, the install process 568 creates the modules on the system where they will be used. This 569 usually means first installing software packages from the 570 distribution which are needed for the build process. Normally, 571 these will be the GNU compiler (GCC), GNU Make (make) and 572 packages containing header files for your kernel, as well as 573 making sure that all system updates are installed and that the 574 system is running the most up-to-date kernel included in the 575 distribution. <emphasis>The running kernel and the header files 576 must be updated to matching versions</emphasis>. The following 577 list includes some instructions for common distributions. For 578 most of them you may want to start by finding the version name 579 of your kernel, using the command <computeroutput>uname 580 -r</computeroutput> in a terminal. The instructions assume that 581 you have not changed too much from the original installation, 582 particularly not installed a different kernel type. If you have, 583 then you will need to determine yourself what to set up. 584 </para> 585 586 <itemizedlist> 587 588 <listitem> 589 <para> 590 With Debian and Ubuntu-based distributions, you must install 591 the correct version of the 592 <computeroutput>linux-headers</computeroutput>, usually 593 whichever of 594 <computeroutput>linux-headers-generic</computeroutput>, 595 <computeroutput>linux-headers-amd64</computeroutput>, 596 <computeroutput>linux-headers-i686</computeroutput> or 597 <computeroutput>linux-headers-i686-pae</computeroutput> best 598 matches the kernel version name. Also, the 599 <computeroutput>linux-kbuild </computeroutput> package if it 600 exists. Basic Ubuntu releases should have the correct 601 packages installed by default. 602 </para> 603 </listitem> 604 605 <listitem> 606 <para> 607 On Fedora, Redhat, Oracle Linux and many other RPM-based 608 systems, the kernel version sometimes has a code of letters 609 or a word close to the end of the version name. For example 610 "uek" for the Oracle Enterprise kernel or "default" or 611 "desktop" for the standard SUSE kernels. In this case, the 612 package name is 613 <computeroutput>kernel-uek-devel</computeroutput> or 614 equivalent. If there is no such code, it is usually 615 <computeroutput>kernel-devel</computeroutput>. 616 </para> 617 </listitem> 618 619 <listitem> 620 <para> 621 On older SUSE and openSUSE Linux, you must install the 622 <computeroutput>kernel-source</computeroutput> and 623 <computeroutput>kernel-syms</computeroutput> packages. 624 </para> 625 </listitem> 626 627 </itemizedlist> 628 629 <para> 630 If you suspect that something has gone wrong with module 631 installation, check that your system is set up as described 632 above and try running the following command, as root: 633 </para> 634 635 <screen>rcvboxdrv setup</screen> 636 637 </sect2> 638 639 <sect2 id="install-linux-performing"> 640 641 <title>Performing the Installation</title> 642 643 <para> 644 VirtualBox is available in a number of package formats native to 645 various common Linux distributions> See 646 <xref linkend="hostossupport" />. In addition, there is an 647 alternative generic installer (.run) which should work on most 648 Linux distributions. The generic installer packages are built on 649 EL5 systems and thus require reasonably old versions of glibc 650 (version 2.5) and other system libraries. 651 </para> 652 653 <sect3 id="install-linux-debian-ubuntu"> 654 655 <title>Installing VirtualBox from a Debian/Ubuntu Package</title> 656 657 <para> 658 Download the appropriate package for your distribution. The 659 following examples assume that you are installing to a 32-bit 660 Ubuntu Wily system. Use <computeroutput>dpkg</computeroutput> 661 to install the Debian package,as follows: 662 </para> 663 664 <screen>sudo dpkg -i virtualbox-5.0_<replaceable>version-number</replaceable>_Ubuntu_wily_i386.deb</screen> 665 666 <para> 667 The installer will also try to build kernel modules suitable 668 for the current running kernel. If the build process is not 669 successful you will be shown a warning and the package will be 670 left unconfigured. Look at 671 <computeroutput>/var/log/vbox-install.log</computeroutput> to 672 find out why the compilation failed. You may have to install 673 the appropriate Linux kernel headers, see 674 <xref 675 linkend="externalkernelmodules" />. After 676 correcting any problems, run the following command: 677 </para> 678 679 <screen>sudo rcvboxdrv setup</screen> 680 681 <para> 682 This will start a second attempt to build the module. 683 </para> 684 685 <para> 686 If a suitable kernel module was found in the package or the 687 module was successfully built, the installation script will 688 attempt to load that module. If this fails, please see 689 <xref 690 linkend="ts_linux-kernelmodule-fails-to-load" /> 691 for further information. 692 </para> 693 694 <para> 695 Once VirtualBox has been successfully installed and 696 configured, you can start it by clicking 697 <emphasis role="bold">VirtualBox</emphasis> in your Start menu 698 or from the command line. See 699 <xref linkend="startingvboxonlinux" />. 700 </para> 701 702 </sect3> 703 704 <sect3 id="install-linux-alt-installer"> 705 706 <title>Using the Alternative Generic Installer (VirtualBox.run)</title> 707 708 <para> 709 The alternative generic installer performs the following 710 steps: 711 </para> 712 713 <itemizedlist> 714 273 715 <listitem> 274 <para>Double-click on that file to have its contents 275 mounted.</para> 716 <para> 717 Unpacks the application files to the target directory, 718 719 <screen>/opt/VirtualBox/</screen> 720 721 which cannot be changed. 722 </para> 276 723 </listitem> 277 724 278 725 <listitem> 279 <para>A window will open telling you to double click on the 280 <computeroutput>VirtualBox.pkg</computeroutput> installer file 281 displayed in that window.</para> 726 <para> 727 Builds and installs the VirtualBox kernel modules: 728 <computeroutput>vboxdrv</computeroutput>, 729 <computeroutput>vboxnetflt</computeroutput>, and 730 <computeroutput>vboxnetadp</computeroutput>. 731 </para> 282 732 </listitem> 283 733 284 734 <listitem> 285 <para>This will start the installer, which will allow you to 286 select where to install VirtualBox to.</para> 735 <para> 736 Creates <computeroutput>/sbin/rcvboxdrv</computeroutput>, 737 an init script to start the VirtualBox kernel module. 738 </para> 287 739 </listitem> 288 </orderedlist></para> 289 290 <para>After installation, you can find a VirtualBox icon in the 291 "Applications" folder in the Finder.</para> 292 </sect2> 293 294 <sect2> 295 <title>Uninstallation</title> 296 297 <para>To uninstall VirtualBox, open the disk image (dmg) file again and 298 double-click on the uninstall icon contained therein.</para> 299 </sect2> 300 301 <sect2> 302 <title>Unattended installation</title> 303 304 <para>To perform a non-interactive installation of VirtualBox you can 305 use the command line version of the installer application.</para> 306 307 <para>Mount the disk image (dmg) file as described in the normal 308 installation or use the following command line:</para> 309 310 <screen>hdiutil attach /path/to/VirtualBox-xyz.dmg</screen> 311 312 <para>Then open a terminal session and execute:</para> 313 314 <screen>sudo installer -pkg /Volumes/VirtualBox/VirtualBox.pkg -target /Volumes/Macintosh\ HD</screen> 315 </sect2> 316 </sect1> 317 318 <sect1 id="install-linux-host"> 319 <title>Installing on Linux hosts</title> 320 321 <sect2> 322 <title>Prerequisites</title> 323 324 <para>For the various versions of Linux that we support as host 325 operating systems, please refer to <xref 326 linkend="hostossupport" />.</para> 327 328 <para>You will need to install the following packages on your Linux 329 system before starting the installation (some systems will do this for 330 you automatically when you install VirtualBox):</para> 331 332 <itemizedlist> 333 <listitem> 334 <para>Qt 5.3.2 or higher (Qt 5.6.2 or higher recommended);</para> 335 </listitem> 336 337 <listitem> 338 <para>SDL 1.2.7 or higher (this graphics library is typically called 339 <computeroutput>libsdl</computeroutput> or similar).</para> 340 </listitem> 341 </itemizedlist> 342 343 <note> 344 <para>To be precise, these packages are only required if you want to 345 run the VirtualBox graphical user interfaces. In particular, 346 <computeroutput>VirtualBox</computeroutput>, the graphical VirtualBox 347 manager, requires both Qt and SDL; 348 <computeroutput>VBoxSDL</computeroutput>, our simplified GUI, requires 349 only SDL. By contrast, if you only want to run 350 <computeroutput>VBoxHeadless</computeroutput>, neither Qt nor SDL are 351 required.</para> 352 </note> 353 </sect2> 354 355 <sect2 id="externalkernelmodules"> 356 <title>The VirtualBox driver modules</title> 357 358 <para>In order to run other operating systems in virtual machines 359 alongside your main operating system, VirtualBox needs to integrate 360 very tightly into the system. To do this it installs a "driver" 361 module called <computeroutput>vboxdrv</computeroutput> which does 362 a lot of that work into the system kernel, which is the part of 363 the operating system which controls your processor and physical 364 hardware. Without this kernel module, you can still use the 365 VirtualBox manager to configure virtual machines, but they will not 366 start. It also installs network drivers called 367 <computeroutput>vboxnetflt</computeroutput> and 368 <computeroutput>vboxnetadp</computeroutput> which let virtual machines 369 make more use of your computer's network capabilities and are needed 370 for any virtual machine networking beyond the basic "NAT" mode.</para> 371 372 <para>Since distributing driver modules separately from the kernel 373 is not something which Linux supports well, we create the modules 374 on the system where they will be used. This usually means first 375 installing software packages from the distribution which are needed 376 for the "build" process. Normally, these will be the GNU compiler 377 (GCC), GNU Make (make) and packages containing "header files" for 378 your kernel - and making sure that all system updates are 379 installed and that the system is running the most up-to-date 380 kernel included in the distribution. <emphasis>The running kernel 381 and the header files must be updated to matching versions.</emphasis> 382 We will give some instructions for common distributions. For most 383 of them you will want to start by finding the version name of your 384 kernel using the command 385 <computeroutput>uname -r</computeroutput> in a terminal. They 386 assume that you have not changed too much from the original 387 installation, particularly not installed a different kernel type. 388 If you have then you will need to determine yourself what to set 389 up.</para> 390 391 <itemizedlist> 392 <listitem> 393 <para>With Debian and Ubuntu-based distributions, you 394 must install the right version of the 395 <computeroutput>linux-headers</computeroutput>, usually 396 whichever of <computeroutput>linux-headers-generic 397 </computeroutput>, <computeroutput>linux-headers-amd64 398 </computeroutput>, <computeroutput>linux-headers-i686 399 </computeroutput> or <computeroutput>linux-headers-i686-pae 400 </computeroutput> best matches the kernel version name; 401 and if it exists the <computeroutput>linux-kbuild 402 </computeroutput> 403 package. Basic Ubuntu releases should have the right 404 packages installed by default.</para> 405 </listitem> 406 407 <listitem> 408 <para>On Fedora, Redhat, Oracle Linux and many other 409 RPM-based systems, the kernel version sometimes has 410 a code of letters or a word close to the end of the 411 version name, for example "uek" for the Oracle 412 Enterprise kernel or "default" or "desktop" for the 413 standard SUSE kernels. In this case the package name is 414 <computeroutput>kernel-uek-devel</computeroutput> or 415 equivalent. If there is no such code, it is usually 416 <computeroutput>kernel-devel</computeroutput>.</para> 417 </listitem> 418 419 <listitem> 420 <para>On older SUSE and openSUSE Linux, you must install 421 the <computeroutput>kernel-source</computeroutput> 422 and <computeroutput>kernel-syms</computeroutput> 423 packages.</para> 424 </listitem> 425 </itemizedlist> 426 427 <para>If you suspect that something has gone wrong with module installation, 428 check that your system is set up as described above and try running (as root) 429 the following command:</para> 430 431 <screen>rcvboxdrv setup</screen> 432 </sect2> 433 434 <sect2> 435 <title>Performing the installation</title> 436 437 <para>VirtualBox is available in a number of package formats native to 438 various common Linux distributions (see <xref linkend="hostossupport" /> 439 for details). In addition, there is an alternative generic installer 440 (.run) which should work on most Linux distributions. The generic 441 installer packages are built on EL5 systems and thus require reasonable 442 old versions of glibc (version 2.5) and other system libraries.</para> 443 444 <sect3> 445 <title>Installing VirtualBox from a Debian/Ubuntu package</title> 446 447 <para>First, download the appropriate package for your distribution. 448 The following examples assume that you are installing to a 32-bit 449 Ubuntu Wily system. Use <computeroutput>dpkg</computeroutput> to 450 install the Debian package:</para> 451 452 <screen>sudo dpkg -i virtualbox-5.0_@VBOX_VERSION_STRING@_Ubuntu_wily_i386.deb</screen> 453 454 <para>The installer will also try to build kernel modules suitable for 455 the current running kernel. If the build process is not successful you 456 will be shown a 457 warning and the package will be left unconfigured. Please have a look 458 at <computeroutput>/var/log/vbox-install.log</computeroutput> to find 459 out why the compilation failed. You may have to install the 460 appropriate Linux kernel headers (see <xref 461 linkend="externalkernelmodules" />). After correcting any problems, do 462 <screen>sudo rcvboxdrv setup</screen>This will start a 463 second attempt to build the module.</para> 464 465 <para>If a suitable kernel module was found in the package or the 466 module was successfully built, the installation script will attempt to 467 load that module. If this fails, please see <xref 468 linkend="ts_linux-kernelmodule-fails-to-load" /> for further 469 information.</para> 470 471 <para>Once VirtualBox has been successfully installed and configured, 472 you can start it by selecting "VirtualBox" in your start menu or from 473 the command line (see <xref linkend="startingvboxonlinux" />).</para> 740 741 <listitem> 742 <para> 743 Creates a new system group called 744 <computeroutput>vboxusers</computeroutput>. 745 </para> 746 </listitem> 747 748 <listitem> 749 <para> 750 Creates symbolic links in 751 <computeroutput>/usr/bin</computeroutput> to a shell 752 script 753 <computeroutput>/opt/VirtualBox/VBox</computeroutput> 754 which does some sanity checks and dispatches to the actual 755 executables: <computeroutput>VirtualBox</computeroutput>, 756 <computeroutput>VBoxSDL</computeroutput>, 757 <computeroutput>VBoxVRDP</computeroutput>, 758 <computeroutput>VBoxHeadless</computeroutput> and 759 <computeroutput>VBoxManage</computeroutput> 760 </para> 761 </listitem> 762 763 <listitem> 764 <para> 765 Creates 766 <computeroutput>/etc/udev/rules.d/60-vboxdrv.rules</computeroutput>, 767 a description file for udev, if that is present, which 768 makes the USB devices accessible to all users in the 769 <computeroutput>vboxusers</computeroutput> group. 770 </para> 771 </listitem> 772 773 <listitem> 774 <para> 775 Writes the installation directory to 776 <computeroutput>/etc/vbox/vbox.cfg</computeroutput>. 777 </para> 778 </listitem> 779 780 </itemizedlist> 781 782 <para> 783 The installer must be executed as root with either 784 <computeroutput>install</computeroutput> or 785 <computeroutput>uninstall</computeroutput> as the first 786 parameter. For example; 787 </para> 788 789 <screen>sudo ./VirtualBox.run install</screen> 790 791 <para> 792 Or if you do not have the 793 <computeroutput>sudo</computeroutput> command available, run 794 the following as root instead: 795 796 <screen>./VirtualBox.run install</screen> 797 </para> 798 799 <para> 800 Add every user who needs to access USB devices from a 801 VirtualBox guests to the group 802 <computeroutput>vboxusers</computeroutput>. Either use the GUI 803 user management tools or run the following command as root: 804 </para> 805 806 <screen>sudo usermod -a -G vboxusers username</screen> 807 808 <note> 809 <para> 810 The <computeroutput>usermod</computeroutput> command of some 811 older Linux distributions does not support the 812 <computeroutput>-a</computeroutput> option, which adds the 813 user to the given group without affecting membership of 814 other groups. In this case, find out the current group 815 memberships with the <computeroutput>groups</computeroutput> 816 command and add all these groups in a comma-separated list 817 to the command line after the 818 <computeroutput>-G</computeroutput> option. For example: 819 <computeroutput>usermod -G group1,group2,vboxusers 820 username</computeroutput>. 821 </para> 822 </note> 823 474 824 </sect3> 475 825 476 <sect3> 477 <title>Using the alternative generic installer (VirtualBox.run)</title> 478 479 <para>The alternative generic installer performs the following steps:</para> 480 481 <itemizedlist> 482 <listitem> 483 <para>It unpacks the application files to the target directory, 484 <screen>/opt/VirtualBox/</screen> which cannot be changed.</para> 485 </listitem> 486 487 <listitem> 488 <para>It builds the VirtualBox kernel modules 489 (<computeroutput>vboxdrv</computeroutput>, 490 <computeroutput>vboxnetflt</computeroutput> and 491 <computeroutput>vboxnetadp</computeroutput>) and installs 492 them.</para> 493 </listitem> 494 495 <listitem> 496 <para>It creates 497 <computeroutput>/sbin/rcvboxdrv</computeroutput>, an init 498 script to start the VirtualBox kernel module.</para> 499 </listitem> 500 501 <listitem> 502 <para>It creates a new system group called 503 <computeroutput>vboxusers</computeroutput>.</para> 504 </listitem> 505 506 <listitem> 507 <para>It creates symbolic links in 508 <computeroutput>/usr/bin</computeroutput> to the a shell script 509 (<computeroutput>/opt/VirtualBox/VBox</computeroutput>) which does 510 some sanity checks and dispatches to the actual executables, 511 <computeroutput>VirtualBox</computeroutput>, 512 <computeroutput>VBoxSDL</computeroutput>, 513 <computeroutput>VBoxVRDP</computeroutput>, 514 <computeroutput>VBoxHeadless</computeroutput> and 515 <computeroutput>VBoxManage</computeroutput></para> 516 </listitem> 517 518 <listitem> 519 <para>It creates 520 <computeroutput>/etc/udev/rules.d/60-vboxdrv.rules</computeroutput>, 521 a description file for udev, if that is present, which makes the 522 USB devices accessible to all users in the 523 <computeroutput>vboxusers</computeroutput> group.</para> 524 </listitem> 525 526 <listitem> 527 <para>It writes the installation directory to 528 <computeroutput>/etc/vbox/vbox.cfg</computeroutput>.</para> 529 </listitem> 530 </itemizedlist> 531 532 <para>The installer must be executed as root with either 533 <computeroutput>install</computeroutput> or 534 <computeroutput>uninstall</computeroutput> as the first 535 parameter.</para> 536 537 <screen>sudo ./VirtualBox.run install</screen> 538 539 <para>Or if you do not have the "sudo" command available, run the 540 following as root instead:<screen>./VirtualBox.run install</screen></para> 541 542 <para>After that you need to put every user which should be able to 543 access USB devices from VirtualBox guests in the group 544 <computeroutput>vboxusers</computeroutput>, either through the GUI 545 user management tools or by running the following command as 546 root:</para> 547 548 <screen>sudo usermod -a -G vboxusers username</screen> 549 550 <para><note> 551 <para>The <computeroutput>usermod</computeroutput> command of some 552 older Linux distributions does not support the 553 <computeroutput>-a</computeroutput> option (which adds the user to 554 the given group without affecting membership of other groups). In 555 this case, find out the current group memberships with the 556 <computeroutput>groups</computeroutput> command and add all these 557 groups in a comma-separated list to the command line after the 558 <computeroutput>-G</computeroutput> option, e.g. like this: 559 <computeroutput>usermod -G group1,group2,vboxusers 560 username</computeroutput>.</para> 561 </note></para> 562 </sect3> 563 564 <sect3> 565 <title>Performing a manual installation</title> 566 567 <para>If, for any reason, you cannot use the shell script installer 568 described previously, you can also perform a manual installation. 569 Invoke the installer like this:</para> 570 571 <screen>./VirtualBox.run --keep --noexec</screen> 572 573 <para>This will unpack all the files needed for installation in the 574 directory <computeroutput>install</computeroutput> under the current 575 directory. The VirtualBox application files are contained in 576 <computeroutput>VirtualBox.tar.bz2</computeroutput> which you can 577 unpack to any directory on your system. For example:</para> 578 579 <screen>sudo mkdir /opt/VirtualBox 826 <sect3 id="install-linux-manual"> 827 828 <title>Performing a Manual Installation</title> 829 830 <para> 831 If you cannot use the shell script installer described in 832 <xref linkend="install-linux-alt-installer"/>, you can perform 833 a manual installation. Invoke the installer as follows: 834 </para> 835 836 <screen>./VirtualBox.run --keep --noexec</screen> 837 838 <para> 839 This will unpack all the files needed for installation in the 840 directory <computeroutput>install</computeroutput> under the 841 current directory. The VirtualBox application files are 842 contained in 843 <computeroutput>VirtualBox.tar.bz2</computeroutput> which you 844 can unpack to any directory on your system. For example: 845 </para> 846 847 <screen>sudo mkdir /opt/VirtualBox 580 848 sudo tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox</screen> 581 849 582 <para>or as root:<screen>mkdir /opt/VirtualBox 583 tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox</screen></para> 584 585 <para>The sources for VirtualBox's kernel module are provided in the 586 <computeroutput>src</computeroutput> directory. To build the module, 587 change to the directory and issue</para> 588 589 <screen>make</screen> 590 591 <para>If everything builds correctly, issue the following command to 592 install the module to the appropriate module directory:</para> 593 594 <screen>sudo make install</screen> 595 596 <para>In case you do not have sudo, switch the user account to root 597 and perform<screen>make install</screen></para> 598 599 <para>The VirtualBox kernel module needs a device node to operate. The 600 above make command will tell you how to create the device node, 601 depending on your Linux system. The procedure is slightly different 602 for a classical Linux setup with a 603 <computeroutput>/dev</computeroutput> directory, a system with the now 604 deprecated <computeroutput>devfs</computeroutput> and a modern Linux 605 system with <computeroutput>udev</computeroutput>.</para> 606 607 <para>On certain Linux distributions, you might experience 608 difficulties building the module. You will have to analyze the error 609 messages from the build system to diagnose the cause of the problems. 610 In general, make sure that the correct Linux kernel sources are used 611 for the build process.</para> 612 613 <para>Note that the <computeroutput>/dev/vboxdrv</computeroutput> 614 kernel module device node must be owned by root:root and must be 615 read/writable only for the user.</para> 616 617 <para>Next, you will have to install the system initialization script 618 for the kernel module:<screen>cp /opt/VirtualBox/vboxdrv.sh /sbin/rcvboxdrv</screen>(assuming 619 you installed VirtualBox to the 620 <computeroutput>/opt/VirtualBox</computeroutput> directory) and 621 activate the initialization script using the right method for your 622 distribution. You should create VirtualBox's configuration 623 file:<screen>mkdir /etc/vbox 624 echo INSTALL_DIR=/opt/VirtualBox > /etc/vbox/vbox.cfg</screen>and, for 625 convenience, create the following symbolic links:</para> 626 627 <screen>ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox 850 <para> 851 or as root: 852 853 <screen>mkdir /opt/VirtualBox 854 tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox</screen> 855 </para> 856 857 <para> 858 The sources for VirtualBox's kernel module are provided in the 859 <computeroutput>src</computeroutput> directory. To build the 860 module, change to the directory and issue 861 </para> 862 863 <screen>make</screen> 864 865 <para> 866 If everything builds correctly, issue the following command to 867 install the module to the appropriate module directory: 868 </para> 869 870 <screen>sudo make install</screen> 871 872 <para> 873 In case you do not have sudo, switch the user account to root 874 and run the following command: 875 876 <screen>make install</screen> 877 </para> 878 879 <para> 880 The VirtualBox kernel module needs a device node to operate. 881 The above make command will tell you how to create the device 882 node, depending on your Linux system. The procedure is 883 slightly different for a classical Linux setup with a 884 <computeroutput>/dev</computeroutput> directory, a system with 885 the now deprecated <computeroutput>devfs</computeroutput> and 886 a modern Linux system with 887 <computeroutput>udev</computeroutput>. 888 </para> 889 890 <para> 891 On certain Linux distributions, you might experience 892 difficulties building the module. You will have to analyze the 893 error messages from the build system to diagnose the cause of 894 the problems. In general, make sure that the correct Linux 895 kernel sources are used for the build process. 896 </para> 897 898 <para> 899 Note that the <computeroutput>/dev/vboxdrv</computeroutput> 900 kernel module device node must be owned by root:root and must 901 be read/writable only for the user. 902 </para> 903 904 <para> 905 Next, you install the system initialization script for the 906 kernel module and activate the initialization script using the 907 right method for your distribution, as follows: 908 909 <screen>cp /opt/VirtualBox/vboxdrv.sh /sbin/rcvboxdrv</screen> 910 911 This example assumes you installed VirtualBox to the 912 <computeroutput>/opt/VirtualBox</computeroutput> directory. 913 Create a configuration file for VitrualBox: 914 915 <screen>mkdir /etc/vbox 916 echo INSTALL_DIR=/opt/VirtualBox > /etc/vbox/vbox.cfg</screen> 917 918 Create the following symbolic links: 919 </para> 920 921 <screen>ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VirtualBox 628 922 ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxManage 629 923 ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxHeadless 630 924 ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxSDL</screen> 925 631 926 </sect3> 632 927 633 <sect3> 634 <title>Updating and uninstalling VirtualBox</title> 635 636 <para>Before updating or uninstalling VirtualBox, you must terminate 637 any virtual machines which are currently running and exit the 638 VirtualBox or VBoxSVC applications. To update VirtualBox, simply run 639 the installer of the updated version. To uninstall VirtualBox, invoke 640 the installer like this: <screen>sudo ./VirtualBox.run uninstall</screen> 641 or as root<screen>./VirtualBox.run uninstall</screen>. Starting with 642 version 2.2.2, you can uninstall the .run package by invoking <screen>/opt/VirtualBox/uninstall.sh</screen>To 643 manually uninstall VirtualBox, simply undo the steps in the manual 644 installation in reverse order.</para> 928 <sect3 id="install-linux-update-uninstall"> 929 930 <title>Updating and Uninstalling VirtualBox</title> 931 932 <para> 933 Before updating or uninstalling VirtualBox, you must terminate 934 any virtual machines which are currently running and exit the 935 VirtualBox or VBoxSVC applications. To update VirtualBox, 936 simply run the installer of the updated version. To uninstall 937 VirtualBox, invoke the installer like this: 938 939 <screen>sudo ./VirtualBox.run uninstall</screen> 940 941 or as root: 942 943 <screen>./VirtualBox.run uninstall</screen> 944 945 Starting with version 2.2.2, you can uninstall the .run 946 package as follows: 947 948 <screen>/opt/VirtualBox/uninstall.sh</screen> 949 950 To manually uninstall VirtualBox, simply perform the manual 951 installation steps in reverse order. 952 </para> 953 645 954 </sect3> 646 955 647 <sect3> 648 <title>Automatic installation of Debian packages</title> 649 650 <para>The Debian packages will request some user feedback when 651 installed for the first time. The debconf system is used to perform 652 this task. To prevent any user interaction during installation, 653 default values can be defined. A file 654 <computeroutput>vboxconf</computeroutput> can contain the following 655 debconf settings: <screen>virtualbox virtualbox/module-compilation-allowed boolean true 656 virtualbox virtualbox/delete-old-modules boolean true</screen>The first line 657 allows compilation of the vboxdrv kernel module if no module was found 658 for the current kernel. The second line allows the package to delete 659 any old vboxdrv kernel modules compiled by previous 660 installations.</para> 661 662 <para>These default settings can be applied with <screen>debconf-set-selections vboxconf</screen> 663 prior to the installation of the VirtualBox Debian package.</para> 664 665 <para>In addition there are some common configuration options that can 666 be set prior to the installation, described in <xref 667 linkend="linux_install_opts" />.</para> 956 <sect3 id="install-linux-debian-automatic"> 957 958 <title>Automatic Installation of Debian Packages</title> 959 960 <para> 961 The Debian packages will request some user feedback when 962 installed for the first time. The debconf system is used to 963 perform this task. To prevent any user interaction during 964 installation, default values can be defined. A file 965 <computeroutput>vboxconf</computeroutput> can contain the 966 following debconf settings: 967 968 <screen>virtualbox virtualbox/module-compilation-allowed boolean true 969 virtualbox virtualbox/delete-old-modules boolean true</screen> 970 971 The first line allows compilation of the vboxdrv kernel module 972 if no module was found for the current kernel. The second line 973 allows the package to delete any old vboxdrv kernel modules 974 compiled by previous installations. 975 </para> 976 977 <para> 978 These default settings can be applied prior to the 979 installation of the VirtualBox Debian package, as follows: 980 </para> 981 982 <screen>debconf-set-selections vboxconf</screen> 983 984 <para> 985 In addition there are some common configuration options that 986 can be set prior to the installation. See 987 <xref 988 linkend="linux_install_opts" />. 989 </para> 990 668 991 </sect3> 669 992 670 <sect3> 671 <title>Automatic installation of .rpm packages</title> 672 673 <para>The .rpm format does not provide a configuration system 674 comparable to the debconf system. See <xref 675 linkend="linux_install_opts" /> for how to set some common 676 installation options provided by VirtualBox.</para> 993 <sect3 id="install-linux-rpm-automatic"> 994 995 <title>Automatic Installation of RPM Packages</title> 996 997 <para> 998 The RPM format does not provide a configuration system 999 comparable to the debconf system. See 1000 <xref 1001 linkend="linux_install_opts" /> for how to set 1002 some common installation options provided by VirtualBox. 1003 </para> 1004 677 1005 </sect3> 678 1006 679 1007 <sect3 id="linux_install_opts"> 680 <title>Automatic installation options</title> 681 682 <para>To configure the installation process of our .deb and .rpm 683 packages, you can create a response file named 684 <computeroutput>/etc/default/virtualbox</computeroutput>. The 685 automatic generation of the udev rule can be prevented by the 686 following setting: <screen>INSTALL_NO_UDEV=1</screen> The creation of 687 the group vboxusers can be prevented by <screen>INSTALL_NO_GROUP=1</screen> 688 If the line <screen>INSTALL_NO_VBOXDRV=1</screen> is specified, the 689 package installer will not try to build the 690 <computeroutput>vboxdrv</computeroutput> kernel module if no module 691 fitting the current kernel was found.</para> 1008 1009 <title>Automatic Installation Options</title> 1010 1011 <para> 1012 To configure the installation process for .deb and .rpm 1013 packages, you can create a response file named 1014 <computeroutput>/etc/default/virtualbox</computeroutput>. The 1015 automatic generation of the udev rule can be prevented by the 1016 following setting: 1017 1018 <screen>INSTALL_NO_UDEV=1</screen> 1019 1020 The creation of the group vboxusers can be prevented as 1021 follows: 1022 1023 <screen>INSTALL_NO_GROUP=1</screen> 1024 1025 If the following line is specified, the package installer will 1026 not try to build the <computeroutput>vboxdrv</computeroutput> 1027 kernel module if no module fitting the current kernel was 1028 found. 1029 </para> 1030 1031 <screen>INSTALL_NO_VBOXDRV=1</screen> 1032 692 1033 </sect3> 693 </sect2> 694 695 <sect2> 696 <title>The vboxusers group</title> 697 698 <para>The Linux installers create the system user group 699 <computeroutput>vboxusers</computeroutput> during installation. Any 700 system user who is going to use USB devices from VirtualBox guests must 701 be a member of that group. A user can be made a member of the group 702 <computeroutput>vboxusers</computeroutput> through the GUI user/group 703 management or at the command line with</para> 704 705 <screen>sudo usermod -a -G vboxusers username</screen> 1034 1035 </sect2> 1036 1037 <sect2 id="install-linux-vboxusers"> 1038 1039 <title>The vboxusers Group</title> 1040 1041 <para> 1042 The Linux installers create the system user group 1043 <computeroutput>vboxusers</computeroutput> during installation. 1044 Any system user who is going to use USB devices from VirtualBox 1045 guests must be a member of that group. A user can be made a 1046 member of the group <computeroutput>vboxusers</computeroutput> 1047 through the GUI user/group management or using the following 1048 command: 1049 </para> 1050 1051 <screen>sudo usermod -a -G vboxusers username</screen> 1052 706 1053 </sect2> 707 1054 708 1055 <sect2 id="startingvboxonlinux"> 1056 709 1057 <title>Starting VirtualBox on Linux</title> 710 1058 711 <para>The easiest way to start a VirtualBox program is by running the 712 program of your choice (<computeroutput>VirtualBox</computeroutput>, 713 <computeroutput>VBoxManage</computeroutput>, 714 <computeroutput>VBoxSDL</computeroutput> or 715 <computeroutput>VBoxHeadless</computeroutput>) from a terminal. These 716 are symbolic links to <computeroutput>VBox.sh</computeroutput> that 717 start the required program for you.</para> 718 719 <para>The following detailed instructions should only be of interest if 720 you wish to execute VirtualBox without installing it first. You should 721 start by compiling the <computeroutput>vboxdrv</computeroutput> kernel 722 module (see above) and inserting it into the Linux kernel. VirtualBox 723 consists of a service daemon (<computeroutput>VBoxSVC</computeroutput>) 724 and several application programs. The daemon is automatically started if 725 necessary. All VirtualBox applications will communicate with the daemon 726 through Unix local domain sockets. There can be multiple daemon 727 instances under different user accounts and applications can only 728 communicate with the daemon running under the user account as the 729 application. The local domain socket resides in a subdirectory of your 730 system's directory for temporary files called 731 <computeroutput>.vbox-<username>-ipc</computeroutput>. In case of 732 communication problems or server startup problems, you may try to remove 733 this directory.</para> 734 735 <para>All VirtualBox applications 736 (<computeroutput>VirtualBox</computeroutput>, 737 <computeroutput>VBoxSDL</computeroutput>, 738 <computeroutput>VBoxManage</computeroutput> and 739 <computeroutput>VBoxHeadless</computeroutput>) require the VirtualBox 740 directory to be in the library path:</para> 741 742 <screen>LD_LIBRARY_PATH=. ./VBoxManage showvminfo "Windows XP"</screen> 743 </sect2> 1059 <para> 1060 The easiest way to start a VirtualBox program is by running the 1061 program of your choice 1062 (<computeroutput>VirtualBox</computeroutput>, 1063 <computeroutput>VBoxManage</computeroutput>, 1064 <computeroutput>VBoxSDL</computeroutput>, or 1065 <computeroutput>VBoxHeadless</computeroutput>) from a terminal. 1066 These are symbolic links to 1067 <computeroutput>VBox.sh</computeroutput> that start the required 1068 program for you. 1069 </para> 1070 1071 <para> 1072 The following detailed instructions should only be of interest 1073 if you wish to execute VirtualBox without installing it first. 1074 You should start by compiling the 1075 <computeroutput>vboxdrv</computeroutput> kernel module and 1076 inserting it into the Linux kernel. VirtualBox consists of a 1077 service daemon, <computeroutput>VBoxSVC</computeroutput>, and 1078 several application programs. The daemon is automatically 1079 started if necessary. All VirtualBox applications will 1080 communicate with the daemon through Unix local domain sockets. 1081 There can be multiple daemon instances under different user 1082 accounts and applications can only communicate with the daemon 1083 running under the user account as the application. The local 1084 domain socket resides in a subdirectory of your system's 1085 directory for temporary files called 1086 <computeroutput>.vbox-<username>-ipc</computeroutput>. In 1087 case of communication problems or server startup problems, you 1088 may try to remove this directory. 1089 </para> 1090 1091 <para> 1092 All VirtualBox applications 1093 (<computeroutput>VirtualBox</computeroutput>, 1094 <computeroutput>VBoxSDL</computeroutput>, 1095 <computeroutput>VBoxManage</computeroutput>, and 1096 <computeroutput>VBoxHeadless</computeroutput>) require the 1097 VirtualBox directory to be in the library path, as follows: 1098 </para> 1099 1100 <screen>LD_LIBRARY_PATH=. ./VBoxManage showvminfo "Windows XP"</screen> 1101 1102 </sect2> 1103 744 1104 </sect1> 745 1105 746 1106 <sect1 id="install-solaris-host"> 747 <title>Installing on Solaris hosts</title> 748 749 <para>For the specific versions of Solaris that we support as host 750 operating systems, please refer to <xref 751 linkend="hostossupport" />.</para> 752 753 <para>If you have a previously installed instance of VirtualBox on your 754 Solaris host, please uninstall it first before installing a new instance. 755 Refer to <xref linkend="uninstall-solaris-host" /> for uninstall 756 instructions.</para> 757 758 <sect2> 759 <title>Performing the installation</title> 760 761 <para>VirtualBox is available as a standard Solaris package. Download 762 the VirtualBox SunOS package which includes the 64-bit 763 versions of VirtualBox. <emphasis>The installation must be performed as 764 root and from the global zone</emphasis> as the VirtualBox installer 765 loads kernel drivers which cannot be done from non-global zones. To 766 verify which zone you are currently in, execute the 767 <computeroutput>zonename</computeroutput> command. Execute the following 768 commands:</para> 769 770 <screen>gunzip -cd VirtualBox-@[email protected] | tar xvf -</screen> 771 772 <para>Starting with VirtualBox 3.1 the VirtualBox kernel package is no 773 longer a separate package and has been integrated into the main package. 774 Install the VirtualBox package using:</para> 775 776 <screen>pkgadd -d VirtualBox-@[email protected]</screen> 777 778 <para>The installer will then prompt you to enter the package you wish 779 to install. Choose "1" or "all" and proceed. Next the installer will ask 780 you if you want to allow the postinstall script to be executed. Choose 781 "y" and proceed as it is essential to execute this script which installs 782 the VirtualBox kernel module. Following this confirmation the installer 783 will install VirtualBox and execute the postinstall setup script.</para> 784 785 <para>Once the postinstall script has been executed your installation is 786 now complete. You may now safely delete the uncompressed package and 787 <computeroutput>autoresponse</computeroutput> files from your system. 788 VirtualBox would be installed in 789 <computeroutput>/opt/VirtualBox</computeroutput>.</para> 1107 1108 <title>Installing on Solaris Hosts</title> 1109 1110 <para> 1111 For the specific versions of Solaris that are supported as host 1112 operating systems, see <xref 1113 linkend="hostossupport" />. 1114 </para> 1115 1116 <para> 1117 If you have a previously installed instance of VirtualBox on your 1118 Solaris host, please uninstall it first before installing a new 1119 instance. See <xref linkend="uninstall-solaris-host" /> for 1120 uninstall instructions. 1121 </para> 1122 1123 <sect2 id="install-solaris-performing"> 1124 1125 <title>Performing the Installation</title> 1126 1127 <para> 1128 VirtualBox is available as a standard Solaris package. Download 1129 the VirtualBox SunOS package which includes the 64-bit versions 1130 of VirtualBox. <emphasis>The installation must be performed as 1131 root and from the global zone</emphasis> as the VirtualBox 1132 installer loads kernel drivers which cannot be done from 1133 non-global zones. To verify which zone you are currently in, 1134 execute the <computeroutput>zonename</computeroutput> command. 1135 Execute the following commands: 1136 </para> 1137 1138 <screen>gunzip -cd VirtualBox-<replaceable>version-number</replaceable>-SunOS.tar.gz | tar xvf -</screen> 1139 1140 <para> 1141 Starting with VirtualBox 3.1 the VirtualBox kernel package is no 1142 longer a separate package and has been integrated into the main 1143 package. Install the VirtualBox package as follows: 1144 </para> 1145 1146 <screen>pkgadd -d VirtualBox-<replaceable>version-number</replaceable>-SunOS.pkg</screen> 1147 1148 <para> 1149 The installer will then prompt you to enter the package you wish 1150 to install. Choose <emphasis role="bold">1</emphasis> or 1151 <emphasis role="bold">all</emphasis> and proceed. Next the 1152 installer will ask you if you want to allow the postinstall 1153 script to be executed. Choose <emphasis role="bold">y</emphasis> 1154 and proceed, as it is essential to execute this script which 1155 installs the VirtualBox kernel module. Following this 1156 confirmation the installer will install VirtualBox and execute 1157 the postinstall setup script. 1158 </para> 1159 1160 <para> 1161 Once the postinstall script has been executed your installation 1162 is now complete. You may now safely delete the uncompressed 1163 package and <computeroutput>autoresponse</computeroutput> files 1164 from your system. VirtualBox is installed in 1165 <computeroutput>/opt/VirtualBox</computeroutput>. 1166 </para> 790 1167 791 1168 <note> 792 <para>If you need to use VirtualBox from non-global zones, please read 793 <xref linkend="solaris-zones" />.</para> 1169 <para> 1170 If you need to use VirtualBox from non-global zones, see 1171 <xref linkend="solaris-zones" />. 1172 </para> 794 1173 </note> 795 </sect2> 796 797 <sect2> 798 <title>The vboxuser group</title> 799 800 <para>Starting with VirtualBox 4.1, the installer creates the system 801 user group <computeroutput>vboxuser</computeroutput> during installation 802 for Solaris hosts that support the USB features required by VirtualBox. 803 Any system user who is going to use USB devices from VirtualBox guests 804 must be a member of this group. A user can be made a member of this 805 group through the GUI user/group management or at the command line by 806 executing as root:</para> 807 808 <screen>usermod -G vboxuser username</screen> 809 810 <para>Note that adding an active user to that group will require that 811 user to log out and back in again. This should be done manually after 812 successful installation of the package.</para> 813 </sect2> 814 815 <sect2> 1174 1175 </sect2> 1176 1177 <sect2 id="install-solaris-vboxuser"> 1178 1179 <title>The vboxuser Group</title> 1180 1181 <para> 1182 Starting with VirtualBox 4.1, the installer creates the system 1183 user group <computeroutput>vboxuser</computeroutput> during 1184 installation for Solaris hosts that support the USB features 1185 required by VirtualBox. Any system user who is going to use USB 1186 devices from VirtualBox guests must be a member of this group. A 1187 user can be made a member of this group through the GUI 1188 user/group management or at the command line by executing as 1189 root: 1190 </para> 1191 1192 <screen>usermod -G vboxuser username</screen> 1193 1194 <para> 1195 Note that adding an active user to that group will require that 1196 user to log out and back in again. This should be done manually 1197 after successful installation of the package. 1198 </para> 1199 1200 </sect2> 1201 1202 <sect2 id="install-solaris-starting"> 1203 816 1204 <title>Starting VirtualBox on Solaris</title> 817 1205 818 <para>The easiest way to start a VirtualBox program is by running the 819 program of your choice (<computeroutput>VirtualBox</computeroutput>, 820 <computeroutput>VBoxManage</computeroutput>, 821 <computeroutput>VBoxSDL</computeroutput> or 822 <computeroutput>VBoxHeadless</computeroutput>) from a terminal. These 823 are symbolic links to <computeroutput>VBox.sh</computeroutput> that 824 start the required program for you.</para> 825 826 <para>Alternatively, you can directly invoke the required programs from 827 <computeroutput>/opt/VirtualBox</computeroutput>. Using the links 828 provided is easier as you do not have to type the full path.</para> 829 830 <para>You can configure some elements of the 831 <computeroutput>VirtualBox</computeroutput> Qt GUI such as fonts and 832 colours by executing <computeroutput>VBoxQtconfig</computeroutput> from 833 the terminal.</para> 1206 <para> 1207 The easiest way to start a VirtualBox program is by running the 1208 program of your choice 1209 (<computeroutput>VirtualBox</computeroutput>, 1210 <computeroutput>VBoxManage</computeroutput>, 1211 <computeroutput>VBoxSDL</computeroutput>, or 1212 <computeroutput>VBoxHeadless</computeroutput>) from a terminal. 1213 These are symbolic links to 1214 <computeroutput>VBox.sh</computeroutput> that start the required 1215 program for you. 1216 </para> 1217 1218 <para> 1219 Alternatively, you can directly invoke the required programs 1220 from <computeroutput>/opt/VirtualBox</computeroutput>. Using the 1221 links provided is easier as you do not have to type the full 1222 path. 1223 </para> 1224 1225 <para> 1226 You can configure some elements of the 1227 <computeroutput>VirtualBox</computeroutput> Qt GUI, such as 1228 fonts and colours, by running 1229 <computeroutput>VBoxQtconfig</computeroutput> from the terminal. 1230 </para> 1231 834 1232 </sect2> 835 1233 836 1234 <sect2 id="uninstall-solaris-host"> 1235 837 1236 <title>Uninstallation</title> 838 1237 839 <para>Uninstallation of VirtualBox on Solaris requires root permissions. 840 To perform the uninstallation, start a root terminal session and 841 execute:</para> 842 843 <screen>pkgrm SUNWvbox</screen> 844 845 <para>After confirmation, this will remove VirtualBox from your 846 system.</para> 847 848 <para>If you are uninstalling VirtualBox version 3.0 or lower, you need 849 to remove the VirtualBox kernel interface package, execute:</para> 850 851 <para><screen>pkgrm SUNWvboxkern</screen></para> 852 </sect2> 853 854 <sect2> 855 <title>Unattended installation</title> 856 857 <para>To perform a non-interactive installation of VirtualBox we have 858 provided a response file named 859 <computeroutput>autoresponse</computeroutput> that the installer will 860 use for responses to inputs rather than ask them from you.</para> 861 862 <para>Extract the tar.gz package as described in the normal 863 installation. Then open a root terminal session and execute:</para> 864 865 <screen>pkgadd -d VirtualBox-@VBOX_VERSION_STRING@-SunOS-x86 -n -a autoresponse SUNWvbox</screen> 866 867 <para>To perform a non-interactive uninstallation, open a root terminal 868 session and execute:</para> 869 870 <screen>pkgrm -n -a /opt/VirtualBox/autoresponse SUNWvbox</screen> 1238 <para> 1239 Uninstallation of VirtualBox on Solaris requires root 1240 permissions. To perform the uninstallation, start a root 1241 terminal session and run the following command: 1242 </para> 1243 1244 <screen>pkgrm SUNWvbox</screen> 1245 1246 <para> 1247 After confirmation, this will remove VirtualBox from your 1248 system. 1249 </para> 1250 1251 <para> 1252 If you are uninstalling VirtualBox version 3.0 or lower, you 1253 need to remove the VirtualBox kernel interface package, as 1254 follows: 1255 </para> 1256 1257 <para> 1258 <screen>pkgrm SUNWvboxkern</screen> 1259 </para> 1260 1261 </sect2> 1262 1263 <sect2 id="install-solaris-unattended"> 1264 1265 <title>Unattended Installation</title> 1266 1267 <para> 1268 To perform a non-interactive installation of VirtualBox there is 1269 a response file named 1270 <computeroutput>autoresponse</computeroutput>, that the 1271 installer will use for responses to inputs rather than ask them 1272 from you. 1273 </para> 1274 1275 <para> 1276 Extract the tar.gz package as described in the normal 1277 installation instructions. Then open a root terminal session and 1278 run the following command: 1279 </para> 1280 1281 <screen>pkgadd -d VirtualBox-<replaceable>version-number</replaceable>-SunOS-x86 -n -a autoresponse SUNWvbox</screen> 1282 1283 <para> 1284 To perform a non-interactive uninstallation, open a root 1285 terminal session and run the following command: 1286 </para> 1287 1288 <screen>pkgrm -n -a /opt/VirtualBox/autoresponse SUNWvbox</screen> 1289 871 1290 </sect2> 872 1291 873 1292 <sect2 id="solaris-zones"> 874 <title>Configuring a zone for running VirtualBox</title> 875 876 <para>Assuming that VirtualBox has already been installed into your 877 zone, you need to give the zone access to VirtualBox's device node. This 878 is done by performing the following steps. Start a root terminal and 879 execute:</para> 880 881 <screen>zonecfg -z vboxzone</screen> 882 883 <para>Replace "vboxzone" with the name of the zone in which you intend 884 to run VirtualBox.</para> 885 886 <para>Inside the <computeroutput>zonecfg</computeroutput> prompt add the 887 <computeroutput>device</computeroutput> resource and 888 <computeroutput>match</computeroutput> properties to the zone. Here's 889 how it can be done:</para> 890 891 <screen>zonecfg:vboxzone>add device 1293 1294 <title>Configuring a Zone for Running VirtualBox</title> 1295 1296 <para> 1297 Assuming that VirtualBox has already been installed into your 1298 zone, you need to give the zone access to VirtualBox's device 1299 node. This is done by performing the following steps. Start a 1300 root terminal and run the following command: 1301 </para> 1302 1303 <screen>zonecfg -z vboxzone</screen> 1304 1305 <para> 1306 Replace "vboxzone" with the name of the zone where you intend to 1307 run VirtualBox. 1308 </para> 1309 1310 <para> 1311 Use<computeroutput>zonecfg</computeroutput> to add the 1312 <computeroutput>device</computeroutput> resource and 1313 <computeroutput>match</computeroutput> properties to the zone, 1314 as follows: 1315 </para> 1316 1317 <screen>zonecfg:vboxzone>add device 892 1318 zonecfg:vboxzone:device>set match=/dev/vboxdrv 893 1319 zonecfg:vboxzone:device>end … … 897 1323 zonecfg:vboxzone>exit</screen> 898 1324 899 <para>If you are running VirtualBox 2.2.0 or above on Solaris 11 or 900 above, you may add a device for <computeroutput>/dev/vboxusbmon</computeroutput> 901 too, similar to what was shown above. This does not apply to Solaris 10 902 hosts due to lack of USB support.</para> 903 904 <para>If you are not using sparse root zones, you will need to loopback 905 mount <computeroutput>/opt/VirtualBox</computeroutput> from the global zone 906 (specified below using the <computeroutput>dir</computeroutput> attribute) into 907 the non-global zone at the same path (specified using the 908 <computeroutput>special</computeroutput> attribute). For example:</para> 909 910 <screen>zonecfg:vboxzone>add fs 1325 <para> 1326 If you are running VirtualBox 2.2.0 or above on Solaris 11 or 1327 above, you may also add a device for 1328 <computeroutput>/dev/vboxusbmon</computeroutput>, similar to 1329 that shown above. This does not apply to Solaris 10 hosts, due 1330 to lack of USB support. 1331 </para> 1332 1333 <para> 1334 If you are not using sparse root zones, you will need to 1335 loopback mount <computeroutput>/opt/VirtualBox</computeroutput> 1336 from the global zone into the non-global zone at the same path. 1337 This is specified below using the 1338 <computeroutput>dir</computeroutput> attribute and the 1339 <computeroutput>special</computeroutput> attribute. For example: 1340 </para> 1341 1342 <screen>zonecfg:vboxzone>add fs 911 1343 zonecfg:vboxzone:device>set dir=/opt/VirtualBox 912 1344 zonecfg:vboxzone:device>set special=/opt/VirtualBox … … 915 1347 zonecfg:vboxzone>exit</screen> 916 1348 917 <para>Next reboot the zone using <computeroutput>zoneadm</computeroutput> 918 and you should be able to run VirtualBox from within the configured zone.</para> 919 </sect2> 1349 <para> 1350 Reboot the zone using <computeroutput>zoneadm</computeroutput> 1351 and you should be able to run VirtualBox from within the 1352 configured zone. 1353 </para> 1354 1355 </sect2> 1356 920 1357 </sect1> 1358 921 1359 </chapter> -
trunk/doc/manual/en_US/user_Introduction.xml
r71810 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="Introduction"> 5 <title>First steps</title> 6 7 <para>Welcome to @VBOX_PRODUCT@!</para> 8 9 <para>VirtualBox is a cross-platform virtualization application. What does 10 that mean? For one thing, it installs on your existing Intel or AMD-based 11 computers, whether they are running Windows, Mac, Linux or Solaris operating 12 systems. Secondly, it extends the capabilities of your existing computer so 13 that it can run multiple operating systems (inside multiple virtual 14 machines) at the same time. So, for example, you can run Windows and Linux 15 on your Mac, run Windows Server 2008 on your Linux server, run Linux on your 16 Windows PC, and so on, all alongside your existing applications. You can 17 install and run as many virtual machines as you like -- the only practical 18 limits are disk space and memory.</para> 19 20 <para>VirtualBox is deceptively simple yet also very powerful. It can run 21 everywhere from small embedded systems or desktop class machines all the way 22 up to datacenter deployments and even Cloud environments.</para> 23 24 <para>The following screenshot shows you how VirtualBox, installed on a Mac 25 computer, is running Windows 8 in a virtual machine window:</para> 26 27 <para><mediaobject> 8 9 <title>First Steps</title> 10 11 <para> 12 Welcome to Oracle VM VirtualBox. 13 </para> 14 15 <para> 16 VirtualBox is a cross-platform virtualization application. What does 17 that mean? For one thing, it installs on your existing Intel or 18 AMD-based computers, whether they are running Windows, Mac, Linux or 19 Solaris operating systems. Secondly, it extends the capabilities of 20 your existing computer so that it can run multiple operating 21 systems, inside multiple virtual machines, at the same time. So, for 22 example, you can run Windows and Linux on your Mac, run Windows 23 Server 2008 on your Linux server, run Linux on your Windows PC, and 24 so on, all alongside your existing applications. You can install and 25 run as many virtual machines as you like. The only practical limits 26 are disk space and memory. 27 </para> 28 29 <para> 30 VirtualBox is deceptively simple yet also very powerful. It can run 31 everywhere from small embedded systems or desktop class machines all 32 the way up to datacenter deployments and even Cloud environments. 33 </para> 34 35 <para> 36 The following screenshot shows how VirtualBox, installed on a Mac 37 computer, is running Windows 8 in a virtual machine window: 38 </para> 39 40 <mediaobject> 41 <imageobject> 42 <imagedata align="center" fileref="images/vm-vista-running.png" 43 width="14cm" /> 44 </imageobject> 45 </mediaobject> 46 47 <para> 48 In this User Manual, we will begin simply with a quick introduction 49 to virtualization and how to get your first virtual machine running 50 with the easy-to-use VirtualBox graphical user interface. Subsequent 51 chapters will go into much more detail covering more powerful tools 52 and features, but fortunately, it is not necessary to read the 53 entire User Manual before you can use VirtualBox. 54 </para> 55 56 <para> 57 You can find a summary of VirtualBox's capabilities in 58 <xref 59 linkend="features-overview" />. For existing VirtualBox 60 users who just want to see what is new in this release, there is a 61 detailed list in <xref 62 linkend="ChangeLog" />. 63 </para> 64 65 <sect1 id="virt-why-useful"> 66 67 <title>Why is Virtualization Useful?</title> 68 69 <para> 70 The techniques and features that VirtualBox provides are useful in 71 the following scenarios: 72 </para> 73 74 <itemizedlist> 75 76 <listitem> 77 <para> 78 <emphasis role="bold">Running multiple operating systems 79 simultaneously.</emphasis> VirtualBox allows you to run more 80 than one operating system at a time. This way, you can run 81 software written for one operating system on another, such as 82 Windows software on Linux or a Mac, without having to reboot 83 to use it. Since you can configure what kinds of "virtual" 84 hardware should be presented to each such operating system, 85 you can install an old operating system such as DOS or OS/2 86 even if your real computer's hardware is no longer supported 87 by that operating system. 88 </para> 89 </listitem> 90 91 <listitem> 92 <para> 93 <emphasis role="bold">Easier software 94 installations.</emphasis> Software vendors can use virtual 95 machines to ship entire software configurations. For example, 96 installing a complete mail server solution on a real machine 97 can be a tedious task. With VirtualBox, such a complex setup, 98 often called an "appliance", can be packed into a virtual 99 machine. Installing and running a mail server becomes as easy 100 as importing such an appliance into VirtualBox. 101 </para> 102 </listitem> 103 104 <listitem> 105 <para> 106 <emphasis role="bold">Testing and disaster 107 recovery.</emphasis> Once installed, a virtual machine and its 108 virtual hard disks can be considered a "container" that can be 109 arbitrarily frozen, woken up, copied, backed up, and 110 transported between hosts. 111 </para> 112 113 <para> 114 On top of that, with the use of another VirtualBox feature 115 called "snapshots", one can save a particular state of a 116 virtual machine and revert back to that state, if necessary. 117 This way, one can freely experiment with a computing 118 environment. If something goes wrong , such as prolems after 119 installing software or infecting the guest with a virus, you 120 can easily switch back to a previous snapshot and avoid the 121 need of frequent backups and restores. 122 </para> 123 124 <para> 125 Any number of snapshots can be created, allowing you to travel 126 back and forward in virtual machine time. You can delete 127 snapshots while a VM is running to reclaim disk space. 128 </para> 129 </listitem> 130 131 <listitem> 132 <para> 133 <emphasis role="bold">Infrastructure consolidation.</emphasis> 134 Virtualization can significantly reduce hardware and 135 electricity costs. Most of the time, computers today only use 136 a fraction of their potential power and run with low average 137 system loads. A lot of hardware resources as well as 138 electricity is thereby wasted. So, instead of running many 139 such physical computers that are only partially used, one can 140 pack many virtual machines onto a few powerful hosts and 141 balance the loads between them. 142 </para> 143 </listitem> 144 145 </itemizedlist> 146 147 </sect1> 148 149 <sect1 id="virtintro"> 150 151 <title>Some Terminology</title> 152 153 <para> 154 When dealing with virtualization, and also for understanding the 155 following chapters of this documentation, it helps to acquaint 156 oneself with a bit of crucial terminology, especially the 157 following terms: 158 </para> 159 160 <itemizedlist> 161 162 <listitem> 163 <para> 164 <emphasis role="strong">Host operating system (host 165 OS).</emphasis> This is the operating system of the physical 166 computer on which VirtualBox was installed. There are versions 167 of VirtualBox for Windows, Mac OS X, Linux and Solaris hosts. 168 See <xref linkend="hostossupport" />. 169 </para> 170 171 <para> 172 Most of the time, this manual discusses all VirtualBox 173 versions together. There may be platform-specific differences 174 which we will point out where appropriate. 175 </para> 176 </listitem> 177 178 <listitem> 179 <para> 180 <emphasis role="strong"> Guest operating system (guest 181 OS).</emphasis> This is the operating system that is running 182 inside the virtual machine. Theoretically, VirtualBox can run 183 any x86 operating system. such as DOS, Windows, OS/2, FreeBSD, 184 and OpenBSD. But to achieve near-native performance of the 185 guest code on your machine, we had to go through a lot of 186 optimizations that are specific to certain operating systems. 187 So while your favorite operating system 188 <emphasis>may</emphasis> run as a guest, we officially support 189 and optimize for a select few, which include the most common 190 operating systems. 191 </para> 192 193 <para> 194 See <xref linkend="guestossupport" />. 195 </para> 196 </listitem> 197 198 <listitem> 199 <para> 200 <emphasis role="strong">Virtual machine (VM).</emphasis> This 201 is the special environment that VirtualBox creates for your 202 guest operating system while it is running. In other words, 203 you run your guest operating system "in" a VM. Normally, a VM 204 will be shown as a window on your computer's desktop, but 205 depending on which of the various frontends of VirtualBox you 206 use, it can be displayed in full screen mode or remotely on 207 another computer. 208 </para> 209 210 <para> 211 In a more abstract way, internally, VirtualBox thinks of a VM 212 as a set of parameters that determine its behavior. They 213 include hardware settings, such as: how much memory the VM 214 should have, what hard disks VirtualBox should virtualize 215 through which container files, what CDs are mounted. They also 216 include state information, such as: whether the VM is 217 currently running, saved, if the VM has snapshots. These 218 settings are mirrored in the VirtualBox Manager window as well 219 as the <computeroutput>VBoxManage</computeroutput> command 220 line program. See <xref linkend="vboxmanage" />. In other 221 words, a VM is also what you can see in its settings dialog. 222 </para> 223 </listitem> 224 225 <listitem> 226 <para> 227 <emphasis role="strong">Guest Additions.</emphasis> This 228 refers to special software packages which are shipped with 229 VirtualBox but designed to be installed 230 <emphasis>inside</emphasis> a VM to improve performance of the 231 guest OS and to add extra features. See 232 <xref 233 linkend="guestadditions" />. 234 </para> 235 </listitem> 236 237 </itemizedlist> 238 239 </sect1> 240 241 <sect1 id="features-overview"> 242 243 <title>Features Overview</title> 244 245 <para> 246 The following is a brief outline of VirtualBox's main features: 247 </para> 248 249 <itemizedlist> 250 251 <listitem> 252 <para> 253 <emphasis role="bold">Portability.</emphasis> VirtualBox runs 254 on a large number of 32-bit and 64-bit host operating systems 255 See <xref linkend="hostossupport" />. 256 </para> 257 258 <para> 259 VirtualBox is a so-called <emphasis>hosted</emphasis> 260 hypervisor, sometimes referred to as a <emphasis>type 261 2</emphasis> hypervisor. Whereas a 262 <emphasis>bare-metal</emphasis> or <emphasis>type 1</emphasis> 263 hypervisor would run directly on the hardware, VirtualBox 264 requires an existing operating system to be installed. It can 265 thus run alongside existing applications on that host. 266 </para> 267 268 <para> 269 To a very large degree, VirtualBox is functionally identical 270 on all of the host platforms, and the same file and image 271 formats are used. This allows you to run virtual machines 272 created on one host on another host with a different host 273 operating system. For example, you can create a virtual 274 machine on Windows and then run it under Linux. 275 </para> 276 277 <para> 278 In addition, virtual machines can easily be imported and 279 exported using the Open Virtualization Format (OVF), an 280 industry standard created for this purpose. You can even 281 import OVFs that were created with a different virtualization 282 software. See <xref 283 linkend="ovf" />. 284 </para> 285 </listitem> 286 287 <listitem> 288 <para> 289 <emphasis role="bold">No hardware virtualization 290 required.</emphasis> For many scenarios, VirtualBox does not 291 require the processor features built into newer hardware like 292 Intel VT-x or AMD-V. As opposed to many other virtualization 293 solutions, you can therefore use VirtualBox even on older 294 hardware where these features are not present. See 295 <xref 296 linkend="hwvirt" />. 297 </para> 298 </listitem> 299 300 <listitem> 301 <para> 302 <emphasis role="bold">Guest Additions: shared folders, 303 seamless windows, 3D virtualization.</emphasis> The VirtualBox 304 Guest Additions are software packages which can be installed 305 <emphasis>inside</emphasis> of supported guest systems to 306 improve their performance and to provide additional 307 integration and communication with the host system. After 308 installing the Guest Additions, a virtual machine will support 309 automatic adjustment of video resolutions, seamless windows, 310 accelerated 3D graphics and more. See 311 <xref 312 linkend="guestadditions" />. 313 </para> 314 315 <para> 316 In particular, Guest Additions provide for "shared folders", 317 which let you access files from the host system from within a 318 guest machine. See <xref 319 linkend="sharedfolders" />. 320 </para> 321 </listitem> 322 323 <listitem> 324 <para> 325 <emphasis role="bold">Great hardware support.</emphasis> Among 326 others, VirtualBox supports the following: 327 </para> 328 329 <itemizedlist> 330 331 <listitem> 332 <para> 333 <emphasis role="bold">Guest multiprocessing 334 (SMP).</emphasis> VirtualBox can present up to 32 virtual 335 CPUs to each virtual machine, irrespective of how many CPU 336 cores are physically present on your host. 337 </para> 338 </listitem> 339 340 <listitem> 341 <para> 342 <emphasis role="bold">USB device support.</emphasis> 343 VirtualBox implements a virtual USB controller and allows 344 you to connect arbitrary USB devices to your virtual 345 machines without having to install device-specific drivers 346 on the host. USB support is not limited to certain device 347 categories. See <xref linkend="settings-usb" />. 348 </para> 349 </listitem> 350 351 <listitem> 352 <para> 353 <emphasis role="bold">Hardware compatibility.</emphasis> 354 VirtualBox virtualizes a vast array of virtual devices, 355 among them many devices that are typically provided by 356 other virtualization platforms. That includes IDE, SCSI 357 and SATA hard disk controllers, several virtual network 358 cards and sound cards, virtual serial and parallel ports 359 and an Input/Output Advanced Programmable Interrupt 360 Controller (I/O APIC), which is found in many modern PC 361 systems. This eases cloning of PC images from real 362 machines and importing of third-party virtual machines 363 into VirtualBox. 364 </para> 365 </listitem> 366 367 <listitem> 368 <para> 369 <emphasis role="bold">Full ACPI support.</emphasis> The 370 Advanced Configuration and Power Interface (ACPI) is fully 371 supported by VirtualBox. This eases cloning of PC images 372 from real machines or third-party virtual machines into 373 VirtualBox. With its unique <emphasis>ACPI power status 374 support</emphasis>, VirtualBox can even report to 375 ACPI-aware guest operating systems the power status of the 376 host. For mobile systems running on battery, the guest can 377 thus enable energy saving and notify the user of the 378 remaining power, for example in full screen modes. 379 </para> 380 </listitem> 381 382 <listitem> 383 <para> 384 <emphasis role="bold">Multiscreen resolutions.</emphasis> 385 VirtualBox virtual machines support screen resolutions 386 many times that of a physical screen, allowing them to be 387 spread over a large number of screens attached to the host 388 system. 389 </para> 390 </listitem> 391 392 <listitem> 393 <para> 394 <emphasis role="bold">Built-in iSCSI support.</emphasis> 395 This unique feature allows you to connect a virtual 396 machine directly to an iSCSI storage server without going 397 through the host system. The VM accesses the iSCSI target 398 directly without the extra overhead that is required for 399 virtualizing hard disks in container files. See 400 <xref 401 linkend="storage-iscsi" />. 402 </para> 403 </listitem> 404 405 <listitem> 406 <para> 407 <emphasis role="bold">PXE Network boot.</emphasis> The 408 integrated virtual network cards of VirtualBox fully 409 support remote booting via the Preboot Execution 410 Environment (PXE). 411 </para> 412 </listitem> 413 414 </itemizedlist> 415 </listitem> 416 417 <listitem> 418 <para> 419 <emphasis role="bold">Multigeneration branched 420 snapshots.</emphasis> VirtualBox can save arbitrary snapshots 421 of the state of the virtual machine. You can go back in time 422 and revert the virtual machine to any such snapshot and start 423 an alternative VM configuration from there, effectively 424 creating a whole snapshot tree. See 425 <xref linkend="snapshots" />. You can create and delete 426 snapshots while the virtual machine is running. 427 </para> 428 </listitem> 429 430 <listitem> 431 <para> 432 <emphasis role="bold">VM groups.</emphasis> VirtualBox 433 provides a groups feature that enables the user to organize 434 and control virtual machines collectively, as well as 435 individually. In addition to basic groups, it is also possible 436 for any VM to be in more than one group, and for groups to be 437 nested in a hierarchy. This means you can have groups of 438 groups. In general, the operations that can be performed on 439 groups are the same as those that can be applied to individual 440 VMs: Start, Pause, Reset, Close (Save state, Send Shutdown, 441 Poweroff), Discard Saved State, Show in fileSystem, Sort. 442 </para> 443 </listitem> 444 445 <listitem> 446 <para> 447 <emphasis role="bold">Clean architecture; unprecedented 448 modularity.</emphasis> VirtualBox has an extremely modular 449 design with well-defined internal programming interfaces and a 450 clean separation of client and server code. This makes it easy 451 to control it from several interfaces at once. For example, 452 you can start a VM simply by clicking on a button in the 453 VirtualBox graphical user interface and then control that 454 machine from the command line, or even remotely. See 455 <xref linkend="frontends" />. 456 </para> 457 458 <para> 459 Due to its modular architecture, VirtualBox can also expose 460 its full functionality and configurability through a 461 comprehensive <emphasis role="bold">software development kit 462 (SDK),</emphasis> which allows for integrating every aspect of 463 VirtualBox with other software systems. See 464 <xref linkend="VirtualBoxAPI" />. 465 </para> 466 </listitem> 467 468 <listitem> 469 <para> 470 <emphasis role="bold">Remote machine display.</emphasis> The 471 VirtualBox Remote Desktop Extension (VRDE) allows for 472 high-performance remote access to any running virtual machine. 473 This extension supports the Remote Desktop Protocol (RDP) 474 originally built into Microsoft Windows, with special 475 additions for full client USB support. 476 </para> 477 478 <para> 479 The VRDE does not rely on the RDP server that is built into 480 Microsoft Windows; instead, it is plugged directly into the 481 virtualization layer. As a result, it works with guest 482 operating systems other than Windows, even in text mode, and 483 does not require application support in the virtual machine 484 either. The VRDE is described in detail in 485 <xref linkend="vrde" />. 486 </para> 487 488 <para> 489 On top of this special capacity, VirtualBox offers you more 490 unique features: 491 </para> 492 493 <itemizedlist> 494 495 <listitem> 496 <para> 497 <emphasis role="bold">Extensible RDP 498 authentication.</emphasis> VirtualBox already supports 499 Winlogon on Windows and PAM on Linux for RDP 500 authentication. In addition, it includes an easy-to-use 501 SDK which allows you to create arbitrary interfaces for 502 other methods of authentication. See 503 <xref linkend="vbox-auth" />. 504 </para> 505 </listitem> 506 507 <listitem> 508 <para> 509 <emphasis role="bold">USB over RDP.</emphasis> Via RDP 510 virtual channel support, VirtualBox also allows you to 511 connect arbitrary USB devices locally to a virtual machine 512 which is running remotely on a VirtualBox RDP server. See 513 <xref 514 linkend="usb-over-rdp" />. 515 </para> 516 </listitem> 517 518 </itemizedlist> 519 </listitem> 520 521 </itemizedlist> 522 523 </sect1> 524 525 <sect1 id="hostossupport"> 526 527 <title>Supported Host Operating Systems</title> 528 529 <para> 530 Currently, VirtualBox runs on the following host operating 531 systems: 532 </para> 533 534 <itemizedlist> 535 536 <listitem> 537 <para> 538 <emphasis role="bold">Windows hosts:</emphasis> 539 540 <footnote> 541 542 <para> 543 Support for 64-bit Windows was added with VirtualBox 1.5. 544 Support for Windows XP was removed with VirtualBox 5.0. 545 Support for Windows Vista was removed with VirtualBox 5.2. 546 </para> 547 548 </footnote> 549 </para> 550 551 <itemizedlist> 552 553 <listitem> 554 <para> 555 Windows Server 2008 (64-bit) 556 </para> 557 </listitem> 558 559 <listitem> 560 <para> 561 Windows Server 2008 R2 (64-bit) 562 </para> 563 </listitem> 564 565 <listitem> 566 <para> 567 Windows 7 (32-bit and 64-bit) 568 </para> 569 </listitem> 570 571 <listitem> 572 <para> 573 Windows 8 (32-bit and 64-bit) 574 </para> 575 </listitem> 576 577 <listitem> 578 <para> 579 Windows 8.1 (32-bit and 64-bit) 580 </para> 581 </listitem> 582 583 <listitem> 584 <para> 585 Windows 10 RTM build 10240 (32-bit and 64-bit) 586 </para> 587 </listitem> 588 589 <listitem> 590 <para> 591 Windows Server 2012 (64-bit) 592 </para> 593 </listitem> 594 595 <listitem> 596 <para> 597 Windows Server 2012 R2 (64-bit) 598 </para> 599 </listitem> 600 601 <listitem> 602 <para> 603 Windows Server 2016 (64-bit) 604 </para> 605 </listitem> 606 607 </itemizedlist> 608 </listitem> 609 610 <listitem> 611 <para> 612 <emphasis role="bold">Mac OS X hosts (64-bit):</emphasis> 613 614 <footnote> 615 616 <para> 617 Preliminary Mac OS X support (beta stage) was added with 618 VirtualBox 1.4, full support with 1.6. Mac OS X 10.4 619 (Tiger) support was removed with VirtualBox 3.1. Support 620 for Mac OS X 10.7 (Lion) and earlier was removed with 621 VirtualBox 5.0. Support for Mac OS X 10.8 (Mountain Lion) 622 was removed with VirtualBox 5.1. Support for Mac OS X 10.9 623 (Mavericks) was removed with VirtualBox 5.2. 624 </para> 625 626 </footnote> 627 </para> 628 629 <itemizedlist> 630 631 <listitem> 632 <para> 633 10.10 (Yosemite) 634 </para> 635 </listitem> 636 637 <listitem> 638 <para> 639 10.11 (El Capitan) 640 </para> 641 </listitem> 642 643 <listitem> 644 <para> 645 10.12 (Sierra) 646 </para> 647 </listitem> 648 649 <listitem> 650 <para> 651 10.13 (High Sierra) 652 </para> 653 </listitem> 654 655 </itemizedlist> 656 657 <para> 658 Intel hardware is required. See also 659 <xref 660 linkend="KnownIssues" />. 661 </para> 662 </listitem> 663 664 <listitem> 665 <para> 666 <emphasis role="bold">Linux hosts (32-bit and 64-bit). 667 Includes the following:</emphasis> 668 669 <footnote> 670 671 <para> 672 Support for 64-bit Linux was added with VirtualBox 1.4. 673 </para> 674 675 </footnote> 676 </para> 677 678 <itemizedlist> 679 680 <listitem> 681 <para> 682 Ubuntu 14.04 LTS, 16.04 LTS, and 17.04 683 </para> 684 </listitem> 685 686 <listitem> 687 <para> 688 Debian GNU/Linux 7 ("Wheezy"), 8 ("Jessie"), and 9 689 ("Stretch") 690 </para> 691 </listitem> 692 693 <listitem> 694 <para> 695 Oracle Enterprise Linux 5, Oracle Linux 6, and 7 696 </para> 697 </listitem> 698 699 <listitem> 700 <para> 701 Redhat Enterprise Linux 5, 6, and 7 702 </para> 703 </listitem> 704 705 <listitem> 706 <para> 707 Fedora 25 and 26 708 </para> 709 </listitem> 710 711 <listitem> 712 <para> 713 Gentoo Linux 714 </para> 715 </listitem> 716 717 <listitem> 718 <para> 719 openSUSE 13.2 720 </para> 721 </listitem> 722 723 </itemizedlist> 724 725 <para> 726 It should be possible to use VirtualBox on most systems based 727 on Linux kernel 2.6 or 3.x using either the VirtualBox 728 installer or by doing a manual installation. See 729 <xref linkend="install-linux-host" />. However, the formally 730 tested and supported Linux distributions are those for which 731 we offer a dedicated package. 732 </para> 733 734 <para> 735 Note that starting with VirtualBox 2.1, Linux 2.4-based host 736 operating systems are no longer supported. 737 </para> 738 </listitem> 739 740 <listitem> 741 <para> 742 <emphasis role="bold">Solaris hosts (64-bit only).</emphasis> 743 The following versions are supported with the restrictions 744 listed in <xref 745 linkend="KnownIssues" />: 746 </para> 747 748 <itemizedlist> 749 750 <listitem> 751 <para> 752 Solaris 11 753 </para> 754 </listitem> 755 756 <listitem> 757 <para> 758 Solaris 10 (U10 and higher) 759 </para> 760 </listitem> 761 762 </itemizedlist> 763 </listitem> 764 765 </itemizedlist> 766 767 <para> 768 Note that the above list is informal. Oracle support for customers 769 who have a support contract is limited to a subset of the listed 770 host operating systems. Also, any feature which is marked as 771 <emphasis>experimental</emphasis> is not supported. Feedback and 772 suggestions about such features are welcome. 773 </para> 774 775 </sect1> 776 777 <sect1 id="hostcpurequirements"> 778 779 <title>Host CPU Requirements</title> 780 781 <para> 782 SSE2 is required starting with VirtualBox version 5.2.10 and 783 version 5.1.24. 784 </para> 785 786 </sect1> 787 788 <sect1 id="intro-installing"> 789 790 <title>Installing VirtualBox and Extension Packs</title> 791 792 <para> 793 VirtualBox comes in many different packages, and installation 794 depends on your host operating system. If you have installed 795 software before, installation should be straightforward. On each 796 host platform, VirtualBox uses the installation method that is 797 most common and easy to use. If you run into trouble or have 798 special requirements, see <xref linkend="installation" /> for 799 details about the various installation methods. 800 </para> 801 802 <para> 803 Starting with version 4.0, VirtualBox is split into several 804 components: 805 </para> 806 807 <orderedlist> 808 809 <listitem> 810 <para> 811 The base package consists of all open source components and is 812 licensed under the GNU General Public License V2. 813 </para> 814 </listitem> 815 816 <listitem> 817 <para> 818 Additional extension packs can be downloaded which extend the 819 functionality of the VirtualBox base package. Currently, 820 Oracle provides a single extension pack, available from: 821 <ulink 822 url="http://www.virtualbox.org">http://www.virtualbox.org</ulink>. 823 The extension pack provides the following added functionality: 824 </para> 825 826 <orderedlist> 827 828 <listitem> 829 <para> 830 The virtual USB 2.0 (EHCI) device. See 831 <xref 832 linkend="settings-usb" />. 833 </para> 834 </listitem> 835 836 <listitem> 837 <para> 838 The virtual USB 3.0 (xHCI) device. See 839 <xref 840 linkend="settings-usb" />. 841 </para> 842 </listitem> 843 844 <listitem> 845 <para> 846 VirtualBox Remote Desktop Protocol (VRDP) support. See 847 <xref linkend="vrde" />. 848 </para> 849 </listitem> 850 851 <listitem> 852 <para> 853 Host webcam passthrough. See 854 <xref 855 linkend="webcam-passthrough" />. 856 </para> 857 </listitem> 858 859 <listitem> 860 <para> 861 Intel PXE boot ROM. 862 </para> 863 </listitem> 864 865 <listitem> 866 <para> 867 Experimental support for PCI passthrough on Linux hosts. 868 See <xref linkend="pcipassthrough" />. 869 </para> 870 </listitem> 871 872 <listitem> 873 <para> 874 Disk image encryption with AES algorithm. See 875 <xref linkend="diskencryption" />. 876 </para> 877 </listitem> 878 879 </orderedlist> 880 881 <para> 882 VirtualBox extension packages have a 883 <computeroutput>.vbox-extpack</computeroutput> file name 884 extension. To install an extension, simply double-click on the 885 package file and a Network Operations Manager window will 886 appear, guiding you through the required steps. 887 </para> 888 889 <para> 890 To view the extension packs that are currently installed, 891 start the VirtualBox Manager, as shown in 892 <xref linkend="intro-starting"/>. From the 893 <emphasis role="bold">File</emphasis> menu, select 894 <emphasis role="bold">Preferences</emphasis>. In the window 895 that displays, go to the 896 <emphasis role="bold">Extensions</emphasis> category. This 897 shows you the extensions which are currently installed, and 898 enables you to remove a package or add a new package. 899 </para> 900 901 <para> 902 Alternatively, you can use the VBoxManage command line. See 903 <xref linkend="vboxmanage-extpack" />. 904 </para> 905 </listitem> 906 907 </orderedlist> 908 909 </sect1> 910 911 <sect1 id="intro-starting"> 912 913 <title>Starting VirtualBox</title> 914 915 <para> 916 After installation, you can start VirtualBox as follows: 917 </para> 918 919 <itemizedlist> 920 921 <listitem> 922 <para> 923 On a Windows host, in the Programs menu, click on the item in 924 the <emphasis role="bold">VirtualBox</emphasis> group. On 925 Vista or Windows 7, you can also type 926 <computeroutput>VirtualBox</computeroutput> in the search box 927 of the Start menu. 928 </para> 929 </listitem> 930 931 <listitem> 932 <para> 933 On a Mac OS X host, in the Finder, double-click on the 934 <emphasis role="bold">VirtualBox</emphasis> item in the 935 "Applications" folder. You may want to drag this item onto 936 your Dock. 937 </para> 938 </listitem> 939 940 <listitem> 941 <para> 942 On a Linux or Solaris host, depending on your desktop 943 environment, a VirtualBox item may have been placed in either 944 the System or System Tools group of your Applications menu. 945 Alternatively, you can type 946 <computeroutput>VirtualBox</computeroutput> in a terminal. 947 </para> 948 </listitem> 949 950 </itemizedlist> 951 952 <para> 953 When you start VirtualBox for the first time, a window like the 954 following is displayed: 955 </para> 956 957 <mediaobject> 28 958 <imageobject> 29 <imagedata align="center" fileref="images/v m-vista-running.png"30 width="14cm" />959 <imagedata align="center" fileref="images/virtualbox-main-empty.png" 960 width="10cm" /> 31 961 </imageobject> 32 </mediaobject></para> 33 34 <para>In this User Manual, we'll begin simply with a quick introduction to 35 virtualization and how to get your first virtual machine running with the 36 easy-to-use VirtualBox graphical user interface. Subsequent chapters will go 37 into much more detail covering more powerful tools and features, but 38 fortunately, it is not necessary to read the entire User Manual before you 39 can use VirtualBox.</para> 40 41 <para>You can find a summary of VirtualBox's capabilities in <xref 42 linkend="features-overview" />. For existing VirtualBox users who just want 43 to see what's new in this release, there is a detailed list in <xref 44 linkend="ChangeLog" />.</para> 45 46 <sect1> 47 <title>Why is virtualization useful?</title> 48 49 <para>The techniques and features that VirtualBox provides are useful for 50 several scenarios:</para> 51 52 <itemizedlist> 53 <listitem> 54 <para><emphasis role="bold">Running multiple operating systems 55 simultaneously.</emphasis> VirtualBox allows you to run more than one 56 operating system at a time. This way, you can run software written for 57 one operating system on another (for example, Windows software on 58 Linux or a Mac) without having to reboot to use it. Since you can 59 configure what kinds of "virtual" hardware should be presented to each 60 such operating system, you can install an old operating system such as 61 DOS or OS/2 even if your real computer's hardware is no longer 62 supported by that operating system.</para> 63 </listitem> 64 65 <listitem> 66 <para><emphasis role="bold">Easier software installations.</emphasis> 67 Software vendors can use virtual machines to ship entire software 68 configurations. For example, installing a complete mail server 69 solution on a real machine can be a tedious task. With VirtualBox, 70 such a complex setup (then often called an "appliance") can be packed 71 into a virtual machine. Installing and running a mail server becomes 72 as easy as importing such an appliance into VirtualBox.</para> 73 </listitem> 74 75 <listitem> 76 <para><emphasis role="bold">Testing and disaster recovery.</emphasis> 77 Once installed, a virtual machine and its virtual hard disks can be 78 considered a "container" that can be arbitrarily frozen, woken up, 79 copied, backed up, and transported between hosts.</para> 80 81 <para>On top of that, with the use of another VirtualBox feature 82 called "snapshots", one can save a particular state of a virtual 83 machine and revert back to that state, if necessary. This way, one can 84 freely experiment with a computing environment. If something goes 85 wrong (e.g. after installing misbehaving software or infecting the 86 guest with a virus), one can easily switch back to a previous snapshot 87 and avoid the need of frequent backups and restores.</para> 88 89 <para>Any number of snapshots can be created, allowing you to travel 90 back and forward in virtual machine time. You can delete snapshots 91 while a VM is running to reclaim disk space.</para> 92 </listitem> 93 94 <listitem> 95 <para><emphasis role="bold">Infrastructure consolidation.</emphasis> 96 Virtualization can significantly reduce hardware and electricity 97 costs. Most of the time, computers today only use a fraction of their 98 potential power and run with low average system loads. A lot of 99 hardware resources as well as electricity is thereby wasted. So, 100 instead of running many such physical computers that are only 101 partially used, one can pack many virtual machines onto a few powerful 102 hosts and balance the loads between them.</para> 103 </listitem> 104 </itemizedlist> 962 </mediaobject> 963 964 <para> 965 This window is called the <emphasis 966 role="bold">"VirtualBox 967 Manager"</emphasis>. On the left, you can see a pane that will 968 later list all your virtual machines. Since you have not created 969 any, the list is empty. A row of buttons above it allows you to 970 create new VMs and work on existing VMs, once you have some. The 971 pane on the right displays the properties of the virtual machine 972 currently selected, if any. Again, since you do not have any 973 machines yet, the pane displays a welcome message. 974 </para> 975 976 <para> 977 To give you an idea what VirtualBox might look like later, after 978 you have created many machines, here is another example: 979 </para> 980 981 <mediaobject> 982 <imageobject> 983 <imagedata align="center" fileref="images/virtualbox-main.png" 984 width="10cm" /> 985 </imageobject> 986 </mediaobject> 987 105 988 </sect1> 106 989 107 <sect1 id="virtintro">108 <title>Some terminology</title>109 110 <para>When dealing with virtualization (and also for understanding the111 following chapters of this documentation), it helps to acquaint oneself112 with a bit of crucial terminology, especially the following terms:</para>113 114 <glosslist>115 <glossentry>116 <glossterm>Host operating system (host OS).</glossterm>117 118 <glossdef>119 <para>This is the operating system of the physical computer on which120 VirtualBox was installed. There are versions of VirtualBox for121 Windows, Mac OS X, Linux and Solaris hosts; for details, please see122 <xref linkend="hostossupport" />.</para>123 124 <para>Most of the time, this User Manual discusses all VirtualBox125 versions together. There may be platform-specific differences which126 we will point out where appropriate.</para>127 </glossdef>128 </glossentry>129 130 <glossentry>131 <glossterm>Guest operating system (guest OS).</glossterm>132 133 <glossdef>134 <para>This is the operating system that is running inside the135 virtual machine. Theoretically, VirtualBox can run any x86 operating136 system (DOS, Windows, OS/2, FreeBSD, OpenBSD), but to achieve137 near-native performance of the guest code on your machine, we had to138 go through a lot of optimizations that are specific to certain139 operating systems. So while your favorite operating system140 <emphasis>may</emphasis> run as a guest, we officially support and141 optimize for a select few (which, however, include the most common142 ones).</para>143 144 <para>See <xref linkend="guestossupport" /> for details.</para>145 </glossdef>146 </glossentry>147 148 <glossentry>149 <glossterm>Virtual machine (VM).</glossterm>150 151 <glossdef>152 <para>This is the special environment that VirtualBox creates for153 your guest operating system while it is running. In other words, you154 run your guest operating system "in" a VM. Normally, a VM will be155 shown as a window on your computer's desktop, but depending on which156 of the various frontends of VirtualBox you use, it can be displayed157 in full screen mode or remotely on another computer.</para>158 159 <para>In a more abstract way, internally, VirtualBox thinks of a VM160 as a set of parameters that determine its behavior. They include161 hardware settings (how much memory the VM should have, what hard162 disks VirtualBox should virtualize through which container files,163 what CDs are mounted etc.) as well as state information (whether the164 VM is currently running, saved, its snapshots etc.). These settings165 are mirrored in the VirtualBox Manager window as well as the166 <computeroutput>VBoxManage</computeroutput> command line program;167 see <xref linkend="vboxmanage" />. In other words, a VM is also what168 you can see in its settings dialog.</para>169 </glossdef>170 </glossentry>171 172 <glossentry>173 <glossterm>Guest Additions.</glossterm>174 175 <glossdef>176 <para>This refers to special software packages which are shipped177 with VirtualBox but designed to be installed178 <emphasis>inside</emphasis> a VM to improve performance of the guest179 OS and to add extra features. This is described in detail in <xref180 linkend="guestadditions" />.</para>181 </glossdef>182 </glossentry>183 </glosslist>184 </sect1>185 186 <sect1 id="features-overview">187 <title>Features overview</title>188 189 <para>Here's a brief outline of VirtualBox's main features:</para>190 191 <itemizedlist>192 <listitem>193 <para><emphasis role="bold">Portability.</emphasis> VirtualBox runs on194 a large number of 32-bit and 64-bit host operating systems (again, see195 <xref linkend="hostossupport" /> for details).</para>196 197 <para>VirtualBox is a so-called "hosted" hypervisor (sometimes198 referred to as a "type 2" hypervisor). Whereas a "bare-metal" or "type199 1" hypervisor would run directly on the hardware, VirtualBox requires200 an existing operating system to be installed. It can thus run201 alongside existing applications on that host.</para>202 203 <para>To a very large degree, VirtualBox is functionally identical on204 all of the host platforms, and the same file and image formats are205 used. This allows you to run virtual machines created on one host on206 another host with a different host operating system; for example, you207 can create a virtual machine on Windows and then run it under208 Linux.</para>209 210 <para>In addition, virtual machines can easily be imported and211 exported using the Open Virtualization Format (OVF, see <xref212 linkend="ovf" />), an industry standard created for this purpose. You213 can even import OVFs that were created with a different virtualization214 software.</para>215 </listitem>216 217 <listitem>218 <para><emphasis role="bold">No hardware virtualization219 required.</emphasis> For many scenarios, VirtualBox does not require220 the processor features built into newer hardware like Intel VT-x or221 AMD-V. As opposed to many other virtualization solutions, you can222 therefore use VirtualBox even on older hardware where these features223 are not present. The technical details are explained in <xref224 linkend="hwvirt" />.</para>225 </listitem>226 227 <listitem>228 <para><emphasis role="bold">Guest Additions: shared folders, seamless229 windows, 3D virtualization.</emphasis> The VirtualBox Guest Additions230 are software packages which can be installed231 <emphasis>inside</emphasis> of supported guest systems to improve232 their performance and to provide additional integration and233 communication with the host system. After installing the Guest234 Additions, a virtual machine will support automatic adjustment of235 video resolutions, seamless windows, accelerated 3D graphics and more.236 The Guest Additions are described in detail in <xref237 linkend="guestadditions" />.</para>238 239 <para>In particular, Guest Additions provide for "shared folders",240 which let you access files from the host system from within a guest241 machine. Shared folders are described in <xref242 linkend="sharedfolders" />.</para>243 </listitem>244 245 <listitem>246 <para><emphasis role="bold">Great hardware support.</emphasis> Among247 others, VirtualBox supports:</para>248 249 <itemizedlist>250 <listitem>251 <para><emphasis role="bold">Guest multiprocessing252 (SMP).</emphasis> VirtualBox can present up to 32 virtual CPUs to253 each virtual machine, irrespective of how many CPU cores are254 physically present on your host.</para>255 </listitem>256 257 <listitem>258 <para><emphasis role="bold">USB device support.</emphasis>259 VirtualBox implements a virtual USB controller and allows you to260 connect arbitrary USB devices to your virtual machines without261 having to install device-specific drivers on the host. USB support262 is not limited to certain device categories. For details, see263 <xref linkend="settings-usb" />.</para>264 </listitem>265 266 <listitem>267 <para><emphasis role="bold">Hardware compatibility.</emphasis>268 VirtualBox virtualizes a vast array of virtual devices, among them269 many devices that are typically provided by other virtualization270 platforms. That includes IDE, SCSI and SATA hard disk controllers,271 several virtual network cards and sound cards, virtual serial and272 parallel ports and an Input/Output Advanced Programmable Interrupt273 Controller (I/O APIC), which is found in many modern PC systems.274 This eases cloning of PC images from real machines and importing275 of third-party virtual machines into VirtualBox.</para>276 </listitem>277 278 <listitem>279 <para><emphasis role="bold">Full ACPI support.</emphasis> The280 Advanced Configuration and Power Interface (ACPI) is fully281 supported by VirtualBox. This eases cloning of PC images from real282 machines or third-party virtual machines into VirtualBox. With its283 unique <emphasis role="bold">ACPI power status support,</emphasis>284 VirtualBox can even report to ACPI-aware guest operating systems285 the power status of the host. For mobile systems running on286 battery, the guest can thus enable energy saving and notify the287 user of the remaining power (e.g. in full screen modes).</para>288 </listitem>289 290 <listitem>291 <para><emphasis role="bold">Multiscreen resolutions.</emphasis>292 VirtualBox virtual machines support screen resolutions many times293 that of a physical screen, allowing them to be spread over a large294 number of screens attached to the host system.</para>295 </listitem>296 297 <listitem>298 <para><emphasis role="bold">Built-in iSCSI support.</emphasis>299 This unique feature allows you to connect a virtual machine300 directly to an iSCSI storage server without going through the host301 system. The VM accesses the iSCSI target directly without the302 extra overhead that is required for virtualizing hard disks in303 container files. For details, see <xref304 linkend="storage-iscsi" />.</para>305 </listitem>306 307 <listitem>308 <para><emphasis role="bold">PXE Network boot.</emphasis> The309 integrated virtual network cards of VirtualBox fully support310 remote booting via the Preboot Execution Environment (PXE).</para>311 </listitem>312 </itemizedlist>313 </listitem>314 315 <listitem>316 <para><emphasis role="bold">Multigeneration branched317 snapshots.</emphasis> VirtualBox can save arbitrary snapshots of the318 state of the virtual machine. You can go back in time and revert the319 virtual machine to any such snapshot and start an alternative VM320 configuration from there, effectively creating a whole snapshot tree.321 For details, see <xref linkend="snapshots" />. You can create and322 delete snapshots while the virtual machine is running.</para>323 </listitem>324 325 <listitem>326 <para><emphasis role="bold">VM groups.</emphasis> VirtualBox provides a327 groups feature that enables the user to organize and control virtual machines328 collectively, as well as individually. In addition to basic groups, it329 is also possible for any VM to be in more than one group, and for330 groups to be nested in a hierarchy -- i.e. groups of groups. In331 general, the operations that can be performed on groups are the same as332 those that can be applied to individual VMs i.e. Start, Pause, Reset,333 Close (Save state, Send Shutdown, Poweroff), Discard Saved State, Show334 in fileSystem, Sort.</para>335 </listitem>336 337 <listitem>338 <para><emphasis role="bold">Clean architecture; unprecedented339 modularity.</emphasis> VirtualBox has an extremely modular design with340 well-defined internal programming interfaces and a clean separation of341 client and server code. This makes it easy to control it from several342 interfaces at once: for example, you can start a VM simply by clicking343 on a button in the VirtualBox graphical user interface and then344 control that machine from the command line, or even remotely. See345 <xref linkend="frontends" /> for details.</para>346 347 <para>Due to its modular architecture, VirtualBox can also expose its348 full functionality and configurability through a comprehensive349 <emphasis role="bold">software development kit (SDK),</emphasis> which350 allows for integrating every aspect of VirtualBox with other software351 systems. Please see <xref linkend="VirtualBoxAPI" /> for352 details.</para>353 </listitem>354 355 <listitem>356 <para><emphasis role="bold">Remote machine display.</emphasis> The357 VirtualBox Remote Desktop Extension (VRDE) allows for high-performance358 remote access to any running virtual machine. This extension supports359 the Remote Desktop Protocol (RDP) originally built into Microsoft360 Windows, with special additions for full client USB support.</para>361 362 <para>The VRDE does not rely on the RDP server that is built into363 Microsoft Windows; instead, it is plugged directly into the364 virtualization layer. As a result, it works with guest operating365 systems other than Windows (even in text mode) and does not require366 application support in the virtual machine either. The VRDE is367 described in detail in <xref linkend="vrde" />.</para>368 369 <para>On top of this special capacity, VirtualBox offers you more370 unique features:<itemizedlist>371 <listitem>372 <para><emphasis role="bold">Extensible RDP373 authentication.</emphasis> VirtualBox already supports Winlogon374 on Windows and PAM on Linux for RDP authentication. In addition,375 it includes an easy-to-use SDK which allows you to create376 arbitrary interfaces for other methods of authentication; see377 <xref linkend="vbox-auth" /> for details.</para>378 </listitem>379 380 <listitem>381 <para><emphasis role="bold">USB over RDP.</emphasis> Via RDP382 virtual channel support, VirtualBox also allows you to connect383 arbitrary USB devices locally to a virtual machine which is384 running remotely on a VirtualBox RDP server; see <xref385 linkend="usb-over-rdp" /> for details.</para>386 </listitem>387 </itemizedlist></para>388 </listitem>389 </itemizedlist>390 </sect1>391 392 <sect1 id="hostossupport">393 <title>Supported host operating systems</title>394 395 <para>Currently, VirtualBox runs on the following host operating396 systems:</para>397 398 <itemizedlist>399 <listitem>400 <para><emphasis role="bold">Windows</emphasis> hosts:<footnote>401 <para>Support for 64-bit Windows was added with VirtualBox402 1.5. Support for Windows XP was removed with VirtualBox 5.0.403 Support for Windows Vista was removed with VirtualBox 5.2.</para>404 </footnote>405 406 <itemizedlist>407 <listitem>408 <para>Windows Server 2008 (64-bit)</para>409 </listitem>410 411 <listitem>412 <para>Windows Server 2008 R2 (64-bit)</para>413 </listitem>414 415 <listitem>416 <para>Windows 7 (32-bit and 64-bit)</para>417 </listitem>418 419 <listitem>420 <para>Windows 8 (32-bit and 64-bit)</para>421 </listitem>422 423 <listitem>424 <para>Windows 8.1 (32-bit and 64-bit)</para>425 </listitem>426 427 <listitem>428 <para>Windows 10 RTM build 10240 (32-bit and 64-bit)</para>429 </listitem>430 431 <listitem>432 <para>Windows Server 2012 (64-bit)</para>433 </listitem>434 435 <listitem>436 <para>Windows Server 2012 R2 (64-bit)</para>437 </listitem>438 439 <listitem>440 <para>Windows Server 2016 (64-bit)</para>441 </listitem>442 443 </itemizedlist></para>444 </listitem>445 446 <listitem>447 <para><emphasis role="bold">Mac OS X</emphasis> hosts (64-bit):<footnote>448 <para>Preliminary Mac OS X support (beta stage) was added with449 VirtualBox 1.4, full support with 1.6. Mac OS X 10.4 (Tiger)450 support was removed with VirtualBox 3.1. Support for Mac OS X 10.7451 (Lion) and earlier was removed with VirtualBox 5.0. Support for Mac452 OS X 10.8 (Mountain Lion) was removed with VirtualBox 5.1. Support453 for Mac OS X 10.9 (Mavericks) was removed with VirtualBox 5.2.</para>454 </footnote></para>455 456 <itemizedlist>457 458 <listitem>459 <para>10.10 (Yosemite)</para>460 </listitem>461 462 <listitem>463 <para>10.11 (El Capitan)</para>464 </listitem>465 466 <listitem>467 <para>10.12 (Sierra)</para>468 </listitem>469 470 <listitem>471 <para>10.13 (High Sierra)</para>472 </listitem>473 474 </itemizedlist>475 476 <para>Intel hardware is required; please see <xref477 linkend="KnownIssues" /> also.</para>478 </listitem>479 480 <listitem>481 <para><emphasis role="bold">Linux</emphasis> hosts (32-bit and482 64-bit<footnote>483 <para>Support for 64-bit Linux was added with VirtualBox484 1.4.</para>485 </footnote>). Among others, this includes:<itemizedlist>486 <listitem>487 <para>Ubuntu 14.04 LTS, 16.04 LTS, and 17.04</para>488 </listitem>489 490 <listitem>491 <para>Debian GNU/Linux 7 ("Wheezy"), 8 ("Jessie") and 9 ("Stretch")</para>492 </listitem>493 494 <listitem>495 <para>Oracle Enterprise Linux 5, Oracle Linux 6 and 7</para>496 </listitem>497 498 <listitem>499 <para>Redhat Enterprise Linux 5, 6 and 7</para>500 </listitem>501 502 <listitem>503 <para>Fedora 25 and 26</para>504 </listitem>505 506 <listitem>507 <para>Gentoo Linux</para>508 </listitem>509 510 <listitem>511 <para>openSUSE 13.2</para>512 </listitem>513 514 </itemizedlist></para>515 516 <para>It should be possible to use VirtualBox on most systems based on517 Linux kernel 2.6 or 3.x using either the VirtualBox installer or by doing a518 manual installation; see <xref linkend="install-linux-host" />. However,519 the formally tested and supported Linux distributions are those for520 which we offer a dedicated package.</para>521 522 <para>Note that starting with VirtualBox 2.1, Linux 2.4-based host523 operating systems are no longer supported.</para>524 </listitem>525 526 <listitem>527 <para><emphasis role="bold">Solaris</emphasis> hosts (64-bit only) are528 supported with the restrictions listed in <xref529 linkend="KnownIssues" />:<itemizedlist>530 <listitem>531 <para>Solaris 11</para>532 </listitem>533 534 <listitem>535 <para>Solaris 10 (U10 and higher)</para>536 </listitem>537 </itemizedlist></para>538 </listitem>539 </itemizedlist>540 <para>Note that the above list is informal. Oracle support for customers541 who have a support contract is limited to a subset of the listed host542 operating systems. Also, any feature which is marked as <emphasis543 role="bold">experimental</emphasis> is not supported. Feedback and544 suggestions about such features are welcome.</para>545 </sect1>546 547 <sect1 id="hostcpurequirements">548 <title>Host CPU Requirements</title>549 550 <para>SSE2 is required starting with VirtualBox version 5.2.10 and version 5.1.24.</para>551 552 </sect1>553 554 <sect1 id="intro-installing">555 <title>Installing VirtualBox and extension packs</title>556 557 <para>VirtualBox comes in many different packages, and installation558 depends on your host operating system. If you have installed software559 before, installation should be straightforward: on each host platform,560 VirtualBox uses the installation method that is most common and easy to561 use. If you run into trouble or have special requirements, please refer to562 <xref linkend="installation" /> for details about the various installation563 methods.</para>564 565 <para>Starting with version 4.0, VirtualBox is split into several566 components.<orderedlist>567 <listitem>568 <para>The base package consists of all open-source components and is569 licensed under the GNU General Public License V2.</para>570 </listitem>571 572 <listitem>573 <para>Additional extension packs can be downloaded which extend the574 functionality of the VirtualBox base package. Currently, Oracle575 provides the one extension pack, which can be found at <ulink576 url="http://www.virtualbox.org">http://www.virtualbox.org</ulink>577 and provides the following added functionality:<orderedlist>578 <listitem>579 <para>The virtual USB 2.0 (EHCI) device; see <xref580 linkend="settings-usb" />.</para>581 </listitem>582 583 <listitem>584 <para>The virtual USB 3.0 (xHCI) device; see <xref585 linkend="settings-usb" />.</para>586 </listitem>587 588 <listitem>589 <para>VirtualBox Remote Desktop Protocol (VRDP) support; see590 <xref linkend="vrde" />.</para>591 </listitem>592 593 <listitem>594 <para>Host webcam passthrough; see chapter <xref595 linkend="webcam-passthrough" />.</para>596 </listitem>597 598 <listitem>599 <para>Intel PXE boot ROM.</para>600 </listitem>601 602 <listitem>603 <para>Experimental support for PCI passthrough on Linux hosts;604 see <xref linkend="pcipassthrough" />.</para>605 </listitem>606 607 <listitem>608 <para>Disk image encryption with AES algorithm;609 see <xref linkend="diskencryption" />.</para>610 </listitem>611 </orderedlist></para>612 613 <para>VirtualBox extension packages have a614 <computeroutput>.vbox-extpack</computeroutput> file name extension.615 To install an extension, simply double-click on the package file616 and a Network Operations Manager window will appear, guiding you617 through the required steps.</para>618 619 <para>To view the extension packs that are currently installed,620 please start the VirtualBox Manager (see the next section). From the621 "File" menu, please select "Preferences". In the window that shows622 up, go to the "Extensions" category which shows you the extensions623 which are currently installed and allows you to remove a package or624 add a new one.</para>625 626 <para>Alternatively you can use VBoxManage on the command line: see627 <xref linkend="vboxmanage-extpack" /> for details.</para>628 </listitem>629 </orderedlist></para>630 </sect1>631 632 <sect1>633 <title>Starting VirtualBox</title>634 635 <para>After installation, you can start VirtualBox as636 follows:<itemizedlist>637 <listitem>638 <para>On a Windows host, in the standard "Programs" menu, click on639 the item in the "VirtualBox" group. On Vista or Windows 7, you can640 also type "VirtualBox" in the search box of the "Start" menu.</para>641 </listitem>642 643 <listitem>644 <para>On a Mac OS X host, in the Finder, double-click on the645 "VirtualBox" item in the "Applications" folder. (You may want to646 drag this item onto your Dock.)</para>647 </listitem>648 649 <listitem>650 <para>On a Linux or Solaris host, depending on your desktop651 environment, a "VirtualBox" item may have been placed in either the652 "System" or "System Tools" group of your "Applications" menu.653 Alternatively, you can type654 <computeroutput>VirtualBox</computeroutput> in a terminal.</para>655 </listitem>656 </itemizedlist></para>657 658 <para>When you start VirtualBox for the first time, a window like the659 following should come up:</para>660 661 <para><mediaobject>662 <imageobject>663 <imagedata align="center" fileref="images/virtualbox-main-empty.png"664 width="10cm" />665 </imageobject>666 </mediaobject>This window is called the <emphasis667 role="bold">"VirtualBox Manager".</emphasis> On the left, you can see a668 pane that will later list all your virtual machines. Since you have not669 created any, the list is empty. A row of buttons above it allows you to670 create new VMs and work on existing VMs, once you have some. The pane on671 the right displays the properties of the virtual machine currently672 selected, if any. Again, since you don't have any machines yet, the pane673 displays a welcome message.</para>674 675 <para>To give you an idea what VirtualBox might look like later, after you676 have created many machines, here's another example:</para>677 678 <para><mediaobject>679 <imageobject>680 <imagedata align="center" fileref="images/virtualbox-main.png"681 width="10cm" />682 </imageobject>683 </mediaobject></para>684 </sect1>685 686 990 <sect1 id="gui-createvm"> 687 <title>Creating your first virtual machine</title> 688 689 <para>Click on the "New" button at the top of the VirtualBox Manager 690 window. A wizard will pop up to guide you through setting up a new virtual 691 machine (VM):</para> 692 693 <para><mediaobject> 991 992 <title>Creating Your First Virtual Machine</title> 993 994 <para> 995 Click on the <emphasis role="bold">New</emphasis> button at the 996 top of the VirtualBox Manager window. A wizard will pop up to 997 guide you through setting up a new virtual machine (VM): 998 </para> 999 1000 <para> 1001 <mediaobject> 694 1002 <imageobject> 695 1003 <imagedata align="center" fileref="images/create-vm-1.png" 696 1004 width="10cm" /> 697 1005 </imageobject> 698 </mediaobject>On the following pages, the wizard will ask you for the 699 bare minimum of information that is needed to create a VM, in 700 particular:<orderedlist> 701 <listitem> 702 <para>The <emphasis role="bold">VM name</emphasis> will later be 703 shown in the VM list of the VirtualBox Manager window, and it will 704 be used for the VM's files on disk. Even though any name could be 705 used, keep in mind that once you have created a few VMs, you will 706 appreciate if you have given your VMs rather informative names; "My 707 VM" would thus be less useful than "Windows XP SP2 with 708 OpenOffice".</para> 709 </listitem> 710 711 <listitem> 712 <para>For <emphasis role="bold">"Operating System Type",</emphasis> 713 select the operating system that you want to install later. The 714 supported operating systems are grouped; if you want to install 715 something very unusual that is not listed, select "Other". Depending 716 on your selection, VirtualBox will enable or disable certain VM 1006 </mediaobject> 1007 1008 On the following pages, the wizard will ask you for the bare 1009 minimum of information that is needed to create a VM, in 1010 particular: 1011 </para> 1012 1013 <orderedlist> 1014 1015 <listitem> 1016 <para> 1017 The <emphasis role="bold">Name</emphasis> of the VM will later 1018 be shown in the VM list of the VirtualBox Manager window, and 1019 it will be used for the VM's files on disk. Even though any 1020 name can be used, bear in mind that if you create a few VMs, 1021 you will appreciate if you have given your VMs rather 1022 informative names."My VM" would thus be less useful than 1023 "Windows XP SP2 with OpenOffice", for example. 1024 </para> 1025 </listitem> 1026 1027 <listitem> 1028 <para> 1029 For <emphasis role="bold">Operating System Type</emphasis> 1030 select the operating system that you want to install later. 1031 The supported operating systems are grouped. If you want to 1032 install something very unusual that is not listed, select 1033 <emphasis role="bold">Other</emphasis>. Depending on your 1034 selection, VirtualBox will enable or disable certain VM 717 1035 settings that your guest operating system may require. This is 718 particularly important for 64-bit guests (see <xref 719 linkend="intro-64bitguests" />). It is therefore recommended to 720 always set it to the correct value.</para> 721 </listitem> 722 723 <listitem> 724 <para>On the next page, select the <emphasis role="bold">memory 725 (RAM)</emphasis> that VirtualBox should allocate every time the 726 virtual machine is started. The amount of memory given here will be 727 taken away from your host machine and presented to the guest 728 operating system, which will report this size as the (virtual) 729 computer's installed RAM.</para> 730 731 <para><note> 732 <para>Choose this setting carefully! The memory you give to the 733 VM will not be available to your host OS while the VM is 734 running, so do not specify more than you can spare. For example, 735 if your host machine has 1 GB of RAM and you enter 512 MB as the 736 amount of RAM for a particular virtual machine, while that VM is 737 running, you will only have 512 MB left for all the other 738 software on your host. If you run two VMs at the same time, even 739 more memory will be allocated for the second VM (which may not 740 even be able to start if that memory is not available). On the 741 other hand, you should specify as much as your guest OS (and 742 your applications) will require to run properly.</para> 743 </note></para> 744 745 <para>A Windows XP guest will require at least a few hundred MB RAM 746 to run properly, and Windows Vista will even refuse to install with 747 less than 512 MB. Of course, if you want to run graphics-intensive 748 applications in your VM, you may require even more RAM.</para> 749 750 <para>So, as a rule of thumb, if you have 1 GB of RAM or more in 751 your host computer, it is usually safe to allocate 512 MB to each 752 VM. But, in any case, make sure you always have at least 256 to 512 753 MB of RAM left on your host operating system. Otherwise you may 754 cause your host OS to excessively swap out memory to your hard disk, 755 effectively bringing your host system to a standstill.</para> 756 757 <para>As with the other settings, you can change this setting later, 758 after you have created the VM.</para> 759 </listitem> 760 761 <listitem> 762 <para>Next, you must specify a <emphasis role="bold">virtual hard 763 disk</emphasis> for your VM.</para> 764 765 <para>There are many and potentially complicated ways in which 766 VirtualBox can provide hard disk space to a VM (see <xref 767 linkend="storage" /> for details), but the most common way is to use 768 a large image file on your "real" hard disk, whose contents 769 VirtualBox presents to your VM as if it were a complete hard disk. 770 This file represents an entire hard disk then, so you can even copy 771 it to another host and use it with another VirtualBox 772 installation.</para> 773 774 <para>The wizard shows you the following window:</para> 775 776 <para><mediaobject> 777 <imageobject> 778 <imagedata align="center" fileref="images/create-vm-2.png" 779 width="10cm" /> 780 </imageobject> 781 </mediaobject></para> 782 783 <para>Here you have the following options:</para> 784 785 <para><itemizedlist> 786 <listitem> 787 <para>To create a new, empty virtual hard disk, press the 788 <emphasis role="bold">"New"</emphasis> button.</para> 789 </listitem> 790 791 <listitem> 792 <para>You can pick an <emphasis 793 role="bold">existing</emphasis> disk image file.</para> 794 795 <para>The <emphasis role="bold">drop-down list</emphasis> 796 presented in the window contains all disk images which are 797 currently remembered by VirtualBox, probably because they are 798 currently attached to a virtual machine (or have been in the 799 past).</para> 800 801 <para>Alternatively, you can click on the small <emphasis 802 role="bold">folder button</emphasis> next to the drop-down 803 list to bring up a standard file dialog, which allows you to 804 pick any disk image file on your host disk.</para> 805 </listitem> 806 </itemizedlist>Most probably, if you are using VirtualBox for the 807 first time, you will want to create a new disk image. Hence, press 808 the "New" button.</para> 809 810 <para>This brings up another window, the <emphasis 811 role="bold">"Create New Virtual Disk Wizard",</emphasis> which helps 812 you create a new disk image file in the new virtual machine's 813 folder.</para> 814 815 <para>VirtualBox supports two types of image files:<itemizedlist> 816 <listitem> 817 <para>A <emphasis role="bold">dynamically allocated 818 file</emphasis> will only grow in size when the guest actually 819 stores data on its virtual hard disk. It will therefore 820 initially be small on the host hard drive and only later grow 821 to the size specified as it is filled with data.</para> 822 </listitem> 823 824 <listitem> 825 <para>A <emphasis role="bold">fixed-size file</emphasis> will 826 immediately occupy the file specified, even if only a fraction 827 of the virtual hard disk space is actually in use. While 828 occupying much more space, a fixed-size file incurs less 829 overhead and is therefore slightly faster than a dynamically 830 allocated file.</para> 831 </listitem> 832 </itemizedlist></para> 833 834 <para>For details about the differences, please refer to <xref 835 linkend="vdidetails" />.</para> 836 837 <para>To prevent your physical hard disk from running full, 838 VirtualBox limits the size of the image file. Still, it needs to be 839 large enough to hold the contents of your operating system and the 840 applications you want to install -- for a modern Windows or Linux 841 guest, you will probably need several gigabytes for any serious 842 use. The limit of the image file size can be changed later (see <xref 843 linkend="vboxmanage-modifyvdi"/> for details).</para> 844 1036 particularly important for 64-bit guests. See 1037 <xref 1038 linkend="intro-64bitguests" />. It is 1039 therefore recommended to always set it to the correct value. 1040 </para> 1041 </listitem> 1042 1043 <listitem> 1044 <para> 1045 On the next page, select the <emphasis role="bold">Memory 1046 (RAM)</emphasis> that VirtualBox should allocate every time 1047 the virtual machine is started. The amount of memory given 1048 here will be taken away from your host machine and presented 1049 to the guest operating system, which will report this size as 1050 the virtual computer's installed RAM. 1051 </para> 1052 1053 <caution> 1054 <para> 1055 Choose this setting carefully. The memory you give to the VM 1056 will not be available to your host OS while the VM is 1057 running, so do not specify more than you can spare. For 1058 example, if your host machine has 1 GB of RAM and you enter 1059 512 MB as the amount of RAM for a particular virtual 1060 machine, while that VM is running, you will only have 512 MB 1061 left for all the other software on your host. If you run two 1062 VMs at the same time, even more memory will be allocated for 1063 the second VM, which may not even be able to start if that 1064 memory is not available. On the other hand, you should 1065 specify as much as your guest OS and your applications will 1066 require to run properly. 1067 </para> 1068 </caution> 1069 1070 <para> 1071 A Windows XP guest will require at least a few hundred MB of 1072 RAM to run properly, and Windows Vista will not install with 1073 less than 512 MB. If you want to run graphics-intensive 1074 applications in your VM, you may require even more RAM. 1075 </para> 1076 1077 <para> 1078 As a rule of thumb, if you have 1 GB of RAM or more in your 1079 host computer, it is usually safe to allocate 512 MB to each 1080 VM. In any case, make sure you always have at least 256 to 512 1081 MB of RAM left on your host operating system. Otherwise you 1082 may cause your host OS to excessively swap out memory to your 1083 hard disk, effectively bringing your host system to a 1084 standstill. 1085 </para> 1086 1087 <para> 1088 As with the other settings, you can change this setting later, 1089 after you have created the VM. 1090 </para> 1091 </listitem> 1092 1093 <listitem> 1094 <para> 1095 Next, you must specify a <emphasis role="bold">Virtual Hard 1096 Disk</emphasis> for your VM. 1097 </para> 1098 1099 <para> 1100 There are many and potentially complicated ways in which 1101 VirtualBox can provide hard disk space to a VM, see 1102 <xref 1103 linkend="storage" />, but the most common way 1104 is to use a large image file on your "real" hard disk, whose 1105 contents VirtualBox presents to your VM as if it were a 1106 complete hard disk. This file represents an entire hard disk 1107 then, so you can even copy it to another host and use it with 1108 another VirtualBox installation. 1109 </para> 1110 1111 <para> 1112 The wizard displays the following window: 1113 </para> 1114 1115 <para> 845 1116 <mediaobject> 846 1117 <imageobject> 847 <imagedata align="center" fileref="images/create-v di-1.png"848 width="10cm" />1118 <imagedata align="center" fileref="images/create-vm-2.png" 1119 width="10cm" /> 849 1120 </imageobject> 850 1121 </mediaobject> 851 852 <para>After having selected or created your image file, again press 853 <emphasis role="bold">"Next"</emphasis> to go to the next 854 page.</para> 1122 </para> 1123 1124 <para> 1125 At this screen, you have the following options: 1126 </para> 1127 1128 <itemizedlist> 1129 1130 <listitem> 1131 <para> 1132 To create a new, empty virtual hard disk, click the 1133 <emphasis role="bold">New</emphasis> button. 1134 </para> 1135 </listitem> 1136 1137 <listitem> 1138 <para> 1139 You can pick an 1140 <emphasis 1141 >existing</emphasis> disk image 1142 file. 1143 </para> 1144 1145 <para> 1146 The drop-down list presented in the window lists all disk 1147 images which are currently remembered by VirtualBox. These 1148 disk images are currently attached to a virtual machine, 1149 or have been attached to a virtual machine. 1150 </para> 1151 1152 <para> 1153 Alternatively, click on the small 1154 <emphasis 1155 role="bold">folder 1156 icon</emphasis> next to the drop-down list to display a 1157 standard file dialog, where you can select any disk image 1158 file on your host disk. 1159 </para> 1160 </listitem> 1161 1162 </itemizedlist> 1163 1164 <para> 1165 If you are using VirtualBox for the first time, you will want 1166 to create a new disk image. Click the 1167 <emphasis role="bold">New</emphasis> button. 1168 </para> 1169 1170 <para> 1171 This displays another window, the 1172 <emphasis 1173 role="bold">Create New Virtual Disk 1174 Wizard</emphasis>. This wizard helps you to create a new disk 1175 image file in the new virtual machine's folder. 1176 </para> 1177 1178 <para> 1179 VirtualBox supports the following types of image files: 1180 </para> 1181 1182 <itemizedlist> 1183 1184 <listitem> 1185 <para> 1186 A <emphasis role="bold">dynamically allocated 1187 file</emphasis> will only grow in size when the guest 1188 actually stores data on its virtual hard disk. It will 1189 therefore initially be small on the host hard drive and 1190 only later grow to the size specified as it is filled with 1191 data. 1192 </para> 1193 </listitem> 1194 1195 <listitem> 1196 <para> 1197 A <emphasis role="bold">fixed-size file</emphasis> will 1198 immediately occupy the file specified, even if only a 1199 fraction of the virtual hard disk space is actually in 1200 use. While occupying much more space, a fixed-size file 1201 incurs less overhead and is therefore slightly faster than 1202 a dynamically allocated file. 1203 </para> 1204 </listitem> 1205 1206 </itemizedlist> 1207 1208 <para> 1209 For details about the differences, see 1210 <xref 1211 linkend="vdidetails" />. 1212 </para> 1213 1214 <para> 1215 To prevent your physical hard disk from running full, 1216 VirtualBox limits the size of the image file. Still, it needs 1217 to be large enough to hold the contents of your operating 1218 system and the applications you want to install. For a modern 1219 Windows or Linux guest, you will probably need several 1220 gigabytes for any serious use. The limit of the image file 1221 size can be changed later, see 1222 <xref 1223 linkend="vboxmanage-modifyvdi"/>. 1224 </para> 1225 1226 <mediaobject> 1227 <imageobject> 1228 <imagedata align="center" fileref="images/create-vdi-1.png" 1229 width="10cm" /> 1230 </imageobject> 1231 </mediaobject> 1232 1233 <para> 1234 After having selected or created your image file, again click 1235 <emphasis role="bold">Next</emphasis> to go to the next page. 1236 </para> 1237 </listitem> 1238 1239 <listitem> 1240 <para> 1241 After clicking on <emphasis role="bold">Finish</emphasis> 1242 button, your new virtual machine is created. The virtual 1243 machine is displayed in the list on the left side of the 1244 Manager window, with the name that you entered initially. 1245 </para> 1246 </listitem> 1247 1248 </orderedlist> 1249 1250 <note> 1251 <para> 1252 After becoming familiar with the use of wizards, consider using 1253 the Expert Mode available in some wizards. Where available, this 1254 is selectable using a button, and speeds up the process of using 1255 wizards. 1256 </para> 1257 </note> 1258 1259 </sect1> 1260 1261 <sect1 id="intro-running"> 1262 1263 <title>Running Your Virtual Machine</title> 1264 1265 <para> 1266 To start a virtual machine, you have several options: 1267 </para> 1268 1269 <itemizedlist> 1270 1271 <listitem> 1272 <para> 1273 Double-click on its entry in the list within the Manager 1274 window. 1275 </para> 1276 </listitem> 1277 1278 <listitem> 1279 <para> 1280 Select its entry in the list in the Manager window, and click 1281 the <emphasis role="bold">Start</emphasis> button at the top. 1282 </para> 1283 </listitem> 1284 1285 <listitem> 1286 <para> 1287 For virtual machines created with VirtualBox 4.0 or later, 1288 navigate to the <computeroutput>VirtualBox 1289 VMs</computeroutput> folder in your system user's home 1290 directory. Find the subdirectory of the machine you want to 1291 start and double-click on the machine settings file, which has 1292 a <computeroutput>.vbox</computeroutput> file extension. 1293 </para> 1294 </listitem> 1295 1296 </itemizedlist> 1297 1298 <para> 1299 Starting a virtual machine displays a new window, and the virtual 1300 machine which you selected will boot up. Everything which would 1301 normally be seen on the virtual system's monitor is shown in the 1302 window. See the screenshot image in 1303 <xref linkend="Introduction"/>. 1304 </para> 1305 1306 <para> 1307 In general, you can use the virtual machine as you would use a 1308 real computer. There are couple of points worth mentioning 1309 however. 1310 </para> 1311 1312 <sect2 id="intro-starting-vm-first-time"> 1313 1314 <title>Starting a New VM for the First Time</title> 1315 1316 <para> 1317 When a VM is started for the first time, the 1318 <emphasis role="bold">First Start Wizard</emphasis>, is 1319 displayed. This wizard helps you to select an installation 1320 medium. Since the VM is created empty, it would otherwise behave 1321 just like a real computer with no operating system installed. It 1322 will do nothing and display an error message that no bootable 1323 operating system was found. 1324 </para> 1325 1326 <para> 1327 For this reason, the wizard helps you to select a medium to 1328 install an operating system from. 1329 </para> 1330 1331 <itemizedlist> 1332 1333 <listitem> 1334 <para> 1335 If you have physical CD or DVD media from which you want to 1336 install your guest operating system, such as a Windows 1337 installation CD or DVD, put the media into your host's CD or 1338 DVD drive. 1339 </para> 1340 1341 <para> 1342 In the wizard's drop-down list of installation media, select 1343 <emphasis role="bold">Host Drive</emphasis> with the correct 1344 drive letter. In the case of a Linux host, choose a device 1345 file. This will allow your VM to access the media in your 1346 host drive, and you can proceed to install from there. 1347 </para> 855 1348 </listitem> 856 1349 857 1350 <listitem> 858 <para>After clicking on <emphasis role="bold">"Finish"</emphasis>, 859 your new virtual machine will be created. You will then see it in 860 the list on the left side of the Manager window, with the name you 861 entered initially.</para> 1351 <para> 1352 If you have downloaded installation media from the Internet 1353 in the form of an ISO image file such as with a Linux 1354 distribution, you would normally burn this file to an empty 1355 CD or DVD and proceed as described above. With VirtualBox 1356 however, you can skip this step and mount the ISO file 1357 directly. VirtualBox will then present this file as a CD or 1358 DVD-ROM drive to the virtual machine, much like it does with 1359 virtual hard disk images. 1360 </para> 1361 1362 <para> 1363 In this case, the wizard's drop-down list contains a list of 1364 installation media that were previously used with 1365 VirtualBox. 1366 </para> 1367 1368 <para> 1369 If your medium is not in the list, especially if you are 1370 using VirtualBox for the first time, click the small folder 1371 icon next to the drop-down list to display a standard file 1372 dialog. Here you can pick an image file on your host disks. 1373 </para> 862 1374 </listitem> 863 </orderedlist></para> 864 865 <note><para>After becoming familiar with the use of wizards, consider using 866 the Expert Mode available in some wizards. Where available, this is 867 selectable using a button, and speeds up user processes using 868 wizards.</para></note> 869 </sect1> 870 871 <sect1> 872 <title>Running your virtual machine</title> 873 874 <para>To start a virtual machine, you have several options:<itemizedlist> 1375 1376 </itemizedlist> 1377 1378 <para> 1379 After completing the choices in the wizard, you will be able to 1380 install your operating system. 1381 </para> 1382 1383 </sect2> 1384 1385 <sect2 id="keyb_mouse_normal"> 1386 1387 <title>Capturing and Releasing Keyboard and Mouse</title> 1388 1389 <para> 1390 As of version 3.2, VirtualBox provides a virtual USB tablet 1391 device to new virtual machines through which mouse events are 1392 communicated to the guest operating system. If you are running a 1393 modern guest operating system that can handle such devices, 1394 mouse support may work out of the box without the mouse being 1395 <emphasis>captured</emphasis> as described below. See 1396 <xref linkend="settings-motherboard" />. 1397 </para> 1398 1399 <para> 1400 Otherwise, if the virtual machine only sees standard PS/2 mouse 1401 and keyboard devices, since the operating system in the virtual 1402 machine does not know that it is not running on a real computer, 1403 it expects to have exclusive control over your keyboard and 1404 mouse. But unless you are running the VM in full screen mode, 1405 your VM needs to share keyboard and mouse with other 1406 applications and possibly other VMs on your host. 1407 </para> 1408 1409 <para> 1410 After installing a guest operating system and before you install 1411 the Guest Additions, described later, either your VM or the rest 1412 of your computer can "own" the keyboard and the mouse. Both 1413 cannot own the keyboard and mouse at the same time. You will see 1414 a <emphasis>second</emphasis> mouse pointer which is always 1415 confined to the limits of the VM window. You activate the VM by 1416 clicking inside it. 1417 </para> 1418 1419 <para> 1420 To return ownership of keyboard and mouse to your host operating 1421 system, VirtualBox reserves a special key on your keyboard: the 1422 <emphasis role="bold">Host key</emphasis>. By default, this is 1423 the <emphasis>right Ctrl key</emphasis> on your keyboard. On a 1424 Mac host, the default Host key is the left Command key. You can 1425 change this default in the VirtualBox Global Settings. See 1426 <xref 1427 linkend="globalsettings" />. The current setting 1428 for the Host key is always displayed at the bottom right of your 1429 VM window. 1430 </para> 1431 1432 <mediaobject> 1433 <imageobject> 1434 <imagedata align="center" fileref="images/vm-hostkey.png" 1435 width="7cm" /> 1436 </imageobject> 1437 </mediaobject> 1438 1439 <para> 1440 This means the following: 1441 </para> 1442 1443 <itemizedlist> 1444 875 1445 <listitem> 876 <para>Double-click on its entry in the list within the Manager 877 window or</para> 1446 <para> 1447 Your <emphasis role="bold">keyboard</emphasis> is owned by 1448 the VM if the VM window on your host desktop has the 1449 keyboard focus. If you have many windows open in your guest 1450 operating system, the window that has the focus in your VM 1451 is used. This means that if you want to type within your VM, 1452 click on the title bar of your VM window first. 1453 </para> 1454 1455 <para> 1456 To release keyboard ownership, press the Host key. As 1457 explained above, this is typically the right Ctrl key. 1458 </para> 1459 1460 <para> 1461 Note that while the VM owns the keyboard, some key 1462 sequences, such as Alt-Tab, will no longer be seen by the 1463 host, but will go to the guest instead. After you press the 1464 Host key to reenable the host keyboard, all key presses will 1465 go through the host again, so that sequences such as Alt-Tab 1466 will no longer reach the guest. For technical reasons it may 1467 not be possible for the VM to get all keyboard input even 1468 when it does own the keyboard. Examples of this are the 1469 Ctrl-Alt-Del sequence on Windows hosts or single keys 1470 grabbed by other applications on X11 hosts like the GNOME 1471 desktop's "Control key highlights mouse pointer" 1472 functionality. 1473 </para> 878 1474 </listitem> 879 1475 880 1476 <listitem> 881 <para>select its entry in the list in the Manager window it and 882 press the "Start" button at the top or</para> 1477 <para> 1478 Your <emphasis role="bold">mouse</emphasis> is owned by the 1479 VM only after you have clicked in the VM window. The host 1480 mouse pointer will disappear, and your mouse will drive the 1481 guest's pointer instead of your normal mouse pointer. 1482 </para> 1483 1484 <para> 1485 Note that mouse ownership is independent of that of the 1486 keyboard. Even after you have clicked on a titlebar to be 1487 able to type into the VM window, your mouse is not 1488 necessarily owned by the VM yet. 1489 </para> 1490 1491 <para> 1492 To release ownership of your mouse by the VM, press the Host 1493 key. 1494 </para> 883 1495 </listitem> 884 1496 1497 </itemizedlist> 1498 1499 <para> 1500 As this behavior can be inconvenient, VirtualBox provides a set 1501 of tools and device drivers for guest systems called the 1502 VirtualBox Guest Additions which make VM keyboard and mouse 1503 operation a lot more seamless. Most importantly, the Additions 1504 will get rid of the second "guest" mouse pointer and make your 1505 host mouse pointer work directly in the guest. 1506 </para> 1507 1508 <para> 1509 This is described in <xref 1510 linkend="guestadditions" />. 1511 </para> 1512 1513 </sect2> 1514 1515 <sect2 id="specialcharacters"> 1516 1517 <title>Typing Special Characters</title> 1518 1519 <para> 1520 Operating systems expect certain key combinations to initiate 1521 certain procedures. Some of these key combinations may be 1522 difficult to enter into a virtual machine, as there are three 1523 candidates as to who receives keyboard input: the host operating 1524 system, VirtualBox, or the guest operating system. Which of 1525 these three receives keypresses depends on a number of factors, 1526 including the key itself. 1527 </para> 1528 1529 <itemizedlist> 1530 885 1531 <listitem> 886 <para>for virtual machines created with VirtualBox 4.0 or later, 887 navigate to the "VirtualBox VMs" folder in your system user's home 888 directory, find the subdirectory of the machine you want to start 889 and double-click on the machine settings file (with a 890 <computeroutput>.vbox</computeroutput> file extension).</para> 891 </listitem> 892 </itemizedlist></para> 893 894 <para>This opens up a new window, and the virtual machine which you 895 selected will boot up. Everything which would normally be seen on the 896 virtual system's monitor is shown in the window, as can be seen with the 897 image in <xref linkend="virtintro" />.</para> 898 899 <para>In general, you can use the virtual machine much like you would use 900 a real computer. There are couple of points worth mentioning 901 however.</para> 902 903 <sect2> 904 <title>Starting a new VM for the first time</title> 905 906 <para>When a VM gets started for the first time, another wizard -- the 907 <emphasis role="bold">"First Start Wizard"</emphasis> -- will pop up to 908 help you select an <emphasis role="bold">installation medium</emphasis>. 909 Since the VM is created empty, it would otherwise behave just like a 910 real computer with no operating system installed: it will do nothing and 911 display an error message that no bootable operating system was 912 found.</para> 913 914 <para>For this reason, the wizard helps you select a medium to install 915 an operating system from.</para> 916 917 <itemizedlist> 918 <listitem> 919 <para>If you have physical CD or DVD media from which you want to 920 install your guest operating system (e.g. in the case of a Windows 921 installation CD or DVD), put the media into your host's CD or DVD 922 drive.</para> 923 924 <para>Then, in the wizard's drop-down list of installation media, 925 select <emphasis role="bold">"Host drive"</emphasis> with the 926 correct drive letter (or, in the case of a Linux host, device file). 927 This will allow your VM to access the media in your host drive, and 928 you can proceed to install from there.</para> 929 </listitem> 930 931 <listitem> 932 <para>If you have downloaded installation media from the Internet in 933 the form of an ISO image file (most probably in the case of a Linux 934 distribution), you would normally burn this file to an empty CD or 935 DVD and proceed as just described. With VirtualBox however, you can 936 skip this step and mount the ISO file directly. VirtualBox will then 937 present this file as a CD or DVD-ROM drive to the virtual machine, 938 much like it does with virtual hard disk images.</para> 939 940 <para>For this case, the wizard's drop-down list contains a list of 941 installation media that were previously used with VirtualBox.</para> 942 943 <para>If your medium is not in the list (especially if you are using 944 VirtualBox for the first time), select the small folder icon next to 945 the drop-down list to bring up a standard file dialog, with which 946 you can pick the image file on your host disks.</para> 947 </listitem> 948 </itemizedlist> 949 950 <para>In both cases, after making the choices in the wizard, you will be 951 able to install your operating system.</para> 952 </sect2> 953 954 <sect2 id="keyb_mouse_normal"> 955 <title>Capturing and releasing keyboard and mouse</title> 956 957 <para>As of version 3.2, VirtualBox provides a virtual USB tablet device 958 to new virtual machines through which mouse events are communicated to 959 the guest operating system. As a result, if you are running a modern 960 guest operating system that can handle such devices, mouse support may 961 work out of the box without the mouse being "captured" as described 962 below; see <xref linkend="settings-motherboard" /> for more 963 information.</para> 964 965 <para>Otherwise, if the virtual machine only sees standard PS/2 mouse 966 and keyboard devices, since the operating system in the virtual machine 967 does not "know" that it is not running on a real computer, it expects to 968 have exclusive control over your keyboard and mouse. This is, however, 969 not the case since, unless you are running the VM in full screen mode, 970 your VM needs to share keyboard and mouse with other applications and 971 possibly other VMs on your host.</para> 972 973 <para>As a result, initially after installing a guest operating system 974 and before you install the Guest Additions (we will explain this in a 975 minute), only one of the two -- your VM or the rest of your computer -- 976 can "own" the keyboard and the mouse. You will see a 977 <emphasis>second</emphasis> mouse pointer which will always be confined 978 to the limits of the VM window. Basically, you activate the VM by 979 clicking inside it.</para> 980 981 <para>To return ownership of keyboard and mouse to your host operating 982 system, VirtualBox reserves a special key on your keyboard for itself: 983 the <emphasis role="bold">"host key".</emphasis> By default, this is the 984 <emphasis>right Control key</emphasis> on your keyboard; on a Mac host, 985 the default host key is the left Command key. You can change this 986 default in the VirtualBox Global Settings, see <xref 987 linkend="globalsettings" />. In any case, the current 988 setting for the host key is always displayed <emphasis>at the bottom 989 right of your VM window,</emphasis> should you have forgotten about 990 it:</para> 991 992 <para><mediaobject> 993 <imageobject> 994 <imagedata align="center" fileref="images/vm-hostkey.png" 995 width="7cm" /> 996 </imageobject> 997 </mediaobject>In detail, all this translates into the 998 following:</para> 999 1000 <para><itemizedlist> 1001 <listitem> 1002 <para>Your <emphasis role="bold">keyboard</emphasis> is owned by 1003 the VM if the VM window on your host desktop has the keyboard 1004 focus (and then, if you have many windows open in your guest 1005 operating system as well, the window that has the focus in your 1006 VM). This means that if you want to type within your VM, click on 1007 the title bar of your VM window first.</para> 1008 1009 <para>To release keyboard ownership, press the Host key (as 1010 explained above, typically the right Control key).</para> 1011 1012 <para>Note that while the VM owns the keyboard, some key sequences 1013 (like Alt-Tab for example) will no longer be seen by the host, but 1014 will go to the guest instead. After you press the host key to 1015 re-enable the host keyboard, all key presses will go through the 1016 host again, so that sequences like Alt-Tab will no longer reach 1017 the guest. For technical reasons it may not be possible for the 1018 VM to get all keyboard input even when it does own the keyboard. 1019 Examples of this are the Ctrl-Alt-Del sequence on Windows hosts 1020 or single keys grabbed by other applications on X11 hosts like 1021 the GNOME desktop's "Control key highlights mouse pointer" 1022 functionality.</para> 1023 </listitem> 1024 1025 <listitem> 1026 <para>Your <emphasis role="bold">mouse</emphasis> is owned by the 1027 VM only after you have clicked in the VM window. The host mouse 1028 pointer will disappear, and your mouse will drive the guest's 1029 pointer instead of your normal mouse pointer.</para> 1030 1031 <para>Note that mouse ownership is independent of that of the 1032 keyboard: even after you have clicked on a titlebar to be able to 1033 type into the VM window, your mouse is not necessarily owned by 1034 the VM yet.</para> 1035 1036 <para>To release ownership of your mouse by the VM, also press the 1037 Host key.</para> 1038 </listitem> 1039 </itemizedlist></para> 1040 1041 <para>As this behavior can be inconvenient, VirtualBox provides a set of 1042 tools and device drivers for guest systems called the "VirtualBox Guest 1043 Additions" which make VM keyboard and mouse operation a lot more 1044 seamless. Most importantly, the Additions will get rid of the second 1045 "guest" mouse pointer and make your host mouse pointer work directly in 1046 the guest.</para> 1047 1048 <para>This will be described later in <xref 1049 linkend="guestadditions" />.</para> 1050 </sect2> 1051 1052 <sect2 id="specialcharacters"> 1053 <title>Typing special characters</title> 1054 1055 <para>Operating systems expect certain key combinations to initiate 1056 certain procedures. Some of these key combinations may be difficult to 1057 enter into a virtual machine, as there are three candidates as to who 1058 receives keyboard input: the host operating system, VirtualBox, or the 1059 guest operating system. Who of these three receives keypresses depends 1060 on a number of factors, including the key itself.</para> 1061 1062 <itemizedlist> 1063 <listitem> 1064 <para>Host operating systems reserve certain key combinations for 1065 themselves. For example, it is impossible to enter the <emphasis 1066 role="bold">Ctrl+Alt+Delete</emphasis> combination if you want to 1067 reboot the guest operating system in your virtual machine, because 1068 this key combination is usually hard-wired into the host OS (both 1069 Windows and Linux intercept this), and pressing this key combination 1070 will therefore reboot your <emphasis>host</emphasis>.</para> 1071 1072 <para>Also, on Linux and Solaris hosts, which use the X Window 1073 System, the key combination <emphasis 1074 role="bold">Ctrl+Alt+Backspace</emphasis> normally resets the X 1075 server (to restart the entire graphical user interface in case it 1076 got stuck). As the X server intercepts this combination, pressing it 1077 will usually restart your <emphasis>host</emphasis> graphical user 1078 interface (and kill all running programs, including VirtualBox, in 1079 the process).</para> 1080 1081 <para>Third, on Linux hosts supporting virtual terminals, the key 1082 combination <emphasis role="bold">Ctrl+Alt+Fx</emphasis> (where Fx 1083 is one of the function keys from F1 to F12) normally allows to 1084 switch between virtual terminals. As with Ctrl+Alt+Delete, these 1085 combinations are intercepted by the host operating system and 1086 therefore always switch terminals on the 1087 <emphasis>host</emphasis>.</para> 1088 1089 <para>If, instead, you want to send these key combinations to the 1090 <emphasis>guest</emphasis> operating system in the virtual machine, 1091 you will need to use one of the following methods:</para> 1532 <para> 1533 Host operating systems reserve certain key combinations for 1534 themselves. For example, it is impossible to enter the 1535 <emphasis 1536 role="bold">Ctrl+Alt+Delete</emphasis> 1537 combination if you want to reboot the guest operating system 1538 in your virtual machine, because this key combination is 1539 usually hard-wired into the host OS, both Windows and Linux 1540 intercept this, and pressing this key combination will 1541 therefore reboot your <emphasis>host</emphasis>. 1542 </para> 1543 1544 <para> 1545 On Linux and Solaris hosts, which use the X Window System, 1546 the key combination 1547 <emphasis 1548 role="bold">Ctrl+Alt+Backspace</emphasis> 1549 normally resets the X server and restarts the entire 1550 graphical user interface. As the X server intercepts this 1551 combination, pressing it will usually restart your 1552 <emphasis>host</emphasis> graphical user interface and kill 1553 all running programs, including VirtualBox, in the process. 1554 </para> 1555 1556 <para> 1557 On Linux hosts supporting virtual terminals, the key 1558 combination <emphasis role="bold">Ctrl+Alt+Fx</emphasis>, 1559 where Fx is one of the function keys from F1 to F12, 1560 normally allows you to switch between virtual terminals. As 1561 with Ctrl+Alt+Delete, these combinations are intercepted by 1562 the host operating system and therefore always switch 1563 terminals on the <emphasis>host</emphasis>. 1564 </para> 1565 1566 <para> 1567 If, instead, you want to send these key combinations to the 1568 <emphasis>guest</emphasis> operating system in the virtual 1569 machine, you will need to use one of the following methods: 1570 </para> 1092 1571 1093 1572 <itemizedlist> 1573 1094 1574 <listitem> 1095 <para>Use the items in the "Input" → "Keyboard" menu of the 1096 virtual machine window. There you will find "Insert Ctrl+Alt+Delete" 1097 and "Ctrl+Alt+Backspace"; the latter will only have an effect with 1098 Linux or Solaris guests, however.</para> 1575 <para> 1576 Use the items in the 1577 <emphasis role="bold">Input</emphasis>, 1578 <emphasis role="bold">Keyboard</emphasis> menu of the 1579 virtual machine window. This menu includes the settings 1580 <emphasis role="bold">Insert Ctrl+Alt+Delete</emphasis> 1581 and <emphasis role="bold">Ctrl+Alt+Backspace</emphasis>. 1582 The latter will only have an effect with Linux or 1583 Solaris guests, however. 1584 </para> 1099 1585 </listitem> 1100 1586 1101 1587 <listitem> 1102 <para>Press special key combinations with the Host key (normally 1103 the right Control key), which VirtualBox will then translate for 1104 the virtual machine:<itemizedlist> 1105 <listitem> 1106 <para><emphasis role="bold">Host key + Del</emphasis> to 1107 send Ctrl+Alt+Del (to reboot the guest);</para> 1108 </listitem> 1109 1110 <listitem> 1111 <para><emphasis role="bold">Host key + 1112 Backspace</emphasis> to send Ctrl+Alt+Backspace (to 1113 restart the graphical user interface of a Linux or Solaris 1114 guest);</para> 1115 </listitem> 1116 1117 <listitem> 1118 <para><emphasis role="bold">Host key + F1</emphasis> (or 1119 other function keys) to simulate Ctrl+Alt+F1 (or other 1120 function keys, i.e. to switch between virtual terminals in 1121 a Linux guest).</para> 1122 </listitem> 1123 </itemizedlist></para> 1588 <para> 1589 Use special key combinations with the Host key, normally 1590 the right Control key. VirtualBox will then translate 1591 these key combinations for the virtual machine: 1592 </para> 1593 1594 <itemizedlist> 1595 1596 <listitem> 1597 <para> 1598 <emphasis role="bold">Host key + Del</emphasis> to 1599 send Ctrl+Alt+Del to reboot the guest. 1600 </para> 1601 </listitem> 1602 1603 <listitem> 1604 <para> 1605 <emphasis role="bold">Host key + 1606 Backspace</emphasis> to send Ctrl+Alt+Backspace to 1607 restart the graphical user interface of a Linux or 1608 Solaris guest. 1609 </para> 1610 </listitem> 1611 1612 <listitem> 1613 <para> 1614 <emphasis role="bold">Host key + Function 1615 key</emphasis>. For example, to simulate Ctrl+Alt+Fx 1616 to switch between virtual terminals in a Linux 1617 guest. 1618 </para> 1619 </listitem> 1620 1621 </itemizedlist> 1124 1622 </listitem> 1623 1125 1624 </itemizedlist> 1126 1625 </listitem> 1127 1626 1128 1627 <listitem> 1129 <para>For some other keyboard combinations such as <emphasis 1130 role="bold">Alt-Tab</emphasis> (to switch between open windows), 1131 VirtualBox allows you to configure whether these combinations will 1132 affect the host or the guest, if a virtual machine currently has the 1133 focus. This is a global setting for all virtual machines and can be 1134 found under "File" → "Preferences" → "Input" → 1135 "Auto-capture keyboard".</para> 1628 <para> 1629 For some other keyboard combinations such as 1630 <emphasis 1631 role="bold">Alt-Tab</emphasis> to switch 1632 between open windows, VirtualBox allows you to configure 1633 whether these combinations will affect the host or the 1634 guest, if a virtual machine currently has the focus. This is 1635 a global setting for all virtual machines and can be found 1636 under "File", "Preferences", "Input". 1637 </para> 1136 1638 </listitem> 1639 1137 1640 </itemizedlist> 1641 1138 1642 </sect2> 1139 1643 1140 <sect2> 1141 <title>Changing removable media</title> 1142 1143 <para>While a virtual machine is running, you can change removable media 1144 in the "Devices" menu of the VM's window. Here you can select in detail 1145 what VirtualBox presents to your VM as a CD, DVD, or floppy.</para> 1146 1147 <para>The settings are the same as would be available for the VM in the 1148 "Settings" dialog of the VirtualBox main window, but since that dialog 1149 is disabled while the VM is in the "running" or "saved" state, this 1150 extra menu saves you from having to shut down and restart the VM every 1151 time you want to change media.</para> 1152 1153 <para>Hence, in the "Devices" menu, VirtualBox allows you to attach the 1154 host drive to the guest or select a floppy or DVD image using the Disk 1155 Image Manager, all as described in <xref 1156 linkend="configbasics" />.</para> 1644 <sect2 id="intro-removable-media-changing"> 1645 1646 <title>Changing Removable Media</title> 1647 1648 <para> 1649 While a virtual machine is running, you can change removable 1650 media in the <emphasis role="bold">Devices</emphasis> menu of 1651 the VM's window. Here you can select in detail what VirtualBox 1652 presents to your VM as a CD, DVD, or floppy. 1653 </para> 1654 1655 <para> 1656 The settings are the same as would be available for the VM in 1657 the Settings dialog of the VirtualBox main window, but since 1658 that dialog is disabled while the VM is in the "running" or 1659 "saved" state, this extra menu saves you from having to shut 1660 down and restart the VM every time you want to change media. 1661 </para> 1662 1663 <para> 1664 Hence, in the Devices menu, VirtualBox allows you to attach the 1665 host drive to the guest or select a floppy or DVD image using 1666 the Disk Image Manager, as described in 1667 <xref 1668 linkend="configbasics" />. 1669 </para> 1670 1157 1671 </sect2> 1158 1672 1159 1673 <sect2 id="intro-resize-window"> 1160 <title>Resizing the machine's window</title> 1161 1162 <para>You can resize the virtual machine's window when it is running. In 1163 that case, one of three things will happen:<orderedlist> 1164 <listitem> 1165 <para>If you have <emphasis role="bold">"scale mode"</emphasis> 1166 enabled, then the virtual machine's screen will be scaled to the 1167 size of the window. This can be useful if you have many machines 1168 running and want to have a look at one of them while it is running 1169 in the background. Alternatively, it might be useful to enlarge a 1170 window if the VM's output screen is very small, for example 1171 because you are running an old operating system in it.</para> 1172 1173 <para>To enable scale mode, press the <emphasis role="bold">host 1174 key + C</emphasis>, or select "Scale mode" from the "Machine" menu 1175 in the VM window. To leave scale mode, press the host key + C 1176 again.</para> 1177 1178 <para>The aspect ratio of the guest screen is preserved when 1674 1675 <title>Resizing the Machine's Window</title> 1676 1677 <para> 1678 You can resize the virtual machine's window when it is running. 1679 In that case, one of three things will happen: 1680 </para> 1681 1682 <orderedlist> 1683 1684 <listitem> 1685 <para> 1686 If you have <emphasis role="bold">scale mode</emphasis> 1687 enabled, then the virtual machine's screen will be scaled to 1688 the size of the window. This can be useful if you have many 1689 machines running and want to have a look at one of them 1690 while it is running in the background. Alternatively, it 1691 might be useful to enlarge a window if the VM's output 1692 screen is very small, for example because you are running an 1693 old operating system in it. 1694 </para> 1695 1696 <para> 1697 To enable scale mode, press the <emphasis role="bold">Host 1698 key + C</emphasis>, or select <emphasis role="bold">Scale 1699 mode</emphasis> from the 1700 <emphasis role="bold">Machine</emphasis> menu in the VM 1701 window. To leave scale mode, press the Host key + C again. 1702 </para> 1703 1704 <para> 1705 The aspect ratio of the guest screen is preserved when 1179 1706 resizing the window. To ignore the aspect ratio, press Shift 1180 during the resize operation.</para> 1181 1182 <para>Please see <xref linkend="KnownIssues" /> for additional 1183 remarks.</para> 1184 </listitem> 1185 1186 <listitem> 1187 <para>If you have the Guest Additions installed and they support 1188 automatic <emphasis role="bold">resizing</emphasis>, the Guest 1189 Additions will automatically adjust the screen resolution of the 1190 guest operating system. For example, if you are running a Windows 1191 guest with a resolution of 1024x768 pixels and you then resize the 1192 VM window to make it 100 pixels wider, the Guest Additions will 1193 change the Windows display resolution to 1124x768.</para> 1194 1195 <para>Please see <xref linkend="guestadditions" /> for more 1196 information about the Guest Additions.</para> 1197 </listitem> 1198 1199 <listitem> 1200 <para>Otherwise, if the window is bigger than the VM's screen, the 1201 screen will be centered. If it is smaller, then scroll bars will 1202 be added to the machine window.</para> 1203 </listitem> 1204 </orderedlist></para> 1707 during the resize operation. 1708 </para> 1709 1710 <para> 1711 See <xref linkend="KnownIssues" /> for additional remarks. 1712 </para> 1713 </listitem> 1714 1715 <listitem> 1716 <para> 1717 If you have the Guest Additions installed and they support 1718 automatic <emphasis role="bold">resizing</emphasis>, the 1719 Guest Additions will automatically adjust the screen 1720 resolution of the guest operating system. For example, if 1721 you are running a Windows guest with a resolution of 1722 1024x768 pixels and you then resize the VM window to make it 1723 100 pixels wider, the Guest Additions will change the 1724 Windows display resolution to 1124x768. 1725 </para> 1726 1727 <para> 1728 See <xref linkend="guestadditions" />. 1729 </para> 1730 </listitem> 1731 1732 <listitem> 1733 <para> 1734 Otherwise, if the window is bigger than the VM's screen, the 1735 screen will be centered. If it is smaller, then scroll bars 1736 will be added to the machine window. 1737 </para> 1738 </listitem> 1739 1740 </orderedlist> 1741 1205 1742 </sect2> 1206 1743 1207 <sect2> 1208 <title>Saving the state of the machine</title> 1209 1210 <para>When you click on the "Close" button of your virtual machine 1211 window (at the top right of the window, just like you would close any 1212 other window on your system), VirtualBox asks you whether you want to 1213 "save" or "power off" the VM. (As a shortcut, you can also press the 1214 Host key together with "Q".)</para> 1215 1216 <para><mediaobject> 1744 <sect2 id="intro-save-machine-state"> 1745 1746 <title>Saving the State of the Machine</title> 1747 1748 <para> 1749 When you click on the <emphasis role="bold">Close</emphasis> 1750 button of your virtual machine window, at the top right of the 1751 window, just like you would close any other window on your 1752 system, VirtualBox asks you whether you want to save or power 1753 off the VM. As a shortcut, you can also press Host key + Q. 1754 </para> 1755 1756 <para> 1757 <mediaobject> 1217 1758 <imageobject> 1218 1759 <imagedata align="center" fileref="images/vm-close.png" 1219 1760 width="11cm" /> 1220 1761 </imageobject> 1221 </mediaobject>The difference between these three options is crucial. 1222 They mean:</para> 1762 </mediaobject> 1763 1764 The difference between the three options is crucial. They mean 1765 the following: 1766 </para> 1223 1767 1224 1768 <itemizedlist> 1769 1225 1770 <listitem> 1226 <para><emphasis role="bold">Save the machine state:</emphasis> With 1227 this option, VirtualBox "freezes" the virtual machine by completely 1228 saving its state to your local disk.</para> 1229 1230 <para>When you start the VM again later, you will find that the VM 1231 continues exactly where it was left off. All your programs will 1232 still be open, and your computer resumes operation. Saving the state 1233 of a virtual machine is thus in some ways similar to suspending a 1234 laptop computer (e.g. by closing its lid).</para> 1771 <para> 1772 <emphasis role="bold">Save the machine state:</emphasis> 1773 With this option, VirtualBox <emphasis>freezes</emphasis> 1774 the virtual machine by completely saving its state to your 1775 local disk. 1776 </para> 1777 1778 <para> 1779 When you start the VM again later, you will find that the VM 1780 continues exactly where it was left off. All your programs 1781 will still be open, and your computer resumes operation. 1782 Saving the state of a virtual machine is thus in some ways 1783 similar to suspending a laptop computer by closing its lid. 1784 </para> 1235 1785 </listitem> 1236 1786 1237 1787 <listitem> 1238 <para><emphasis role="bold">Send the shutdown signal.</emphasis> 1239 This will send an ACPI shutdown signal to the virtual machine, which 1240 has the same effect as if you had pressed the power button on a real 1241 computer. So long as the VM is running a fairly modern operating 1242 system, this should trigger a proper shutdown mechanism from within 1243 the VM.</para> 1788 <para> 1789 <emphasis role="bold">Send the shutdown signal.</emphasis> 1790 This will send an ACPI shutdown signal to the virtual 1791 machine, which has the same effect as if you had pressed the 1792 power button on a real computer. So long as the VM is 1793 running a fairly modern operating system, this should 1794 trigger a proper shutdown mechanism from within the VM. 1795 </para> 1244 1796 </listitem> 1245 1797 1246 1798 <listitem> 1247 <para><emphasis role="bold">Power off the machine:</emphasis> With 1248 this option, VirtualBox also stops running the virtual machine, but 1249 <emphasis>without</emphasis> saving its state.<warning> 1250 <para>This is equivalent to pulling the power plug on a real 1251 computer without shutting it down properly. If you start the 1252 machine again after powering it off, your operating system will 1253 have to reboot completely and may begin a lengthy check of its 1254 (virtual) system disks. As a result, this should not normally be 1255 done, since it can potentially cause data loss or an 1256 inconsistent state of the guest system on disk.</para> 1257 </warning></para> 1258 1259 <para>As an exception, if your virtual machine has any snapshots 1260 (see the next chapter), you can use this option to quickly <emphasis 1261 role="bold">restore the current snapshot</emphasis> of the virtual 1262 machine. In that case, powering off the machine will not disrupt its 1263 state, but any changes made since that snapshot was taken will be 1264 lost.</para> 1799 <para> 1800 <emphasis role="bold">Power off the machine:</emphasis> With 1801 this option, VirtualBox also stops running the virtual 1802 machine, but <emphasis>without</emphasis> saving its state. 1803 </para> 1804 1805 <warning> 1806 <para> 1807 This is equivalent to pulling the power plug on a real 1808 computer without shutting it down properly. If you start 1809 the machine again after powering it off, your operating 1810 system will have to reboot completely and may begin a 1811 lengthy check of its virtual system disks. As a result, 1812 this should not normally be done, since it can potentially 1813 cause data loss or an inconsistent state of the guest 1814 system on disk. 1815 </para> 1816 </warning> 1817 1818 <para> 1819 As an exception, if your virtual machine has any snapshots, 1820 see <xref linkend="snapshots"/>, you can use this option to 1821 quickly <emphasis 1822 role="bold">restore the current 1823 snapshot</emphasis> of the virtual machine. In that case, 1824 powering off the machine will not disrupt its state, but any 1825 changes made since that snapshot was taken will be lost. 1826 </para> 1265 1827 </listitem> 1828 1266 1829 </itemizedlist> 1267 1830 1268 <para>The <emphasis role="bold">"Discard"</emphasis> button in the 1269 VirtualBox Manager window discards a virtual machine's saved state. This 1270 has the same effect as powering it off, and the same warnings 1271 apply.</para> 1831 <para> 1832 The <emphasis role="bold">Discard</emphasis> button in the 1833 VirtualBox Manager window discards a virtual machine's saved 1834 state. This has the same effect as powering it off, and the same 1835 warnings apply. 1836 </para> 1837 1272 1838 </sect2> 1839 1273 1840 </sect1> 1274 1841 1275 1842 <sect1 id="gui-vmgroups"> 1276 <title>Using VM groups</title> 1277 1278 <para>VM groups enable the user to create ad hoc groups of VMs, and to 1279 manage and perform functions on them collectively, as well as individually. 1280 There are a number of features relating to groups:</para> 1843 1844 <title>Using VM Groups</title> 1845 1846 <para> 1847 VM groups enable the user to create ad hoc groups of VMs, and to 1848 manage and perform functions on them collectively, as well as 1849 individually. There are a number of features relating to groups. 1850 </para> 1281 1851 1282 1852 <orderedlist> 1853 1854 <listitem> 1855 <para> 1856 Create a group using the GUI. Do one of the following: 1857 </para> 1858 1859 <itemizedlist> 1860 1861 <listitem> 1862 <para> 1863 Drag one VM on top of another VM. 1864 </para> 1865 </listitem> 1866 1867 <listitem> 1868 <para> 1869 Select multiple VMs and select 1870 <emphasis role="bold">Group</emphasis> from the 1871 right-click menu, as shown in the following image. 1872 </para> 1873 1874 <para> 1875 <mediaobject> 1876 <imageobject> 1877 <imagedata align="center" fileref="images/vm-groups.png" 1878 width="10cm" /> 1879 </imageobject> 1880 </mediaobject> 1881 </para> 1882 </listitem> 1883 1884 </itemizedlist> 1885 </listitem> 1886 1887 <listitem> 1888 <para> 1889 Create and manage a group using the command line. Do one of 1890 the following: 1891 </para> 1892 1893 <itemizedlist> 1894 1895 <listitem> 1896 <para> 1897 Create a group and assign a VM. For example: 1898 </para> 1899 1900 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup"</screen> 1901 1902 <para> 1903 This command creates a group "TestGroup" and attaches the 1904 VM "Fred" to that group. 1905 </para> 1906 </listitem> 1907 1908 <listitem> 1909 <para> 1910 Detach a VM from the group, and delete the group if empty. 1911 For example: 1912 </para> 1913 1914 <screen>VBoxManage modifyvm "Fred" --groups ""</screen> 1915 1916 <para> 1917 This command detaches all groups from the VM "Fred" and 1918 deletes the empty group. 1919 </para> 1920 </listitem> 1921 1922 </itemizedlist> 1923 </listitem> 1924 1925 <listitem> 1926 <para> 1927 Create multiple groups. For example: 1928 </para> 1929 1930 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup,/TestGroup2"</screen> 1931 1932 <para> 1933 This command creates the groups "TestGroup" and "TestGroup2", 1934 if they do not exist, and attaches the VM "Fred" to both of 1935 them. 1936 </para> 1937 </listitem> 1938 1939 <listitem> 1940 <para> 1941 Create nested groups, having a group hierarchy. For example: 1942 </para> 1943 1944 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup/TestGroup2"</screen> 1945 1946 <para> 1947 This command attaches the VM "Fred" to the subgroup 1948 "TestGroup2" of the "TestGroup" group. 1949 </para> 1950 </listitem> 1951 1952 <listitem> 1953 <para> 1954 The following is a summary of group commands: Start, Pause, 1955 Reset, Close (save state, send shutdown signal, poweroff), 1956 Discard Saved State, Show in File System, Sort. 1957 </para> 1958 </listitem> 1959 1960 </orderedlist> 1961 1962 </sect1> 1963 1964 <sect1 id="snapshots"> 1965 1966 <title>Snapshots</title> 1967 1968 <para> 1969 With snapshots, you can save a particular state of a virtual 1970 machine for later use. At any later time, you can revert to that 1971 state, even though you may have changed the VM considerably since 1972 then. A snapshot of a virtual machine is thus similar to a machine 1973 in "saved" state, as described above, but there can be many of 1974 them, and these saved states are preserved. 1975 </para> 1976 1977 <para> 1978 You can see the snapshots of a virtual machine by first selecting 1979 a machine in the VirtualBox Manager and then clicking on the 1980 <emphasis role="bold">Snapshots</emphasis> button at the top 1981 right. Until you take a snapshot of the machine, the list of 1982 snapshots will be empty except for the 1983 <emphasis role="bold">Current State</emphasis> item, which 1984 represents the "now" point in the lifetime of the virtual machine. 1985 </para> 1986 1987 <sect2 id="snapshots-take-restore-delete"> 1988 1989 <title>Taking, Restoring, and Deleting Snapshots</title> 1990 1991 <para> 1992 There are three operations related to snapshots, as follows: 1993 </para> 1994 1995 <orderedlist> 1996 1283 1997 <listitem> 1284 1998 <para> 1285 Create a group using GUI option 1) Drag one VM on top of another 1286 VM. 1287 </para> 1288 <para> 1289 Create a group using GUI option 2) Select multiple VMs and select 1290 "Group" on the right click menu, as follows: 1291 </para> 1292 1293 <para><mediaobject> 1294 <imageobject> 1295 <imagedata align="center" fileref="images/vm-groups.png" 1296 width="10cm" /> 1297 </imageobject> 1298 </mediaobject></para> 1299 1999 <emphasis role="bold">Take a snapshot</emphasis>. This makes 2000 a copy of the machine's current state, to which you can go 2001 back at any given time later. 2002 </para> 2003 2004 <itemizedlist> 2005 2006 <listitem> 2007 <para> 2008 If your VM is currently running, select 2009 <emphasis role="bold">Take Snapshot</emphasis> from the 2010 <emphasis role="bold">Machine</emphasis> pull-down menu 2011 of the VM window. 2012 </para> 2013 </listitem> 2014 2015 <listitem> 2016 <para> 2017 If your VM is currently in either the Saved or the 2018 Powered Off state, as displayed next to the VM in the 2019 VirtualBox main window, click on the 2020 <emphasis role="bold">Snapshots </emphasis>tab on the 2021 top right of the main window. Do one of the following: 2022 </para> 2023 2024 <itemizedlist> 2025 2026 <listitem> 2027 <para> 2028 Click on the small camera icon. 2029 </para> 2030 </listitem> 2031 2032 <listitem> 2033 <para> 2034 Right-click on the <emphasis role="bold">Current 2035 State </emphasis>item in the list and select 2036 <emphasis role="bold">Take Snapshot</emphasis> from 2037 the menu. 2038 </para> 2039 </listitem> 2040 2041 </itemizedlist> 2042 </listitem> 2043 2044 </itemizedlist> 2045 2046 <para> 2047 In either case, a window is displayed prompting you for a 2048 snapshot name. This name is purely for reference purposes to 2049 help you remember the state of the snapshot. For example, a 2050 useful name would be "Fresh installation from scratch, no 2051 Guest Additions", or "Service Pack 3 just installed". You 2052 can also add a longer text in the Description field. 2053 </para> 2054 2055 <para> 2056 Your new snapshot will then appear in the snapshots list. 2057 Underneath your new snapshot, you will see an item called 2058 Current State, signifying that the current state of your VM 2059 is a variation based on the snapshot you took earlier. If 2060 you later take another snapshot, you will see that they will 2061 be displayed in sequence, and each subsequent snapshot is 2062 derived from an earlier one. 2063 </para> 2064 2065 <mediaobject> 2066 <imageobject> 2067 <imagedata align="center" fileref="images/snapshots-1.png" 2068 width="12cm" /> 2069 </imageobject> 2070 </mediaobject> 2071 2072 <para> 2073 VirtualBox imposes no limits on the number of snapshots you 2074 can take. The only practical limitation is disk space on 2075 your host. Each snapshot stores the state of the virtual 2076 machine and thus occupies some disk space. See 2077 <xref linkend="snapshots-contents"/> for details on what is 2078 stored in a snapshot. 2079 </para> 1300 2080 </listitem> 2081 1301 2082 <listitem> 1302 2083 <para> 1303 Command line option 1) Create a group and assign a VM: 1304 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup"</screen> 1305 creates a group "TestGroup" and attaches the VM "Fred" to that group. 1306 </para> 1307 <para> 1308 Command line option 2) Detach a VM from the group, and delete the group 1309 if empty: <screen>VBoxManage modifyvm "Fred" --groups ""</screen> 1310 It detaches all groups from the VM "Fred" and deletes the empty group. 2084 <emphasis role="bold">Restore a snapshot</emphasis>. You do 2085 this by right-clicking on any snapshot you have taken in the 2086 list of snapshots. By restoring a snapshot, you go back or 2087 forward in time. The current state of the machine is lost, 2088 and the machine is restored to the exact state it was in 2089 when the snapshot was taken. 2090 2091 <footnote> 2092 2093 <para> 2094 Both the terminology and the functionality of restoring 2095 snapshots has changed with VirtualBox 3.1. Before that 2096 version, it was only possible to go back to the very 2097 last snapshot taken -- not earlier ones, and the 2098 operation was called "Discard current state" instead of 2099 "Restore last snapshot". The limitation has been lifted 2100 with version 3.1. It is now possible to restore 2101 <emphasis>any</emphasis> snapshot, going backward and 2102 forward in time. 2103 </para> 2104 2105 </footnote> 2106 </para> 2107 2108 <note> 2109 <para> 2110 Restoring a snapshot will affect the virtual hard drives 2111 that are connected to your VM, as the entire state of the 2112 virtual hard drive will be reverted as well. This means 2113 also that all files that have been created since the 2114 snapshot and all other file changes <emphasis>will be 2115 lost. </emphasis>In order to prevent such data loss while 2116 still making use of the snapshot feature, it is possible 2117 to add a second hard drive in "write-through" mode using 2118 the <computeroutput>VBoxManage</computeroutput> interface 2119 and use it to store your data. As write-through hard 2120 drives are <emphasis>not</emphasis> included in snapshots, 2121 they remain unaltered when a machine is reverted. See 2122 <xref 2123 linkend="hdimagewrites" />. 2124 </para> 2125 </note> 2126 2127 <para> 2128 To avoid losing the current state when restoring a snapshot, 2129 you can create a new snapshot before the restore. 2130 </para> 2131 2132 <para> 2133 By restoring an earlier snapshot and taking more snapshots 2134 from there, it is even possible to create a kind of 2135 alternate reality and to switch between these different 2136 histories of the virtual machine. This can result in a whole 2137 tree of virtual machine snapshots, as shown in the 2138 screenshot above. 1311 2139 </para> 1312 2140 </listitem> 2141 1313 2142 <listitem> 1314 2143 <para> 1315 Multiple groups e.g.: 1316 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup,/TestGroup2"</screen> 1317 It creates the groups "TestGroup" and "TestGroup2" (if they don't exist yet) 1318 and attaches the VM "Fred" to both of them. 2144 <emphasis role="bold">Delete a snapshot</emphasis>. This 2145 does not affect the state of the virtual machine, but only 2146 releases the files on disk that VirtualBox used to store the 2147 snapshot data, thus freeing disk space. To delete a 2148 snapshot, right-click on it in the snapshots tree and select 2149 <emphasis role="bold">Delete</emphasis>. Snapshots can be 2150 deleted even while a machine is running. 2151 </para> 2152 2153 <note> 2154 <para> 2155 Whereas taking and restoring snapshots are fairly quick 2156 operations, deleting a snapshot can take a considerable 2157 amount of time since large amounts of data may need to be 2158 copied between several disk image files. Temporary disk 2159 files may also need large amounts of disk space while the 2160 operation is in progress. 2161 </para> 2162 </note> 2163 2164 <para> 2165 There are some situations which cannot be handled while a VM 2166 is running, and you will get an appropriate message that you 2167 need to perform this snapshot deletion when the VM is shut 2168 down. 1319 2169 </para> 1320 2170 </listitem> 2171 2172 </orderedlist> 2173 2174 </sect2> 2175 2176 <sect2 id="snapshots-contents"> 2177 2178 <title>Snapshot Contents</title> 2179 2180 <para> 2181 Think of a snapshot as a point in time that you have preserved. 2182 More formally, a snapshot consists of the following three 2183 things: 2184 </para> 2185 2186 <itemizedlist> 2187 1321 2188 <listitem> 1322 2189 <para> 1323 Nested groups -- hierarchy of groups e.g.: 1324 <screen>VBoxManage modifyvm "Fred" --groups "/TestGroup/TestGroup2"</screen> 1325 It attaches the VM "Fred" to the subgroup "TestGroup2" of the "TestGroup" 1326 group. 2190 The snapshot contains a complete copy of the VM settings, 2191 including the hardware configuration, so that when you 2192 restore a snapshot, the VM settings are restored as well. 2193 For example, if you changed the hard disk configuration or 2194 the VM's system settings, that change is undone when you 2195 restore the snapshot. 2196 </para> 2197 2198 <para> 2199 The copy of the settings is stored in the machine 2200 configuration, an XML text file, and thus occupies very 2201 little space. 1327 2202 </para> 1328 2203 </listitem> 2204 1329 2205 <listitem> 1330 2206 <para> 1331 Summary of group commands: Start, Pause, Reset, Close (save state, 1332 send shutdown signal, poweroff), Discard Saved State, Show in File 1333 System, Sort. 2207 The complete state of all the virtual disks attached to the 2208 machine is preserved. Going back to a snapshot means that 2209 all changes that had been made to the machine's disks, file 2210 by file and bit by bit, will be undone as well. Files that 2211 were since created will disappear, files that were deleted 2212 will be restored, changes to files will be reverted. 2213 </para> 2214 2215 <para> 2216 Strictly speaking, this is only true for virtual hard disks 2217 in "normal" mode. You can configure disks to behave 2218 differently with snapshots, see 2219 <xref 2220 linkend="hdimagewrites" />. Even more 2221 formally and technically correct, it is not the virtual disk 2222 itself that is restored when a snapshot is restored. 2223 Instead, when a snapshot is taken, VirtualBox creates 2224 differencing images which contain only the changes since the 2225 snapshot were taken, and when the snapshot is restored, 2226 VirtualBox throws away that differencing image, thus going 2227 back to the previous state. This is both faster and uses 2228 less disk space. For the details, which can be complex, see 2229 <xref linkend="diffimages" />. 2230 </para> 2231 2232 <para> 2233 Creating the differencing image as such does not occupy much 2234 space on the host disk initially, since the differencing 2235 image will initially be empty and grow dynamically later 2236 with each write operation to the disk. The longer you use 2237 the machine after having created the snapshot, however, the 2238 more the differencing image will grow in size. 1334 2239 </para> 1335 2240 </listitem> 1336 </orderedlist> 2241 2242 <listitem> 2243 <para> 2244 If you took a snapshot while the machine was running, the 2245 memory state of the machine is also saved in the snapshot. 2246 This is in the same way that memory can be saved when you 2247 close a VM window. When you restore such a snapshot, 2248 execution resumes at exactly the point when the snapshot was 2249 taken. 2250 </para> 2251 2252 <para> 2253 The memory state file can be as large as the memory size of 2254 the virtual machine and will therefore occupy quite some 2255 disk space as well. 2256 </para> 2257 </listitem> 2258 2259 </itemizedlist> 2260 2261 </sect2> 2262 1337 2263 </sect1> 1338 2264 1339 <sect1 id="snapshots"> 1340 <title>Snapshots</title> 1341 1342 <para>With snapshots, you can save a particular state of a virtual machine 1343 for later use. At any later time, you can revert to that state, even 1344 though you may have changed the VM considerably since then. A snapshot of 1345 a virtual machine is thus similar to a machine in "saved" state, as 1346 described above, but there can be many of them, and these saved states are 1347 preserved.</para> 1348 1349 <para>You can see the snapshots of a virtual machine by first selecting a 1350 machine in the VirtualBox Manager and then clicking on the "Snapshots" 1351 button at the top right. Until you take a snapshot of the machine, the 1352 list of snapshots will be empty except for the "Current state" item, which 1353 represents the "Now" point in the lifetime of the virtual machine.</para> 1354 1355 <sect2> 1356 <title>Taking, restoring and deleting snapshots</title> 1357 1358 <para>There are three operations related to snapshots:<orderedlist> 1359 <listitem> 1360 <para>You can <emphasis role="bold">take a snapshot</emphasis>. 1361 This makes a copy of the machine's current state, to which you can 1362 go back at any given time later.<itemizedlist> 1363 <listitem> 1364 <para>If your VM is currently running, select "Take 1365 snapshot" from the "Machine" pull-down menu of the VM 1366 window.</para> 1367 </listitem> 1368 1369 <listitem> 1370 <para>If your VM is currently in either the "saved" or the 1371 "powered off" state (as displayed next to the VM in the 1372 VirtualBox main window), click on the "Snapshots" tab on the 1373 top right of the main window, and then<itemizedlist> 1374 <listitem> 1375 <para>either on the small camera icon (for "Take 1376 snapshot") or</para> 1377 </listitem> 1378 1379 <listitem> 1380 <para>right-click on the "Current State" item in the 1381 list and select "Take snapshot" from the menu.</para> 1382 </listitem> 1383 </itemizedlist></para> 1384 </listitem> 1385 </itemizedlist></para> 1386 1387 <para>In any case, a window will pop up and ask you for a snapshot 1388 name. This name is purely for reference purposes to help you 1389 remember the state of the snapshot. For example, a useful name 1390 would be "Fresh installation from scratch, no Guest Additions", or 1391 "Service Pack 3 just installed". You can also add a longer text in 1392 the "Description" field if you want.</para> 1393 1394 <para>Your new snapshot will then appear in the snapshots list. 1395 Underneath your new snapshot, you will see an item called "Current 1396 state", signifying that the current state of your VM is a 1397 variation based on the snapshot you took earlier. If you later 1398 take another snapshot, you will see that they will be displayed in 1399 sequence, and each subsequent snapshot is derived from an earlier 1400 one:<mediaobject> 1401 <imageobject> 1402 <imagedata align="center" fileref="images/snapshots-1.png" 1403 width="12cm" /> 1404 </imageobject> 1405 </mediaobject></para> 1406 1407 <para>VirtualBox imposes no limits on the number of snapshots you 1408 can take. The only practical limitation is disk space on your 1409 host: each snapshot stores the state of the virtual machine and 1410 thus occupies some disk space. (See the next section for details 1411 on what exactly is stored in a snapshot.)</para> 1412 </listitem> 1413 1414 <listitem> 1415 <para>You can <emphasis role="bold">restore a snapshot</emphasis> 1416 by right-clicking on any snapshot you have taken in the list of 1417 snapshots. By restoring a snapshot, you go back (or forward) in 1418 time: the current state of the machine is lost, and the machine is 1419 restored to the exact state it was in when the snapshot was 1420 taken.<footnote> 1421 <para>Both the terminology and the functionality of restoring 1422 snapshots has changed with VirtualBox 3.1. Before that 1423 version, it was only possible to go back to the very last 1424 snapshot taken -- not earlier ones, and the operation was 1425 called "Discard current state" instead of "Restore last 1426 snapshot". The limitation has been lifted with version 3.1. It 1427 is now possible to restore <emphasis>any</emphasis> snapshot, 1428 going backward and forward in time.</para> 1429 </footnote></para> 1430 1431 <note> 1432 <para>Restoring a snapshot will affect the virtual hard drives 1433 that are connected to your VM, as the entire state of the 1434 virtual hard drive will be reverted as well. This means also 1435 that all files that have been created since the snapshot and all 1436 other file changes <emphasis>will be lost. </emphasis>In order 1437 to prevent such data loss while still making use of the snapshot 1438 feature, it is possible to add a second hard drive in 1439 "write-through" mode using the 1440 <computeroutput>VBoxManage</computeroutput> interface and use it 1441 to store your data. As write-through hard drives are 1442 <emphasis>not</emphasis> included in snapshots, they remain 1443 unaltered when a machine is reverted. See <xref 1444 linkend="hdimagewrites" os="" /> for details.</para> 1445 </note> 1446 1447 <para>To avoid losing the current state when restoring a snapshot, 1448 you can create a new snapshot before the restore.</para> 1449 1450 <para>By restoring an earlier snapshot and taking more snapshots 1451 from there, it is even possible to create a kind of alternate 1452 reality and to switch between these different histories of the 1453 virtual machine. This can result in a whole tree of virtual 1454 machine snapshots, as shown in the screenshot above.</para> 1455 </listitem> 1456 1457 <listitem> 1458 <para>You can also <emphasis role="bold">delete a 1459 snapshot</emphasis>, which will not affect the state of the 1460 virtual machine, but only release the files on disk that 1461 VirtualBox used to store the snapshot data, thus freeing disk 1462 space. To delete a snapshot, right-click on it in the snapshots 1463 tree and select "Delete". As of VirtualBox 3.2, snapshots can be 1464 deleted even while a machine is running.<note> 1465 <para>Whereas taking and restoring snapshots are fairly quick 1466 operations, deleting a snapshot can take a considerable amount 1467 of time since large amounts of data may need to be copied 1468 between several disk image files. Temporary disk files may 1469 also need large amounts of disk space while the operation is 1470 in progress.</para> 1471 </note></para> 1472 1473 <para>There are some situations which cannot be handled while a VM 1474 is running, and you will get an appropriate message that you need 1475 to perform this snapshot deletion when the VM is shut down.</para> 1476 </listitem> 1477 </orderedlist></para> 1478 </sect2> 1479 1480 <sect2> 1481 <title>Snapshot contents</title> 1482 1483 <para>Think of a snapshot as a point in time that you have preserved. 1484 More formally, a snapshot consists of three things:<itemizedlist> 1485 <listitem> 1486 <para>It contains a complete copy of the VM settings, including 1487 the hardware configuration, so that when you restore a snapshot, 1488 the VM settings are restored as well. (For example, if you changed 1489 the hard disk configuration or the VM's system settings, that 1490 change is undone when you restore the snapshot.)</para> 1491 1492 <para>The copy of the settings is stored in the machine 1493 configuration, an XML text file, and thus occupies very little 1494 space.</para> 1495 </listitem> 1496 1497 <listitem> 1498 <para>The complete state of all the virtual disks attached to the 1499 machine is preserved. Going back to a snapshot means that all 1500 changes that had been made to the machine's disks -- file by file, 1501 bit by bit -- will be undone as well. Files that were since 1502 created will disappear, files that were deleted will be restored, 1503 changes to files will be reverted.</para> 1504 1505 <para>(Strictly speaking, this is only true for virtual hard disks 1506 in "normal" mode. As mentioned above, you can configure disks to 1507 behave differently with snapshots; see <xref 1508 linkend="hdimagewrites" />. Even more formally and technically 1509 correct, it is not the virtual disk itself that is restored when a 1510 snapshot is restored. Instead, when a snapshot is taken, 1511 VirtualBox creates differencing images which contain only the 1512 changes since the snapshot were taken, and when the snapshot is 1513 restored, VirtualBox throws away that differencing image, thus 1514 going back to the previous state. This is both faster and uses 1515 less disk space. For the details, which can be complex, please see 1516 <xref linkend="diffimages" />.)</para> 1517 1518 <para>Creating the differencing image as such does not occupy much 1519 space on the host disk initially, since the differencing image 1520 will initially be empty (and grow dynamically later with each 1521 write operation to the disk). The longer you use the machine after 1522 having created the snapshot, however, the more the differencing 1523 image will grow in size.</para> 1524 </listitem> 1525 1526 <listitem> 1527 <para>Finally, if you took a snapshot while the machine was 1528 running, the memory state of the machine is also saved in the 1529 snapshot (the same way the memory can be saved when you close the 1530 VM window). When you restore such a snapshot, execution resumes at 1531 exactly the point when the snapshot was taken.</para> 1532 1533 <para>The memory state file can be as large as the memory size of 1534 the virtual machine and will therefore occupy quite some disk 1535 space as well.</para> 1536 </listitem> 1537 </itemizedlist></para> 1538 </sect2> 2265 <sect1 id="configbasics"> 2266 2267 <title>Virtual Machine Configuration</title> 2268 2269 <para> 2270 When you select a virtual machine from the list in the Manager 2271 window, you will see a summary of that machine's settings on the 2272 right. 2273 </para> 2274 2275 <para> 2276 Clicking on the <emphasis role="bold">Settings</emphasis> button 2277 in the toolbar at the top brings up a detailed window where you 2278 can configure many of the properties of the selected VM. But be 2279 careful. Even though it is possible to change all VM settings 2280 after installing a guest operating system, certain changes might 2281 prevent a guest operating system from functioning correctly if 2282 done after installation. 2283 </para> 2284 2285 <note> 2286 <para> 2287 The Settings button is disabled while a VM is either in the 2288 Running or Saved state. This is because the settings dialog 2289 allows you to change fundamental characteristics of the virtual 2290 computer that is created for your guest operating system, and 2291 this operating system may perform well when, for example, half 2292 of its memory is taken away. As a result, if the Settings button 2293 is disabled, shut down the current VM first. 2294 </para> 2295 </note> 2296 2297 <para> 2298 VirtualBox provides a wide range of parameters that can be changed 2299 for a virtual machine. The various settings that can be changed in 2300 the Settings window are described in detail in 2301 <xref 2302 linkend="BasicConcepts" />. Even more parameters are 2303 available with the VirtualBox command line interface. See 2304 <xref 2305 linkend="vboxmanage" />. 2306 </para> 2307 1539 2308 </sect1> 1540 2309 1541 <sect1 id="configbasics"> 1542 <title>Virtual machine configuration</title> 1543 1544 <para>When you select a virtual machine from the list in the Manager 1545 window, you will see a summary of that machine's settings on the 1546 right.</para> 1547 1548 <para>Clicking on the "Settings" button in the toolbar at the top brings 1549 up a detailed window where you can configure many of the properties of the 1550 selected VM. But be careful: even though it is possible to change all VM 1551 settings after installing a guest operating system, certain changes might 1552 prevent a guest operating system from functioning correctly if done after 1553 installation.</para> 1554 1555 <note> 1556 <para>The "Settings" button is disabled while a VM is either in the 1557 "running" or "saved" state. This is simply because the settings dialog 1558 allows you to change fundamental characteristics of the virtual computer 1559 that is created for your guest operating system, and this operating 1560 system may not take it well when, for example, half of its memory is 1561 taken away from under its feet. As a result, if the "Settings" button is 1562 disabled, shut down the current VM first.</para> 1563 </note> 1564 1565 <para>VirtualBox provides a plethora of parameters that can be changed for 1566 a virtual machine. The various settings that can be changed in the 1567 "Settings" window are described in detail in <xref 1568 linkend="BasicConcepts" />. Even more parameters are available with the 1569 VirtualBox command line interface; see <xref 1570 linkend="vboxmanage" />.</para> 2310 <sect1 id="intro-removing"> 2311 2312 <title>Removing Virtual Machines</title> 2313 2314 <para> 2315 To remove a virtual machine which you no longer need, right-click 2316 on it in the Manager's VM list and select 2317 <emphasis role="bold">Remove</emphasis>. 2318 </para> 2319 2320 <para> 2321 A confirmation window is displayed that allows you to select 2322 whether the machine should only be removed from the list of 2323 machines or whether the files associated with it should also be 2324 deleted. 2325 </para> 2326 2327 <para> 2328 The Remove menu item is disabled while a machine is running. 2329 </para> 2330 1571 2331 </sect1> 1572 2332 1573 <sect1>1574 <title>Removing virtual machines</title>1575 1576 <para>To remove a virtual machine which you no longer need, right-click on1577 it in the Manager's VM list select "Remove" from the context menu that1578 comes up.</para>1579 1580 <para>A confirmation window will come up that allows you to select whether1581 the machine should only be removed from the list of machines or whether1582 the files associated with it should also be deleted.</para>1583 1584 <para>The "Remove" menu item is disabled while a machine is1585 running.</para>1586 </sect1>1587 1588 2333 <sect1 id="clone"> 1589 <title>Cloning virtual machines</title> 1590 1591 <para>To experiment with a VM configuration, test different guest OS levels 1592 or to simply backup a VM, VirtualBox can create a full or a linked copy of 1593 an existing VM.<footnote><para>Cloning support was introduced with VirtualBox 1594 4.1.</para></footnote></para> 1595 1596 <para>A wizard will guide you through the clone process:</para> 2334 2335 <title>Cloning Virtual Machines</title> 2336 2337 <para> 2338 To experiment with a VM configuration, test different guest OS 2339 levels or to simply backup a VM, VirtualBox can create a full or a 2340 linked copy of an existing VM. 2341 2342 <footnote> 2343 2344 <para> 2345 Cloning support was introduced with VirtualBox 4.1. 2346 </para> 2347 2348 </footnote> 2349 </para> 2350 2351 <para> 2352 A wizard guides you through the clone process. 2353 </para> 1597 2354 1598 2355 <mediaobject> … … 1603 2360 </mediaobject> 1604 2361 1605 <para>This wizard can be invoked from the context menu of the Manager's VM 1606 list (select "Clone") or the "Snapshots" view of the selected VM. First 1607 choose a new name for the clone. When you select <emphasis 1608 role="bold">Reinitialize the MAC address of all network cards</emphasis> 1609 every network card get a new MAC address assigned. This is useful when 1610 both, the source VM and the cloned VM, have to operate on the same network. 1611 If you leave this unchanged, all network cards have the same MAC address 1612 like the one in the source VM. Depending on how you invoke the wizard you 1613 have different choices for the cloning operation. First you need to decide 1614 if the clone should be linked to the source VM or a fully independent clone 1615 should be created:</para> 2362 <para> 2363 This wizard can be started from the right-click menu of the 2364 Manager's VM list, by clicking 2365 <emphasis role="bold">Clone</emphasis>, or the 2366 <emphasis role="bold">Snapshots</emphasis> view of the selected 2367 VM. First choose a new name for the clone. When you select 2368 <emphasis 2369 role="bold">Reinitialize the MAC address of all 2370 network cards</emphasis> every network card get a new MAC address 2371 assigned. This is useful when both the source VM and the cloned VM 2372 have to operate on the same network. If you leave this unchanged, 2373 all network cards have the same MAC address like the one in the 2374 source VM. Depending on how you invoke the wizard you have 2375 different choices for the cloning operation. First you need to 2376 decide if the clone should be linked to the source VM or if a 2377 fully independent clone should be created. 2378 </para> 2379 1616 2380 <itemizedlist> 1617 <listitem> 1618 <para><emphasis role="bold">Full clone:</emphasis> In this mode all 1619 depending disk images are copied to the new VM folder. The clone 1620 can fully operate without the source VM. 1621 </para> 1622 </listitem> 1623 1624 <listitem> 1625 <para><emphasis role="bold">Linked clone:</emphasis> In this mode new 1626 differencing disk images are created where the parent disk images 1627 are the source disk images. If you selected the current state of 1628 the source VM as clone point, a new snapshot will be created 1629 implicitly. 1630 </para> 1631 </listitem> 2381 2382 <listitem> 2383 <para> 2384 <emphasis role="bold">Full clone:</emphasis> In this mode, all 2385 dependent disk images are copied to the new VM folder. The 2386 clone can fully operate without the source VM. 2387 </para> 2388 </listitem> 2389 2390 <listitem> 2391 <para> 2392 <emphasis role="bold">Linked clone:</emphasis> In this mode, 2393 new differencing disk images are created where the parent disk 2394 images are the source disk images. If you selected the current 2395 state of the source VM as clone point, a new snapshot will be 2396 created implicitly. 2397 </para> 2398 </listitem> 2399 1632 2400 </itemizedlist> 1633 2401 1634 <para>After selecting the clone mode, you need to decide about what exactly 1635 should be cloned. You can always create a clone of the <emphasis 1636 role="italic">current state</emphasis> only or <emphasis 1637 role="italic">all</emphasis>. When you select <emphasis 1638 role="italic">all</emphasis>, the current state and in addition all 1639 snapshots are cloned. Have you started from a snapshot which has additional 1640 children, you can also clone the <emphasis role="italic">current state and 1641 all children</emphasis>. This creates a clone starting with this 1642 snapshot and includes all child snapshots.</para> 1643 1644 <para>The clone operation itself can be a lengthy operation depending on 1645 the size and count of the attached disk images. Also keep in mind that 1646 every snapshot has differencing disk images attached, which need to be 1647 cloned as well.</para> 1648 1649 <para>The "Clone" menu item is disabled while a machine is running.</para> 1650 1651 <para>For how to clone a VM at the command line, please see <xref 1652 linkend="vboxmanage-clonevm" />.</para> 2402 <para> 2403 After selecting the clone mode, you need to decide what exactly 2404 should be cloned. You can always create a clone of the 2405 <emphasis>current state</emphasis> only or 2406 <emphasis>all</emphasis>. When you select 2407 <emphasis>all</emphasis>, the current state and in addition all 2408 snapshots are cloned. If you started from a snapshot which has 2409 additional children, you can also clone the 2410 <emphasis role="italic">current state and all children</emphasis>. 2411 This creates a clone starting with this snapshot and includes all 2412 child snapshots. 2413 </para> 2414 2415 <para> 2416 The clone operation itself can be a lengthy operation depending on 2417 the size and count of the attached disk images. Also keep in mind 2418 that every snapshot has differencing disk images attached, which 2419 need to be cloned as well. 2420 </para> 2421 2422 <para> 2423 The Clone menu item is disabled while a machine is running. 2424 </para> 2425 2426 <para> 2427 To clone a VM from the command line, see 2428 <xref 2429 linkend="vboxmanage-clonevm" />. 2430 </para> 2431 1653 2432 </sect1> 1654 2433 1655 2434 <sect1 id="ovf"> 1656 <title>Importing and exporting virtual machines</title> 1657 1658 <para>VirtualBox can import and export virtual machines in the 1659 industry-standard Open Virtualization Format (OVF).<footnote> 1660 <para>OVF support was originally introduced with VirtualBox 2.2 and 1661 has seen major improvements with every version since.</para> 1662 </footnote></para> 1663 1664 <para>OVF is a cross-platform standard supported by many virtualization 1665 products which allows for creating ready-made virtual machines that can 1666 then be imported into a virtualizer such as VirtualBox. VirtualBox makes 1667 OVF import and export easy to access and supports it from the Manager 1668 window as well as its command-line interface. This allows for packaging 1669 so-called <emphasis role="bold">virtual appliances</emphasis>: disk images 1670 together with configuration settings that can be distributed easily. This 1671 way one can offer complete ready-to-use software packages (operating 1672 systems with applications) that need no configuration or installation 1673 except for importing into VirtualBox.<note> 1674 <para>The OVF standard is complex, and support in VirtualBox is an 1675 ongoing process. In particular, no guarantee is made that VirtualBox 1676 supports all appliances created by other virtualization software. For 1677 a list of known limitations, please see <xref 1678 linkend="KnownIssues" />.</para> 1679 </note></para> 1680 1681 <para>Appliances in OVF format can appear in two variants:<orderedlist> 1682 <listitem> 1683 <para>They can come in several files, as one or several disk images, 1684 typically in the widely-used VMDK format (see <xref 1685 linkend="vdidetails" />) and a textual description file in an XML 1686 dialect with an <computeroutput>.ovf</computeroutput> extension. 1687 These files must then reside in the same directory for VirtualBox to 1688 be able to import them.</para> 1689 </listitem> 1690 1691 <listitem> 1692 <para>Alternatively, the above files can be packed together into a 2435 2436 <title>Importing and Exporting Virtual Machines</title> 2437 2438 <para> 2439 VirtualBox can import and export virtual machines in the 2440 industry-standard Open Virtualization Format (OVF). 2441 2442 <footnote> 2443 2444 <para> 2445 OVF support was originally introduced with VirtualBox 2.2 and 2446 has seen major improvements with every version since. 2447 </para> 2448 2449 </footnote> 2450 </para> 2451 2452 <para> 2453 OVF is a cross-platform standard supported by many virtualization 2454 products which allows for creating ready-made virtual machines 2455 that can then be imported into a virtualizer such as VirtualBox. 2456 VirtualBox makes OVF import and export easy to access and supports 2457 it from the Manager window as well as its command-line interface. 2458 This allows for packaging so-called <emphasis>virtual 2459 appliances</emphasis>. These are disk images, together with 2460 configuration settings that can be distributed easily. This way 2461 one can offer complete ready-to-use software packages, including 2462 operating systems with applications, that need no configuration or 2463 installation except for importing into VirtualBox. 2464 </para> 2465 2466 <note> 2467 <para> 2468 The OVF standard is complex, and support in VirtualBox is an 2469 ongoing process. In particular, no guarantee is made that 2470 VirtualBox supports all appliances created by other 2471 virtualization software. For a list of known limitations, see 2472 <xref 2473 linkend="KnownIssues" />. 2474 </para> 2475 </note> 2476 2477 <para> 2478 Appliances in OVF format can appear in the following variants: 2479 </para> 2480 2481 <itemizedlist> 2482 2483 <listitem> 2484 <para> 2485 They can come in several files, as one or several disk images, 2486 typically in the widely-used VMDK format. See 2487 <xref 2488 linkend="vdidetails" />. They also include a 2489 textual description file in an XML dialect with an 2490 <computeroutput>.ovf</computeroutput> extension. These files 2491 must then reside in the same directory for VirtualBox to be 2492 able to import them. 2493 </para> 2494 </listitem> 2495 2496 <listitem> 2497 <para> 2498 Alternatively, the above files can be packed together into a 1693 2499 single archive file, typically with an 1694 <computeroutput>.ova</computeroutput> extension. (Such archive files 1695 use a variant of the TAR archive format and can therefore be 1696 unpacked outside of VirtualBox with any utility that can unpack 1697 standard TAR files.)</para> 1698 </listitem> 1699 </orderedlist></para> 1700 1701 <para>To <emphasis role="bold">import</emphasis> an appliance in one of 1702 the above formats, simply double-click on the OVF/OVA file.<footnote> 1703 <para>Starting with version 4.0, VirtualBox creates file type 1704 associations for OVF and OVA files on your host operating 1705 system.</para> 1706 </footnote> Alternatively, select "File" → "Import appliance" from 1707 the Manager window. In the file dialog that comes up, navigate to the file 1708 with either the <computeroutput>.ovf</computeroutput> or the 1709 <computeroutput>.ova</computeroutput> file extension.</para> 1710 1711 <para>If VirtualBox can handle the file, a dialog similar to the following 1712 will appear:</para> 1713 1714 <para><mediaobject> 1715 <imageobject> 1716 <imagedata align="center" fileref="images/ovf-import.png" 2500 <computeroutput>.ova</computeroutput> extension. Such archive 2501 files use a variant of the TAR archive format and can 2502 therefore be unpacked outside of VirtualBox with any utility 2503 that can unpack standard TAR files. 2504 </para> 2505 </listitem> 2506 2507 </itemizedlist> 2508 2509 <para> 2510 To <emphasis role="bold">import an appliance</emphasis> in one of 2511 the above formats, double-click on the OVF/OVA file. 2512 2513 <footnote> 2514 2515 <para> 2516 Starting with version 4.0, VirtualBox creates file type 2517 associations for OVF and OVA files on your host operating 2518 system. 2519 </para> 2520 2521 </footnote> 2522 2523 Alternatively, select <emphasis role="bold">File</emphasis>, 2524 <emphasis role="bold">Import Appliance</emphasis> from the Manager 2525 window. In the displayed file dialog, navigate to the file with 2526 either the <computeroutput>.ovf</computeroutput> or the 2527 <computeroutput>.ova</computeroutput> file extension. 2528 </para> 2529 2530 <para> 2531 If VirtualBox can handle the file, a dialog similar to the 2532 following will appear: 2533 </para> 2534 2535 <mediaobject> 2536 <imageobject> 2537 <imagedata align="center" fileref="images/ovf-import.png" 1717 2538 width="12cm" /> 1718 </imageobject> 1719 </mediaobject>This presents the virtual machines described in the OVF 1720 file and allows you to change the virtual machine settings by 1721 double-clicking on the description items. Once you click on <emphasis 1722 role="bold">"Import"</emphasis>, VirtualBox will copy the disk images and 1723 create local virtual machines with the settings described in the dialog. 1724 These will then show up in the Manager's list of virtual machines.</para> 1725 1726 <para>Note that since disk images tend to be big, and VMDK images that 1727 come with virtual appliances are typically shipped in a special compressed 1728 format that is unsuitable for being used by virtual machines directly, the 1729 images will need to be unpacked and copied first, which can take a few 1730 minutes.</para> 1731 1732 <para>For how to import an image at the command line, please see <xref 1733 linkend="vboxmanage-import" />.</para> 1734 1735 <para>Conversely, to <emphasis role="bold">export</emphasis> virtual 1736 machines that you already have in VirtualBox, select "File" → "Export 1737 appliance". A different dialog window shows up that allows you to combine 1738 several virtual machines into an OVF appliance. Then, select the target 1739 location where the target files should be stored, and the conversion 1740 process begins. This can again take a while.</para> 1741 1742 <para>For how to export an image at the command line, please see <xref 1743 linkend="vboxmanage-export" />.<note> 1744 <para>OVF cannot describe snapshots that were taken for a virtual 2539 </imageobject> 2540 </mediaobject> 2541 2542 <para> 2543 This presents the virtual machines described in the OVF file and 2544 allows you to change the virtual machine settings by 2545 double-clicking on the description items. Once you click on 2546 <emphasis 2547 role="bold">"Import"</emphasis>, VirtualBox will 2548 copy the disk images and create local virtual machines with the 2549 settings described in the dialog. These will then show up in the 2550 Manager's list of virtual machines. 2551 </para> 2552 2553 <para> 2554 Note that since disk images tend to be big, and VMDK images that 2555 come with virtual appliances are typically shipped in a special 2556 compressed format that is unsuitable for being used by virtual 2557 machines directly, the images will need to be unpacked and copied 2558 first, which can take a few minutes. 2559 </para> 2560 2561 <para> 2562 To import an image using the command line, see 2563 <xref 2564 linkend="vboxmanage-import" />. 2565 </para> 2566 2567 <para> 2568 To <emphasis role="bold">export virtual machines</emphasis> that 2569 you already have in VirtualBox, select 2570 <emphasis role="bold">File</emphasis>, <emphasis role="bold"> 2571 Export Appliance</emphasis>. A dialog window is displayed that 2572 enables you to combine several virtual machines into an OVF 2573 appliance. Select the target location where the target files 2574 should be stored, and the conversion process begins. This can take 2575 a while. 2576 </para> 2577 2578 <para> 2579 To export an image using the command line, see 2580 <xref 2581 linkend="vboxmanage-export" />. 2582 </para> 2583 2584 <note> 2585 <para> 2586 OVF cannot describe snapshots that were taken for a virtual 1745 2587 machine. As a result, when you export a virtual machine that has 1746 snapshots, only the current state of the machine will be exported, and 1747 the disk images in the export will have a "flattened" state identical 1748 to the current state of the virtual machine.</para> 1749 </note></para> 2588 snapshots, only the current state of the machine will be 2589 exported. The disk images in the export will have a "flattened" 2590 state identical to the current state of the virtual machine. 2591 </para> 2592 </note> 2593 1750 2594 </sect1> 1751 2595 1752 2596 <sect1 id="globalsettings"> 2597 1753 2598 <title>Global Settings</title> 1754 <para>The global settings dialog can be reached through the 1755 <emphasis role="bold">File</emphasis> menu, selecting the 1756 <emphasis role="bold">Preferences...</emphasis> item. It offers a selection 1757 of settings which apply to all virtual machines of the current user or in 1758 the case of <emphasis role="bold">Extensions</emphasis> to the entire 1759 system: 1760 <orderedlist> 1761 <listitem> 1762 <para><emphasis role="bold">General</emphasis> Enables the user to 1763 specify the default folder/directory for VM files, and the VRDP 1764 Authentication Library.</para> 1765 </listitem> 1766 <listitem> 1767 <para><emphasis role="bold">Input</emphasis> Enables the user to 1768 specify the Host Key. It identifies the key that toggles whether the 1769 cursor is in the focus of the VM or the Host operating system 1770 windows (see <xref linkend="keyb_mouse_normal"/>) and which is also 1771 used to trigger certain VM actions (see <xref 1772 linkend="specialcharacters"/>)</para> 1773 </listitem> 1774 <listitem> 1775 <para><emphasis role="bold">Update</emphasis> Enables the user 1776 to specify various settings for Automatic Updates.</para> 1777 </listitem> 1778 <listitem> 1779 <para><emphasis role="bold">Language</emphasis> Enables the user to 1780 specify the GUI language.</para> 1781 </listitem> 1782 <listitem> 1783 <para><emphasis role="bold">Display</emphasis> Enables the user to 1784 specify the screen resolution, and its width and height.</para> 1785 </listitem> 1786 <listitem> 1787 <para><emphasis role="bold">Network</emphasis> Enables the user to 1788 configure the details of Host Only Networks.</para> 1789 </listitem> 1790 <listitem> 1791 <para><emphasis role="bold">Extensions</emphasis> Enables the user 1792 to list and manage the installed extension packages.</para> 1793 </listitem> 1794 <listitem> 1795 <para><emphasis role="bold">Proxy</emphasis> Enables the user to 1796 configure a HTTP Proxy Server.</para> 1797 </listitem> 1798 </orderedlist></para> 2599 2600 <para> 2601 The Global Settings dialog can be displayed using the 2602 <emphasis role="bold">File</emphasis> menu, by clicking the 2603 <emphasis role="bold">Preferences</emphasis> item. This dialog 2604 offers a selection of settings, most of which apply to all virtual 2605 machines of the current user. The 2606 <emphasis role="bold">Extensions</emphasis> option applies to the 2607 entire system. 2608 </para> 2609 2610 <para> 2611 The following settings are available: 2612 </para> 2613 2614 <itemizedlist> 2615 2616 <listitem> 2617 <para> 2618 <emphasis role="bold">General.</emphasis> Enables the user to 2619 specify the default folder/directory for VM files, and the 2620 VRDP Authentication Library. 2621 </para> 2622 </listitem> 2623 2624 <listitem> 2625 <para> 2626 <emphasis role="bold">Input.</emphasis> Enables the user to 2627 specify the Host yey. It identifies the key that toggles 2628 whether the cursor is in the focus of the VM or the Host 2629 operating system windows, see 2630 <xref linkend="keyb_mouse_normal"/>, and which is also used to 2631 trigger certain VM actions, see 2632 <xref 2633 linkend="specialcharacters"/>. 2634 </para> 2635 </listitem> 2636 2637 <listitem> 2638 <para> 2639 <emphasis role="bold">Update.</emphasis> Enables the user to 2640 specify various settings for Automatic Updates. 2641 </para> 2642 </listitem> 2643 2644 <listitem> 2645 <para> 2646 <emphasis role="bold">Language.</emphasis> Enables the user to 2647 specify the GUI language. 2648 </para> 2649 </listitem> 2650 2651 <listitem> 2652 <para> 2653 <emphasis role="bold">Display.</emphasis> Enables the user to 2654 specify the screen resolution, and its width and height. 2655 </para> 2656 </listitem> 2657 2658 <listitem> 2659 <para> 2660 <emphasis role="bold">Network.</emphasis> Enables the user to 2661 configure the details of Host Only Networks. 2662 </para> 2663 </listitem> 2664 2665 <listitem> 2666 <para> 2667 <emphasis role="bold">Extensions.</emphasis> Enables the user 2668 to list and manage the installed extension packages. 2669 </para> 2670 </listitem> 2671 2672 <listitem> 2673 <para> 2674 <emphasis role="bold">Proxy.</emphasis> Enables the user to 2675 configure a HTTP Proxy Server. 2676 </para> 2677 </listitem> 2678 2679 </itemizedlist> 2680 1799 2681 </sect1> 1800 2682 1801 2683 <sect1 id="frontends"> 1802 <title>Alternative front-ends</title> 1803 1804 <para>As briefly mentioned in <xref linkend="features-overview" />, 1805 VirtualBox has a very flexible internal design that allows for using 1806 multiple interfaces to control the same virtual machines. To illustrate, 1807 you can, for example, start a virtual machine with the VirtualBox Manager 1808 window and then stop it from the command line. With VirtualBox's support 1809 for the Remote Desktop Protocol (RDP), you can even run virtual machines 1810 remotely on a headless server and have all the graphical output redirected 1811 over the network.</para> 1812 1813 <para>In detail, the following front-ends are shipped in the standard 1814 VirtualBox package:</para> 1815 1816 <para><orderedlist> 1817 <listitem> 1818 <para><computeroutput>VirtualBox</computeroutput> is the VirtualBox 1819 Manager. This graphical user interface uses the Qt toolkit; most of 1820 this User Manual is dedicated to describing it. While this is the 1821 easiest to use, some of the more advanced VirtualBox features are 1822 kept away from it to keep it simple.</para> 1823 </listitem> 1824 1825 <listitem> 1826 <para><computeroutput>VBoxManage</computeroutput> is our 1827 command-line interface for automated and very detailed control of 1828 every aspect of VirtualBox. It is described in <xref 1829 linkend="vboxmanage" />.</para> 1830 </listitem> 1831 1832 <listitem> 1833 <para><computeroutput>VBoxSDL</computeroutput> is an alternative, 1834 simple graphical front-end with an intentionally limited feature 1835 set, designed to only display virtual machines that are controlled 1836 in detail with <computeroutput>VBoxManage</computeroutput>. This is 1837 interesting for business environments where displaying all the bells 1838 and whistles of the full GUI is not feasible. 1839 <computeroutput>VBoxSDL</computeroutput> is described in <xref 1840 linkend="vboxsdl" />.</para> 1841 </listitem> 1842 1843 <listitem> 1844 <para>Finally, <computeroutput>VBoxHeadless</computeroutput> is yet 1845 another front-end that produces no visible output on the host at 1846 all, but can act as a RDP server if the VirtualBox Remote 1847 Desktop Extension (VRDE) is installed and enabled for the VM. 1848 As opposed to the other 1849 graphical interfaces, the headless front-end requires no graphics 1850 support. This is useful, for example, if you want to host your 1851 virtual machines on a headless Linux server that has no X Window 1852 system installed. For details, see <xref 1853 linkend="vboxheadless" />.</para> 1854 </listitem> 1855 </orderedlist>If the above front-ends still do not satisfy your 1856 particular needs, it is possible to create yet another front-end to the 1857 complex virtualization engine that is the core of VirtualBox, as the 1858 VirtualBox core neatly exposes all of its features in a clean API; please 1859 refer to <xref linkend="VirtualBoxAPI" />.</para> 2684 2685 <title>Alternative Front-Ends</title> 2686 2687 <para> 2688 As briefly mentioned in <xref linkend="features-overview" />, 2689 VirtualBox has a very flexible internal design that allows for 2690 using multiple interfaces to control the same virtual machines. 2691 For example, you can start a virtual machine with the VirtualBox 2692 Manager window and then stop it from the command line. With 2693 VirtualBox's support for the Remote Desktop Protocol (RDP), you 2694 can even run virtual machines remotely on a headless server and 2695 have all the graphical output redirected over the network. 2696 </para> 2697 2698 <para> 2699 The following front-ends are shipped in the standard VirtualBox 2700 package: 2701 </para> 2702 2703 <itemizedlist> 2704 2705 <listitem> 2706 <para> 2707 <computeroutput>VirtualBox</computeroutput> is the VirtualBox 2708 Manager. This graphical user interface uses the Qt toolkit, 2709 and is described throughout this User Manual. While this is 2710 the simplest and easiest front-end to use, some of the more 2711 advanced VirtualBox features are not included. 2712 </para> 2713 </listitem> 2714 2715 <listitem> 2716 <para> 2717 <computeroutput>VBoxManage</computeroutput> is a command-line 2718 interface for automated and detailed control of every aspect 2719 of VirtualBox. See <xref 2720 linkend="vboxmanage" />. 2721 </para> 2722 </listitem> 2723 2724 <listitem> 2725 <para> 2726 <computeroutput>VBoxSDL</computeroutput> is an alternative, 2727 simple graphical front-end with an intentionally limited 2728 feature set, designed to only display virtual machines that 2729 are controlled in detail with 2730 <computeroutput>VBoxManage</computeroutput>. This can be used 2731 in environments where displaying all the features of the full 2732 GUI is not feasible. See <xref 2733 linkend="vboxsdl" />. 2734 </para> 2735 </listitem> 2736 2737 <listitem> 2738 <para> 2739 <computeroutput>VBoxHeadless</computeroutput> is a front-end 2740 that produces no visible output on the host at all, but can 2741 act as a RDP server if the VirtualBox Remote Desktop Extension 2742 (VRDE) is installed and enabled for the VM. As opposed to the 2743 other graphical interfaces, the headless front-end requires no 2744 graphics support. This is useful, for example, if you want to 2745 host your virtual machines on a headless Linux server that has 2746 no X Window system installed. See 2747 <xref 2748 linkend="vboxheadless" />. 2749 </para> 2750 </listitem> 2751 2752 </itemizedlist> 2753 2754 <para> 2755 If the above front-ends still do not satisfy your particular 2756 needs, it is possible to create yet another front-end to the 2757 complex virtualization engine that is the core of VirtualBox, as 2758 the VirtualBox core neatly exposes all of its features in a clean 2759 API. See <xref linkend="VirtualBoxAPI" />. 2760 </para> 2761 1860 2762 </sect1> 2763 1861 2764 </chapter> -
trunk/doc/manual/en_US/user_KnownIssues.xml
r71291 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="KnownIssues"> 5 <title>Known limitations</title> 6 <sect1 id="ExperimentalFeatures"> 7 <title>Experimental Features</title> 8 <para>Some VirtualBox features are labeled as experimental. Such 9 features are provided on an "as-is" basis and are not formally 10 supported. However, feedback and suggestions about such features are 11 welcome. A comprehensive list of experimental features follows:</para> 8 9 <title>Known Limitations</title> 10 11 <sect1 id="ExperimentalFeatures"> 12 13 <title>Experimental Features</title> 14 15 <para> 16 Some VirtualBox features are labeled as experimental. Such 17 features are provided on an "as-is" basis and are not formally 18 supported. However, feedback and suggestions about such features 19 are welcome. A comprehensive list of experimental features is as 20 follows: 21 </para> 22 23 <itemizedlist> 24 25 <listitem> 26 <para> 27 Hardware 3D acceleration support for Windows, Linux, and 28 Solaris guests 29 </para> 30 </listitem> 31 32 <listitem> 33 <para> 34 Hardware 2D video playback acceleration support for Windows 35 guests 36 </para> 37 </listitem> 38 39 <listitem> 40 <para> 41 PCI pass-through (Linux hosts only) 42 </para> 43 </listitem> 44 45 <listitem> 46 <para> 47 Mac OS X guests (Mac OS X hosts only) 48 </para> 49 </listitem> 50 51 <listitem> 52 <para> 53 ICH9 chipset emulation 54 </para> 55 </listitem> 56 57 <listitem> 58 <para> 59 EFI firmware 60 </para> 61 </listitem> 62 63 <listitem> 64 <para> 65 Host CD/DVD drive pass-through 66 </para> 67 </listitem> 68 69 <listitem> 70 <para> 71 Support of iSCSI via internal networking 72 </para> 73 </listitem> 74 75 </itemizedlist> 76 77 </sect1> 78 79 <sect1 id="KnownProblems"> 80 81 <title>Known Issues</title> 82 83 <para> 84 The following section describes known problems with this release 85 of VirtualBox. Unless marked otherwise, these issues are planned 86 to be fixed in later releases. 87 </para> 88 89 <itemizedlist> 90 91 <listitem> 92 <para> 93 The following <emphasis role="bold">Guest SMP (multiprocessor) 94 limitations</emphasis> exist: 95 </para> 96 12 97 <itemizedlist> 13 <listitem> 14 <para>Hardware 3D acceleration support for Windows, Linux, and Solaris 15 guests</para> 16 </listitem> 17 <listitem> 18 <para>Hardware 2D video playback acceleration support for Windows 19 guests</para> 20 </listitem> 21 <listitem> 22 <para>PCI pass-through (Linux hosts only)</para> 23 </listitem> 24 <listitem> 25 <para>Mac OS X guests (Mac hosts only)</para> 26 </listitem> 27 <listitem> 28 <para>ICH9 chipset emulation</para> 29 </listitem> 30 <listitem> 31 <para>EFI firmware</para> 32 </listitem> 33 <listitem> 34 <para>Host CD/DVD drive pass-through</para> 35 </listitem> 36 <listitem> 37 <para>Support of iSCSI via internal networking</para> 38 </listitem> 98 99 <listitem> 100 <para> 101 <emphasis role="bold">Poor performance</emphasis> with 102 32-bit guests on AMD CPUs. This affects mainly Windows and 103 Solaris guests, but possibly also some Linux kernel 104 revisions. Partially solved in 3.0.6 for 32 bits Windows 105 NT, 2000, XP and 2003 guests. Requires 3.0.6 or higher 106 Guest Additions to be installed. 107 </para> 108 </listitem> 109 110 <listitem> 111 <para> 112 <emphasis role="bold">Poor performance</emphasis> with 113 32-bit guests on certain Intel CPU models that do not 114 include virtual APIC hardware optimization support. This 115 affects mainly Windows and Solaris guests, but possibly 116 also some Linux kernel revisions. Partially solved in 117 3.0.12 for 32 bits Windows NT, 2000, XP, and 2003 guests. 118 Requires 3.0.12 or higher Guest Additions to be installed. 119 </para> 120 </listitem> 121 39 122 </itemizedlist> 40 </sect1> 41 <sect1 id="KnownProblems"> 42 <title>Known Issues</title> 43 <para>The following section describes known problems with VirtualBox 44 @VBOX_VERSION_STRING@. Unless marked otherwise, these issues are planned to 45 be fixed in later releases.</para> 46 47 <itemizedlist> 48 <listitem> 49 <para>The following <emphasis role="bold">Guest SMP (multiprocessor) 50 limitations</emphasis> exist:<itemizedlist> 51 <listitem> 52 <para><emphasis role="bold">Poor performance</emphasis> with 53 32-bit guests on AMD CPUs. This affects mainly Windows and Solaris 54 guests, but possibly also some Linux kernel revisions. Partially 55 solved in 3.0.6 for 32 bits Windows NT, 2000, XP and 2003 guests. 56 Requires 3.0.6 or higher Guest Additions to be installed.</para> 57 </listitem> 58 59 <listitem> 60 <para><emphasis role="bold">Poor performance</emphasis> with 61 32-bit guests on certain Intel CPU models that do not include 62 virtual APIC hardware optimization support. This affects mainly 63 Windows and Solaris guests, but possibly also some Linux kernel 64 revisions. Partially solved in 3.0.12 for 32 bits Windows NT, 65 2000, XP and 2003 guests. Requires 3.0.12 or higher Guest 66 Additions to be installed.</para> 67 </listitem> 68 </itemizedlist></para> 69 </listitem> 70 71 <listitem> 72 <para><emphasis role="bold">NX (no execute, data execution 73 prevention)</emphasis> only works for guests running on 64-bit hosts 74 or guests running on 32-bit hosts with PAE enabled and requires that 75 hardware virtualization be enabled.</para> 76 </listitem> 77 78 <listitem> 79 <para>For <emphasis role="bold">basic Direct3D support in Windows 80 guests</emphasis> to work, the Guest Additions must be installed in 81 Windows "safe mode". Press F8 when the Windows guest is booting and 82 select "Safe mode", then install the Guest Additions. Otherwise Windows' 83 file protection mechanism will interfere with the replacement DLLs 84 installed by VirtualBox and keep restoring the original Windows system 85 DLLs. <note> 86 <para>This does <emphasis role="bold">not</emphasis> apply to the 87 WDDM Direct3D video driver available for Vista and Windows 7 guests 88 shipped with VirtualBox 4.1.</para> 89 </note></para> 90 </listitem> 91 92 <listitem> 93 <para><emphasis role="bold">Guest control.</emphasis> On Windows guests, 94 a process lauched via the guest control execute support will not be able 95 to display a graphical user interface <emphasis>unless</emphasis> the 96 user account under which it is running is currently logged in and has a 97 desktop session.</para> 98 99 <para>Also, to use accounts without or with an empty password, the 100 guest's group policy must be changed. To do so, open the group policy 101 editor on the command line by typing 123 </listitem> 124 125 <listitem> 126 <para> 127 <emphasis role="bold">NX (no execute, data execution 128 prevention)</emphasis> only works for guests running on 64-bit 129 hosts or guests running on 32-bit hosts with PAE enabled and 130 requires that hardware virtualization be enabled. 131 </para> 132 </listitem> 133 134 <listitem> 135 <para> 136 For <emphasis role="bold">basic Direct3D support in Windows 137 guests</emphasis> to work, the Guest Additions must be 138 installed in Windows "safe mode". Press F8 when the Windows 139 guest is booting and select "Safe mode", then install the 140 Guest Additions. Otherwise the Windows file protection 141 mechanism will interfere with the replacement DLLs installed 142 by VirtualBox and keep restoring the original Windows system 143 DLLs. 144 145 <note> 146 <para> 147 This does <emphasis>not</emphasis> apply to the WDDM 148 Direct3D video driver available for Vista and Windows 7 149 guests shipped with VirtualBox 4.1. 150 </para> 151 </note> 152 </para> 153 </listitem> 154 155 <listitem> 156 <para> 157 <emphasis role="bold">Guest control.</emphasis> On Windows 158 guests, a process lauched via the guest control execute 159 support will not be able to display a graphical user interface 160 <emphasis>unless</emphasis> the user account under which it is 161 running is currently logged in and has a desktop session. 162 </para> 163 164 <para> 165 Also, to use accounts without or with an empty password, the 166 guest's group policy must be changed. To do so, open the group 167 policy editor on the command line by typing 102 168 <computeroutput>gpedit.msc</computeroutput>, open the key 103 169 <emphasis>Computer Configuration\Windows Settings\Security 104 Settings\Local Policies\Security Options</emphasis> and change the value 105 of <emphasis>Accounts: Limit local account use of blank passwords to 106 console logon only</emphasis> to <emphasis>Disabled</emphasis>.</para> 107 </listitem> 108 109 <listitem> 110 <para><emphasis role="bold">Compacting virtual disk images is limited to 111 VDI files.</emphasis> The <code>VBoxManage modifyhd --compact</code> 112 command is currently only implemented for VDI files. At the moment the 113 only way to optimize the size of a virtual disk images in other formats 114 (VMDK, VHD) is to clone the image and then use the cloned image in the 115 VM configuration.</para> 116 </listitem> 117 118 <listitem> 119 <para><emphasis role="bold">OVF import/export:</emphasis><itemizedlist> 120 <listitem> 121 <para>OVF localization (multiple languages in one OVF file) is not 122 yet supported.</para> 123 </listitem> 124 125 <listitem> 126 <para>Some OVF sections like StartupSection, 127 DeploymentOptionSection and InstallSection are ignored.</para> 128 </listitem> 129 130 <listitem> 131 <para>OVF environment documents, including their property sections 132 and appliance configuration with ISO images, are not yet 133 supported.</para> 134 </listitem> 135 136 <listitem> 137 <para>Remote files via HTTP or other mechanisms are not yet 138 supported.</para> 139 </listitem> 140 </itemizedlist></para> 141 </listitem> 142 143 <listitem> 144 <para>Neither <emphasis role="bold">scale mode</emphasis> nor <emphasis 145 role="bold">seamless mode</emphasis> work correctly with guests using 146 OpenGL 3D features (such as with compiz-enabled window managers).</para> 147 </listitem> 148 149 <listitem> 150 <para>The RDP server in the VirtualBox extension pack supports only 151 audio streams in format 22.05kHz stereo 16 bit. If the RDP client 152 requests any other audio format there will be no audio.</para> 153 </listitem> 154 155 <listitem> 156 <para>Preserving the aspect ratio in scale mode works only on Windows 157 hosts and on Mac OS X hosts.</para> 158 </listitem> 159 160 <listitem> 161 <para>On <emphasis role="bold">Mac OS X hosts,</emphasis> the following 162 features are not yet implemented:</para> 163 164 <para><itemizedlist> 165 <listitem> 166 <para>Numlock emulation</para> 167 </listitem> 168 169 <listitem> 170 <para>CPU frequency metric</para> 171 </listitem> 172 173 <listitem> 174 <para>Memory ballooning</para> 175 </listitem> 176 </itemizedlist></para> 177 </listitem> 178 179 <listitem> 180 <para><emphasis role="bold">Mac OS X guests:</emphasis> 181 <itemizedlist> 182 <listitem> 183 <para>Mac OS X guests can only run on a certain host hardware. 184 For details about license and host hardware limitations, please 185 see <xref linkend="intro-macosxguests" /> and check the Apple 186 software license conditions.</para> 187 </listitem> 188 189 <listitem> 190 <para>VirtualBox does not provide Guest Additions for Mac OS X 191 at this time.</para> 192 </listitem> 193 194 <listitem> 195 <para>The graphics resolution currently defaults to 1024x768 as 196 Mac OS X falls back to the built-in EFI display support. See 197 <xref linkend="efividmode" /> for more information on how to 198 change EFI video modes.</para> 199 </listitem> 200 201 <listitem> 202 <para>Mac OS X guests only work with one CPU assigned to the 203 VM. Support for SMP will be provided in a future release.</para> 204 </listitem> 205 206 <listitem> 207 <para>Depending on your system and version of Mac OS X, you 208 might experience guest hangs after some time. This can be fixed 209 by turning off energy saving (set timeout to "Never") in the 210 system preferences.</para> 211 </listitem> 212 213 <listitem> 214 <para>By default, the VirtualBox EFI enables debug output of the 215 Mac OS X kernel to help you diagnose boot problems. Note that 216 there is a lot of output and not all errors are fatal (they 217 would also show on your physical Mac). You can turn off these 218 messages by issuing this command:<screen>VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" " "</screen>To 219 revert to the previous behavior, use:<screen>VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" ""</screen></para> 220 </listitem> 221 222 <listitem> 223 <para>It is currently not possible to start a Mac OS X guest in safe mode by specifying "-x" option 224 in "VBoxInternal2/EfiBootArgs" extradata.</para> 225 </listitem> 226 </itemizedlist></para> 227 </listitem> 228 229 <listitem> 230 <para><emphasis role="bold">Solaris hosts:</emphasis> <itemizedlist> 231 <listitem> 232 <para>There is no support for USB devices connected to Solaris 10 233 hosts.</para> 234 </listitem> 235 236 <listitem> 237 <para>USB support on Solaris hosts requires Solaris 11 version 238 snv_124 or higher. Webcams and other isochronous devices are known 239 to have poor performance.</para> 240 </listitem> 241 242 <listitem> 243 <para>Host Webcam passthrough is restricted to 640x480 frames at 244 20 frames per second due to limitations in the Solaris V4L2 API. 245 This may be addressed in a future Solaris release.</para> 246 </listitem> 247 248 <listitem> 249 <para>No ACPI information (battery status, power source) is 250 reported to the guest.</para> 251 </listitem> 252 253 <listitem> 254 <para>No support for using wireless adapters with bridged 255 networking.</para> 256 </listitem> 257 258 <listitem> 259 <para>Crossbow-based bridged networking on Solaris 11 hosts does 260 not work directly with aggregate links. However, you can manually 261 create a VNIC (using <computeroutput>dladm</computeroutput>) over 262 the aggregate link and use that with a VM. This limitation does 263 not exist in Solaris 11u1 build 17 and newer.</para> 264 </listitem> 265 </itemizedlist></para> 266 </listitem> 267 268 <listitem> 269 <para><emphasis role="bold">Guest Additions of version 4.1, 4.1.2 and 4.1.4 for Windows</emphasis> 270 Thus VirtualBox WDDM Video driver may be installed and kept in guest system 271 if Guest additions uninstallation is performed. 272 This is caused by a bug in Guest Additions uninstaller. 273 <note> 274 <para>This does <emphasis role="bold">not</emphasis> apply to Guest Additions update, 275 i.e. installing a one version of Guest Additions on top of another works correctly.</para> 276 </note> 277 To solve this problem, one should uninstall the VirtualBox WDDM Video driver manually. 278 To do that open Device Manager, and check whether the Display Adapter is named 279 "VirtualBox Graphics Adapter ..". If no - there is nothing to be done. If yes - right-click 280 the VirtualBox Graphics Adapter in Device Manager, select "Uninstall", check "Delete the driver software for this device" 281 and click "OK". Once uninstallation is done - in Device Manager go to menu "Action" and select 282 "Scan for hardware changes" to make the propper (Windows default) driver be picked up for the Graphics adapter. 170 Settings\Local Policies\Security Options</emphasis> and change 171 the value of <emphasis>Accounts: Limit local account use of 172 blank passwords to console logon only</emphasis> to 173 <emphasis>Disabled</emphasis>. 174 </para> 175 </listitem> 176 177 <listitem> 178 <para> 179 <emphasis role="bold">Compacting virtual disk images is 180 limited to VDI files.</emphasis> The <code>VBoxManage modifyhd 181 --compact</code> command is currently only implemented for VDI 182 files. At the moment the only way to optimize the size of a 183 virtual disk images in other formats (VMDK, VHD) is to clone 184 the image and then use the cloned image in the VM 185 configuration. 186 </para> 187 </listitem> 188 189 <listitem> 190 <para> 191 <emphasis role="bold">OVF import/export:</emphasis> 192 </para> 193 194 <itemizedlist> 195 196 <listitem> 197 <para> 198 OVF localization, with multiple languages in a single OVF 199 file, is not yet supported. 200 </para> 201 </listitem> 202 203 <listitem> 204 <para> 205 Some OVF sections like StartupSection, 206 DeploymentOptionSection, and InstallSection are ignored. 207 </para> 208 </listitem> 209 210 <listitem> 211 <para> 212 OVF environment documents, including their property 213 sections and appliance configuration with ISO images, are 214 not yet supported. 215 </para> 216 </listitem> 217 218 <listitem> 219 <para> 220 Remote files via HTTP or other mechanisms are not yet 221 supported. 222 </para> 223 </listitem> 224 225 </itemizedlist> 226 </listitem> 227 228 <listitem> 229 <para> 230 Neither <emphasis role="bold">scale mode</emphasis> nor 231 <emphasis 232 role="bold">seamless mode</emphasis> work 233 correctly with guests using OpenGL 3D features, such as with 234 compiz-enabled window managers. 235 </para> 236 </listitem> 237 238 <listitem> 239 <para> 240 The RDP server in the VirtualBox extension pack supports only 241 audio streams in format 22.05kHz stereo 16 bit. If the RDP 242 client requests any other audio format there will be no audio. 243 </para> 244 </listitem> 245 246 <listitem> 247 <para> 248 Preserving the aspect ratio in scale mode works only on 249 Windows hosts and on Mac OS X hosts. 250 </para> 251 </listitem> 252 253 <listitem> 254 <para> 255 On <emphasis role="bold">Mac OS X hosts,</emphasis> the 256 following features are not yet implemented: 257 </para> 258 259 <itemizedlist> 260 261 <listitem> 262 <para> 263 Numlock emulation 264 </para> 265 </listitem> 266 267 <listitem> 268 <para> 269 CPU frequency metric 270 </para> 271 </listitem> 272 273 <listitem> 274 <para> 275 Memory ballooning 276 </para> 277 </listitem> 278 279 </itemizedlist> 280 </listitem> 281 282 <listitem> 283 <para> 284 <emphasis role="bold">Mac OS X guests:</emphasis> 285 </para> 286 287 <itemizedlist> 288 289 <listitem> 290 <para> 291 Mac OS X guests can only run on a certain host hardware. 292 For details about license and host hardware limitations. 293 See <xref linkend="intro-macosxguests" /> and check the 294 Apple software license conditions. 295 </para> 296 </listitem> 297 298 <listitem> 299 <para> 300 VirtualBox does not provide Guest Additions for Mac OS X 301 at this time. 302 </para> 303 </listitem> 304 305 <listitem> 306 <para> 307 The graphics resolution currently defaults to 1024x768 as 308 Mac OS X falls back to the built-in EFI display support. 309 See <xref linkend="efividmode" /> for more information on 310 how to change EFI video modes. 311 </para> 312 </listitem> 313 314 <listitem> 315 <para> 316 Mac OS X guests only work with one CPU assigned to the VM. 317 Support for SMP will be provided in a future release. 318 </para> 319 </listitem> 320 321 <listitem> 322 <para> 323 Depending on your system and version of Mac OS X, you 324 might experience guest hangs after some time. This can be 325 fixed by turning off energy saving. Set timeout to "Never" 326 in the system preferences. 327 </para> 328 </listitem> 329 330 <listitem> 331 <para> 332 By default, the VirtualBox EFI enables debug output of the 333 Mac OS X kernel to help you diagnose boot problems. Note 334 that there is a lot of output and not all errors are 335 fatal. They would also show when using a physical Apple 336 Macintosh computer. You can turn off these messages by 337 issuing this command: 338 339 <screen>VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" " "</screen> 340 341 To revert to the previous behavior, use: 342 343 <screen>VBoxManage setextradata "VM name" "VBoxInternal2/EfiBootArgs" ""</screen> 344 </para> 345 </listitem> 346 347 <listitem> 348 <para> 349 It is currently not possible to start a Mac OS X guest in 350 safe mode by specifying "-x" option in 351 "VBoxInternal2/EfiBootArgs" extradata. 352 </para> 353 </listitem> 354 355 </itemizedlist> 356 </listitem> 357 358 <listitem> 359 <para> 360 <emphasis role="bold">Solaris hosts:</emphasis> 361 </para> 362 363 <itemizedlist> 364 365 <listitem> 366 <para> 367 There is no support for USB devices connected to Solaris 368 10 hosts. 369 </para> 370 </listitem> 371 372 <listitem> 373 <para> 374 USB support on Solaris hosts requires Solaris 11 version 375 snv_124 or higher. Webcams and other isochronous devices 376 are known to have poor performance. 377 </para> 378 </listitem> 379 380 <listitem> 381 <para> 382 Host Webcam passthrough is restricted to 640x480 frames at 383 20 frames per second due to limitations in the Solaris 384 V4L2 API. This may be addressed in a future Solaris 385 release. 386 </para> 387 </listitem> 388 389 <listitem> 390 <para> 391 No ACPI information, such as battery status or power 392 source, is reported to the guest. 393 </para> 394 </listitem> 395 396 <listitem> 397 <para> 398 No support for using wireless adapters with bridged 399 networking. 400 </para> 401 </listitem> 402 403 <listitem> 404 <para> 405 Crossbow-based bridged networking on Solaris 11 hosts does 406 not work directly with aggregate links. However, you can 407 use <computeroutput>dladm</computeroutput> to manually 408 create a VNIC over the aggregate link and use that with a 409 VM. This limitation does not exist in Solaris 11u1 build 410 17 and newer. 411 </para> 412 </listitem> 413 414 </itemizedlist> 415 </listitem> 416 417 <listitem> 418 <para> 419 <emphasis role="bold">Guest Additions of version 4.1, 4.1.2 420 and 4.1.4 for Windows.</emphasis> The VirtualBox WDDM Video 421 driver may be installed and remain in the guest system when 422 Guest additions uninstallation is performed. This is caused by 423 a bug in Guest Additions uninstaller. 424 </para> 425 426 <note> 427 <para> 428 This does <emphasis>not</emphasis> apply to a Guest 429 Additions update. Installing one version of Guest Additions 430 on top of another works correctly. 283 431 </para> 284 </listitem> 285 286 <listitem> 287 <para>Neither <emphasis>virtio</emphasis> nor <emphasis>Intel PRO/1000 288 </emphasis> drivers for <emphasis role="bold">Windows XP guests 289 </emphasis> support segmentation offloading. Therefore 290 Windows XP guests have slower transmission rates comparing to other 291 guest types. Refer to MS Knowledge base article 842264 for additional 292 information.</para> 293 </listitem> 294 295 <listitem> 296 <para><emphasis role="bold">Guest Additions for OS/2.</emphasis> Shared 297 folders are not yet supported with OS/2 guests. In addition, seamless 298 windows and automatic guest resizing will probably never be implemented 299 due to inherent limitations of the OS/2 graphics system.</para> 300 </listitem> 301 302 <listitem> 303 <para>Some guest operating systems pre-dating ATAPI CD-ROMs may exhibit 304 long delays or entirely fail to boot in certain configurations. This is 305 most likely to happen when an IDE/ATAPI CD-ROM exists alone on a primary 306 or secondary IDE channel.</para> 307 <para>One of the affected operating systems is MS OS/2 1.21 (fails to boot 308 with an error message referencing COUNTRY.SYS) and MS OS/2 1.3 (long delays). 309 To avoid such problems, disable the emulated IDE/ATAPI CD-ROM; the guest OS 310 cannot use it anyway.</para> 311 </listitem> 312 </itemizedlist> 313 </sect1> 432 </note> 433 434 <para> 435 To solve this problem, uninstall the VirtualBox WDDM Video 436 driver manually. Open Device Manager, and check whether the 437 Display Adapter is named "VirtualBox Graphics Adapter ..". If 438 not, there is nothing to be done. If it is, right-click the 439 VirtualBox Graphics Adapter in Device Manager, select 440 <emphasis role="bold">Uninstall</emphasis>, check 441 <emphasis role="bold">Delete the Driver Software for this 442 Device</emphasis> and click 443 <emphasis role="bold">OK</emphasis>. Once uninstallation is 444 done, start Device Manager, go to the Action menu and select 445 <emphasis role="bold">Scan for Hardware Change</emphasis>s to 446 ensure that the correct Windows default driver be picked up 447 for the Graphics adapter. 448 </para> 449 </listitem> 450 451 <listitem> 452 <para> 453 Neither <emphasis>virtio</emphasis> nor <emphasis>Intel 454 PRO/1000 </emphasis> drivers for <emphasis role="bold">Windows 455 XP guests</emphasis> support segmentation offloading. 456 Therefore Windows XP guests have slower transmission rates 457 comparing to other guest types. Refer to MS Knowledge base 458 article 842264 for additional information. 459 </para> 460 </listitem> 461 462 <listitem> 463 <para> 464 <emphasis role="bold">Guest Additions for OS/2.</emphasis> 465 Shared folders are not yet supported with OS/2 guests. In 466 addition, seamless windows and automatic guest resizing will 467 probably never be implemented due to inherent limitations of 468 the OS/2 graphics system. 469 </para> 470 </listitem> 471 472 <listitem> 473 <para> 474 Some guest operating systems predating ATAPI CD-ROMs may 475 exhibit long delays or entirely fail to boot in certain 476 configurations. This is most likely to happen when an 477 IDE/ATAPI CD-ROM exists alone on a primary or secondary IDE 478 channel. 479 </para> 480 481 <para> 482 Affected operating systems are MS OS/2 1.21: fails to boot 483 with an error message referencing COUNTRY.SYS and MS OS/2 1.3: 484 long boot delays. To avoid such problems, disable the emulated 485 IDE/ATAPI CD-ROM. The guest OS cannot use this device, anyway. 486 </para> 487 </listitem> 488 489 </itemizedlist> 490 491 </sect1> 492 314 493 </chapter> -
trunk/doc/manual/en_US/user_Networking.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="networkingdetails"> 5 <title>Virtual networking</title> 6 7 <para>As briefly mentioned in <xref linkend="settings-network" />, 8 VirtualBox provides up to eight virtual PCI Ethernet cards for each virtual 9 machine. For each such card, you can individually select<orderedlist> 10 <listitem> 11 <para>the hardware that will be virtualized as well as</para> 12 </listitem> 13 14 <listitem> 15 <para>the virtualization mode that the virtual card will be operating 16 in with respect to your physical networking hardware on the 17 host.</para> 18 </listitem> 19 </orderedlist></para> 20 21 <para>Four of the network cards can be configured in the "Network" section 22 of the settings dialog in the graphical user interface of VirtualBox. You 23 can configure all eight network cards on the command line via VBoxManage 24 modifyvm; see <xref linkend="vboxmanage-modifyvm" />.</para> 25 26 <para>This chapter explains the various networking settings in more 27 detail.</para> 8 9 <title>Virtual Networking</title> 10 11 <para> 12 As mentioned in <xref linkend="settings-network" />, VirtualBox 13 provides up to eight virtual PCI Ethernet cards for each virtual 14 machine. For each such card, you can individually select the 15 following: 16 </para> 17 18 <itemizedlist> 19 20 <listitem> 21 <para> 22 The hardware that will be virtualized. 23 </para> 24 </listitem> 25 26 <listitem> 27 <para> 28 The virtualization mode that the virtual card operates in, with 29 respect to your physical networking hardware on the host. 30 </para> 31 </listitem> 32 33 </itemizedlist> 34 35 <para> 36 Four of the network cards can be configured in the Network section 37 of the settings dialog in the graphical user interface of 38 VirtualBox. You can configure all eight network cards on the command 39 line using VBoxManage modifyvm. See 40 <xref linkend="vboxmanage-modifyvm" />. 41 </para> 42 43 <para> 44 This chapter explains the various networking settings in more 45 detail. 46 </para> 28 47 29 48 <sect1 id="nichardware"> 30 <title>Virtual networking hardware</title> 31 32 <para>For each card, you can individually select what kind of 33 <emphasis>hardware</emphasis> will be presented to the virtual machine. 34 VirtualBox can virtualize the following six types of networking 35 hardware:<itemizedlist> 36 <listitem> 37 <para>AMD PCNet PCI II (Am79C970A);</para> 38 </listitem> 39 40 <listitem> 41 <para>AMD PCNet FAST III (Am79C973, the default);</para> 42 </listitem> 43 44 <listitem> 45 <para>Intel PRO/1000 MT Desktop (82540EM);</para> 46 </listitem> 47 48 <listitem> 49 <para>Intel PRO/1000 T Server (82543GC);</para> 50 </listitem> 51 52 <listitem> 53 <para>Intel PRO/1000 MT Server (82545EM);</para> 54 </listitem> 55 56 <listitem> 57 <para>Paravirtualized network adapter (virtio-net).</para> 58 </listitem> 59 </itemizedlist></para> 60 61 <para>The PCNet FAST III is the default because it is supported by nearly 62 all operating systems out of the box, as well as the GNU GRUB boot 63 manager. As an exception, the Intel PRO/1000 family adapters are chosen 64 for some guest operating system types that no longer ship with drivers for 65 the PCNet card, such as Windows Vista.</para> 66 67 <para>The Intel PRO/1000 MT Desktop type works with Windows Vista and 68 later versions. The T Server variant of the Intel PRO/1000 card is 69 recognized by Windows XP guests without additional driver installation. 70 The MT Server variant facilitates OVF imports from other platforms.</para> 71 72 <para>The <emphasis role="bold">"Paravirtualized network adapter 73 (virtio-net)"</emphasis> is special. If you select this, then VirtualBox 74 does <emphasis>not</emphasis> virtualize common networking hardware (that 75 is supported by common guest operating systems out of the box). Instead, 76 VirtualBox then expects a special software interface for virtualized 77 environments to be provided by the guest, thus avoiding the complexity of 78 emulating networking hardware and improving network performance. Starting 79 with version 3.1, VirtualBox provides support for the industry-standard 80 "virtio" networking drivers, which are part of the open-source KVM 81 project.</para> 82 83 <para>The "virtio" networking drivers are available for the following 84 guest operating systems:</para> 85 86 <para><itemizedlist> 87 <listitem> 88 <para>Linux kernels version 2.6.25 or later can be configured to 89 provide virtio support; some distributions also back-ported virtio 90 to older kernels.</para> 91 </listitem> 92 93 <listitem> 94 <para>For Windows 2000, XP and Vista, virtio drivers can be 95 downloaded and installed from the KVM project web page.<footnote> 96 <para><ulink 97 url="http://www.linux-kvm.org/page/WindowsGuestDrivers">http://www.linux-kvm.org/page/WindowsGuestDrivers</ulink>.</para> 98 </footnote></para> 99 </listitem> 100 </itemizedlist></para> 101 102 <para>VirtualBox also has limited support for so-called <emphasis 103 role="bold">jumbo frames</emphasis>, i.e. networking packets with more 104 than 1500 bytes of data, provided that you use the Intel card 105 virtualization and bridged networking. In other words, jumbo frames are 106 not supported with the AMD networking devices; in those cases, jumbo 107 packets will silently be dropped for both the transmit and the receive 108 direction. Guest operating systems trying to use this feature will observe 109 this as a packet loss, which may lead to unexpected application behavior 110 in the guest. This does not cause problems with guest operating systems in 111 their default configuration, as jumbo frames need to be explicitly 112 enabled.</para> 49 50 <title>Virtual Networking Hardware</title> 51 52 <para> 53 For each card, you can individually select what kind of 54 <emphasis>hardware</emphasis> will be presented to the virtual 55 machine. VirtualBox can virtualize the following types of 56 networking hardware: 57 </para> 58 59 <itemizedlist> 60 61 <listitem> 62 <para> 63 AMD PCNet PCI II (Am79C970A) 64 </para> 65 </listitem> 66 67 <listitem> 68 <para> 69 AMD PCNet FAST III (Am79C973), the default setting 70 </para> 71 </listitem> 72 73 <listitem> 74 <para> 75 Intel PRO/1000 MT Desktop (82540EM) 76 </para> 77 </listitem> 78 79 <listitem> 80 <para> 81 Intel PRO/1000 T Server (82543GC) 82 </para> 83 </listitem> 84 85 <listitem> 86 <para> 87 Intel PRO/1000 MT Server (82545EM) 88 </para> 89 </listitem> 90 91 <listitem> 92 <para> 93 Paravirtualized network adapter (virtio-net) 94 </para> 95 </listitem> 96 97 </itemizedlist> 98 99 <para> 100 The PCNet FAST III is the default because it is supported by 101 nearly all operating systems, as well as by the GNU GRUB boot 102 manager. As an exception, the Intel PRO/1000 family adapters are 103 chosen for some guest operating system types that no longer ship 104 with drivers for the PCNet card, such as Windows Vista. 105 </para> 106 107 <para> 108 The Intel PRO/1000 MT Desktop type works with Windows Vista and 109 later versions. The T Server variant of the Intel PRO/1000 card is 110 recognized by Windows XP guests without additional driver 111 installation. The MT Server variant facilitates OVF imports from 112 other platforms. 113 </para> 114 115 <para> 116 The Paravirtualized network adapter (virtio-net) is special. If 117 you select this adapter, then VirtualBox does 118 <emphasis>not</emphasis> virtualize common networking hardware 119 that is supported by common guest operating systems. Instead, 120 VirtualBox expects a special software interface for virtualized 121 environments to be provided by the guest, thus avoiding the 122 complexity of emulating networking hardware and improving network 123 performance. Starting with version 3.1, VirtualBox provides 124 support for the industry-standard <emphasis>virtio</emphasis> 125 networking drivers, which are part of the open source KVM project. 126 </para> 127 128 <para> 129 The virtio networking drivers are available for the following 130 guest operating systems: 131 </para> 132 133 <itemizedlist> 134 135 <listitem> 136 <para> 137 Linux kernels version 2.6.25 or later can be configured to 138 provide virtio support. Some distributions have also 139 back-ported virtio to older kernels. 140 </para> 141 </listitem> 142 143 <listitem> 144 <para> 145 For Windows 2000, XP, and Vista, virtio drivers can be 146 downloaded and installed from the KVM project web page: 147 </para> 148 149 <para> 150 <ulink 151 url="http://www.linux-kvm.org/page/WindowsGuestDrivers"/>. 152 </para> 153 </listitem> 154 155 </itemizedlist> 156 157 <para> 158 VirtualBox also has limited support for <emphasis>jumbo 159 frames</emphasis>. These are networking packets with more than 160 1500 bytes of data, provided that you use the Intel card 161 virtualization and bridged networking. Jumbo frames are not 162 supported with the AMD networking devices. In those cases, jumbo 163 packets will silently be dropped for both the transmit and the 164 receive direction. Guest operating systems trying to use this 165 feature will observe this as a packet loss, which may lead to 166 unexpected application behavior in the guest. This does not cause 167 problems with guest operating systems in their default 168 configuration, as jumbo frames need to be explicitly enabled. 169 </para> 170 113 171 </sect1> 114 172 115 173 <sect1 id="networkingmodes"> 116 <title>Introduction to networking modes</title> 117 118 <para>Each of the eight networking adapters can be separately configured 119 to operate in one of the following modes:<glosslist>120 <glossentry>121 <glossterm>Not attached</glossterm>122 123 <glossdef> 124 <para>In this mode, VirtualBox reports to the guest that a network125 card is present, but that there is no connection -- as if no 126 Ethernet cable was plugged into the card. This way it is possible127 to "pull" the virtual Ethernet cable and disrupt the connection,128 which can be useful to inform a guest operating system that no129 network connection is available and enforce a130 reconfiguration.</para>131 </glossdef>132 </glossentry>133 134 <glossentry>135 <glossterm>Network Address Translation (NAT)</glossterm>136 137 <glossdef>138 <para>If all you want is to browse the Web, download files and 139 view e-mail inside the guest, then this default mode should be140 sufficient for you, and you can safely skip the rest of this141 section. Please note that there are certain limitations when using142 Windows file sharing (see <xref linkend="nat-limitations" /> for143 details).</para>144 </glossdef>145 </glossentry>146 147 <glossentry>148 <glossterm>NAT Network</glossterm>149 150 <glossdef> 151 <para>The NAT network is a new NAT flavour introduced in152 VirtualBox 4.3. See153 <xref linkend="network_nat_service" xrefstyle="template: %n" />154 for details.</para>155 < /glossdef>156 </ glossentry>157 158 <glossentry> 159 <glossterm>Bridged networking</glossterm>160 161 < glossdef>162 <para>This is for more advanced networking needssuch as network163 164 165 166 operating system's network stack.</para>167 </glossdef>168 </glossentry>169 170 <glossentry>171 <glossterm>Internal networking</glossterm>172 173 <glossdef>174 <para>This can be used to create a different kind of175 software-based network which is visible to selected virtual176 machines, but not to applications running on the host or to the177 outside world.</para>178 </glossdef> 179 </glossentry>180 181 <glossentry>182 <glossterm>Host-only networking</glossterm>183 184 <glossdef>185 <para>This can be used to create a network containing the host and186 a set of virtual machines, without the need for the host's187 physical network interface. Instead, a virtual network interface188 (similar to a loopback interface) is created on the host,189 providing connectivity among virtual machines and the host.</para> 190 </glossdef>191 < /glossentry>192 193 <glossentry>194 <glossterm>Generic networking</glossterm>195 196 <glossdef>197 <para>Rarely used modes share the same generic network interface, 198 by allowing the user to select a driver which can be included with199 VirtualBox or be distributed in an extension pack.</para>200 201 <para>At the moment there are potentially two available 202 sub-modes:</para>203 204 <para><glosslist>205 <glossentry>206 <glossterm>UDP Tunnel</glossterm>207 208 <glossdef>209 <para>This can be used to interconnect virtual machines210 running on different hosts directly, easily and211 transparently, over existing network212 infrastructure.</para> 213 </glossdef>214 </glossentry>215 216 <glossentry>217 <glossterm>VDE (Virtual Distributed Ethernet)218 networking</glossterm>219 220 <glossdef>221 <para>This option can be used to connect to a Virtual222 Distributed Ethernet switch on a Linux or a FreeBSD host.223 At the moment this needs compiling VirtualBox from 224 sources, as the Oracle packages do not include it.</para>225 </glossdef>226 </glossentry> 227 </glosslist></para>228 </glossdef> 229 </glossentry>230 < /glosslist></para>231 232 < para>The following table provides a quick overview of the most important233 networking modes:</para> 234 <table >235 <title>Overview </title>174 175 <title>Introduction to Networking Modes</title> 176 177 <para> 178 Each of the networking adapters can be separately configured to 179 operate in one of the following modes: 180 </para> 181 182 <itemizedlist> 183 184 <listitem> 185 <para> 186 <emphasis role="bold">Not attached.</emphasis> In this mode, 187 VirtualBox reports to the guest that a network card is 188 present, but that there is no connection. This is as if no 189 Ethernet cable was plugged into the card. Using this mode, it 190 is possible to "pull" the virtual Ethernet cable and disrupt 191 the connection, which can be useful to inform a guest 192 operating system that no network connection is available and 193 enforce a reconfiguration. 194 </para> 195 </listitem> 196 197 <listitem> 198 <para> 199 <emphasis role="bold">Network Address Translation 200 (NAT)</emphasis>. If all you want is to browse the Web, 201 download files, and view email inside the guest, then this 202 default mode should be sufficient for you, and you can skip 203 the rest of this section. Please note that there are certain 204 limitations when using Windows file sharing. See 205 <xref linkend="nat-limitations" />. 206 </para> 207 </listitem> 208 209 <listitem> 210 <para> 211 <emphasis role="bold">NAT Network.</emphasis> The NAT network 212 is a new NAT flavour introduced in VirtualBox 4.3. See 213 <xref linkend="network_nat_service"/>. 214 </para> 215 </listitem> 216 217 <listitem> 218 <para> 219 <emphasis role="bold">Bridged networking.</emphasis> This is 220 for more advanced networking needs, such as network 221 simulations and running servers in a guest. When enabled, 222 VirtualBox connects to one of your installed network cards and 223 exchanges network packets directly, circumventing your host 224 operating system's network stack. 225 </para> 226 </listitem> 227 228 <listitem> 229 <para> 230 <emphasis role="bold">Internal networking.</emphasis> This can 231 be used to create a different kind of software-based network 232 which is visible to selected virtual machines, but not to 233 applications running on the host or to the outside world. 234 </para> 235 </listitem> 236 237 <listitem> 238 <para> 239 <emphasis role="bold">Host-only networking.</emphasis> This 240 can be used to create a network containing the host and a set 241 of virtual machines, without the need for the host's physical 242 network interface. Instead, a virtual network interface, 243 similar to a loopback interface, is created on the host, 244 providing connectivity among virtual machines and the host. 245 </para> 246 </listitem> 247 248 <listitem> 249 <para> 250 <emphasis role="bold"> Generic networking.</emphasis> Rarely 251 used modes which share the same generic network interface, by 252 allowing the user to select a driver which can be included 253 with VirtualBox or be distributed in an extension pack. 254 </para> 255 256 <para> 257 The following sub-modes are available: 258 </para> 259 260 <itemizedlist> 261 262 <listitem> 263 <para> 264 <emphasis role="bold">UDP Tunnel:</emphasis> Used to 265 interconnect virtual machines running on different hosts 266 directly, easily, and transparently, over an existing 267 network infrastructure. 268 </para> 269 </listitem> 270 271 <listitem> 272 <para> 273 <emphasis role="bold">VDE (Virtual Distributed Ethernet) 274 networking:</emphasis> Used to connect to a Virtual 275 Distributed Ethernet switch on a Linux or a FreeBSD host. 276 At the moment this option requires compilation of 277 VirtualBox from sources, as the Oracle packages do not 278 include it. 279 </para> 280 </listitem> 281 282 </itemizedlist> 283 </listitem> 284 285 </itemizedlist> 286 287 <para> 288 <xref linkend="table-networking-modes"/> provides a quick overview 289 of the most important networking modes. 290 </para> 291 292 <table id="table-networking-modes"> 293 <title>Overview of Networking Modes</title> 236 294 <tgroup cols="5"> 237 295 <colspec align="left" /> … … 289 347 </table> 290 348 291 <para>The following sections describe the available network modes in more 292 detail.</para> 349 <para> 350 The following sections describe the available network modes in 351 more detail. 352 </para> 353 293 354 </sect1> 294 355 295 356 <sect1 id="network_nat"> 357 296 358 <title>Network Address Translation (NAT)</title> 297 359 298 <para>Network Address Translation (NAT) is the simplest way of accessing 299 an external network from a virtual machine. Usually, it does not require 300 any configuration on the host network and guest system. For this reason, 301 it is the default networking mode in VirtualBox.</para> 302 303 <para>A virtual machine with NAT enabled acts much like a real computer 304 that connects to the Internet through a router. The "router", in this 305 case, is the VirtualBox networking engine, which maps traffic from and to 306 the virtual machine transparently. In VirtualBox this router is placed 307 between each virtual machine and the host. This separation maximizes 308 security since by default virtual machines cannot talk to each 309 other.</para> 310 311 <para>The disadvantage of NAT mode is that, much like a private network 312 behind a router, the virtual machine is invisible and unreachable from the 313 outside internet; you cannot run a server this way unless you set up port 314 forwarding (described below).</para> 315 316 <para>The network frames sent out by the guest operating system are 317 received by VirtualBox's NAT engine, which extracts the TCP/IP data and 318 resends it using the host operating system. To an application on the host, 319 or to another computer on the same network as the host, it looks like the 320 data was sent by the VirtualBox application on the host, using an IP 321 address belonging to the host. VirtualBox listens for replies to the 322 packages sent, and repacks and resends them to the guest machine on its 323 private network.</para> 324 325 <para>The virtual machine receives its network address and configuration 326 on the private network from a DHCP server integrated into VirtualBox. The 327 IP address thus assigned to the virtual machine is usually on a completely 328 different network than the host. As more than one card of a virtual 329 machine can be set up to use NAT, the first card is connected to the 330 private network 10.0.2.0, the second card to the network 10.0.3.0 and so 331 on. If you need to change the guest-assigned IP range for some reason, 332 please refer to <xref linkend="changenat" />.</para> 360 <para> 361 Network Address Translation (NAT) is the simplest way of accessing 362 an external network from a virtual machine. Usually, it does not 363 require any configuration on the host network and guest system. 364 For this reason, it is the default networking mode in VirtualBox. 365 </para> 366 367 <para> 368 A virtual machine with NAT enabled acts much like a real computer 369 that connects to the Internet through a router. The router, in 370 this case, is the VirtualBox networking engine, which maps traffic 371 from and to the virtual machine transparently. In VirtualBox this 372 router is placed between each virtual machine and the host. This 373 separation maximizes security since by default virtual machines 374 cannot talk to each other. 375 </para> 376 377 <para> 378 The disadvantage of NAT mode is that, much like a private network 379 behind a router, the virtual machine is invisible and unreachable 380 from the outside internet. You cannot run a server this way unless 381 you set up port forwarding. See <xref linkend="natforward"/>. 382 </para> 383 384 <para> 385 The network frames sent out by the guest operating system are 386 received by VirtualBox's NAT engine, which extracts the TCP/IP 387 data and resends it using the host operating system. To an 388 application on the host, or to another computer on the same 389 network as the host, it looks like the data was sent by the 390 VirtualBox application on the host, using an IP address belonging 391 to the host. VirtualBox listens for replies to the packages sent, 392 and repacks and resends them to the guest machine on its private 393 network. 394 </para> 395 396 <para> 397 The virtual machine receives its network address and configuration 398 on the private network from a DHCP server integrated into 399 VirtualBox. The IP address thus assigned to the virtual machine is 400 usually on a completely different network than the host. As more 401 than one card of a virtual machine can be set up to use NAT, the 402 first card is connected to the private network 10.0.2.0, the 403 second card to the network 10.0.3.0 and so on. If you need to 404 change the guest-assigned IP range, see 405 <xref linkend="changenat" />. 406 </para> 333 407 334 408 <sect2 id="natforward"> 335 <title>Configuring port forwarding with NAT</title> 336 337 <para>As the virtual machine is connected to a private network internal 338 to VirtualBox and invisible to the host, network services on the guest 339 are not accessible to the host machine or to other computers on the same 340 network. However, like a physical router, VirtualBox can make selected 341 services available to the world outside the guest through <emphasis 342 role="bold">port forwarding.</emphasis> This means that VirtualBox 343 listens to certain ports on the host and resends all packets which 344 arrive there to the guest, on the same or a different port.</para> 345 346 <para>To an application on the host or other physical (or virtual) 347 machines on the network, it looks as though the service being proxied is 348 actually running on the host. This also means that you cannot run the 349 same service on the same ports on the host. However, you still gain the 350 advantages of running the service in a virtual machine -- for example, 351 services on the host machine or on other virtual machines cannot be 352 compromised or crashed by a vulnerability or a bug in the service, and 353 the service can run in a different operating system than the host 354 system.</para> 355 356 <para>To configure Port Forwarding you can use the graphical Port 357 Forwarding editor which can be found in the Network Settings dialog 358 for Network Adaptors configured to use NAT. Here you can map host 359 ports to guest ports to allow network traffic to be routed to a 360 specific port in the guest.</para> 361 362 <para>Alternatively command line tool <computeroutput>VBoxManage</computeroutput> could be used; 363 for details, please refer to <xref linkend="vboxmanage-modifyvm" />.</para> 364 365 <para>You will need to know which ports on the guest the service uses 366 and to decide which ports to use on the host (often but not always you 367 will want to use the same ports on the guest and on the host). You can 368 use any ports on the host which are not already in use by a service. For 369 example, to set up incoming NAT connections to an 370 <computeroutput>ssh</computeroutput> server in the guest, use the 371 following command: <screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"</screen>With 372 the above example, all TCP traffic arriving on port 2222 on any host 373 interface will be forwarded to port 22 in the guest. The protocol name 374 <computeroutput>tcp</computeroutput> is a mandatory attribute defining 375 which protocol should be used for forwarding 376 (<computeroutput>udp</computeroutput> could also be used). The name 377 <computeroutput>guestssh</computeroutput> is purely descriptive and will 378 be auto-generated if omitted. The number after 379 <computeroutput>--natpf</computeroutput> denotes the network card, like 380 in other parts of VBoxManage.</para> 381 382 <para>To remove this forwarding rule again, use the following command: 383 <screen>VBoxManage modifyvm "VM name" --natpf1 delete "guestssh"</screen></para> 384 385 <para>If for some reason the guest uses a static assigned IP address not 386 leased from the built-in DHCP server, it is required to specify the 387 guest IP when registering the forwarding rule: <screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,10.0.2.19,22"</screen>This 388 example is identical to the previous one, except that the NAT engine is 389 being told that the guest can be found at the 10.0.2.19 address.</para> 390 391 <para>To forward <emphasis>all</emphasis> incoming traffic from a 392 specific host interface to the guest, specify the IP of that host 393 interface like this:<screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"</screen>This 394 forwards all TCP traffic arriving on the localhost interface (127.0.0.1) 395 via port 2222 to port 22 in the guest.</para> 396 397 <para>It is possible to configure incoming NAT connections while the 398 VM is running, see <xref linkend="vboxmanage-controlvm"/>.</para> 409 410 <title>Configuring Port Forwarding with NAT</title> 411 412 <para> 413 As the virtual machine is connected to a private network 414 internal to VirtualBox and invisible to the host, network 415 services on the guest are not accessible to the host machine or 416 to other computers on the same network. However, like a physical 417 router, VirtualBox can make selected services available to the 418 world outside the guest through <emphasis>port 419 forwarding</emphasis>. This means that VirtualBox listens to 420 certain ports on the host and resends all packets which arrive 421 there to the guest, on the same or a different port. 422 </para> 423 424 <para> 425 To an application on the host or other physical (or virtual) 426 machines on the network, it looks as though the service being 427 proxied is actually running on the host. This also means that 428 you cannot run the same service on the same ports on the host. 429 However, you still gain the advantages of running the service in 430 a virtual machine. For example, services on the host machine or 431 on other virtual machines cannot be compromised or crashed by a 432 vulnerability or a bug in the service, and the service can run 433 in a different operating system than the host system. 434 </para> 435 436 <para> 437 To configure port forwarding you can use the graphical Port 438 Forwarding editor which can be found in the Network Settings 439 dialog for network adaptors configured to use NAT. Here, you can 440 map host ports to guest ports to allow network traffic to be 441 routed to a specific port in the guest. 442 </para> 443 444 <para> 445 Alternatively, the command line tool 446 <computeroutput>VBoxManage</computeroutput> can be used. See 447 <xref linkend="vboxmanage-modifyvm" />. 448 </para> 449 450 <para> 451 You will need to know which ports on the guest the service uses 452 and to decide which ports to use on the host. You may want to 453 use the same ports on the guest and on the host. You can use any 454 ports on the host which are not already in use by a service. For 455 example, to set up incoming NAT connections to an 456 <computeroutput>ssh</computeroutput> server in the guest, use 457 the following command: 458 459 <screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,,22"</screen> 460 461 With the above example, all TCP traffic arriving on port 2222 on 462 any host interface will be forwarded to port 22 in the guest. 463 The protocol name <computeroutput>tcp</computeroutput> is a 464 mandatory attribute defining which protocol should be used for 465 forwarding, <computeroutput>udp</computeroutput> could also be 466 used. The name <computeroutput>guestssh</computeroutput> is 467 purely descriptive and will be auto-generated if omitted. The 468 number after <computeroutput>--natpf</computeroutput> denotes 469 the network card, as with other VBoxManage command. 470 </para> 471 472 <para> 473 To remove this forwarding rule, use the following command: 474 475 <screen>VBoxManage modifyvm "VM name" --natpf1 delete "guestssh"</screen> 476 </para> 477 478 <para> 479 If for some reason the guest uses a static assigned IP address 480 not leased from the built-in DHCP server, it is required to 481 specify the guest IP when registering the forwarding rule: 482 483 <screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,,2222,10.0.2.19,22"</screen> 484 485 This example is identical to the previous one, except that the 486 NAT engine is being told that the guest can be found at the 487 10.0.2.19 address. 488 </para> 489 490 <para> 491 To forward <emphasis>all</emphasis> incoming traffic from a 492 specific host interface to the guest, specify the IP of that 493 host interface like this: 494 495 <screen>VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"</screen> 496 497 This forwards all TCP traffic arriving on the localhost 498 interface (127.0.0.1) via port 2222 to port 22 in the guest. 499 </para> 500 501 <para> 502 It is possible to configure incoming NAT connections while the 503 VM is running, see <xref linkend="vboxmanage-controlvm"/>. 504 </para> 505 399 506 </sect2> 400 507 401 508 <sect2 id="nat-tftp"> 402 <title>PXE booting with NAT</title> 403 404 <para>PXE booting is now supported in NAT mode. The NAT DHCP server 405 provides a boot file name of the form 406 <computeroutput>vmname.pxe</computeroutput> if the directory 407 <computeroutput>TFTP</computeroutput> exists in the directory where the 408 user's <computeroutput>VirtualBox.xml</computeroutput> file is kept. It 409 is the responsibility of the user to provide 410 <computeroutput>vmname.pxe</computeroutput>.</para> 509 510 <title>PXE Booting with NAT</title> 511 512 <para> 513 PXE booting is now supported in NAT mode. The NAT DHCP server 514 provides a boot file name of the form 515 <computeroutput>vmname.pxe</computeroutput> if the directory 516 <computeroutput>TFTP</computeroutput> exists in the directory 517 where the user's <computeroutput>VirtualBox.xml</computeroutput> 518 file is kept. It is the responsibility of the user to provide 519 <computeroutput>vmname.pxe</computeroutput>. 520 </para> 521 411 522 </sect2> 412 523 413 524 <sect2 id="nat-limitations"> 414 <title>NAT limitations</title> 415 416 <para>There are four <emphasis role="bold">limitations</emphasis> of NAT 417 mode which users should be aware of:</para> 418 419 <glosslist> 420 <glossentry> 421 <glossterm>ICMP protocol limitations:</glossterm> 422 423 <glossdef> 424 <para>Some frequently used network debugging tools (e.g. 425 <computeroutput>ping</computeroutput> or tracerouting) rely on the 426 ICMP protocol for sending/receiving messages. While ICMP support 427 has been improved with VirtualBox 2.1 428 (<computeroutput>ping</computeroutput> should now work), some 429 other tools may not work reliably.</para> 430 </glossdef> 431 </glossentry> 432 433 <glossentry> 434 <glossterm>Receiving of UDP broadcasts is not reliable:</glossterm> 435 436 <glossdef> 437 <para>The guest does not reliably receive broadcasts, since, in 438 order to save resources, it only listens for a certain amount of 439 time after the guest has sent UDP data on a particular port. As a 440 consequence, NetBios name resolution based on broadcasts does not 441 always work (but WINS always works). As a workaround, you can use 442 the numeric IP of the desired server in the 443 <computeroutput>\\server\share</computeroutput> notation.</para> 444 </glossdef> 445 </glossentry> 446 447 <glossentry> 448 <glossterm>Protocols such as GRE are unsupported:</glossterm> 449 450 <glossdef> 451 <para>Protocols other than TCP and UDP are not supported. This 452 means some VPN products (e.g. PPTP from Microsoft) cannot be used. 453 There are other VPN products which use simply TCP and UDP.</para> 454 </glossdef> 455 </glossentry> 456 457 <glossentry> 458 <glossterm>Forwarding host ports < 1024 impossible:</glossterm> 459 460 <glossdef> 461 <para>On Unix-based hosts (e.g. Linux, Solaris, Mac OS X) it is 462 not possible to bind to ports below 1024 from applications that 463 are not run by <computeroutput>root</computeroutput>. As a result, 464 if you try to configure such a port forwarding, the VM will refuse 465 to start.</para> 466 </glossdef> 467 </glossentry> 468 </glosslist> 469 470 <para>These limitations normally don't affect standard network use. But 471 the presence of NAT has also subtle effects that may interfere with 472 protocols that are normally working. One example is NFS, where the 473 server is often configured to refuse connections from non-privileged 474 ports (i.e. ports not below 1024).</para> 525 526 <title>NAT Limitations</title> 527 528 <para> 529 There are some limitations of NAT mode which users should be 530 aware of, as follows: 531 </para> 532 533 <itemizedlist> 534 535 <listitem> 536 <para> 537 <emphasis role="bold">ICMP protocol limitations.</emphasis> 538 Some frequently used network debugging tools, such as 539 <computeroutput>ping</computeroutput> or tracerouting, rely 540 on the ICMP protocol for sending and receiving messages. 541 While ICMP support has been improved with VirtualBox 2.1, 542 meaning <computeroutput>ping</computeroutput> should now 543 work, some other tools may not work reliably. 544 </para> 545 </listitem> 546 547 <listitem> 548 <para> 549 <emphasis role="bold">Receiving of UDP 550 broadcasts.</emphasis> The guest does not reliably receive 551 UDP broadcasts. In order to save resources, it only listens 552 for a certain amount of time after the guest has sent UDP 553 data on a particular port. As a consequence, NetBios name 554 resolution based on broadcasts does not always work, but 555 WINS always works. As a workaround, you can use the numeric 556 IP of the desired server in the 557 <computeroutput>\\server\share</computeroutput> notation. 558 </para> 559 </listitem> 560 561 <listitem> 562 <para> 563 <emphasis role="bold">Some protocols are not 564 supported.</emphasis> Protocols other than TCP and UDP are 565 not supported. GRE is not supported. This means some VPN 566 products, such as PPTP from Microsoft, cannot be used. There 567 are other VPN products which use only TCP and UDP. 568 </para> 569 </listitem> 570 571 <listitem> 572 <para> 573 <emphasis role="bold">Forwarding host ports below 574 1024.</emphasis> On Unix-based hosts, such as Linux, 575 Solaris, and Mac OS X, it is not possible to bind to ports 576 below 1024 from applications that are not run by 577 <computeroutput>root</computeroutput>. As a result, if you 578 try to configure such a port forwarding, the VM will refuse 579 to start. 580 </para> 581 </listitem> 582 583 </itemizedlist> 584 585 <para> 586 These limitations normally do not affect standard network use. 587 But the presence of NAT has also subtle effects that may 588 interfere with protocols that are normally working. One example 589 is NFS, where the server is often configured to refuse 590 connections from non-privileged ports, which are those ports not 591 below 1024. 592 </para> 593 475 594 </sect2> 595 476 596 </sect1> 477 597 478 598 <sect1 id="network_nat_service"> 599 479 600 <title>Network Address Translation Service</title> 480 601 481 <para>The Network Address Translation (NAT) service works in a similar way 482 to a home router, grouping the systems using it into a network and 483 preventing systems outside of this network from directly accessing systems 484 inside it, but letting systems inside communicate with each other and with 485 systems outside using TCP and UDP over IPv4 and IPv6.</para> 486 487 <para>A NAT service is attached to an internal network. Virtual machines 488 which are to make use of it should be attached to that internal network. 489 The name of internal network is chosen when the NAT service is created and 490 the internal network will be created if it does not already exist. An 491 example command to create a NAT network is: 492 </para> 493 <para><screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable</screen></para> 494 <para> 495 Here, "natnet1" is the name of the internal network to be used and 496 "192.168.15.0/24" is the network address and mask of the NAT service 497 interface. By default in this static configuration the gateway will be 498 assigned the address 192.168.15.1 (the address following the interface 499 address), though this is subject to change. To attach a DHCP server to the 500 internal network, we modify the example as follows:</para> 501 <para><screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable --dhcp on</screen></para> 502 <para> or to add a DHCP server to the network after creation:</para> 503 <para><screen>VBoxManage natnetwork modify --netname natnet1 --dhcp on</screen></para> 504 <para>To disable it again, use:</para> 505 <para><screen>VBoxManage natnetwork modify --netname natnet1 --dhcp off</screen></para> 506 <para>DHCP server provides list of registered nameservers, but doesn't map 507 servers from 127/8 network.</para> 508 <para>To start the NAT service, use the following command:</para> 509 <para><screen>VBoxManage natnetwork start --netname natnet1</screen></para> 510 <para>If the network has a DHCP server attached then it will start together 511 with the NAT network service.</para> 512 <para><screen>VBoxManage natnetwork stop --netname natnet1</screen> stops 513 the NAT network service, together with DHCP server if any.</para> 514 <para>To delete the NAT network service use:</para> 515 <para><screen>VBoxManage natnetwork remove --netname natnet1</screen></para> 516 <para>This command does not remove the DHCP server if one is enabled on the 517 internal network.</para> 518 <para>Port-forwarding is supported (using the 519 <computeroutput>--port-forward-4</computeroutput> switch for IPv4 and 520 <computeroutput>--port-forward-6</computeroutput> 521 for IPv6):</para> 522 <para><screen>VBoxManage natnetwork modify --netname natnet1 --port-forward-4 "ssh:tcp:[]:1022:[192.168.15.5]:22"</screen></para> 523 <para>This adds a port-forwarding rule from the host's TCP 1022 port to 524 the port 22 on the guest with IP address 192.168.15.5. Host port, guest port and guest IP 525 are mandatory. To delete the rule, use:</para> 526 <para><screen>VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete ssh</screen></para> 527 <para>It's possible to bind NAT service to specified interface:</para> 528 <screen>VBoxManage setextradata global "NAT/win-nat-test-0/SourceIp4" 192.168.1.185</screen> 529 <para>To see the list of registered NAT networks, use:</para> 530 <para><screen>VBoxManage list natnetworks</screen></para> 602 <para> 603 The Network Address Translation (NAT) service works in a similar 604 way to a home router, grouping the systems using it into a network 605 and preventing systems outside of this network from directly 606 accessing systems inside it, but letting systems inside 607 communicate with each other and with systems outside using TCP and 608 UDP over IPv4 and IPv6. 609 </para> 610 611 <para> 612 A NAT service is attached to an internal network. Virtual machines 613 which are to make use of it should be attached to that internal 614 network. The name of internal network is chosen when the NAT 615 service is created and the internal network will be created if it 616 does not already exist. An example command to create a NAT network 617 is: 618 </para> 619 620 <para> 621 <screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable</screen> 622 </para> 623 624 <para> 625 Here, natnet1 is the name of the internal network to be used and 626 192.168.15.0/24 is the network address and mask of the NAT service 627 interface. By default in this static configuration the gateway 628 will be assigned the address 192.168.15.1, the address following 629 the interface address, though this is subject to change. To attach 630 a DHCP server to the internal network, we modify the example as 631 follows: 632 </para> 633 634 <para> 635 <screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable --dhcp on</screen> 636 </para> 637 638 <para> 639 To add a DHCP server to an existing network: 640 </para> 641 642 <para> 643 <screen>VBoxManage natnetwork modify --netname natnet1 --dhcp on</screen> 644 </para> 645 646 <para> 647 To disable the DHCP server: 648 </para> 649 650 <para> 651 <screen>VBoxManage natnetwork modify --netname natnet1 --dhcp off</screen> 652 </para> 653 654 <para> 655 A DHCP server provides a list of registered nameservers, but does 656 not map servers from the 127/8 network. 657 </para> 658 659 <para> 660 To start the NAT service, use the following command: 661 </para> 662 663 <para> 664 <screen>VBoxManage natnetwork start --netname natnet1</screen> 665 </para> 666 667 <para> 668 If the network has a DHCP server attached then it will start 669 together with the NAT network service. 670 </para> 671 672 <para> 673 To stops the NAT network service, together with any DHCP server: 674 </para> 675 676 <para> 677 <screen>VBoxManage natnetwork stop --netname natnet1</screen> 678 </para> 679 680 <para> 681 To delete the NAT network service: 682 </para> 683 684 <para> 685 <screen>VBoxManage natnetwork remove --netname natnet1</screen> 686 </para> 687 688 <para> 689 This command does not remove the DHCP server if one is enabled on 690 the internal network. 691 </para> 692 693 <para> 694 Port-forwarding is supported, using the 695 <computeroutput>--port-forward-4</computeroutput> switch for IPv4 696 and <computeroutput>--port-forward-6</computeroutput> for IPv6. 697 For example: 698 </para> 699 700 <para> 701 <screen>VBoxManage natnetwork modify \ 702 --netname natnet1 --port-forward-4 "ssh:tcp:[]:1022:[192.168.15.5]:22"</screen> 703 </para> 704 705 <para> 706 This adds a port-forwarding rule from the host's TCP 1022 port to 707 the port 22 on the guest with IP address 192.168.15.5. Host port, 708 guest port and guest IP are mandatory. To delete the rule, use: 709 </para> 710 711 <para> 712 <screen>VBoxManage natnetwork modify --netname natnet1 --port-forward-4 delete ssh</screen> 713 </para> 714 715 <para> 716 It is possible to bind a NAT service to specified interface. For 717 example: 718 </para> 719 720 <screen>VBoxManage setextradata global "NAT/win-nat-test-0/SourceIp4" 192.168.1.185</screen> 721 722 <para> 723 To see the list of registered NAT networks, use: 724 </para> 725 726 <para> 727 <screen>VBoxManage list natnetworks</screen> 728 </para> 729 531 730 </sect1> 532 731 533 732 <sect1 id="network_bridged"> 534 <title>Bridged networking</title> 535 536 <para>With bridged networking, VirtualBox uses a device driver on your 537 <emphasis>host</emphasis> system that filters data from your physical 538 network adapter. This driver is therefore called a "net filter" driver. 539 This allows VirtualBox to intercept data from the physical network and 540 inject data into it, effectively creating a new network interface in 541 software. When a guest is using such a new software interface, it looks to 542 the host system as though the guest were physically connected to the 543 interface using a network cable: the host can send data to the guest 544 through that interface and receive data from it. This means that you can 545 set up routing or bridging between the guest and the rest of your 546 network.</para> 547 548 <para>For this to work, VirtualBox needs a device driver on your host 549 system. The way bridged networking works has been completely rewritten 550 with VirtualBox 2.0 and 2.1, depending on the host operating system. From 551 the user perspective, the main difference is that complex configuration is 552 no longer necessary on any of the supported host operating 553 systems.<footnote> 554 <para>For Mac OS X and Solaris hosts, net filter drivers were already 555 added in VirtualBox 2.0 (as initial support for Host Interface 556 Networking on these platforms). With VirtualBox 2.1, net filter 557 drivers were also added for the Windows and Linux hosts, replacing the 558 mechanisms previously present in VirtualBox for those platforms; 559 especially on Linux, the earlier method required creating TAP 560 interfaces and bridges, which was complex and varied from one 561 distribution to the next. None of this is necessary anymore. Bridged 562 network was formerly called "Host Interface Networking" and has been 563 renamed with version 2.2 without any change in functionality.</para> 564 </footnote></para> 565 566 <para><note> 567 <para>Even though TAP is no longer necessary on Linux with bridged 568 networking, you <emphasis>can</emphasis> still use TAP interfaces for 569 certain advanced setups, since you can connect a VM to any host 570 interface -- which could also be a TAP interface.</para> 571 </note>To enable bridged networking, all you need to do is to open the 572 Settings dialog of a virtual machine, go to the "Network" page and select 573 "Bridged network" in the drop down list for the "Attached to" field. 574 Finally, select desired host interface from the list at the bottom of the 575 page, which contains the physical network interfaces of your systems. On a 576 typical MacBook, for example, this will allow you to select between "en1: 577 AirPort" (which is the wireless interface) and "en0: Ethernet", which 578 represents the interface with a network cable.</para> 579 580 <note><para>Bridging to a wireless interface is done differently from 581 bridging to a wired interface, because most wireless adapters do not 582 support promiscuous mode. All traffic has to use the MAC address of the 583 host's wireless adapter, and therefore VirtualBox needs to replace the 584 source MAC address in the Ethernet header of an outgoing packet to make 585 sure the reply will be sent to the host interface. When VirtualBox sees 586 an incoming packet with a destination IP address that belongs to one of 587 the virtual machine adapters it replaces the destination MAC address in 588 the Ethernet header with the VM adapter's MAC address and passes it on. 589 VirtualBox examines ARP and DHCP packets in order to learn the IP 590 addresses of virtual machines.</para></note> 591 592 <para>Depending on your host operating system, the following limitations 593 should be kept in mind:<itemizedlist> 594 <listitem> 595 <para>On <emphasis role="bold">Macintosh</emphasis> hosts, 596 functionality is limited when using AirPort (the Mac's wireless 597 networking) for bridged networking. Currently, VirtualBox supports 598 only IPv4 and IPv6 over AirPort. For other protocols (such as IPX), 599 you must choose a wired interface.</para> 600 </listitem> 601 602 <listitem> 603 <para>On <emphasis role="bold">Linux</emphasis> hosts, functionality 604 is limited when using wireless interfaces for bridged networking. 605 Currently, VirtualBox supports only IPv4 and IPv6 over wireless. 606 For other protocols (such as IPX), you must choose a wired 607 interface.</para> 608 609 <para>Also, setting the MTU to less than 1500 bytes on wired 610 interfaces provided by the sky2 driver on the Marvell Yukon II EC 611 Ultra Ethernet NIC is known to cause packet losses under certain 612 conditions.</para> 613 614 <para>Some adapters strip VLAN tags in hardware. This does not allow 733 734 <title>Bridged Networking</title> 735 736 <para> 737 With bridged networking, VirtualBox uses a device driver on your 738 <emphasis>host</emphasis> system that filters data from your 739 physical network adapter. This driver is therefore called a 740 <emphasis>net filter</emphasis> driver. This allows VirtualBox to 741 intercept data from the physical network and inject data into it, 742 effectively creating a new network interface in software. When a 743 guest is using such a new software interface, it looks to the host 744 system as though the guest were physically connected to the 745 interface using a network cable. The host can send data to the 746 guest through that interface and receive data from it. This means 747 that you can set up routing or bridging between the guest and the 748 rest of your network. 749 </para> 750 751 <para> 752 For this to work, VirtualBox needs a device driver on your host 753 system. The way bridged networking works has been completely 754 rewritten with VirtualBox 2.0 and 2.1, depending on the host 755 operating system. From the user perspective, the main difference 756 is that complex configuration is no longer necessary on any of the 757 supported host operating systems. 758 759 <footnote> 760 761 <para> 762 For Mac OS X and Solaris hosts, net filter drivers were 763 already added in VirtualBox 2.0, as initial support for Host 764 Interface Networking on these platforms. With VirtualBox 2.1, 765 net filter drivers were also added for the Windows and Linux 766 hosts, replacing the mechanisms previously present in 767 VirtualBox for those platforms; especially on Linux, the 768 earlier method required creating TAP interfaces and bridges, 769 which was complex and varied from one distribution to the 770 next. None of this is necessary anymore. Bridged network was 771 formerly called Host Interface Networking and has been renamed 772 with version 2.2 without any change in functionality. 773 </para> 774 775 </footnote> 776 </para> 777 778 <note> 779 <para> 780 Even though TAP is no longer necessary on Linux with bridged 781 networking, you <emphasis>can</emphasis> still use TAP 782 interfaces for certain advanced setups, since you can connect a 783 VM to any host interface. 784 </para> 785 </note> 786 787 <para> 788 To enable bridged networking, open the Settings dialog of a 789 virtual machine, go to the Network page and select 790 <emphasis role="bold">Bridged Network</emphasis> in the drop-down 791 list for the Attached To field. Select a host interface from the 792 list at the bottom of the page, which contains the physical 793 network interfaces of your systems. On a typical MacBook, for 794 example, this will allow you to select between en1: AirPort, which 795 is the wireless interface, and en0: Ethernet, which represents the 796 interface with a network cable. 797 </para> 798 799 <note> 800 <para> 801 Bridging to a wireless interface is done differently from 802 bridging to a wired interface, because most wireless adapters do 803 not support promiscuous mode. All traffic has to use the MAC 804 address of the host's wireless adapter, and therefore VirtualBox 805 needs to replace the source MAC address in the Ethernet header 806 of an outgoing packet to make sure the reply will be sent to the 807 host interface. When VirtualBox sees an incoming packet with a 808 destination IP address that belongs to one of the virtual 809 machine adapters it replaces the destination MAC address in the 810 Ethernet header with the VM adapter's MAC address and passes it 811 on. VirtualBox examines ARP and DHCP packets in order to learn 812 the IP addresses of virtual machines. 813 </para> 814 </note> 815 816 <para> 817 Depending on your host operating system, the following limitations 818 apply: 819 </para> 820 821 <itemizedlist> 822 823 <listitem> 824 <para> 825 <emphasis role="bold">Mac OS X hosts.</emphasis> Functionality 826 is limited when using AirPort, the Mac's wireless networking 827 system, for bridged networking. Currently, VirtualBox supports 828 only IPv4 and IPv6 over AirPort. For other protocols, such as 829 IPX, you must choose a wired interface. 830 </para> 831 </listitem> 832 833 <listitem> 834 <para> 835 <emphasis role="bold">Linux hosts.</emphasis> Functionality is 836 limited when using wireless interfaces for bridged networking. 837 Currently, VirtualBox supports only IPv4 and IPv6 over 838 wireless. For other protocols, such as IPX, you must choose a 839 wired interface. 840 </para> 841 842 <para> 843 Also, setting the MTU to less than 1500 bytes on wired 844 interfaces provided by the sky2 driver on the Marvell Yukon II 845 EC Ultra Ethernet NIC is known to cause packet losses under 846 certain conditions. 847 </para> 848 849 <para> 850 Some adapters strip VLAN tags in hardware. This does not allow 615 851 to use VLAN trunking between VM and the external network with 616 pre-2.6.27 Linux kernels nor with host operating systems other than 617 Linux.</para> 618 </listitem> 619 620 <listitem> 621 <para>On <emphasis role="bold">Solaris</emphasis> hosts, there is no 622 support for using wireless interfaces. Filtering guest traffic using 623 IPFilter is also not completely supported due to technical 624 restrictions of the Solaris networking subsystem. These issues would 625 be addressed in a future release of Solaris 11.</para> 626 627 <para>Starting with VirtualBox 4.1, on Solaris 11 hosts (build 159 628 and above), it is possible to use Solaris' Crossbow Virtual Network 629 Interfaces (VNICs) directly with VirtualBox without any additional 630 configuration other than each VNIC must be exclusive for every guest 631 network interface.</para> 632 633 <para>Starting with VirtualBox 2.0.4 and up to VirtualBox 4.0, VNICs 634 can be used but with the following caveats:</para> 635 636 <itemizedlist> 637 <listitem> 638 <para>A VNIC cannot be shared between multiple guest network 639 interfaces, i.e. each guest network interface must have its own, 640 exclusive VNIC.</para> 641 </listitem> 642 643 <listitem> 644 <para>The VNIC and the guest network interface that uses the 645 VNIC must be assigned identical MAC addresses.</para> 646 </listitem> 647 </itemizedlist> 648 649 <para>When using VLAN interfaces with VirtualBox, they must be named 650 according to the PPA-hack naming scheme (e.g. "e1000g513001"), as 651 otherwise the guest may receive packets in an unexpected 652 format.</para> 653 </listitem> 654 </itemizedlist></para> 852 pre-2.6.27 Linux kernels nor with host operating systems other 853 than Linux. 854 </para> 855 </listitem> 856 857 <listitem> 858 <para> 859 <emphasis role="bold">Solaris hosts.</emphasis> There is no 860 support for using wireless interfaces. Filtering guest traffic 861 using IPFilter is also not completely supported due to 862 technical restrictions of the Solaris networking subsystem. 863 These issues would be addressed in a future release of Solaris 864 11. 865 </para> 866 867 <para> 868 Starting with VirtualBox 4.1, on Solaris 11 hosts build 159 869 and above, it is possible to use Solaris Crossbow Virtual 870 Network Interfaces (VNICs) directly with VirtualBox without 871 any additional configuration other than each VNIC must be 872 exclusive for every guest network interface. 873 </para> 874 875 <para> 876 Starting with VirtualBox 2.0.4 and up to VirtualBox 4.0, VNICs 877 can be used, but with the following caveats: 878 </para> 879 880 <itemizedlist> 881 882 <listitem> 883 <para> 884 A VNIC cannot be shared between multiple guest network 885 interfaces. For example, each guest network interface must 886 have its own, exclusive VNIC. 887 </para> 888 </listitem> 889 890 <listitem> 891 <para> 892 The VNIC and the guest network interface that uses the 893 VNIC must be assigned identical MAC addresses. 894 </para> 895 </listitem> 896 897 </itemizedlist> 898 899 <para> 900 When using VLAN interfaces with VirtualBox, they must be named 901 according to the PPA-hack naming scheme, such as e1000g513001. 902 Otherwise, the guest may receive packets in an unexpected 903 format. 904 </para> 905 </listitem> 906 907 </itemizedlist> 908 655 909 </sect1> 656 910 657 911 <sect1 id="network_internal"> 658 <title>Internal networking</title> 659 660 <para>Internal Networking is similar to bridged networking in that the VM 661 can directly communicate with the outside world. However, the "outside 662 world" is limited to other VMs on the same host which connect to the same 663 internal network.</para> 664 665 <para>Even though technically, everything that can be done using internal 666 networking can also be done using bridged networking, there are security 667 advantages with internal networking. In bridged networking mode, all 668 traffic goes through a physical interface of the host system. It is 669 therefore possible to attach a packet sniffer (such as Wireshark) to the 670 host interface and log all traffic that goes over it. If, for any reason, 671 you prefer two or more VMs on the same machine to communicate privately, 672 hiding their data from both the host system and the user, bridged 673 networking therefore is not an option.</para> 674 675 <para>Internal networks are created automatically as needed, i.e. there is 676 no central configuration. Every internal network is identified simply by 677 its name. Once there is more than one active virtual network card with the 678 same internal network ID, the VirtualBox support driver will automatically 679 "wire" the cards and act as a network switch. The VirtualBox support 680 driver implements a complete Ethernet switch and supports both 681 broadcast/multicast frames and promiscuous mode.</para> 682 683 <para>In order to attach a VM's network card to an internal network, set 684 its networking mode to "internal networking". There are two ways to 685 accomplish this:</para> 686 687 <para><itemizedlist> 688 <listitem> 689 <para>You can use a VM's "Settings" dialog in the VirtualBox 690 graphical user interface. In the "Networking" category of the 691 settings dialog, select "Internal Networking" from the drop-down 692 list of networking modes. Now select the name of an existing 693 internal network from the drop-down below or enter a new name into 694 the entry field.</para> 695 </listitem> 696 697 <listitem> 698 <para>You can use <screen>VBoxManage modifyvm "VM name" --nic<x> intnet</screen> 699 Optionally, you can specify a network name with the command <screen>VBoxManage modifyvm "VM name" --intnet<x> "network name"</screen> 912 913 <title>Internal Networking</title> 914 915 <para> 916 Internal Networking is similar to bridged networking in that the 917 VM can directly communicate with the outside world. However, the 918 outside world is limited to other VMs on the same host which 919 connect to the same internal network. 920 </para> 921 922 <para> 923 Even though technically, everything that can be done using 924 internal networking can also be done using bridged networking, 925 there are security advantages with internal networking. In bridged 926 networking mode, all traffic goes through a physical interface of 927 the host system. It is therefore possible to attach a packet 928 sniffer such as Wireshark to the host interface and log all 929 traffic that goes over it. If, for any reason, you prefer two or 930 more VMs on the same machine to communicate privately, hiding 931 their data from both the host system and the user, bridged 932 networking therefore is not an option. 933 </para> 934 935 <para> 936 Internal networks are created automatically as needed. There is no 937 central configuration. Every internal network is identified simply 938 by its name. Once there is more than one active virtual network 939 card with the same internal network ID, the VirtualBox support 940 driver will automatically <emphasis>wire</emphasis> the cards and 941 act as a network switch. The VirtualBox support driver implements 942 a complete Ethernet switch and supports both broadcast/multicast 943 frames and promiscuous mode. 944 </para> 945 946 <para> 947 In order to attach a VM's network card to an internal network, set 948 its networking mode to Internal Networking. There are two ways to 949 accomplish this: 950 </para> 951 952 <itemizedlist> 953 954 <listitem> 955 <para> 956 Use the VM's Settings dialog in the VirtualBox graphical user 957 interface. In the Networking category of the settings dialog, 958 select <emphasis role="bold">Internal Networking</emphasis> 959 from the drop-down list of networking modes. Select the name 960 of an existing internal network from the drop-down list below, 961 or enter a new name into the entry field. 962 </para> 963 </listitem> 964 965 <listitem> 966 <para> 967 Use the command line, for example: 968 </para> 969 970 <screen>VBoxManage modifyvm "VM name" --nic<x> intnet</screen> 971 972 <para> 973 Optionally, you can specify a network name with the command: 974 </para> 975 976 <screen>VBoxManage modifyvm "VM name" --intnet<x> "network name"</screen> 977 978 <para> 700 979 If you do not specify a network name, the network card will be 701 attached to the network <computeroutput>intnet</computeroutput> by 702 default.</para> 703 </listitem> 704 </itemizedlist></para> 705 706 <para>Unless you configure the (virtual) network cards in the guest 707 operating systems that are participating in the internal network to use 708 static IP addresses, you may want to use the DHCP server that is built 709 into VirtualBox to manage IP addresses for the internal network. Please 710 see <xref linkend="vboxmanage-dhcpserver" /> for details.</para> 711 712 <para>As a security measure, by default, the Linux implementation of internal 713 networking only allows VMs running under the same user ID to establish an 714 internal network. However, it is possible to create a shared 715 internal networking interface, accessible by users with different UUIds.</para> 980 attached to the network 981 <computeroutput>intnet</computeroutput> by default. 982 </para> 983 </listitem> 984 985 </itemizedlist> 986 987 <para> 988 Unless you configure the virtual network cards in the guest 989 operating systems that are participating in the internal network 990 to use static IP addresses, you may want to use the DHCP server 991 that is built into VirtualBox to manage IP addresses for the 992 internal network. See <xref linkend="vboxmanage-dhcpserver" />. 993 </para> 994 995 <para> 996 As a security measure, by default, the Linux implementation of 997 internal networking only allows VMs running under the same user ID 998 to establish an internal network. However, it is possible to 999 create a shared internal networking interface, accessible by users 1000 with different user IDs. 1001 </para> 1002 716 1003 </sect1> 717 1004 718 1005 <sect1 id="network_hostonly"> 719 <title>Host-only networking</title> 720 721 <para>Host-only networking is another networking mode that was added with 722 version 2.2 of VirtualBox. It can be thought of as a hybrid between the 723 bridged and internal networking modes: as with bridged networking, the 724 virtual machines can talk to each other and the host as if they were 725 connected through a physical Ethernet switch. Similarly, as with internal 726 networking however, a physical networking interface need not be present, 727 and the virtual machines cannot talk to the world outside the host since 728 they are not connected to a physical networking interface.</para> 729 730 <para>Instead, when host-only networking is used, VirtualBox creates a new 731 software interface on the host which then appears next to your existing 732 network interfaces. In other words, whereas with bridged networking an 733 existing physical interface is used to attach virtual machines to, with 734 host-only networking a new "loopback" interface is created on the host. 735 And whereas with internal networking, the traffic between the virtual 736 machines cannot be seen, the traffic on the "loopback" interface on the 737 host can be intercepted.</para> 738 739 <para>Host-only networking is particularly useful for preconfigured 740 virtual appliances, where multiple virtual machines are shipped together 741 and designed to cooperate. For example, one virtual machine may contain a 742 web server and a second one a database, and since they are intended to 743 talk to each other, the appliance can instruct VirtualBox to set up a 744 host-only network for the two. A second (bridged) network would then 745 connect the web server to the outside world to serve data to, but the 746 outside world cannot connect to the database.</para> 747 748 <para>To change a virtual machine's virtual network interface to "host 749 only" mode:<itemizedlist> 750 <listitem> 751 <para>either go to the "Network" page in the virtual machine's 752 settings notebook in the graphical user interface and select 753 "Host-only networking", or</para> 754 </listitem> 755 756 <listitem> 757 <para>on the command line, type <computeroutput>VBoxManage modifyvm 758 "VM name" --nic<x> hostonly</computeroutput>; see <xref 759 linkend="vboxmanage-modifyvm" /> for details.</para> 760 </listitem> 761 </itemizedlist></para> 762 763 <para>Before you can attach a VM to a host-only network you have to 764 create at least one host-only interface, either from the GUI: 765 "File" → "Preferences" → "Network" → "Host-only network" 766 → "(+)Add host-only network", or via command line with</para> 767 <screen>VBoxManage hostonlyif create</screen> 768 <para>see <xref linkend="vboxmanage-hostonlyif" /> for details.</para> 769 770 <para>For host-only networking, like with internal networking, you may 771 find the DHCP server useful that is built into VirtualBox. This can be 772 enabled to then manage the IP addresses in the host-only network since 773 otherwise you would need to configure all IP addresses 774 statically.<itemizedlist> 775 <listitem> 776 <para>In the VirtualBox graphical user interface, you can configure 777 all these items in the global settings via "File" → "Preferences" 778 → "Network", which lists all host-only networks which are 779 presently in use. Click on the network name and then on the "Edit" 780 button to the right, and you can modify the adapter and DHCP 781 settings.</para> 782 </listitem> 783 784 <listitem> 785 <para>Alternatively, you can use <computeroutput>VBoxManage 786 dhcpserver</computeroutput> on the command line; please see <xref 787 linkend="vboxmanage-dhcpserver" /> for details.</para> 788 </listitem> 789 </itemizedlist> 790 </para> 791 792 <para><note><para>On Linux and Mac OS X hosts the number of host-only 793 interfaces is limited to 128. There is no such limit for Solaris and 794 Windows hosts.</para></note></para> 1006 1007 <title>Host-Only Networking</title> 1008 1009 <para> 1010 Host-only networking is another networking mode that was added 1011 with version 2.2 of VirtualBox. It can be thought of as a hybrid 1012 between the bridged and internal networking modes. As with bridged 1013 networking, the virtual machines can talk to each other and the 1014 host as if they were connected through a physical Ethernet switch. 1015 As with internal networking, a physical networking interface need 1016 not be present, and the virtual machines cannot talk to the world 1017 outside the host since they are not connected to a physical 1018 networking interface. 1019 </para> 1020 1021 <para> 1022 When host-only networking is used, VirtualBox creates a new 1023 software interface on the host which then appears next to your 1024 existing network interfaces. In other words, whereas with bridged 1025 networking an existing physical interface is used to attach 1026 virtual machines to, with host-only networking a new 1027 <emphasis>loopback</emphasis> interface is created on the host. 1028 And whereas with internal networking, the traffic between the 1029 virtual machines cannot be seen, the traffic on the loopback 1030 interface on the host can be intercepted. 1031 </para> 1032 1033 <para> 1034 Host-only networking is particularly useful for preconfigured 1035 virtual appliances, where multiple virtual machines are shipped 1036 together and designed to cooperate. For example, one virtual 1037 machine may contain a web server and a second one a database, and 1038 since they are intended to talk to each other, the appliance can 1039 instruct VirtualBox to set up a host-only network for the two. A 1040 second, bridged, network would then connect the web server to the 1041 outside world to serve data to, but the outside world cannot 1042 connect to the database. 1043 </para> 1044 1045 <para> 1046 To change a virtual machine's virtual network interface to Host 1047 Only mode, do either of the following: 1048 </para> 1049 1050 <itemizedlist> 1051 1052 <listitem> 1053 <para> 1054 Go to the Network page in the virtual machine's Settings 1055 dialog and select <emphasis role="bold">Host-Only 1056 Networking</emphasis>. 1057 </para> 1058 </listitem> 1059 1060 <listitem> 1061 <para> 1062 On the command line, type <computeroutput>VBoxManage modifyvm 1063 "VM name" --nic<x> hostonly</computeroutput>. See 1064 <xref 1065 linkend="vboxmanage-modifyvm" />. 1066 </para> 1067 </listitem> 1068 1069 </itemizedlist> 1070 1071 <para> 1072 Before you can attach a VM to a host-only network you have to 1073 create at least one host-only interface. You can use the GUI for 1074 this. Choose <emphasis role="bold">File</emphasis>, 1075 <emphasis role="bold">Preferences</emphasis>, 1076 <emphasis role="bold">Network</emphasis>, 1077 <emphasis role="bold">Host-Only Network</emphasis>, 1078 <emphasis role="bold">(+)Add Host-Only Network</emphasis>. 1079 </para> 1080 1081 <para> 1082 Alternatively, you can use the command line: 1083 </para> 1084 1085 <screen>VBoxManage hostonlyif create</screen> 1086 1087 <para> 1088 See <xref linkend="vboxmanage-hostonlyif" />. 1089 </para> 1090 1091 <para> 1092 For host-only networking, as with internal networking, you may 1093 find the DHCP server useful that is built into VirtualBox. This 1094 can be enabled to then manage the IP addresses in the host-only 1095 network since otherwise you would need to configure all IP 1096 addresses statically. 1097 </para> 1098 1099 <itemizedlist> 1100 1101 <listitem> 1102 <para> 1103 In the VirtualBox graphical user interface, you can configure 1104 all these items in the global settings by choosing 1105 <emphasis role="bold">File</emphasis>, 1106 <emphasis role="bold">Preferences</emphasis>, 1107 <emphasis role="bold">Network</emphasis>. This lists all 1108 host-only networks which are presently in use. Click on the 1109 network name and then on 1110 <emphasis role="bold">Edit</emphasis>. You can then modify the 1111 adapter and DHCP settings. 1112 </para> 1113 </listitem> 1114 1115 <listitem> 1116 <para> 1117 Alternatively, you can use <computeroutput>VBoxManage 1118 dhcpserver</computeroutput> on the command line. See 1119 <xref 1120 linkend="vboxmanage-dhcpserver" />. 1121 </para> 1122 </listitem> 1123 1124 </itemizedlist> 1125 1126 <note> 1127 <para> 1128 On Linux and Mac OS X hosts the number of host-only interfaces 1129 is limited to 128. There is no such limit for Solaris and 1130 Windows hosts. 1131 </para> 1132 </note> 1133 795 1134 </sect1> 796 1135 797 1136 <sect1 id="network_udp_tunnel"> 798 <title>UDP Tunnel networking</title> 799 800 <para>This networking mode allows to interconnect virtual machines running 801 on different hosts.</para> 802 803 <para>Technically this is done by encapsulating Ethernet frames sent or 804 received by the guest network card into UDP/IP datagrams, and sending them 805 over any network available to the host.</para> 806 807 <para>UDP Tunnel mode has three parameters:<glosslist> 808 <glossentry> 809 <glossterm>Source UDP port</glossterm> 810 811 <glossdef> 812 <para>The port on which the host listens. Datagrams arriving on 813 this port from any source address will be forwarded to the 814 receiving part of the guest network card.</para> 815 </glossdef> 816 </glossentry> 817 818 <glossentry> 819 <glossterm>Destination address</glossterm> 820 821 <glossdef> 822 <para>IP address of the target host of the transmitted 823 data.</para> 824 </glossdef> 825 </glossentry> 826 827 <glossentry> 828 <glossterm>Destination UDP port</glossterm> 829 830 <glossdef> 831 <para>Port number to which the transmitted data is sent.</para> 832 </glossdef> 833 </glossentry> 834 </glosslist></para> 835 836 <para>When interconnecting two virtual machines on two different hosts, 837 their IP addresses must be swapped. On single host, source and destination 838 UDP ports must be swapped.</para> 839 840 <para>In the following example host 1 uses the IP address 10.0.0.1 and 841 host 2 uses IP address 10.0.0.2. Configuration via command-line:<screen> VBoxManage modifyvm "VM 01 on host 1" --nic<x> generic 1137 1138 <title>UDP Tunnel Networking</title> 1139 1140 <para> 1141 This networking mode allows you to interconnect virtual machines 1142 running on different hosts. 1143 </para> 1144 1145 <para> 1146 Technically this is done by encapsulating Ethernet frames sent or 1147 received by the guest network card into UDP/IP datagrams, and 1148 sending them over any network available to the host. 1149 </para> 1150 1151 <para> 1152 UDP Tunnel mode has the following parameters: 1153 </para> 1154 1155 <itemizedlist> 1156 1157 <listitem> 1158 <para> 1159 <emphasis role="bold">Source UDP port:</emphasis> The port on 1160 which the host listens. Datagrams arriving on this port from 1161 any source address will be forwarded to the receiving part of 1162 the guest network card. 1163 </para> 1164 </listitem> 1165 1166 <listitem> 1167 <para> 1168 <emphasis role="bold">Destination address:</emphasis> IP 1169 address of the target host of the transmitted data. 1170 </para> 1171 </listitem> 1172 1173 <listitem> 1174 <para> 1175 <emphasis role="bold">Destination UDP port:</emphasis> Port 1176 number to which the transmitted data is sent. 1177 </para> 1178 </listitem> 1179 1180 </itemizedlist> 1181 1182 <para> 1183 When interconnecting two virtual machines on two different hosts, 1184 their IP addresses must be swapped. On a single host, source and 1185 destination UDP ports must be swapped. 1186 </para> 1187 1188 <para> 1189 In the following example, host 1 uses the IP address 10.0.0.1 and 1190 host 2 uses IP address 10.0.0.2. To configure using the 1191 command-line: 1192 </para> 1193 1194 <screen> VBoxManage modifyvm "VM 01 on host 1" --nic<x> generic 842 1195 VBoxManage modifyvm "VM 01 on host 1" --nicgenericdrv<x> UDPTunnel 843 1196 VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> dest=10.0.0.2 844 1197 VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> sport=10001 845 1198 VBoxManage modifyvm "VM 01 on host 1" --nicproperty<x> dport=10002</screen> 846 and <screen> VBoxManage modifyvm "VM 02 on host 2" --nic<y> generic 1199 1200 <screen> VBoxManage modifyvm "VM 02 on host 2" --nic<y> generic 847 1201 VBoxManage modifyvm "VM 02 on host 2" --nicgenericdrv<y> UDPTunnel 848 1202 VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> dest=10.0.0.1 849 1203 VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> sport=10002 850 VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> dport=10001</screen></para> 851 852 <para>Of course, you can always interconnect two virtual machines on the 853 same host, by setting the destination address parameter to 127.0.0.1 on 854 both. It will act similarly to "Internal network" in this case, however 855 the host can see the network traffic which it could not in the normal 856 Internal network case.</para> 857 858 <para><note><para>On Unix-based hosts (e.g. Linux, Solaris, Mac OS X) it is 859 not possible to bind to ports below 1024 from applications that are not run 860 by <computeroutput>root</computeroutput>. As a result, if you try to 861 configure such a source UDP port, the VM will refuse to 862 start.</para></note></para> 1204 VBoxManage modifyvm "VM 02 on host 2" --nicproperty<y> dport=10001</screen> 1205 1206 <para> 1207 Of course, you can always interconnect two virtual machines on the 1208 same host, by setting the destination address parameter to 1209 127.0.0.1 on both. It will act similarly to an internal network in 1210 this case. However, the host can see the network traffic which it 1211 could not in the normal internal network case. 1212 </para> 1213 1214 <note> 1215 <para> 1216 On Unix-based hosts, such as Linux, Solaris, and Mac OS X, it is 1217 not possible to bind to ports below 1024 from applications that 1218 are not run by <computeroutput>root</computeroutput>. As a 1219 result, if you try to configure such a source UDP port, the VM 1220 will refuse to start. 1221 </para> 1222 </note> 1223 863 1224 </sect1> 864 1225 865 1226 <sect1 id="network_vde"> 866 <title>VDE networking</title> 867 868 <para>Virtual Distributed Ethernet (VDE<footnote> 869 <para>VDE is a project developed by Renzo Davoli, Associate Professor 870 at the University of Bologna, Italy.</para> 871 </footnote>) is a flexible, virtual network infrastructure system, 872 spanning across multiple hosts in a secure way. It allows for L2/L3 873 switching, including spanning-tree protocol, VLANs, and WAN emulation. It 874 is an optional part of VirtualBox which is only included in the source 875 code.</para> 876 877 <para>The basic building blocks of the infrastructure are VDE switches, 878 VDE plugs and VDE wires which inter-connect the switches.</para> 879 880 <para>The VirtualBox VDE driver has one parameter:<glosslist> 881 <glossentry> 882 <glossterm>VDE network</glossterm> 883 884 <glossdef> 885 <para>The name of the VDE network switch socket to which the VM 886 will be connected.</para> 887 </glossdef> 888 </glossentry> 889 </glosslist></para> 890 891 <para>The following basic example shows how to connect a virtual machine 892 to a VDE switch:</para> 893 894 <para><orderedlist> 895 <listitem> 896 <para>Create a VDE switch: <screen>vde_switch -s /tmp/switch1</screen></para> 897 </listitem> 898 899 <listitem> 900 <para>Configuration via command-line: <screen>VBoxManage modifyvm "VM name" --nic<x> generic</screen> 901 <screen>VBoxManage modifyvm "VM name" --nicgenericdrv<x> VDE</screen> 902 To connect to automatically allocated switch port, use: <screen>VBoxManage modifyvm "VM name" --nicproperty<x> network=/tmp/switch1</screen> 903 To connect to specific switch port <n>, use: <screen>VBoxManage modifyvm "VM name" --nicproperty<x> network=/tmp/switch1[<n>]</screen> 904 The latter option can be useful for VLANs.</para> 905 </listitem> 906 907 <listitem> 908 <para>Optionally map between VDE switch port and VLAN: (from switch 909 CLI) <screen>vde$ vlan/create <VLAN></screen> <screen>vde$ port/setvlan <port> <VLAN></screen></para> 910 </listitem> 911 </orderedlist></para> 912 913 <para>VDE is available on Linux and FreeBSD hosts only. It is only 914 available if the VDE software and the VDE plugin library from the 915 VirtualSquare project are installed on the host system<footnote> 916 <para>For Linux hosts, the shared library libvdeplug.so must be 917 available in the search path for shared libraries</para> 918 </footnote>. For more information on setting up VDE networks, please see 919 the documentation accompanying the software.<footnote> 920 <para><ulink 921 url="http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking">http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking</ulink>.</para> 922 </footnote></para> 1227 1228 <title>VDE Networking</title> 1229 1230 <para> 1231 Virtual Distributed Ethernet (VDE) 1232 1233 <footnote> 1234 1235 <para> 1236 VDE is a project developed by Renzo Davoli, Associate 1237 Professor at the University of Bologna, Italy. 1238 </para> 1239 1240 </footnote> 1241 1242 is a flexible, virtual network infrastructure system, spanning 1243 across multiple hosts in a secure way. It allows for L2/L3 1244 switching, including spanning-tree protocol, VLANs, and WAN 1245 emulation. It is an optional part of VirtualBox which is only 1246 included in the source code. 1247 </para> 1248 1249 <para> 1250 The basic building blocks of the infrastructure are VDE switches, 1251 VDE plugs and VDE wires which inter-connect the switches. 1252 </para> 1253 1254 <para> 1255 The VirtualBox VDE driver has a single parameter: VDE network. 1256 This is the name of the VDE network switch socket to which the VM 1257 will be connected. 1258 </para> 1259 1260 <para> 1261 The following basic example shows how to connect a virtual machine 1262 to a VDE switch. 1263 </para> 1264 1265 <orderedlist> 1266 1267 <listitem> 1268 <para> 1269 Create a VDE switch: 1270 </para> 1271 1272 <screen>vde_switch -s /tmp/switch1</screen> 1273 </listitem> 1274 1275 <listitem> 1276 <para> 1277 Configure VMs using the command-line: 1278 </para> 1279 1280 <screen>VBoxManage modifyvm "VM name" --nic<x> generic</screen> 1281 1282 <screen>VBoxManage modifyvm "VM name" --nicgenericdrv<x> VDE</screen> 1283 1284 <para> 1285 To connect to an automatically allocated switch port: 1286 </para> 1287 1288 <screen>VBoxManage modifyvm "VM name" --nicproperty<x> network=/tmp/switch1</screen> 1289 1290 <para> 1291 To connect to a specific switch port 1292 <replaceable>n</replaceable>: 1293 </para> 1294 1295 <screen>VBoxManage modifyvm "VM name" --nicproperty<x> network=/tmp/switch1[<n>]</screen> 1296 1297 <para> 1298 This command can be useful for VLANs. 1299 </para> 1300 </listitem> 1301 1302 <listitem> 1303 <para> 1304 (Optional) Map between a VDE switch port and a VLAN. 1305 </para> 1306 1307 <para> 1308 Using the switch command line: 1309 </para> 1310 1311 <screen>vde$ vlan/create <VLAN></screen> 1312 1313 <screen>vde$ port/setvlan <port> <VLAN></screen> 1314 </listitem> 1315 1316 </orderedlist> 1317 1318 <para> 1319 VDE is available on Linux and FreeBSD hosts only. It is only 1320 available if the VDE software and the VDE plugin library from the 1321 VirtualSquare project are installed on the host system 1322 1323 <footnote> 1324 1325 <para> 1326 For Linux hosts, the shared library libvdeplug.so must be 1327 available in the search path for shared libraries 1328 </para> 1329 1330 </footnote> 1331 1332 . For more information on setting up VDE networks, please see the 1333 documentation accompanying the software. 1334 1335 <footnote> 1336 1337 <para> 1338 <ulink 1339 url="http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking">http://wiki.virtualsquare.org/wiki/index.php/VDE_Basic_Networking</ulink>. 1340 </para> 1341 1342 </footnote> 1343 </para> 1344 923 1345 </sect1> 924 1346 925 1347 <sect1 id="network_bandwidth_limit"> 926 <title>Limiting bandwidth for network I/O</title> 927 928 <para>Starting with version 4.2, VirtualBox allows for limiting the 929 maximum bandwidth used for network transmission. Several network adapters 930 of one VM may share limits through bandwidth groups. It is possible 931 to have more than one such limit.</para> 932 <note><para>VirtualBox shapes VM traffic only in the transmit direction, 933 delaying the packets being sent by virtual machines. It does not limit 934 the traffic being received by virtual machines.</para> 1348 1349 <title>Limiting Bandwidth for Network I/O</title> 1350 1351 <para> 1352 Starting with version 4.2, VirtualBox allows for limiting the 1353 maximum bandwidth used for network transmission. Several network 1354 adapters of one VM may share limits through bandwidth groups. It 1355 is possible to have more than one such limit. 1356 </para> 1357 1358 <note> 1359 <para> 1360 VirtualBox shapes VM traffic only in the transmit direction, 1361 delaying the packets being sent by virtual machines. It does not 1362 limit the traffic being received by virtual machines. 1363 </para> 935 1364 </note> 936 1365 937 <para>Limits are configured through 938 <computeroutput>VBoxManage</computeroutput>. The example below creates a 939 bandwidth group named "Limit", sets the limit to 20 Mbit/s and assigns the 940 group to the first and second adapters of the VM:<screen>VBoxManage bandwidthctl "VM name" add Limit --type network --limit 20m 1366 <para> 1367 Limits are configured through 1368 <computeroutput>VBoxManage</computeroutput>. The example below 1369 creates a bandwidth group named Limit, sets the limit to 20 Mbps 1370 and assigns the group to the first and second adapters of the VM: 1371 1372 <screen>VBoxManage bandwidthctl "VM name" add Limit --type network --limit 20m 941 1373 VBoxManage modifyvm "VM name" --nicbandwidthgroup1 Limit 942 VBoxManage modifyvm "VM name" --nicbandwidthgroup2 Limit</screen></para> 943 944 <para>All adapters in a group share the bandwidth limit, meaning that in the 945 example above the bandwidth of both adapters combined can never exceed 20 946 Mbit/s. However, if one adapter doesn't require bandwidth the other can use the 947 remaining bandwidth of its group.</para> 948 949 <para>The limits for each group can be changed while the VM is running, 950 with changes being picked up immediately. The example below changes the 951 limit for the group created in the example above to 100 Kbit/s:<screen>VBoxManage bandwidthctl "VM name" set Limit --limit 100k</screen></para> 952 953 <para>To completely disable shaping for the first adapter of VM use the 1374 VBoxManage modifyvm "VM name" --nicbandwidthgroup2 Limit</screen> 1375 </para> 1376 1377 <para> 1378 All adapters in a group share the bandwidth limit, meaning that in 1379 the example above the bandwidth of both adapters combined can 1380 never exceed 20 Mbps. However, if one adapter does not require 1381 bandwidth the other can use the remaining bandwidth of its group. 1382 </para> 1383 1384 <para> 1385 The limits for each group can be changed while the VM is running, 1386 with changes being picked up immediately. The example below 1387 changes the limit for the group created in the example above to 1388 100 Kbps: 1389 1390 <screen>VBoxManage bandwidthctl "VM name" set Limit --limit 100k</screen> 1391 </para> 1392 1393 <para> 1394 To completely disable shaping for the first adapter of VM use the 954 1395 following command: 955 <screen>VBoxManage modifyvm "VM name" --nicbandwidthgroup1 none</screen></para> 956 957 <para>It is also possible to disable shaping for all adapters assigned to a 958 bandwidth group while VM is running, by specifying the zero limit for the 959 group. For example, for the bandwidth group named "Limit" use: 960 <screen>VBoxManage bandwidthctl "VM name" set Limit --limit 0</screen></para> 1396 1397 <screen>VBoxManage modifyvm "VM name" --nicbandwidthgroup1 none</screen> 1398 </para> 1399 1400 <para> 1401 It is also possible to disable shaping for all adapters assigned 1402 to a bandwidth group while VM is running, by specifying the zero 1403 limit for the group. For example, for the bandwidth group named 1404 Limit use: 1405 1406 <screen>VBoxManage bandwidthctl "VM name" set Limit --limit 0</screen> 1407 </para> 1408 961 1409 </sect1> 1410 962 1411 <sect1 id="network_performance"> 963 <title>Improving network performance</title> 964 965 <para>VirtualBox provides a variety of virtual network adapters that can be 966 "attached" to the host's network in a number of ways. Depending on which 967 types of adapters and attachments are used the network performance will 968 be different. Performance-wise the <emphasis>virtio</emphasis> network 969 adapter is preferable over <emphasis>Intel PRO/1000</emphasis> emulated 970 adapters, which are preferred over <emphasis>PCNet</emphasis> family of 971 adapters. Both <emphasis>virtio</emphasis> and <emphasis>Intel PRO/1000 972 </emphasis> adapters enjoy the benefit of segmentation and checksum 973 offloading. Segmentation offloading is essential for high performance as 974 it allows for less context switches, dramatically increasing the sizes 975 of packets that cross VM/host boundary.</para> 976 <note><para>Neither <emphasis>virtio</emphasis> nor <emphasis>Intel PRO/1000 977 </emphasis> drivers for Windows XP support segmentation 978 offloading. Therefore Windows XP guests never reach the same 979 transmission rates as other guest types. Refer to MS Knowledge base 980 article 842264 for additional information.</para> 1412 1413 <title>Improving Network Performance</title> 1414 1415 <para> 1416 VirtualBox provides a variety of virtual network adapters that can 1417 be attached to the host's network in a number of ways. Depending 1418 on which types of adapters and attachments are used the network 1419 performance will be different. Performance-wise the virtio network 1420 adapter is preferable over Intel PRO/1000 emulated adapters, which 1421 are preferred over the PCNet family of adapters. Both virtio and 1422 Intel PRO/1000 adapters enjoy the benefit of segmentation and 1423 checksum offloading. Segmentation offloading is essential for high 1424 performance as it allows for less context switches, dramatically 1425 increasing the sizes of packets that cross the VM/host boundary. 1426 </para> 1427 1428 <note> 1429 <para> 1430 Neither virtio nor Intel PRO/1000 drivers for Windows XP support 1431 segmentation offloading. Therefore Windows XP guests never reach 1432 the same transmission rates as other guest types. Refer to MS 1433 Knowledge base article 842264 for additional information. 1434 </para> 981 1435 </note> 982 <para>Three attachment types: <emphasis>internal</emphasis>, 983 <emphasis>bridged</emphasis> and <emphasis>host-only</emphasis>, have 984 nearly identical performance, the <emphasis>internal</emphasis> type 985 being a little bit faster and using less CPU cycles as the packets never 986 reach the host's network stack. The <emphasis>NAT</emphasis> attachment 987 is the slowest (and safest) of all attachment types as it provides 988 network address translation. The generic driver attachment is special and 989 cannot be considered as an alternative to other attachment types.</para> 990 <para>The number of CPUs assigned to VM does not improve network 991 performance and in some cases may hurt it due to increased concurrency in 992 the guest.</para> 993 <para>Here is the short summary of things to check in order to improve 994 network performance:</para> 995 <para><orderedlist> 996 <listitem> 997 <para>Whenever possible use <emphasis>virtio</emphasis> network 998 adapter, otherwise use one of <emphasis>Intel PRO/1000</emphasis> 999 adapters;</para> 1000 </listitem> 1001 <listitem> 1002 <para>Use <emphasis>bridged</emphasis> attachment instead of 1003 <emphasis>NAT</emphasis>;</para> 1004 </listitem> 1005 <listitem> 1006 <para>Make sure segmentation offloading is enabled in the guest OS. 1007 Usually it will be enabled by default. You can check and modify 1008 offloading settings using <computeroutput>ethtool</computeroutput> 1009 command in Linux guests.</para> 1010 </listitem> 1011 <listitem> 1012 <para>Perform a full, detailed analysis of network traffic on 1013 the VM's network adaptor using a 3rd party tool such as Wireshark. 1014 To do this, a promiscuous mode policy needs to be used on the 1015 VM's network adaptor. Use of this mode is only possible on 1016 networks: NAT Network, Bridged Adapter, Internal Network and Host-only Adapter.</para> 1017 <para>To setup a promiscuous mode policy, either select from the drop down list 1018 located in the Network Settings dialog for the network adaptor 1019 or use the command line tool <computeroutput>VBoxManage</computeroutput>; 1020 for details, refer to <xref linkend="vboxmanage-modifyvm" />.</para> 1021 <para>Promiscuous mode policies are: </para> 1022 <para><orderedlist> 1023 <listitem> 1024 <para><computeroutput>deny</computeroutput> (default setting) which hides 1025 any traffic not intended for this VM's network adaptor.</para> 1026 </listitem> 1027 <listitem> 1028 <para><computeroutput>allow-vms</computeroutput> which hides all host 1029 traffic from this VM's network adaptor, but allows it to see traffic from/to other 1030 VMs.</para> 1031 </listitem> 1032 <listitem> 1033 <para><computeroutput>allow-all</computeroutput> which removes all 1034 restrictions - this VM's network adaptor sees all traffic.</para> 1035 </listitem> 1036 </orderedlist></para> 1037 </listitem> 1038 </orderedlist></para> 1436 1437 <para> 1438 Three attachment types: Internal, Bridged, and Host-Only, have 1439 nearly identical performance. The Internal type is a little bit 1440 faster and uses less CPU cycles as the packets never reach the 1441 host's network stack. The NAT attachment type is the slowest and 1442 most secure of all attachment types, as it provides network 1443 address translation. The generic driver attachment is special and 1444 cannot be considered as an alternative to other attachment types. 1445 </para> 1446 1447 <para> 1448 The number of CPUs assigned to VM does not improve network 1449 performance and in some cases may hurt it due to increased 1450 concurrency in the guest. 1451 </para> 1452 1453 <para> 1454 Here is a short summary of things to check in order to improve 1455 network performance: 1456 </para> 1457 1458 <orderedlist> 1459 1460 <listitem> 1461 <para> 1462 Whenever possible use the virtio network adapter. Otherwise, 1463 use one of the Intel PRO/1000 adapters. 1464 </para> 1465 </listitem> 1466 1467 <listitem> 1468 <para> 1469 Use a Bridged attachment instead of NAT. 1470 </para> 1471 </listitem> 1472 1473 <listitem> 1474 <para> 1475 Make sure segmentation offloading is enabled in the guest OS. 1476 Usually it will be enabled by default. You can check and 1477 modify offloading settings using the 1478 <computeroutput>ethtool</computeroutput> command on Linux 1479 guests. 1480 </para> 1481 </listitem> 1482 1483 <listitem> 1484 <para> 1485 Perform a full, detailed analysis of network traffic on the 1486 VM's network adaptor using a third party tool such as 1487 Wireshark. To do this, a promiscuous mode policy needs to be 1488 used on the VM's network adaptor. Use of this mode is only 1489 possible on the following network types: NAT Network, Bridged 1490 Adapter, Internal Network, and Host-Only Adapter. 1491 </para> 1492 1493 <para> 1494 To setup a promiscuous mode policy, either select from the 1495 drop down list located in the Network Settings dialog for the 1496 network adaptor or use the command line tool 1497 <computeroutput>VBoxManage</computeroutput>. See 1498 <xref linkend="vboxmanage-modifyvm" />. 1499 </para> 1500 1501 <para> 1502 Promiscuous mode policies are as follows: 1503 </para> 1504 1505 <itemizedlist> 1506 1507 <listitem> 1508 <para> 1509 <computeroutput>deny</computeroutput>, which hides any 1510 traffic not intended for the VM's network adaptor. This is 1511 the default setting. 1512 </para> 1513 </listitem> 1514 1515 <listitem> 1516 <para> 1517 <computeroutput>allow-vms</computeroutput>, which hides 1518 all host traffic from the VM's network adaptor, but allows 1519 it to see traffic from and to other VMs. 1520 </para> 1521 </listitem> 1522 1523 <listitem> 1524 <para> 1525 <computeroutput>allow-all</computeroutput>, which removes 1526 all restrictions. The VM's network adaptor sees all 1527 traffic. 1528 </para> 1529 </listitem> 1530 1531 </itemizedlist> 1532 </listitem> 1533 1534 </orderedlist> 1535 1039 1536 </sect1> 1537 1040 1538 </chapter> -
trunk/doc/manual/en_US/user_PrivacyPolicy.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 4 8 <appendix id="privacy"> 5 <title>VirtualBox privacy information</title>9 <title>VirtualBox Privacy Information</title> 6 10 7 11 <para>Version 5, Dec 13, 2012</para> -
trunk/doc/manual/en_US/user_Security.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="Security"> 5 <title>Security guide</title> 6 7 <sect1> 8 9 <title>Security Guide</title> 10 11 <sect1 id="security-general"> 12 8 13 <title>General Security Principles</title> 9 14 10 <para>The following principles are fundamental to using any application 15 <para> 16 The following principles are fundamental to using any application 11 17 securely. 12 <glosslist>13 <glossentry>14 <glossterm>Keep Software Up To Date</glossterm>15 <glossdef>16 <para>17 One of the principles of good security practise is to keep all18 software versions and patches up to date. Activate the VirtualBox19 update notification to get notified when a new VirtualBox release20 is available. When updating VirtualBox, do not forget to update21 the Guest Additions. Keep the host operating system as well as the22 guest operating system up to date.23 </para>24 </glossdef>25 </glossentry>26 27 <glossentry>28 <glossterm>Restrict Network Access to Critical Services</glossterm>29 <glossdef>30 <para>31 Use proper means, for instance a firewall, to protect your computer32 and your guest(s) from accesses from the outside. Choosing the proper33 networking mode for VMs helps to separate host networking from the34 guest and vice versa.35 </para>36 </glossdef>37 </glossentry>38 39 <glossentry>40 <glossterm>Follow the Principle of Least Privilege</glossterm>41 <glossdef>42 <para>43 The principle of least privilege states that users should be given the44 least amount of privilege necessary to perform their jobs. Always execute VirtualBox45 as a regular user. We strongly discourage anyone from executing46 VirtualBox with system privileges.47 </para>48 <para>49 Choose restrictive permissions when creating configuration files,50 for instance when creating /etc/default/virtualbox, see51 <xref linkend="linux_install_opts"/>. Mode 0600 would be preferred.52 </para>53 </glossdef>54 </glossentry>55 56 <glossentry>57 <glossterm>Monitor System Activity</glossterm>58 <glossdef>59 <para>60 System security builds on three pillars: good security protocols, proper61 system configuration and system monitoring. Auditing and reviewing audit62 records address the third requirement. Each component within a system63 has some degree of monitoring capability. Follow audit advice in this64 document and regularly monitor audit records.65 </para>66 </glossdef>67 </glossentry>68 69 <glossentry>70 <glossterm>Keep Up To Date on Latest Security Information</glossterm>71 <glossdef>72 <para>73 Oracle continually improves its software and documentation. Check this74 note yearly for revisions.75 </para>76 </glossdef>77 </glossentry>78 79 </glosslist>80 18 </para> 19 20 <itemizedlist> 21 22 <listitem> 23 <para> 24 <emphasis role="strong">Keep software up to date</emphasis>. 25 One of the principles of good security practise is to keep all 26 software versions and patches up to date. Activate the 27 VirtualBox update notification to get notified when a new 28 VirtualBox release is available. When updating VirtualBox, do 29 not forget to update the Guest Additions. Keep the host 30 operating system as well as the guest operating system up to 31 date. 32 </para> 33 </listitem> 34 35 <listitem> 36 <para> 37 <emphasis role="strong">Restrict network access to critical 38 services.</emphasis> Use proper means, for instance a 39 firewall, to protect your computer and your guests from 40 accesses from the outside. Choosing the proper networking mode 41 for VMs helps to separate host networking from the guest and 42 vice versa. 43 </para> 44 </listitem> 45 46 <listitem> 47 <para> 48 <emphasis role="strong">Follow the principle of least 49 privilege.</emphasis> The principle of least privilege states 50 that users should be given the least amount of privilege 51 necessary to perform their jobs. Always execute VirtualBox as 52 a regular user. We strongly discourage anyone from executing 53 VirtualBox with system privileges. 54 </para> 55 56 <para> 57 Choose restrictive permissions when creating configuration 58 files, for instance when creating /etc/default/virtualbox, see 59 <xref linkend="linux_install_opts"/>. Mode 0600 is preferred. 60 </para> 61 </listitem> 62 63 <listitem> 64 <para> 65 <emphasis role="strong"> Monitor system activity.</emphasis> 66 System security builds on three pillars: good security 67 protocols, proper system configuration and system monitoring. 68 Auditing and reviewing audit records address the third 69 requirement. Each component within a system has some degree of 70 monitoring capability. Follow audit advice in this document 71 and regularly monitor audit records. 72 </para> 73 </listitem> 74 75 <listitem> 76 <para> 77 <emphasis role="strong">Keep up to date on latest security 78 information.</emphasis> Oracle continually improves its 79 software and documentation. Check this note yearly for 80 revisions. 81 </para> 82 </listitem> 83 84 </itemizedlist> 85 81 86 </sect1> 82 87 83 <sect1> 88 <sect1 id="security-secure-install"> 89 84 90 <title>Secure Installation and Configuration</title> 85 91 86 <sect2> 92 <sect2 id="security-secure-install-overview"> 93 87 94 <title>Installation Overview</title> 88 <para> 89 The VirtualBox base package should be downloaded only from a trusted source, 90 for instance the official website 95 96 <para> 97 The VirtualBox base package should be downloaded only from a 98 trusted source, for instance the official website 91 99 <ulink url="http://www.virtualbox.org">http://www.virtualbox.org</ulink>. 92 The integrity of the package should be verified with the provided SHA256 93 checksum which can be found on the official website. 94 </para> 95 <para> 96 General VirtualBox installation instructions for the supported hosts 97 can be found in <xref linkend="installation"/>. 98 </para> 99 <para> 100 On Windows hosts, the installer allows for disabling USB support, support 101 for bridged networking, support for host-only networking and the Python 102 language bindings, see <xref linkend="installation_windows"/>. 103 All these features are enabled by default but disabling some 104 of them could be appropriate if the corresponding functionality is not 105 required by any virtual machine. The Python language bindings are only 100 The integrity of the package should be verified with the 101 provided SHA256 checksum which can be found on the official 102 website. 103 </para> 104 105 <para> 106 General VirtualBox installation instructions for the supported 107 hosts can be found in <xref linkend="installation"/>. 108 </para> 109 110 <para> 111 On Windows hosts, the installer allows for disabling USB 112 support, support for bridged networking, support for host-only 113 networking and the Python language binding. See 114 <xref linkend="installation_windows"/>. All these features are 115 enabled by default but disabling some of them could be 116 appropriate if the corresponding functionality is not required 117 by any virtual machine. The Python language bindings are only 106 118 required if the VirtualBox API is to be used by external Python 107 applications. In particular USB support and support 108 for the two networking modes require the installation of Windows kernel 109 drivers on the host. Therefore disabling those selected features can 110 not only be used to restrict the user to certain functionality but 111 also to minimize the surface provided to a potential attacker. </para> 112 <para> 113 The general case is to install the complete VirtualBox package. The 114 installation must be done with system privileges. All VirtualBox binaries 115 should be executed as a regular user and never as a privileged user. 116 </para> 117 <para> 118 The Oracle VM VirtualBox extension pack provides additional features 119 and must be downloaded and installed separately, see 120 <xref linkend="intro-installing"/>. As for the base package, the SHA256 121 checksum of the extension pack should be verified. As the installation 122 requires system privileges, VirtualBox will ask for the system 123 password during the installation of the extension pack. 124 </para> 125 </sect2> 126 127 <sect2> 119 applications. In particular USB support and support for the two 120 networking modes require the installation of Windows kernel 121 drivers on the host. Therefore disabling those selected features 122 can not only be used to restrict the user to certain 123 functionality but also to minimize the surface provided to a 124 potential attacker. 125 </para> 126 127 <para> 128 The general case is to install the complete VirtualBox package. 129 The installation must be done with system privileges. All 130 VirtualBox binaries should be executed as a regular user and 131 never as a privileged user. 132 </para> 133 134 <para> 135 The Oracle VM VirtualBox extension pack provides additional 136 features and must be downloaded and installed separately, see 137 <xref linkend="intro-installing"/>. As for the base package, the 138 SHA256 checksum of the extension pack should be verified. As the 139 installation requires system privileges, VirtualBox will ask for 140 the system password during the installation of the extension 141 pack. 142 </para> 143 144 </sect2> 145 146 <sect2 id="security-secure-install-postinstall"> 147 128 148 <title>Post Installation Configuration</title> 129 <para> 130 Normally there is no post installation configuration of VirtualBox components 131 required. However, on Solaris and Linux hosts it is necessary to configure 132 the proper permissions for users executing VMs and who should be able to 133 access certain host resources. For instance, Linux users must be member of 134 the <emphasis>vboxusers</emphasis> group to be able to pass USB devices to a 135 guest. If a serial host interface should be accessed from a VM, the proper 136 permissions must be granted to the user to be able to access that device. 137 The same applies to other resources like raw partitions, DVD/CD drives 138 and sound devices. 139 </para> 140 </sect2> 149 150 <para> 151 Normally there is no post installation configuration of 152 VirtualBox components required. However, on Solaris and Linux 153 hosts it is necessary to configure the proper permissions for 154 users executing VMs and who should be able to access certain 155 host resources. For instance, Linux users must be member of the 156 <emphasis>vboxusers</emphasis> group to be able to pass USB 157 devices to a guest. If a serial host interface should be 158 accessed from a VM, the proper permissions must be granted to 159 the user to be able to access that device. The same applies to 160 other resources like raw partitions, DVD/CD drives, and sound 161 devices. 162 </para> 163 164 </sect2> 165 141 166 </sect1> 142 167 143 <sect1> 168 <sect1 id="security-features"> 169 144 170 <title>Security Features</title> 145 <para>This section outlines the specific security mechanisms offered 146 by VirtualBox.</para> 147 148 <sect2> 171 172 <para> 173 This section outlines the specific security mechanisms offered by 174 VirtualBox. 175 </para> 176 177 <sect2 id="security-model"> 178 149 179 <title>The Security Model</title> 150 <para> 151 One property of virtual machine monitors (VMMs) like VirtualBox is to encapsulate 152 a guest by executing it in a protected environment, a virtual machine, 153 running as a user process on the host operating system. The guest cannot 154 communicate directly with the hardware or other computers but only through 155 the VMM. The VMM provides emulated physical resources and devices to the 156 guest which are accessed by the guest operating system to perform the required 157 tasks. The VM settings control the resources provided to the guest, for example 158 the amount of guest memory or the number of guest processors, (see 159 <xref linkend="generalsettings"/>) and the enabled features for that guest 160 (for example remote control, certain screen settings and others). 161 </para> 162 </sect2> 163 164 <sect2> 180 181 <para> 182 One property of virtual machine monitors (VMMs) like VirtualBox 183 is to encapsulate a guest by executing it in a protected 184 environment, a virtual machine, running as a user process on the 185 host operating system. The guest cannot communicate directly 186 with the hardware or other computers but only through the VMM. 187 The VMM provides emulated physical resources and devices to the 188 guest which are accessed by the guest operating system to 189 perform the required tasks. The VM settings control the 190 resources provided to the guest, for example the amount of guest 191 memory or the number of guest processors and the enabled 192 features for that guest. For example remote control, certain 193 screen settings and others. See 194 <xref linkend="generalsettings"/>. 195 </para> 196 197 </sect2> 198 199 <sect2 id="secure-config-vms"> 200 165 201 <title>Secure Configuration of Virtual Machines</title> 166 <para> 167 Several aspects of a virtual machine configuration are subject to security 168 considerations.</para> 169 170 <sect3> 202 203 <para> 204 Several aspects of a virtual machine configuration are subject 205 to security considerations. 206 </para> 207 208 <sect3 id="security-networking"> 209 171 210 <title>Networking</title> 211 172 212 <para> 173 213 The default networking mode for VMs is NAT which means that … … 175 215 <xref linkend="network_nat"/>. The guest is part of a private 176 216 subnet belonging to this VM and the guest IP is not visible 177 from the outside. This networking mode works without 178 any additional setup and is sufficient for many purposes. 179 </para> 180 <para> 181 If bridged networking is used, the VM acts like a computer inside 182 the same network as the host, see <xref linkend="network_bridged"/>. 183 In this case, the guest has the same network access as the host and 184 a firewall might be necessary to protect other computers on the 185 subnet from a potential malicious guest as well as to protect the 186 guest from a direct access from other computers. In some cases it is 187 worth considering using a forwarding rule for a specific port in NAT 188 mode instead of using bridged networking. 189 </para> 190 <para> 191 Some setups do not require a VM to be connected to the public network 192 at all. Internal networking (see <xref linkend="network_internal"/>) 193 or host-only networking (see <xref linkend="network_hostonly"/>) 194 are often sufficient to connect VMs among each other or to connect 195 VMs only with the host but not with the public network. 196 </para> 197 </sect3> 198 199 <sect3> 200 <title>VRDP remote desktop authentication</title> 201 <para>When using the VirtualBox extension pack provided by Oracle 202 for VRDP remote desktop support, you can optionally use various 203 methods to configure RDP authentication. The "null" method is 204 very insecure and should be avoided in a public network. 205 See <xref linkend="vbox-auth" /> for details.</para> 217 from the outside. This networking mode works without any 218 additional setup and is sufficient for many purposes. 219 </para> 220 221 <para> 222 If bridged networking is used, the VM acts like a computer 223 inside the same network as the host, see 224 <xref linkend="network_bridged"/>. In this case, the guest has 225 the same network access as the host and a firewall might be 226 necessary to protect other computers on the subnet from a 227 potential malicious guest as well as to protect the guest from 228 a direct access from other computers. In some cases it is 229 worth considering using a forwarding rule for a specific port 230 in NAT mode instead of using bridged networking. 231 </para> 232 233 <para> 234 Some setups do not require a VM to be connected to the public 235 network at all. Internal networking, see 236 <xref linkend="network_internal"/>, or host-only networking, 237 see <xref linkend="network_hostonly"/>, are often sufficient 238 to connect VMs among each other or to connect VMs only with 239 the host but not with the public network. 240 </para> 241 242 </sect3> 243 244 <sect3 id="security-vrdp-auth"> 245 246 <title>VRDP Remote Desktop Authentication</title> 247 248 <para> 249 When using the VirtualBox extension pack provided by Oracle 250 for VRDP remote desktop support, you can optionally use 251 various methods to configure RDP authentication. The "null" 252 method is very insecure and should be avoided in a public 253 network. See <xref linkend="vbox-auth" />. 254 </para> 255 206 256 </sect3> 207 257 208 258 <sect3 id="security_clipboard"> 259 209 260 <title>Clipboard</title> 210 <para> 211 The shared clipboard allows users to share data between the host and 212 the guest. Enabling the clipboard in "Bidirectional" mode allows 213 the guest to read and write the host clipboard. The "Host to guest" 214 mode and the "Guest to host" mode limit the access to one 215 direction. If the guest is able to access the host clipboard it 216 can also potentially access sensitive data from the host which is 217 shared over the clipboard. 218 </para> 219 <para> 220 If the guest is able to read from and/or write to the host clipboard 221 then a remote user connecting to the guest over the network will also 222 gain this ability, which may not be desirable. As a consequence, the 223 shared clipboard is disabled for new machines. 224 </para> 225 </sect3> 226 227 <sect3> 228 <title>Shared folders</title> 229 <para>If any host folder is shared with the guest then a remote 230 user connected to the guest over the network can access 231 these files too as the folder sharing mechanism cannot be 232 selectively disabled for remote users. 233 </para> 234 </sect3> 235 236 <sect3> 237 <title>3D graphics acceleration</title> 238 <para>Enabling 3D graphics via the Guest Additions exposes the host 239 to additional security risks; see <xref 240 linkend="guestadd-3d" />.</para> 241 </sect3> 242 243 <sect3> 244 <title>CD/DVD passthrough</title> 245 <para>Enabling CD/DVD passthrough allows the guest to perform advanced 246 operations on the CD/DVD drive, see <xref linkend="storage-cds"/>. 247 This could induce a security risk as a guest could overwrite data 248 on a CD/DVD medium. 249 </para> 250 </sect3> 251 252 <sect3> 253 <title>USB passthrough</title> 254 <para> 255 Passing USB devices to the guest provides the guest full access 256 to these devices, see <xref linkend="settings-usb"/>. For instance, 257 in addition to reading and writing the content of the partitions 258 of an external USB disk the guest will be also able to read and 259 write the partition table and hardware data of that disk. 260 </para> 261 </sect3> 262 263 </sect2> 264 265 <sect2> 261 262 <para> 263 The shared clipboard allows users to share data between the 264 host and the guest. Enabling the clipboard in Bidirectional 265 mode allows the guest to read and write the host clipboard. 266 The Host to Guest mode and the Guest to Host mode limit the 267 access to one direction. If the guest is able to access the 268 host clipboard it can also potentially access sensitive data 269 from the host which is shared over the clipboard. 270 </para> 271 272 <para> 273 If the guest is able to read from and/or write to the host 274 clipboard then a remote user connecting to the guest over the 275 network will also gain this ability, which may not be 276 desirable. As a consequence, the shared clipboard is disabled 277 for new machines. 278 </para> 279 280 </sect3> 281 282 <sect3 id="security-shared-folders"> 283 284 <title>Shared Folders</title> 285 286 <para> 287 If any host folder is shared with the guest then a remote user 288 connected to the guest over the network can access these files 289 too as the folder sharing mechanism cannot be selectively 290 disabled for remote users. 291 </para> 292 293 </sect3> 294 295 <sect3 id="security-3d-graphics"> 296 297 <title>3D Graphics Acceleration</title> 298 299 <para> 300 Enabling 3D graphics via the Guest Additions exposes the host 301 to additional security risks. See 302 <xref 303 linkend="guestadd-3d" />. 304 </para> 305 306 </sect3> 307 308 <sect3 id="security-cd-dvd-passthrough"> 309 310 <title>CD/DVD Passthrough</title> 311 312 <para> 313 Enabling CD/DVD passthrough allows the guest to perform 314 advanced operations on the CD/DVD drive, see 315 <xref linkend="storage-cds"/>. This could induce a security 316 risk as a guest could overwrite data on a CD/DVD medium. 317 </para> 318 319 </sect3> 320 321 <sect3 id="security-usb-passthrough"> 322 323 <title>USB Passthrough</title> 324 325 <para> 326 Passing USB devices to the guest provides the guest full 327 access to these devices, see <xref linkend="settings-usb"/>. 328 For instance, in addition to reading and writing the content 329 of the partitions of an external USB disk the guest will be 330 also able to read and write the partition table and hardware 331 data of that disk. 332 </para> 333 334 </sect3> 335 336 </sect2> 337 338 <sect2 id="auth-config-using"> 339 266 340 <title>Configuring and Using Authentication</title> 267 341 268 <para>The following components of VirtualBox can use passwords for 269 authentication:<itemizedlist> 270 271 <listitem> 272 <para>When using remote iSCSI storage and the storage server 273 requires authentication, an initiator secret can optionally be supplied 274 with the <computeroutput>VBoxManage storageattach</computeroutput> 275 command. As long as no settings password is provided (command line 276 option <screen>--settingspwfile</screen>, this secret is 277 stored <emphasis role="bold">unencrypted</emphasis> in the machine 278 configuration and is therefore potentially readable on the host. 279 See <xref 280 linkend="storage-iscsi" /> and <xref 281 linkend="vboxmanage-storageattach" />.</para> 282 </listitem> 283 284 <listitem> 285 <para>When using the VirtualBox web service to control a VirtualBox 286 host remotely, connections to the web service are authenticated in 287 various ways. This is described in detail in the VirtualBox Software 288 Development Kit (SDK) reference; please see <xref 289 linkend="VirtualBoxAPI" />.</para> 290 </listitem> 291 </itemizedlist></para> 292 </sect2> 293 294 <!-- 295 <sect2> 342 <para> 343 The following components of VirtualBox can use passwords for 344 authentication: 345 </para> 346 347 <itemizedlist> 348 349 <listitem> 350 <para> 351 When using remote iSCSI storage and the storage server 352 requires authentication, an initiator secret can optionally 353 be supplied with the <computeroutput>VBoxManage 354 storageattach</computeroutput> command. As long as no 355 settings password is provided, by using the command line 356 option <option>--settingspwfile</option>, then this secret 357 is stored <emphasis>unencrypted</emphasis> in the machine 358 configuration and is therefore potentially readable on the 359 host. See <xref 360 linkend="storage-iscsi" /> and 361 <xref 362 linkend="vboxmanage-storageattach" />. 363 </para> 364 </listitem> 365 366 <listitem> 367 <para> 368 When using the VirtualBox web service to control a 369 VirtualBox host remotely, connections to the web service are 370 authenticated in various ways. This is described in detail 371 in the VirtualBox Software Development Kit (SDK) reference. 372 See <xref 373 linkend="VirtualBoxAPI" />. 374 </para> 375 </listitem> 376 377 </itemizedlist> 378 379 </sect2> 380 381 <!-- 382 <sect2 id="access-control-config-using"> 296 383 <title>Configuring and Using Access Control</title> 297 384 </sect2> 298 385 299 <sect2 >386 <sect2 id="security-audit-config-using"> 300 387 <title>Configuring and Using Security Audit</title> 301 388 </sect2> 302 389 303 <sect2 >304 <title>Con giguring and Using Other Security Features</title>390 <sect2 id="security-other-features-config-using"> 391 <title>Configuring and Using Other Security Features</title> 305 392 </sect2> 306 393 --> 307 394 308 395 <sect2 id="pot-insecure"> 309 <title>Potentially insecure operations</title> 310 311 <para>The following features of VirtualBox can present security 312 problems:<itemizedlist> 313 <listitem> 314 <para>Enabling 3D graphics via the Guest Additions exposes the host 315 to additional security risks; see <xref 316 linkend="guestadd-3d" />.</para> 317 </listitem> 318 319 <listitem> 320 <para>When teleporting a machine, the data stream through which the 321 machine's memory contents are transferred from one host to another 322 is not encrypted. A third party with access to the network through 323 which the data is transferred could therefore intercept that 324 data. An SSH tunnel could be used to secure the connection between 325 the two hosts. But when considering teleporting a VM over an untrusted 326 network the first question to answer is how both VMs can securely 327 access the same virtual disk image(s) with a reasonable performance. </para> 328 </listitem> 329 330 <listitem> 331 <para>When Page Fusion (see <xref linkend="guestadd-pagefusion"/>) 332 is enabled, it is possible that a side-channel opens up that allows 333 a malicious guest to determine the address space layout (i.e. where 334 DLLs are typically loaded) of one other VM running on the same host. 335 This information leak in it self is harmless, however the malicious 336 guest may use it to optimize attack against that VM via unrelated 337 attack vectors. It is recommended to only enable Page Fusion if you 338 do not think this is a concern in your setup.</para> 339 </listitem> 340 341 <listitem> 342 <para>When using the VirtualBox web service to control a VirtualBox 343 host remotely, connections to the web service (through which the API 344 calls are transferred via SOAP XML) are not encrypted, but use plain 345 HTTP by default. This is a potential security risk! For details about 346 the web service, please see <xref linkend="VirtualBoxAPI" />.</para> 347 <para>The web services are not started by default. Please refer to 348 <xref linkend="vboxwebsrv-daemon"/> to find out how to start this 349 service and how to enable SSL/TLS support. It has to be started as 350 a regular user and only the VMs of that user can be controlled. By 351 default, the service binds to localhost preventing any remote connection.</para> 352 </listitem> 353 354 <listitem> 355 <para>Traffic sent over a UDP Tunnel network attachment is not 356 encrypted. You can either encrypt it on the host network level (with 357 IPsec), or use encrypted protocols in the guest network (such as 358 SSH). The security properties are similar to bridged Ethernet.</para> 359 </listitem> 360 361 <listitem> 362 <para>Because of shortcomings in older Windows versions, using 363 VirtualBox on Windows versions older than Vista with Service Pack 1 364 is not recommended.</para> 365 </listitem> 366 367 </itemizedlist></para> 368 </sect2> 369 370 <sect2> 396 397 <title>Potentially Insecure Operations</title> 398 399 <para> 400 The following features of VirtualBox can present security 401 problems: 402 </para> 403 404 <itemizedlist> 405 406 <listitem> 407 <para> 408 Enabling 3D graphics via the Guest Additions exposes the 409 host to additional security risks. See 410 <xref 411 linkend="guestadd-3d" />. 412 </para> 413 </listitem> 414 415 <listitem> 416 <para> 417 When teleporting a machine, the data stream through which 418 the machine's memory contents are transferred from one host 419 to another is not encrypted. A third party with access to 420 the network through which the data is transferred could 421 therefore intercept that data. An SSH tunnel could be used 422 to secure the connection between the two hosts. But when 423 considering teleporting a VM over an untrusted network the 424 first question to answer is how both VMs can securely access 425 the same virtual disk image with a reasonable performance. 426 </para> 427 </listitem> 428 429 <listitem> 430 <para> 431 When Page Fusion, see <xref linkend="guestadd-pagefusion"/>, 432 is enabled, it is possible that a side-channel opens up that 433 allows a malicious guest to determine the address space of 434 another VM running on the same host layout. For example, 435 where DLLs are typically loaded. This information leak in 436 itself is harmless, however the malicious guest may use it 437 to optimize attack against that VM via unrelated attack 438 vectors. It is recommended to only enable Page Fusion if you 439 do not think this is a concern in your setup. 440 </para> 441 </listitem> 442 443 <listitem> 444 <para> 445 When using the VirtualBox web service to control a 446 VirtualBox host remotely, connections to the web service, 447 over which the API calls are transferred using SOAP XML, are 448 not encrypted. They use plain HTTP by default. This is a 449 potential security risk. For details about the web service, 450 see <xref linkend="VirtualBoxAPI" />. 451 </para> 452 453 <para> 454 The web services are not started by default. See 455 <xref linkend="vboxwebsrv-daemon"/> to find out how to start 456 this service and how to enable SSL/TLS support. It has to be 457 started as a regular user and only the VMs of that user can 458 be controlled. By default, the service binds to localhost 459 preventing any remote connection. 460 </para> 461 </listitem> 462 463 <listitem> 464 <para> 465 Traffic sent over a UDP Tunnel network attachment is not 466 encrypted. You can either encrypt it on the host network 467 level, with IPsec, or use encrypted protocols in the guest 468 network, such as SSH. The security properties are similar to 469 bridged Ethernet. 470 </para> 471 </listitem> 472 473 <listitem> 474 <para> 475 Because of shortcomings in older Windows versions, using 476 VirtualBox on Windows versions older than Vista with Service 477 Pack 1 is not recommended. 478 </para> 479 </listitem> 480 481 </itemizedlist> 482 483 </sect2> 484 485 <sect2 id="security-encryption"> 486 371 487 <title>Encryption</title> 372 488 373 <para>The following components of VirtualBox use encryption to protect 374 sensitive data:<itemizedlist> 375 <listitem> 376 <para>When using the VirtualBox extension pack provided by Oracle 377 for VRDP remote desktop support, RDP data can optionally be 378 encrypted. See <xref linkend="vrde-crypt" /> for details. Only 379 the Enhanced RDP Security method (RDP5.2) with TLS protocol 380 provides a secure connection. Standard RDP Security (RDP4 and 381 RDP5.1) is vulnerable to a man-in-the-middle attack.</para> 382 </listitem> 383 </itemizedlist></para> 384 </sect2> 489 <para> 490 The following components of VirtualBox use encryption to protect 491 sensitive data: 492 </para> 493 494 <itemizedlist> 495 496 <listitem> 497 <para> 498 When using the VirtualBox extension pack provided by Oracle 499 for VRDP remote desktop support, RDP data can optionally be 500 encrypted. See <xref linkend="vrde-crypt" />. Only the 501 Enhanced RDP Security method (RDP5.2) with TLS protocol 502 provides a secure connection. Standard RDP Security (RDP4 503 and RDP5.1) is vulnerable to a man-in-the-middle attack. 504 </para> 505 </listitem> 506 507 </itemizedlist> 508 509 </sect2> 510 385 511 </sect1> 386 512 387 388 <sect1 >513 <!-- 514 <sect1 id="security-devel"> 389 515 <title>Security Considerations for Developers</title> 390 516 </sect1> -
trunk/doc/manual/en_US/user_Storage.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="storage"> 5 <title>Virtual storage</title> 6 7 <para>As the virtual machine will most probably expect to see a hard disk 8 built into its virtual computer, VirtualBox must be able to present "real" 9 storage to the guest as a virtual hard disk. There are presently three 10 methods in which to achieve this:</para> 11 12 <orderedlist> 8 9 <title>Virtual Storage</title> 10 11 <para> 12 As the virtual machine will most probably expect to see a hard disk 13 built into its virtual computer, VirtualBox must be able to present 14 real storage to the guest as a virtual hard disk. There are 15 presently three methods by which to achieve this: 16 </para> 17 18 <itemizedlist> 19 13 20 <listitem> 14 <para>Most commonly, VirtualBox will use large image files on a real 15 hard disk and present them to a guest as a virtual hard disk. This is 16 described in <xref linkend="vdidetails" />.</para> 21 <para> 22 VirtualBox can use large image files on a real hard disk and 23 present them to a guest as a virtual hard disk. This is the most 24 common method, described in <xref linkend="vdidetails" />. 25 </para> 17 26 </listitem> 18 27 19 28 <listitem> 20 <para>Alternatively, if you have iSCSI storage servers, you can attach 21 such a server to VirtualBox as well; this is described in <xref 22 linkend="storage-iscsi" />.</para> 29 <para> 30 iSCSI storage servers can be attached to VirtualBox. This is 31 described in <xref 32 linkend="storage-iscsi" />. 33 </para> 23 34 </listitem> 24 35 25 36 <listitem> 26 <para>Finally, as an advanced feature, you can allow a virtual 27 machine to access one of your host disks directly; this advanced feature 28 is described in <xref linkend="rawdisk" />.</para> 37 <para> 38 You can allow a virtual machine to access one of your host disks 39 directly. This is an advanced feature, described in 40 <xref linkend="rawdisk" />. 41 </para> 29 42 </listitem> 30 </orderedlist> 31 32 <para>Each such virtual storage device (image file, iSCSI target or physical 33 hard disk) will need to be connected to the virtual hard disk controller 34 that VirtualBox presents to a virtual machine. This is explained in the next 35 section.</para> 43 44 </itemizedlist> 45 46 <para> 47 Each such virtual storage device, such as an image file, iSCSI 48 target, or physical hard disk, needs to be connected to the virtual 49 hard disk controller that VirtualBox presents to a virtual machine. 50 This is explained in the next section. 51 </para> 36 52 37 53 <sect1 id="harddiskcontrollers"> 38 <title>Hard disk controllers: IDE, SATA (AHCI), SCSI, SAS, USB MSD, NVMe</title> 39 40 <para>In a real PC, hard disks and CD/DVD drives are connected to a device 41 called hard disk controller which drives hard disk operation and data 42 transfers. VirtualBox can emulate the five most common types of hard disk 43 controllers typically found in today's PCs: IDE, SATA (AHCI), SCSI, 44 SAS, USB-based and NVMe mass storage devices.<footnote> 45 <para>SATA support was added with VirtualBox 1.6; experimental SCSI 46 support was added with 2.1 and fully implemented with 2.2. Generally, 47 storage attachments were made much more flexible with VirtualBox 3.1; 48 see below. Support for the LSI Logic SAS controller was added with 49 VirtualBox 3.2; USB mass storage devices are supported since 50 VirtualBox 5.0; NVMe controller support was added with VirtualBox 5.1.</para> 51 </footnote><itemizedlist> 52 <listitem> 53 <para><emphasis role="bold">IDE (ATA)</emphasis> controllers are a 54 55 <title>Hard Disk Controllers: IDE, SATA (AHCI), SCSI, SAS, USB MSD, NVMe</title> 56 57 <para> 58 In a real PC, hard disks and CD/DVD drives are connected to a 59 device called hard disk controller which drives hard disk 60 operation and data transfers. VirtualBox can emulate the five most 61 common types of hard disk controllers typically found in today's 62 PCs: IDE, SATA (AHCI), SCSI, SAS, USB-based, and NVMe mass storage 63 devices. 64 65 <footnote> 66 67 <para> 68 SATA support was added with VirtualBox 1.6; experimental SCSI 69 support was added with 2.1 and fully implemented with 2.2. 70 Generally, storage attachments were made much more flexible 71 with VirtualBox 3.1. Support for the LSI Logic SAS controller 72 was added with VirtualBox 3.2. USB mass storage devices are 73 supported since VirtualBox 5.0. NVMe controller support was 74 added with VirtualBox 5.1. 75 </para> 76 77 </footnote> 78 </para> 79 80 <itemizedlist> 81 82 <listitem> 83 <para> 84 <emphasis role="bold">IDE (ATA)</emphasis> controllers are a 54 85 backwards compatible yet very advanced extension of the disk 55 86 controller in the IBM PC/AT (1984). Initially, this interface 56 worked only with hard disks, but was later extended to also support 57 CD-ROM drives and other types of removable media. In physical PCs, 58 this standard uses flat ribbon parallel cables with 40 or 80 wires. 59 Each such cable can connect two devices to a controller, which have 60 traditionally been called "master" and "slave". Typical PCs had 61 two connectors for such cables; as a result, support for up to four 62 IDE devices was most common.</para> 63 64 <para>In VirtualBox, each virtual machine may have one IDE 87 worked only with hard disks, but was later extended to also 88 support CD-ROM drives and other types of removable media. In 89 physical PCs, this standard uses flat ribbon parallel cables 90 with 40 or 80 wires. Each such cable can connect two devices 91 to a controller, which have traditionally been called 92 <emphasis>master</emphasis> and <emphasis>slave</emphasis>. 93 Typical PCs had two connectors for such cables. As a result, 94 support for up to four IDE devices was most common. 95 </para> 96 97 <para> 98 In VirtualBox, each virtual machine may have one IDE 65 99 controller enabled, which gives you up to four virtual storage 66 devices that you can attach to the machine. (By default, one of 67 these four -- the secondary master -- is preconfigured to be the 68 machine's virtual CD/DVD drive, but this can be changed.<footnote> 69 <para>The assignment of the machine's CD/DVD drive to the 70 secondary master was fixed before VirtualBox 3.1; it is now 71 changeable, and the drive can be at other slots of the IDE 72 controller, and there can be more than one such drive.</para> 73 </footnote>)</para> 74 75 <para>So even if your guest operating system has no support for SCSI 76 or SATA devices, it should always be able to see an IDE controller. 100 devices that you can attach to the machine. By default, one of 101 these four, the secondary master, is preconfigured to be the 102 machine's virtual CD/DVD drive, but this can be changed. 103 104 <footnote> 105 106 <para> 107 The assignment of the machine's CD/DVD drive to the 108 secondary master was fixed before VirtualBox 3.1. It is 109 now changeable, and the drive can be at other slots of the 110 IDE controller, and there can be more than one such drive. 111 </para> 112 113 </footnote> 114 115 ) 116 </para> 117 118 <para> 119 Even if your guest operating system has no support for SCSI or 120 SATA devices, it should always be able to see an IDE 121 controller. 122 </para> 123 124 <para> 125 You can also select which exact type of IDE controller 126 hardware VirtualBox should present to the virtual machine: 127 PIIX3, PIIX4, or ICH6. This makes no difference in terms of 128 performance, but if you import a virtual machine from another 129 virtualization product, the operating system in that machine 130 may expect a particular controller type and crash if it is not 131 found. 132 </para> 133 134 <para> 135 After you have created a new virtual machine with the New 136 Virtual Machine wizard of the graphical user interface, you 137 will typically see one IDE controller in the machine's Storage 138 settings. The virtual CD/DVD drive will be attached to one of 139 the four ports of this controller. 140 </para> 141 </listitem> 142 143 <listitem> 144 <para> 145 <emphasis role="bold">Serial ATA (SATA)</emphasis> is a newer 146 standard introduced in 2003. Compared to IDE, it supports both 147 much higher speeds and more devices per controller. Also, with 148 physical hardware, devices can be added and removed while the 149 system is running. The standard interface for SATA controllers 150 is called Advanced Host Controller Interface (AHCI). 151 </para> 152 153 <para> 154 Like a real SATA controller, VirtualBox's virtual SATA 155 controller operates faster and also consumes fewer CPU 156 resources than the virtual IDE controller. Also, this allows 157 you to connect up to 30 virtual hard disks to one machine 158 instead of just three, when compared to the VirtualBox IDE 159 controller with a DVD drive attached. 160 </para> 161 162 <para> 163 For this reason, starting with version 3.2 and depending on 164 the selected guest operating system, VirtualBox uses SATA as 165 the default for newly created virtual machines. One virtual 166 SATA controller is created by default, and the default disk 167 that is created with a new VM is attached to this controller. 168 </para> 169 170 <warning> 171 <para> 172 The entire SATA controller and the virtual disks attached to 173 it, including those in IDE compatibility mode, will not be 174 seen by operating systems that do not have device support 175 for AHCI. In particular, <emphasis>there is no support for 176 AHCI in Windows before Windows Vista</emphasis>, so Windows 177 XP (even SP3) will not see such disks unless you install 178 additional drivers. It is possible to switch from IDE to 179 SATA after installation by installing the SATA drivers and 180 changing the controller type in the VM settings dialog. 181 182 <footnote> 183 184 <para> 185 VirtualBox recommends the Intel Matrix Storage drivers, 186 which can be downloaded from 187 <ulink 188 url="http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101">http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101</ulink>. 189 </para> 190 191 </footnote> 77 192 </para> 78 79 <para>You can also select which exact type of IDE controller 80 hardware VirtualBox should present to the virtual machine (PIIX3, 81 PIIX4 or ICH6). This makes no difference in terms of performance, 82 but if you import a virtual machine from another virtualization 83 product, the operating system in that machine may expect a 84 particular controller type and crash if it isn't found.</para> 85 86 <para>After you have created a new virtual machine with the "New 87 Virtual Machine" wizard of the graphical user interface, you will 88 typically see one IDE controller in the machine's "Storage" settings 89 where the virtual CD/DVD drive will be attached to one of the four 90 ports of this controller.</para> 91 </listitem> 92 93 <listitem> 94 <para><emphasis role="bold">Serial ATA (SATA)</emphasis> is a newer 95 standard introduced in 2003. Compared to IDE, it supports both much 96 higher speeds and more devices per controller. Also, with 97 physical hardware, devices can be added and removed while the system 98 is running. The standard interface for SATA controllers is called 99 Advanced Host Controller Interface (<emphasis 100 role="bold">AHCI</emphasis>).</para> 101 102 <para>Like a real SATA controller, VirtualBox's virtual SATA 103 controller operates faster and also consumes fewer CPU resources than 104 the virtual IDE controller. Also, this allows you to connect up to 105 30 virtual hard disks to one machine instead of just three, as with 106 the VirtualBox IDE controller (with the DVD drive already attached).</para> 107 108 <para>For this reason, starting with version 3.2 and depending on 109 the selected guest operating system, VirtualBox uses SATA as the 110 default for newly created virtual machines. One virtual SATA 111 controller is created by default, and the default disk that is 112 created with a new VM is attached to this controller.<warning> 113 <para>The entire SATA controller and the virtual disks attached 114 to it (including those in IDE compatibility mode) will not be 115 seen by operating systems that do not have device support for 116 AHCI. In particular, <emphasis role="bold">there is no support 117 for AHCI in Windows before Windows Vista</emphasis>, so Windows 118 XP (even SP3) will not see such disks unless you install 119 additional drivers. It is possible to switch from IDE to SATA 120 after installation by installing the SATA drivers and changing 121 the controller type in the VM settings dialog.<footnote> 122 <para>VirtualBox recommends the Intel Matrix Storage drivers 123 which can be downloaded from <ulink 124 url="http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101">http://downloadcenter.intel.com/Product_Filter.aspx?ProductID=2101</ulink>.</para> 125 </footnote></para> 126 </warning></para> 127 128 <para>To add a SATA controller to a machine for which it has not 129 been enabled by default (either because it was created by an earlier 130 version of VirtualBox, or because SATA is not supported by default 131 by the selected guest operating system), go to the "Storage" page of 132 the machine's settings dialog, click on the "Add Controller" button 133 under the "Storage Tree" box and then select "Add SATA Controller". 134 After this, the additional controller will appear as a separate PCI 135 device in the virtual machine, and you can add virtual disks to 136 it.</para> 137 138 <para>To change the IDE compatibility mode settings for the SATA 139 controller, please see <xref 140 linkend="vboxmanage-storagectl" />.</para> 141 </listitem> 142 143 <listitem> 144 <para><emphasis role="bold">SCSI</emphasis> is another established 145 industry standard, standing for "Small Computer System Interface". 146 SCSI was standardized as early as 1986 as a generic interface for 147 data transfer between all kinds of devices, including storage 148 devices. Today SCSI is still used for connecting hard disks and tape 149 devices, but it has mostly been displaced in commodity hardware. It 150 is still in common use in high-performance workstations and 151 servers.</para> 152 153 <para>Primarily for compatibility with other virtualization 154 software, VirtualBox optionally supports LSI Logic and BusLogic SCSI 155 controllers, to each of which up to 15 virtual hard disks can be 156 attached.</para> 157 158 <para>To enable a SCSI controller, on the "Storage" page of a 159 virtual machine's settings dialog, click on the "Add Controller" 160 button under the "Storage Tree" box and then select "Add SCSI 161 Controller". After this, the additional controller will appear as a 162 separate PCI device in the virtual machine.<warning> 163 <para>As with the other controller types, a SCSI controller will 164 only be seen by operating systems with device support for it. 165 Windows 2003 and later ships with drivers for the LSI Logic 166 controller, while Windows NT 4.0 and Windows 2000 ships with 167 drivers for the BusLogic controller. Windows XP ships with 168 drivers for neither.</para> 169 </warning></para> 170 </listitem> 171 172 <listitem> 173 <para><emphasis role="bold">Serial Attached SCSI (SAS)</emphasis> is 174 another bus standard which uses the SCSI command set. As opposed to 175 SCSI, however, with physical devices, serial cables are used instead 176 of parallel ones, which simplifies physical device connections. In 177 some ways, therefore, SAS is to SCSI what SATA is to IDE: it allows 178 for more reliable and faster connections.</para> 179 180 <para>To support high-end guests which require SAS controllers, 181 VirtualBox emulates a LSI Logic SAS controller, which can be enabled 182 much the same way as a SCSI controller. At this time, up to eight 183 devices can be connected to the SAS controller.</para> 193 </warning> 194 195 <para> 196 To add a SATA controller to a machine for which it has not 197 been enabled by default, either because it was created by an 198 earlier version of VirtualBox, or because SATA is not 199 supported by default by the selected guest operating system, 200 do the following. Go to the Storage page of the machine's 201 settings dialog, click <emphasis role="bold">Add 202 Controller</emphasis> under the Storage Tree box and then 203 select <emphasis role="bold">Add SATA Controller</emphasis>. 204 The new controller appears as a separate PCI device in the 205 virtual machine, and you can add virtual disks to it. 206 </para> 207 208 <para> 209 To change the IDE compatibility mode settings for the SATA 210 controller, see 211 <xref 212 linkend="vboxmanage-storagectl" />. 213 </para> 214 </listitem> 215 216 <listitem> 217 <para> 218 <emphasis role="bold">SCSI</emphasis> is another established 219 industry standard, standing for Small Computer System 220 Interface. SCSI was standardized as early as 1986 as a generic 221 interface for data transfer between all kinds of devices, 222 including storage devices. Today SCSI is still used for 223 connecting hard disks and tape devices, but it has mostly been 224 displaced in commodity hardware. It is still in common use in 225 high-performance workstations and servers. 226 </para> 227 228 <para> 229 Primarily for compatibility with other virtualization 230 software, VirtualBox optionally supports LSI Logic and 231 BusLogic SCSI controllers, to each of which up to 15 virtual 232 hard disks can be attached. 233 </para> 234 235 <para> 236 To enable a SCSI controller, on the Storage page of a virtual 237 machine's settings dialog, click <emphasis role="bold">Add 238 Controller</emphasis> under the Storage Tree box and then 239 select <emphasis role="bold">Add SCSI Controller</emphasis>. 240 The new controller appears as a separate PCI device in the 241 virtual machine. 242 </para> 243 244 <warning> 245 <para> 246 As with the other controller types, a SCSI controller will 247 only be seen by operating systems with device support for 248 it. Windows 2003 and later ships with drivers for the LSI 249 Logic controller, while Windows NT 4.0 and Windows 2000 250 ships with drivers for the BusLogic controller. Windows XP 251 ships with drivers for neither. 252 </para> 253 </warning> 254 </listitem> 255 256 <listitem> 257 <para> 258 <emphasis role="bold">Serial Attached SCSI (SAS)</emphasis> is 259 another bus standard which uses the SCSI command set. As 260 opposed to SCSI, however, with physical devices, serial cables 261 are used instead of parallel ones, which simplifies physical 262 device connections. In some ways, therefore, SAS is to SCSI 263 what SATA is to IDE: it allows for more reliable and faster 264 connections. 265 </para> 266 267 <para> 268 To support high-end guests which require SAS controllers, 269 VirtualBox emulates a LSI Logic SAS controller, which can be 270 enabled much the same way as a SCSI controller. At this time, 271 up to eight devices can be connected to the SAS controller. 272 </para> 273 274 <warning> 275 <para> 276 As with SATA, the SAS controller will only be seen by 277 operating systems with device support for it. In particular, 278 <emphasis>there is no support for SAS in Windows before 279 Windows Vista</emphasis>, so Windows XP (even SP3) will not 280 see such disks unless you install additional drivers. 281 </para> 282 </warning> 283 </listitem> 284 285 <listitem> 286 <para> 287 The <emphasis role="bold">USB mass storage device 288 class</emphasis> is a standard to connect external storage 289 devices like hard disks or flash drives to a host through USB. 290 All major operating systems support these devices for a long 291 time and ship generic drivers making third-party drivers 292 superfluous. In particular, legacy operating systems without 293 support for SATA controllers may benefit from USB mass storage 294 devices. 295 </para> 296 297 <para> 298 The virtual USB storage controller offered by VirtualBox works 299 differently to the other storage controller types. While most 300 storage controllers appear as a single PCI device to the guest 301 with multiple disks attached to it, the USB-based storage 302 controller does not appear as virtual storage controller. Each 303 disk attached to the controller appears as a dedicated USB 304 device to the guest. 305 </para> 306 307 <warning> 308 <para> 309 Booting from drives attached via USB is when EFI is used as 310 the BIOS lacks USB support. 311 </para> 312 </warning> 313 </listitem> 314 315 <listitem> 316 <para> 317 <emphasis role="bold">Non volatile memory express 318 (NVMe)</emphasis> is a very recent standard which emerged in 319 2011 connecting non volatile memory (NVM) directly over PCI 320 express to lift the bandwidth limitation of the previously 321 used SATA protocol for SSDs. Unlike other standards the 322 command set is very simple to achieve maximum throughput and 323 is not compatible with ATA or SCSI. Operating systems need to 324 support NVMe devices to make use of them. For example, Windows 325 8.1 added native NVMe support. For Windows 7, native support 326 was added with an update. 327 328 <footnote> 329 330 <para> 331 The NVMe controller is part of the extension pack. 332 </para> 333 334 </footnote> 335 </para> 336 337 <warning> 338 <para> 339 Booting from drives attached via NVMe is only supported when 340 EFI is used as the BIOS lacks the appropriate driver. 341 </para> 342 </warning> 343 </listitem> 344 345 </itemizedlist> 346 347 <para> 348 In summary, VirtualBox gives you the following categories of 349 virtual storage slots: 350 </para> 351 352 <itemizedlist> 353 354 <listitem> 355 <para> 356 Four slots attached to the traditional IDE controller, which 357 are always present. One of these is typically a virtual CD/DVD 358 drive. 359 </para> 360 </listitem> 361 362 <listitem> 363 <para> 364 30 slots attached to the SATA controller, if enabled and 365 supported by the guest operating system. 366 </para> 367 </listitem> 368 369 <listitem> 370 <para> 371 15 slots attached to the SCSI controller, if enabled and 372 supported by the guest operating system. 373 </para> 374 </listitem> 375 376 <listitem> 377 <para> 378 Eight slots attached to the SAS controller, if enabled and 379 supported by the guest operating system. 380 </para> 381 </listitem> 382 383 <listitem> 384 <para> 385 Eight slots attached to the virtual USB controller, if enabled 386 and supported by the guest operating system. 387 </para> 388 </listitem> 389 390 <listitem> 391 <para> 392 Up to 255 slots attached to the NVMe controller, if enabled 393 and supported by the guest operating system. 394 </para> 395 </listitem> 396 397 </itemizedlist> 398 399 <para> 400 Given this large choice of storage controllers, you may not know 401 which one to choose. In general, you should avoid IDE unless it is 402 the only controller supported by your guest. Whether you use SATA, 403 SCSI, or SAS does not make any real difference. The variety of 404 controllers is only supplied by VirtualBox for compatibility with 405 existing hardware and other hypervisors. 406 </para> 407 408 </sect1> 409 410 <sect1 id="vdidetails"> 411 412 <title>Disk Image Files (VDI, VMDK, VHD, HDD)</title> 413 414 <para> 415 Disk image files reside on the host system and are seen by the 416 guest systems as hard disks of a certain geometry. When a guest 417 operating system reads from or writes to a hard disk, VirtualBox 418 redirects the request to the image file. 419 </para> 420 421 <para> 422 Like a physical disk, a virtual disk has a size (capacity), which 423 must be specified when the image file is created. As opposed to a 424 physical disk however, VirtualBox allows you to expand an image 425 file after creation, even if it has data already. See 426 <xref 427 linkend="vboxmanage-modifyvdi" />. 428 429 <footnote> 430 431 <para> 432 Image resizing was added with VirtualBox 4.0. 433 </para> 434 435 </footnote> 436 </para> 437 438 <para> 439 VirtualBox supports the following types of disk image files: 440 </para> 441 442 <itemizedlist> 443 444 <listitem> 445 <para> 446 <emphasis role="bold">VDI.</emphasis> Normally, VirtualBox 447 uses its own container format for guest hard disks. This is 448 called a Virtual Disk Image (VDI) file. This format is used 449 when you create a new virtual machine with a new disk. 450 </para> 451 </listitem> 452 453 <listitem> 454 <para> 455 <emphasis role="bold">VMDK.</emphasis> VirtualBox also fully 456 supports the popular and open VMDK container format that is 457 used by many other virtualization products, in particular, by 458 VMware. 459 460 <footnote> 461 462 <para> 463 Initial support for VMDK was added with VirtualBox 1.4. 464 Since version 2.1, VirtualBox supports VMDK fully, meaning 465 that you can create snapshots and use all the other 466 advanced features described above for VDI images with VMDK 467 also. 468 </para> 469 470 </footnote> 471 </para> 472 </listitem> 473 474 <listitem> 475 <para> 476 <emphasis role="bold">VHD.</emphasis> VirtualBox also fully 477 supports the VHD format used by Microsoft. 478 </para> 479 </listitem> 480 481 <listitem> 482 <para> 483 <emphasis role="bold">HDD.</emphasis> Image files of Parallels 484 version 2 (HDD format) are also supported. 485 486 <footnote> 487 488 <para> 489 Support was added with VirtualBox 3.1. 490 </para> 491 492 </footnote> 493 494 Due to lack of documentation of the format, newer versions 495 such as 3 and 4 are not supported. You can however convert 496 such image files to version 2 format using tools provided by 497 Parallels. 498 </para> 499 </listitem> 500 501 </itemizedlist> 502 503 <para> 504 Irrespective of the disk capacity and format, as mentioned in 505 <xref linkend="gui-createvm" />, there are two options for 506 creating a disk image: fixed-size or dynamically allocated. 507 </para> 508 509 <itemizedlist> 510 511 <listitem> 512 <para> 513 <emphasis role="bold">Fixed-size.</emphasis> If you create a 514 fixed-size image, an image file will be created on your host 515 system which has roughly the same size as the virtual disk's 516 capacity. So, for a 10 GB disk, you will have a 10 GB file. 517 Note that the creation of a fixed-size image can take a long 518 time depending on the size of the image and the write 519 performance of your hard disk. 520 </para> 521 </listitem> 522 523 <listitem> 524 <para> 525 <emphasis role="bold">Dynamically allocated.</emphasis> For 526 more flexible storage management, use a dynamically allocated 527 image. This will initially be very small and not occupy any 528 space for unused virtual disk sectors, but will grow every 529 time a disk sector is written to for the first time, until the 530 drive reaches the maximum capacity chosen when the drive was 531 created. While this format takes less space initially, the 532 fact that VirtualBox needs to expand the image file consumes 533 additional computing resources, so until the disk file size 534 has stabilized, write operations may be slower than with fixed 535 size disks. However, after a time the rate of growth will slow 536 and the average penalty for write operations will be 537 negligible. 538 </para> 539 </listitem> 540 541 </itemizedlist> 542 543 </sect1> 544 545 <sect1 id="vdis"> 546 547 <title>The Virtual Media Manager</title> 548 549 <para> 550 VirtualBox keeps track of all the hard disk, CD/DVD-ROM, and 551 floppy disk images which are in use by virtual machines. These are 552 often referred to as <emphasis>known media</emphasis> and come 553 from two sources: 554 </para> 555 556 <itemizedlist> 557 558 <listitem> 559 <para> 560 All media currently attached to virtual machines. 561 </para> 562 </listitem> 563 564 <listitem> 565 <para> 566 Registered media, for compatibility with VirtualBox versions 567 older than version 4.0. For details about how media 568 registration has changed with version 4.0, see 569 <xref 570 linkend="vboxconfigdata" />. 571 </para> 572 </listitem> 573 574 </itemizedlist> 575 576 <para> 577 The known media can be viewed and changed in the 578 <emphasis 579 role="bold">Virtual Media Manager</emphasis>, which 580 you can access from the File menu in the VirtualBox main window. 581 </para> 582 583 <mediaobject> 584 <imageobject> 585 <imagedata align="center" fileref="images/virtual-disk-manager.png" 586 width="12cm" /> 587 </imageobject> 588 </mediaobject> 589 590 <para> 591 The known media are conveniently grouped in separate tabs for the 592 three possible formats. These formats are: 593 </para> 594 595 <itemizedlist> 596 597 <listitem> 598 <para> 599 Hard disk images, either in VirtualBox's own Virtual Disk 600 Image (VDI) format, or in the third-party formats listed in 601 <xref linkend="vdidetails"/>. 602 </para> 603 </listitem> 604 605 <listitem> 606 <para> 607 CD/DVD images in standard ISO format. 608 </para> 609 </listitem> 610 611 <listitem> 612 <para> 613 Floppy images in standard RAW format. 614 </para> 615 </listitem> 616 617 </itemizedlist> 618 619 <para> 620 For each image, the Virtual Media Manager shows you the full path 621 of the image file and other information, such as the virtual 622 machine the image is currently attached to, if any. 623 </para> 624 625 <para> 626 The Virtual Media Manager enables you to do the following: 627 </para> 628 629 <itemizedlist> 630 631 <listitem> 632 <para> 633 <emphasis role="bold">Remove</emphasis> an image from the 634 registry. You can optionally delete the image file when doing 635 so. 636 </para> 637 </listitem> 638 639 <listitem> 640 <para> 641 <emphasis role="bold">Release</emphasis> an image. Detach it 642 from a virtual machine, if it is currently attached to one as 643 a virtual hard disk. 644 </para> 645 </listitem> 646 647 <listitem> 648 <para> 649 <emphasis role="bold">Copy</emphasis> a virtual hard disk, to 650 create another one. The target type can be different. 651 Available options are: VDI, VHD, or VMDK. 652 </para> 653 </listitem> 654 655 <listitem> 656 <para> 657 <emphasis role="bold">Modify</emphasis> the attributes of the 658 disk image file. Available options are: Normal, Immutable, 659 Writethrough, Shareable, Multi-attach. 660 </para> 661 </listitem> 662 663 <listitem> 664 <para> 665 <emphasis role="bold">Refresh</emphasis> the values for the 666 displayed attributes of the currently-selected disk image. 667 </para> 668 </listitem> 669 670 </itemizedlist> 671 672 <para> 673 These commands are accessible once a medium has been selected 674 either by selecting from the options shown at the top of the 675 window, or by right-clicking the medium and selecting from the 676 options shown on the drop-down menu. 677 </para> 678 679 <para> 680 Starting with version 4.0, to create a new disk image, you use the 681 Storage page in a virtual machine's settings dialog. This is 682 because disk images are now by default stored in each machine's 683 own folder. 684 </para> 685 686 <para> 687 Hard disk image files can be copied to other host systems and 688 imported into virtual machines there, although certain guest 689 systems, notably Windows 2000 and XP, will require that the new 690 virtual machine be set up in a similar way to the old one. 691 </para> 692 693 <note> 694 <para> 695 Do not simply make copies of virtual disk images. If you import 696 such a second copy into a virtual machine, VirtualBox will 697 complain with an error, since VirtualBox assigns a unique 698 identifier (UUID) to each disk image to make sure it is only 699 used once. See <xref 700 linkend="cloningvdis" />. Also, if 701 you want to copy a virtual machine to another system, VirtualBox 702 has an import/export facility that might be better suited for 703 your needs. See <xref linkend="ovf" />. 704 </para> 705 </note> 706 707 </sect1> 708 709 <sect1 id="hdimagewrites"> 710 711 <title>Special Image Write Modes</title> 712 713 <para> 714 For each virtual disk image supported by VirtualBox, you can 715 determine separately how it should be affected by write operations 716 from a virtual machine and snapshot operations. This applies to 717 all of the aforementioned image formats (VDI, VMDK, VHD, or HDD) 718 and irrespective of whether an image is fixed-size or dynamically 719 allocated. 720 </para> 721 722 <para> 723 By default, images are in <emphasis>normal</emphasis> mode. To 724 mark an existing image with one of the non-standard modes listed 725 below, use <computeroutput>VBoxManage modifyhd</computeroutput>. 726 See <xref 727 linkend="vboxmanage-modifyvdi" />. Alternatively, 728 use VBoxManage to attach the image to a VM and use the 729 <computeroutput>--mtype</computeroutput> argument. See 730 <xref linkend="vboxmanage-storageattach" />. 731 </para> 732 733 <para> 734 The available virtual disk image modes are as follows: 735 </para> 736 737 <itemizedlist> 738 739 <listitem> 740 <para> 741 <emphasis role="bold">Normal images</emphasis> have no 742 restrictions on how guests can read from and write to the 743 disk. This is the default image mode. 744 </para> 745 746 <para> 747 When you take a snapshot of your virtual machine as described 748 in <xref linkend="snapshots" />, the state of a normal hard 749 disk is recorded together with the snapshot, and when 750 reverting to the snapshot, its state will be fully reset. 751 </para> 752 753 <para> 754 The image file itself is not reset. Instead, when a snapshot 755 is taken, VirtualBox "freezes" the image file and no longer 756 writes to it. For the write operations from the VM, a second, 757 <emphasis>differencing</emphasis> image file is created which 758 receives only the changes to the original image. See 759 <xref linkend="diffimages"/>. 760 </para> 761 762 <para> 763 While you can attach the same normal image to more than one 764 virtual machine, only one of these virtual machines attached 765 to the same image file can be executed simultaneously, as 766 otherwise there would be conflicts if several machines write 767 to the same image file. 768 769 <footnote> 770 771 <para> 772 This restriction is more lenient now than it was before 773 VirtualBox 2.2. Previously, each normal disk image could 774 only be <emphasis>attached</emphasis> to one single 775 machine. Now it can be attached to more than one machine 776 so long as only one of these machines is running. 777 </para> 778 779 </footnote> 780 </para> 781 </listitem> 782 783 <listitem> 784 <para> 785 <emphasis role="bold">Write-through hard disks</emphasis> are 786 completely unaffected by snapshots. Their state is 787 <emphasis>not</emphasis> saved when a snapshot is taken, and 788 not restored when a snapshot is restored. 789 </para> 790 </listitem> 791 792 <listitem> 793 <para> 794 <emphasis role="bold">Shareable hard disks</emphasis> are a 795 variant of write-through hard disks. In principle they behave 796 exactly the same. Their state is <emphasis>not</emphasis> 797 saved when a snapshot is taken, and not restored when a 798 snapshot is restored. The difference only shows if you attach 799 such disks to several VMs. Shareable disks may be attached to 800 several VMs which may run concurrently. This makes them 801 suitable for use by cluster filesystems between VMs and 802 similar applications which are explicitly prepared to access a 803 disk concurrently. Only fixed size images can be used in this 804 way, and dynamically allocated images are rejected. 184 805 185 806 <warning> 186 <para> As with SATA, the SAS controller will only be seen by187 operating systems with device support for it. In particular,188 <emphasis role="bold">there is no support for SAS in Windows189 before Windows Vista</emphasis>, so Windows XP (even SP3) will not190 see such disks unless you install additional drivers.</para>807 <para> 808 This is an expert feature, and misuse can lead to data 809 loss, as regular filesystems are not prepared to handle 810 simultaneous changes by several parties. 811 </para> 191 812 </warning> 192 </listitem> 193 194 <listitem> 195 <para>The <emphasis role="bold">USB mass storage device class</emphasis> 196 is a standard to connect external storage devices like hard disks or flash 197 drives to a host through USB. All major operating systems support these 198 devices for a long time and ship generic drivers making third-party 199 drivers superfluous. In particular legacy operating systems without 200 support for SATA controllers may benefit from USB mass storage devices.</para> 201 <para>The virtual USB storage controller offered by VirtualBox works 202 different than the other storage controller types: When storage 203 controllers appear as a single PCI device to the guest with multiple 204 disks attached to it, the USB-based storage controller does not appear 205 as virtual storage controller. Each disk attached to the controller 206 appears as a dedicated USB device to the guest.</para> 207 <warning> 208 <para>Booting from drives attached via USB is when EFI is used as the 209 BIOS lacks USB support.</para> 210 </warning> 211 </listitem> 212 213 <listitem> 214 <para><emphasis role="bold">Non volatile memory express (NVMe)</emphasis> 215 is a very recent standard which emerged in 2011 connecting non volatile 216 memory (NVM) directly over PCI express to lift the bandwidth limitation 217 of the previously used SATA protocol for SSDs. Unlike other standards 218 the command set is very simple to achieve maximum throughput and is 219 not compatible with ATA or SCSI. Operating systems need to support NVMe 220 devices to make use of them. For example Windows 8.1 added native NVMe 221 support, for Windows 7 native support was added with an update. 813 </para> 814 </listitem> 815 816 <listitem> 817 <para> 818 <emphasis role="bold">Immutable images</emphasis> only 819 remember write accesses temporarily while the virtual machine 820 is running. All changes are lost when the virtual machine is 821 powered on the next time. As a result, as opposed to Normal 822 images, the same immutable image can be used with several 823 virtual machines without restrictions. 824 </para> 825 826 <para> 827 Creating an immutable image makes little sense since it would 828 be initially empty and lose its contents with every machine 829 restart. You would have a disk that is always unformatted when 830 the machine starts up. Instead, you can first create a normal 831 image and then later mark it as immutable when you decide that 832 the contents are useful. 833 </para> 834 835 <para> 836 If you take a snapshot of a machine with immutable images, 837 then on every machine power-up, those images are reset to the 838 state of the last (current) snapshot, instead of the state of 839 the original immutable image. 840 </para> 841 842 <note> 843 <para> 844 As a special exception, immutable images are 845 <emphasis>not</emphasis> reset if they are attached to a 846 machine in a saved state or whose last snapshot was taken 847 while the machine was running. This is called an 848 <emphasis>online snapshot</emphasis>. As a result, if the 849 machine's current snapshot is an online snapshot, its 850 immutable images behave exactly like the a normal image. To 851 reenable the automatic resetting of such images, delete the 852 current snapshot of the machine. 853 </para> 854 </note> 855 856 <para> 857 VirtualBox never writes to an immutable image directly at all. 858 All write operations from the machine are directed to a 859 differencing image. The next time the VM is powered on, the 860 differencing image is reset so that every time the VM starts, 861 its immutable images have exactly the same content. 862 222 863 <footnote> 223 <para>The NVMe controller is part of the extension pack.</para> 224 </footnote></para> 225 <warning> 226 <para>Booting from drives attached via NVMe is only supported when 227 EFI is used as the BIOS lacks the appropriate driver.</para> 228 </warning> 229 </listitem> 230 </itemizedlist></para> 231 232 <para>In summary, VirtualBox gives you the following categories of virtual 233 storage slots:<orderedlist> 234 <listitem> 235 <para>four slots attached to the traditional IDE controller, which 236 are always present (one of which typically is a virtual CD/DVD 237 drive);</para> 238 </listitem> 239 240 <listitem> 241 <para>30 slots attached to the SATA controller, if enabled and 242 supported by the guest operating system;</para> 243 </listitem> 244 245 <listitem> 246 <para>15 slots attached to the SCSI controller, if enabled and 247 supported by the guest operating system;</para> 248 </listitem> 249 250 <listitem> 251 <para>eight slots attached to the SAS controller, if enabled and 252 supported by the guest operating system.</para> 253 </listitem> 254 255 <listitem> 256 <para>eight slots attached to the virtual USB controller, if enabled and 257 supported by the guest operating system.</para> 258 </listitem> 259 260 <listitem> 261 <para>up to 255 slots attached to the NVMe controller, if enabled and 262 supported by the guest operating system.</para> 263 </listitem> 264 </orderedlist></para> 265 266 <para>Given this large choice of storage controllers, you may ask yourself 267 which one to choose. In general, you should avoid IDE unless it is the 268 only controller supported by your guest. Whether you use SATA, SCSI or SAS 269 does not make any real difference. The variety of controllers is only 270 supplied for VirtualBox for compatibility with existing hardware and other 271 hypervisors.</para> 864 865 <para> 866 This behavior also changed with VirtualBox 2.2. 867 Previously, the differencing images were discarded when 868 the machine session <emphasis>ended</emphasis>; now they 869 are discarded every time the machine is powered on. 870 </para> 871 872 </footnote> 873 874 The differencing image is only reset when the machine is 875 powered on from within VirtualBox, not when you reboot by 876 requesting a reboot from within the machine. This is also why 877 immutable images behave as described above when snapshots are 878 also present, which use differencing images as well. 879 </para> 880 881 <para> 882 If the automatic discarding of the differencing image on VM 883 startup does not fit your needs, you can turn it off using the 884 <computeroutput>autoreset</computeroutput> parameter of 885 <computeroutput>VBoxManage modifyhd</computeroutput>. See 886 <xref 887 linkend="vboxmanage-modifyvdi"/>. 888 </para> 889 </listitem> 890 891 <listitem> 892 <para> 893 <emphasis role="bold">Multiattach mode images</emphasis> can 894 be attached to more than one virtual machine at the same time, 895 even if these machines are running simultaneously. For each 896 virtual machine to which such an image is attached, a 897 differencing image is created. As a result, data that is 898 written to such a virtual disk by one machine is not seen by 899 the other machines to which the image is attached. Each 900 machine creates its own write history of the multiattach 901 image. 902 </para> 903 904 <para> 905 Technically, a multiattach image behaves identically to an 906 immutable image except the differencing image is not reset 907 every time the machine starts. 908 </para> 909 910 <para> 911 This mode is useful for sharing files which are almost never 912 written, for instance picture galleries, where every guest 913 changes only a small amount of data and the majority of the 914 disk content remains unchanged. The modified blocks are stored 915 in differencing images which remain relatively small and the 916 shared content is stored only once at the host. 917 </para> 918 </listitem> 919 920 <listitem> 921 <para> 922 <emphasis role="bold">Read-only images</emphasis> are used 923 automatically for CD/DVD images, since CDs/DVDs can never be 924 written to. 925 </para> 926 </listitem> 927 928 </itemizedlist> 929 930 <para> 931 The following scenario illustrates the differences between the 932 various image modes, with respect to snapshots. 933 </para> 934 935 <para> 936 Assume you have installed your guest operating system in your VM, 937 and you have taken a snapshot. Later, your VM is infected with a 938 virus and you would like to go back to the snapshot. With a normal 939 hard disk image, you simply restore the snapshot, and the earlier 940 state of your hard disk image will be restored as well and your 941 virus infection will be undone. With an immutable hard disk, all 942 it takes is to shut down and power on your VM, and the virus 943 infection will be discarded. With a write-through image however, 944 you cannot easily undo the virus infection by means of 945 virtualization, but will have to disinfect your virtual machine 946 like a real computer. 947 </para> 948 949 <para> 950 You might find write-through images useful if you want to preserve 951 critical data irrespective of snapshots. As you can attach more 952 than one image to a VM, you may want to have one immutable image 953 for the operating system and one write-through image for your data 954 files. 955 </para> 956 272 957 </sect1> 273 958 274 <sect1 id="vdidetails"> 275 <title>Disk image files (VDI, VMDK, VHD, HDD)</title> 276 277 <para>Disk image files reside on the host system and are seen by the guest 278 systems as hard disks of a certain geometry. When a guest operating system 279 reads from or writes to a hard disk, VirtualBox redirects the request to 280 the image file.</para> 281 282 <para>Like a physical disk, a virtual disk has a size (capacity), which 283 must be specified when the image file is created. As opposed to a physical 284 disk however, VirtualBox allows you to expand an image file after 285 creation, even if it has data already; see <xref 286 linkend="vboxmanage-modifyvdi" /> for details.<footnote> 287 <para>Image resizing was added with VirtualBox 4.0.</para> 288 </footnote></para> 289 290 <para>VirtualBox supports four variants of disk image files:<itemizedlist> 291 <listitem> 292 <para>Normally, VirtualBox uses its own container format for guest 293 hard disks -- Virtual Disk Image (VDI) files. In particular, this 294 format will be used when you create a new virtual machine with a new 295 disk.</para> 296 </listitem> 297 298 <listitem> 299 <para>VirtualBox also fully supports the popular and open VMDK 300 container format that is used by many other virtualization products, 301 in particular, by VMware.<footnote> 302 <para>Initial support for VMDK was added with VirtualBox 1.4; 303 since version 2.1, VirtualBox supports VMDK fully, meaning that 304 you can create snapshots and use all the other advanced features 305 described above for VDI images with VMDK also.</para> 306 </footnote></para> 307 </listitem> 308 309 <listitem> 310 <para>VirtualBox also fully supports the VHD format used by 311 Microsoft.</para> 312 </listitem> 313 314 <listitem> 315 <para>Image files of Parallels version 2 (HDD format) are also 316 supported.<footnote> 317 <para>Support was added with VirtualBox 3.1.</para> 318 </footnote> For lack of documentation of the format, newer formats 319 (3 and 4) are not supported. You can however convert such image 320 files to version 2 format using tools provided by Parallels.</para> 321 </listitem> 322 </itemizedlist></para> 323 324 <para>Irrespective of the disk capacity and format, as briefly mentioned 325 in <xref linkend="gui-createvm" />, there are two options of how to create 326 a disk image: fixed-size or dynamically allocated.</para> 959 <sect1 id="diffimages"> 960 961 <title>Differencing Images</title> 962 963 <para> 964 The previous section mentioned differencing images and how they 965 are used with snapshots, immutable images, and multiple disk 966 attachments. This section describes in more detail how 967 differencing images work. 968 </para> 969 970 <para> 971 A differencing image is a special disk image that only holds the 972 differences to another image. A differencing image by itself is 973 useless, it must always refer to another image. The differencing 974 image is then typically referred to as a 975 <emphasis>child</emphasis>, which holds the differences to its 976 <emphasis>parent</emphasis>. 977 </para> 978 979 <para> 980 When a differencing image is active, it receives all write 981 operations from the virtual machine instead of its parent. The 982 differencing image only contains the sectors of the virtual hard 983 disk that have changed since the differencing image was created. 984 When the machine reads a sector from such a virtual hard disk, it 985 looks into the differencing image first. If the sector is present, 986 it is returned from there. If not, VirtualBox looks into the 987 parent. In other words, the parent becomes 988 <emphasis>read-only</emphasis>. It is never written to again, but 989 it is read from if a sector has not changed. 990 </para> 991 992 <para> 993 Differencing images can be chained. If another differencing image 994 is created for a virtual disk that already has a differencing 995 image, then it becomes a <emphasis>grandchild</emphasis> of the 996 original parent. The first differencing image then becomes 997 read-only as well, and write operations only go to the 998 second-level differencing image. When reading from the virtual 999 disk, VirtualBox needs to look into the second differencing image 1000 first, then into the first if the sector was not found, and then 1001 into the original image. 1002 </para> 1003 1004 <para> 1005 There can be an unlimited number of differencing images, and each 1006 image can have more than one child. As a result, the differencing 1007 images can form a complex tree with parents, siblings, and 1008 children, depending on how complex your machine configuration is. 1009 Write operations always go to the one <emphasis>active</emphasis> 1010 differencing image that is attached to the machine, and for read 1011 operations, VirtualBox may need to look up all the parents in the 1012 chain until the sector in question is found. You can view such a 1013 tree in the Virtual Media Manager: 1014 </para> 1015 1016 <mediaobject> 1017 <imageobject> 1018 <imagedata align="center" fileref="images/virtual-disk-manager2.png" 1019 width="12cm" /> 1020 </imageobject> 1021 </mediaobject> 1022 1023 <para> 1024 In all of these situations, from the point of view of the virtual 1025 machine, the virtual hard disk behaves like any other disk. While 1026 the virtual machine is running, there is a slight run-time I/O 1027 overhead because VirtualBox might need to look up sectors several 1028 times. This is not noticeable however since the tables with sector 1029 information are always kept in memory and can be looked up 1030 quickly. 1031 </para> 1032 1033 <para> 1034 Differencing images are used in the following situations: 1035 </para> 327 1036 328 1037 <itemizedlist> 329 <listitem> 330 <para>If you create a <emphasis role="bold">fixed-size 331 image</emphasis>, an image file will be created on your host system 332 which has roughly the same size as the virtual disk's capacity. So, 333 for a 10G disk, you will have a 10G file. Note that the creation of a 334 fixed-size image can take a long time depending on the size of the 335 image and the write performance of your hard disk.</para> 336 </listitem> 337 338 <listitem> 339 <para>For more flexible storage management, use a <emphasis 340 role="bold">dynamically allocated image</emphasis>. This will 341 initially be very small and not occupy any space for unused virtual 342 disk sectors, but will grow every time a disk sector is written to for 343 the first time, until the drive reaches the maximum capacity chosen 344 when the drive was created. While this format takes less space 345 initially, the fact that VirtualBox needs to expand the image file 346 consumes additional computing resources, so until the disk file size has 347 stabilized, write operations may be slower than with fixed size disks. 348 However, after a time the rate of growth will slow and the average penalty 349 for write operations will be negligible.</para> 350 </listitem> 1038 1039 <listitem> 1040 <para> 1041 <emphasis role="bold">Snapshots.</emphasis> When you create a 1042 snapshot, as explained in the previous section, VirtualBox 1043 "freezes" the images attached to the virtual machine and 1044 creates differencing images for each image that is not in 1045 "write-through" mode. From the point of view of the virtual 1046 machine, the virtual disks continue to operate before, but all 1047 write operations go into the differencing images. Each time 1048 you create another snapshot, for each hard disk attachment, 1049 another differencing image is created and attached, forming a 1050 chain or tree. 1051 </para> 1052 1053 <para> 1054 In the above screenshot, you see that the original disk image 1055 is now attached to a snapshot, representing the state of the 1056 disk when the snapshot was taken. 1057 </para> 1058 1059 <para> 1060 If you <emphasis>restore</emphasis> a snapshot, and want to go 1061 back to the exact machine state that was stored in the 1062 snapshot, the following happens: 1063 </para> 1064 1065 <orderedlist> 1066 1067 <listitem> 1068 <para> 1069 VirtualBox copies the virtual machine settings that were 1070 copied into the snapshot back to the virtual machine. As a 1071 result, if you have made changes to the machine 1072 configuration since taking the snapshot, they are undone. 1073 </para> 1074 </listitem> 1075 1076 <listitem> 1077 <para> 1078 If the snapshot was taken while the machine was running, 1079 it contains a saved machine state, and that state is 1080 restored as well. After restoring the snapshot, the 1081 machine will then be in Saved state and resume execution 1082 from there when it is next started. Otherwise the machine 1083 will be in Powered Off state and do a full boot. 1084 </para> 1085 </listitem> 1086 1087 <listitem> 1088 <para> 1089 For each disk image attached to the machine, the 1090 differencing image holding all the write operations since 1091 the current snapshot was taken is thrown away, and the 1092 original parent image is made active again. If you 1093 restored the root snapshot, then this will be the root 1094 disk image for each attachment. Otherwise, some other 1095 differencing image descended from it. This effectively 1096 restores the old machine state. 1097 </para> 1098 </listitem> 1099 1100 </orderedlist> 1101 1102 <para> 1103 If you later <emphasis>delete</emphasis> a snapshot in order 1104 to free disk space, for each disk attachment, one of the 1105 differencing images becomes obsolete. In this case, the 1106 differencing image of the disk attachment cannot simply be 1107 deleted. Instead, VirtualBox needs to look at each sector of 1108 the differencing image and needs to copy it back into its 1109 parent. This is called "merging" images and can be a 1110 potentially lengthy process, depending on how large the 1111 differencing image is. It can also temporarily need a 1112 considerable amount of extra disk space, before the 1113 differencing image obsoleted by the merge operation is 1114 deleted. 1115 </para> 1116 </listitem> 1117 1118 <listitem> 1119 <para> 1120 <emphasis role="bold">Immutable images.</emphasis> When an 1121 image is switched to immutable mode, a differencing image is 1122 created as well. As with snapshots, the parent image then 1123 becomes read-only, and the differencing image receives all the 1124 write operations. Every time the virtual machine is started, 1125 all the immutable images which are attached to it have their 1126 respective differencing image thrown away, effectively 1127 resetting the virtual machine's virtual disk with every 1128 restart. 1129 </para> 1130 </listitem> 1131 351 1132 </itemizedlist> 1133 352 1134 </sect1> 353 1135 354 <sect1 id="vdis"> 355 <title>The Virtual Media Manager</title> 356 357 <para>VirtualBox keeps track of all the hard disk, CD/DVD-ROM and floppy 358 disk images which are in use by virtual machines. These are often referred 359 to as "known media" and come from two sources:<itemizedlist> 360 <listitem> 361 <para>all media currently attached to virtual machines;</para> 362 </listitem> 363 364 <listitem> 365 <para>"registered" media for compatibility with VirtualBox versions 366 older than version 4.0. For details about how media registration has 367 changed with version 4.0, please refer to <xref 368 linkend="vboxconfigdata" />.</para> 369 </listitem> 370 </itemizedlist></para> 371 372 <para>The known media can be viewed and changed in the <emphasis 373 role="bold">Virtual Media Manager</emphasis>, which you can access from 374 the "File" menu in the VirtualBox main window:</para> 375 376 <para><mediaobject> 377 <imageobject> 378 <imagedata align="center" fileref="images/virtual-disk-manager.png" 379 width="12cm" /> 380 </imageobject> 381 </mediaobject>The known media are conveniently grouped in three tabs for 382 the three possible formats. These formats are:</para> 1136 <sect1 id="cloningvdis"> 1137 1138 <title>Cloning Disk Images</title> 1139 1140 <para> 1141 You can duplicate hard disk image files on the same host to 1142 quickly produce a second virtual machine with the same operating 1143 system setup. However, you should <emphasis>only</emphasis> make 1144 copies of virtual disk images using the utility supplied with 1145 VirtualBox. See <xref 1146 linkend="vboxmanage-clonevdi" />. This 1147 is because VirtualBox assigns a unique identity number (UUID) to 1148 each disk image, which is also stored inside the image, and 1149 VirtualBox will refuse to work with two images that use the same 1150 number. If you do accidentally try to reimport a disk image which 1151 you copied normally, you can make a second copy using VirtualBox's 1152 utility and import that instead. 1153 </para> 1154 1155 <para> 1156 Note that newer Linux distributions identify the boot hard disk 1157 from the ID of the drive. The ID VirtualBox reports for a drive is 1158 determined from the UUID of the virtual disk image. So if you 1159 clone a disk image and try to boot the copied image the guest 1160 might not be able to determine its own boot disk as the UUID 1161 changed. In this case you have to adapt the disk ID in your boot 1162 loader script, for example 1163 <computeroutput>/boot/grub/menu.lst</computeroutput>. The disk ID 1164 looks like this: 1165 </para> 1166 1167 <screen>scsi-SATA_VBOX_HARDDISK_VB5cfdb1e2-c251e503</screen> 1168 1169 <para> 1170 The ID for the copied image can be determined with: 1171 </para> 1172 1173 <screen>hdparm -i /dev/sda</screen> 1174 1175 </sect1> 1176 1177 <sect1 id="iocaching"> 1178 1179 <title>Host I/O Caching</title> 1180 1181 <para> 1182 Starting with version 3.2, VirtualBox can optionally disable the 1183 I/O caching that the host operating system would otherwise perform 1184 on disk image files. 1185 </para> 1186 1187 <para> 1188 Traditionally, VirtualBox has opened disk image files as normal 1189 files, which results in them being cached by the host operating 1190 system like any other file. The main advantage of this is speed: 1191 when the guest OS writes to disk and the host OS cache uses 1192 delayed writing, the write operation can be reported as completed 1193 to the guest OS quickly while the host OS can perform the 1194 operation asynchronously. Also, when you start a VM a second time 1195 and have enough memory available for the OS to use for caching, 1196 large parts of the virtual disk may be in system memory, and the 1197 VM can access the data much faster. 1198 </para> 1199 1200 <para> 1201 Note that this applies only to image files. Buffering does not 1202 occur for virtual disks residing on remote iSCSI storage, which is 1203 the more common scenario in enterprise-class setups. See 1204 <xref 1205 linkend="storage-iscsi" />. 1206 </para> 1207 1208 <para> 1209 While buffering is a useful default setting for virtualizing a few 1210 machines on a desktop computer, there are some disadvantages to 1211 this approach: 1212 </para> 383 1213 384 1214 <itemizedlist> 385 <listitem> 386 <para>Hard disk images, either in VirtualBox's own Virtual Disk Image 387 (VDI) format or in the third-party formats listed in the previous 388 chapter;</para> 389 </listitem> 390 391 <listitem> 392 <para>CD/DVD images in standard ISO format;</para> 393 </listitem> 394 395 <listitem> 396 <para>floppy images in standard RAW format.</para> 397 </listitem> 1215 1216 <listitem> 1217 <para> 1218 Delayed writing through the host OS cache is less secure. When 1219 the guest OS writes data, it considers the data written even 1220 though it has not yet arrived on a physical disk. If for some 1221 reason the write does not happen, such as power failure or 1222 host crash, the likelihood of data loss increases. 1223 </para> 1224 </listitem> 1225 1226 <listitem> 1227 <para> 1228 Disk image files tend to be very large. Caching them can 1229 therefore quickly use up the entire host OS cache. Depending 1230 on the efficiency of the host OS caching, this may slow down 1231 the host immensely, especially if several VMs run at the same 1232 time. For example, on Linux hosts, host caching may result in 1233 Linux delaying all writes until the host cache is nearly full 1234 and then writing out all these changes at once, possibly 1235 stalling VM execution for minutes. This can result in I/O 1236 errors in the guest as I/O requests time out there. 1237 </para> 1238 </listitem> 1239 1240 <listitem> 1241 <para> 1242 Physical memory is often wasted as guest operating systems 1243 typically have their own I/O caches, which may result in the 1244 data being cached twice, in both the guest and the host 1245 caches, for little effect. 1246 </para> 1247 </listitem> 1248 398 1249 </itemizedlist> 399 1250 400 <para>As you can see in the screenshot above, for each image, the Virtual 401 Media Manager shows you the full path of the image file and other 402 information, such as the virtual machine the image is currently attached 403 to, if any.</para> 404 405 <para>The Virtual Media Manager allows you to</para> 406 407 <itemizedlist> 408 <listitem> 409 <para><emphasis role="bold">remove</emphasis> an image from the 410 registry (and optionally delete the image file when doing so);</para> 411 </listitem> 412 413 <listitem> 414 <para><emphasis role="bold">"release"</emphasis> an image, that is, 415 detach it from a virtual machine if it is currently attached to one as 416 a virtual hard disk.</para> 417 </listitem> 418 419 <listitem> 420 <para><emphasis role="bold">copy</emphasis> a virtual hard disk, to 421 another one - target type can be different, options are - VDI, VHD or VMDK.</para> 422 </listitem> 423 424 <listitem> 425 <para><emphasis role="bold">modify</emphasis> the attributes of the 426 disk image file - available options are : Normal, Immutable, 427 Writethrough, Shareable, Multi-attach.</para> 428 </listitem> 429 430 <listitem> 431 <para><emphasis role="bold">refresh</emphasis> the values for the displayed 432 attributes of the disk image currently selected in the window.</para> 433 </listitem> 434 435 </itemizedlist> 436 437 <para>These commands are accessible once a medium has been selected either by selecting 438 from the options shown at the top of the window, or by right-clicking the medium 439 and selecting from the options shown on the drop-down menu.</para> 440 441 <para>Starting with version 4.0, to <emphasis role="bold">create new disk 442 images,</emphasis> please use the "Storage" page in a virtual machine's 443 settings dialog because disk images are now by default stored in each 444 machine's own folder.</para> 445 446 <para>Hard disk image files can be copied onto other host systems and 447 imported into virtual machines there, although certain guest systems 448 (notably Windows 2000 and XP) will require that the new virtual machine be 449 set up in a similar way to the old one.<note> 450 <para>Do not simply make copies of virtual disk images. If you import 451 such a second copy into a virtual machine, VirtualBox will complain 452 with an error, since VirtualBox assigns a unique identifier (UUID) to 453 each disk image to make sure it is only used once. See <xref 454 linkend="cloningvdis" /> for instructions on this matter. Also, if you 455 want to copy a virtual machine to another system, VirtualBox has an 456 import/export facility that might be better suited for your needs; see 457 <xref linkend="ovf" />.</para> 458 </note></para> 1251 <para> 1252 If you decide to disable host I/O caching for the above reasons, 1253 VirtualBox uses its own small cache to buffer writes, but no read 1254 caching since this is typically already performed by the guest OS. 1255 In addition, VirtualBox fully supports asynchronous I/O for its 1256 virtual SATA, SCSI and SAS controllers through multiple I/O 1257 threads. 1258 </para> 1259 1260 <para> 1261 Since asynchronous I/O is not supported by IDE controllers, for 1262 performance reasons, you may want to leave host caching enabled 1263 for your VM's virtual IDE controllers. 1264 </para> 1265 1266 <para> 1267 For this reason, VirtualBox allows you to configure whether the 1268 host I/O cache is used for each I/O controller separately. Either 1269 select the <emphasis role="bold">Use Host I/O Cache</emphasis> 1270 check box in the Storage settings for a given virtual storage 1271 controller, or use the following VBoxManage command to disable the 1272 host I/O cache for a virtual storage controller: 1273 </para> 1274 1275 <screen>VBoxManage storagectl "VM name" --name <controllername> --hostiocache off</screen> 1276 1277 <para> 1278 See <xref linkend="vboxmanage-storagectl" />. 1279 </para> 1280 1281 <para> 1282 For the above reasons, VirtualBox now uses SATA controllers by 1283 default for new virtual machines. 1284 </para> 1285 459 1286 </sect1> 460 1287 461 <sect1 id="hdimagewrites">462 <title>Special image write modes</title>463 464 <para>For each virtual disk image supported by VirtualBox, you can465 determine separately how it should be affected by write operations from a466 virtual machine and snapshot operations. This applies to all of the467 aforementioned image formats (VDI, VMDK, VHD or HDD) and irrespective of468 whether an image is fixed-size or dynamically allocated.</para>469 470 <para>By default, images are in "normal" mode. To mark an existing image471 with one of the non-standard modes listed below, use472 <computeroutput>VBoxManage modifyhd</computeroutput>; see <xref473 linkend="vboxmanage-modifyvdi" />. Alternatively, use VBoxManage to attach474 the image to a VM and use the <computeroutput>--mtype</computeroutput>475 argument; see <xref linkend="vboxmanage-storageattach" />.</para>476 477 <orderedlist>478 <listitem>479 <para>With <emphasis role="bold">normal images</emphasis> (the default480 setting), there are no restrictions on how guests can read from and481 write to the disk.</para>482 483 <para>When you take a snapshot of your virtual machine as described in484 <xref linkend="snapshots" />, the state of such a "normal hard disk"485 will be recorded together with the snapshot, and when reverting to the486 snapshot, its state will be fully reset.</para>487 488 <para>(Technically, strictly speaking, the image file itself is not489 "reset". Instead, when a snapshot is taken, VirtualBox "freezes" the490 image file and no longer writes to it. For the write operations from491 the VM, a second, "differencing" image file is created which receives492 only the changes to the original image; see the next section for493 details.)</para>494 495 <para>While you can attach the same "normal" image to more than one496 virtual machine, only one of these virtual machines attached to the497 same image file can be executed simultaneously, as otherwise there498 would be conflicts if several machines write to the same image499 file.<footnote>500 <para>This restriction is more lenient now than it was before501 VirtualBox 2.2. Previously, each "normal" disk image could only be502 <emphasis>attached</emphasis> to one single machine. Now it can be503 attached to more than one machine so long as only one of these504 machines is running.</para>505 </footnote></para>506 </listitem>507 508 <listitem>509 <para>By contrast, <emphasis role="bold">write-through hard510 disks</emphasis> are completely unaffected by snapshots: their state511 is <emphasis>not</emphasis> saved when a snapshot is taken, and not512 restored when a snapshot is restored.</para>513 </listitem>514 515 <listitem>516 <para><emphasis role="bold">Shareable hard disks</emphasis> are a517 variant of write-through hard disks. In principle they behave exactly518 the same, i.e. their state is <emphasis>not</emphasis> saved when a519 snapshot is taken, and not restored when a snapshot is restored. The520 difference only shows if you attach such disks to several VMs.521 Shareable disks may be attached to several VMs which may run522 concurrently. This makes them suitable for use by cluster filesystems523 between VMs and similar applications which are explicitly prepared to524 access a disk concurrently. Only fixed size images can be used in this525 way, and dynamically allocated images are rejected.<warning>526 <para>This is an expert feature, and misuse can lead to data loss527 -- regular filesystems are not prepared to handle simultaneous528 changes by several parties.</para>529 </warning></para>530 </listitem>531 532 <listitem>533 <para>Next, <emphasis role="bold">immutable images</emphasis> only534 remember write accesses temporarily while the virtual machine is535 running; all changes are lost when the virtual machine is powered on536 the next time. As a result, as opposed to "normal" images, the same537 immutable image can be used with several virtual machines without538 restrictions.</para>539 540 <para><emphasis>Creating</emphasis> an immutable image makes little541 sense since it would be initially empty and lose its contents with542 every machine restart (unless you really want to have a disk that is543 always unformatted when the machine starts up). As a result, normally,544 you would first create a "normal" image and then, when you deem its545 contents useful, later mark it immutable.</para>546 547 <para>If you take a snapshot of a machine with immutable images, then548 on every machine power-up, those images are reset to the state of the549 last (current) snapshot (instead of the state of the original550 immutable image).</para>551 552 <note>553 <para>As a special exception, immutable images are554 <emphasis>not</emphasis> reset if they are attached to a machine555 in saved state or whose last snapshot was taken while the machine556 was running (a so-called "online" snapshot). As a result, if the557 machine's current snapshot is such an "online" snapshot, its558 immutable images behave exactly like the "normal" images described559 previously. To re-enable the automatic resetting of such images,560 delete the current snapshot of the machine.</para>561 </note>562 563 <para>Again, technically, VirtualBox never writes to an immutable564 image directly at all. All write operations from the machine will be565 directed to a differencing image; the next time the VM is powered on,566 the differencing image is reset so that every time the VM starts, its567 immutable images have exactly the same content.<footnote>568 <para>This behavior also changed with VirtualBox 2.2. Previously,569 the differencing images were discarded when the machine session570 <emphasis>ended</emphasis>; now they are discarded every time the571 machine is powered on.</para>572 </footnote> The differencing image is only reset when the machine is573 powered on from within VirtualBox, not when you reboot by requesting a574 reboot from within the machine. This is also why immutable images575 behave as described above when snapshots are also present, which use576 differencing images as well.</para>577 578 <para>If the automatic discarding of the differencing image on VM579 startup does not fit your needs, you can turn it off using the580 <computeroutput>autoreset</computeroutput> parameter of581 <computeroutput>VBoxManage modifyhd</computeroutput>; see <xref582 linkend="vboxmanage-modifyvdi" /> for details.</para>583 </listitem>584 585 <listitem>586 <para>An image in <emphasis role="bold">multiattach mode</emphasis>587 can be attached to more than one virtual machine at the same time,588 even if these machines are running simultaneously. For each virtual589 machine to which such an image is attached, a differencing image is590 created. As a result, data that is written to such a virtual disk by591 one machine is not seen by the other machines to which the image is592 attached; each machine creates its own write history of the593 multiattach image.</para>594 595 <para>Technically, a "multiattach" image behaves identically to an596 "immutable" image except the differencing image is not reset every597 time the machine starts.</para>598 <para>This mode is useful for sharing files which are almost never599 written, for instance picture galleries, where every guest changes600 only a small amount of data and the majority of the disk content601 remains unchanged. The modified blocks are stored in differencing602 images which remain relatively small and the shared content is stored603 only once at the host.</para>604 </listitem>605 606 <listitem>607 <para>Finally, the <emphasis role="bold">read-only image</emphasis> is608 used automatically for CD/DVD images, since CDs/DVDs can never be609 written to.</para>610 </listitem>611 </orderedlist>612 613 <para>To illustrate the differences between the various types with respect614 to snapshots: Assume you have installed your guest operating system in615 your VM, and you have taken a snapshot. Imagine you have accidentally616 infected your VM with a virus and would like to go back to the snapshot.617 With a normal hard disk image, you simply restore the snapshot, and the618 earlier state of your hard disk image will be restored as well (and your619 virus infection will be undone). With an immutable hard disk, all it takes620 is to shut down and power on your VM, and the virus infection will be621 discarded. With a write-through image however, you cannot easily undo the622 virus infection by means of virtualization, but will have to disinfect623 your virtual machine like a real computer.</para>624 625 <para>Still, you might find write-through images useful if you want to626 preserve critical data irrespective of snapshots, and since you can attach627 more than one image to a VM, you may want to have one immutable for the628 operating system and one write-through for your data files.</para>629 </sect1>630 631 <sect1 id="diffimages">632 <title>Differencing images</title>633 634 <para>The previous section hinted at differencing images and how they are635 used with snapshots, immutable images and multiple disk attachments. For636 the inquisitive VirtualBox user, this section describes in more detail how637 they work.</para>638 639 <para>A differencing image is a special disk image that only holds the640 differences to another image. A differencing image by itself is useless,641 it must always refer to another image. The differencing image is then642 typically referred to as a "child", which holds the differences to its643 "parent".</para>644 645 <para>When a differencing image is active, it receives all write646 operations from the virtual machine instead of its parent. The647 differencing image only contains the sectors of the virtual hard disk that648 have changed since the differencing image was created. When the machine649 reads a sector from such a virtual hard disk, it looks into the650 differencing image first. If the sector is present, it is returned from651 there; if not, VirtualBox looks into the parent. In other words, the652 parent becomes "read-only"; it is never written to again, but it is read653 from if a sector has not changed.</para>654 655 <para>Differencing images can be chained. If another differencing image is656 created for a virtual disk that already has a differencing image, then it657 becomes a "grandchild" of the original parent. The first differencing658 image then becomes read-only as well, and write operations only go to the659 second-level differencing image. When reading from the virtual disk,660 VirtualBox needs to look into the second differencing image first, then661 into the first if the sector was not found, and then into the original662 image.</para>663 664 <para>There can be an unlimited number of differencing images, and each665 image can have more than one child. As a result, the differencing images666 can form a complex tree with parents, "siblings" and children, depending667 on how complex your machine configuration is. Write operations always go668 to the one "active" differencing image that is attached to the machine,669 and for read operations, VirtualBox may need to look up all the parents in670 the chain until the sector in question is found. You can look at such a671 tree in the Virtual Media Manager:<mediaobject>672 <imageobject>673 <imagedata align="center" fileref="images/virtual-disk-manager2.png"674 width="12cm" />675 </imageobject>676 </mediaobject></para>677 678 <para>In all of these situations, from the point of view of the virtual679 machine, the virtual hard disk behaves like any other disk. While the680 virtual machine is running, there is a slight run-time I/O overhead681 because VirtualBox might need to look up sectors several times. This is682 not noticeable however since the tables with sector information are always683 kept in memory and can be looked up quickly.</para>684 685 <para>Differencing images are used in the following686 situations:<orderedlist>687 <listitem>688 <para><emphasis role="bold">Snapshots.</emphasis> When you create a689 snapshot, as explained in the previous section, VirtualBox "freezes"690 the images attached to the virtual machine and creates differencing691 images for each of them (to be precise: one for each image that is692 not in "write-through" mode). From the point of view of the virtual693 machine, the virtual disks continue to operate before, but all write694 operations go into the differencing images. Each time you create695 another snapshot, for each hard disk attachment, another696 differencing image is created and attached, forming a chain or697 tree.</para>698 699 <para>In the above screenshot, you see that the original disk image700 is now attached to a snapshot, representing the state of the disk701 when the snapshot was taken.</para>702 703 <para>If you now <emphasis role="bold">restore</emphasis> a snapshot704 -- that is, if you want to go back to the exact machine state that705 was stored in the snapshot --, the following happens:<orderedlist>706 <listitem>707 <para>VirtualBox copies the virtual machine settings that were708 copied into the snapshot back to the virtual machine. As a709 result, if you have made changes to the machine configuration710 since taking the snapshot, they are undone.</para>711 </listitem>712 713 <listitem>714 <para>If the snapshot was taken while the machine was running,715 it contains a saved machine state, and that state is restored716 as well; after restoring the snapshot, the machine will then717 be in "Saved" state and resume execution from there when it is718 next started. Otherwise the machine will be in "Powered Off"719 state and do a full boot.</para>720 </listitem>721 722 <listitem>723 <para>For each disk image attached to the machine, the724 differencing image holding all the write operations since the725 current snapshot was taken is thrown away, and the original726 parent image is made active again. (If you restored the "root"727 snapshot, then this will be the root disk image for each728 attachment; otherwise, some other differencing image descended729 from it.) This effectively restores the old machine730 state.</para>731 </listitem>732 </orderedlist></para>733 734 <para>If you later <emphasis role="bold">delete</emphasis> a735 snapshot in order to free disk space, for each disk attachment, one736 of the differencing images becomes obsolete. In this case, the737 differencing image of the disk attachment cannot simply be deleted.738 Instead, VirtualBox needs to look at each sector of the differencing739 image and needs to copy it back into its parent; this is called740 "merging" images and can be a potentially lengthy process, depending741 on how large the differencing image is. It can also temporarily need742 a considerable amount of extra disk space, before the differencing743 image obsoleted by the merge operation is deleted.</para>744 </listitem>745 746 <listitem>747 <para><emphasis role="bold">Immutable images.</emphasis> When an748 image is switched to "immutable" mode, a differencing image is749 created as well. As with snapshots, the parent image then becomes750 read-only, and the differencing image receives all the write751 operations. Every time the virtual machine is started, all the752 immutable images which are attached to it have their respective753 differencing image thrown away, effectively resetting the virtual754 machine's virtual disk with every restart.</para>755 </listitem>756 </orderedlist></para>757 </sect1>758 759 <sect1 id="cloningvdis">760 <title>Cloning disk images</title>761 762 <para>You can duplicate hard disk image files on the same host to quickly763 produce a second virtual machine with the same operating system setup.764 However, you should <emphasis>only</emphasis> make copies of virtual disk765 images using the utility supplied with VirtualBox; see <xref766 linkend="vboxmanage-clonevdi" />. This is because VirtualBox assigns a767 unique identity number (UUID) to each disk image, which is also stored768 inside the image, and VirtualBox will refuse to work with two images that769 use the same number. If you do accidentally try to re-import a disk image770 which you copied normally, you can make a second copy using VirtualBox's771 utility and import that instead.</para>772 773 <para>Note that newer Linux distributions identify the boot hard disk from774 the ID of the drive. The ID VirtualBox reports for a drive is determined775 from the UUID of the virtual disk image. So if you clone a disk image and776 try to boot the copied image the guest might not be able to determine its777 own boot disk as the UUID changed. In this case you have to adapt the disk778 ID in your boot loader script (for example779 <computeroutput>/boot/grub/menu.lst</computeroutput>). The disk ID looks780 like this:<screen>scsi-SATA_VBOX_HARDDISK_VB5cfdb1e2-c251e503</screen></para>781 782 <para>The ID for the copied image can be determined with <screen>hdparm -i /dev/sda</screen></para>783 </sect1>784 785 <sect1 id="iocaching">786 <title>Host I/O caching</title>787 788 <para>Starting with version 3.2, VirtualBox can optionally disable the I/O789 caching that the host operating system would otherwise perform on disk790 image files.</para>791 792 <para>Traditionally, VirtualBox has opened disk image files as normal793 files, which results in them being cached by the host operating system794 like any other file. The main advantage of this is speed: when the guest795 OS writes to disk and the host OS cache uses delayed writing, the write796 operation can be reported as completed to the guest OS quickly while the797 host OS can perform the operation asynchronously. Also, when you start a798 VM a second time and have enough memory available for the OS to use for799 caching, large parts of the virtual disk may be in system memory, and the800 VM can access the data much faster.</para>801 802 <para>Note that this applies only to image files; buffering never occurred803 for virtual disks residing on remote iSCSI storage, which is the more common804 scenario in enterprise-class setups (see <xref805 linkend="storage-iscsi" />).</para>806 807 <para>While buffering is a useful default setting for virtualizing a few808 machines on a desktop computer, there are some disadvantages to this809 approach:<orderedlist>810 <listitem>811 <para>Delayed writing through the host OS cache is less secure. When812 the guest OS writes data, it considers the data written even though813 it has not yet arrived on a physical disk. If for some reason the814 write does not happen (power failure, host crash), the likelihood of815 data loss increases.</para>816 </listitem>817 818 <listitem>819 <para>Disk image files tend to be very large. Caching them can820 therefore quickly use up the entire host OS cache. Depending on the821 efficiency of the host OS caching, this may slow down the host822 immensely, especially if several VMs run at the same time. For823 example, on Linux hosts, host caching may result in Linux delaying824 all writes until the host cache is nearly full and then writing out825 all these changes at once, possibly stalling VM execution for826 minutes. This can result in I/O errors in the guest as I/O requests827 time out there.</para>828 </listitem>829 830 <listitem>831 <para>Physical memory is often wasted as guest operating systems832 typically have their own I/O caches, which may result in the data833 being cached twice (in both the guest and the host caches) for834 little effect.</para>835 </listitem>836 </orderedlist></para>837 838 <para>If you decide to disable host I/O caching for the above reasons,839 VirtualBox uses its own small cache to buffer writes, but no read caching840 since this is typically already performed by the guest OS. In addition,841 VirtualBox fully supports asynchronous I/O for its virtual SATA, SCSI and842 SAS controllers through multiple I/O threads.</para>843 844 <para>Since asynchronous I/O is not supported by IDE controllers, for845 performance reasons, you may want to leave host caching enabled for your846 VM's virtual IDE controllers.</para>847 848 <para>For this reason, VirtualBox allows you to configure whether the host849 I/O cache is used for each I/O controller separately. Either uncheck the850 "Use host I/O cache" box in the "Storage" settings for a given virtual851 storage controller, or use the following VBoxManage command to disable the852 host I/O cache for a virtual storage controller:<screen>VBoxManage storagectl "VM name" --name <controllername> --hostiocache off</screen></para>853 854 <para>See <xref linkend="vboxmanage-storagectl" /> for details.</para>855 856 <para>For the above reasons also, VirtualBox now uses SATA controllers by857 default for new virtual machines.</para>858 </sect1>859 860 1288 <sect1 id="storage-bandwidth-limit"> 861 <title>Limiting bandwidth for disk images</title> 862 863 <para>Starting with version 4.0, VirtualBox allows for limiting the 864 maximum bandwidth used for asynchronous I/O. Additionally it supports 865 sharing limits through bandwidth groups for several images. It is possible 866 to have more than one such limit.</para> 867 868 <para>Limits are configured through 869 <computeroutput>VBoxManage</computeroutput>. The example below creates a 870 bandwidth group named "Limit", sets the limit to 20 MB/s and assigns the 871 group to the attached disks of the VM:<screen>VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M 1289 1290 <title>Limiting Bandwidth for Disk Images</title> 1291 1292 <para> 1293 Starting with version 4.0, VirtualBox allows for limiting the 1294 maximum bandwidth used for asynchronous I/O. Additionally it 1295 supports sharing limits through bandwidth groups for several 1296 images. It is possible to have more than one such limit. 1297 </para> 1298 1299 <para> 1300 Limits are configured using 1301 <computeroutput>VBoxManage</computeroutput>. The example below 1302 creates a bandwidth group named Limit, sets the limit to 20 MB per 1303 second, and assigns the group to the attached disks of the VM: 1304 </para> 1305 1306 <screen>VBoxManage bandwidthctl "VM name" add Limit --type disk --limit 20M 872 1307 VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd 873 1308 --medium disk1.vdi --bandwidthgroup Limit 874 1309 VBoxManage storageattach "VM name" --storagectl "SATA" --port 1 --device 0 --type hdd 875 --medium disk2.vdi --bandwidthgroup Limit</screen></para> 876 877 <para>All disks in a group share the bandwidth limit, meaning that in the 878 example above the bandwidth of both images combined can never exceed 20 879 MB/s. However, if one disk doesn't require bandwidth the other can use the 880 remaining bandwidth of its group.</para> 881 882 <para>The limits for each group can be changed while the VM is running, 883 with changes being picked up immediately. The example below changes the 884 limit for the group created in the example above to 10 MB/s:<screen>VBoxManage bandwidthctl "VM name" set Limit --limit 10M</screen></para> 1310 --medium disk2.vdi --bandwidthgroup Limit</screen> 1311 1312 <para> 1313 All disks in a group share the bandwidth limit, meaning that in 1314 the example above the bandwidth of both images combined can never 1315 exceed 20 MBps. However, if one disk does not require bandwidth 1316 the other can use the remaining bandwidth of its group. 1317 </para> 1318 1319 <para> 1320 The limits for each group can be changed while the VM is running, 1321 with changes being picked up immediately. The example below 1322 changes the limit for the group created in the example above to 10 1323 MBps: 1324 </para> 1325 1326 <screen>VBoxManage bandwidthctl "VM name" set Limit --limit 10M</screen> 1327 885 1328 </sect1> 886 1329 887 1330 <sect1 id="storage-cds"> 888 <title>CD/DVD support</title> 889 890 <para>The virtual CD/DVD drive(s) by default support only reading. The 891 medium configuration is changeable at runtime. You can select between 892 three options to provide the medium data:<itemizedlist> 893 <listitem> 894 <para><emphasis role="bold">Host Drive</emphasis> defines that the 895 guest can read from the medium in the host drive.</para> 896 </listitem> 897 898 <listitem> 899 <para><emphasis role="bold">Image file</emphasis> (typically an ISO 900 file) gives the guest read-only access to the data in the 901 image.</para> 902 </listitem> 903 904 <listitem> 905 <para><emphasis role="bold">Empty</emphasis> stands for a drive 906 without an inserted medium.</para> 907 </listitem> 908 </itemizedlist></para> 909 910 <para>Changing between the above, or changing a medium in the host drive 911 that is accessed by a machine, or changing an image file will signal a 912 medium change to the guest operating system, which can then react to the 913 change (e.g. by starting an installation program).</para> 914 915 <para>Medium changes can be prevented by the guest, and VirtualBox 916 reflects that by locking the host drive if appropriate. You can force a 917 medium removal in such situations via the VirtualBox GUI or the VBoxManage 918 command line tool. Effectively this is the equivalent of the emergency 919 eject which many CD/DVD drives provide, with all associated side effects: 920 the guest OS can issue error messages, just like on real hardware, and 921 guest applications may misbehave. Use this with caution.<note> 922 <para>The identification string of the drive provided to the guest 923 (which, in the guest, would be displayed by configuration tools such 924 as the Windows Device Manager) is always "VBOX CD-ROM", irrespective 925 of the current configuration of the virtual drive. This is to prevent 926 hardware detection from being triggered in the guest operating system 927 every time the configuration is changed.</para> 928 </note></para> 929 930 <para>The standard CD/DVD emulation allows for reading standard data CD 931 and DVD formats only. As an experimental feature, for additional 932 capabilities, it is possible to give the guest direct access to the CD/DVD 933 host drive by enabling "passthrough" mode. Depending on the host hardware, 934 this may enable three things to work, potentially:<itemizedlist> 935 <listitem> 936 <para>CD/DVD writing from within the guest, if the host DVD drive is 937 a CD/DVD writer;</para> 938 </listitem> 939 940 <listitem> 941 <para>playing audio CDs;</para> 942 </listitem> 943 944 <listitem> 945 <para>playing encrypted DVDs.</para> 946 </listitem> 947 </itemizedlist></para> 948 949 <para>There is a "Passthrough" checkbox in the GUI dialog for configuring 950 the media attached to a storage controller, or you can use the 951 <computeroutput>--passthrough</computeroutput> option with 952 <computeroutput>VBoxManage storageattach</computeroutput>; see <xref 953 linkend="vboxmanage-storageattach" /> for details.</para> 954 955 <para>Even if pass-through is enabled, unsafe commands, such as updating 956 the drive firmware, will be blocked. Video CD formats are never supported, 957 not even in passthrough mode, and cannot be played from a virtual 958 machine.</para> 959 960 <para>On Solaris hosts, pass-through requires running VirtualBox with real 961 root permissions due to security measures enforced by the host.</para> 1331 1332 <title>CD/DVD Support</title> 1333 1334 <para> 1335 Virtual CD/DVD drives by default support only reading. The medium 1336 configuration is changeable at runtime. You can select between the 1337 following options to provide the medium data: 1338 </para> 1339 1340 <itemizedlist> 1341 1342 <listitem> 1343 <para> 1344 <emphasis role="bold">Host Drive</emphasis> defines that the 1345 guest can read from the medium in the host drive. 1346 </para> 1347 </listitem> 1348 1349 <listitem> 1350 <para> 1351 <emphasis role="bold">Image file</emphasis> gives the guest 1352 read-only access to the data in the image. This is typically 1353 an ISO file. 1354 </para> 1355 </listitem> 1356 1357 <listitem> 1358 <para> 1359 <emphasis role="bold">Empty</emphasis> means a drive without 1360 an inserted medium. 1361 </para> 1362 </listitem> 1363 1364 </itemizedlist> 1365 1366 <para> 1367 Changing between the above, or changing a medium in the host drive 1368 that is accessed by a machine, or changing an image file will 1369 signal a medium change to the guest operating system. The guest OS 1370 can then react to the change, for example by starting an 1371 installation program. 1372 </para> 1373 1374 <para> 1375 Medium changes can be prevented by the guest, and VirtualBox 1376 reflects that by locking the host drive if appropriate. You can 1377 force a medium removal in such situations via the VirtualBox GUI 1378 or the VBoxManage command line tool. Effectively this is the 1379 equivalent of the emergency eject which many CD/DVD drives 1380 provide, with all associated side effects. The guest OS can issue 1381 error messages, just like on real hardware, and guest applications 1382 may misbehave. Use this with caution. 1383 </para> 1384 1385 <note> 1386 <para> 1387 The identification string of the drive provided to the guest, 1388 displayed by configuration tools such as the Windows Device 1389 Manager, is always VBOX CD-ROM, irrespective of the current 1390 configuration of the virtual drive. This is to prevent hardware 1391 detection from being triggered in the guest operating system 1392 every time the configuration is changed. 1393 </para> 1394 </note> 1395 1396 <para> 1397 The standard CD/DVD emulation allows for reading standard data CD 1398 and DVD formats only. As an experimental feature, for additional 1399 capabilities, it is possible to give the guest direct access to 1400 the CD/DVD host drive by enabling <emphasis>passthrough</emphasis> 1401 mode. Depending on the host hardware, this may potentially enable 1402 the following things to work: 1403 </para> 1404 1405 <itemizedlist> 1406 1407 <listitem> 1408 <para> 1409 CD/DVD writing from within the guest, if the host DVD drive is 1410 a CD/DVD writer 1411 </para> 1412 </listitem> 1413 1414 <listitem> 1415 <para> 1416 Playing audio CDs 1417 </para> 1418 </listitem> 1419 1420 <listitem> 1421 <para> 1422 Playing encrypted DVDs 1423 </para> 1424 </listitem> 1425 1426 </itemizedlist> 1427 1428 <para> 1429 There is a Passthrough check box in the GUI dialog for configuring 1430 the media attached to a storage controller, or you can use the 1431 <computeroutput>--passthrough</computeroutput> option with 1432 <computeroutput>VBoxManage storageattach</computeroutput>. See 1433 <xref 1434 linkend="vboxmanage-storageattach" />. 1435 </para> 1436 1437 <para> 1438 Even if passthrough is enabled, unsafe commands, such as updating 1439 the drive firmware, will be blocked. Video CD formats are never 1440 supported, not even in passthrough mode, and cannot be played from 1441 a virtual machine. 1442 </para> 1443 1444 <para> 1445 On Solaris hosts, passthrough requires running VirtualBox with 1446 real root permissions due to security measures enforced by the 1447 host. 1448 </para> 1449 962 1450 </sect1> 963 1451 964 1452 <sect1 id="storage-iscsi"> 965 <title>iSCSI servers</title> 966 967 <para>iSCSI stands for "Internet SCSI" and is a standard that allows for 968 using the SCSI protocol over Internet (TCP/IP) connections. Especially 969 with the advent of Gigabit Ethernet, it has become affordable to attach 970 iSCSI storage servers simply as remote hard disks to a computer network. 971 In iSCSI terminology, the server providing storage resources is called an 972 "iSCSI target", while the client connecting to the server and accessing 973 its resources is called "iSCSI initiator".</para> 974 975 <para>VirtualBox can transparently present iSCSI remote storage to a 976 virtual machine as a virtual hard disk. The guest operating system will 977 not see any difference between a virtual disk image (VDI file) and an 978 iSCSI target. To achieve this, VirtualBox has an integrated iSCSI 979 initiator.</para> 980 981 <para>VirtualBox's iSCSI support has been developed according to the iSCSI 982 standard and should work with all standard-conforming iSCSI targets. To 983 use an iSCSI target with VirtualBox, you must use the command line; see 984 <xref linkend="vboxmanage-storageattach" />.</para> 1453 1454 <title>iSCSI Servers</title> 1455 1456 <para> 1457 iSCSI stands for "Internet SCSI" and is a standard that allows for 1458 using the SCSI protocol over Internet (TCP/IP) connections. 1459 Especially with the advent of Gigabit Ethernet, it has become 1460 affordable to attach iSCSI storage servers simply as remote hard 1461 disks to a computer network. In iSCSI terminology, the server 1462 providing storage resources is called an <emphasis>iSCSI 1463 target</emphasis>, while the client connecting to the server and 1464 accessing its resources is called an <emphasis>iSCSI 1465 initiator</emphasis>. 1466 </para> 1467 1468 <para> 1469 VirtualBox can transparently present iSCSI remote storage to a 1470 virtual machine as a virtual hard disk. The guest operating system 1471 will not see any difference between a virtual disk image (VDI 1472 file) and an iSCSI target. To achieve this, VirtualBox has an 1473 integrated iSCSI initiator. 1474 </para> 1475 1476 <para> 1477 VirtualBox's iSCSI support has been developed according to the 1478 iSCSI standard and should work with all standard-conforming iSCSI 1479 targets. To use an iSCSI target with VirtualBox, you must use the 1480 command line. See <xref linkend="vboxmanage-storageattach" />. 1481 </para> 1482 985 1483 </sect1> 1484 986 1485 </chapter> -
trunk/doc/manual/en_US/user_Technical.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="TechnicalBackground"> 5 <title>Technical background</title> 6 7 <para>The contents of this chapter are not required to use VirtualBox 8 successfully. The following is provided as additional information for 9 readers who are more familiar with computer architecture and technology and 10 wish to find out more about how VirtualBox works "under the hood".</para> 8 9 <title>Technical Background</title> 10 11 <para> 12 The contents of this chapter are not required to use VirtualBox 13 successfully. The following is provided as additional information 14 for readers who are more familiar with computer architecture and 15 technology and wish to find out more about how VirtualBox works 16 "under the hood". 17 </para> 11 18 12 19 <sect1 id="vboxconfigdata"> 13 <title>Where VirtualBox stores its files</title> 14 15 <para>In VirtualBox, a virtual machine and its settings are described in a 16 virtual machine settings file in XML format. In addition, most virtual 17 machine have one or more virtual hard disks, which are typically 18 represented by disk images (e.g. in VDI format). Where all these files are 19 stored depends on which version of VirtualBox created the machine.</para> 20 21 <sect2> 22 <title>Machines created by VirtualBox version 4.0 or later</title> 23 24 <para>Starting with version 4.0, by default, each virtual machine has 25 one directory on your host computer where all the files of that machine 26 are stored -- the XML settings file (with a 27 <computeroutput>.vbox</computeroutput> file extension) and its disk 28 images.</para> 29 30 <para>By default, this "machine folder" is placed in a common folder 31 called "VirtualBox VMs", which VirtualBox creates in the current system 32 user's home directory. The location of this home directory depends on 33 the conventions of the host operating system:</para> 20 21 <title>Where VirtualBox Stores its Files</title> 22 23 <para> 24 In VirtualBox, a virtual machine and its settings are described in 25 a virtual machine settings file in XML format. In addition, most 26 virtual machine have one or more virtual hard disks, which are 27 typically represented by disk images, such as those in VDI format. 28 Where all these files are stored depends on which version of 29 VirtualBox created the machine. 30 </para> 31 32 <sect2 id="vboxconfigdata-pre-version-four"> 33 34 <title>Machines Created by VirtualBox Version 4.0 or Later</title> 35 36 <para> 37 Starting with version 4.0, by default, each virtual machine has 38 one directory on your host computer where all the files of that 39 machine are stored: the XML settings file, with a 40 <computeroutput>.vbox</computeroutput> file extension, and its 41 disk images. 42 </para> 43 44 <para> 45 By default, this <replaceable>machine folder</replaceable> is 46 placed in a common folder called <computeroutput>VirtualBox 47 VMs</computeroutput>, which VirtualBox creates in the current 48 system user's home directory. The location of this home 49 directory depends on the conventions of the host operating 50 system: 51 </para> 34 52 35 53 <itemizedlist> 54 36 55 <listitem> 37 <para>On Windows, this is the location returned by the 38 <computeroutput>SHGetFolderPath</computeroutput> function of the 39 Windows system library Shell32.dll, asking for the user profile. Only 40 on very old Windows versions which don't have this function 41 or where it unexpectedly returns an error, there is a fallback based 42 on environment variables: first 43 <computeroutput>%USERPROFILE%</computeroutput> is checked, if it 44 doesn't exist then an attempt with 45 <computeroutput>%HOMEDRIVE%%HOMEPATH%</computeroutput> is made. 46 Typical value is 47 <computeroutput>C:\Users\username</computeroutput>.</para> 56 <para> 57 On Windows, this is the location returned by the 58 <computeroutput>SHGetFolderPath</computeroutput> function of 59 the Windows system library Shell32.dll, asking for the user 60 profile. On very old Windows versions which do not have this 61 function or where it unexpectedly returns an error, there is 62 a fallback based on environment variables. First, 63 <computeroutput>%USERPROFILE%</computeroutput> is checked. 64 If it does not exist then an attempt with 65 <computeroutput>%HOMEDRIVE%%HOMEPATH%</computeroutput> is 66 made. A typical location is 67 <computeroutput>C:\Users\username</computeroutput>. 68 </para> 48 69 </listitem> 49 70 50 71 <listitem> 51 <para>On Linux, Mac OS X and Solaris, this is generally taken from 52 the environment variable <computeroutput>$HOME</computeroutput>, 53 except for the user 54 <computeroutput>root</computeroutput> for which it's taken from the 55 account database (as a workaround for the frequent trouble caused 56 by users using VirtualBox in combination with the tool 57 <computeroutput>sudo</computeroutput> which by default doesn't reset 58 the environment variable <computeroutput>$HOME</computeroutput>). 59 Typical value on Linux and Solaris is 60 <computeroutput>/home/username</computeroutput> and on Mac OS X 61 <computeroutput>/Users/username</computeroutput>.</para> 72 <para> 73 On Linux, Mac OS X and Solaris, this is generally taken from 74 the environment variable 75 <computeroutput>$HOME</computeroutput>, except for the user 76 <computeroutput>root</computeroutput> where it is taken from 77 the account database. This is a workaround for the frequent 78 trouble caused by users using VirtualBox in combination with 79 the tool <computeroutput>sudo</computeroutput> which by 80 default does not reset the environment variable 81 <computeroutput>$HOME</computeroutput>. A typical location 82 on Linux and Solaris is 83 <computeroutput>/home/username</computeroutput> and on Mac 84 OS X <computeroutput>/Users/username</computeroutput>. 85 </para> 62 86 </listitem> 87 63 88 </itemizedlist> 64 89 65 <para>For simplicity, we will abbreviate this as 66 <computeroutput>$HOME</computeroutput> below. Using that convention, the 67 common folder for all virtual machines is 68 <computeroutput>$HOME/VirtualBox VMs</computeroutput>.</para> 69 70 <para>As an example, when you create a virtual machine called "Example 71 VM", you will find that VirtualBox creates<orderedlist> 72 <listitem> 73 <para>the folder <computeroutput>$HOME/VirtualBox VMs/Example 74 VM/</computeroutput> and, in that folder,</para> 75 </listitem> 76 77 <listitem> 78 <para>the settings file <computeroutput>Example 79 VM.vbox</computeroutput> and</para> 80 </listitem> 81 82 <listitem> 83 <para>the virtual disk image <computeroutput>Example 84 VM.vdi</computeroutput>.</para> 85 </listitem> 86 </orderedlist></para> 87 88 <para>This is the default layout if you use the "Create new virtual 89 machine" wizard as described in <xref linkend="gui-createvm" />. Once 90 you start working with the VM, additional files will show up: you will 91 find log files in a subfolder called 92 <computeroutput>Logs</computeroutput>, and once you have taken 93 snapshots, they will appear in a 94 <computeroutput>Snapshots</computeroutput> subfolder. For each VM, you 95 can change the location of its snapshots folder in the VM 96 settings.</para> 97 98 <para>You can change the default machine folder by selecting 99 "Preferences" from the "File" menu in the VirtualBox main window. Then, 100 in the window that pops up, click on the "General" tab. Alternatively, 101 use <computeroutput>VBoxManage setproperty 102 machinefolder</computeroutput>; see <xref 103 linkend="vboxmanage-setproperty" />.</para> 90 <para> 91 For simplicity, we will abbreviate the location of the home 92 directory as <computeroutput>$HOME</computeroutput>. Using that 93 convention, the common folder for all virtual machines is 94 <computeroutput>$HOME/VirtualBox VMs</computeroutput>. 95 </para> 96 97 <para> 98 As an example, when you create a virtual machine called "Example 99 VM", you will find that VirtualBox creates the following: 100 </para> 101 102 <itemizedlist> 103 104 <listitem> 105 <para> 106 A machine folder <computeroutput>$HOME/VirtualBox 107 VMs/Example VM/</computeroutput> 108 </para> 109 </listitem> 110 111 <listitem> 112 <para> 113 In the machine folder, a settings file: 114 <computeroutput>Example VM.vbox</computeroutput> 115 </para> 116 </listitem> 117 118 <listitem> 119 <para> 120 In the machine folder, a virtual disk image: 121 <computeroutput>Example VM.vdi</computeroutput>. 122 </para> 123 </listitem> 124 125 </itemizedlist> 126 127 <para> 128 This is the default layout if you use the Create New Virtual 129 Machine wizard described in <xref linkend="gui-createvm" />. 130 Once you start working with the VM, additional files are added. 131 Log files are in a subfolder called 132 <computeroutput>Logs</computeroutput>, and if you have taken 133 snapshots, they are in a 134 <computeroutput>Snapshots</computeroutput> subfolder. For each 135 VM, you can change the location of its snapshots folder in the 136 VM settings. 137 </para> 138 139 <para> 140 You can change the default machine folder by selecting 141 <emphasis role="bold">Preferences</emphasis> from the File menu 142 in the VirtualBox main window. Then, in the displayed window, 143 click on the <emphasis role="bold">General</emphasis> tab. 144 Alternatively, use <computeroutput>VBoxManage setproperty 145 machinefolder</computeroutput>. See 146 <xref 147 linkend="vboxmanage-setproperty" />. 148 </para> 149 104 150 </sect2> 105 151 106 <sect2> 107 <title>Machines created by VirtualBox versions before 4.0</title> 108 109 <para>If you have upgraded to VirtualBox 4.0 from an earlier version of 110 VirtualBox, you probably have settings files and disks in the earlier 111 file system layout.</para> 112 113 <para>Before version 4.0, VirtualBox separated the machine settings 114 files from virtual disk images. The machine settings files had an 115 <computeroutput>.xml</computeroutput> file extension and resided in a 116 folder called "Machines" under the global VirtualBox configuration 117 directory (see the next section). So, for example, on Linux, this was 118 the hidden <computeroutput>$HOME/.VirtualBox/Machines</computeroutput> 119 directory. The default hard disks folder was called "HardDisks" and 120 resided in the <computeroutput>.VirtualBox</computeroutput> folder as 121 well. Both locations could be changed by the user in the global 122 preferences. (The concept of a "default hard disk folder" has been 123 abandoned with VirtualBox 4.0, since disk images now reside in each 124 machine's folder by default.)</para> 125 126 <para>The old layout had several severe disadvantages.<orderedlist> 127 <listitem> 128 <para>It was very difficult to move a virtual machine from one 129 host to another because the files involved did not reside in the 130 same folder. In addition, the virtual media of all machines were 131 registered with a global registry in the central VirtualBox 132 settings file 133 (<computeroutput>$HOME/.VirtualBox/VirtualBox.xml</computeroutput>).</para> 134 135 <para>To move a machine to another host, it was therefore not 136 enough to move the XML settings file and the disk images (which 137 were in different locations), but the hard disk entries from the 138 global media registry XML had to be meticulously copied as well, 139 which was close to impossible if the machine had snapshots and 140 therefore differencing images.</para> 141 </listitem> 142 143 <listitem> 144 <para>Storing virtual disk images, which can grow very large, 145 under the hidden <computeroutput>.VirtualBox</computeroutput> 146 directory (at least on Linux and Solaris hosts) made many users 147 wonder where their disk space had gone.</para> 148 </listitem> 149 </orderedlist></para> 150 151 <para>Whereas new VMs created with VirtualBox 4.0 or later will conform 152 to the new layout, for maximum compatibility, old VMs are 153 <emphasis>not</emphasis> converted to the new layout. Otherwise machine 154 settings would be irrevocably broken if a user downgraded from 4.0 back 155 to an older version of VirtualBox.</para> 152 <sect2 id="vboxconfigdata-post-version-four"> 153 154 <title>Machines Created by VirtualBox Versions Before 4.0</title> 155 156 <para> 157 If you have upgraded to VirtualBox 4.0 from an earlier version 158 of VirtualBox, you probably have settings files and disks in the 159 earlier file system layout. 160 </para> 161 162 <para> 163 Before version 4.0, VirtualBox separated the machine settings 164 files from virtual disk images. The machine settings files had 165 an <computeroutput>.xml</computeroutput> file extension and 166 resided in a folder called "Machines" under the global 167 VirtualBox configuration directory. See 168 <xref linkend="vboxconfigdata-global"/>. On Linux, for example, 169 this was the hidden 170 <computeroutput>$HOME/.VirtualBox/Machines</computeroutput> 171 directory. The default hard disks folder was called "HardDisks" 172 and resided in the <computeroutput>.VirtualBox</computeroutput> 173 folder as well. Both locations could be changed by the user in 174 the global preferences. The concept of a default hard disk 175 folder has been abandoned with VirtualBox 4.0, since disk images 176 now reside in each machine's folder by default. 177 </para> 178 179 <para> 180 The old layout had the following severe disadvantages: 181 </para> 182 183 <itemizedlist> 184 185 <listitem> 186 <para> 187 It was very difficult to move a virtual machine from one 188 host to another because the files involved did not reside in 189 the same folder. In addition, the virtual media of all 190 machines were registered with a global registry in the 191 central VirtualBox settings file, 192 <computeroutput>$HOME/.VirtualBox/VirtualBox.xml</computeroutput>. 193 </para> 194 195 <para> 196 To move a machine to another host, it was therefore not 197 enough to move the XML settings file and the disk images, 198 which were in different locations, but the hard disk entries 199 from the global media registry XML had to be meticulously 200 copied as well. This was close to impossible if the machine 201 had snapshots and therefore differencing images. 202 </para> 203 </listitem> 204 205 <listitem> 206 <para> 207 Storing virtual disk images, which can grow very large, 208 under the hidden 209 <computeroutput>.VirtualBox</computeroutput> directory, at 210 least on Linux and Solaris hosts, made many users wonder 211 where their disk space had gone. 212 </para> 213 </listitem> 214 215 </itemizedlist> 216 217 <para> 218 Whereas new VMs created with VirtualBox 4.0 or later will 219 conform to the new layout, for maximum compatibility, old VMs 220 are <emphasis>not</emphasis> converted to the new layout. 221 Otherwise machine settings would be irrevocably broken if a user 222 downgraded from 4.0 back to an older version of VirtualBox. 223 </para> 224 156 225 </sect2> 157 226 158 <sect2> 159 <title>Global configuration data</title> 160 161 <para>In addition to the files of the virtual machines, VirtualBox 162 maintains global configuration data. On Linux and Solaris as of VirtualBox 4.3, this 163 is in the hidden directory <computeroutput>$HOME/.config/VirtualBox</computeroutput>, although <computeroutput>$HOME/.VirtualBox</computeroutput> will be used if it exists for compatibility with earlier versions; on Windows (and on Linux and Solaris with VirtualBox 4.2 and earlier) this is in <computeroutput>$HOME/.VirtualBox</computeroutput>; on a Mac it resides in 164 <computeroutput>$HOME/Library/VirtualBox</computeroutput>.</para> 165 166 <para>VirtualBox creates this configuration directory automatically if 167 necessary. Optionally, you can supply an alternate configuration 168 directory by setting the 169 <computeroutput><literal>VBOX_USER_HOME</literal></computeroutput> 170 environment variable, or additionally on Linux or Solaris by using the standard <computeroutput><literal>XDG_CONFIG_HOME</literal></computeroutput> variable. (Since the global 171 <computeroutput>VirtualBox.xml</computeroutput> settings file points to 172 all other configuration files, this allows for switching between several 173 VirtualBox configurations entirely.)</para> 174 175 <para>Most importantly, in this directory, VirtualBox stores its global 176 settings file, another XML file called 177 <computeroutput>VirtualBox.xml</computeroutput>. This includes global 178 configuration options and the list of registered virtual machines with 179 pointers to their XML settings files. (Neither the location of this file 180 nor its directory has changed with VirtualBox 4.0.)</para> 181 182 <para>Before VirtualBox 4.0, all virtual media (disk image files) were 183 also contained in a global registry in this settings file. For 184 compatibility, this media registry still exists if you upgrade 185 VirtualBox and there are media from machines which were created with a 186 version before 4.0. If you have no such machines, then there will be no 187 global media registry; with VirtualBox 4.0, each machine XML file has 188 its own media registry.</para> 189 190 <para>Also before VirtualBox 4.0, the default "Machines" folder and the 191 default "HardDisks" folder resided under the VirtualBox configuration 192 directory (e.g. 193 <computeroutput>$HOME/.VirtualBox/Machines</computeroutput> on Linux). 194 If you are upgrading from a VirtualBox version before 4.0, files in 195 these directories are not automatically moved in order not to break 196 backwards compatibility.</para> 227 <sect2 id="vboxconfigdata-global"> 228 229 <title>Global Configuration Data</title> 230 231 <para> 232 In addition to the files of the virtual machines, VirtualBox 233 maintains global configuration data. On Linux and Solaris as of 234 VirtualBox 4.3, this is in the hidden directory 235 <computeroutput>$HOME/.config/VirtualBox</computeroutput>, 236 although <computeroutput>$HOME/.VirtualBox</computeroutput> will 237 be used if it exists for compatibility with earlier versions. On 238 Windows, and on Linux and Solaris with VirtualBox 4.2 and 239 earlier, this is in 240 <computeroutput>$HOME/.VirtualBox</computeroutput>. On Mac OS X, 241 it resides in 242 <computeroutput>$HOME/Library/VirtualBox</computeroutput>. 243 </para> 244 245 <para> 246 VirtualBox creates this configuration directory automatically if 247 necessary. Optionally, you can supply an alternate configuration 248 directory by setting the 249 <computeroutput><literal>VBOX_USER_HOME</literal></computeroutput> 250 environment variable, or additionally on Linux or Solaris by 251 using the standard 252 <computeroutput><literal>XDG_CONFIG_HOME</literal></computeroutput> 253 variable. Since the global 254 <computeroutput>VirtualBox.xml</computeroutput> settings file 255 points to all other configuration files, this allows for 256 switching between several VirtualBox configurations entirely. 257 </para> 258 259 <para> 260 Most importantly, in this directory, VirtualBox stores its 261 global settings file, another XML file called 262 <computeroutput>VirtualBox.xml</computeroutput>. This includes 263 global configuration options and the list of registered virtual 264 machines with pointers to their XML settings files. Neither the 265 location of this file nor its directory has changed with 266 VirtualBox 4.0. 267 </para> 268 269 <para> 270 Before VirtualBox 4.0, all virtual media (disk image files) were 271 also contained in a global registry in this settings file. For 272 compatibility, this media registry still exists if you upgrade 273 VirtualBox and there are media from machines which were created 274 with a version before 4.0. If you have no such machines, then 275 there will be no global media registry. With VirtualBox 4.0, 276 each machine XML file has its own media registry. 277 </para> 278 279 <para> 280 Also before VirtualBox 4.0, the default "Machines" folder and 281 the default "HardDisks" folder resided under the VirtualBox 282 configuration directory, such as 283 <computeroutput>$HOME/.VirtualBox/Machines</computeroutput> on 284 Linux. If you are upgrading from a VirtualBox version before 285 4.0, files in these directories are not automatically moved in 286 order not to break backwards compatibility. 287 </para> 288 197 289 </sect2> 198 290 199 <sect2> 200 <title>Summary of 4.0 configuration changes</title> 201 202 <para>The following table gives a brief overview of the configuration 203 changes between older versions and version 4.0 or above:</para> 204 205 <table> 206 <title>Configuration changes in version 4.0 or above</title> 207 291 <sect2 id="vboxconfigdata-summary-version-four"> 292 293 <title>Summary of 4.0 Configuration Changes</title> 294 295 <para> 296 <xref linkend="table-version4-config-changes"/> gives a brief 297 overview of the configuration changes between legacy versions 298 and version 4.0 or later. 299 </para> 300 301 <table id="table-version4-config-changes"> 302 <title>Configuration Changes in Version 4.0 or Above</title> 208 303 <tgroup cols="3"> 209 304 <thead> 210 305 <row> 211 306 <entry><emphasis role="bold">Setting</emphasis></entry> 212 213 307 <entry><emphasis role="bold">Before 4.0</emphasis></entry> 214 215 308 <entry><emphasis role="bold">4.0 or above</emphasis></entry> 216 309 </row> … … 219 312 <row> 220 313 <entry>Default machines folder</entry> 221 222 314 <entry><computeroutput>$HOME/.VirtualBox/Machines</computeroutput></entry> 223 224 <entry><computeroutput>$HOME/VirtualBox 225 VMs</computeroutput></entry> 315 <entry><computeroutput>$HOME/VirtualBox VMs</computeroutput></entry> 226 316 </row> 227 228 317 <row> 229 318 <entry>Default disk image location</entry> 230 231 319 <entry><computeroutput>$HOME/.VirtualBox/HardDisks</computeroutput></entry> 232 233 320 <entry>In each machine's folder</entry> 234 321 </row> 235 236 322 <row> 237 323 <entry>Machine settings file extension</entry> 238 239 324 <entry><computeroutput>.xml</computeroutput></entry> 240 241 325 <entry><computeroutput>.vbox</computeroutput></entry> 242 326 </row> 243 244 327 <row> 245 328 <entry>Media registry</entry> 246 247 <entry>Global <computeroutput>VirtualBox.xml</computeroutput> 248 file</entry> 249 329 <entry>Global <computeroutput>VirtualBox.xml</computeroutput> file</entry> 250 330 <entry>Each machine settings file</entry> 251 331 </row> 252 253 332 <row> 254 333 <entry>Media registration</entry> 255 256 334 <entry>Explicit open/close required</entry> 257 258 335 <entry>Automatic on attach</entry> 259 336 </row> … … 261 338 </tgroup> 262 339 </table> 340 263 341 </sect2> 264 342 265 <sect2> 266 <title>VirtualBox XML files</title> 267 268 <para>VirtualBox uses XML for both the machine settings files and the 269 global configuration file, 270 <computeroutput>VirtualBox.xml</computeroutput>.</para> 271 272 <para>All VirtualBox XML files are versioned. When a new settings file 273 is created (e.g. because a new virtual machine is created), VirtualBox 274 automatically uses the settings format of the current VirtualBox 275 version. These files may not be readable if you downgrade to an earlier 276 version of VirtualBox. However, when VirtualBox encounters a settings 277 file from an earlier version (e.g. after upgrading VirtualBox), it 278 attempts to preserve the settings format as much as possible. It will 279 only silently upgrade the settings format if the current settings cannot 280 be expressed in the old format, for example because you enabled a 281 feature that was not present in an earlier version of 282 VirtualBox.<footnote> 283 <para>As an example, before VirtualBox 3.1, it was only possible to 284 enable or disable a single DVD drive in a virtual machine. If it was 285 enabled, then it would always be visible as the secondary master of 286 the IDE controller. With VirtualBox 3.1, DVD drives can be attached 287 to arbitrary slots of arbitrary controllers, so they could be the 288 secondary slave of an IDE controller or in a SATA slot. If you have 289 a machine settings file from an earlier version and upgrade 290 VirtualBox to 3.1 and then move the DVD drive from its default 291 position, this cannot be expressed in the old settings format; the 292 XML machine file would get written in the new format, and a backup 293 file of the old format would be kept.</para> 294 </footnote> In such cases, VirtualBox backs up the old settings file 295 in the virtual machine's configuration directory. If you need to go back 296 to the earlier version of VirtualBox, then you will need to manually 297 copy these backup files back.</para> 298 299 <para>We intentionally do not document the specifications of the 300 VirtualBox XML files, as we must reserve the right to modify them in the 301 future. We therefore strongly suggest that you do not edit these files 302 manually. VirtualBox provides complete access to its configuration data 303 through its the <computeroutput>VBoxManage</computeroutput> command line 304 tool (see <xref linkend="vboxmanage" />) and its API (see <xref 305 linkend="VirtualBoxAPI" />).</para> 343 <sect2 id="vboxconfigdata-XML-files"> 344 345 <title>VirtualBox XML Files</title> 346 347 <para> 348 VirtualBox uses XML for both the machine settings files and the 349 global configuration file, 350 <computeroutput>VirtualBox.xml</computeroutput>. 351 </para> 352 353 <para> 354 All VirtualBox XML files are versioned. When a new settings file 355 is created, for example because a new virtual machine is 356 created, VirtualBox automatically uses the settings format of 357 the current VirtualBox version. These files may not be readable 358 if you downgrade to an earlier version of VirtualBox. However, 359 when VirtualBox encounters a settings file from an earlier 360 version, such as after upgrading VirtualBox, it attempts to 361 preserve the settings format as much as possible. It will only 362 silently upgrade the settings format if the current settings 363 cannot be expressed in the old format, for example because you 364 enabled a feature that was not present in an earlier version of 365 VirtualBox. 366 367 <footnote> 368 369 <para> 370 As an example, before VirtualBox 3.1, it was only possible 371 to enable or disable a single DVD drive in a virtual 372 machine. If it was enabled, then it would always be visible 373 as the secondary master of the IDE controller. With 374 VirtualBox 3.1, DVD drives can be attached to arbitrary 375 slots of arbitrary controllers, so they could be the 376 secondary slave of an IDE controller or in a SATA slot. If 377 you have a machine settings file from an earlier version and 378 upgrade VirtualBox to 3.1 and then move the DVD drive from 379 its default position, this cannot be expressed in the old 380 settings format; the XML machine file would get written in 381 the new format, and a backup file of the old format would be 382 kept. 383 </para> 384 385 </footnote> 386 387 In such cases, VirtualBox backs up the old settings file in the 388 virtual machine's configuration directory. If you need to go 389 back to the earlier version of VirtualBox, then you will need to 390 manually copy these backup files back. 391 </para> 392 393 <para> 394 We intentionally do not document the specifications of the 395 VirtualBox XML files, as we must reserve the right to modify 396 them in the future. We therefore strongly suggest that you do 397 not edit these files manually. VirtualBox provides complete 398 access to its configuration data through its the 399 <computeroutput>VBoxManage</computeroutput> command line tool, 400 see <xref linkend="vboxmanage" /> and its API, see 401 <xref 402 linkend="VirtualBoxAPI" />. 403 </para> 404 306 405 </sect2> 406 307 407 </sect1> 308 408 309 409 <sect1 id="technical-components"> 310 <title>VirtualBox executables and components</title> 311 312 <para>VirtualBox was designed to be modular and flexible. When the 313 VirtualBox graphical user interface (GUI) is opened and a VM is started, 314 at least three processes are running:<orderedlist> 315 <listitem> 316 <para><computeroutput>VBoxSVC</computeroutput>, the VirtualBox 317 service process which always runs in the background. This process is 318 started automatically by the first VirtualBox client process (the 319 GUI, <computeroutput>VBoxManage</computeroutput>, 320 <computeroutput>VBoxHeadless</computeroutput>, the web service or 321 others) and exits a short time after the last client exits. The 322 service is responsible for bookkeeping, maintaining the state of all 323 VMs, and for providing communication between VirtualBox components. 324 This communication is implemented via COM/XPCOM.<note> 325 <para>When we refer to "clients" here, we mean the local clients 326 of a particular <computeroutput>VBoxSVC</computeroutput> server 327 process, not clients in a network. VirtualBox employs its own 328 client/server design to allow its processes to cooperate, but 329 all these processes run under the same user account on the host 330 operating system, and this is totally transparent to the 331 user.</para> 332 </note></para> 333 </listitem> 334 335 <listitem> 336 <para>The GUI process, <computeroutput>VirtualBox</computeroutput>, 337 a client application based on the cross-platform Qt library. When 338 started without the <computeroutput>--startvm</computeroutput> 339 option, this application acts as the VirtualBox manager, displaying 340 the VMs and their settings. It then communicates settings and state 410 411 <title>VirtualBox Executables and Components</title> 412 413 <para> 414 VirtualBox was designed to be modular and flexible. When the 415 VirtualBox graphical user interface (GUI) is opened and a VM is 416 started, at least the following three processes are running: 417 </para> 418 419 <itemizedlist> 420 421 <listitem> 422 <para> 423 <computeroutput>VBoxSVC</computeroutput>, the VirtualBox 424 service process which always runs in the background. This 425 process is started automatically by the first VirtualBox 426 client process and exits a short time after the last client 427 exits. The first VirtualBox service can be the GUI, 428 <computeroutput>VBoxManage</computeroutput>, 429 <computeroutput>VBoxHeadless</computeroutput>, the web service 430 amongst others. The service is responsible for bookkeeping, 431 maintaining the state of all VMs, and for providing 432 communication between VirtualBox components. This 433 communication is implemented via COM/XPCOM. 434 </para> 435 436 <note> 437 <para> 438 When we refer to "clients" here, we mean the local clients 439 of a particular <computeroutput>VBoxSVC</computeroutput> 440 server process, not clients in a network. VirtualBox employs 441 its own client/server design to allow its processes to 442 cooperate, but all these processes run under the same user 443 account on the host operating system, and this is totally 444 transparent to the user. 445 </para> 446 </note> 447 </listitem> 448 449 <listitem> 450 <para> 451 The GUI process, <computeroutput>VirtualBox</computeroutput>, 452 a client application based on the cross-platform Qt library. 453 When started without the 454 <computeroutput>--startvm</computeroutput> option, this 455 application acts as the VirtualBox manager, displaying the VMs 456 and their settings. It then communicates settings and state 341 457 changes to <computeroutput>VBoxSVC</computeroutput> and also 342 reflects changes effected through other means, e.g., 343 <computeroutput>VBoxManage</computeroutput>.</para> 344 </listitem> 345 346 <listitem> 347 <para>If the <computeroutput>VirtualBox</computeroutput> client 458 reflects changes effected through other means, such as 459 <computeroutput>VBoxManage</computeroutput>. 460 </para> 461 </listitem> 462 463 <listitem> 464 <para> 465 If the <computeroutput>VirtualBox</computeroutput> client 348 466 application is started with the 349 <computeroutput>--startvm</computeroutput> argument, it loads the 350 VMM library which includes the actual hypervisor and then runs a 351 virtual machine and provides the input and output for the 352 guest.</para> 353 </listitem> 354 </orderedlist></para> 355 356 <para>Any VirtualBox front-end (client) will communicate with the service 357 process and can both control and reflect the current state. For example, 358 either the VM selector or the VM window or VBoxManage can be used to pause 359 the running VM, and other components will always reflect the changed 360 state.</para> 361 362 <para>The VirtualBox GUI application is only one of several available 363 front ends (clients). The complete list shipped with VirtualBox 364 is:<orderedlist> 365 <listitem> 366 <para><computeroutput>VirtualBox</computeroutput>, the Qt front end 367 implementing the manager and running VMs;</para> 368 </listitem> 369 370 <listitem> 371 <para><computeroutput>VBoxManage</computeroutput>, a less 372 user-friendly but more powerful alternative, described in <xref 373 linkend="vboxmanage" />.</para> 374 </listitem> 375 376 <listitem> 377 <para><computeroutput>VBoxSDL</computeroutput>, a simple graphical 378 front end based on the SDL library; see <xref 379 linkend="vboxsdl" />.</para> 380 </listitem> 381 382 <listitem> 383 <para><computeroutput>VBoxHeadless</computeroutput>, a VM front end 384 which does not directly provide any video output and keyboard/mouse 385 input, but allows redirection via VirtualBox Remote Desktop Extension; 386 see <xref linkend="vboxheadless" />.</para> 387 </listitem> 388 389 <listitem> 390 <para><computeroutput>vboxwebsrv</computeroutput>, the VirtualBox 391 web service process which allows for controlling a VirtualBox host 392 remotely. This is described in detail in the VirtualBox Software 393 Development Kit (SDK) reference; please see <xref 394 linkend="VirtualBoxAPI" /> for details.</para> 395 </listitem> 396 397 <listitem> 398 <para>The VirtualBox Python shell, a Python alternative to 399 VBoxManage. This is also described in the SDK reference.</para> 400 </listitem> 401 </orderedlist></para> 402 403 <para>Internally, VirtualBox consists of many more or less separate 404 components. You may encounter these when analyzing VirtualBox internal 405 error messages or log files. These include:</para> 467 <computeroutput>--startvm</computeroutput> argument, it loads 468 the VMM library which includes the actual hypervisor and then 469 runs a virtual machine and provides the input and output for 470 the guest. 471 </para> 472 </listitem> 473 474 </itemizedlist> 475 476 <para> 477 Any VirtualBox front-end, or client, will communicate with the 478 service process and can both control and reflect the current 479 state. For example, either the VM selector or the VM window or 480 VBoxManage can be used to pause the running VM, and other 481 components will always reflect the changed state. 482 </para> 483 484 <para> 485 The VirtualBox GUI application is only one of several available 486 front ends, or clients. The complete list shipped with VirtualBox 487 is as follows: 488 </para> 406 489 407 490 <itemizedlist> 408 <listitem> 409 <para>IPRT, a portable runtime library which abstracts file access, 410 threading, string manipulation, etc. Whenever VirtualBox accesses host 411 operating features, it does so through this library for cross-platform 412 portability.</para> 413 </listitem> 414 415 <listitem> 416 <para>VMM (Virtual Machine Monitor), the heart of the 417 hypervisor.</para> 418 </listitem> 419 420 <listitem> 421 <para>EM (Execution Manager), controls execution of guest code.</para> 422 </listitem> 423 424 <listitem> 425 <para>REM (Recompiled Execution Monitor), provides software emulation 426 of CPU instructions.</para> 427 </listitem> 428 429 <listitem> 430 <para>TRPM (Trap Manager), intercepts and processes guest traps and 431 exceptions.</para> 432 </listitem> 433 434 <listitem> 435 <para>HM (Hardware Acceleration Manager), provides support for VT-x 436 and AMD-V.</para> 437 </listitem> 438 439 <listitem> 440 <para>GIM (Guest Interface Manager), provides support for various 441 paravirtualization interfaces to the guest.</para> 442 </listitem> 443 444 <listitem> 445 <para>PDM (Pluggable Device Manager), an abstract interface between 446 the VMM and emulated devices which separates device implementations 447 from VMM internals and makes it easy to add new emulated devices. 448 Through PDM, third-party developers can add new virtual devices to 449 VirtualBox without having to change VirtualBox itself.</para> 450 </listitem> 451 452 <listitem> 453 <para>PGM (Page Manager), a component controlling guest paging.</para> 454 </listitem> 455 456 <listitem> 457 <para>PATM (Patch Manager), patches guest code to improve and speed up 458 software virtualization.</para> 459 </listitem> 460 461 <listitem> 462 <para>TM (Time Manager), handles timers and all aspects of time inside 463 guests.</para> 464 </listitem> 465 466 <listitem> 467 <para>CFGM (Configuration Manager), provides a tree structure which 468 holds configuration settings for the VM and all emulated 469 devices.</para> 470 </listitem> 471 472 <listitem> 473 <para>SSM (Saved State Manager), saves and loads VM state.</para> 474 </listitem> 475 476 <listitem> 477 <para>VUSB (Virtual USB), a USB layer which separates emulated USB 478 controllers from the controllers on the host and from USB devices; 479 this also enables remote USB.</para> 480 </listitem> 481 482 <listitem> 483 <para>DBGF (Debug Facility), a built-in VM debugger.</para> 484 </listitem> 485 486 <listitem> 487 <para>VirtualBox emulates a number of devices to provide the hardware 488 environment that various guests need. Most of these are standard 489 devices found in many PC compatible machines and widely supported by 490 guest operating systems. For network and storage devices in 491 particular, there are several options for the emulated devices to 492 access the underlying hardware. These devices are managed by 493 PDM.</para> 494 </listitem> 495 496 <listitem> 497 <para>Guest Additions for various guest operating systems. This is 498 code that is installed from within a virtual machine; see <xref 499 linkend="guestadditions" />.</para> 500 </listitem> 501 502 <listitem> 503 <para>The "Main" component is special: it ties all the above bits 504 together and is the only public API that VirtualBox provides. All the 505 client processes listed above use only this API and never access the 506 hypervisor components directly. As a result, third-party applications 507 that use the VirtualBox Main API can rely on the fact that it is 508 always well-tested and that all capabilities of VirtualBox are fully 509 exposed. It is this API that is described in the VirtualBox SDK 510 mentioned above (again, see <xref linkend="VirtualBoxAPI" />).</para> 511 </listitem> 491 492 <listitem> 493 <para> 494 <computeroutput>VirtualBox</computeroutput>: The Qt front end 495 implementing the manager and running VMs. 496 </para> 497 </listitem> 498 499 <listitem> 500 <para> 501 <computeroutput>VBoxManage</computeroutput>: A less 502 user-friendly but more powerful alternative. See 503 <xref 504 linkend="vboxmanage" />. 505 </para> 506 </listitem> 507 508 <listitem> 509 <para> 510 <computeroutput>VBoxSDL</computeroutput>: A simple graphical 511 front end based on the SDL library. See 512 <xref 513 linkend="vboxsdl" />. 514 </para> 515 </listitem> 516 517 <listitem> 518 <para> 519 <computeroutput>VBoxHeadless</computeroutput>: A VM front end 520 which does not directly provide any video output and 521 keyboard/mouse input, but allows redirection via VirtualBox 522 Remote Desktop Extension. See <xref linkend="vboxheadless" />. 523 </para> 524 </listitem> 525 526 <listitem> 527 <para> 528 <computeroutput>vboxwebsrv</computeroutput>: The VirtualBox 529 web service process which allows for controlling a VirtualBox 530 host remotely. This is described in detail in the VirtualBox 531 Software Development Kit (SDK) reference. See 532 <xref 533 linkend="VirtualBoxAPI" />. 534 </para> 535 </listitem> 536 537 <listitem> 538 <para> 539 The VirtualBox Python shell: A Python alternative to 540 VBoxManage. This is also described in the SDK reference. 541 </para> 542 </listitem> 543 512 544 </itemizedlist> 545 546 <para> 547 Internally, VirtualBox consists of many more or less separate 548 components. You may encounter these when analyzing VirtualBox 549 internal error messages or log files. These include the following: 550 </para> 551 552 <itemizedlist> 553 554 <listitem> 555 <para> 556 IPRT: A portable runtime library which abstracts file access, 557 threading, and string manipulation. Whenever VirtualBox 558 accesses host operating features, it does so through this 559 library for cross-platform portability. 560 </para> 561 </listitem> 562 563 <listitem> 564 <para> 565 VMM (Virtual Machine Monitor): The heart of the hypervisor. 566 </para> 567 </listitem> 568 569 <listitem> 570 <para> 571 EM (Execution Manager): Controls execution of guest code. 572 </para> 573 </listitem> 574 575 <listitem> 576 <para> 577 REM (Recompiled Execution Monitor): Provides software 578 emulation of CPU instructions. 579 </para> 580 </listitem> 581 582 <listitem> 583 <para> 584 TRPM (Trap Manager): Intercepts and processes guest traps and 585 exceptions. 586 </para> 587 </listitem> 588 589 <listitem> 590 <para> 591 HM (Hardware Acceleration Manager): Provides support for VT-x 592 and AMD-V. 593 </para> 594 </listitem> 595 596 <listitem> 597 <para> 598 GIM (Guest Interface Manager): Provides support for various 599 paravirtualization interfaces to the guest. 600 </para> 601 </listitem> 602 603 <listitem> 604 <para> 605 PDM (Pluggable Device Manager): An abstract interface between 606 the VMM and emulated devices which separates device 607 implementations from VMM internals and makes it easy to add 608 new emulated devices. Through PDM, third-party developers can 609 add new virtual devices to VirtualBox without having to change 610 VirtualBox itself. 611 </para> 612 </listitem> 613 614 <listitem> 615 <para> 616 PGM (Page Manager): A component that controls guest paging. 617 </para> 618 </listitem> 619 620 <listitem> 621 <para> 622 PATM (Patch Manager): Patches guest code to improve and speed 623 up software virtualization. 624 </para> 625 </listitem> 626 627 <listitem> 628 <para> 629 TM (Time Manager): Handles timers and all aspects of time 630 inside guests. 631 </para> 632 </listitem> 633 634 <listitem> 635 <para> 636 CFGM (Configuration Manager): Provides a tree structure which 637 holds configuration settings for the VM and all emulated 638 devices. 639 </para> 640 </listitem> 641 642 <listitem> 643 <para> 644 SSM (Saved State Manager): Saves and loads VM state. 645 </para> 646 </listitem> 647 648 <listitem> 649 <para> 650 VUSB (Virtual USB): A USB layer which separates emulated USB 651 controllers from the controllers on the host and from USB 652 devices. This component also enables remote USB. 653 </para> 654 </listitem> 655 656 <listitem> 657 <para> 658 DBGF (Debug Facility): A built-in VM debugger. 659 </para> 660 </listitem> 661 662 <listitem> 663 <para> 664 VirtualBox emulates a number of devices to provide the 665 hardware environment that various guests need. Most of these 666 are standard devices found in many PC compatible machines and 667 widely supported by guest operating systems. For network and 668 storage devices in particular, there are several options for 669 the emulated devices to access the underlying hardware. These 670 devices are managed by PDM. 671 </para> 672 </listitem> 673 674 <listitem> 675 <para> 676 Guest Additions for various guest operating systems. This is 677 code that is installed from within a virtual machine. See 678 <xref 679 linkend="guestadditions" />. 680 </para> 681 </listitem> 682 683 <listitem> 684 <para> 685 The "Main" component is special. It ties all the above bits 686 together and is the only public API that VirtualBox provides. 687 All the client processes listed above use only this API and 688 never access the hypervisor components directly. As a result, 689 third-party applications that use the VirtualBox Main API can 690 rely on the fact that it is always well-tested and that all 691 capabilities of VirtualBox are fully exposed. It is this API 692 that is described in the VirtualBox SDK. See 693 <xref linkend="VirtualBoxAPI" />. 694 </para> 695 </listitem> 696 697 </itemizedlist> 698 513 699 </sect1> 514 700 515 701 <sect1 id="hwvirt"> 516 <title>Hardware vs. software virtualization</title> 517 518 <para>VirtualBox allows software in the virtual machine to run directly on 519 the processor of the host, but an array of complex techniques is employed 520 to intercept operations that would interfere with your host. Whenever the 521 guest attempts to do something that could be harmful to your computer and 522 its data, VirtualBox steps in and takes action. In particular, for lots of 523 hardware that the guest believes to be accessing, VirtualBox simulates a 524 certain "virtual" environment according to how you have configured a 525 virtual machine. For example, when the guest attempts to access a hard 526 disk, VirtualBox redirects these requests to whatever you have configured 527 to be the virtual machine's virtual hard disk -- normally, an image file 528 on your host.</para> 529 530 <para>Unfortunately, the x86 platform was never designed to be 531 virtualized. Detecting situations in which VirtualBox needs to take 532 control over the guest code that is executing, as described above, is 533 difficult. There are two ways in which to achieve this:<itemizedlist> 534 <listitem> 535 <para>Since 2006, Intel and AMD processors have had support for 536 so-called <emphasis role="bold">"hardware 537 virtualization"</emphasis>. This means that these processors can 538 help VirtualBox to intercept potentially dangerous operations that a 539 guest operating system may be attempting and also makes it easier to 540 present virtual hardware to a virtual machine.</para> 541 542 <para>These hardware features differ between Intel and AMD 543 processors. Intel named its technology <emphasis 544 role="bold">VT-x</emphasis>; AMD calls theirs <emphasis 545 role="bold">AMD-V</emphasis>. The Intel and AMD support for 546 virtualization is very different in detail, but not very different 547 in principle.<note> 548 <para>On many systems, the hardware virtualization features 549 first need to be enabled in the BIOS before VirtualBox can use 550 them.</para> 551 </note></para> 552 </listitem> 553 554 <listitem> 555 <para>As opposed to other virtualization software, for many usage 556 scenarios, VirtualBox does not <emphasis>require</emphasis> hardware 557 virtualization features to be present. Through sophisticated 558 techniques, VirtualBox virtualizes many guest operating systems 559 entirely in <emphasis role="bold">software</emphasis>. This means 560 that you can run virtual machines even on older processors which do 561 not support hardware virtualization.</para> 562 </listitem> 563 </itemizedlist></para> 564 565 <para>Even though VirtualBox does not always require hardware 566 virtualization, enabling it is <emphasis>required</emphasis> in the 567 following scenarios:<itemizedlist> 568 <listitem> 569 <para>Certain rare guest operating systems like OS/2 make use of 570 very esoteric processor instructions that are not supported with our 571 software virtualization. For virtual machines that are configured to 572 contain such an operating system, hardware virtualization is enabled 573 automatically.</para> 574 </listitem> 575 576 <listitem> 577 <para>VirtualBox's 64-bit guest support (added with version 2.0) and 578 multiprocessing (SMP, added with version 3.0) both require hardware 579 virtualization to be enabled. (This is not much of a limitation 580 since the vast majority of today's 64-bit and multicore CPUs ship 581 with hardware virtualization anyway; the exceptions to this rule are 582 e.g. older Intel Celeron and AMD Opteron CPUs.)</para> 583 </listitem> 584 </itemizedlist></para> 702 703 <title>Hardware vs. Software Virtualization</title> 704 705 <para> 706 VirtualBox allows software in the virtual machine to run directly 707 on the processor of the host, but an array of complex techniques 708 is employed to intercept operations that would interfere with your 709 host. Whenever the guest attempts to do something that could be 710 harmful to your computer and its data, VirtualBox steps in and 711 takes action. In particular, for lots of hardware that the guest 712 believes to be accessing, VirtualBox simulates a certain "virtual" 713 environment according to how you have configured a virtual 714 machine. For example, when the guest attempts to access a hard 715 disk, VirtualBox redirects these requests to whatever you have 716 configured to be the virtual machine's virtual hard disk. This is 717 normally an image file on your host. 718 </para> 719 720 <para> 721 Unfortunately, the x86 platform was never designed to be 722 virtualized. Detecting situations in which VirtualBox needs to 723 take control over the guest code that is executing, as described 724 above, is difficult. There are two ways in which to achieve this: 725 </para> 726 727 <itemizedlist> 728 729 <listitem> 730 <para> 731 Since 2006, Intel and AMD processors have had support for 732 so-called <emphasis>hardware virtualization</emphasis>. This 733 means that these processors can help VirtualBox to intercept 734 potentially dangerous operations that a guest operating system 735 may be attempting and also makes it easier to present virtual 736 hardware to a virtual machine. 737 </para> 738 739 <para> 740 These hardware features differ between Intel and AMD 741 processors. Intel named its technology >VT-x. AMD calls theirs 742 AMD-V. The Intel and AMD support for virtualization is very 743 different in detail, but not very different in principle. 744 </para> 745 746 <note> 747 <para> 748 On many systems, the hardware virtualization features first 749 need to be enabled in the BIOS before VirtualBox can use 750 them. 751 </para> 752 </note> 753 </listitem> 754 755 <listitem> 756 <para> 757 As opposed to other virtualization software, for many usage 758 scenarios, VirtualBox does not <emphasis>require</emphasis> 759 hardware virtualization features to be present. Through 760 sophisticated techniques, VirtualBox virtualizes many guest 761 operating systems entirely in <emphasis>software</emphasis>. 762 This means that you can run virtual machines even on older 763 processors which do not support hardware virtualization. 764 </para> 765 </listitem> 766 767 </itemizedlist> 768 769 <para> 770 Even though VirtualBox does not always require hardware 771 virtualization, enabling it is <emphasis>required</emphasis> in 772 the following scenarios: 773 </para> 774 775 <itemizedlist> 776 777 <listitem> 778 <para> 779 Certain rare guest operating systems like OS/2 make use of 780 very esoteric processor instructions that are not supported 781 with our software virtualization. For virtual machines that 782 are configured to contain such an operating system, hardware 783 virtualization is enabled automatically. 784 </para> 785 </listitem> 786 787 <listitem> 788 <para> 789 VirtualBox's 64-bit guest support (added with version 2.0) and 790 multiprocessing (SMP, added with version 3.0) both require 791 hardware virtualization to be enabled. This is not much of a 792 limitation since the vast majority of today's 64-bit and 793 multicore CPUs ship with hardware virtualization anyway. The 794 exceptions to this rule are older Intel Celeron and AMD 795 Opteron CPUs, for example. 796 </para> 797 </listitem> 798 799 </itemizedlist> 585 800 586 801 <warning> 587 <para>Do not run other hypervisors (open-source or commercial 588 virtualization products) together with VirtualBox! While several 589 hypervisors can normally be <emphasis>installed</emphasis> in parallel, 590 do not attempt to <emphasis>run</emphasis> several virtual machines from 591 competing hypervisors at the same time. VirtualBox cannot track what 592 another hypervisor is currently attempting to do on the same host, and 593 especially if several products attempt to use hardware virtualization 594 features such as VT-x, this can crash the entire host. Also, within 595 VirtualBox, you can mix software and hardware virtualization when 596 running multiple VMs. In certain cases a small performance penalty will 597 be unavoidable when mixing VT-x and software virtualization VMs. We 598 recommend not mixing virtualization modes if maximum performance and low 599 overhead are essential. This does <emphasis>not</emphasis> apply to 600 AMD-V.</para> 802 <para> 803 Do not run other hypervisors, either open source or commercial 804 virtualization products, together with VirtualBox. While several 805 hypervisors can normally be <emphasis>installed</emphasis> in 806 parallel, do not attempt to <emphasis>run</emphasis> several 807 virtual machines from competing hypervisors at the same time. 808 VirtualBox cannot track what another hypervisor is currently 809 attempting to do on the same host, and especially if several 810 products attempt to use hardware virtualization features such as 811 VT-x, this can crash the entire host. Also, within VirtualBox, 812 you can mix software and hardware virtualization when running 813 multiple VMs. In certain cases a small performance penalty will 814 be unavoidable when mixing VT-x and software virtualization VMs. 815 We recommend not mixing virtualization modes if maximum 816 performance and low overhead are essential. This does 817 <emphasis>not</emphasis> apply to AMD-V. 818 </para> 601 819 </warning> 820 602 821 </sect1> 603 822 604 823 <sect1 id="gimproviders"> 605 <title>Paravirtualization providers</title> 606 607 <para>VirtualBox allows exposing a paravirtualization interface to 608 facilitate accurate and efficient execution of software within a 609 virtual machine. These interfaces require the guest operating system 610 to recognize their presence and make use of them in order to leverage 611 the benefits of communicating with the VirtualBox hypervisor.</para> 612 613 <para>Most modern mainstream guest operating systems, including 614 Windows and Linux, ship with support for one or more paravirtualization 615 interfaces. Hence, there is typically no need to install additional software 616 in the guest to take advantage of this feature. 617 </para> 618 619 <para>Exposing a paravirtualization provider to the guest operating 620 system does not rely on the choice of host platforms. For example, the 621 <emphasis>Hyper-V</emphasis> paravirtualization provider can be 622 used for VMs to run on any host platform (supported by VirtualBox) and 623 not just Windows.</para> 624 625 <para>VirtualBox provides the following interfaces:</para> 626 <itemizedlist> 627 <listitem> 628 <para><emphasis role="bold">Minimal</emphasis>: Announces the 629 presence of a virtualized environment. Additionally, reports the 630 TSC and APIC frequency to the guest operating system. This provider 631 is mandatory for running any Mac OS X guests.</para> 632 </listitem> 633 634 <listitem> 635 <para><emphasis role="bold">KVM</emphasis>: Presents a Linux KVM 636 hypervisor interface which is recognized by Linux kernels starting 637 with version 2.6.25. VirtualBox's implementation currently supports 638 paravirtualized clocks and SMP spinlocks. This provider is 639 recommended for Linux guests.</para> 640 </listitem> 641 642 <listitem> 643 <para><emphasis role="bold">Hyper-V</emphasis>: Presents a Microsoft 644 Hyper-V hypervisor interface which is recognized by Windows 7 and newer 645 operating systems. VirtualBox's implementation currently supports 646 paravirtualized clocks, APIC frequency reporting, guest debugging, 647 guest crash reporting and relaxed timer checks. This provider is 648 recommended for Windows guests. 649 </para> 650 </listitem> 651 </itemizedlist> 824 825 <title>Paravirtualization Providers</title> 826 827 <para> 828 VirtualBox allows exposing a paravirtualization interface to 829 facilitate accurate and efficient execution of software within a 830 virtual machine. These interfaces require the guest operating 831 system to recognize their presence and make use of them in order 832 to leverage the benefits of communicating with the VirtualBox 833 hypervisor. 834 </para> 835 836 <para> 837 Most modern mainstream guest operating systems, including Windows 838 and Linux, ship with support for one or more paravirtualization 839 interfaces. Hence, there is typically no need to install 840 additional software in the guest to take advantage of this 841 feature. 842 </para> 843 844 <para> 845 Exposing a paravirtualization provider to the guest operating 846 system does not rely on the choice of host platforms. For example, 847 the <emphasis>Hyper-V</emphasis> paravirtualization provider can 848 be used for VMs to run on any host platform supported by 849 VirtualBox and not just Windows. 850 </para> 851 852 <para> 853 VirtualBox provides the following interfaces: 854 </para> 855 856 <itemizedlist> 857 858 <listitem> 859 <para> 860 <emphasis role="bold">Minimal</emphasis>: Announces the 861 presence of a virtualized environment. Additionally, reports 862 the TSC and APIC frequency to the guest operating system. This 863 provider is mandatory for running any Mac OS X guests. 864 </para> 865 </listitem> 866 867 <listitem> 868 <para> 869 <emphasis role="bold">KVM</emphasis>: Presents a Linux KVM 870 hypervisor interface which is recognized by Linux kernels 871 starting with version 2.6.25. VirtualBox's implementation 872 currently supports paravirtualized clocks and SMP spinlocks. 873 This provider is recommended for Linux guests. 874 </para> 875 </listitem> 876 877 <listitem> 878 <para> 879 <emphasis role="bold">Hyper-V</emphasis>: Presents a Microsoft 880 Hyper-V hypervisor interface which is recognized by Windows 7 881 and newer operating systems. VirtualBox's implementation 882 currently supports paravirtualized clocks, APIC frequency 883 reporting, guest debugging, guest crash reporting and relaxed 884 timer checks. This provider is recommended for Windows guests. 885 </para> 886 </listitem> 887 888 </itemizedlist> 889 652 890 </sect1> 653 891 654 <sect1> 655 <title>Details about software virtualization</title> 656 657 <para>Implementing virtualization on x86 CPUs with no hardware 658 virtualization support is an extraordinarily complex task because the CPU 659 architecture was not designed to be virtualized. The problems can usually 660 be solved, but at the cost of reduced performance. Thus, there is a 661 constant clash between virtualization performance and accuracy.</para> 662 663 <para>The x86 instruction set was originally designed in the 1970s and 664 underwent significant changes with the addition of protected mode in the 665 1980s with the 286 CPU architecture and then again with the Intel 386 and 666 its 32-bit architecture. Whereas the 386 did have limited virtualization 667 support for real mode operation (V86 mode, as used by the "DOS Box" of 668 Windows 3.x and OS/2 2.x), no support was provided for virtualizing the 669 entire architecture.</para> 670 671 <para>In theory, software virtualization is not overly complex. In 672 addition to the four privilege levels ("rings") provided by the hardware 673 (of which typically only two are used: ring 0 for kernel mode and ring 3 674 for user mode), one needs to differentiate between "host context" and 675 "guest context".</para> 676 677 <para>In "host context", everything is as if no hypervisor was active. 678 This might be the active mode if another application on your host has been 679 scheduled CPU time; in that case, there is a host ring 3 mode and a host 680 ring 0 mode. The hypervisor is not involved.</para> 681 682 <para>In "guest context", however, a virtual machine is active. So long as 683 the guest code is running in ring 3, this is not much of a problem since a 684 hypervisor can set up the page tables properly and run that code natively 685 on the processor. The problems mostly lie in how to intercept what the 686 guest's kernel does.</para> 687 688 <para>There are several possible solutions to these problems. One approach 689 is full software emulation, usually involving recompilation. That is, all 690 code to be run by the guest is analyzed, transformed into a form which 691 will not allow the guest to either modify or see the true state of the 692 CPU, and only then executed. This process is obviously highly complex and 693 costly in terms of performance. (VirtualBox contains a recompiler based on 694 QEMU which can be used for pure software emulation, but the recompiler is 695 only activated in special situations, described below.)</para> 696 697 <para>Another possible solution is paravirtualization, in which only 698 specially modified guest OSes are allowed to run. This way, most of the 699 hardware access is abstracted and any functions which would normally 700 access the hardware or privileged CPU state are passed on to the 701 hypervisor instead. Paravirtualization can achieve good functionality and 702 performance on standard x86 CPUs, but it can only work if the guest OS can 703 actually be modified, which is obviously not always the case.</para> 704 705 <para>VirtualBox chooses a different approach. When starting a virtual 706 machine, through its ring-0 support kernel driver, VirtualBox has set up 707 the host system so that it can run most of the guest code natively, but it 708 has inserted itself at the "bottom" of the picture. It can then assume 709 control when needed -- if a privileged instruction is executed, the guest 710 traps (in particular because an I/O register was accessed and a device 711 needs to be virtualized) or external interrupts occur. VirtualBox may then 712 handle this and either route a request to a virtual device or possibly 713 delegate handling such things to the guest or host OS. In guest context, 714 VirtualBox can therefore be in one of three states:</para> 715 716 <para><itemizedlist> 717 <listitem> 718 <para>Guest ring 3 code is run unmodified, at full speed, as much as 719 possible. The number of faults will generally be low (unless the 720 guest allows port I/O from ring 3, something we cannot do as we 721 don't want the guest to be able to access real ports). This is also 722 referred to as "raw mode", as the guest ring-3 code runs 723 unmodified.</para> 724 </listitem> 725 726 <listitem> 727 <para>For guest code in ring 0, VirtualBox employs a nasty trick: it 728 actually reconfigures the guest so that its ring-0 code is run in 729 ring 1 instead (which is normally not used in x86 operating 730 systems). As a result, when guest ring-0 code (actually running in 731 ring 1) such as a guest device driver attempts to write to an I/O 732 register or execute a privileged instruction, the VirtualBox 733 hypervisor in "real" ring 0 can take over.</para> 734 </listitem> 735 736 <listitem> 737 <para>The hypervisor (VMM) can be active. Every time a fault occurs, 738 VirtualBox looks at the offending instruction and can relegate it to 739 a virtual device or the host OS or the guest OS or run it in the 740 recompiler.</para> 741 742 <para>In particular, the recompiler is used when guest code disables 892 <sect1 id="swvirt-details"> 893 894 <title>Details About Software Virtualization</title> 895 896 <para> 897 Implementing virtualization on x86 CPUs with no hardware 898 virtualization support is an extraordinarily complex task because 899 the CPU architecture was not designed to be virtualized. The 900 problems can usually be solved, but at the cost of reduced 901 performance. Thus, there is a constant clash between 902 virtualization performance and accuracy. 903 </para> 904 905 <para> 906 The x86 instruction set was originally designed in the 1970s and 907 underwent significant changes with the addition of protected mode 908 in the 1980s with the 286 CPU architecture and then again with the 909 Intel 386 and its 32-bit architecture. Whereas the 386 did have 910 limited virtualization support for real mode operation (V86 mode, 911 as used by the "DOS Box" of Windows 3.x and OS/2 2.x), no support 912 was provided for virtualizing the entire architecture. 913 </para> 914 915 <para> 916 In theory, software virtualization is not overly complex. There 917 are four privilege levels, called <emphasis>rings</emphasis>, 918 provided by the hardware. Typically only two rings are used: ring 919 0 for kernel mode and ring 3 for user mode. Additionally, one 920 needs to differentiate between <emphasis>host context</emphasis> 921 and <emphasis>guest context</emphasis>. 922 </para> 923 924 <para> 925 In host context, everything is as if no hypervisor was active. 926 This might be the active mode if another application on your host 927 has been scheduled CPU time. In that case, there is a host ring 3 928 mode and a host ring 0 mode. The hypervisor is not involved. 929 </para> 930 931 <para> 932 In guest context, however, a virtual machine is active. So long as 933 the guest code is running in ring 3, this is not much of a problem 934 since a hypervisor can set up the page tables properly and run 935 that code natively on the processor. The problems mostly lie in 936 how to intercept what the guest's kernel does. 937 </para> 938 939 <para> 940 There are several possible solutions to these problems. One 941 approach is full software emulation, usually involving 942 recompilation. That is, all code to be run by the guest is 943 analyzed, transformed into a form which will not allow the guest 944 to either modify or see the true state of the CPU, and only then 945 executed. This process is obviously highly complex and costly in 946 terms of performance. VirtualBox contains a recompiler based on 947 QEMU which can be used for pure software emulation, but the 948 recompiler is only activated in special situations, described 949 below. 950 </para> 951 952 <para> 953 Another possible solution is paravirtualization, in which only 954 specially modified guest OSes are allowed to run. This way, most 955 of the hardware access is abstracted and any functions which would 956 normally access the hardware or privileged CPU state are passed on 957 to the hypervisor instead. Paravirtualization can achieve good 958 functionality and performance on standard x86 CPUs, but it can 959 only work if the guest OS can actually be modified, which is 960 obviously not always the case. 961 </para> 962 963 <para> 964 VirtualBox chooses a different approach. When starting a virtual 965 machine, through its ring-0 support kernel driver, VirtualBox has 966 set up the host system so that it can run most of the guest code 967 natively, but it has inserted itself at the "bottom" of the 968 picture. It can then assume control when needed. If a privileged 969 instruction is executed, the guest traps, in particular because an 970 I/O register was accessed and a device needs to be virtualized, or 971 external interrupts occur. VirtualBox may then handle this and 972 either route a request to a virtual device or possibly delegate 973 handling such things to the guest or host OS. In guest context, 974 VirtualBox can therefore be in one of three states: 975 </para> 976 977 <itemizedlist> 978 979 <listitem> 980 <para> 981 Guest ring 3 code is run unmodified, at full speed, as much as 982 possible. The number of faults will generally be low, unless 983 the guest allows port I/O from ring 3. This is something we 984 cannot do as we do not want the guest to be able to access 985 real ports. This is also referred to as <emphasis>raw 986 mode</emphasis>, as the guest ring-3 code runs unmodified. 987 </para> 988 </listitem> 989 990 <listitem> 991 <para> 992 For guest code in ring 0, VirtualBox employs a clever trick. 993 It actually reconfigures the guest so that its ring-0 code is 994 run in ring 1 instead, which is normally not used in x86 995 operating systems). As a result, when guest ring-0 code, 996 actually running n ring 1, such as a guest device driver 997 attempts to write to an I/O register or execute a privileged 998 instruction, the VirtualBox hypervisor in the "real" ring 0 999 can take over. 1000 </para> 1001 </listitem> 1002 1003 <listitem> 1004 <para> 1005 The hypervisor (VMM) can be active. Every time a fault occurs, 1006 VirtualBox looks at the offending instruction and can relegate 1007 it to a virtual device or the host OS or the guest OS or run 1008 it in the recompiler. 1009 </para> 1010 1011 <para> 1012 In particular, the recompiler is used when guest code disables 743 1013 interrupts and VirtualBox cannot figure out when they will be 744 switched back on (in these situations, VirtualBox actually analyzes 745 the guest code using its own disassembler). Also, certain privileged 746 instructions such as LIDT need to be handled specially. Finally, any 747 real-mode or protected-mode code (e.g. BIOS code, a DOS guest, or 748 any operating system startup) is run in the recompiler 749 entirely.</para> 750 </listitem> 751 </itemizedlist></para> 752 753 <para>Unfortunately this only works to a degree. Among others, the 754 following situations require special handling:</para> 755 756 <para><orderedlist> 757 <listitem> 758 <para>Running ring 0 code in ring 1 causes a lot of additional 1014 switched back on. In these situations, VirtualBox actually 1015 analyzes the guest code using its own disassembler. Also, 1016 certain privileged instructions such as LIDT need to be 1017 handled specially. Finally, any real-mode or protected-mode 1018 code, such as BIOS code, a DOS guest, or any operating system 1019 startup, is run in the recompiler entirely. 1020 </para> 1021 </listitem> 1022 1023 </itemizedlist> 1024 1025 <para> 1026 Unfortunately this only works to a degree. Among others, the 1027 following situations require special handling: 1028 </para> 1029 1030 <itemizedlist> 1031 1032 <listitem> 1033 <para> 1034 Running ring 0 code in ring 1 causes a lot of additional 759 1035 instruction faults, as ring 1 is not allowed to execute any 760 privileged instructions (of which guest's ring-0 contains plenty). 761 With each of these faults, the VMM must step in and emulate the code 762 to achieve the desired behavior. While this works, emulating 763 thousands of these faults is very expensive and severely hurts the 764 performance of the virtualized guest.</para> 765 </listitem> 766 767 <listitem> 768 <para>There are certain flaws in the implementation of ring 1 in the 769 x86 architecture that were never fixed. Certain instructions that 770 <emphasis>should</emphasis> trap in ring 1 don't. This affects, for 771 example, the LGDT/SGDT, LIDT/SIDT, or POPF/PUSHF instruction pairs. 772 Whereas the "load" operation is privileged and can therefore be 773 trapped, the "store" instruction always succeed. If the guest is 774 allowed to execute these, it will see the true state of the CPU, not 775 the virtualized state. The CPUID instruction also has the same 776 problem.</para> 777 </listitem> 778 779 <listitem> 780 <para>A hypervisor typically needs to reserve some portion of the 781 guest's address space (both linear address space and selectors) for 782 its own use. This is not entirely transparent to the guest OS and 783 may cause clashes.</para> 784 </listitem> 785 786 <listitem> 787 <para>The SYSENTER instruction (used for system calls) executed by 788 an application running in a guest OS always transitions to ring 0. 789 But that is where the hypervisor runs, not the guest OS. In this 790 case, the hypervisor must trap and emulate the instruction even when 791 it is not desirable.</para> 792 </listitem> 793 794 <listitem> 795 <para>The CPU segment registers contain a "hidden" descriptor cache 796 which is not software-accessible. The hypervisor cannot read, save, 797 or restore this state, but the guest OS may use it.</para> 798 </listitem> 799 800 <listitem> 801 <para>Some resources must (and can) be trapped by the hypervisor, 1036 privileged instructions, of which guest's ring-0 contains 1037 plenty. With each of these faults, the VMM must step in and 1038 emulate the code to achieve the desired behavior. While this 1039 works, emulating thousands of these faults is very expensive 1040 and severely hurts the performance of the virtualized guest. 1041 </para> 1042 </listitem> 1043 1044 <listitem> 1045 <para> 1046 There are certain flaws in the implementation of ring 1 in the 1047 x86 architecture that were never fixed. Certain instructions 1048 that <emphasis>should</emphasis> trap in ring 1 do not. This 1049 affects, for example, the LGDT/SGDT, LIDT/SIDT, or POPF/PUSHF 1050 instruction pairs. Whereas the "load" operation is privileged 1051 and can therefore be trapped, the "store" instruction always 1052 succeed. If the guest is allowed to execute these, it will see 1053 the true state of the CPU, not the virtualized state. The 1054 CPUID instruction also has the same problem. 1055 </para> 1056 </listitem> 1057 1058 <listitem> 1059 <para> 1060 A hypervisor typically needs to reserve some portion of the 1061 guest's address space, both linear address space and 1062 selectors, for its own use. This is not entirely transparent 1063 to the guest OS and may cause clashes. 1064 </para> 1065 </listitem> 1066 1067 <listitem> 1068 <para> 1069 The SYSENTER instruction, used for system calls, executed by 1070 an application running in a guest OS always transitions to 1071 ring 0. But that is where the hypervisor runs, not the guest 1072 OS. In this case, the hypervisor must trap and emulate the 1073 instruction even when it is not desirable. 1074 </para> 1075 </listitem> 1076 1077 <listitem> 1078 <para> 1079 The CPU segment registers contain a "hidden" descriptor cache 1080 which is not software-accessible. The hypervisor cannot read, 1081 save, or restore this state, but the guest OS may use it. 1082 </para> 1083 </listitem> 1084 1085 <listitem> 1086 <para> 1087 Some resources must, and can, be trapped by the hypervisor, 802 1088 but the access is so frequent that this creates a significant 803 performance overhead. An example is the TPR (Task Priority) register 804 in 32-bit mode. Accesses to this register must be trapped by the 805 hypervisor, but certain guest operating systems (notably Windows and 806 Solaris) write this register very often, which adversely affects 807 virtualization performance.</para> 808 </listitem> 809 </orderedlist></para> 810 811 <para>To fix these performance and security issues, VirtualBox contains a 812 Code Scanning and Analysis Manager (CSAM), which disassembles guest code, 813 and the Patch Manager (PATM), which can replace it at runtime.</para> 814 815 <para>Before executing ring 0 code, CSAM scans it recursively to discover 816 problematic instructions. PATM then performs <emphasis>in-situ 817 </emphasis>patching, i.e. it replaces the instruction with a jump to 818 hypervisor memory where an integrated code generator has placed a more 819 suitable implementation. In reality, this is a very complex task as there 820 are lots of odd situations to be discovered and handled correctly. So, 821 with its current complexity, one could argue that PATM is an advanced 822 <emphasis>in-situ</emphasis> recompiler.</para> 823 824 <para>In addition, every time a fault occurs, VirtualBox analyzes the 825 offending code to determine if it is possible to patch it in order to 826 prevent it from causing more faults in the future. This approach works 827 well in practice and dramatically improves software virtualization 828 performance.</para> 1089 performance overhead. An example is the TPR (Task Priority) 1090 register in 32-bit mode. Accesses to this register must be 1091 trapped by the hypervisor. But certain guest operating 1092 systems, notably Windows and Solaris, write this register very 1093 often, which adversely affects virtualization performance. 1094 </para> 1095 </listitem> 1096 1097 </itemizedlist> 1098 1099 <para> 1100 To fix these performance and security issues, VirtualBox contains 1101 a Code Scanning and Analysis Manager (CSAM), which disassembles 1102 guest code, and the Patch Manager (PATM), which can replace it at 1103 runtime. 1104 </para> 1105 1106 <para> 1107 Before executing ring 0 code, CSAM scans it recursively to 1108 discover problematic instructions. PATM then performs 1109 <emphasis>in-situ </emphasis>patching. It replaces the instruction 1110 with a jump to hypervisor memory where an integrated code 1111 generator has placed a more suitable implementation. In reality, 1112 this is a very complex task as there are lots of odd situations to 1113 be discovered and handled correctly. So, with its current 1114 complexity, one could argue that PATM is an advanced 1115 <emphasis>in-situ</emphasis> recompiler. 1116 </para> 1117 1118 <para> 1119 In addition, every time a fault occurs, VirtualBox analyzes the 1120 offending code to determine if it is possible to patch it in order 1121 to prevent it from causing more faults in the future. This 1122 approach works well in practice and dramatically improves software 1123 virtualization performance. 1124 </para> 1125 829 1126 </sect1> 830 1127 831 <sect1> 832 <title>Details about hardware virtualization</title> 833 834 <para>With Intel VT-x, there are two distinct modes of CPU operation: VMX 835 root mode and non-root mode.<itemizedlist> 836 <listitem> 837 <para>In root mode, the CPU operates much like older generations of 838 processors without VT-x support. There are four privilege levels 839 ("rings"), and the same instruction set is supported, with the 840 addition of several virtualization specific instruction. Root mode 841 is what a host operating system without virtualization uses, and it 842 is also used by a hypervisor when virtualization is active.</para> 843 </listitem> 844 845 <listitem> 846 <para>In non-root mode, CPU operation is significantly different. 847 There are still four privilege rings and the same instruction set, 848 but a new structure called VMCS (Virtual Machine Control Structure) 849 now controls the CPU operation and determines how certain 850 instructions behave. Non-root mode is where guest systems 851 run.</para> 852 </listitem> 853 </itemizedlist></para> 854 855 <para>Switching from root mode to non-root mode is called "VM entry", the 856 switch back is "VM exit". The VMCS includes a guest and host state area 857 which is saved/restored at VM entry and exit. Most importantly, the VMCS 858 controls which guest operations will cause VM exits.</para> 859 860 <para>The VMCS provides fairly fine-grained control over what the guests 861 can and can't do. For example, a hypervisor can allow a guest to write 862 certain bits in shadowed control registers, but not others. This enables 863 efficient virtualization in cases where guests can be allowed to write 864 control bits without disrupting the hypervisor, while preventing them from 865 altering control bits over which the hypervisor needs to retain full 866 control. The VMCS also provides control over interrupt delivery and 867 exceptions.</para> 868 869 <para>Whenever an instruction or event causes a VM exit, the VMCS contains 870 information about the exit reason, often with accompanying detail. For 871 example, if a write to the CR0 register causes an exit, the offending 872 instruction is recorded, along with the fact that a write access to a 873 control register caused the exit, and information about source and 874 destination register. Thus the hypervisor can efficiently handle the 875 condition without needing advanced techniques such as CSAM and PATM 876 described above.</para> 877 878 <para>VT-x inherently avoids several of the problems which software 879 virtualization faces. The guest has its own completely separate address 880 space not shared with the hypervisor, which eliminates potential clashes. 881 Additionally, guest OS kernel code runs at privilege ring 0 in VMX 882 non-root mode, obviating the problems by running ring 0 code at less 883 privileged levels. For example the SYSENTER instruction can transition to 884 ring 0 without causing problems. Naturally, even at ring 0 in VMX non-root 885 mode, any I/O access by guest code still causes a VM exit, allowing for 886 device emulation.</para> 887 888 <para>The biggest difference between VT-x and AMD-V is that AMD-V provides 889 a more complete virtualization environment. VT-x requires the VMX non-root 890 code to run with paging enabled, which precludes hardware virtualization 891 of real-mode code and non-paged protected-mode software. This typically 892 only includes firmware and OS loaders, but nevertheless complicates VT-x 893 hypervisor implementation. AMD-V does not have this restriction.</para> 894 895 <para>Of course hardware virtualization is not perfect. Compared to 896 software virtualization, the overhead of VM exits is relatively high. This 897 causes problems for devices whose emulation requires high number of traps. 898 One example is the VGA device in 16-color modes, where not only every I/O 899 port access but also every access to the framebuffer memory must be 900 trapped.</para> 1128 <sect1 id="hwvirt-details"> 1129 1130 <title>Details About Hardware Virtualization</title> 1131 1132 <para> 1133 With Intel VT-x, there are two distinct modes of CPU operation: 1134 VMX root mode and non-root mode. 1135 </para> 1136 1137 <itemizedlist> 1138 1139 <listitem> 1140 <para> 1141 In root mode, the CPU operates much like older generations of 1142 processors without VT-x support. There are four privilege 1143 levels, called rings, and the same instruction set is 1144 supported, with the addition of several virtualization 1145 specific instruction. Root mode is what a host operating 1146 system without virtualization uses, and it is also used by a 1147 hypervisor when virtualization is active. 1148 </para> 1149 </listitem> 1150 1151 <listitem> 1152 <para> 1153 In non-root mode, CPU operation is significantly different. 1154 There are still four privilege rings and the same instruction 1155 set, but a new structure called VMCS (Virtual Machine Control 1156 Structure) now controls the CPU operation and determines how 1157 certain instructions behave. Non-root mode is where guest 1158 systems run. 1159 </para> 1160 </listitem> 1161 1162 </itemizedlist> 1163 1164 <para> 1165 Switching from root mode to non-root mode is called "VM entry", 1166 the switch back is "VM exit". The VMCS includes a guest and host 1167 state area which is saved/restored at VM entry and exit. Most 1168 importantly, the VMCS controls which guest operations will cause 1169 VM exits. 1170 </para> 1171 1172 <para> 1173 The VMCS provides fairly fine-grained control over what the guests 1174 can and cannot do. For example, a hypervisor can allow a guest to 1175 write certain bits in shadowed control registers, but not others. 1176 This enables efficient virtualization in cases where guests can be 1177 allowed to write control bits without disrupting the hypervisor, 1178 while preventing them from altering control bits over which the 1179 hypervisor needs to retain full control. The VMCS also provides 1180 control over interrupt delivery and exceptions. 1181 </para> 1182 1183 <para> 1184 Whenever an instruction or event causes a VM exit, the VMCS 1185 contains information about the exit reason, often with 1186 accompanying detail. For example, if a write to the CR0 register 1187 causes an exit, the offending instruction is recorded, along with 1188 the fact that a write access to a control register caused the 1189 exit, and information about source and destination register. Thus 1190 the hypervisor can efficiently handle the condition without 1191 needing advanced techniques such as CSAM and PATM described above. 1192 </para> 1193 1194 <para> 1195 VT-x inherently avoids several of the problems which software 1196 virtualization faces. The guest has its own completely separate 1197 address space not shared with the hypervisor, which eliminates 1198 potential clashes. Additionally, guest OS kernel code runs at 1199 privilege ring 0 in VMX non-root mode, obviating the problems by 1200 running ring 0 code at less privileged levels. For example the 1201 SYSENTER instruction can transition to ring 0 without causing 1202 problems. Naturally, even at ring 0 in VMX non-root mode, any I/O 1203 access by guest code still causes a VM exit, allowing for device 1204 emulation. 1205 </para> 1206 1207 <para> 1208 The biggest difference between VT-x and AMD-V is that AMD-V 1209 provides a more complete virtualization environment. VT-x requires 1210 the VMX non-root code to run with paging enabled, which precludes 1211 hardware virtualization of real-mode code and non-paged 1212 protected-mode software. This typically only includes firmware and 1213 OS loaders, but nevertheless complicates VT-x hypervisor 1214 implementation. AMD-V does not have this restriction. 1215 </para> 1216 1217 <para> 1218 Of course hardware virtualization is not perfect. Compared to 1219 software virtualization, the overhead of VM exits is relatively 1220 high. This causes problems for devices whose emulation requires 1221 high number of traps. One example is the VGA device in 16-color 1222 modes, where not only every I/O port access but also every access 1223 to the framebuffer memory must be trapped. 1224 </para> 1225 901 1226 </sect1> 902 1227 903 1228 <sect1 id="nestedpaging"> 904 <title>Nested paging and VPIDs</title> 905 906 <para>In addition to "plain" hardware virtualization, your processor may 907 also support additional sophisticated techniques:<footnote> 908 <para>VirtualBox 2.0 added support for AMD's nested paging; support 909 for Intel's EPT and VPIDs was added with version 2.1.</para> 910 </footnote><itemizedlist> 911 <listitem> 912 <para>A newer feature called <emphasis role="bold">"nested 913 paging"</emphasis> implements some memory management in hardware, 914 which can greatly accelerate hardware virtualization since these 915 tasks no longer need to be performed by the virtualization 916 software.</para> 917 918 <para>With nested paging, the hardware provides another level of 919 indirection when translating linear to physical addresses. Page 920 tables function as before, but linear addresses are now translated 921 to "guest physical" addresses first and not physical addresses 922 directly. A new set of paging registers now exists under the 923 traditional paging mechanism and translates from guest physical 924 addresses to host physical addresses, which are used to access 925 memory.</para> 926 927 <para>Nested paging eliminates the overhead caused by VM exits and 928 page table accesses. In essence, with nested page tables the guest 929 can handle paging without intervention from the hypervisor. Nested 930 paging thus significantly improves virtualization 931 performance.</para> 932 933 <para>On AMD processors, nested paging has been available starting 934 with the Barcelona (K10) architecture -- they call it now "rapid 1229 1230 <title>Nested Paging and VPIDs</title> 1231 1232 <para> 1233 In addition to normal hardware virtualization, your processor may 1234 also support the following additional sophisticated techniques: 1235 1236 <footnote> 1237 1238 <para> 1239 VirtualBox 2.0 added support for AMD's nested paging; support 1240 for Intel's EPT and VPIDs was added with version 2.1. 1241 </para> 1242 1243 </footnote> 1244 </para> 1245 1246 <itemizedlist> 1247 1248 <listitem> 1249 <para> 1250 A newer feature called <emphasis>nested paging</emphasis> 1251 implements some memory management in hardware, which can 1252 greatly accelerate hardware virtualization since these tasks 1253 no longer need to be performed by the virtualization software. 1254 </para> 1255 1256 <para> 1257 With nested paging, the hardware provides another level of 1258 indirection when translating linear to physical addresses. 1259 Page tables function as before, but linear addresses are now 1260 translated to "guest physical" addresses first and not 1261 physical addresses directly. A new set of paging registers now 1262 exists under the traditional paging mechanism and translates 1263 from guest physical addresses to host physical addresses, 1264 which are used to access memory. 1265 </para> 1266 1267 <para> 1268 Nested paging eliminates the overhead caused by VM exits and 1269 page table accesses. In essence, with nested page tables the 1270 guest can handle paging without intervention from the 1271 hypervisor. Nested paging thus significantly improves 1272 virtualization performance. 1273 </para> 1274 1275 <para> 1276 On AMD processors, nested paging has been available starting 1277 with the Barcelona (K10) architecture. They now call it "rapid 935 1278 virtualization indexing" (RVI). Intel added support for nested 936 paging, which they call "extended page tables" (EPT), with their 937 Core i7 (Nehalem) processors.</para> 938 939 <para>If nested paging is enabled, the VirtualBox hypervisor can 940 also use <emphasis role="bold">large pages</emphasis> to reduce TLB 941 usage and overhead. This can yield a performance improvement of up 942 to 5%. To enable this feature for a VM, you need to use the 943 <computeroutput>VBoxManage modifyvm 1279 paging, which they call extended page tables (EPT), with their 1280 Core i7 (Nehalem) processors. 1281 </para> 1282 1283 <para> 1284 If nested paging is enabled, the VirtualBox hypervisor can 1285 also use <emphasis role="bold">large pages</emphasis> to 1286 reduce TLB usage and overhead. This can yield a performance 1287 improvement of up to 5%. To enable this feature for a VM, you 1288 need to use the <computeroutput>VBoxManage modifyvm 944 1289 </computeroutput><computeroutput>--largepages</computeroutput> 945 command; see <xref linkend="vboxmanage-modifyvm" />.</para> 946 </listitem> 947 948 <listitem> 949 <para>On Intel CPUs, another hardware feature called <emphasis 950 role="bold">"Virtual Processor Identifiers" (VPIDs)</emphasis> can 951 greatly accelerate context switching by reducing the need for 952 expensive flushing of the processor's Translation Lookaside Buffers 953 (TLBs).</para> 954 955 <para>To enable these features for a VM, you need to use the 956 <computeroutput>VBoxManage modifyvm --vtxvpid</computeroutput> and 957 <computeroutput>--largepages</computeroutput> commands; see <xref 958 linkend="vboxmanage-modifyvm" />.</para> 959 </listitem> 960 </itemizedlist></para> 1290 command. See <xref linkend="vboxmanage-modifyvm" />. 1291 </para> 1292 </listitem> 1293 1294 <listitem> 1295 <para> 1296 On Intel CPUs, another hardware feature called Virtual 1297 Processor Identifiers" (VPIDs) can greatly accelerate context 1298 switching by reducing the need for expensive flushing of the 1299 processor's Translation Lookaside Buffers (TLBs). 1300 </para> 1301 1302 <para> 1303 To enable these features for a VM, you need to use the 1304 <computeroutput>VBoxManage modifyvm --vtxvpid</computeroutput> 1305 and <computeroutput>--largepages</computeroutput> commands. 1306 See <xref 1307 linkend="vboxmanage-modifyvm" />. 1308 </para> 1309 </listitem> 1310 1311 </itemizedlist> 1312 961 1313 </sect1> 1314 962 1315 </chapter> -
trunk/doc/manual/en_US/user_ThirdParty.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 7 4 8 <appendix id="ThirdParty"> 5 <title>Third- party materials and licenses</title>9 <title>Third-Party Materials and Licenses</title> 6 10 7 11 <para>VirtualBox incorporates materials from several Open Source software … … 18 22 tarballs for particular releases and as a live SVN repository.</para> 19 23 20 <sect1 >21 <title> Materials</title>24 <sect1 id="third-party-materials"> 25 <title>Third-Party Materials</title> 22 26 23 27 <itemizedlist> … … 362 366 </sect1> 363 367 364 <sect1 >365 <title> Licenses</title>368 <sect1 id="third-party-licenses"> 369 <title>Third-Party Licenses</title> 366 370 367 371 <sect2 id="licGPL"> … … 1608 1612 1609 1613 <sect2 id="licZLIB"> 1610 <title>zlib license</title>1614 <title>zlib License</title> 1611 1615 1612 1616 <para>This software is provided 'as-is', without any express or implied … … 1634 1638 1635 1639 <sect2 id="licSSL"> 1636 <title>OpenSSL license</title>1640 <title>OpenSSL License</title> 1637 1641 1638 1642 <para>This package is an SSL implementation written by Eric Young … … 1697 1701 1698 1702 <sect2 id="licSlirp"> 1699 <title>Slirp license</title>1703 <title>Slirp License</title> 1700 1704 1701 1705 <para>Copyright (c) 1995,1996 Danny Gasparovski. All rights reserved.</para> … … 1731 1735 1732 1736 <sect2 id="licLZF"> 1733 <title>liblzf license</title>1737 <title>liblzf License</title> 1734 1738 1735 1739 <para>Redistribution and use in source and binary forms, with or without … … 1762 1766 </sect2> 1763 1767 1764 <sect2 >1765 <title>libpng license</title>1768 <sect2 id="liclibping"> 1769 <title>libpng License</title> 1766 1770 1767 1771 <para>The PNG Reference Library is supplied "AS IS". The Contributing … … 1795 1799 1796 1800 <sect2 id="licLWIP"> 1797 <title>lwIP license</title>1801 <title>lwIP License</title> 1798 1802 1799 1803 <para>Redistribution and use in source and binary forms, with or without … … 1827 1831 1828 1832 <sect2 id="licLibXML"> 1829 <title>libxml license</title>1833 <title>libxml License</title> 1830 1834 1831 1835 <para>Except where otherwise noted in the source code (e.g. the files … … 1862 1866 1863 1867 <sect2 id="licLibXSLT"> 1864 <title>libxslt licenses</title>1868 <title>libxslt Licenses</title> 1865 1869 1866 1870 <para>Licence for libxslt except libexslt:</para> … … 2343 2347 2344 2348 <sect2 id="licChromium"> 2345 <title>Chromium licenses</title>2349 <title>Chromium Licenses</title> 2346 2350 2347 2351 <sect3> 2348 <title>Main license</title>2352 <title>Main License</title> 2349 2353 2350 2354 <para>Copyright (c) 2002, Stanford University All rights … … 2357 2361 <para>Redistribution and use in source and binary forms, with or 2358 2362 without modification, are permitted provided that the following 2359 conditions are met:<itemizedlist> 2363 conditions are met:</para> 2364 <itemizedlist> 2360 2365 <listitem> 2361 2366 <para>Redistributions of source code must retain the above … … 2377 2382 permission.</para> 2378 2383 </listitem> 2379 </itemizedlist> </para>2384 </itemizedlist> 2380 2385 2381 2386 <para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND … … 2394 2399 2395 2400 <sect3> 2396 <title>COPYRIGHT.LLNL file</title>2401 <title>COPYRIGHT.LLNL File</title> 2397 2402 2398 2403 <para>This Chromium distribution contains information and code which … … 2462 2467 2463 2468 <sect3> 2464 <title>COPYRIGHT.REDHAT file</title>2469 <title>COPYRIGHT.REDHAT File</title> 2465 2470 2466 2471 <para>This Chromium distribution contains information and code which … … 2494 2499 2495 2500 <sect2 id="licLibCurl"> 2496 <title>curl license</title>2501 <title>curl License</title> 2497 2502 2498 2503 <para>COPYRIGHT AND PERMISSION NOTICE</para> … … 2523 2528 2524 2529 <sect2 id="licLibgd"> 2525 <title>libgd license</title>2530 <title>libgd License</title> 2526 2531 2527 2532 <para>Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, … … 2579 2584 2580 2585 <sect2 id="licBsdIntel"> 2581 <title>BSD license from Intel</title>2586 <title>BSD License from Intel</title> 2582 2587 2583 2588 <para>All rights reserved.</para> … … 2681 2686 2682 2687 <sect2 id="licJPEGSIMD"> 2683 <title>x86 SIMD extension for IJG JPEG library license</title>2688 <title>x86 SIMD Extension for IJG JPEG Library License</title> 2684 2689 2685 2690 <para>Copyright 2009 Pierre Ossman <[email protected]> for Cendio AB</para> … … 2709 2714 2710 2715 <sect2 id="licFreeBsd"> 2711 <title>FreeBSD license</title>2716 <title>FreeBSD License</title> 2712 2717 2713 2718 <para>The compilation of software known as FreeBSD is distributed under the … … 2749 2754 2750 2755 <sect2 id="licNetBsd"> 2751 <title>NetBSD license</title>2756 <title>NetBSD License</title> 2752 2757 2753 2758 <para>Copyright (c) 1992, 1993 The Regents of the University of California. … … 2805 2810 2806 2811 <sect2 id="licPcre"> 2807 <title>PCRE license</title>2812 <title>PCRE License</title> 2808 2813 2809 2814 <para> … … 2884 2889 2885 2890 <sect2 id="licLibffi"> 2886 <title>libffi license</title>2891 <title>libffi License</title> 2887 2892 2888 2893 <para> … … 2912 2917 2913 2918 <sect2 id="licFltk"> 2914 <title>FLTK license</title>2919 <title>FLTK License</title> 2915 2920 2916 2921 <para> … … 2981 2986 2982 2987 <sect2 id="licExpat"> 2983 <title>Expat license</title>2988 <title>Expat License</title> 2984 2989 <para> 2985 2990 Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd … … 3014 3019 3015 3020 <sect2 id="licFontconfig"> 3016 <title>Fontconfig license</title>3021 <title>Fontconfig License</title> 3017 3022 <para> 3018 3023 Copyright (C) 2001, 2003 Keith Packard … … 3041 3046 3042 3047 <sect2 id="licFreetype"> 3043 <title>Freetype license</title>3048 <title>Freetype License</title> 3044 3049 <para> 3045 3050 2006-Jan-27 … … 3112 3117 <sect3> 3113 3118 <title>Legal Terms</title> 3114 <sect4>3115 < title>0. Definitions</title>3119 3120 <para>0. Definitions</para> 3116 3121 <para> 3117 3122 Throughout this license, the terms `package', `FreeType Project', … … 3141 3146 specified below. 3142 3147 </para> 3143 </sect4>3144 <sect4>3145 < title>1. No Warranty</title>3148 3149 3150 <para>1. No Warranty</para> 3146 3151 <para> 3147 3152 THE FREETYPE PROJECT IS PROVIDED `AS IS' WITHOUT WARRANTY OF ANY … … 3152 3157 USE, OF THE FREETYPE PROJECT. 3153 3158 </para> 3154 </sect4>3155 <sect4>3156 < title>2. Redistribution</title>3159 3160 3161 <para>2. Redistribution</para> 3157 3162 <para> 3158 3163 This license grants a worldwide, royalty-free, perpetual and … … 3191 3196 to us. 3192 3197 </para> 3193 </sect4>3194 <sect4>3195 < title>3. Advertising</title>3198 3199 3200 <para>3. Advertising</para> 3196 3201 <para> 3197 3202 Neither the FreeType authors and contributors nor you shall use … … 3214 3219 of this license. 3215 3220 </para> 3216 </sect4>3217 <sect4>3218 < title>4. Contacts</title>3221 3222 3223 <para>4. Contacts</para> 3219 3224 <para> 3220 3225 There are two mailing lists related to FreeType: … … 3248 3253 http://www.freetype.org 3249 3254 </para> 3250 </sect4>3255 3251 3256 </sect3> 3252 3257 </sect2> -
trunk/doc/manual/en_US/user_Troubleshooting.xml
r69682 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="Troubleshooting"> 8 5 9 <title>Troubleshooting</title> 6 10 7 <para>This chapter provides answers to commonly asked questions. In order to 8 improve your user experience with VirtualBox, it is recommended to read this 9 section to learn more about common pitfalls and get recommendations on how 10 to use the product.</para> 11 12 <sect1> 13 <title>Procedures and tools</title> 14 15 <sect2> 16 <title>Categorizing and isolating problems</title> 17 18 <para>More often than not, a virtualized guest behaves like a physical 19 system. Any problems that a physical machine would encounter, a virtual 20 machine will encounter as well. If, for example, Internet connectivity 21 is lost due to external issues, virtual machines will be affected just 22 as much as physical ones.</para> 23 24 <para>If a true VirtualBox problem is encountered, it helps to 25 categorize and isolate the problem first. Here are some of the questions 26 that should be answered before reporting a problem:<orderedlist> 27 <listitem> 28 <para>Is the problem specific to a certain guest OS? Specific 11 <para> 12 This chapter provides answers to commonly asked questions. In order 13 to improve your user experience with VirtualBox, it is recommended 14 to read this section to learn more about common pitfalls and get 15 recommendations on how to use the product. 16 </para> 17 18 <sect1 id="ts_procs-tools"> 19 20 <title>Procedures and Tools</title> 21 22 <sect2 id="ts_categorize-isolate"> 23 24 <title>Categorizing and Isolating Problems</title> 25 26 <para> 27 More often than not, a virtualized guest behaves like a physical 28 system. Any problems that a physical machine would encounter, a 29 virtual machine will encounter as well. If, for example, 30 Internet connectivity is lost due to external issues, virtual 31 machines will be affected just as much as physical ones. 32 </para> 33 34 <para> 35 If a true VirtualBox problem is encountered, it helps to 36 categorize and isolate the problem first. Here are some of the 37 questions that should be answered before reporting a problem: 38 </para> 39 40 <itemizedlist> 41 42 <listitem> 43 <para> 44 Is the problem specific to a certain guest OS? Or a specific 29 45 release of a guest OS? Especially with Linux guest related 30 problems, the issue may be specific to a certain distribution and 31 version of Linux.</para> 32 </listitem> 33 34 <listitem> 35 <para>Is the problem specific to a certain host OS? Problems are 36 usually not host OS specific (because most of the VirtualBox code 37 base is shared across all supported platforms), but especially in 38 the areas of networking and USB support, there are significant 39 differences between host platforms. Some GUI related issues are 40 also host specific.</para> 41 </listitem> 42 43 <listitem> 44 <para>Is the problem specific to certain host hardware? This 45 category of issues is typically related to the host CPU. Because 46 of significant differences between VT-x and AMD-V, problems may be 47 specific to one or the other technology. The exact CPU model may 48 also make a difference (even for software virtualization) because 49 different CPUs support different features, which may affect 50 certain aspects of guest CPU operation.</para> 51 </listitem> 52 53 <listitem> 54 <para>Is the problem specific to a certain virtualization mode? 55 Some problems may only occur in software virtualization mode, 56 others may be specific to hardware virtualization.</para> 57 </listitem> 58 59 <listitem> 60 <para>Is the problem specific to guest SMP? That is, is it related 61 to the number of virtual CPUs (VCPUs) in the guest? Using more 62 than one CPU usually significantly affects the internal operation 63 of a guest OS.</para> 64 </listitem> 65 66 <listitem> 67 <para>Is the problem specific to the Guest Additions? In some 68 cases, this is a given (e.g., a shared folders problem), in other 69 cases it may be less obvious (for example, display problems). And 70 if the problem is Guest Additions specific, is it also specific to 71 a certain version of the Additions?</para> 72 </listitem> 73 74 <listitem> 75 <para>Is the problem specific to a certain environment? Some 76 problems are related to a particular environment external to the 77 VM; this usually involves network setup. Certain configurations of 78 external servers such as DHCP or PXE may expose problems which do 79 not occur with other, similar servers.</para> 80 </listitem> 81 82 <listitem> 83 <para>Is the problem a regression? Knowing that an issue is a 46 problems, the issue may be specific to a certain 47 distribution and version of Linux. 48 </para> 49 </listitem> 50 51 <listitem> 52 <para> 53 Is the problem specific to a certain host OS? Problems are 54 usually not host OS specific, because most of the VirtualBox 55 code base is shared across all supported platforms, but 56 especially in the areas of networking and USB support, there 57 are significant differences between host platforms. Some GUI 58 related issues are also host specific. 59 </para> 60 </listitem> 61 62 <listitem> 63 <para> 64 Is the problem specific to certain host hardware? This 65 category of issues is typically related to the host CPU. 66 Because of significant differences between VT-x and AMD-V, 67 problems may be specific to one or the other technology. The 68 exact CPU model may also make a difference, even for 69 software virtualization, because different CPUs support 70 different features, which may affect certain aspects of 71 guest CPU operation. 72 </para> 73 </listitem> 74 75 <listitem> 76 <para> 77 Is the problem specific to a certain virtualization mode? 78 Some problems may only occur in software virtualization 79 mode, others may be specific to hardware virtualization. 80 </para> 81 </listitem> 82 83 <listitem> 84 <para> 85 Is the problem specific to guest SMP? That is, is it related 86 to the number of virtual CPUs (VCPUs) in the guest? Using 87 more than one CPU usually significantly affects the internal 88 operation of a guest OS. 89 </para> 90 </listitem> 91 92 <listitem> 93 <para> 94 Is the problem specific to the Guest Additions? In some 95 cases, this is obvious, such as a shared folders problem. In 96 other cases such as display problems, it may be less 97 obvious. If the problem is Guest Additions specific, is it 98 also specific to a certain version of the Guest Additions? 99 </para> 100 </listitem> 101 102 <listitem> 103 <para> 104 Is the problem specific to a certain environment? Some 105 problems are related to a particular environment external to 106 the VM; this usually involves network setup. Certain 107 configurations of external servers such as DHCP or PXE may 108 expose problems which do not occur with other, similar 109 servers. 110 </para> 111 </listitem> 112 113 <listitem> 114 <para> 115 Is the problem a regression? Knowing that an issue is a 84 116 regression usually makes it significantly easier to find the 85 solution. In this case, it is crucial to know which version is 86 affected and which is not.</para> 87 </listitem> 88 </orderedlist></para> 117 solution. In this case, it is crucial to know which version 118 is affected and which is not. 119 </para> 120 </listitem> 121 122 </itemizedlist> 123 89 124 </sect2> 90 125 91 126 <sect2 id="collect-debug-info"> 92 <title>Collecting debugging information</title> 93 94 <para>For problem determination, it is often important to collect 95 debugging information which can be analyzed by VirtualBox support. This 96 section contains information about what kind of information can be 97 obtained.</para> 98 99 <para>Every time VirtualBox starts up a VM, a so-called <emphasis 100 role="bold">"release log file"</emphasis> is created containing lots of 101 information about the VM configuration and runtime events. The log file 102 is called <computeroutput><literal>VBox.log</literal></computeroutput> 103 and resides in the VM log file folder. Typically this will be a 104 directory like this:<screen>$HOME/VirtualBox VMs/{machinename}/Logs</screen></para> 105 106 <para>When starting a VM, the configuration file of the last run will be 107 renamed to <computeroutput>.1</computeroutput>, up to 108 <computeroutput>.3</computeroutput>. Sometimes when there is a problem, 109 it is useful to have a look at the logs. Also when requesting support 110 for VirtualBox, supplying the corresponding log file is 111 mandatory.</para> 112 113 <para>For convenience, for each virtual machine, the VirtualBox main 114 window can show these logs in a window. To access it, select a virtual 115 machine from the list on the left and select "Show logs..." from the 116 "Machine" window.</para> 117 118 <para>The release log file (VBox.log) contains a wealth of diagnostic 119 information, such as Host OS type and version, VirtualBox version and 120 build (32-bit or 64-bit), a complete dump of the guest's configuration 121 (CFGM), detailed information about the host CPU type and supported 122 features, whether hardware virtualization is enabled, information about 123 VT-x/AMD-V setup, state transitions (creating, running, paused, 124 stopping, etc.), guest BIOS messages, Guest Additions messages, 125 device-specific log entries and, at the end of execution, final guest 126 state and condensed statistics.</para> 127 128 <para>In case of crashes, it is very important to collect <emphasis 129 role="bold">crash dumps</emphasis>. This is true for both host and guest 130 crashes. For information about enabling core dumps on Linux, Solaris, 131 and OS X systems, refer to the core dump article on the VirtualBox 132 website.<footnote> 133 <para><ulink 134 url="http://www.virtualbox.org/wiki/Core_dump">http://www.virtualbox.org/wiki/Core_dump</ulink>.</para> 135 </footnote></para> 136 137 <para>You can also use <computeroutput>VBoxManage 138 debugvm</computeroutput> to create a dump of a complete virtual machine; 139 see <xref linkend="vboxmanage-debugvm" />.</para> 140 141 <para>For network related problems, it is often helpful to capture a 142 trace of network traffic. If the traffic is routed through an adapter on 143 the host, it is possible to use Wireshark or a similar tool to capture 144 the traffic there. However, this often also includes a lot of traffic 145 unrelated to the VM.</para> 146 147 <para>VirtualBox provides an ability to capture network traffic only on 148 a specific VM's network adapter. Refer to the network tracing article on 149 the VirtualBox website<footnote> 150 <para><ulink 151 url="http://www.virtualbox.org/wiki/Network_tips">http://www.virtualbox.org/wiki/Network_tips</ulink>.</para> 152 </footnote> for information on enabling this capture. The trace files 153 created by VirtualBox are in <computeroutput>.pcap</computeroutput> 154 format and can be easily analyzed with Wireshark.</para> 127 128 <title>Collecting Debugging Information</title> 129 130 <para> 131 For problem determination, it is often important to collect 132 debugging information which can be analyzed by VirtualBox 133 support. This section contains information about what kind of 134 information can be obtained. 135 </para> 136 137 <para> 138 Every time VirtualBox starts up a VM, a so-called 139 <emphasis>release log file</emphasis> is created, containing 140 lots of information about the VM configuration and runtime 141 events. The log file is called 142 <computeroutput><literal>VBox.log</literal></computeroutput> and 143 resides in the VM log file folder. Typically this will be a 144 directory as follows: 145 146 <screen>$HOME/VirtualBox VMs/{machinename}/Logs</screen> 147 </para> 148 149 <para> 150 When starting a VM, the configuration file of the last run will 151 be renamed to <computeroutput>.1</computeroutput>, up to 152 <computeroutput>.3</computeroutput>. Sometimes when there is a 153 problem, it is useful to have a look at the logs. Also when 154 requesting support for VirtualBox, supplying the corresponding 155 log file is mandatory. 156 </para> 157 158 <para> 159 For convenience, for each virtual machine, the VirtualBox main 160 window can show these logs in a window. To access it, select a 161 virtual machine from the list on the left and select 162 <emphasis role="bold">Show logs...</emphasis> from the Machine 163 menu. 164 </para> 165 166 <para> 167 The release log file (VBox.log) contains a wealth of diagnostic 168 information, such as Host OS type and version, VirtualBox 169 version and build (32-bit or 64-bit), a complete dump of the 170 guest's configuration (CFGM), detailed information about the 171 host CPU type and supported features, whether hardware 172 virtualization is enabled, information about VT-x/AMD-V setup, 173 state transitions (such as creating, running, paused, stopping), 174 guest BIOS messages, Guest Additions messages, device-specific 175 log entries and, at the end of execution, final guest state and 176 condensed statistics. 177 </para> 178 179 <para> 180 In case of crashes, it is very important to collect 181 <emphasis>crash dumps</emphasis>. This is true for both host and 182 guest crashes. For information about enabling core dumps on 183 Linux, Solaris, and OS X systems, refer to the following core 184 dump article on the VirtualBox website: 185 </para> 186 187 <para> 188 <ulink 189 url="http://www.virtualbox.org/wiki/Core_dump">http://www.virtualbox.org/wiki/Core_dump</ulink>. 190 </para> 191 192 <para> 193 You can also use <computeroutput>VBoxManage 194 debugvm</computeroutput> to create a dump of a complete virtual 195 machine. See <xref linkend="vboxmanage-debugvm" />. 196 </para> 197 198 <para> 199 For network related problems, it is often helpful to capture a 200 trace of network traffic. If the traffic is routed through an 201 adapter on the host, it is possible to use Wireshark or a 202 similar tool to capture the traffic there. However, this often 203 also includes a lot of traffic unrelated to the VM. 204 </para> 205 206 <para> 207 VirtualBox provides an ability to capture network traffic only 208 on a specific VM's network adapter. Refer to the following 209 network tracing article on the VirtualBox website for 210 information on enabling this capture: 211 </para> 212 213 <para> 214 <ulink 215 url="http://www.virtualbox.org/wiki/Network_tips">http://www.virtualbox.org/wiki/Network_tips</ulink>. 216 </para> 217 218 <para> 219 The trace files created by VirtualBox are in 220 <computeroutput>.pcap</computeroutput> format and can be easily 221 analyzed with Wireshark. 222 </para> 223 155 224 </sect2> 156 225 157 226 <sect2 id="ts_debugger"> 158 <title>The built-in VM debugger</title> 159 160 <para>VirtualBox includes a built-in VM debugger, which advanced users 161 may find useful. This debugger allows for examining and, to some extent, 162 controlling the VM state.<warning> 163 <para>Use the VM debugger at your own risk. There is no support for 227 228 <title>The Built-In VM Debugger</title> 229 230 <para> 231 VirtualBox includes a built-in VM debugger, which advanced users 232 may find useful. This debugger allows for examining and, to some 233 extent, controlling the VM state. 234 </para> 235 236 <warning> 237 <para> 238 Use the VM debugger at your own risk. There is no support for 164 239 it, and the following documentation is only made available for 165 240 advanced users with a very high level of familiarity with the 166 x86/AMD64 machine instruction set, as well as detailed knowledge of 167 the PC architecture. A degree of familiarity with the internals of 168 the guest OS in question may also be very helpful.</para> 169 </warning></para> 170 171 <para>The VM debugger is available in all regular production versions of 172 VirtualBox, but it is disabled by default because the average user will 173 have little use for it. There are two ways to access the 174 debugger:<itemizedlist> 175 <listitem> 176 <para>A debugger console window displayed alongside the VM</para> 177 </listitem> 178 179 <listitem> 180 <para>Via the <computeroutput>telnet</computeroutput> protocol at 181 port 5000</para> 182 </listitem> 183 </itemizedlist></para> 184 185 <para>The debugger can be enabled in three ways:<itemizedlist> 186 <listitem> 187 <para>Start the VM directly using <computeroutput>VirtualBox 241 x86/AMD64 machine instruction set, as well as detailed 242 knowledge of the PC architecture. A degree of familiarity with 243 the internals of the guest OS in question may also be very 244 helpful. 245 </para> 246 </warning> 247 248 <para> 249 The VM debugger is available in all regular production versions 250 of VirtualBox, but it is disabled by default because the average 251 user will have little use for it. There are two ways to access 252 the debugger: 253 </para> 254 255 <itemizedlist> 256 257 <listitem> 258 <para> 259 Using a debugger console window displayed alongside the VM 260 </para> 261 </listitem> 262 263 <listitem> 264 <para> 265 Using the <computeroutput>telnet</computeroutput> protocol 266 on port 5000 267 </para> 268 </listitem> 269 270 </itemizedlist> 271 272 <para> 273 The debugger can be enabled in the following ways: 274 </para> 275 276 <itemizedlist> 277 278 <listitem> 279 <para> 280 Start the VM directly using <computeroutput>VirtualBox 188 281 --startvm</computeroutput>, with an additional 189 282 <computeroutput>--dbg</computeroutput>, 190 283 <computeroutput>--debug</computeroutput>, or 191 <computeroutput>--debug-command-line</computeroutput> argument. 192 See the VirtualBox usage help for details.</para> 193 </listitem> 194 195 <listitem> 196 <para>Set the 284 <computeroutput>--debug-command-line</computeroutput> 285 argument. See the VirtualBox usage help for details. 286 </para> 287 </listitem> 288 289 <listitem> 290 <para> 291 Set the 197 292 <computeroutput>VBOX_GUI_DBG_ENABLED</computeroutput> or 198 293 <computeroutput>VBOX_GUI_DBG_AUTO_SHOW</computeroutput> 199 environment variable to <computeroutput>true</computeroutput> 200 before launching the VirtualBox process. Setting these variables 201 (only their presence is checked) is effective even when the first 202 VirtualBox process is the VM selector window. VMs subsequently 203 launched from the selector will have the debugger enabled.</para> 204 </listitem> 205 206 <listitem> 207 <para>Set the <computeroutput>GUI/Dbg/Enabled</computeroutput> 208 extra data item to <computeroutput>true</computeroutput> before 209 launching the VM. This can be set globally or on a per VM 210 basis.</para> 211 </listitem> 212 </itemizedlist></para> 213 214 <para>A new 'Debug' menu entry will be added to the VirtualBox 215 application. This menu allows the user to open the debugger 216 console.</para> 217 218 <para>The VM debugger command syntax is loosely modeled on Microsoft and 219 IBM debuggers used on DOS, OS/2 and Windows. Users familiar with symdeb, 220 CodeView, or the OS/2 kernel debugger will find the VirtualBox VM 221 debugger familiar.</para> 222 223 <para>The most important command is 224 <computeroutput>help</computeroutput>. This will print brief usage help 225 for all debugger commands. The set of commands supported by the VM 226 debugger changes frequently and the 227 <computeroutput>help</computeroutput> command is always 228 up-to-date.</para> 229 230 <para>A brief summary of frequently used commands follows:<itemizedlist> 231 <listitem> 232 <para><computeroutput>stop</computeroutput> -- stops the VM 233 execution and enables single stepping</para> 234 </listitem> 235 236 <listitem> 237 <para><computeroutput>g</computeroutput> -- continue VM 238 execution</para> 239 </listitem> 240 241 <listitem> 242 <para><computeroutput>t</computeroutput> -- single step an 243 instruction</para> 244 </listitem> 245 246 <listitem> 247 <para><computeroutput>rg/rh/r</computeroutput> -- print the 248 guest/hypervisor/current registers</para> 249 </listitem> 250 251 <listitem> 252 <para><computeroutput>kg/kh/k</computeroutput> -- print the 253 guest/hypervisor/current call stack</para> 254 </listitem> 255 256 <listitem> 257 <para><computeroutput>da/db/dw/dd/dq</computeroutput> -- print 258 memory contents as ASCII/bytes/words/dwords/qwords</para> 259 </listitem> 260 261 <listitem> 262 <para><computeroutput>u</computeroutput> -- unassemble 263 memory</para> 264 </listitem> 265 266 <listitem> 267 <para><computeroutput>dg</computeroutput> -- print the guest's 268 GDT</para> 269 </listitem> 270 271 <listitem> 272 <para><computeroutput>di</computeroutput> -- print the guest's 273 IDT</para> 274 </listitem> 275 276 <listitem> 277 <para><computeroutput>dl</computeroutput> -- print the guest's 278 LDT</para> 279 </listitem> 280 281 <listitem> 282 <para><computeroutput>dt</computeroutput> -- print the guest's 283 TSS</para> 284 </listitem> 285 286 <listitem> 287 <para><computeroutput>dp*</computeroutput> -- print the guest's 288 page table structures</para> 289 </listitem> 290 291 <listitem> 292 <para><computeroutput>bp/br</computeroutput> -- set a 293 normal/recompiler breakpoint</para> 294 </listitem> 295 296 <listitem> 297 <para><computeroutput>bl</computeroutput> -- list 298 breakpoints</para> 299 </listitem> 300 301 <listitem> 302 <para><computeroutput>bc</computeroutput> -- clear a 303 breakpoint</para> 304 </listitem> 305 306 <listitem> 307 <para><computeroutput>writecore</computeroutput> -- writes a VM 308 core file to disk, refer <xref linkend="ts_guest-core-format" /></para> 309 </listitem> 310 </itemizedlist></para> 311 312 <para>See the built-in <computeroutput>help</computeroutput> for other 313 available commands.</para> 314 315 <para>The VM debugger supports symbolic debugging, although symbols for 316 guest code are often not available. For Solaris guests, the 317 <computeroutput>detect</computeroutput> command automatically determines 318 the guest OS version and locates kernel symbols in guest's memory. 319 Symbolic debugging is then available. For Linux guests, the 320 <computeroutput>detect</computeroutput> commands also determines the 321 guest OS version, but there are no symbols in the guest's memory. Kernel 322 symbols are available in the file 323 <computeroutput>/proc/kallsyms</computeroutput> on Linux guests. This 324 file must be copied to the host, for example using 325 <computeroutput>scp</computeroutput>. The 326 <computeroutput>loadmap</computeroutput> debugger command can be used to 327 make the symbol information available to the VM debugger. Note that the 328 <computeroutput>kallsyms</computeroutput> file contains the symbols for 329 the currently loaded modules; if the guest's configuration changes, the 330 symbols will change as well and must be updated.</para> 331 332 <para>For all guests, a simple way to verify that the correct symbols 333 are loaded is the <computeroutput>k</computeroutput> command. The guest 334 is normally idling and it should be clear from the symbolic information 335 that the guest operating system's idle loop is being executed.</para> 336 337 <para>Another group of debugger commands is the set of 338 <computeroutput>info</computeroutput> commands. Running 339 <computeroutput>info help</computeroutput> provides complete usage 340 information. The information commands provide ad-hoc data pertinent to 341 various emulated devices and aspects of the VMM. There is no general 342 guideline for using the <computeroutput>info</computeroutput> commands, 343 the right command to use depends entirely on the problem being 344 investigated. Some of the info commands are:<itemizedlist> 345 <listitem> 346 <para><computeroutput>cfgm</computeroutput> -- print a branch of 347 the configuration tree</para> 348 </listitem> 349 350 <listitem> 351 <para><computeroutput>cpuid</computeroutput> -- display the guest 352 CPUID leaves</para> 353 </listitem> 354 355 <listitem> 356 <para><computeroutput>ioport</computeroutput> -- print registered 357 I/O port ranges</para> 358 </listitem> 359 360 <listitem> 361 <para><computeroutput>mmio</computeroutput> -- print registered 362 MMIO ranges</para> 363 </listitem> 364 365 <listitem> 366 <para><computeroutput>mode</computeroutput> -- print the current 367 paging mode</para> 368 </listitem> 369 370 <listitem> 371 <para><computeroutput>pit</computeroutput> -- print the i8254 PIT 372 state</para> 373 </listitem> 374 375 <listitem> 376 <para><computeroutput>pic</computeroutput> -- print the i8259A PIC 377 state</para> 378 </listitem> 379 380 <listitem> 381 <para><computeroutput>ohci/ehci/xhci</computeroutput> -- print a subset 382 of the OHCI/EHCI/xHCI USB controller state</para> 383 </listitem> 384 385 <listitem> 386 <para><computeroutput>pcnet0</computeroutput> -- print the PCnet 387 state</para> 388 </listitem> 389 390 <listitem> 391 <para><computeroutput>vgatext</computeroutput> -- print the 392 contents of the VGA framebuffer formatted as standard text 393 mode</para> 394 </listitem> 395 396 <listitem> 397 <para><computeroutput>timers</computeroutput> -- print all VM 398 timers</para> 399 </listitem> 400 </itemizedlist></para> 401 402 <para>The output of the <computeroutput>info</computeroutput> commands 403 generally requires in-depth knowledge of the emulated device and/or 404 VirtualBox VMM internals. However, when used properly, the information 405 provided can be invaluable.</para> 294 environment variable to 295 <computeroutput>true</computeroutput> before launching the 296 VirtualBox process. Setting these variables, only their 297 presence is checked, is effective even when the first 298 VirtualBox process is the VM selector window. VMs 299 subsequently launched from the selector will have the 300 debugger enabled. 301 </para> 302 </listitem> 303 304 <listitem> 305 <para> 306 Set the <computeroutput>GUI/Dbg/Enabled</computeroutput> 307 extra data item to <computeroutput>true</computeroutput> 308 before launching the VM. This can be set globally or on a 309 per VM basis. 310 </para> 311 </listitem> 312 313 </itemizedlist> 314 315 <para> 316 A new Debug menu entry is added to the VirtualBox application. 317 This menu allows the user to open the debugger console. 318 </para> 319 320 <para> 321 The VM debugger command syntax is loosely modeled on Microsoft 322 and IBM debuggers used on DOS, OS/2, and Windows. Users familiar 323 with symdeb, CodeView, or the OS/2 kernel debugger will find the 324 VirtualBox VM debugger familiar. 325 </para> 326 327 <para> 328 The most important command is 329 <computeroutput>help</computeroutput>. This will print brief 330 usage help for all debugger commands. The set of commands 331 supported by the VM debugger changes frequently and the 332 <computeroutput>help</computeroutput> command is always 333 up-to-date. 334 </para> 335 336 <para> 337 A brief summary of frequently used commands is as follows: 338 </para> 339 340 <itemizedlist> 341 342 <listitem> 343 <para> 344 <computeroutput>stop</computeroutput>: Stops the VM 345 execution and enables single stepping 346 </para> 347 </listitem> 348 349 <listitem> 350 <para> 351 <computeroutput>g</computeroutput>: Continue VM execution 352 </para> 353 </listitem> 354 355 <listitem> 356 <para> 357 <computeroutput>t</computeroutput>: Single step an 358 instruction 359 </para> 360 </listitem> 361 362 <listitem> 363 <para> 364 <computeroutput>rg/rh/r</computeroutput>: Print the 365 guest/hypervisor/current registers 366 </para> 367 </listitem> 368 369 <listitem> 370 <para> 371 <computeroutput>kg/kh/k</computeroutput>: Print the 372 guest/hypervisor/current call stack 373 </para> 374 </listitem> 375 376 <listitem> 377 <para> 378 <computeroutput>da/db/dw/dd/dq</computeroutput>: Print 379 memory contents as ASCII/bytes/words/dwords/qwords 380 </para> 381 </listitem> 382 383 <listitem> 384 <para> 385 <computeroutput>u</computeroutput>: Unassemble memory 386 </para> 387 </listitem> 388 389 <listitem> 390 <para> 391 <computeroutput>dg</computeroutput>: Print the guest's GDT 392 </para> 393 </listitem> 394 395 <listitem> 396 <para> 397 <computeroutput>di</computeroutput>: Print the guest's IDT 398 </para> 399 </listitem> 400 401 <listitem> 402 <para> 403 <computeroutput>dl</computeroutput>: Print the guest's LDT 404 </para> 405 </listitem> 406 407 <listitem> 408 <para> 409 <computeroutput>dt</computeroutput>: Print the guest's TSS 410 </para> 411 </listitem> 412 413 <listitem> 414 <para> 415 <computeroutput>dp*</computeroutput>: Print the guest's page 416 table structures 417 </para> 418 </listitem> 419 420 <listitem> 421 <para> 422 <computeroutput>bp/br</computeroutput>: Set a 423 normal/recompiler breakpoint 424 </para> 425 </listitem> 426 427 <listitem> 428 <para> 429 <computeroutput>bl</computeroutput>: List breakpoints 430 </para> 431 </listitem> 432 433 <listitem> 434 <para> 435 <computeroutput>bc</computeroutput>: Clear a breakpoint 436 </para> 437 </listitem> 438 439 <listitem> 440 <para> 441 <computeroutput>writecore</computeroutput>: Write a VM core 442 file to disk. See <xref linkend="ts_guest-core-format" /> 443 </para> 444 </listitem> 445 446 </itemizedlist> 447 448 <para> 449 See the built-in <computeroutput>help</computeroutput> for other 450 available commands. 451 </para> 452 453 <para> 454 The VM debugger supports symbolic debugging, although symbols 455 for guest code are often not available. For Solaris guests, the 456 <computeroutput>detect</computeroutput> command automatically 457 determines the guest OS version and locates kernel symbols in 458 guest's memory. Symbolic debugging is then available. For Linux 459 guests, the <computeroutput>detect</computeroutput> commands 460 also determines the guest OS version, but there are no symbols 461 in the guest's memory. Kernel symbols are available in the file 462 <computeroutput>/proc/kallsyms</computeroutput> on Linux guests. 463 This file must be copied to the host, for example using 464 <computeroutput>scp</computeroutput>. The 465 <computeroutput>loadmap</computeroutput> debugger command can be 466 used to make the symbol information available to the VM 467 debugger. Note that the 468 <computeroutput>kallsyms</computeroutput> file contains the 469 symbols for the currently loaded modules. If the guest's 470 configuration changes, the symbols will change as well and must 471 be updated. 472 </para> 473 474 <para> 475 For all guests, a simple way to verify that the correct symbols 476 are loaded is the <computeroutput>k</computeroutput> command. 477 The guest is normally idling and it should be clear from the 478 symbolic information that the guest operating system's idle loop 479 is being executed. 480 </para> 481 482 <para> 483 Another group of debugger commands is the set of 484 <computeroutput>info</computeroutput> commands. Running 485 <computeroutput>info help</computeroutput> provides complete 486 usage information. The information commands provide ad-hoc data 487 pertinent to various emulated devices and aspects of the VMM. 488 There is no general guideline for using the 489 <computeroutput>info</computeroutput> commands, the right 490 command to use depends entirely on the problem being 491 investigated. Some of the <computeroutput>info</computeroutput> 492 commands are as follows: 493 </para> 494 495 <itemizedlist> 496 497 <listitem> 498 <para> 499 <computeroutput>cfgm</computeroutput>: Print a branch of the 500 configuration tree 501 </para> 502 </listitem> 503 504 <listitem> 505 <para> 506 <computeroutput>cpuid</computeroutput>: Display the guest 507 CPUID leaves 508 </para> 509 </listitem> 510 511 <listitem> 512 <para> 513 <computeroutput>ioport</computeroutput>: Print registered 514 I/O port ranges 515 </para> 516 </listitem> 517 518 <listitem> 519 <para> 520 <computeroutput>mmio</computeroutput>: Print registered MMIO 521 ranges 522 </para> 523 </listitem> 524 525 <listitem> 526 <para> 527 <computeroutput>mode</computeroutput> -- print the current 528 paging mode 529 </para> 530 </listitem> 531 532 <listitem> 533 <para> 534 <computeroutput>pit</computeroutput>: Print the i8254 PIT 535 state 536 </para> 537 </listitem> 538 539 <listitem> 540 <para> 541 <computeroutput>pic</computeroutput>: Print the i8259A PIC 542 state 543 </para> 544 </listitem> 545 546 <listitem> 547 <para> 548 <computeroutput>ohci/ehci/xhci</computeroutput>: Print a 549 subset of the OHCI/EHCI/xHCI USB controller state 550 </para> 551 </listitem> 552 553 <listitem> 554 <para> 555 <computeroutput>pcnet0</computeroutput>: Print the PCnet 556 state 557 </para> 558 </listitem> 559 560 <listitem> 561 <para> 562 <computeroutput>vgatext</computeroutput>: Print the contents 563 of the VGA framebuffer formatted as standard text mode 564 </para> 565 </listitem> 566 567 <listitem> 568 <para> 569 <computeroutput>timers</computeroutput>: Print all VM timers 570 </para> 571 </listitem> 572 573 </itemizedlist> 574 575 <para> 576 The output of the <computeroutput>info</computeroutput> commands 577 generally requires in-depth knowledge of the emulated device 578 and/or VirtualBox VMM internals. However, when used properly, 579 the information provided can be invaluable. 580 </para> 581 406 582 </sect2> 407 583 408 584 <sect2 id="ts_guest-core-format"> 409 <title>VM core format</title> 410 411 <para>VirtualBox uses the 64-bit ELF format for its VM core files 412 created by <computeroutput>VBoxManage debugvm</computeroutput>; see 413 <xref linkend="vboxmanage-debugvm" />. The VM core file contain the 414 memory and CPU dumps of the VM and can be useful for debugging your 415 guest OS. The 64-bit ELF object format specification can be obtained 416 here: <literal><ulink 417 url="http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf">http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf</ulink></literal>.</para> 418 419 <para>The overall layout of the VM core format is as follows:</para> 420 421 <para><screen>[ ELF 64 Header] 585 586 <title>VM Core Format</title> 587 588 <para> 589 VirtualBox uses the 64-bit ELF format for its VM core files 590 created by <computeroutput>VBoxManage debugvm</computeroutput>, 591 see <xref linkend="vboxmanage-debugvm" />. The VM core file 592 contain the memory and CPU dumps of the VM and can be useful for 593 debugging your guest OS. The 64-bit ELF object format 594 specification can be obtained at: 595 </para> 596 597 <para> 598 <ulink 599 url="http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf">http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf</ulink>. 600 </para> 601 602 <para> 603 The overall layout of the VM core format is as follows: 604 </para> 605 606 <para> 607 <screen>[ ELF 64 Header] 422 608 [ Program Header, type PT_NOTE ] 423 609 → offset to COREDESCRIPTOR … … 435 621 [ DBGFCORECPU - vCPU 1 dump ] 436 622 [ Additional Notes + Data ] - currently unused 437 [ Memory dump ]</screen></para> 438 439 <para>The memory descriptors contain physical addresses relative to the 440 guest and not virtual addresses. Regions of memory such as MMIO regions 441 are not included in the core file.</para> 442 443 <para>The relevant data structures and definitions can be found in the 444 VirtualBox sources under the following header files: 445 <computeroutput>include/VBox/dbgfcorefmt.h</computeroutput>, 446 <computeroutput>include/iprt/x86.h</computeroutput> and 447 <computeroutput>src/VBox/Runtime/include/internal/ldrELFCommon.h</computeroutput>.</para> 448 449 <para>The VM core file can be inspected using 450 <computeroutput>elfdump</computeroutput> and GNU 451 <computeroutput>readelf</computeroutput> or other similar 452 utilities.</para> 453 </sect2> 623 [ Memory dump ]</screen> 624 </para> 625 626 <para> 627 The memory descriptors contain physical addresses relative to 628 the guest and not virtual addresses. Regions of memory such as 629 MMIO regions are not included in the core file. 630 </para> 631 632 <para> 633 The relevant data structures and definitions can be found in the 634 VirtualBox sources under the following header files: 635 <computeroutput>include/VBox/dbgfcorefmt.h</computeroutput>, 636 <computeroutput>include/iprt/x86.h</computeroutput> and 637 <computeroutput>src/VBox/Runtime/include/internal/ldrELFCommon.h</computeroutput>. 638 </para> 639 640 <para> 641 The VM core file can be inspected using 642 <computeroutput>elfdump</computeroutput> and GNU 643 <computeroutput>readelf</computeroutput> or other similar 644 utilities. 645 </para> 646 647 </sect2> 648 454 649 </sect1> 455 650 456 <sect1> 457 <title>General</title> 651 <sect1 id="ts_general"> 652 653 <title>General Troubleshooting</title> 458 654 459 655 <sect2 id="ts_config-periodic-flush"> 460 <title>Guest shows IDE/SATA errors for file-based images on slow host 461 file system</title> 462 463 <para>Occasionally, some host file systems provide very poor writing 464 performance and as a consequence cause the guest to time out IDE/SATA 465 commands. This is normal behavior and should normally cause no real 466 problems, as the guest should repeat commands that have timed out. 467 However, some guests (e.g. some Linux versions) have severe problems if a 468 write to an image file takes longer than about 15 seconds. Some file 469 systems however require more than a minute to complete a single write, 470 if the host cache contains a large amount of data that needs to be 471 written.</para> 472 473 <para>The symptom for this problem is that the guest can no longer 474 access its files during large write or copying operations, usually 475 leading to an immediate hang of the guest.</para> 476 477 <para>In order to work around this problem (the true fix is to use a 478 faster file system that doesn't exhibit such unacceptable write 479 performance), it is possible to flush the image file after a certain 480 amount of data has been written. This interval is normally infinite, but 481 can be configured individually for each disk of a VM.</para> 482 483 <para>For IDE disks use the following command:</para> 484 485 <screen>VBoxManage setextradata "VM name" 656 657 <title>Guest Shows IDE/SATA Errors for File-Based Images on Slow Host File 658 System</title> 659 660 <para> 661 Occasionally, some host file systems provide very poor writing 662 performance and as a consequence cause the guest to time out 663 IDE/SATA commands. This is normal behavior and should normally 664 cause no real problems, as the guest should repeat commands that 665 have timed out. However, guests such as some Linux versions have 666 severe problems if a write to an image file takes longer than 667 about 15 seconds. Some file systems however require more than a 668 minute to complete a single write, if the host cache contains a 669 large amount of data that needs to be written. 670 </para> 671 672 <para> 673 The symptom for this problem is that the guest can no longer 674 access its files during large write or copying operations, 675 usually leading to an immediate hang of the guest. 676 </para> 677 678 <para> 679 In order to work around this problem, the true fix is to use a 680 faster file system that does not exhibit such unacceptable write 681 performance, it is possible to flush the image file after a 682 certain amount of data has been written. This interval is 683 normally infinite, but can be configured individually for each 684 disk of a VM. 685 </para> 686 687 <para> 688 For IDE disks use the following command: 689 </para> 690 691 <screen>VBoxManage setextradata "VM name" 486 692 "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b]</screen> 487 693 488 <para>For SATA disks use the following command:</para> 489 490 <screen>VBoxManage setextradata "VM name" 694 <para> 695 For SATA disks use the following command: 696 </para> 697 698 <screen>VBoxManage setextradata "VM name" 491 699 "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b]</screen> 492 700 493 <para>The value [x] that selects the disk for IDE is 0 for the master 494 device on the first channel, 1 for the slave device on the first 495 channel, 2 for the master device on the second channel or 3 for the 496 slave device on the second channel. For SATA use values between 0 and 497 29. Only disks support this configuration option; it must not be set for 498 CD/DVD drives.</para> 499 500 <para>The unit of the interval [b] is the number of bytes written since 501 the last flush. The value for it must be selected so that the occasional 502 long write delays do not occur. Since the proper flush interval depends 503 on the performance of the host and the host filesystem, finding the 504 optimal value that makes the problem disappear requires some 505 experimentation. Values between 1000000 and 10000000 (1 to 10 megabytes) 506 are a good starting point. Decreasing the interval both decreases the 507 probability of the problem and the write performance of the guest. 508 Setting the value unnecessarily low will cost performance without 509 providing any benefits. An interval of 1 will cause a flush for each 510 write operation and should solve the problem in any case, but has a 511 severe write performance penalty.</para> 512 513 <para>Providing a value of 0 for [b] is treated as an infinite flush 514 interval, effectively disabling this workaround. Removing the extra data 515 key by specifying no value for [b] has the same effect.</para> 516 </sect2> 517 518 <sect2> 519 <title>Responding to guest IDE/SATA flush requests</title> 520 521 <para>If desired, the virtual disk images can be flushed when the guest 522 issues the IDE FLUSH CACHE command. Normally these requests are ignored 523 for improved performance. The parameters below are only accepted for 524 disk drives. They must not be set for DVD drives.</para> 525 526 <para>To enable flushing for IDE disks, issue the following 527 command:</para> 528 529 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0</screen> 530 531 <para>The value [x] that selects the disk is 0 for the master device on 532 the first channel, 1 for the slave device on the first channel, 2 for 533 the master device on the second channel or 3 for the master device on 534 the second channel.</para> 535 536 <para>To enable flushing for SATA disks, issue the following 537 command:</para> 538 539 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0</screen> 540 541 <para>The value [x] that selects the disk can be a value between 0 and 542 29.</para> 543 544 <para>Note that this doesn't affect the flushes performed according to 545 the configuration described in <xref linkend="ts_config-periodic-flush" 546 xrefstyle="template: %n" />. Restoring the default of ignoring flush 547 commands is possible by setting the value to 1 or by removing the 548 key.</para> 701 <para> 702 The value [x] that selects the disk for IDE is 0 for the master 703 device on the first channel, 1 for the slave device on the first 704 channel, 2 for the master device on the second channel or 3 for 705 the slave device on the second channel. For SATA use values 706 between 0 and 29. Only disks support this configuration option; 707 it must not be set for CD/DVD drives. 708 </para> 709 710 <para> 711 The unit of the interval [b] is the number of bytes written 712 since the last flush. The value for it must be selected so that 713 the occasional long write delays do not occur. Since the proper 714 flush interval depends on the performance of the host and the 715 host filesystem, finding the optimal value that makes the 716 problem disappear requires some experimentation. Values between 717 1000000 and 10000000 (1 to 10 megabytes) are a good starting 718 point. Decreasing the interval both decreases the probability of 719 the problem and the write performance of the guest. Setting the 720 value unnecessarily low will cost performance without providing 721 any benefits. An interval of 1 will cause a flush for each write 722 operation and should solve the problem in any case, but has a 723 severe write performance penalty. 724 </para> 725 726 <para> 727 Providing a value of 0 for [b] is treated as an infinite flush 728 interval, effectively disabling this workaround. Removing the 729 extra data key by specifying no value for [b] has the same 730 effect. 731 </para> 732 733 </sect2> 734 735 <sect2 id="ts_ide-sata-flush"> 736 737 <title>Responding to Guest IDE/SATA Flush Requests</title> 738 739 <para> 740 If desired, the virtual disk images can be flushed when the 741 guest issues the IDE FLUSH CACHE command. Normally these 742 requests are ignored for improved performance. The parameters 743 below are only accepted for disk drives. They must not be set 744 for DVD drives. 745 </para> 746 747 <para> 748 To enable flushing for IDE disks, issue the following command: 749 </para> 750 751 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0</screen> 752 753 <para> 754 The value [x] that selects the disk is 0 for the master device 755 on the first channel, 1 for the slave device on the first 756 channel, 2 for the master device on the second channel or 3 for 757 the master device on the second channel. 758 </para> 759 760 <para> 761 To enable flushing for SATA disks, issue the following command: 762 </para> 763 764 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0</screen> 765 766 <para> 767 The value [x] that selects the disk can be a value between 0 and 768 29. 769 </para> 770 771 <para> 772 Note that this does not affect the flushes performed according 773 to the configuration described in 774 <xref linkend="ts_config-periodic-flush" 775 xrefstyle="template: %n" />. 776 Restoring the default of ignoring flush commands is possible by 777 setting the value to 1 or by removing the key. 778 </para> 779 549 780 </sect2> 550 781 551 782 <sect2 id="ts_host-freq-boost"> 552 <title>Performance variation with frequency boosting</title> 553 554 <para> 555 Many newer multi-core processors support some form of frequency 556 boosting, which means that if only one core is utilized, it can run 557 faster (possibly 50% faster or even more) than the rated CPU frequency. 558 This causes measured performance to vary somewhat as a function of the 559 momentary overall system load. The exact behavior depends strongly 560 on the specific processor model. 561 </para> 562 563 <para> 564 As a consequence, benchmarking on systems which utilize frequency 565 boosting may produce unstable and non-repeatable results, especially 566 if benchmark runs are short (on the order of seconds). To obtain stable 567 results, benchmarks must be run over longer periods of time and with a 568 constant system load apart from the VM being tested. 569 </para> 783 784 <title>Performance Variation with Frequency Boosting</title> 785 786 <para> 787 Many newer multi-core processors support some form of frequency 788 boosting, which means that if only one core is utilized, it can 789 run possibly 50% faster or even more than the rated CPU 790 frequency. This causes measured performance to vary somewhat as 791 a function of the momentary overall system load. The exact 792 behavior depends strongly on the specific processor model. 793 </para> 794 795 <para> 796 As a consequence, benchmarking on systems which utilize 797 frequency boosting may produce unstable and non-repeatable 798 results. This is especially true if benchmark runs are short, of 799 the order of seconds. To obtain stable results, benchmarks must 800 be run over longer periods of time and with a constant system 801 load apart from the VM being tested. 802 </para> 803 570 804 </sect2> 571 805 572 806 <sect2 id="ts_host-freq-scaling"> 573 <title>Frequency scaling effect on CPU usage</title> 574 575 <para> 576 On some hardware platforms and operating systems, CPU frequency 577 scaling may cause CPU usage reporting to be highly misleading. This 578 happens in situations when the host CPU load is significant but not 579 heavy, such as 15-30% of the maximum. 580 </para> 581 582 <para> 583 Most operating systems determine CPU usage in terms of time spent, 584 measuring for example how many nanoseconds the systems or a process 585 was active within one second. However, in order to save energy, modern 586 systems can significantly scale down CPU speed when the system is not 587 fully loaded. Naturally, when the CPU is running at (for example) one 588 half of its maximum speed, the same number of instructions will take 589 roughly twice as long to execute compared to running at full speed. 590 </para> 591 592 <para> 593 Depending on the specific hardware and host OS, this effect can very 594 significantly skew the CPU usage reported by the OS; the reported CPU 595 usage can be several times higher than what it would have been had the 596 CPU been running at full speed. The effect can be observed both on 597 the host OS and in a guest OS. 598 </para> 807 808 <title>Frequency Scaling Effect on CPU Usage</title> 809 810 <para> 811 On some hardware platforms and operating systems, CPU frequency 812 scaling may cause CPU usage reporting to be highly misleading. 813 This happens in situations when the host CPU load is significant 814 but not heavy, such as 15-30% of the maximum. 815 </para> 816 817 <para> 818 Most operating systems determine CPU usage in terms of time 819 spent, measuring for example how many nanoseconds the systems or 820 a process was active within one second. However, in order to 821 save energy, modern systems can significantly scale down CPU 822 speed when the system is not fully loaded. Naturally, when the 823 CPU is running at for example one half of its maximum speed, the 824 same number of instructions will take roughly twice as long to 825 execute compared to running at full speed. 826 </para> 827 828 <para> 829 Depending on the specific hardware and host OS, this effect can 830 very significantly skew the CPU usage reported by the OS; the 831 reported CPU usage can be several times higher than what it 832 would have been had the CPU been running at full speed. The 833 effect can be observed both on the host OS and in a guest OS. 834 </para> 835 599 836 </sect2> 600 837 601 838 <sect2 id="ts_win-cpu-usage-rept"> 602 <title>Inaccurate Windows CPU usage reporting</title> 603 604 <para> 605 CPU usage reporting tools which come with Windows (Task Manager, Resource 606 Monitor) do not take the time spent processing hardware interrupts into 607 account. If the interrupt load is heavy (thousands of interrupts per second), 608 CPU usage may be significantly underreported. 609 </para> 610 611 <para> 612 This problem affects Windows as both host and guest OS. Sysinternals tools 613 (e.g. Process Explorer) do not suffer from this problem. 614 </para> 839 840 <title>Inaccurate Windows CPU Usage Reporting</title> 841 842 <para> 843 CPU usage reporting tools which come with Windows, such as Task 844 Manager or Resource Monitor, do not take the time spent 845 processing hardware interrupts into account. If the interrupt 846 load is heavy, with thousands of interrupts per second, CPU 847 usage may be significantly underreported. 848 </para> 849 850 <para> 851 This problem affects Windows as both host and guest OS. 852 Sysinternals tools, such as Process Explorer, do not suffer from 853 this problem. 854 </para> 855 615 856 </sect2> 616 857 617 858 <sect2 id="ts_host-powermgmt"> 618 <title>Poor performance caused by host power management</title> 619 620 <para>On some hardware platforms and operating systems, virtualization 621 performance is negatively affected by host CPU power management. The 622 symptoms may be choppy audio in the guest or erratic guest clock 623 behavior.</para> 624 625 <para>Some of the problems may be caused by firmware and/or host 626 operating system bugs. Therefore, updating the firmware and applying 627 operating systems fixes is recommended.</para> 628 629 <para>For optimal virtualization performance, the C1E power state 630 support in the system's BIOS should be disabled, if such a setting is 631 available (not all systems support the C1E power state). On Intel 632 systems the <computeroutput>Intel C State</computeroutput> setting 633 should be disabled. Disabling other power management settings 634 may also improve performance. However, a balance between performance 635 and power consumption must always be considered.</para> 859 860 <title>Poor Performance Caused by Host Power Management</title> 861 862 <para> 863 On some hardware platforms and operating systems, virtualization 864 performance is negatively affected by host CPU power management. 865 The symptoms may be choppy audio in the guest or erratic guest 866 clock behavior. 867 </para> 868 869 <para> 870 Some of the problems may be caused by firmware and/or host 871 operating system bugs. Therefore, updating the firmware and 872 applying operating systems fixes is recommended. 873 </para> 874 875 <para> 876 For optimal virtualization performance, the C1E power state 877 support in the system's BIOS should be disabled, if such a 878 setting is available. Not all systems support the C1E power 879 state. On Intel systems, the <computeroutput>Intel C 880 State</computeroutput> setting should be disabled. Disabling 881 other power management settings may also improve performance. 882 However, a balance between performance and power consumption 883 must always be considered. 884 </para> 885 636 886 </sect2> 637 887 638 888 <sect2 id="ts_gui-2d-grayed-out"> 639 <title>GUI: 2D Video Acceleration option is grayed out</title> 640 641 <para>To use 2D Video Acceleration within VirtualBox, your host's video 642 card should support certain OpenGL extensions. On startup, VirtualBox 643 checks for those extensions, and, if the test fails, this option is 644 silently grayed out.</para> 645 646 <para>To find out why it has failed, you can manually execute the 647 following command:</para> 648 649 <screen>VBoxTestOGL --log "log_file_name" --test 2D</screen> 650 651 <para>It will list the required OpenGL extensions one by one and will 652 show you which one failed the test. This usually means that you are 653 running an outdated or misconfigured OpenGL driver on your host. It can 654 also mean that your video chip is lacking required functionality.</para> 655 </sect2> 889 890 <title>GUI: 2D Video Acceleration Option is Grayed Out</title> 891 892 <para> 893 To use 2D Video Acceleration within VirtualBox, your host's 894 video card should support certain OpenGL extensions. On startup, 895 VirtualBox checks for those extensions, and, if the test fails, 896 this option is silently grayed out. 897 </para> 898 899 <para> 900 To find out why it has failed, you can manually execute the 901 following command: 902 </para> 903 904 <screen>VBoxTestOGL --log "log_file_name" --test 2D</screen> 905 906 <para> 907 It will list the required OpenGL extensions one by one and will 908 show you which one failed the test. This usually means that you 909 are running an outdated or misconfigured OpenGL driver on your 910 host. It can also mean that your video chip is lacking required 911 functionality. 912 </para> 913 914 </sect2> 915 656 916 </sect1> 657 917 658 918 <sect1 id="ts_win-guests"> 659 <title>Windows guests</title> 660 661 <sect2> 662 <title>No USB 3.0 support in Windows 7 guests</title> 663 664 <para>If a Windows 7 or Windows Server 2008 R2 guest is configured for USB 3.0 (xHCI) support, 665 the guest OS will not have any USB support at all. This happens because Windows 7 predates 666 USB 3.0 and therefore does not ship with any xHCI drivers; Microsoft also does not offer any 667 vendor-provided xHCI drivers via Windows Update. 668 </para> 669 670 <para>To solve this problem, it is necessary to download and install the Intel xHCI driver 671 in the guest. Intel offers the driver as the USB 3.0 eXtensible Host Controller (xHCI) driver 672 for Intel 7 Series/C216 chipsets. 673 </para> 674 675 <para>Note that the driver only supports Windows 7 and Windows Server 2008 R2. The driver 676 package includes support for both 32-bit and 64-bit OS variants. 677 </para> 678 </sect2> 679 680 <sect2> 681 <title>Windows bluescreens after changing VM configuration</title> 682 683 <para>Changing certain virtual machine settings can cause Windows guests 684 to fail during start up with a bluescreen. This may happen if you change 685 VM settings after installing Windows, or if you copy a disk image with 686 an already installed Windows to a newly created VM which has settings 687 that differ from the original machine.</para> 688 689 <para>This applies in particular to the following settings:<itemizedlist> 690 <listitem> 691 <para>The ACPI and I/O APIC settings should never be changed after 692 installing Windows. Depending on the presence of these hardware 693 features, the Windows installation program chooses special kernel 694 and device driver versions and will fail to startup should these 695 hardware features be removed. (Enabling them for a Windows VM 696 which was installed without them does not cause any harm. However, 697 Windows will not use these features in this case.)</para> 698 </listitem> 699 700 <listitem> 701 <para>Changing the storage controller hardware will cause bootup 702 failures as well. This might also apply to you if you copy a disk 703 image from an older version of VirtualBox to a virtual machine 704 created with a newer VirtualBox version; the default subtype of 705 IDE controller hardware was changed from PIIX3 to PIIX4 with 706 VirtualBox 2.2. Make sure these settings are identical.</para> 707 </listitem> 708 </itemizedlist></para> 709 </sect2> 710 711 <sect2> 712 <title>Windows 0x101 bluescreens with SMP enabled (IPI timeout)</title> 713 714 <para>If a VM is configured to have more than one processor (symmetrical 715 multiprocessing, SMP), some configurations of Windows guests crash with 716 an 0x101 error message, indicating a timeout for inter-processor 717 interrupts (IPIs). These interrupts synchronize memory management 718 between processors.</para> 719 720 <para>According to Microsoft, this is due to a race condition in 721 Windows. A hotfix is available.<footnote> 722 <para>See <ulink 723 url="http://support.microsoft.com/kb/955076">http://support.microsoft.com/kb/955076</ulink>.</para> 724 </footnote> If this does not help, please reduce the number of virtual 725 processors to 1.</para> 726 </sect2> 727 728 <sect2> 729 <title>Windows 2000 installation failures</title> 730 731 <para>When installing Windows 2000 guests, you might run into one of the 732 following issues:</para> 919 920 <title>Windows Guests</title> 921 922 <sect2 id="ts_win7-guest-usb3-support"> 923 924 <title>No USB 3.0 Support in Windows 7 Guests</title> 925 926 <para> 927 If a Windows 7 or Windows Server 2008 R2 guest is configured for 928 USB 3.0 (xHCI) support, the guest OS will not have any USB 929 support at all. This happens because Windows 7 predates USB 3.0 930 and therefore does not ship with any xHCI drivers. Microsoft 931 also does not offer any vendor-provided xHCI drivers via Windows 932 Update. 933 </para> 934 935 <para> 936 To solve this problem, it is necessary to download and install 937 the Intel xHCI driver in the guest. Intel offers the driver as 938 the USB 3.0 eXtensible Host Controller (xHCI) driver for Intel 7 939 Series/C216 chipsets. 940 </para> 941 942 <para> 943 Note that the driver only supports Windows 7 and Windows Server 944 2008 R2. The driver package includes support for both 32-bit and 945 64-bit OS variants. 946 </para> 947 948 </sect2> 949 950 <sect2 id="ts_win-guest-bluescreen"> 951 952 <title>Windows Bluescreens After Changing VM Configuration</title> 953 954 <para> 955 Changing certain virtual machine settings can cause Windows 956 guests to fail during start up with a bluescreen. This may 957 happen if you change VM settings after installing Windows, or if 958 you copy a disk image with an already installed Windows to a 959 newly created VM which has settings that differ from the 960 original machine. 961 </para> 962 963 <para> 964 This applies in particular to the following settings: 965 </para> 733 966 734 967 <itemizedlist> 735 <listitem> 736 <para>Installation reboots, usually during component 737 registration.</para> 738 </listitem> 739 740 <listitem> 741 <para>Installation fills the whole hard disk with empty log 742 files.</para> 743 </listitem> 744 745 <listitem> 746 <para>Installation complains about a failure installing 747 <literal>msgina.dll</literal>.</para> 748 </listitem> 968 969 <listitem> 970 <para> 971 The ACPI and I/O APIC settings should never be changed after 972 installing Windows. Depending on the presence of these 973 hardware features, the Windows installation program chooses 974 special kernel and device driver versions and will fail to 975 startup should these hardware features be removed. Enabling 976 them for a Windows VM which was installed without them does 977 not cause any harm. However, Windows will not use these 978 features in this case. 979 </para> 980 </listitem> 981 982 <listitem> 983 <para> 984 Changing the storage controller hardware will cause bootup 985 failures as well. This might also apply to you if you copy a 986 disk image from an older version of VirtualBox to a virtual 987 machine created with a newer VirtualBox version; the default 988 subtype of IDE controller hardware was changed from PIIX3 to 989 PIIX4 with VirtualBox 2.2. Make sure these settings are 990 identical. 991 </para> 992 </listitem> 993 749 994 </itemizedlist> 750 995 751 <para>These problems are all caused by a bug in the hard disk driver of 752 Windows 2000. After issuing a hard disk request, there is a race 753 condition in the Windows driver code which leads to corruption if the 754 operation completes too fast, i.e. the hardware interrupt from the IDE 755 controller arrives too soon. With physical hardware, there is a 756 guaranteed delay in most systems so the problem is usually hidden there 757 (however it should be possible to reproduce it on physical hardware as 758 well). In a virtual environment, it is possible for the operation to be 759 done immediately (especially on very fast systems with multiple CPUs) 760 and the interrupt is signaled sooner than on a physical system. The 761 solution is to introduce an artificial delay before delivering such 762 interrupts. This delay can be configured for a VM using the following 763 command:</para> 764 765 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</screen> 766 767 <para>This sets the delay to one millisecond. In case this doesn't help, 768 increase it to a value between 1 and 5 milliseconds. Please note that 769 this slows down disk performance. After installation, you should be able 770 to remove the key (or set it to 0).</para> 771 </sect2> 772 773 <sect2> 774 <title>How to record bluescreen information from Windows guests</title> 775 776 <para>When Windows guests run into a kernel crash, they display the 777 infamous bluescreen. Depending on how Windows is configured, the 778 information will remain on the screen until the machine is restarted or 779 it will reboot automatically. During installation, Windows is usually 780 configured to reboot automatically. With automatic reboots, there is no 781 chance to record the bluescreen information which might be important for 782 problem determination.</para> 783 784 <para>VirtualBox provides a method of halting a guest when it wants to 785 perform a reset. In order to enable this feature, issue the following 786 command:</para> 787 788 <para><screen>VBoxManage setextradata "VM name" "VBoxInternal/PDM/HaltOnReset" 1</screen></para> 789 </sect2> 790 791 <sect2> 792 <title>PCnet driver failure in 32-bit Windows Server 2003 guests</title> 793 794 <para>Certain editions of Windows 2000 and 2003 servers support more 795 than 4 GB RAM on 32-bit systems. The AMD PCnet network driver shipped with 796 Windows Server 2003 fails to load if the 32-bit guest OS uses paging 797 extensions (which will occur with more than approximately 3.5 GB RAM 798 assigned to the VM).</para> 799 800 <para>This problem is known to occur with version 4.38.0.0 of the PCnet 801 driver. The issue was fixed in version 4.51.0.0 of the driver, which 802 is available as a separate download. An alternative solution may be 803 changing the emulated NIC type to Intel PRO/1000 MT Desktop (82540EM), 804 or reducing the RAM assigned to the VM to approximately 3.5 GB or less. 805 </para> 806 </sect2> 807 808 <sect2> 809 <title>No networking in Windows Vista guests</title> 810 811 <para>With Windows Vista, Microsoft dropped support for the AMD PCNet 812 card that VirtualBox used to provide as the default virtual network card 813 before version 1.6.0. For Windows Vista guests, VirtualBox now uses an 814 Intel E1000 card by default.</para> 815 816 <para>If, for some reason, you still want to use the AMD card, you need 817 to download the PCNet driver from the AMD website (available for 32-bit 818 Windows only). You can transfer it into the virtual machine using a 819 shared folder, see (see <xref linkend="sharedfolders" />).</para> 820 </sect2> 821 822 <sect2> 823 <title>Windows guests may cause a high CPU load</title> 824 825 <para>Several background applications of Windows guests, especially 826 virus scanners, are known to increases the CPU load notably even if the 827 guest appears to be idle. We recommend to deactivate virus scanners 828 within virtualized guests if possible.</para> 829 </sect2> 830 831 <sect2> 832 <title>Long delays when accessing shared folders</title> 833 834 <para>The performance for accesses to shared folders from a Windows 835 guest might be decreased due to delays during the resolution of the 836 VirtualBox shared folders name service. To fix these delays, add the 837 following entries to the file 838 <computeroutput>\windows\system32\drivers\etc\lmhosts</computeroutput> 839 of the Windows guest:</para> 840 841 <screen>255.255.255.255 VBOXSVR #PRE 996 </sect2> 997 998 <sect2 id="ts_win-guest-bluescreen-smp"> 999 1000 <title>Windows 0x101 Bluescreens with SMP Enabled (IPI Timeout)</title> 1001 1002 <para> 1003 If a VM is configured to have more than one processor 1004 (symmetrical multiprocessing, SMP), some configurations of 1005 Windows guests crash with an 0x101 error message, indicating a 1006 timeout for inter-processor interrupts (IPIs). These interrupts 1007 synchronize memory management between processors. 1008 </para> 1009 1010 <para> 1011 According to Microsoft, this is due to a race condition in 1012 Windows. A hotfix is available. See 1013 <ulink 1014 url="http://support.microsoft.com/kb/955076">http://support.microsoft.com/kb/955076</ulink>. 1015 </para> 1016 1017 <para> 1018 If this does not help, please reduce the number of virtual 1019 processors to 1. 1020 </para> 1021 1022 </sect2> 1023 1024 <sect2 id="ts_win2k-guest-install"> 1025 1026 <title>Windows 2000 Installation Failures</title> 1027 1028 <para> 1029 When installing Windows 2000 guests, you might run into one of 1030 the following issues: 1031 </para> 1032 1033 <itemizedlist> 1034 1035 <listitem> 1036 <para> 1037 Installation reboots, usually during component registration. 1038 </para> 1039 </listitem> 1040 1041 <listitem> 1042 <para> 1043 Installation fills the whole hard disk with empty log files. 1044 </para> 1045 </listitem> 1046 1047 <listitem> 1048 <para> 1049 Installation complains about a failure installing 1050 <literal>msgina.dll</literal>. 1051 </para> 1052 </listitem> 1053 1054 </itemizedlist> 1055 1056 <para> 1057 These problems are all caused by a bug in the hard disk driver 1058 of Windows 2000. After issuing a hard disk request, there is a 1059 race condition in the Windows driver code which leads to 1060 corruption if the operation completes too fast. For example, the 1061 hardware interrupt from the IDE controller arrives too soon. 1062 With physical hardware, there is a guaranteed delay in most 1063 systems so the problem is usually hidden there. However, it 1064 should be possible to also reproduce it on physical hardware. In 1065 a virtual environment, it is possible for the operation to be 1066 done immediately, especially on very fast systems with multiple 1067 CPUs, and the interrupt is signaled sooner than on a physical 1068 system. The solution is to introduce an artificial delay before 1069 delivering such interrupts. This delay can be configured for a 1070 VM using the following command: 1071 </para> 1072 1073 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</screen> 1074 1075 <para> 1076 This sets the delay to one millisecond. In case this does not 1077 help, increase it to a value between 1 and 5 milliseconds. 1078 Please note that this slows down disk performance. After 1079 installation, you should be able to remove the key, or set it to 1080 0. 1081 </para> 1082 1083 </sect2> 1084 1085 <sect2 id="ts_win-guest-bluescreen-record-info"> 1086 1087 <title>How to Record Bluescreen Information from Windows Guests</title> 1088 1089 <para> 1090 When Windows guests run into a kernel crash, they display the 1091 infamous bluescreen. Depending on how Windows is configured, the 1092 information will remain on the screen until the machine is 1093 restarted or it will reboot automatically. During installation, 1094 Windows is usually configured to reboot automatically. With 1095 automatic reboots, there is no chance to record the bluescreen 1096 information which might be important for problem determination. 1097 </para> 1098 1099 <para> 1100 VirtualBox provides a method of halting a guest when it wants to 1101 perform a reset. In order to enable this feature, issue the 1102 following command: 1103 </para> 1104 1105 <para> 1106 <screen>VBoxManage setextradata "VM name" "VBoxInternal/PDM/HaltOnReset" 1</screen> 1107 </para> 1108 1109 </sect2> 1110 1111 <sect2 id="ts_pcnet-driver-win-2003-server-guest"> 1112 1113 <title>PCnet Driver Failure in 32-bit Windows Server 2003 Guests</title> 1114 1115 <para> 1116 Certain editions of Windows 2000 and 2003 servers support more 1117 than 4 GB RAM on 32-bit systems. The AMD PCnet network driver 1118 shipped with Windows Server 2003 fails to load if the 32-bit 1119 guest OS uses paging extensions, which will occur with more than 1120 approximately 3.5 GB RAM assigned to the VM. 1121 </para> 1122 1123 <para> 1124 This problem is known to occur with version 4.38.0.0 of the 1125 PCnet driver. The issue was fixed in version 4.51.0.0 of the 1126 driver, which is available as a separate download. An 1127 alternative solution may be changing the emulated NIC type to 1128 Intel PRO/1000 MT Desktop (82540EM), or reducing the RAM 1129 assigned to the VM to approximately 3.5 GB or less. 1130 </para> 1131 1132 </sect2> 1133 1134 <sect2 id="ts_win-vista-guest-networking"> 1135 1136 <title>No Networking in Windows Vista Guests</title> 1137 1138 <para> 1139 With Windows Vista, Microsoft dropped support for the AMD PCNet 1140 card that VirtualBox used to provide as the default virtual 1141 network card before version 1.6.0. For Windows Vista guests, 1142 VirtualBox now uses an Intel E1000 card by default. 1143 </para> 1144 1145 <para> 1146 If, for some reason, you still want to use the AMD card, you 1147 need to download the PCNet driver from the AMD website. This 1148 driver is available for 32-bit Windows only. You can transfer it 1149 into the virtual machine using a shared folder. See 1150 <xref linkend="sharedfolders" />. 1151 </para> 1152 1153 </sect2> 1154 1155 <sect2 id="ts_win-guest-high-cpu"> 1156 1157 <title>Windows Guests may Cause a High CPU Load</title> 1158 1159 <para> 1160 Several background applications of Windows guests, especially 1161 virus scanners, are known to increases the CPU load notably even 1162 if the guest appears to be idle. We recommend to deactivate 1163 virus scanners within virtualized guests if possible. 1164 </para> 1165 1166 </sect2> 1167 1168 <sect2 id="ts_win-guest-shared-folders-access-delay"> 1169 1170 <title>Long Delays When Accessing Shared Folders</title> 1171 1172 <para> 1173 The performance for accesses to shared folders from a Windows 1174 guest might be decreased due to delays during the resolution of 1175 the VirtualBox shared folders name service. To fix these delays, 1176 add the following entries to the file 1177 <computeroutput>\windows\system32\drivers\etc\lmhosts</computeroutput> 1178 of the Windows guest: 1179 </para> 1180 1181 <screen>255.255.255.255 VBOXSVR #PRE 842 1182 255.255.255.255 VBOXSRV #PRE</screen> 843 1183 844 <para>After doing this change, a reboot of the guest is required.</para> 845 </sect2> 846 847 <sect2> 848 <title>USB tablet coordinates wrong in Windows 98 guests</title> 849 850 <para>If a Windows 98 VM is configured to use the emulated USB tablet 851 (absolute pointing device), the coordinate translation may be incorrect 852 and the pointer is restricted to the upper left quarter of the guest's 853 screen. 854 </para> 855 856 <para>The USB HID (Human Interface Device) drivers in Windows 98 are very 857 old and do not handle tablets the same way all more recent operating 858 systems do (Windows 2000 and later, Mac OS X, Solaris). To 859 work around the problem, issue the following command: 860 </para> 861 862 <para><screen>VBoxManage setextradata "VM name" "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0</screen></para> 863 864 <para>To restore the default behavior, remove the key or set its value 865 to 1. 866 </para> 867 </sect2> 868 869 <sect2> 870 <title>Windows guests are removed from an Active Directory domain after 871 restoring a snapshot</title> 872 873 <para>If a Windows guest is a member of an Active Directory domain and 874 the snapshot feature of VirtualBox is used, it could happen it loses 875 this status after you restore an older snapshot. 876 </para> 877 878 <para>The reason is the automatic machine password changing performed by 879 Windows in regular intervals for security purposes. You can disable 880 this feature by following the instruction of this <ulink 1184 <para> 1185 After doing this change, a reboot of the guest is required. 1186 </para> 1187 1188 </sect2> 1189 1190 <sect2 id="ts_win98-guest-usb-tablet-coordinates"> 1191 1192 <title>USB Tablet Coordinates Wrong in Windows 98 Guests</title> 1193 1194 <para> 1195 If a Windows 98 VM is configured to use the emulated USB tablet 1196 (absolute pointing device), the coordinate translation may be 1197 incorrect and the pointer is restricted to the upper left 1198 quarter of the guest's screen. 1199 </para> 1200 1201 <para> 1202 The USB HID (Human Interface Device) drivers in Windows 98 are 1203 very old and do not handle tablets the same way all more recent 1204 operating systems do (Windows 2000 and later, Mac OS X, 1205 Solaris). To work around the problem, issue the following 1206 command: 1207 </para> 1208 1209 <para> 1210 <screen>VBoxManage setextradata "VM name" "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0</screen> 1211 </para> 1212 1213 <para> 1214 To restore the default behavior, remove the key or set its value 1215 to 1. 1216 </para> 1217 1218 </sect2> 1219 1220 <sect2 id="ts_win-guest-active-dir-domain"> 1221 1222 <title>Windows Guests are Removed From an Active Directory Domain After 1223 Restoring a Snapshot</title> 1224 1225 <para> 1226 If a Windows guest is a member of an Active Directory domain and 1227 the snapshot feature of VirtualBox is used, it could happen it 1228 loses this status after you restore an older snapshot. 1229 </para> 1230 1231 <para> 1232 The reason is the automatic machine password changing performed 1233 by Windows at regular intervals for security purposes. You can 1234 disable this feature by following the instruction of the 1235 following article from Microsoft: 1236 <ulink 881 1237 url="http://support.microsoft.com/kb/154501">http://support.microsoft.com/kb/154501</ulink> 882 article from Microsoft.883 </para> 1238 </para> 1239 884 1240 </sect2> 885 1241 886 1242 <sect2 id="ts_d3d8-d3d9-restore"> 1243 887 1244 <title>Restoring d3d8.dll and d3d9.dll</title> 888 1245 889 <para>VirtualBox Guest Additions for Windows prior to 4.1.8 did not properly 890 back up the original d3d8.dll and d3d9.dll system files when selecting 891 and installing the experimental Direct3D support. This process replaces 892 both system files with files from the VirtualBox Guest Additions so that 893 Direct3D calls can be handled correctly. Although this issue was fixed 894 with VirtualBox 4.1.8, there is no way the Windows Guest Additions 895 installer can repair these files.</para> 896 897 <para>Corruption of these files has no implications in case 3D acceleration 898 is enabled and basic Direct3D support is installed, that is, without WDDM 899 (on Windows Vista or higher) or on older Windows systems like Windows XP. 900 With the basic Direct3D support all Direct3D 8.0 and Direct3D 9.0 901 applications will utilize VirtualBox Direct3D files directly and thus 902 will run as expected.</para> 903 904 <para>For WDDM Direct3D support however, the originally shipped d3d8.dll and 905 d3d9.dll files are required in order to run Direct3D 8.0 906 and Direct3D 9.0 applications. As a result of the above mentioned system 907 files corruption these applications will not work anymore. See below for 908 a step-by-step guide for restoring the original d3d8.dll and d3d9.dll 909 system files in case the VirtualBox Guest Additions installer warned 910 about those incorrect files or when having trouble running Direct3D 911 applications.</para> 912 913 <note><para>Starting at Windows 7 the 3D desktop (aka Aero) uses DirectX 10 914 for rendering so that corrupted d3d8.dll and d3d9.dll system files will 915 have no effect on the actual rendering.</para></note> 916 917 <para>This is why such a detected file corruption is not considered as fatal 918 for the basic Direct3D installation on all supported Windows guests, 919 and for WDDM Direct3D installation on Windows 7 and later guests.</para> 920 921 <para>Extracting d3d8 and d3d9.dll from a Windows XP installation CD:</para> 1246 <para> 1247 VirtualBox Guest Additions for Windows prior to 4.1.8 did not 1248 properly back up the original d3d8.dll and d3d9.dll system files 1249 when selecting and installing the experimental Direct3D support. 1250 This process replaces both system files with files from the 1251 VirtualBox Guest Additions so that Direct3D calls can be handled 1252 correctly. Although this issue was fixed with VirtualBox 4.1.8, 1253 there is no way the Windows Guest Additions installer can repair 1254 these files. 1255 </para> 1256 1257 <para> 1258 Corruption of these files has no implications in case 3D 1259 acceleration is enabled and basic Direct3D support is installed, 1260 that is, without WDDM (on Windows Vista or higher) or on older 1261 Windows systems like Windows XP. With the basic Direct3D support 1262 all Direct3D 8.0 and Direct3D 9.0 applications will utilize 1263 VirtualBox Direct3D files directly and thus will run as 1264 expected. 1265 </para> 1266 1267 <para> 1268 For WDDM Direct3D support however, the originally shipped 1269 d3d8.dll and d3d9.dll files are required in order to run 1270 Direct3D 8.0 and Direct3D 9.0 applications. As a result of the 1271 above mentioned system files corruption these applications will 1272 not work anymore. See below for a step-by-step guide for 1273 restoring the original d3d8.dll and d3d9.dll system files in 1274 case the VirtualBox Guest Additions installer warned about those 1275 incorrect files or when having trouble running Direct3D 1276 applications. 1277 </para> 1278 1279 <note> 1280 <para> 1281 Starting at Windows 7 the 3D desktop, called Aero, uses 1282 DirectX 10 for rendering so that corrupted d3d8.dll and 1283 d3d9.dll system files will have no effect on the actual 1284 rendering. 1285 </para> 1286 </note> 1287 1288 <para> 1289 This is why such a detected file corruption is not considered as 1290 fatal for the basic Direct3D installation on all supported 1291 Windows guests, and for WDDM Direct3D installation on Windows 7 1292 and later guests. 1293 </para> 1294 1295 <para> 1296 <emphasis role="bold">Extracting d3d8 and d3d9.dll from a 1297 Windows XP installation CD:</emphasis> 1298 </para> 922 1299 923 1300 <orderedlist> 924 <listitem> 925 <para>Download and install the latest version of 7-Zip File Manager <ulink 926 url="http//www.7-zip.org">http//www.7-zip.org</ulink></para> 927 </listitem> 928 929 <listitem> 930 <para>Browse into the installation CD for example E:\i386 (or amd64 for the 64-bit version)</para> 931 </listitem> 932 933 <listitem> 934 <para>Locate file d3d8.dl_ and d3d9.dl_, double click on it and Extract d3d8.dll and d3d9.dll</para> 935 </listitem> 936 937 <listitem> 938 <para>Reboot Windows in Safe mode</para> 939 </listitem> 940 941 <listitem> 942 <para>Copy extracted d3d8.dll and d3d9.dll to C:\Windows\system32 and C:\Windows\system32\dllcache</para> 943 </listitem> 944 945 <listitem> 946 <para>Reboot</para> 947 </listitem> 1301 1302 <listitem> 1303 <para> 1304 Download and install the latest version of 7-Zip File 1305 Manager. See 1306 <ulink 1307 url="http//www.7-zip.org">http//www.7-zip.org</ulink>. 1308 </para> 1309 </listitem> 1310 1311 <listitem> 1312 <para> 1313 Browse into the installation CD. For example E:\i386, or 1314 E:\amd64 for the 64-bit version. 1315 </para> 1316 </listitem> 1317 1318 <listitem> 1319 <para> 1320 Locate the entries d3d8.dl_ and d3d9.dl_. Double-click on 1321 the file names and extract d3d8.dll and d3d9.dll. 1322 </para> 1323 </listitem> 1324 1325 <listitem> 1326 <para> 1327 Reboot Windows in Safe mode. 1328 </para> 1329 </listitem> 1330 1331 <listitem> 1332 <para> 1333 Copy the extracted d3d8.dll and d3d9.dll files to 1334 C:\Windows\system32 and C:\Windows\system32\dllcache. 1335 </para> 1336 </listitem> 1337 1338 <listitem> 1339 <para> 1340 Reboot Windows. 1341 </para> 1342 </listitem> 1343 948 1344 </orderedlist> 949 1345 950 <para>Extracting d3d8 and d3d9.dll from Windows XP Service pack </para> 1346 <para> 1347 <emphasis role="bold">Extracting d3d8 and d3d9.dll from a 1348 Windows XP Service pack:</emphasis> 1349 </para> 951 1350 952 1351 <orderedlist> 953 <listitem> 954 <para>1, 3-6 Same as installation CD</para> 955 </listitem> 956 <listitem> 957 <para>Use 'Open inside' to open WindowsXP-KB936929-SP3-x86.exe as archive and browse i386 directory.</para> 958 </listitem> 1352 1353 <listitem> 1354 <para> 1355 Download and install the latest version of 7-Zip File 1356 Manager. See 1357 <ulink 1358 url="http//www.7-zip.org">http//www.7-zip.org</ulink>. 1359 </para> 1360 </listitem> 1361 1362 <listitem> 1363 <para> 1364 Choose Open Inside, to open WindowsXP-KB936929-SP3-x86.exe 1365 as an archive and browse the i386 directory. 1366 </para> 1367 </listitem> 1368 1369 <listitem> 1370 <para> 1371 Locate the entries d3d8.dl_ and d3d9.dl_. Double-click on 1372 the file names and extract d3d8.dll and d3d9.dll. 1373 </para> 1374 </listitem> 1375 1376 <listitem> 1377 <para> 1378 Reboot Windows in Safe mode. 1379 </para> 1380 </listitem> 1381 1382 <listitem> 1383 <para> 1384 Copy the extracted d3d8.dll and d3d9.dll files to 1385 C:\Windows\system32 and C:\Windows\system32\dllcache. 1386 </para> 1387 </listitem> 1388 1389 <listitem> 1390 <para> 1391 Reboot Windows. 1392 </para> 1393 </listitem> 1394 959 1395 </orderedlist> 960 1396 961 <para>Extracting d3d8 and d3d9.dll from Vista/Windows7 installation CD or Service Pack iso</para> 1397 <para> 1398 Extracting d3d8 and d3d9.dll from a Vista/Windows7 installation 1399 CD or Service Pack ISO: 1400 </para> 962 1401 963 1402 <orderedlist> 964 <listitem> 965 <para>Download and install the latest version of 7-Zip File Manager <ulink 966 url="http//www.7-zip.org">http//www.7-zip.org</ulink></para> 967 </listitem> 968 969 <listitem> 970 <para>Browse into installation CD for example E:\sources</para> 971 </listitem> 972 973 <listitem> 974 <para>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)</para> 975 </listitem> 976 977 <listitem> 978 <para>After entering into the one of the numeric folders, browse into Windows\System32 (or C:\Windows\SysWOW64 for the 64-bit version) directory locate d3d8.dll and d3d9.dll and extract</para> 979 </listitem> 980 981 <listitem> 982 <para>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)</para> 983 </listitem> 984 985 <listitem> 986 <para>Reboot</para> 987 </listitem> 1403 1404 <listitem> 1405 <para> 1406 Download and install the latest version of 7-Zip File 1407 Manager. See 1408 <ulink 1409 url="http//www.7-zip.org">http//www.7-zip.org</ulink>. 1410 </para> 1411 </listitem> 1412 1413 <listitem> 1414 <para> 1415 Browse into the installation CD. for example E:\sources. 1416 </para> 1417 </listitem> 1418 1419 <listitem> 1420 <para> 1421 Locate file install.wim and double-click the file. After the 1422 7-Zip utility unzips the file, you will see a few numbered 1423 folders. Each numeric subfolder represents a different 1424 version of Windows such as Starter or Home Basic. 1425 </para> 1426 </listitem> 1427 1428 <listitem> 1429 <para> 1430 Open one of the numeric folders and browse to the 1431 Windows\System32 directory, or C:\Windows\SysWOW64 for the 1432 64-bit version. Locate and extract the d3d8.dll and d3d9.dll 1433 files. 1434 </para> 1435 </listitem> 1436 1437 <listitem> 1438 <para> 1439 Copy extracted the d3d8.dll and d3d9.dll files to 1440 C:\Windows\system32 or C:\Windows\SysWOW64. Files from 1441 system32 should go to system32, from SysWOW64 to SysWOW64. 1442 </para> 1443 </listitem> 1444 1445 <listitem> 1446 <para> 1447 Reboot Windows. 1448 </para> 1449 </listitem> 1450 988 1451 </orderedlist> 989 </sect2> 990 991 <sect2> 992 <title>Windows 3.x limited to 64 MB RAM</title> 993 994 <para>Windows 3.x guests are typically limited to 64 MB RAM, even if a VM is assigned 995 much more memory. While Windows 3.1 is theoretically capable of using up to 512 MB RAM, 996 it only uses memory available through the XMS interface. Versions of HIMEM.SYS (the 997 Microsoft XMS manager) shipped with MS-DOS and Microsoft Windows 3.x can only use 998 up to 64 MB on standard PCs.</para> 999 1000 <para>This is a HIMEM.SYS limitation documented by Microsoft in Knowledge base 1001 article KB 116256. 1002 Windows 3.1 memory limits are described in detail in Microsoft Knowledge base 1003 article KB 84388.</para> 1004 1005 <para>It is possible for Windows 3.x guests to utilize more than 64 MB RAM if a 1006 different XMS provider is used. That could be a newer HIMEM.SYS version (such as 1007 that shipped with Windows 98), or a more capable third-party memory manager 1008 (such as QEMM).</para> 1452 1453 </sect2> 1454 1455 <sect2 id="ts_win31-ram-limitations"> 1456 1457 <title>Windows 3.x Limited to 64 MB RAM</title> 1458 1459 <para> 1460 Windows 3.x guests are typically limited to 64 MB RAM, even if a 1461 VM is assigned much more memory. While Windows 3.1 is 1462 theoretically capable of using up to 512 MB RAM, it only uses 1463 memory available through the XMS interface. Versions of 1464 HIMEM.SYS, the Microsoft XMS manager, shipped with MS-DOS and 1465 Microsoft Windows 3.x can only use up to 64 MB on standard PCs. 1466 </para> 1467 1468 <para> 1469 This is a HIMEM.SYS limitation documented by Microsoft in 1470 Knowledge base article KB 116256. Windows 3.1 memory limits are 1471 described in detail in Microsoft Knowledge base article KB 1472 84388. 1473 </para> 1474 1475 <para> 1476 It is possible for Windows 3.x guests to utilize more than 64 MB 1477 RAM if a different XMS provider is used. That could be a newer 1478 HIMEM.SYS version, such as that shipped with Windows 98, or a 1479 more capable third-party memory manager, such as QEMM. 1480 </para> 1481 1009 1482 </sect2> 1010 1483 … … 1012 1485 1013 1486 <sect1 id="ts_lin-x11-guests"> 1014 <title>Linux and X11 guests</title> 1015 1016 <sect2> 1017 <title>Linux guests may cause a high CPU load</title> 1018 1019 <para>Some Linux guests may cause a high CPU load even if the guest 1020 system appears to be idle. This can be caused by a high timer frequency 1021 of the guest kernel. Some Linux distributions, for example Fedora, ship 1022 a Linux kernel configured for a timer frequency of <emphasis 1023 role="bold"> 1000Hz</emphasis>. We recommend to recompile the guest 1024 kernel and to select a timer frequency of 100Hz.</para> 1025 1026 <para>Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of 1027 release 4.7 and 5.1 as well as kernels of related Linux distributions 1028 (for instance CentOS and Oracle Linux) support a kernel 1029 parameter <emphasis>divider=N</emphasis>. Hence, such kernels support a 1030 lower timer frequency without recompilation. We suggest to add the 1031 kernel parameter <emphasis>divider=10</emphasis> to select a guest 1032 kernel timer frequency of 100Hz.</para> 1033 </sect2> 1034 1035 <sect2> 1487 1488 <title>Linux and X11 Guests</title> 1489 1490 <sect2 id="ts_linux-guest-high-cpu"> 1491 1492 <title>Linux Guests May Cause a High CPU load</title> 1493 1494 <para> 1495 Some Linux guests may cause a high CPU load even if the guest 1496 system appears to be idle. This can be caused by a high timer 1497 frequency of the guest kernel. Some Linux distributions, for 1498 example Fedora, ship a Linux kernel configured for a timer 1499 frequency of 1000Hz. We recommend to recompile the guest kernel 1500 and to select a timer frequency of 100Hz. 1501 </para> 1502 1503 <para> 1504 Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of 1505 release 4.7 and 5.1 as well as kernels of related Linux 1506 distributions, such as CentOS and Oracle Linux, support a kernel 1507 parameter <emphasis>divider=N</emphasis>. Hence, such kernels 1508 support a lower timer frequency without recompilation. We 1509 suggest you add the kernel parameter 1510 <emphasis>divider=10</emphasis> to select a guest kernel timer 1511 frequency of 100Hz. 1512 </para> 1513 1514 </sect2> 1515 1516 <sect2 id="ts_linux-guest-amd-barcelona"> 1517 1036 1518 <title>AMD Barcelona CPUs</title> 1037 1519 1038 <para>Most Linux-based guests will fail with AMD Phenoms or 1039 Barcelona-level Opterons due to a bug in the Linux kernel. Enable the 1040 I/O-APIC to work around the problem (see <xref 1041 linkend="settings-system" />).</para> 1520 <para> 1521 Most Linux-based guests will fail with AMD Phenoms or 1522 Barcelona-level Opterons due to a bug in the Linux kernel. 1523 Enable the I/O-APIC to work around the problem. See 1524 <xref 1525 linkend="settings-system" />. 1526 </para> 1527 1042 1528 </sect2> 1043 1529 1044 1530 <sect2 id="ts_linux-buggy"> 1045 <title>Buggy Linux 2.6 kernel versions</title> 1046 1047 <para>The following bugs in Linux kernels prevent them from executing 1048 correctly in VirtualBox, causing VM boot crashes:<itemizedlist> 1049 <listitem> 1050 <para>The Linux kernel version 2.6.18 (and some 2.6.17 versions) 1531 1532 <title>Buggy Linux 2.6 Kernel Versions</title> 1533 1534 <para> 1535 The following bugs in Linux kernels prevent them from executing 1536 correctly in VirtualBox, causing VM boot crashes: 1537 </para> 1538 1539 <itemizedlist> 1540 1541 <listitem> 1542 <para> 1543 The Linux kernel version 2.6.18, and some 2.6.17 versions, 1051 1544 introduced a race condition that can cause boot crashes in 1052 VirtualBox. Please use a kernel version 2.6.19 or later.</para> 1053 </listitem> 1054 1055 <listitem> 1056 <para>With hardware virtualization and the I/O APIC enabled, 1057 kernels before 2.6.24-rc6 may panic on boot with the following 1058 message:<screen>Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with 1059 apic=debug and send a report. Then try booting with the 'noapic' option</screen></para> 1060 1061 <para>If you see this message, either disable hardware 1062 virtualization or the I/O APIC (see <xref 1063 linkend="settings-system" />), or upgrade the guest to a newer 1064 kernel.<footnote> 1065 <para>See <ulink 1545 VirtualBox. Please use a kernel version 2.6.19 or later. 1546 </para> 1547 </listitem> 1548 1549 <listitem> 1550 <para> 1551 With hardware virtualization and the I/O APIC enabled, 1552 kernels before 2.6.24-rc6 may panic on boot with the 1553 following message: 1554 </para> 1555 1556 <screen>Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with 1557 apic=debug and send a report. Then try booting with the 'noapic' option</screen> 1558 1559 <para> 1560 If you see this message, either disable hardware 1561 virtualization or the I/O APIC as described in 1562 <xref 1563 linkend="settings-system" />, or upgrade 1564 the guest to a newer kernel. 1565 1566 <footnote> 1567 1568 <para> 1569 See 1570 <ulink 1066 1571 url="http://www.mail-archive.com/[email protected]/msg30813.html">http://www.mail-archive.com/[email protected]/msg30813.html</ulink> 1067 for details about the kernel fix.</para> 1068 </footnote></para> 1069 </listitem> 1070 </itemizedlist></para> 1071 </sect2> 1072 1073 <sect2> 1074 <title>Shared clipboard, auto-resizing and seamless desktop in X11 1075 guests</title> 1076 1077 <para>Guest desktop services in guests running the X11 window system 1078 (Solaris, Linux and others) are provided by a guest service called 1079 <computeroutput>VBoxClient</computeroutput>, which runs under the ID of 1080 the user who started the desktop session and is automatically started 1081 using the following command lines <screen>VBoxClient --clipboard 1572 for details about the kernel fix. 1573 </para> 1574 1575 </footnote> 1576 </para> 1577 </listitem> 1578 1579 </itemizedlist> 1580 1581 </sect2> 1582 1583 <sect2 id="ts_linux-guest-x11-services"> 1584 1585 <title>Shared Clipboard, Auto-Resizing, and Seamless Desktop in X11 Guests</title> 1586 1587 <para> 1588 Guest desktop services in guests running the X11 window system 1589 such as Solaris and Linux, are provided by a guest service 1590 called <computeroutput>VBoxClient</computeroutput>, which runs 1591 under the ID of the user who started the desktop session and is 1592 automatically started using the following command lines when 1593 your X11 user session is started if you are using a common 1594 desktop environment (Gnome, KDE and others). 1595 </para> 1596 1597 <screen>VBoxClient --clipboard 1082 1598 VBoxClient --display 1083 VBoxClient --seamless</screen> when your X11 user session is started if you 1084 are using a common desktop environment (Gnome, KDE and others). If a 1085 particular desktop service is not working correctly, it is worth 1086 checking whether the process which should provide it is running.</para> 1087 1088 <para>The <computeroutput>VBoxClient</computeroutput> processes create 1089 files in the user's home directory with names of the form 1090 <computeroutput>.vboxclient-*.pid</computeroutput> when they are running 1091 in order to prevent a given service from being started twice. It can 1092 happen due to misconfiguration that these files are created owned by 1093 root and not deleted when the services are stopped, which will prevent 1094 them from being started in future sessions. If the services cannot be 1095 started, you may wish to check whether these files still exist.</para> 1096 </sect2> 1599 VBoxClient --seamless</screen> 1600 1601 <para> 1602 If a particular desktop service is not working correctly, it is 1603 worth checking whether the process which should provide it is 1604 running. 1605 </para> 1606 1607 <para> 1608 The <computeroutput>VBoxClient</computeroutput> processes create 1609 files in the user's home directory with names of the form 1610 <computeroutput>.vboxclient-*.pid</computeroutput> when they are 1611 running in order to prevent a given service from being started 1612 twice. It can happen due to misconfiguration that these files 1613 are created owned by root and not deleted when the services are 1614 stopped, which will prevent them from being started in future 1615 sessions. If the services cannot be started, you may wish to 1616 check whether these files still exist. 1617 </para> 1618 1619 </sect2> 1620 1097 1621 </sect1> 1098 1622 1099 1623 <sect1 id="ts_sol-guests"> 1100 <title>Solaris guests</title> 1101 1102 <sect2> 1103 <title>Older Solaris 10 releases crash in 64-bit mode</title> 1104 1105 <para>Solaris 10 releases up to and including Solaris 10 8/07 ("S10U4") 1106 incorrectly detect newer Intel processors produced since 2007. This 1107 problem leads to the 64-bit Solaris kernel crashing (and usually causing 1108 a triple fault) almost immediately during startup, in both virtualized 1109 and physical environments. 1110 </para> 1111 <para> 1112 The recommended solution is upgrading to at least Solaris 10 5/08 1113 ("S10U5"). Alternative solutions include forcing Solaris to always 1114 boot the 32-bit kernel or applying a patch for bug 6574102 (while 1115 Solaris is using the 32-bit kernel). 1116 </para> 1117 1118 </sect2> 1119 1120 <sect2> 1121 <title>Certain Solaris 10 releases may take long to boot with SMP</title> 1122 1123 <para>When using more than one CPU, Solaris 10 releases 5/08 ("S10U5"), 1124 10/08 ("S10U6"), and 5/09 ("S10U7") may take a long time to boot and 1125 may print warnings on the system console regarding failures to read 1126 from disk. This is a bug in Solaris 10 which affects specific physical 1127 and virtual configurations. It is caused by trying to read microcode 1128 updates from the boot disk when the disk interrupt is reassigned to a 1129 not yet fully initialized secondary CPU. Disk reads will time out and 1130 fail, triggering delays (approx. 45 seconds) and warnings. 1131 </para> 1132 <para> 1133 The recommended solution is upgrading to at least Solaris 10 10/09 1134 ("S10U8") which includes a fix for this problem. Alternative solutions 1135 include restricting the number of virtual CPUs to one or possibly 1136 using a different storage controller. 1137 </para> 1138 1139 </sect2> 1140 1141 <sect2> 1142 <title>Solaris 8 5/01 and earlier may crash on startup</title> 1143 1144 <para> 1145 Solaris 2.6, 7 and 8 releases up to and including Solaris 8 4/01 ("S8U4") 1146 incorrectly set up Machine Check Exception (MCE) MSRs on Pentium 4 and 1147 some later Intel CPUs. The problem leads to the Solaris kernel crashing 1148 (and usually causing a triple fault) almost immediately during startup, in both 1149 virtualized and physical environments. Solaris 9 and later releases are 1150 not affected by this problem, and neither is Solaris 2.5.1 and earlier. 1151 </para> 1152 <para> 1153 The recommended solution is upgrading to at least Solaris 8 7/01 1154 ("S8U5"). Alternative solutions include applying a patch for bugs 4408508 1155 and 4414557 (on an unaffected system). 1156 </para> 1157 1158 </sect2> 1624 1625 <title>Solaris Guests</title> 1626 1627 <sect2 id="ts_solaris-10-guest-crash"> 1628 1629 <title>Older Solaris 10 Releases Crash in 64-bit Mode</title> 1630 1631 <para> 1632 Solaris 10 releases up to and including Solaris 10 8/07 1633 ("S10U4") incorrectly detect newer Intel processors produced 1634 since 2007. This problem leads to the 64-bit Solaris kernel 1635 crashing, and usually causing a triple fault, almost immediately 1636 during startup, in both virtualized and physical environments. 1637 </para> 1638 1639 <para> 1640 The recommended solution is upgrading to at least Solaris 10 1641 5/08 ("S10U5"). Alternative solutions include forcing Solaris to 1642 always boot the 32-bit kernel or applying a patch for bug 1643 6574102 while Solaris is using the 32-bit kernel. 1644 </para> 1645 1646 </sect2> 1647 1648 <sect2 id="ts_solaris-10-guest-slow-boot-smp"> 1649 1650 <title>Certain Solaris 10 Releases May Take a Long Time to Boot with SMP</title> 1651 1652 <para> 1653 When using more than one CPU, Solaris 10 releases 5/08 1654 ("S10U5"), 10/08 ("S10U6"), and 5/09 ("S10U7") may take a long 1655 time to boot and may print warnings on the system console 1656 regarding failures to read from disk. This is a bug in Solaris 1657 10 which affects specific physical and virtual configurations. 1658 It is caused by trying to read microcode updates from the boot 1659 disk when the disk interrupt is reassigned to a not yet fully 1660 initialized secondary CPU. Disk reads will time out and fail, 1661 triggering delays of about 45 seconds and warnings. 1662 </para> 1663 1664 <para> 1665 The recommended solution is upgrading to at least Solaris 10 1666 10/09 ("S10U8") which includes a fix for this problem. 1667 Alternative solutions include restricting the number of virtual 1668 CPUs to one or possibly using a different storage controller. 1669 </para> 1670 1671 </sect2> 1672 1673 <sect2 id="ts_solaris-8-guest-crash"> 1674 1675 <title>Solaris 8 5/01 and Earlier May Crash on Startup</title> 1676 1677 <para> 1678 Solaris 2.6, 7 and 8 releases up to and including Solaris 8 4/01 1679 ("S8U4") incorrectly set up Machine Check Exception (MCE) MSRs 1680 on Pentium 4 and some later Intel CPUs. The problem leads to the 1681 Solaris kernel crashing, and usually causing a triple fault, 1682 almost immediately during startup, in both virtualized and 1683 physical environments. Solaris 9 and later releases are not 1684 affected by this problem, and neither is Solaris 2.5.1 and 1685 earlier. 1686 </para> 1687 1688 <para> 1689 The recommended solution is upgrading to at least Solaris 8 7/01 1690 ("S8U5"). Alternative solutions include applying a patch for 1691 bugs 4408508 and 4414557 on an unaffected system. 1692 </para> 1693 1694 </sect2> 1695 1159 1696 </sect1> 1160 1697 1161 1698 <sect1 id="ts_fbsd-guests"> 1162 <title>FreeBSD guests</title> 1163 1164 <sect2> 1165 <title>FreeBSD 10.0 may hang with xHCI</title> 1166 1699 1700 <title>FreeBSD Guests</title> 1701 1702 <sect2 id="ts_fbsd-guest-xhci"> 1703 1704 <title>FreeBSD 10.0 May Hang with xHCI</title> 1705 1706 <para> 1707 If xHCI (USB 3.0) emulation is enabled for FreeBSD 10.0 guests, 1708 the guest OS will hang. This is caused by the guest OS 1709 incorrectly handling systems where Message Signaled Interrupts 1710 (MSIs) are not used with the xHCI device. 1711 </para> 1712 1713 <para> 1714 The problem does not exist in earlier FreeBSD releases and was 1715 fixed in FreeBSD 10.1. 1716 </para> 1717 1718 </sect2> 1719 1720 </sect1> 1721 1722 <sect1 id="ts_win-hosts"> 1723 1724 <title>Windows Hosts</title> 1725 1726 <sect2 id="ts_win-host-com-server"> 1727 1728 <title>VBoxSVC Out-of-Process COM Server Issues</title> 1729 1730 <para> 1731 VirtualBox makes use of the Microsoft Component Object Model 1732 (COM) for inter-process and intra-process communication. This 1733 allows VirtualBox to share a common configuration among 1734 different virtual machine processes and provide several user 1735 interface options based on a common architecture. All global 1736 status information and configuration is maintained by the 1737 process <computeroutput>VBoxSVC.exe</computeroutput>, which is 1738 an out-of-process COM server. Whenever a VirtualBox process is 1739 started, it requests access to the COM server and Windows 1740 automatically starts the process. Note that it should never be 1741 started by the end user. 1742 </para> 1743 1744 <para> 1745 When the last process disconnects from the COM server, it will 1746 terminate itself after some seconds. The VirtualBox 1747 configuration (XML files) is maintained and owned by the COM 1748 server and the files are locked whenever the server runs. 1749 </para> 1750 1751 <para> 1752 In some cases, such as when a virtual machine is terminated 1753 unexpectedly, the COM server will not notice that the client is 1754 disconnected and stay active for a longer period of 10 minutes 1755 or so, keeping the configuration files locked. In other rare 1756 cases the COM server might experience an internal error and 1757 subsequently other processes fail to initialize it. In these 1758 situations, it is recommended to use the Windows task manager to 1759 kill the process <computeroutput>VBoxSVC.exe</computeroutput>. 1760 </para> 1761 1762 </sect2> 1763 1764 <sect2 id="ts_win-host-cd-dvd-changes"> 1765 1766 <title>CD/DVD Changes Not Recognized</title> 1767 1768 <para> 1769 In case you have assigned a physical CD/DVD drive to a guest and 1770 the guest does not notice when the medium changes, make sure 1771 that the Windows media change notification (MCN) feature is not 1772 turned off. This is represented by the following key in the 1773 Windows registry: 1774 1775 <screen><literal>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</literal></screen> 1776 1777 Certain applications may disable this key against Microsoft's 1778 advice. If it is set to 0, change it to 1 and reboot your 1779 system. VirtualBox relies on Windows notifying it of media 1780 changes. 1781 </para> 1782 1783 </sect2> 1784 1785 <sect2 id="ts_win-host-rdp-client"> 1786 1787 <title>Sluggish Response When Using Microsoft RDP Client</title> 1788 1789 <para> 1790 If connecting to a Virtual Machine via the Microsoft RDP client, 1791 called a Remote Desktop Connection, there can be large delays 1792 between input such as moving the mouse over a menu and output. 1793 This is because this RDP client collects input for a certain 1794 time before sending it to the RDP server. 1795 </para> 1796 1797 <para> 1798 The interval can be decreased by setting a Windows registry key 1799 to smaller values than the default of 100. The key does not 1800 exist initially and must be of type DWORD. The unit for its 1801 values is milliseconds. Values around 20 are suitable for 1802 low-bandwidth connections between the RDP client and server. 1803 Values around 4 can be used for a gigabit Ethernet connection. 1804 Generally values below 10 achieve a performance that is very 1805 close to that of the local input devices and screen of the host 1806 on which the Virtual Machine is running. 1807 </para> 1808 1809 <para> 1810 Depending whether the setting should be changed for an 1811 individual user or for the system, set either of the following. 1812 </para> 1813 1814 <screen>HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval</screen> 1815 1816 <screen>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval</screen> 1817 1818 </sect2> 1819 1820 <sect2 id="ts_win-host-iscsi"> 1821 1822 <title>Running an iSCSI Initiator and Target on a Single System</title> 1823 1824 <para> 1825 Deadlocks can occur on a Windows host when attempting to access 1826 an iSCSI target running in a guest virtual machine with an iSCSI 1827 initiator, such as a Microsoft iSCSI Initiator, that is running 1828 on the host. This is caused by a flaw in the Windows cache 1829 manager component, and causes sluggish host system response for 1830 several minutes, followed by a "Delayed Write Failed" error 1831 message in the system tray or in a separate message window. The 1832 guest is blocked during that period and may show error messages 1833 or become unstable. 1834 </para> 1835 1836 <para> 1837 Setting the environment variable 1838 <computeroutput>VBOX_DISABLE_HOST_DISK_CACHE</computeroutput> to 1839 1 will enable a workaround for this problem until Microsoft 1840 addresses the issue. For example, open a command prompt window 1841 and start VirtualBox like this: 1842 </para> 1843 1844 <screen>set VBOX_DISABLE_HOST_DISK_CACHE=1 1845 VirtualBox</screen> 1846 1847 <para> 1848 While this will decrease guest disk performance, especially 1849 writes, it does not affect the performance of other applications 1850 running on the host. 1851 </para> 1852 1853 </sect2> 1854 1855 <sect2 id="ts_win-host-bridged-network-adapters"> 1856 1857 <title>Bridged Networking Adapters Missing</title> 1858 1859 <para> 1860 If no bridged adapters show up in the Networking section of the 1861 VM settings, this typically means that the bridged networking 1862 driver was not installed properly on your host. This could be 1863 due to the following reasons: 1864 </para> 1865 1866 <itemizedlist> 1867 1868 <listitem> 1869 <para> 1870 The maximum allowed filter count was reached on the host. In 1871 this case, the MSI log would mention the 1872 <computeroutput>0x8004a029</computeroutput> error code 1873 returned on NetFlt network component install: 1874 1875 <screen>VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029)</screen> 1876 </para> 1877 1878 <para> 1879 You can try to increase the maximum filter count in the 1880 Windows registry at the following key: 1881 1882 <screen>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters</screen> 1883 1884 The maximum number allowed is 14. After a reboot, try to 1885 reinstall VirtualBox. 1886 </para> 1887 </listitem> 1888 1889 <listitem> 1890 <para> 1891 The INF cache is corrupt. In this case, the install log 1892 (<computeroutput>%windir%\inf\setupapi.log</computeroutput> 1893 on XP or 1894 <computeroutput>%windir%\inf\setupapi.dev.log</computeroutput> 1895 on Vista or later) would typically mention the failure to 1896 find a suitable driver package for either the 1897 <computeroutput>sun_VBoxNetFlt</computeroutput> or 1898 <computeroutput>sun_VBoxNetFltmp</computeroutput> 1899 components. The solution then is to uninstall VirtualBox, 1900 remove the INF cache 1901 (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), 1902 reboot and try to reinstall VirtualBox 1903 </para> 1904 </listitem> 1905 1906 </itemizedlist> 1907 1908 </sect2> 1909 1910 <sect2 id="ts_win-host-host-only-network-adapters"> 1911 1912 <title>Host-only Networking Adapters Cannot be Created</title> 1913 1914 <para> 1915 If host-only adapter cannot be created, either via the Manager 1916 or VBoxManage, then the INF cache is probably corrupt. In this 1917 case, the install log 1918 (<computeroutput>%windir%\inf\setupapi.log</computeroutput> on 1919 XP or 1920 <computeroutput>%windir%\inf\setupapi.dev.log</computeroutput> 1921 on Vista or later) would typically mention the failure to find a 1922 suitable driver package for the 1923 <computeroutput>sun_VBoxNetAdp</computeroutput> component. 1924 Again, as with the bridged networking problem described above, 1925 the solution is to uninstall VirtualBox, remove the INF cache 1926 (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), 1927 reboot and try to reinstall VirtualBox. 1928 </para> 1929 1930 </sect2> 1931 1932 </sect1> 1933 1934 <sect1 id="ts_lin-hosts"> 1935 1936 <title>Linux Hosts</title> 1937 1938 <sect2 id="ts_linux-kernelmodule-fails-to-load"> 1939 1940 <title>Linux Kernel Module Refuses to Load</title> 1941 1942 <para> 1943 If the VirtualBox kernel module, 1944 <computeroutput>vboxdrv</computeroutput>, refuses to load you 1945 may see an "Error inserting vboxdrv: Invalid argument" message. 1946 As root, check the output of the 1947 <computeroutput>dmesg</computeroutput> command to find out why 1948 the load failed. Most probably the kernel disagrees with the 1949 version of <computeroutput>gcc</computeroutput> used to compile 1950 the module. Make sure that you use the same compiler as used to 1951 build the kernel. 1952 </para> 1953 1954 </sect2> 1955 1956 <sect2 id="ts_linux-host-cd-dvd-not-found"> 1957 1958 <title>Linux Host CD/DVD Drive Not Found</title> 1959 1960 <para> 1961 If you have configured a virtual machine to use the host's 1962 CD/DVD drive, but this does not appear to work, make sure that 1963 the current user has permission to access the corresponding 1964 Linux device file. This is 1965 <computeroutput>/dev/hdc</computeroutput>, 1966 <computeroutput>/dev/scd0</computeroutput>, 1967 <computeroutput>/dev/cdrom</computeroutput> or similar. On most 1968 distributions, the user must be added to a corresponding group, 1969 usually called <computeroutput>cdrom</computeroutput> or 1970 <computeroutput>cdrw</computeroutput>. 1971 </para> 1972 1973 </sect2> 1974 1975 <sect2 id="ts_linux-host-cd-dvd-not-found-legacy"> 1976 1977 <title>Linux Host CD/DVD Drive Not Found (Older Distributions)</title> 1978 1979 <para> 1980 On older Linux distributions, if your CD/DVD device has a 1981 different name, VirtualBox may be unable to find it. On older 1982 Linux hosts, VirtualBox performs the following steps to locate 1983 your CD/DVD drives: 1984 </para> 1985 1986 <orderedlist> 1987 1988 <listitem> 1989 <para> 1990 VirtualBox checks if the environment variable 1991 <computeroutput>VBOX_CDROM</computeroutput> is defined. If 1992 so, VirtualBox omits all the following checks. 1993 </para> 1994 </listitem> 1995 1996 <listitem> 1997 <para> 1998 VirtualBox tests if 1999 <computeroutput>/dev/cdrom</computeroutput> works. 2000 </para> 2001 </listitem> 2002 2003 <listitem> 2004 <para> 2005 VirtualBox checks if any CD/DVD drives are currently mounted 2006 by checking <computeroutput>/etc/mtab</computeroutput>. 2007 </para> 2008 </listitem> 2009 2010 <listitem> 2011 <para> 2012 VirtualBox checks if any of the entries in 2013 <computeroutput>/etc/fstab</computeroutput> point to CD/DVD 2014 devices. 2015 </para> 2016 </listitem> 2017 2018 </orderedlist> 2019 2020 <para> 2021 You can set the VBOX_CDROM environment variable to contain a 2022 list of your CD/DVD devices, separated by colons. For example: 2023 </para> 2024 2025 <screen>export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'</screen> 2026 2027 <para> 2028 On modern Linux distributions, VirtualBox uses the hardware 2029 abstraction layer (HAL) to locate CD and DVD hardware. 2030 </para> 2031 2032 </sect2> 2033 2034 <sect2 id="ts_linux-host-floppy-not-found"> 2035 2036 <title>Linux Host Floppy Not Found</title> 2037 2038 <para> 2039 <xref linkend="ts_linux-host-cd-dvd-not-found-legacy"/> appplies 2040 also to floppy disks, except that on older distributions 2041 VirtualBox tests for <computeroutput>/dev/fd*</computeroutput> 2042 devices by default. This can be overridden with the 2043 <computeroutput>VBOX_FLOPPY</computeroutput> environment 2044 variable. 2045 </para> 2046 2047 </sect2> 2048 2049 <sect2 id="ts_linux-host-ide-messages"> 2050 2051 <title>Strange Guest IDE Error Messages When Writing to CD/DVD</title> 2052 2053 <para> 2054 If the experimental CD/DVD writer support is enabled with an 2055 incorrect VirtualBox, host or guest configuration, it is 2056 possible that any attempt to access the CD/DVD writer fails and 2057 simply results in guest kernel error messages for Linux guests 2058 or application error messages for Windows guests. VirtualBox 2059 performs the usual consistency checks when a VM is powered up. 2060 In particular, it aborts with an error message if the device for 2061 the CD/DVD writer is not writable by the user starting the VM. 2062 But VirtualBox cannot detect all misconfigurations. The 2063 necessary host and guest OS configuration is not specific for 2064 VirtualBox, but a few frequent problems are listed here which 2065 occurred in connection with VirtualBox. 2066 </para> 2067 2068 <para> 2069 Special care must be taken to use the correct device. The 2070 configured host CD/DVD device file name, in most cases 2071 <literal>/dev/cdrom</literal>, must point to the device that 2072 allows writing to the CD/DVD unit. For CD/DVD writer units 2073 connected to a SCSI controller or to a IDE controller that 2074 interfaces to the Linux SCSI subsystem (common for some SATA 2075 controllers), this must refer to the SCSI device node, such as 2076 <literal>/dev/scd0</literal>. Even for IDE CD/DVD writer units 2077 this must refer to the appropriate SCSI CD-ROM device node, such 2078 as <literal>/dev/scd0</literal>, if the 2079 <literal>ide-scsi</literal> kernel module is loaded. This module 2080 is required for CD/DVD writer support with all Linux 2.4 kernels 2081 and some early 2.6 kernels. Many Linux distributions load this 2082 module whenever a CD/DVD writer is detected in the system, even 2083 if the kernel would support CD/DVD writers without the module. 2084 VirtualBox supports the use of IDE device files, such as 2085 <literal>/dev/hdc</literal>, provided the kernel supports this 2086 and the <literal>ide-scsi</literal> module is not loaded. 2087 </para> 2088 2089 <para> 2090 Similar rules, except that within the guest the CD/DVD writer is 2091 always an IDE device, apply to the guest configuration. Since 2092 this setup is very common, it is likely that the default 2093 configuration of the guest works as expected. 2094 </para> 2095 2096 </sect2> 2097 2098 <sect2 id="ts_linux-host-vboxsvc"> 2099 2100 <title>VBoxSVC IPC Issues</title> 2101 2102 <para> 2103 On Linux, VirtualBox makes use of a custom version of Mozilla 2104 XPCOM (cross platform component object model) for inter-process 2105 and intra-process communication (IPC). The process 2106 <computeroutput>VBoxSVC</computeroutput> serves as a 2107 communication hub between different VirtualBox processes and 2108 maintains the global configuration, such as the XML database. 2109 When starting a VirtualBox component, the processes 2110 <computeroutput>VBoxSVC</computeroutput> and 2111 <computeroutput>VBoxXPCOMIPCD</computeroutput> are started 2112 automatically. They are only accessible from the user account 2113 they are running under. <computeroutput>VBoxSVC</computeroutput> 2114 owns the VirtualBox configuration database which normally 2115 resides in 2116 <computeroutput>~/.config/VirtualBox</computeroutput>, or the 2117 appropriate configuration directory for your operating system. 2118 While it is running, the configuration files are locked. 2119 Communication between the various VirtualBox components and 2120 <computeroutput>VBoxSVC</computeroutput> is performed through a 2121 local domain socket residing in 2122 <computeroutput>/tmp/.vbox-<username>-ipc</computeroutput>. 2123 In case there are communication problems, such as a VirtualBox 2124 application cannot communicate with 2125 <computeroutput>VBoxSVC</computeroutput>, terminate the daemons 2126 and remove the local domain socket directory. 2127 </para> 2128 2129 </sect2> 2130 2131 <sect2 id="ts_usb-linux"> 2132 2133 <title>USB Not Working</title> 2134 2135 <para> 2136 If USB is not working on your Linux host, make sure that the 2137 current user is a member of the 2138 <computeroutput>vboxusers</computeroutput> group. Please keep in 2139 mind that group membership does not take effect immediately but 2140 rather at the next login. If available, the 2141 <computeroutput>newgrp</computeroutput> command may avoid the 2142 need for logout/login. 2143 </para> 2144 2145 </sect2> 2146 2147 <sect2 id="ts_linux-host-grsec"> 2148 2149 <title>PAX/grsec Kernels</title> 2150 2151 <para> 2152 Linux kernels including the grsec patch, see 2153 <ulink 2154 url="http://www.grsecurity.net/">http://www.grsecurity.net/</ulink>, 2155 and derivates have to disable PAX_MPROTECT for the VBox binaries 2156 to be able to start a VM. The reason is that VBox has to create 2157 executable code on anonymous memory. 2158 </para> 2159 2160 </sect2> 2161 2162 <sect2 id="ts_linux-host-malloc"> 2163 2164 <title>Linux Kernel vmalloc Pool Exhausted</title> 2165 2166 <para> 2167 When running a large number of VMs with a lot of RAM on a Linux 2168 system, say 20 VMs with 1 GB of RAM each, additional VMs might 2169 fail to start with a kernel error saying that the vmalloc pool 2170 is exhausted and should be extended. The error message also 2171 tells you to specify 2172 <computeroutput>vmalloc=256MB</computeroutput> in your kernel 2173 parameter list. If adding this parameter to your GRUB or LILO 2174 configuration makes the kernel fail to boot, with an error 2175 message such as "failed to mount the root partition", then you 2176 have probably run into a memory conflict of your kernel and 2177 initial RAM disk. This can be solved by adding the following 2178 parameter to your GRUB configuration: 2179 </para> 2180 2181 <screen>uppermem 524288</screen> 2182 2183 </sect2> 2184 2185 </sect1> 2186 2187 <sect1 id="ts_sol-hosts"> 2188 2189 <title>Solaris Hosts</title> 2190 2191 <sect2 id="ts_sol-host-zfs"> 2192 2193 <title>Cannot Start VM, Not Enough Contiguous Memory</title> 2194 2195 <para> 2196 The ZFS file system is known to use nearly all available RAM as 2197 cache if the default system settings are not changed. This may 2198 lead to a heavy fragmentation of the host memory preventing 2199 VirtualBox VMs from being started. We recommend to limit the ZFS 2200 cache by adding the following line to /etc/system, where 2201 <computeroutput>xxxx</computeroutput> bytes is the amount of 2202 memory usable for the ZFS cache. 2203 </para> 2204 2205 <screen>set zfs:zfs_arc_max = xxxx</screen> 2206 2207 </sect2> 2208 2209 <sect2 id="ts_sol-host-swap-space"> 2210 2211 <title>VM Aborts With Out of Memory Errors on Solaris 10 Hosts</title> 2212 2213 <para> 2214 32-bit Solaris 10 hosts (bug 1225025) require swap space equal 2215 to, or greater than the host's physical memory size. For 2216 example, 8 GB physical memory would require at least 8 GB swap. 2217 This can be configured during a Solaris 10 install by choosing a 2218 Custom Install and changing the default partitions. 2219 </para> 2220 2221 <note> 1167 2222 <para> 1168 If xHCI (USB 3.0) emulation is enabled for FreeBSD 10.0 guests, the guest 1169 OS will hang. This is caused by the guest OS incorrectly handling systems 1170 where MSIs (Message Signaled Interrupts) are not used with the xHCI device. 2223 This restriction applies only to 32-bit Solaris hosts, 64-bit 2224 hosts are not affected. 1171 2225 </para> 1172 <para> 1173 The problem does not exist in earlier FreeBSD releases and was fixed in 1174 FreeBSD 10.1. 1175 </para> 1176 </sect2> 2226 </note> 2227 2228 <para> 2229 For existing Solaris 10 installs, an additional swap image needs 2230 to be mounted and used as swap. Hence if you have 1 GB swap and 2231 8 GB of physical memory, you require to add 7 GB more swap. This 2232 can be done as follows: 2233 </para> 2234 2235 <para> 2236 For ZFS, run the following as root user: 2237 </para> 2238 2239 <screen>zfs create -V 8gb /_<ZFS volume>_/swap 2240 swap -a /dev/zvol/dsk/_<ZFS volume>_/swap</screen> 2241 2242 <para> 2243 To mount if after reboot, add the following line to /etc/vfstab: 2244 </para> 2245 2246 <screen>/dev/zvol/dsk/_<ZFS volume>_/swap - - swap - no -</screen> 2247 2248 <para> 2249 Alternatively, you could grow the existing swap using: 2250 </para> 2251 2252 <screen>zfs set volsize=8G rpool/swap</screen> 2253 2254 <para> 2255 And reboot the system for the changes to take effect. 2256 </para> 2257 2258 <para> 2259 For UFS (as root user): 2260 </para> 2261 2262 <screen>mkfile 7g /path/to/swapfile.img 2263 swap -a /path/to/swapfile.img</screen> 2264 2265 <para> 2266 To mount it after reboot, add the following line to /etc/vfstab: 2267 </para> 2268 2269 <screen>/path/to/swap.img - - swap - no -</screen> 2270 2271 </sect2> 2272 1177 2273 </sect1> 1178 2274 1179 <sect1 id="ts_win-hosts">1180 <title>Windows hosts</title>1181 1182 <sect2>1183 <title>VBoxSVC out-of-process COM server issues</title>1184 1185 <para>VirtualBox makes use of the Microsoft Component Object Model (COM)1186 for inter- and intra-process communication. This allows VirtualBox to1187 share a common configuration among different virtual machine processes1188 and provide several user interface options based on a common1189 architecture. All global status information and configuration is1190 maintained by the process <computeroutput>VBoxSVC.exe</computeroutput>,1191 which is an out-of-process COM server. Whenever a VirtualBox process is1192 started, it requests access to the COM server and Windows automatically1193 starts the process. Note that it should never be started by the end1194 user.</para>1195 1196 <para>When the last process disconnects from the COM server, it will1197 terminate itself after some seconds. The VirtualBox configuration (XML1198 files) is maintained and owned by the COM server and the files are1199 locked whenever the server runs.</para>1200 1201 <para>In some cases - such as when a virtual machine is terminated1202 unexpectedly - the COM server will not notice that the client is1203 disconnected and stay active for a longer period (10 minutes or so)1204 keeping the configuration files locked. In other rare cases the COM1205 server might experience an internal error and subsequently other1206 processes fail to initialize it. In these situations, it is recommended1207 to use the Windows task manager to kill the process1208 <computeroutput>VBoxSVC.exe</computeroutput>.</para>1209 </sect2>1210 1211 <sect2>1212 <title>CD/DVD changes not recognized</title>1213 1214 <para>In case you have assigned a physical CD/DVD drive to a guest and1215 the guest does not notice when the medium changes, make sure that the1216 Windows media change notification (MCN) feature is not turned off. This1217 is represented by the following key in the Windows registry:<screen><literal>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</literal></screen>Certain1218 applications may disable this key against Microsoft's advice. If it is1219 set to 0, change it to 1 and reboot your system. VirtualBox relies on1220 Windows notifying it of media changes.</para>1221 </sect2>1222 1223 <sect2>1224 <title>Sluggish response when using Microsoft RDP client</title>1225 1226 <para>If connecting to a Virtual Machine via the Microsoft RDP client1227 (called Remote Desktop Connection), there can be large delays between1228 input (moving the mouse over a menu is the most obvious situation) and1229 output. This is because this RDP client collects input for a certain1230 time before sending it to the RDP server.</para>1231 1232 <para>The interval can be decreased by setting a Windows registry key to1233 smaller values than the default of 100. The key does not exist initially1234 and must be of type DWORD. The unit for its values is milliseconds.1235 Values around 20 are suitable for low-bandwidth connections between the1236 RDP client and server. Values around 4 can be used for a gigabit1237 Ethernet connection. Generally values below 10 achieve a performance1238 that is very close to that of the local input devices and screen of the1239 host on which the Virtual Machine is running.</para>1240 1241 <para>Depending whether the setting should be changed for an individual1242 user or for the system, either</para>1243 1244 <screen>HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>1245 1246 <para>or</para>1247 1248 <screen>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>1249 1250 <para>can be set appropriately.</para>1251 </sect2>1252 1253 <sect2>1254 <title>Running an iSCSI initiator and target on a single system</title>1255 1256 <para>Deadlocks can occur on a Windows host when attempting to access an1257 iSCSI target running in a guest virtual machine with an iSCSI initiator1258 (e.g. Microsoft iSCSI Initiator) that is running on the host. This is1259 caused by a flaw in the Windows cache manager component, and causes1260 sluggish host system response for several minutes, followed by a1261 "Delayed Write Failed" error message in the system tray or in a separate1262 message window. The guest is blocked during that period and may show1263 error messages or become unstable.</para>1264 1265 <para>Setting the environment variable1266 <computeroutput>VBOX_DISABLE_HOST_DISK_CACHE</computeroutput> to 1 will1267 enable a workaround for this problem until Microsoft addresses the1268 issue. For example, open a command prompt window and start VirtualBox1269 like this:</para>1270 1271 <screen>set VBOX_DISABLE_HOST_DISK_CACHE=11272 VirtualBox</screen>1273 1274 <para>While this will decrease guest disk performance (especially1275 writes), it does not affect the performance of other applications1276 running on the host.</para>1277 </sect2>1278 1279 <sect2>1280 <title>Bridged networking adapters missing</title>1281 1282 <para>If no bridged adapters show up in the "Networking" section of the1283 VM settings, this typically means that the bridged networking driver was1284 not installed properly on your host. This could be due to the following1285 reasons: <itemizedlist>1286 <listitem>1287 <para>The maximum allowed filter count was reached on the host. In1288 this case, the MSI log would mention the1289 <computeroutput>0x8004a029</computeroutput> error code returned on1290 NetFlt network component install:<screen>VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029)</screen></para>1291 1292 <para>You can try to increase the maximum filter count in the1293 Windows registry at the following key:<screen>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters</screen>The1294 maximum number allowed is 14. After a reboot, try to re-install1295 VirtualBox.</para>1296 </listitem>1297 1298 <listitem>1299 <para>The INF cache is corrupt. In this case, the install log1300 (<computeroutput>%windir%\inf\setupapi.log</computeroutput> on XP1301 or <computeroutput>%windir%\inf\setupapi.dev.log</computeroutput>1302 on Vista or later) would typically mention the failure to find a1303 suitable driver package for either the1304 <computeroutput>sun_VBoxNetFlt</computeroutput> or1305 <computeroutput>sun_VBoxNetFltmp</computeroutput> components. The1306 solution then is to uninstall VirtualBox, remove the INF cache1307 (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), reboot1308 and try to re-install VirtualBox</para>1309 </listitem>1310 </itemizedlist></para>1311 </sect2>1312 1313 <sect2>1314 <title>Host-only networking adapters cannot be created</title>1315 1316 <para>If host-only adapter cannot be created (either via the Manager or1317 VBoxManage), then the INF cache is probably corrupt. In this case, the1318 install log (<computeroutput>%windir%\inf\setupapi.log</computeroutput>1319 on XP or <computeroutput>%windir%\inf\setupapi.dev.log</computeroutput>1320 on Vista or later) would typically mention the failure to find a1321 suitable driver package for the1322 <computeroutput>sun_VBoxNetAdp</computeroutput> component. Again, as1323 with the bridged networking problem described above, the solution is to1324 uninstall VirtualBox, remove the INF cache1325 (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), reboot and1326 try to re-install VirtualBox.</para>1327 </sect2>1328 </sect1>1329 1330 <sect1 id="ts_lin-hosts">1331 <title>Linux hosts</title>1332 1333 <sect2 id="ts_linux-kernelmodule-fails-to-load">1334 <title>Linux kernel module refuses to load</title>1335 1336 <para>If the VirtualBox kernel module1337 (<computeroutput>vboxdrv</computeroutput>) refuses to load, i.e. you get1338 an "Error inserting vboxdrv: Invalid argument", check (as root) the1339 output of the <computeroutput>dmesg</computeroutput> command to find out1340 why the load failed. Most probably the kernel disagrees with the version1341 of the gcc used to compile the module. Make sure that you use the same1342 compiler as used to build the kernel.</para>1343 </sect2>1344 1345 <sect2>1346 <title>Linux host CD/DVD drive not found</title>1347 1348 <para>If you have configured a virtual machine to use the host's CD/DVD1349 drive, but this does not appear to work, make sure that the current user1350 has permission to access the corresponding Linux device file1351 (<computeroutput>/dev/hdc</computeroutput> or1352 <computeroutput>/dev/scd0</computeroutput> or1353 <computeroutput>/dev/cdrom</computeroutput> or similar). On most1354 distributions, the user must be added to a corresponding group (usually1355 called <computeroutput>cdrom</computeroutput> or1356 <computeroutput>cdrw</computeroutput>).</para>1357 </sect2>1358 1359 <sect2>1360 <title>Linux host CD/DVD drive not found (older distributions)</title>1361 1362 <para>On older Linux distributions, if your CD/DVD device has a1363 different name, VirtualBox may be unable to find it. On older Linux1364 hosts, VirtualBox performs the following steps to locate your CD/DVD1365 drives:</para>1366 1367 <para><orderedlist>1368 <listitem>1369 <para>VirtualBox examines if the environment variable1370 <computeroutput>VBOX_CDROM</computeroutput> is defined (see1371 below). If so, VirtualBox omits all the following checks.</para>1372 </listitem>1373 1374 <listitem>1375 <para>VirtualBox tests if1376 <computeroutput>/dev/cdrom</computeroutput> works.</para>1377 </listitem>1378 1379 <listitem>1380 <para>In addition, VirtualBox checks if any CD/DVD drives are1381 currently mounted by checking1382 <computeroutput>/etc/mtab</computeroutput>.</para>1383 </listitem>1384 1385 <listitem>1386 <para>In addition, VirtualBox checks if any of the entries in1387 <computeroutput>/etc/fstab</computeroutput> point to CD/DVD1388 devices.</para>1389 </listitem>1390 </orderedlist></para>1391 1392 <para>In other words, you can try to set VBOX_CDROM to contain a list of1393 your CD/DVD devices, separated by colons, for example as follows:</para>1394 1395 <para><screen>export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'</screen>On1396 modern Linux distributions, VirtualBox uses the hardware abstraction1397 layer (hal) to locate CD and DVD hardware.</para>1398 </sect2>1399 1400 <sect2>1401 <title>Linux host floppy not found</title>1402 1403 <para>The previous instructions (for CD and DVD drives) apply1404 accordingly to floppy disks, except that on older distributions1405 VirtualBox tests for <computeroutput>/dev/fd*</computeroutput> devices1406 by default, and this can be overridden with the1407 <computeroutput>VBOX_FLOPPY</computeroutput> environment1408 variable.</para>1409 </sect2>1410 1411 <sect2>1412 <title>Strange guest IDE error messages when writing to CD/DVD</title>1413 1414 <para>If the experimental CD/DVD writer support is enabled with an1415 incorrect VirtualBox, host or guest configuration, it is possible that1416 any attempt to access the CD/DVD writer fails and simply results in1417 guest kernel error messages (for Linux guests) or application error1418 messages (for Windows guests). VirtualBox performs the usual consistency1419 checks when a VM is powered up (in particular it aborts with an error1420 message if the device for the CD/DVD writer is not writable by the user1421 starting the VM), but it cannot detect all misconfigurations. The1422 necessary host and guest OS configuration is not specific for1423 VirtualBox, but a few frequent problems are listed here which occurred1424 in connection with VirtualBox.</para>1425 1426 <para>Special care must be taken to use the correct device. The1427 configured host CD/DVD device file name (in most cases1428 <literal>/dev/cdrom</literal>) must point to the device that allows1429 writing to the CD/DVD unit. For CD/DVD writer units connected to a SCSI1430 controller or to a IDE controller that interfaces to the Linux SCSI1431 subsystem (common for some SATA controllers), this must refer to the1432 SCSI device node (e.g. <literal>/dev/scd0</literal>). Even for IDE1433 CD/DVD writer units this must refer to the appropriate SCSI CD-ROM1434 device node (e.g. <literal>/dev/scd0</literal>) if the1435 <literal>ide-scsi</literal> kernel module is loaded. This module is1436 required for CD/DVD writer support with all Linux 2.4 kernels and some1437 early 2.6 kernels. Many Linux distributions load this module whenever a1438 CD/DVD writer is detected in the system, even if the kernel would1439 support CD/DVD writers without the module. VirtualBox supports the use1440 of IDE device files (e.g. <literal>/dev/hdc</literal>), provided the1441 kernel supports this and the <literal>ide-scsi</literal> module is not1442 loaded.</para>1443 1444 <para>Similar rules (except that within the guest the CD/DVD writer is1445 always an IDE device) apply to the guest configuration. Since this setup1446 is very common, it is likely that the default configuration of the guest1447 works as expected.</para>1448 </sect2>1449 1450 <sect2>1451 <title>VBoxSVC IPC issues</title>1452 1453 <para>On Linux, VirtualBox makes use of a custom version of Mozilla1454 XPCOM (cross platform component object model) for inter- and1455 intra-process communication (IPC). The process1456 <computeroutput>VBoxSVC</computeroutput> serves as a communication hub1457 between different VirtualBox processes and maintains the global1458 configuration, i.e. the XML database. When starting a VirtualBox1459 component, the processes <computeroutput>VBoxSVC</computeroutput> and1460 <computeroutput>VBoxXPCOMIPCD</computeroutput> are started1461 automatically. They are only accessible from the user account they are1462 running under. <computeroutput>VBoxSVC</computeroutput> owns the1463 VirtualBox configuration database which normally resides in1464 <computeroutput>~/.config/VirtualBox</computeroutput>, or the appropriate configuration directory for your operating system. While it is running, the1465 configuration files are locked. Communication between the various1466 VirtualBox components and <computeroutput>VBoxSVC</computeroutput> is1467 performed through a local domain socket residing in1468 <computeroutput>/tmp/.vbox-<username>-ipc</computeroutput>. In1469 case there are communication problems (i.e. a VirtualBox application1470 cannot communicate with <computeroutput>VBoxSVC</computeroutput>),1471 terminate the daemons and remove the local domain socket1472 directory.</para>1473 </sect2>1474 1475 <sect2 id="ts_usb-linux">1476 <title>USB not working</title>1477 1478 <para>If USB is not working on your Linux host, make sure that the1479 current user is a member of the1480 <computeroutput>vboxusers</computeroutput> group.1481 Please keep in mind that group membership does not take effect immediately1482 but rather at the next login. If available, the1483 <computeroutput>newgrp</computeroutput> command may avoid the need for1484 logout/login.</para>1485 </sect2>1486 1487 <sect2>1488 <title>PAX/grsec kernels</title>1489 1490 <para>Linux kernels including the grsec patch (see <literal><ulink1491 url="http://www.grsecurity.net/">http://www.grsecurity.net/</ulink></literal>)1492 and derivates have to disable PAX_MPROTECT for the VBox binaries to be1493 able to start a VM. The reason is that VBox has to create executable1494 code on anonymous memory.</para>1495 </sect2>1496 1497 <sect2>1498 <title>Linux kernel vmalloc pool exhausted</title>1499 1500 <para>When running a large number of VMs with a lot of RAM on a Linux1501 system (say 20 VMs with 1 GB of RAM each), additional VMs might fail to1502 start with a kernel error saying that the vmalloc pool is exhausted and1503 should be extended. The error message also tells you to specify1504 <computeroutput>vmalloc=256MB</computeroutput> in your kernel parameter1505 list. If adding this parameter to your GRUB or LILO configuration makes1506 the kernel fail to boot (with a weird error message such as "failed to1507 mount the root partition"), then you have probably run into a memory1508 conflict of your kernel and initial RAM disk. This can be solved by1509 adding the following parameter to your GRUB configuration:</para>1510 1511 <screen>uppermem 524288</screen>1512 </sect2>1513 </sect1>1514 1515 <sect1 id="ts_sol-hosts">1516 <title>Solaris hosts</title>1517 1518 <sect2>1519 <title>Cannot start VM, not enough contiguous memory</title>1520 1521 <para>The ZFS file system is known to use nearly all available RAM as cache if1522 the default system settings are not changed. This may lead to a heavy1523 fragmentation of the host memory preventing VirtualBox VMs from being1524 started. We recommend to limit the ZFS cache by adding a line<screen>set zfs:zfs_arc_max = xxxx</screen>1525 to /etc/system where <computeroutput>xxxx</computeroutput> bytes is the1526 amount of memory usable for the ZFS cache.</para>1527 </sect2>1528 1529 <sect2>1530 <title>VM aborts with out of memory errors on Solaris 10 hosts</title>1531 1532 <para>32-bit Solaris 10 hosts (bug 1225025) require swap space equal to,1533 or greater than the host's physical memory size. For example, 8 GB1534 physical memory would require at least 8 GB swap. This can be configured1535 during a Solaris 10 install by choosing a 'custom install' and changing1536 the default partitions.</para>1537 1538 <note>1539 <para>This restriction applies only to 32-bit Solaris hosts, 64-bit1540 hosts are not affected!</para>1541 </note>1542 1543 <para>For existing Solaris 10 installs, an additional swap image needs1544 to be mounted and used as swap. Hence if you have 1 GB swap and 8 GB of1545 physical memory, you require to add 7 GB more swap. This can be done as1546 follows:</para>1547 1548 <para>For ZFS (as root user):</para>1549 1550 <para><screen>zfs create -V 8gb /_<ZFS volume>_/swap1551 swap -a /dev/zvol/dsk/_<ZFS volume>_/swap</screen></para>1552 1553 <para>To mount if after reboot, add the following line to1554 /etc/vfstab:</para>1555 1556 <screen>/dev/zvol/dsk/_<ZFS volume>_/swap - - swap - no -</screen>1557 1558 <para>Alternatively, you could grow the existing swap using:</para>1559 1560 <screen>zfs set volsize=8G rpool/swap</screen>1561 1562 <para>And reboot the system for the changes to take effect.</para>1563 1564 <para>For UFS (as root user):</para>1565 1566 <screen>mkfile 7g /path/to/swapfile.img1567 swap -a /path/to/swapfile.img</screen>1568 1569 <para>To mount it after reboot, add the following line to1570 /etc/vfstab:</para>1571 1572 <screen>/path/to/swap.img - - swap - no -</screen>1573 </sect2>1574 </sect1>1575 2275 </chapter> -
trunk/doc/manual/en_US/user_VBoxManage.xml
r72949 r73276 17 17 hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 18 18 --> 19 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 20 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 19 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 20 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 21 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 22 %all.entities; 23 ]> 21 24 <chapter id="vboxmanage"> 25 22 26 <title>VBoxManage</title> 23 27 24 <sect1> 28 <sect1 id="vboxmanage-intro"> 29 25 30 <title>Introduction</title> 26 31 27 <para>As briefly mentioned in <xref linkend="frontends" />, VBoxManage is 28 the command-line interface to VirtualBox. With it, you can completely 29 control VirtualBox from the command line of your host operating system. 30 VBoxManage supports all the features that the graphical user interface 31 gives you access to, but it supports a lot more than that. It exposes 32 really all the features of the virtualization engine, even those that 33 cannot (yet) be accessed from the GUI.</para> 34 35 <para>You will need to use the command line if you want to</para> 36 37 <para><itemizedlist> 38 <listitem> 39 <para>use a different user interface than the main GUI (for example, 40 VBoxSDL or the VBoxHeadless server);</para> 41 </listitem> 42 43 <listitem> 44 <para>control some of the more advanced and experimental 45 configuration settings for a VM.</para> 46 </listitem> 47 </itemizedlist></para> 48 49 <para>There are two main things to keep in mind when using 50 <computeroutput>VBoxManage</computeroutput>: First, 51 <computeroutput>VBoxManage</computeroutput> must always be used with a 52 specific "subcommand", such as "list" or "createvm" or "startvm". All the 53 subcommands that <computeroutput>VBoxManage</computeroutput> supports are 54 described in detail in <xref linkend="vboxmanage" />.</para> 55 56 <para>Second, most of these subcommands require that you specify a 57 particular virtual machine after the subcommand. There are two ways you 58 can do this:</para> 32 <para> 33 As briefly mentioned in <xref linkend="frontends" />, VBoxManage 34 is the command-line interface to VirtualBox. With it, you can 35 completely control VirtualBox from the command line of your host 36 operating system. VBoxManage supports all the features that the 37 graphical user interface gives you access to, but it supports a 38 lot more than that. It exposes really all the features of the 39 virtualization engine, even those that cannot (yet) be accessed 40 from the GUI. 41 </para> 42 43 <para> 44 You will need to use the command line if you want to do the 45 following: 46 </para> 59 47 60 48 <itemizedlist> 61 <listitem> 62 <para>You can specify the VM name, as it is shown in the VirtualBox 63 GUI. Note that if that name contains spaces, then you must enclose the 64 entire name in double quotes (as it is always required with command 65 line arguments that contain spaces).</para> 66 67 <para>For example:<screen>VBoxManage startvm "Windows XP"</screen></para> 68 </listitem> 69 70 <listitem> 71 <para>You can specify the UUID, which is the internal unique 72 identifier that VirtualBox uses to refer to the virtual machine. 73 Assuming that the aforementioned VM called "Windows XP" has the UUID 74 shown below, the following command has the same effect as the 75 previous:<screen>VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5</screen></para> 76 </listitem> 49 50 <listitem> 51 <para> 52 Use a different user interface than the main GUI. For example, 53 VBoxSDL or the VBoxHeadless server. 54 </para> 55 </listitem> 56 57 <listitem> 58 <para> 59 Control some of the more advanced and experimental 60 configuration settings for a VM. 61 </para> 62 </listitem> 63 77 64 </itemizedlist> 78 65 79 <para>You can type <computeroutput>VBoxManage list vms</computeroutput> to 80 have all currently registered VMs listed with all their settings, 81 including their respective names and UUIDs.</para> 82 83 <para>Some typical examples of how to control VirtualBox from the command 84 line are listed below:</para> 66 <para> 67 There are two main things to keep in mind when using 68 <computeroutput>VBoxManage</computeroutput>: First, 69 <computeroutput>VBoxManage</computeroutput> must always be used 70 with a specific "subcommand", such as "list" or "createvm" or 71 "startvm". All the subcommands that 72 <computeroutput>VBoxManage</computeroutput> supports are described 73 in detail in <xref linkend="vboxmanage" />. 74 </para> 75 76 <para> 77 Second, most of these subcommands require that you specify a 78 particular virtual machine after the subcommand. There are two 79 ways you can do this: 80 </para> 85 81 86 82 <itemizedlist> 87 <listitem> 88 <para>To create a new virtual machine from the command line and 89 immediately register it with VirtualBox, use 90 <computeroutput>VBoxManage createvm</computeroutput> with the 91 <computeroutput>--register</computeroutput> option,<footnote> 92 <para>For details, see <xref 93 linkend="vboxmanage-createvm" />.</para> 94 </footnote> like this:</para> 95 96 <screen>$ VBoxManage createvm --name "SUSE 10.2" --register 97 VirtualBox Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 98 (C) 2005-@VBOX_C_YEAR@ @VBOX_VENDOR@ 83 84 <listitem> 85 <para> 86 You can specify the VM name, as it is shown in the VirtualBox 87 GUI. Note that if that name contains spaces, then you must 88 enclose the entire name in double quotes (as it is always 89 required with command line arguments that contain spaces). 90 </para> 91 92 <para> 93 For example: 94 95 <screen>VBoxManage startvm "Windows XP"</screen> 96 </para> 97 </listitem> 98 99 <listitem> 100 <para> 101 You can specify the UUID, which is the internal unique 102 identifier that VirtualBox uses to refer to the virtual 103 machine. Assuming that the aforementioned VM called "Windows 104 XP" has the UUID shown below, the following command has the 105 same effect as the previous: 106 107 <screen>VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5</screen> 108 </para> 109 </listitem> 110 111 </itemizedlist> 112 113 <para> 114 You can type <computeroutput>VBoxManage list vms</computeroutput> 115 to have all currently registered VMs listed with all their 116 settings, including their respective names and UUIDs. 117 </para> 118 119 <para> 120 Some typical examples of how to control VirtualBox from the 121 command line are listed below: 122 </para> 123 124 <itemizedlist> 125 126 <listitem> 127 <para> 128 To create a new virtual machine from the command line and 129 immediately register it with VirtualBox, use 130 <computeroutput>VBoxManage createvm</computeroutput> with the 131 <computeroutput>--register</computeroutput> option, 132 133 <footnote> 134 135 <para> 136 For details, see 137 <xref 138 linkend="vboxmanage-createvm" />. 139 </para> 140 141 </footnote> 142 143 like this: 144 </para> 145 146 <screen>$ VBoxManage createvm --name "SUSE 10.2" --register 147 VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable> 148 (C) 2005-2018 Oracle Corporation 99 149 All rights reserved. 100 150 … … 103 153 Settings file: '/home/username/.config/VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml'</screen> 104 154 105 <para>As can be seen from the above output, a new virtual machine has 106 been created with a new UUID and a new XML settings file.</para> 107 </listitem> 108 109 <listitem> 110 <para>To show the configuration of a particular VM, use 111 <computeroutput>VBoxManage showvminfo</computeroutput>; see <xref 112 linkend="vboxmanage-showvminfo" /> for details and an example.</para> 113 </listitem> 114 115 <listitem> 116 <para>To change settings while a VM is powered off, use 117 <computeroutput>VBoxManage modifyvm</computeroutput>, e.g. as 118 follows:<screen>VBoxManage modifyvm "Windows XP" --memory 512</screen></para> 119 120 <para>For details, see <xref linkend="vboxmanage-modifyvm" />.</para> 121 </listitem> 122 123 <listitem> 124 <para>To change the storage configuration (e.g. to add a storage 125 controller and then a virtual disk), use <computeroutput>VBoxManage 126 storagectl</computeroutput> and <computeroutput>VBoxManage 127 storageattach</computeroutput>; see <xref 128 linkend="vboxmanage-storagectl" /> and <xref 129 linkend="vboxmanage-storageattach" /> for details.</para> 130 </listitem> 131 132 <listitem> 133 <para>To control VM operation, use one of the following:<itemizedlist> 134 <listitem> 135 <para>To start a VM that is currently powered off, use 136 <computeroutput>VBoxManage startvm</computeroutput>; see <xref 137 linkend="vboxmanage-startvm" /> for details.</para> 138 </listitem> 139 140 <listitem> 141 <para>To pause or save a VM that is currently running or change 155 <para> 156 As can be seen from the above output, a new virtual machine 157 has been created with a new UUID and a new XML settings file. 158 </para> 159 </listitem> 160 161 <listitem> 162 <para> 163 To show the configuration of a particular VM, use 164 <computeroutput>VBoxManage showvminfo</computeroutput>. See 165 <xref 166 linkend="vboxmanage-showvminfo" /> for details 167 and an example. 168 </para> 169 </listitem> 170 171 <listitem> 172 <para> 173 To change settings while a VM is powered off, use 174 <computeroutput>VBoxManage modifyvm</computeroutput>. For 175 example: 176 177 <screen>VBoxManage modifyvm "Windows XP" --memory 512</screen> 178 </para> 179 180 <para> 181 For details, see <xref linkend="vboxmanage-modifyvm" />. 182 </para> 183 </listitem> 184 185 <listitem> 186 <para> 187 To change the storage configuration (e.g. to add a storage 188 controller and then a virtual disk), use 189 <computeroutput>VBoxManage storagectl</computeroutput> and 190 <computeroutput>VBoxManage storageattach</computeroutput>. See 191 <xref 192 linkend="vboxmanage-storagectl" /> and 193 <xref 194 linkend="vboxmanage-storageattach" />. 195 </para> 196 </listitem> 197 198 <listitem> 199 <para> 200 To control VM operation, use one of the following: 201 </para> 202 203 <itemizedlist> 204 205 <listitem> 206 <para> 207 To start a VM that is currently powered off, use 208 <computeroutput>VBoxManage startvm</computeroutput>. See 209 <xref 210 linkend="vboxmanage-startvm" />. 211 </para> 212 </listitem> 213 214 <listitem> 215 <para> 216 To pause or save a VM that is currently running or change 142 217 some of its settings, use <computeroutput>VBoxManage 143 controlvm</computeroutput>; see <xref 144 linkend="vboxmanage-controlvm" /> for details.</para> 145 </listitem> 146 </itemizedlist></para> 147 </listitem> 218 controlvm</computeroutput>. See 219 <xref 220 linkend="vboxmanage-controlvm" />. 221 </para> 222 </listitem> 223 224 </itemizedlist> 225 </listitem> 226 148 227 </itemizedlist> 228 149 229 </sect1> 150 230 151 <sect1> 152 <title>Commands overview</title> 153 154 <para>When running VBoxManage without parameters or when supplying an 155 invalid command line, the below syntax diagram will be shown. Note that 156 the output will be slightly different depending on the host platform; when 157 in doubt, check the output of <computeroutput>VBoxManage</computeroutput> 158 for the commands available on your particular host.</para> 159 160 <xi:include href="../user_VBoxManage_CommandsOverview.xml" xpointer="xpointer(/sect1/*)" 231 <sect1 id="vboxmanage-cmd-overview"> 232 233 <title>Commands Overview</title> 234 235 <para> 236 When running VBoxManage without parameters or when supplying an 237 invalid command line, the below syntax diagram will be shown. Note 238 that the output will be slightly different depending on the host 239 platform; when in doubt, check the output of 240 <computeroutput>VBoxManage</computeroutput> for the commands 241 available on your particular host. 242 </para> 243 244 <xi:include href="user_VBoxManage_CommandsOverview.xml" xpointer="xpointer(/sect1/*)" 161 245 xmlns:xi="http://www.w3.org/2001/XInclude" /> 162 246 163 <para>Each time VBoxManage is invoked, only one command can be executed. 164 However, a command might support several subcommands which then can be 165 invoked in one single call. The following sections provide detailed 166 reference information on the different commands.</para> 247 <para> 248 Each time VBoxManage is invoked, only one command can be executed. 249 However, a command might support several subcommands which then 250 can be invoked in one single call. The following sections provide 251 detailed reference information on the different commands. 252 </para> 253 167 254 </sect1> 168 255 169 256 <sect1 id="vboxmanage-general"> 170 <title>General options</title> 171 <para> 172 <itemizedlist> 173 <listitem> 174 <para><computeroutput>-v|--version</computeroutput>: show the version of 175 this tool and exit.</para> 176 </listitem> 177 <listitem> 178 <para><computeroutput>--nologo</computeroutput>: suppress the output 179 of the logo information (useful for scripts)</para> 180 </listitem> 181 <listitem> 182 <para><computeroutput>--settingspw</computeroutput>: specifiy a settings 183 password</para> 184 </listitem> 185 <listitem> 186 <para><computeroutput>--settingspwfile</computeroutput>: specify a file 187 containing the settings password.</para> 188 </listitem> 189 </itemizedlist> 190 The settings password is used for certain settings which need to be 191 stored encrypted for security reasons. At the moment, the only encrypted 192 setting is the iSCSI initiator secret (see 193 <xref linkend="vboxmanage-storageattach" /> for details). As long as no 194 settings password is specified, this information is stored in 195 <emphasis role="bold">plain text</emphasis>. After using the 196 <computeroutput>--settingspw|--settingspwfile</computeroutput> option 197 once, it must be always used, otherwise the encrypted setting cannot 198 be unencrypted. 199 </para> 257 258 <title>General Options</title> 259 260 <itemizedlist> 261 262 <listitem> 263 <para> 264 <computeroutput>-v|--version</computeroutput>: show the 265 version of this tool and exit. 266 </para> 267 </listitem> 268 269 <listitem> 270 <para> 271 <computeroutput>--nologo</computeroutput>: suppress the output 272 of the logo information (useful for scripts) 273 </para> 274 </listitem> 275 276 <listitem> 277 <para> 278 <computeroutput>--settingspw</computeroutput>: specifiy a 279 settings password 280 </para> 281 </listitem> 282 283 <listitem> 284 <para> 285 <computeroutput>--settingspwfile</computeroutput>: specify a 286 file containing the settings password. 287 </para> 288 </listitem> 289 290 </itemizedlist> 291 292 <para> 293 The settings password is used for certain settings which need to 294 be stored encrypted for security reasons. At the moment, the only 295 encrypted setting is the iSCSI initiator secret (see 296 <xref linkend="vboxmanage-storageattach" /> for details). As long 297 as no settings password is specified, this information is stored 298 in <emphasis role="bold">plain text</emphasis>. After using the 299 <computeroutput>--settingspw|--settingspwfile</computeroutput> 300 option once, it must be always used, otherwise the encrypted 301 setting cannot be unencrypted. 302 </para> 303 200 304 </sect1> 201 305 202 306 <sect1 id="vboxmanage-list"> 307 203 308 <title>VBoxManage list</title> 204 309 205 <para>The <computeroutput>list</computeroutput> command gives relevant 206 information about your system and information about VirtualBox's current 207 settings.</para> 208 209 <para>The following subcommands are available with 210 <computeroutput>VBoxManage list</computeroutput>: <itemizedlist> 211 <listitem> 212 <para><computeroutput>vms</computeroutput> lists all virtual 310 <para> 311 The <computeroutput>list</computeroutput> command gives relevant 312 information about your system and information about VirtualBox's 313 current settings. 314 </para> 315 316 <para> 317 The following subcommands are available with 318 <computeroutput>VBoxManage list</computeroutput>: 319 </para> 320 321 <itemizedlist> 322 323 <listitem> 324 <para> 325 <computeroutput>vms</computeroutput> lists all virtual 213 326 machines currently registered with VirtualBox. By default this 214 displays a compact list with each VM's name and UUID; if you also 215 specify <computeroutput>--long</computeroutput> or 216 <computeroutput>-l</computeroutput>, this will be a detailed list as 217 with the <computeroutput>showvminfo</computeroutput> command (see 218 below).</para> 219 </listitem> 220 221 <listitem> 222 <para><computeroutput>runningvms</computeroutput> lists all 327 displays a compact list with each VM's name and UUID; if you 328 also specify <computeroutput>--long</computeroutput> or 329 <computeroutput>-l</computeroutput>, this will be a detailed 330 list as with the <computeroutput>showvminfo</computeroutput> 331 command (see below). 332 </para> 333 </listitem> 334 335 <listitem> 336 <para> 337 <computeroutput>runningvms</computeroutput> lists all 223 338 currently running virtual machines by their unique identifiers 224 339 (UUIDs) in the same format as with 225 <computeroutput>vms</computeroutput>.</para> 226 </listitem> 227 228 <listitem> 229 <para><computeroutput>ostypes</computeroutput> lists all guest 230 operating systems presently known to VirtualBox, along with the 231 identifiers used to refer to them with the 232 <computeroutput>modifyvm</computeroutput> command.</para> 233 </listitem> 234 235 <listitem> 236 <para><computeroutput>hostdvds</computeroutput>, 237 <computeroutput>hostfloppies</computeroutput>, respectively, list 238 DVD, floppy, bridged networking and host-only networking interfaces 239 on the host, along with the name used to access them from within 240 VirtualBox.</para> 241 </listitem> 242 243 <listitem> 244 <para><computeroutput>intnets</computeroutput> displays information 245 about the internal networks.</para> 246 </listitem> 247 248 <listitem> 249 <para><computeroutput>bridgedifs</computeroutput>, 340 <computeroutput>vms</computeroutput>. 341 </para> 342 </listitem> 343 344 <listitem> 345 <para> 346 <computeroutput>ostypes</computeroutput> lists all guest 347 operating systems presently known to VirtualBox, along with 348 the identifiers used to refer to them with the 349 <computeroutput>modifyvm</computeroutput> command. 350 </para> 351 </listitem> 352 353 <listitem> 354 <para> 355 <computeroutput>hostdvds</computeroutput>, 356 <computeroutput>hostfloppies</computeroutput>, respectively, 357 list DVD, floppy, bridged networking and host-only networking 358 interfaces on the host, along with the name used to access 359 them from within VirtualBox. 360 </para> 361 </listitem> 362 363 <listitem> 364 <para> 365 <computeroutput>intnets</computeroutput> displays information 366 about the internal networks. 367 </para> 368 </listitem> 369 370 <listitem> 371 <para> 372 <computeroutput>bridgedifs</computeroutput>, 250 373 <computeroutput>hostonlyifs</computeroutput>, 251 374 <computeroutput>natnets</computeroutput> and 252 <computeroutput>dhcpservers</computeroutput>, respectively, list 253 bridged network interfaces, host-only network interfaces, 254 NAT network interfaces and DHCP servers currently available on the 255 host. Please see <xref 256 linkend="networkingdetails" /> for details on these.</para> 257 </listitem> 258 259 <listitem> 260 <para><computeroutput>hostinfo</computeroutput> displays information 375 <computeroutput>dhcpservers</computeroutput>, respectively, 376 list bridged network interfaces, host-only network interfaces, 377 NAT network interfaces and DHCP servers currently available on 378 the host. Please see 379 <xref 380 linkend="networkingdetails" /> for details on 381 these. 382 </para> 383 </listitem> 384 385 <listitem> 386 <para> 387 <computeroutput>hostinfo</computeroutput> displays information 261 388 about the host system, such as CPUs, memory size and operating 262 system version.</para> 263 </listitem> 264 265 <listitem> 266 <para><computeroutput>hostcpuids</computeroutput> dumps the CPUID 389 system version. 390 </para> 391 </listitem> 392 393 <listitem> 394 <para> 395 <computeroutput>hostcpuids</computeroutput> dumps the CPUID 267 396 parameters for the host CPUs. This can be used for a more fine 268 grained analyis of the host's virtualization capabilities.</para> 269 </listitem> 270 271 <listitem> 272 <para><computeroutput>hddbackends</computeroutput> lists all known 273 virtual disk back-ends of VirtualBox. For each such format (such as 274 VDI, VMDK or RAW), this lists the back-end's capabilities and 275 configuration.</para> 276 </listitem> 277 278 <listitem> 279 <para><computeroutput>hdds</computeroutput>, 397 grained analyis of the host's virtualization capabilities. 398 </para> 399 </listitem> 400 401 <listitem> 402 <para> 403 <computeroutput>hddbackends</computeroutput> lists all known 404 virtual disk back-ends of VirtualBox. For each such format 405 (such as VDI, VMDK or RAW), this lists the back-end's 406 capabilities and configuration. 407 </para> 408 </listitem> 409 410 <listitem> 411 <para> 412 <computeroutput>hdds</computeroutput>, 280 413 <computeroutput>dvds</computeroutput> and 281 <computeroutput>floppies</computeroutput> all give you information 282 about virtual disk images currently in use by VirtualBox, including 283 all their settings, the unique identifiers (UUIDs) associated with 284 them by VirtualBox and all files associated with them. This is the 285 command-line equivalent of the Virtual Media Manager; see <xref 286 linkend="vdis" />.</para> 287 </listitem> 288 289 <listitem> 290 <para><computeroutput>usbhost</computeroutput> supplies information 291 about USB devices attached to the host, notably information useful 292 for constructing USB filters and whether they are currently in use 293 by the host.</para> 294 </listitem> 295 296 <listitem> 297 <para><computeroutput>usbfilters</computeroutput> lists all global 414 <computeroutput>floppies</computeroutput> all give you 415 information about virtual disk images currently in use by 416 VirtualBox, including all their settings, the unique 417 identifiers (UUIDs) associated with them by VirtualBox and all 418 files associated with them. This is the command-line 419 equivalent of the Virtual Media Manager. See 420 <xref 421 linkend="vdis" />. 422 </para> 423 </listitem> 424 425 <listitem> 426 <para> 427 <computeroutput>usbhost</computeroutput> supplies information 428 about USB devices attached to the host, notably information 429 useful for constructing USB filters and whether they are 430 currently in use by the host. 431 </para> 432 </listitem> 433 434 <listitem> 435 <para> 436 <computeroutput>usbfilters</computeroutput> lists all global 298 437 USB filters registered with VirtualBox -- that is, filters for 299 devices which are accessible to all virtual machines -- and displays 300 the filter parameters.</para> 301 </listitem> 302 303 <listitem> 304 <para><computeroutput>systemproperties</computeroutput> displays 305 some global VirtualBox settings, such as minimum and maximum guest 306 RAM and virtual hard disk size, folder settings and the current 307 authentication library in use.</para> 308 </listitem> 309 310 <listitem> 311 <para><computeroutput>extpacks</computeroutput> displays all 312 VirtualBox extension packs currently installed; see <xref 313 linkend="intro-installing" /> and <xref 314 linkend="vboxmanage-extpack" /> for more information.</para> 315 </listitem> 316 317 <listitem> 318 <para><computeroutput>groups</computeroutput> displays 319 details of the VM Groups; see <xref linkend="gui-vmgroups" /> 320 for more information.</para> 321 </listitem> 322 323 <listitem> 324 <para><computeroutput>webcams</computeroutput> displays a list of 325 webcams attached to the running VM. The output format is a list of 326 absolute paths or aliases that were used for attaching the webcams 327 to the VM using the 'webcam attach' command.</para> 328 </listitem> 329 330 <listitem> 331 <para><computeroutput>screenshotformats</computeroutput> displays a 332 list of available screenshot formats.</para> 333 </listitem> 334 335 </itemizedlist></para> 438 devices which are accessible to all virtual machines -- and 439 displays the filter parameters. 440 </para> 441 </listitem> 442 443 <listitem> 444 <para> 445 <computeroutput>systemproperties</computeroutput> displays 446 some global VirtualBox settings, such as minimum and maximum 447 guest RAM and virtual hard disk size, folder settings and the 448 current authentication library in use. 449 </para> 450 </listitem> 451 452 <listitem> 453 <para> 454 <computeroutput>extpacks</computeroutput> displays all 455 VirtualBox extension packs currently installed. See 456 <xref 457 linkend="intro-installing" /> and 458 <xref 459 linkend="vboxmanage-extpack" />. 460 </para> 461 </listitem> 462 463 <listitem> 464 <para> 465 <computeroutput>groups</computeroutput> displays details of 466 the VM Groups. See <xref linkend="gui-vmgroups" />. 467 </para> 468 </listitem> 469 470 <listitem> 471 <para> 472 <computeroutput>webcams</computeroutput> displays a list of 473 webcams attached to the running VM. The output format is a 474 list of absolute paths or aliases that were used for attaching 475 the webcams to the VM using the webcam attach command. 476 </para> 477 </listitem> 478 479 <listitem> 480 <para> 481 <computeroutput>screenshotformats</computeroutput> displays a 482 list of available screenshot formats. 483 </para> 484 </listitem> 485 486 </itemizedlist> 487 336 488 </sect1> 337 489 338 490 <sect1 id="vboxmanage-showvminfo"> 491 339 492 <title>VBoxManage showvminfo</title> 340 493 341 <para>The <computeroutput>showvminfo</computeroutput> command shows 342 information about a particular virtual machine. This is the same 343 information as <computeroutput>VBoxManage list vms --long</computeroutput> 344 would show for all virtual machines.</para> 345 346 <para>You will get information that resembles the following example.</para> 347 348 <para><screen>$ VBoxManage showvminfo "Windows XP" 349 VirtualBox Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 350 (C) 2005-@VBOX_C_YEAR@ @VBOX_VENDOR@ 494 <para> 495 The <computeroutput>showvminfo</computeroutput> command shows 496 information about a particular virtual machine. This is the same 497 information as <computeroutput>VBoxManage list vms 498 --long</computeroutput> would show for all virtual machines. 499 </para> 500 501 <para> 502 You will get information that resembles the following example. 503 </para> 504 505 <para> 506 <screen>$ VBoxManage showvminfo "Windows XP" 507 VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable> 508 (C) 2005-2018 Oracle Corporation 351 509 All rights reserved. 352 510 … … 366 524 IOAPIC: on 367 525 ... 368 </screen></para> 369 <para>Use the <computeroutput>--machinereadable</computeroutput> option 370 to produce the same output, but in machine readable format: property="value" on a 371 line by line basis, e.g.:</para> 372 <para><screen> 526 </screen> 527 </para> 528 529 <para> 530 Use the <computeroutput>--machinereadable</computeroutput> option 531 to produce the same output, but in machine readable format: 532 property="value" on a line by line basis, e.g.: 533 </para> 534 535 <para> 536 <screen> 373 537 name="VBoxSDL --startvm OL7.2" 374 538 groups="/" … … 376 540 UUID="457af700-bc0a-4258-aa3c-13b03da171f2" 377 541 ... 378 </screen></para> 542 </screen> 543 </para> 544 379 545 </sect1> 380 546 381 547 <sect1 id="vboxmanage-registervm"> 382 <title>VBoxManage registervm / unregistervm</title> 383 384 <para>The <computeroutput>registervm</computeroutput> command allows you 385 to import a virtual machine definition in an XML file into VirtualBox. The 386 machine must not conflict with one already registered in VirtualBox and it 387 may not have any hard or removable disks attached. It is advisable to 388 place the definition file in the machines folder before registering 389 it.<note> 390 <para>When creating a new virtual machine with 391 <computeroutput>VBoxManage createvm</computeroutput> (see below), you 392 can directly specify the <computeroutput>--register</computeroutput> 393 option to avoid having to register it separately.</para> 394 </note></para> 395 396 <para>The <computeroutput>unregistervm</computeroutput> command 397 unregisters a virtual machine. If 398 <computeroutput>--delete</computeroutput> is also specified, the following 399 files will automatically be deleted as well:<orderedlist> 400 <listitem> 401 <para>all hard disk image files, including differencing files, which 402 are used by the machine and not shared with other machines;</para> 403 </listitem> 404 405 <listitem> 406 <para>saved state files that the machine created, if any (one if the 407 machine was in "saved" state and one for each online 408 snapshot);</para> 409 </listitem> 410 411 <listitem> 412 <para>the machine XML file and its backups;</para> 413 </listitem> 414 415 <listitem> 416 <para>the machine log files, if any;</para> 417 </listitem> 418 419 <listitem> 420 <para>the machine directory, if it is empty after having deleted all 421 the above.</para> 422 </listitem> 423 </orderedlist></para> 548 549 <title>VBoxManage registervm/unregistervm</title> 550 551 <para> 552 The <computeroutput>registervm</computeroutput> command allows you 553 to import a virtual machine definition in an XML file into 554 VirtualBox. The machine must not conflict with one already 555 registered in VirtualBox and it may not have any hard or removable 556 disks attached. It is advisable to place the definition file in 557 the machines folder before registering it. 558 559 <note> 560 <para> 561 When creating a new virtual machine with 562 <computeroutput>VBoxManage createvm</computeroutput> (see 563 below), you can directly specify the 564 <computeroutput>--register</computeroutput> option to avoid 565 having to register it separately. 566 </para> 567 </note> 568 </para> 569 570 <para> 571 The <computeroutput>unregistervm</computeroutput> command 572 unregisters a virtual machine. If 573 <computeroutput>--delete</computeroutput> is also specified, the 574 following files will automatically be deleted as well: 575 </para> 576 577 <orderedlist> 578 579 <listitem> 580 <para> 581 All hard disk image files, including differencing files, which 582 are used by the machine and not shared with other machines. 583 </para> 584 </listitem> 585 586 <listitem> 587 <para> 588 Saved state files that the machine created. One if the machine 589 was in "saved" state and one for each online snapshot. 590 </para> 591 </listitem> 592 593 <listitem> 594 <para> 595 The machine XML file and its backups, 596 </para> 597 </listitem> 598 599 <listitem> 600 <para> 601 The machine log files. 602 </para> 603 </listitem> 604 605 <listitem> 606 <para> 607 The machine directory, if it is empty after having deleted all 608 of the above files. 609 </para> 610 </listitem> 611 612 </orderedlist> 613 424 614 </sect1> 425 615 426 616 <sect1 id="vboxmanage-createvm"> 617 427 618 <title>VBoxManage createvm</title> 428 619 429 <para>This command creates a new XML virtual machine definition 430 file.</para> 431 432 <para>The <computeroutput>--name <name></computeroutput> parameter 433 is required and must specify the name of the machine. Since this name is 434 used by default as the file name of the settings file (with the extension 435 <computeroutput>.xml</computeroutput>) and the machine folder (a subfolder 436 of the <computeroutput>.config/VirtualBox/Machines</computeroutput> folder 437 - this folder name may vary depending on the operating system and the 438 version of VirtualBox which you are using), it must conform to your host 439 operating system's requirements for file name specifications. If the VM 440 is later renamed, the file and folder names will change automatically.</para> 441 442 <para>However, if the <computeroutput>--basefolder 443 <path></computeroutput> option is used, the machine folder will be 444 named <computeroutput><path></computeroutput>. In this case, the 445 names of the file and the folder will not change if the virtual machine is 446 renamed.</para> 447 448 <para>If the <computeroutput>--group <group>, ...</computeroutput> 449 option is used, the machine will be assigned membership of the specified 450 VM groups in the list. Note that group ids always start with a 451 <computeroutput>/</computeroutput> and can be nested. By default, 452 VMs are always assigned membership of the group 453 <computeroutput>/</computeroutput>.</para> 454 455 <para>If the <computeroutput>--ostype <ostype></computeroutput>: 456 option is used, <ostype> specifies the guest operating system 457 to run in the VM. To learn about the available OS options, 458 run <computeroutput>VBoxManage list ostypes</computeroutput> .</para> 459 460 <para>If the <computeroutput>--uuid <uuid></computeroutput>: 461 option is used, <uuid> specifies the VM uuid. This must be 462 unique within the namespace of the host, or that of the VM Group if 463 it is assigned to a VM group membership. By default, a unique uuid 464 within the appropriate namespace is automatically generated. 465 </para> 466 467 <para>By default, this command only creates the XML file without 468 automatically registering the VM with your VirtualBox installation. To 469 register the VM instantly, use the optional 470 <computeroutput>--register</computeroutput> option, or run 471 <computeroutput>VBoxManage registervm</computeroutput> separately 472 afterwards.</para> 620 <para> 621 This command creates a new XML virtual machine definition file. 622 </para> 623 624 <para> 625 The <computeroutput>--name <name></computeroutput> parameter 626 is required and must specify the name of the machine. Since this 627 name is used by default as the file name of the settings file 628 (with the extension <computeroutput>.xml</computeroutput>) and the 629 machine folder (a subfolder of the 630 <computeroutput>.config/VirtualBox/Machines</computeroutput> 631 folder - this folder name may vary depending on the operating 632 system and the version of VirtualBox which you are using), it must 633 conform to your host operating system's requirements for file name 634 specifications. If the VM is later renamed, the file and folder 635 names will change automatically. 636 </para> 637 638 <para> 639 However, if the <computeroutput>--basefolder 640 <path></computeroutput> option is used, the machine folder 641 will be named <computeroutput><path></computeroutput>. In 642 this case, the names of the file and the folder will not change if 643 the virtual machine is renamed. 644 </para> 645 646 <para> 647 If the <computeroutput>--group <group>, ...</computeroutput> 648 option is used, the machine will be assigned membership of the 649 specified VM groups in the list. Note that group ids always start 650 with a <computeroutput>/</computeroutput> and can be nested. By 651 default, VMs are always assigned membership of the group 652 <computeroutput>/</computeroutput>. 653 </para> 654 655 <para> 656 If the <computeroutput>--ostype <ostype></computeroutput>: 657 option is used, <ostype> specifies the guest operating 658 system to run in the VM. To learn about the available OS options, 659 run <computeroutput>VBoxManage list ostypes</computeroutput> . 660 </para> 661 662 <para> 663 If the <computeroutput>--uuid <uuid></computeroutput>: 664 option is used, <uuid> specifies the VM uuid. This must be 665 unique within the namespace of the host, or that of the VM Group 666 if it is assigned to a VM group membership. By default, a unique 667 uuid within the appropriate namespace is automatically generated. 668 </para> 669 670 <para> 671 By default, this command only creates the XML file without 672 automatically registering the VM with your VirtualBox 673 installation. To register the VM instantly, use the optional 674 <computeroutput>--register</computeroutput> option, or run 675 <computeroutput>VBoxManage registervm</computeroutput> separately 676 afterwards. 677 </para> 473 678 474 679 </sect1> 475 680 476 681 <sect1 id="vboxmanage-modifyvm"> 682 477 683 <title>VBoxManage modifyvm</title> 478 684 479 <para>This command changes the properties of a registered virtual machine 480 which is not running. Most of the properties that this command makes 481 available correspond to the VM settings that VirtualBox graphical user 482 interface displays in each VM's "Settings" dialog; these were described in 483 <xref linkend="BasicConcepts" />. Some of the more advanced settings, 484 however, are only available through the 485 <computeroutput>VBoxManage</computeroutput> interface.</para> 486 487 <para>These commands require that the machine is powered off (neither 488 running nor in "saved" state). Some machine settings can also be changed 489 while a machine is running; those settings will then have a corresponding 490 subcommand with the <computeroutput>VBoxManage controlvm</computeroutput> 491 subcommand (see <xref linkend="vboxmanage-controlvm" />).</para> 492 493 <sect2> 494 <title>General settings</title> 495 496 <para>The following general settings are available through 497 <computeroutput>VBoxManage modifyvm</computeroutput>:<itemizedlist> 685 <para> 686 This command changes the properties of a registered virtual 687 machine which is not running. Most of the properties that this 688 command makes available correspond to the VM settings that 689 VirtualBox graphical user interface displays in each VM's 690 "Settings" dialog. These were described in 691 <xref linkend="BasicConcepts" />. Some of the more advanced 692 settings, however, are only available through the 693 <computeroutput>VBoxManage</computeroutput> interface. 694 </para> 695 696 <para> 697 These commands require that the machine is powered off (neither 698 running nor in "saved" state). Some machine settings can also be 699 changed while a machine is running; those settings will then have 700 a corresponding subcommand with the <computeroutput>VBoxManage 701 controlvm</computeroutput> subcommand. See 702 <xref linkend="vboxmanage-controlvm" />. 703 </para> 704 705 <sect2 id="vboxmanage-modifyvm-general"> 706 707 <title>General Settings</title> 708 709 <para> 710 The following general settings are available through 711 <computeroutput>VBoxManage modifyvm</computeroutput>: 712 </para> 713 714 <itemizedlist> 715 716 <listitem> 717 <para> 718 <computeroutput>--name <name></computeroutput>: This 719 changes the VM's name and can be used to rename the internal 720 virtual machine files, as described in 721 <xref linkend="vboxmanage-createvm"/>. 722 </para> 723 </listitem> 724 725 <listitem> 726 <para> 727 <computeroutput>--groups <group>, 728 ...</computeroutput>: This changes the group membership of a 729 VM. Groups always start with a 730 <computeroutput>/</computeroutput> and can be nested. By 731 default VMs are in group <computeroutput>/</computeroutput>. 732 </para> 733 </listitem> 734 735 <listitem> 736 <para> 737 <computeroutput>--description <desc></computeroutput>: 738 This changes the VM's description, which is a way to record 739 details about the VM in a way which is meaningful for the 740 user. The GUI interprets HTML formatting, the command line 741 allows arbitrary strings potentially containing multiple 742 lines. 743 </para> 744 </listitem> 745 746 <listitem> 747 <para> 748 <computeroutput>--ostype <ostype></computeroutput>: 749 This specifies what guest operating system is supposed to 750 run in the VM. To learn about the various identifiers that 751 can be used here, use <computeroutput>VBoxManage list 752 ostypes</computeroutput>. 753 </para> 754 </listitem> 755 756 <listitem> 757 <para> 758 <computeroutput>--iconfile 759 <filename></computeroutput>: This specifies the 760 absolute path on the host file system for the VirtualBox 761 icon to be displayed in the VM. 762 </para> 763 </listitem> 764 765 <listitem> 766 <para> 767 <computeroutput>--memory 768 <memorysize></computeroutput>: This sets the amount of 769 RAM, in MB, that the virtual machine should allocate for 770 itself from the host. See <xref linkend="gui-createvm" />. 771 </para> 772 </listitem> 773 774 <listitem> 775 <para> 776 <computeroutput>--pagefusion on|off</computeroutput>: 777 Enables/disables (default) the Page Fusion feature. The Page 778 Fusion feature minimises memory duplication between VMs with 779 similar configurations running on the same host. See 780 <xref linkend="guestadd-pagefusion" />. 781 </para> 782 </listitem> 783 784 <listitem> 785 <para> 786 <computeroutput>--vram <vramsize></computeroutput>: 787 This sets the amount of RAM that the virtual graphics card 788 should have. See <xref linkend="settings-display" />. 789 </para> 790 </listitem> 791 792 <listitem> 793 <para> 794 <computeroutput>--acpi on|off</computeroutput> and 795 <computeroutput>--ioapic on|off</computeroutput>: These 796 settings determine whether the VM should have ACPI and I/O 797 APIC support, respectively. See 798 <xref linkend="settings-motherboard" />. 799 </para> 800 </listitem> 801 802 <listitem> 803 <para> 804 <computeroutput>--pciattach <host PCI address [@ guest 805 PCI bus address]></computeroutput>: Attaches a specified 806 PCI network controller on the host to a specified PCI bus on 807 the guest. See <xref linkend="pcipassthrough" />. 808 </para> 809 </listitem> 810 811 <listitem> 812 <para> 813 <computeroutput>--pcidetach <host PCI 814 address></computeroutput>: Detaches a specified PCI 815 network controller on the host from the attached PCI bus on 816 the guest. See <xref linkend="pcipassthrough" />. 817 </para> 818 </listitem> 819 820 <listitem> 821 <para> 822 <computeroutput>--hardwareuuid 823 <uuid></computeroutput>: The UUID presented to the 824 guest via memory tables (DMI/SMBIOS), hardware and guest 825 properties. By default this is the same as the VM uuid. 826 Useful when cloning a VM. Teleporting takes care of this 827 automatically. 828 </para> 829 </listitem> 830 831 <listitem> 832 <para> 833 <computeroutput>--cpus <cpucount></computeroutput>: 834 This sets the number of virtual CPUs for the virtual 835 machine, see <xref linkend="settings-processor" />. If CPU 836 hot-plugging is enabled, this then sets the 837 <emphasis>maximum</emphasis> number of virtual CPUs that can 838 be plugged into the virtual machines. 839 </para> 840 </listitem> 841 842 <listitem> 843 <para> 844 <computeroutput>--cpuhotplug on|off</computeroutput>: This 845 enables CPU hot-plugging. When enabled, virtual CPUs can be 846 added to and removed from a virtual machine while it is 847 running. See <xref linkend="cpuhotplug" />. 848 </para> 849 </listitem> 850 851 <listitem> 852 <para> 853 <computeroutput>--plugcpu|unplugcpu 854 <id></computeroutput>: If CPU hot-plugging is enabled, 855 this adds or removes a virtual CPU on the virtual machine. 856 <computeroutput><id></computeroutput> specifies the 857 index of the virtual CPU to be added or removed and must be 858 a number from 0 to the maximum no. of CPUs configured with 859 the <computeroutput>--cpus</computeroutput> option. CPU 0 860 can never be removed. 861 </para> 862 </listitem> 863 864 <listitem> 865 <para> 866 <computeroutput>--cpuexecutioncap 867 <1-100></computeroutput>: This setting controls how 868 much CPUtime a virtual CPU can use. A value of 50 implies a 869 single virtual CPU can use up to 50% of a single host CPU. 870 </para> 871 </listitem> 872 873 <listitem> 874 <para> 875 <computeroutput>--pae on|off</computeroutput>: This 876 enables/disables PAE. See 877 <xref linkend="settings-processor" />. 878 </para> 879 </listitem> 880 881 <listitem> 882 <para> 883 <computeroutput>--longmode on|off</computeroutput>: This 884 enables/disables long mode. See 885 <xref linkend="settings-processor" />. 886 </para> 887 </listitem> 888 889 <listitem> 890 <para> 891 <computeroutput>--spec-ctrl on|off</computeroutput>: This 892 setting enables/disables exposing speculation control 893 interfaces to the guest, provided they are available on the 894 host. Depending on the host CPU and workload, enabling 895 speculation control may significantly reduce performance. 896 </para> 897 </listitem> 898 899 <listitem> 900 <para> 901 <computeroutput>--cpu-profile <host|intel 902 80[86|286|386]></computeroutput>: This enables 903 specification of a profile for guest CPU emulation. Specify 904 either one based on the host system CPU (host), or one from 905 a number of older Intel Micro-architectures - 8086, 80286, 906 80386. 907 </para> 908 </listitem> 909 910 <listitem> 911 <para> 912 <computeroutput>--hpet on|off</computeroutput>: This 913 enables/disables a High Precision Event Timer (HPET) which 914 can replace the legacy system timers. This is turned off by 915 default. Note that Windows supports a HPET only from Vista 916 onwards. 917 </para> 918 </listitem> 919 920 <listitem> 921 <para> 922 <computeroutput>--hwvirtex on|off</computeroutput>: This 923 enables or disables the use of hardware virtualization 924 extensions (Intel VT-x or AMD-V) in the processor of your 925 host system. See <xref linkend="hwvirt" />. 926 </para> 927 </listitem> 928 929 <listitem> 930 <para> 931 <computeroutput>--triplefaultreset on|off</computeroutput>: 932 This setting enables resetting of the guest instead of 933 triggering a Guru Meditation. Some guests raise a triple 934 fault to reset the CPU so sometimes this is desired 935 behavior. Works only for non-SMP guests. 936 </para> 937 </listitem> 938 939 <listitem> 940 <para> 941 <computeroutput>--apic on|off</computeroutput>: This setting 942 enables(default)/disables IO APIC. With I/O APIC, operating 943 systems can use more than 16 interrupt requests (IRQs) thus 944 avoiding IRQ sharing for improved reliability. See 945 <xref linkend="settings-motherboard" />. 946 </para> 947 </listitem> 948 949 <listitem> 950 <para> 951 <computeroutput>--x2apic on|off</computeroutput>: This 952 setting enables(default)/disables CPU x2APIC support. CPU 953 x2APIC support helps operating systems run more efficiently 954 on high core count configurations, and optimizes interrupt 955 distribution in virtualized environments. Disable when using 956 host/guest operating systems incompatible with x2APIC 957 support. 958 </para> 959 </listitem> 960 961 <listitem> 962 <para> 963 <computeroutput>--paravirtprovider 964 none|default|legacy|minimal|hyperv|kvm</computeroutput>: 965 This setting specifies which paravirtualization interface to 966 provide to the guest operating system. Specifying 967 <computeroutput>none</computeroutput> explicitly turns off 968 exposing any paravirtualization interface. The option 969 <computeroutput>default</computeroutput>, will pick an 970 appropriate interface depending on the guest OS type while 971 starting the VM. This is the default option chosen while 972 creating new VMs. The 973 <computeroutput>legacy</computeroutput> option is chosen for 974 VMs which were created with older VirtualBox versions and 975 will pick a paravirtualization interface while starting the 976 VM with VirtualBox 5.0 and newer. The 977 <computeroutput>minimal</computeroutput> provider is 978 mandatory for Mac OS X guests, while 979 <computeroutput>kvm</computeroutput> and 980 <computeroutput>hyperv</computeroutput> are recommended for 981 Linux and Windows guests respectively. These options are 982 explained in <xref linkend="gimproviders" />. 983 </para> 984 </listitem> 985 986 <listitem> 987 <para> 988 <computeroutput>--paravirtdebug <key=value> 989 [,<key=value> ...]</computeroutput>: This setting 990 specifies debugging options specific to the 991 paravirtualization provider configured for this VM. See the 992 provider specific options in <xref linkend="gimdebug" /> for 993 a list of supported key-value pairs for each provider. 994 </para> 995 </listitem> 996 997 <listitem> 998 <para> 999 <computeroutput>--nestedpaging on|off</computeroutput>: If 1000 hardware virtualization is enabled, this additional setting 1001 enables or disables the use of the nested paging feature in 1002 the processor of your host system. See 1003 <xref 1004 linkend="hwvirt" />. 1005 </para> 1006 </listitem> 1007 1008 <listitem> 1009 <para> 1010 <computeroutput>--largepages on|off</computeroutput>: If 1011 hardware virtualization <emphasis>and</emphasis> nested 1012 paging are enabled, for Intel VT-x only, an additional 1013 performance improvement of up to 5% can be obtained by 1014 enabling this setting. This causes the hypervisor to use 1015 large pages to reduce TLB use and overhead. 1016 </para> 1017 </listitem> 1018 1019 <listitem> 1020 <para> 1021 <computeroutput>--vtxvpid on|off</computeroutput>: If 1022 hardware virtualization is enabled, for Intel VT-x only, 1023 this additional setting enables or disables the use of the 1024 tagged TLB (VPID) feature in the processor of your host 1025 system. See <xref 1026 linkend="hwvirt" />. 1027 </para> 1028 </listitem> 1029 1030 <listitem> 1031 <para> 1032 <computeroutput>--vtxux on|off</computeroutput>: If hardware 1033 virtualization is enabled, for Intel VT-x only, this setting 1034 enables or disables the use of the unrestricted guest mode 1035 feature for executing your guest. 1036 </para> 1037 </listitem> 1038 1039 <listitem> 1040 <para> 1041 <computeroutput>--accelerate3d on|off</computeroutput>: If 1042 the Guest Additions are installed, this setting enables or 1043 disables hardware 3D acceleration. See 1044 <xref 1045 linkend="guestadd-3d" />. 1046 </para> 1047 </listitem> 1048 1049 <listitem> 1050 <para> 1051 <computeroutput>--accelerate2dvideo on|off</computeroutput>: 1052 If the Guest Additions are installed, this setting enables 1053 or disables 2D video acceleration. See 1054 <xref 1055 linkend="guestadd-2d" />. 1056 </para> 1057 </listitem> 1058 1059 <listitem> 1060 <para> 1061 <computeroutput>--chipset piix3|ich9</computeroutput>: By 1062 default VirtualBox emulates an Intel PIIX3 chipset. Usually 1063 there is no reason to change the default setting unless this 1064 is required to relax some of its constraints. See 1065 <xref 1066 linkend="settings-motherboard" />. 1067 </para> 1068 </listitem> 1069 1070 <listitem> 1071 <para> 1072 You can influence the BIOS logo that is displayed when a 1073 virtual machine starts up with a number of settings. By 1074 default, a VirtualBox logo is displayed. 1075 </para> 1076 1077 <para> 1078 With <computeroutput>--bioslogofadein 1079 on|off</computeroutput> and 1080 <computeroutput>--bioslogofadeout on|off</computeroutput>, 1081 you can determine whether the logo should fade in and out, 1082 respectively. 1083 </para> 1084 1085 <para> 1086 With <computeroutput>--bioslogodisplaytime 1087 <msec></computeroutput> you can set how long the logo 1088 should be visible, in milliseconds. 1089 </para> 1090 1091 <para> 1092 With <computeroutput>--bioslogoimagepath 1093 <imagepath></computeroutput> you can, if you are so 1094 inclined, replace the image that is shown, with your own 1095 logo. The image must be an uncompressed 256 color BMP file 1096 without color space information (Windows 3.0 format). The 1097 image must not be bigger than 640 x 480. 1098 </para> 1099 </listitem> 1100 1101 <listitem> 1102 <para> 1103 <computeroutput>--biosbootmenu 1104 disabled|menuonly|messageandmenu</computeroutput>: This 1105 specifies whether the BIOS allows the user to select a 1106 temporary boot device. 1107 <computeroutput>menuonly</computeroutput> suppresses the 1108 message, but the user can still press F12 to select a 1109 temporary boot device. 1110 </para> 1111 </listitem> 1112 1113 <listitem> 1114 <para> 1115 <computeroutput>--biosapic 1116 x2apic|apic|disabled</computeroutput>: This specifies the 1117 firmware APIC level to be used. Options are: x2apic, apic or 1118 disabled (no apic or x2apic) respectively. 1119 </para> 1120 1121 <para> 1122 Note that if x2apic is specified and x2apic is unsupported 1123 by the VCPU, biosapic downgrades to apic, if supported - 1124 otherwise down to 'disabled'. Similarly, if apic is 1125 specified, and apic is unsupported a downgrade to 'disabled' 1126 results. 1127 </para> 1128 </listitem> 1129 1130 <listitem> 1131 <para> 1132 <computeroutput>--biossystemtimeoffset 1133 <ms></computeroutput>: This specifies a fixed time 1134 offset (milliseconds) of the guest relative to the host 1135 time. If the offset is positive, the guest time runs ahead 1136 of the host time. 1137 </para> 1138 </listitem> 1139 1140 <listitem> 1141 <para> 1142 <computeroutput>--biospxedebug on|off</computeroutput>: This 1143 option enables additional debugging output when using the 1144 Intel PXE boot ROM. The output will be written to the 1145 release log file (<xref linkend="collect-debug-info" />. 1146 </para> 1147 </listitem> 1148 1149 <listitem> 1150 <para> 1151 <computeroutput>--boot<1-4> 1152 none|floppy|dvd|disk|net</computeroutput>: This specifies 1153 the boot order for the virtual machine. There are four 1154 "slots", which the VM will try to access from 1 to 4, and 1155 for each of which you can set a device that the VM should 1156 attempt to boot from. 1157 </para> 1158 </listitem> 1159 1160 <listitem> 1161 <para> 1162 <computeroutput>--rtcuseutc on|off</computeroutput>: This 1163 option lets the real-time clock (RTC) operate in UTC time. 1164 See <xref linkend="settings-motherboard" />. 1165 </para> 1166 </listitem> 1167 1168 <listitem> 1169 <para> 1170 <computeroutput>--graphicscontroller 1171 none|vboxvga|vmsvga</computeroutput>: This option specifies 1172 use of a graphics controller, and type chosen from vboxvga 1173 or vmsvga. <xref linkend="settings-motherboard" />). 1174 </para> 1175 </listitem> 1176 1177 <listitem> 1178 <para> 1179 <computeroutput>--snapshotfolder 1180 default|<path></computeroutput>: This option specifies 1181 the folder in which snapshots will be kept for a virtual 1182 machine. 1183 </para> 1184 </listitem> 1185 1186 <listitem> 1187 <para> 1188 <computeroutput>--firmware 1189 bios|efi|efi32|efi64</computeroutput>: This option specifies 1190 which firmware to be used to boot the VM: Available options 1191 are: BIOS, or one of the EFI options: efi, efi32 or efi64. 1192 Use EFI options with care. 1193 </para> 1194 </listitem> 1195 1196 <listitem> 1197 <para> 1198 <computeroutput>--guestmemoryballoon 1199 <size></computeroutput> This option sets the default 1200 size of the guest memory balloon, that is, memory allocated 1201 by the VirtualBox Guest Additions from the guest operating 1202 system and returned to the hypervisor for re-use by other 1203 virtual machines. 1204 <computeroutput><size></computeroutput> must be 1205 specified in megabytes. The default size is 0 megabytes. See 1206 <xref linkend="guestadd-balloon" />. 1207 </para> 1208 </listitem> 1209 1210 <listitem> 1211 <para> 1212 <computeroutput>--defaultfrontend 1213 default|<name></computeroutput>: This option specifies 1214 the default frontend to be used when starting this VM. See 1215 <xref linkend="vboxmanage-startvm" />. 1216 </para> 1217 </listitem> 1218 1219 </itemizedlist> 1220 1221 </sect2> 1222 1223 <sect2 id="vboxmanage-modifyvm-networking"> 1224 1225 <title>Networking Settings</title> 1226 1227 <para> 1228 The following networking settings are available through 1229 <computeroutput>VBoxManage modifyvm</computeroutput>. With all 1230 these settings, the decimal number directly following the option 1231 name ("1-N" in the list below) specifies the virtual network 1232 adapter whose settings should be changed. 1233 </para> 1234 1235 <itemizedlist> 1236 1237 <listitem> 1238 <para> 1239 <computeroutput>--nic<1-N> 1240 none|null|nat|natnetwork|bridged|intnet|hostonly|generic</computeroutput>: 1241 You can configure for each of the VM's virtual network 1242 cards, what type of networking should be available. Options 1243 are: not present (<computeroutput>none</computeroutput>), 1244 not connected to the host 1245 (<computeroutput>null</computeroutput>), use network address 1246 translation (<computeroutput>nat</computeroutput>), use the 1247 new network address translation engine 1248 (<computeroutput>natnetwork</computeroutput>), bridged 1249 networking (<computeroutput>bridged</computeroutput>), or 1250 use internal networking 1251 (<computeroutput>intnet</computeroutput>), host-only 1252 networking (<computeroutput>hostonly</computeroutput>), or 1253 access rarely used sub-modes 1254 (<computeroutput>generic</computeroutput>). These options 1255 correspond to the modes described in 1256 <xref 1257 linkend="networkingmodes" />. 1258 </para> 1259 </listitem> 1260 1261 <listitem> 1262 <para> 1263 <computeroutput>--nictype<1-N> 1264 Am79C970A|Am79C973|82540EM|82543GC|82545EM|virtio</computeroutput>: 1265 This enables you to specify which networking hardware 1266 VirtualBox presents to the guest for a specified VM virtual 1267 network card. See <xref linkend="nichardware" />. 1268 </para> 1269 </listitem> 1270 1271 <listitem> 1272 <para> 1273 <computeroutput>--cableconnected<1-N> 1274 on|off</computeroutput>: This enables you to temporarily 1275 disconnect a virtual network interface, as if a network 1276 cable had been pulled from a real network card. This might 1277 be useful e.g. for resetting certain software components in 1278 the VM. 1279 </para> 1280 </listitem> 1281 1282 <listitem> 1283 <para> 1284 With the "nictrace" options, you can optionally trace 1285 network traffic by dumping it to a file, for debugging 1286 purposes. 1287 </para> 1288 1289 <para> 1290 With <computeroutput>--nictrace<1-N> 1291 on|off</computeroutput>, you can enable network tracing for 1292 a particular virtual network card. 1293 </para> 1294 1295 <para> 1296 If enabled, you must specify with 1297 <computeroutput>--nictracefile<1-N> 1298 <filename></computeroutput> the absolute path of the 1299 file the trace should be logged to. 1300 </para> 1301 </listitem> 1302 1303 <listitem> 1304 <para> 1305 <computeroutput>--nicproperty<1-N> 1306 <paramname>="paramvalue"</computeroutput>: This 1307 option, in combination with "nicgenericdrv" allows you to 1308 pass parameters to rarely-used network backends. 1309 </para> 1310 1311 <para> 1312 These parameters are backend engine-specific, and are 1313 different between UDP Tunnel and the VDE backend drivers. 1314 For examples, please see 1315 <xref linkend="network_udp_tunnel" />. 1316 </para> 1317 </listitem> 1318 1319 <listitem> 1320 <para> 1321 <computeroutput>--nicspeed<1-N> 1322 <kbps></computeroutput>: If generic networking has 1323 been enabled for a particular virtual network card (see the 1324 <computeroutput>--nic</computeroutput> option above - 1325 otherwise this setting has no effect), this mode enables 1326 access to rarely used networking sub-modes, such as VDE 1327 network or UDP Tunnel. This option specifies the throughput 1328 rate in KBytes/sec. 1329 </para> 1330 </listitem> 1331 1332 <listitem> 1333 <para> 1334 <computeroutput>--nicbootprio<1-N> 1335 <priority></computeroutput>: This specifies the order 1336 in which NICs are tried for booting over the network (using 1337 PXE). The priority is an integer in the 0 to 4 range. 1338 Priority 1 is the highest, priority 4 is low. Priority 0, 1339 which is the default unless otherwise specified, is the 1340 lowest. 1341 </para> 1342 1343 <para> 1344 Note that this option only has effect when the Intel PXE 1345 boot ROM is used. 1346 </para> 1347 </listitem> 1348 1349 <listitem> 1350 <para> 1351 <computeroutput>--nicpromisc<1-N> 1352 deny|allow-vms|allow-all</computeroutput>: This ernables you 1353 to specify how the promiscuous mode is handled for the 1354 specified VM virtual network card. This setting is only 1355 relevant for bridged networking. 1356 <computeroutput>deny</computeroutput> (default setting) 1357 hides any traffic not intended for this VM. 1358 <computeroutput>allow-vms</computeroutput> hides all host 1359 traffic from this VM but allows the VM to see traffic 1360 from/to other VMs. 1361 <computeroutput>allow-all</computeroutput> removes this 1362 restriction completely. 1363 </para> 1364 </listitem> 1365 1366 <listitem> 1367 <para> 1368 <computeroutput>--nicbandwidthgroup<1-N> 1369 none|<name></computeroutput>: This removes/adds an 1370 assignment of a bandwidth group from/to the specified 1371 virtual network interface. Specifying 1372 <computeroutput>none</computeroutput> removes any current 1373 bandwidth group assignment from the specified virtual 1374 network interface. Specifying 1375 <computeroutput><name></computeroutput> adds an 1376 assignment of a bandwidth group to the specified virtual 1377 network interface. 1378 </para> 1379 1380 <para> 1381 For details, please see 1382 <xref linkend="network_bandwidth_limit" />. 1383 </para> 1384 </listitem> 1385 1386 <listitem> 1387 <para> 1388 <computeroutput>--bridgeadapter<1-N> 1389 none|<devicename></computeroutput>: If bridged 1390 networking has been enabled for a virtual network card (see 1391 the <computeroutput>--nic</computeroutput> option above), 1392 otherwise this setting has no effect. Use this option to 1393 specify which host interface the given virtual network 1394 interface will use. For details, please see 1395 <xref linkend="network_bridged" />. 1396 </para> 1397 </listitem> 1398 1399 <listitem> 1400 <para> 1401 <computeroutput>--hostonlyadapter<1-N> 1402 none|<devicename></computeroutput>: If host-only 1403 networking has been enabled for a virtual network card (see 1404 the <computeroutput>--nic</computeroutput> option above), 1405 otherwise this setting has no effect. Use this option to 1406 specify which host-only networking interface the given 1407 virtual network interface will use. For details, please see 1408 <xref 1409 linkend="network_hostonly" />. 1410 </para> 1411 </listitem> 1412 1413 <listitem> 1414 <para> 1415 <computeroutput>--intnet<1-N> 1416 network</computeroutput>: If internal networking has been 1417 enabled for a virtual network card (see the 1418 <computeroutput>--nic</computeroutput> option above), 1419 otherwise this setting has no effect. Ue this option to 1420 specify the name of the internal network (see 1421 <xref 1422 linkend="network_internal" />). 1423 </para> 1424 </listitem> 1425 1426 <listitem> 1427 <para> 1428 <computeroutput>--nat-network<1-N> <network 1429 name></computeroutput>: If the networking type is set to 1430 <computeroutput>natnetwork</computeroutput> (not 1431 <computeroutput>nat</computeroutput>) then this setting 1432 specifies the name of the NAT network this adapter is 1433 connected to. Optional. 1434 </para> 1435 </listitem> 1436 1437 <listitem> 1438 <para> 1439 <computeroutput>--nicgenericdrv<1-N> <backend 1440 driver></computeroutput>: If generic networking has been 1441 enabled for a virtual network card (see the 1442 <computeroutput>--nic</computeroutput> option above), 1443 otherwise this setting has no effect. This mode allows you 1444 to access rarely used networking sub-modes, such as VDE 1445 network or UDP Tunnel. 1446 </para> 1447 </listitem> 1448 1449 <listitem> 1450 <para> 1451 <computeroutput>--macaddress<1-N> 1452 auto|<mac></computeroutput>: With this option you can 1453 set the MAC address of a particular network adapter on the 1454 VM. Normally, each network adapter is assigned a random 1455 address by VirtualBox at VM creation. 1456 </para> 1457 </listitem> 1458 1459 </itemizedlist> 1460 1461 <sect3 id="vboxmanage-modifyvm-networking-nat"> 1462 1463 <title>NAT Networking Settings</title> 1464 1465 <para> 1466 The following NAT networking settings are available through 1467 <computeroutput>VBoxManage modifyvm</computeroutput>. With all 1468 these settings, the decimal number directly following the 1469 option name ("1-N" in the list below) specifies the virtual 1470 network adapter whose settings should be changed. 1471 </para> 1472 1473 <itemizedlist> 1474 498 1475 <listitem> 499 <para><computeroutput>--name <name></computeroutput>: This 500 changes the VM's name and possibly renames the internal virtual 501 machine files, as described with <computeroutput>VBoxManage 502 createvm</computeroutput> above.</para> 503 </listitem> 504 505 <listitem> 506 <para><computeroutput>--groups <group>, ...</computeroutput>: 507 This changes the group membership of a VM. Groups always start with 508 a <computeroutput>/</computeroutput> and can be nested. By default 509 VMs are in group <computeroutput>/</computeroutput>.</para> 510 </listitem> 511 512 <listitem> 513 <para><computeroutput>--description <desc></computeroutput>: 514 This changes the VM's description, which is a way to record details 515 about the VM in a way which is meaningful for the user. The GUI 516 interprets HTML formatting, the command line allows arbitrary 517 strings potentially containing multiple lines.</para> 518 </listitem> 519 520 <listitem> 521 <para><computeroutput>--ostype <ostype></computeroutput>: 522 This specifies what guest operating system is supposed to run in 523 the VM. To learn about the various identifiers that can be used 524 here, use <computeroutput>VBoxManage list 525 ostypes</computeroutput>.</para> 526 </listitem> 527 528 <listitem> 529 <para><computeroutput>--iconfile <filename></computeroutput>: 530 This specifies the absolute path on the host file system for the VirtualBox 531 icon to be displayed in the VM.</para> 532 </listitem> 533 534 <listitem> 535 <para><computeroutput>--memory <memorysize></computeroutput>: This sets the amount of RAM, 536 in MB, that the virtual machine should allocate for itself from 537 the host. See the remarks in <xref linkend="gui-createvm" /> for 538 more information.</para> 539 </listitem> 540 541 <listitem> 542 <para><computeroutput>--pagefusion on|off</computeroutput>: 543 Enables/disables (default) the Page Fusion feature. 544 The Page Fusion feature minimises memory duplication between VMs with similar 545 configurations running on the same host. 546 See <xref linkend="guestadd-pagefusion" /> for details.</para> 547 </listitem> 548 549 <listitem> 550 <para><computeroutput>--vram <vramsize></computeroutput>: 551 This sets the amount of RAM that the virtual graphics card should 552 have. See <xref linkend="settings-display" /> for details.</para> 553 </listitem> 554 555 <listitem> 556 <para><computeroutput>--acpi on|off</computeroutput>; 557 <computeroutput>--ioapic on|off</computeroutput>: These two 558 determine whether the VM should have ACPI and I/O APIC support, 559 respectively; see <xref linkend="settings-motherboard" /> for 560 details.</para> 561 </listitem> 562 563 <listitem> 564 <para><computeroutput>--pciattach <host PCI address [@ guest 565 PCI bus address]></computeroutput>: Attaches a specified PCI network 566 controller on the host to a PCI bus (can specify) on the guest. 567 See <xref linkend="pcipassthrough" /> for details. </para> 568 </listitem> 569 570 <listitem> 571 <para><computeroutput>--pcidetach <host PCI address></computeroutput>: 572 Detaches a specified PCI network controller on the host from the attached 573 PCI bus on the guest. See <xref linkend="pcipassthrough" /> 574 for details. </para> 575 </listitem> 576 577 <listitem> 578 <para><computeroutput>--hardwareuuid 579 <uuid></computeroutput>: The UUID presented to the guest via 580 memory tables (DMI/SMBIOS), hardware and guest properties. By 581 default this is the same as the VM uuid. Useful when cloning a VM. 582 Teleporting takes care of this automatically.</para> 583 </listitem> 584 585 <listitem> 586 <para><computeroutput>--cpus <cpucount></computeroutput>: 587 This sets the number of virtual CPUs for the virtual machine (see 588 <xref linkend="settings-processor" />). If CPU hot-plugging is 589 enabled (see below), this then sets the 590 <emphasis>maximum</emphasis> number of virtual CPUs that can be 591 plugged into the virtual machines.</para> 592 </listitem> 593 594 <listitem> 595 <para><computeroutput>--cpuhotplug on|off</computeroutput>: This 596 enables CPU hot-plugging. When enabled, virtual CPUs can be added 597 to and removed from a virtual machine while it is running. See 598 <xref linkend="cpuhotplug" /> for more information.</para> 599 </listitem> 600 601 <listitem> 602 <para><computeroutput>--plugcpu|unplugcpu 603 <id></computeroutput>: If CPU hot-plugging is enabled (see 604 above), this adds a virtual CPU to the virtual machines (or 605 removes one). <computeroutput><id></computeroutput> 606 specifies the index of the virtual CPU to be added or removed and 607 must be a number from 0 to the maximum no. of CPUs configured with 608 the <computeroutput>--cpus</computeroutput> option. CPU 0 can 609 never be removed.</para> 610 </listitem> 611 612 <listitem> 613 <para><computeroutput>--cpuexecutioncap 614 <1-100></computeroutput>: This setting controls how much cpu 615 time a virtual CPU can use. A value of 50 implies a single virtual 616 CPU can use up to 50% of a single host CPU.</para> 617 </listitem> 618 619 <listitem> 620 <para><computeroutput>--pae on|off</computeroutput>: This 621 enables/disables PAE. See <xref linkend="settings-processor" />.</para> 622 </listitem> 623 624 <listitem> 625 <para><computeroutput>--longmode on|off</computeroutput>: This 626 enables/disables long mode. See <xref linkend="settings-processor" />.</para> 627 </listitem> 628 629 <listitem> 630 <para><computeroutput>--spec-ctrl on|off</computeroutput>: This setting 631 enables/disables exposing speculation control interfaces to the guest, provided 632 they are available on the host. Depending on the host CPU and workload, enabling 633 speculation control may significantly reduce performance.</para> 634 </listitem> 635 636 <listitem> 637 <para><computeroutput>--cpu-profile <host|intel 80[86|286|386]></computeroutput>: 638 This enables specification of a profile for guest cpu emulation. 639 Specify either one based on the host system CPU (host), or one from 640 a number of older Intel Micro-architectures - 8086, 80286, 80386.</para> 641 </listitem> 642 643 <listitem> 644 <para><computeroutput>--hpet on|off</computeroutput>: This 645 enables/disables a High Precision Event Timer (HPET) which can 646 replace the legacy system timers. This is turned off by default. 647 Note that Windows supports a HPET only from Vista onwards.</para> 648 </listitem> 649 650 <listitem> 651 <para><computeroutput>--hwvirtex on|off</computeroutput>: This 652 enables or disables the use of hardware virtualization extensions 653 (Intel VT-x or AMD-V) in the processor of your host system; 654 see <xref linkend="hwvirt" />.</para> 655 </listitem> 656 657 <listitem> 658 <para><computeroutput>--triplefaultreset on|off</computeroutput>: 659 This setting enables resetting of the guest instead of triggering a 660 Guru Meditation. Some guests raise a triple fault to reset the 661 CPU so sometimes this is desired behavior. Works only for non-SMP 662 guests.</para> 663 </listitem> 664 665 <listitem> 666 <para><computeroutput>--apic on|off</computeroutput>: 667 This setting enables(default)/disables IO APIC. With 668 I/O APIC, operating systems can use more than 16 interrupt 669 requests (IRQs) thus avoiding IRQ sharing for improved 670 reliability. See <xref linkend="settings-motherboard" />.</para> 671 </listitem> 672 673 <listitem> 674 <para><computeroutput>--x2apic on|off</computeroutput>: 675 This setting enables(default)/disables CPU x2APIC support. 676 CPU x2APIC support helps operating systems run more efficiently on high 677 core count configurations, and optimizes interrupt 678 distribution in virtualized environments. Disable when using host/guest 679 operating systems incompatible with x2APIC support.</para> 680 </listitem> 681 682 <listitem> 683 <para><computeroutput>--paravirtprovider 684 none|default|legacy|minimal|hyperv|kvm</computeroutput>: This 685 setting specifies which paravirtualization interface to provide to 686 the guest operating system. Specifying 687 <computeroutput>none</computeroutput> explicitly turns off exposing 688 any paravirtualization interface. The option 689 <computeroutput>default</computeroutput>, will pick an appropriate 690 interface depending on the guest OS type while starting the VM. 691 This is the default option chosen while creating new VMs. The 692 <computeroutput>legacy</computeroutput> option is chosen for VMs 693 which were created with older VirtualBox versions and will pick a 694 paravirtualization interface while starting the VM with VirtualBox 695 5.0 and newer. The <computeroutput>minimal</computeroutput> provider 696 is mandatory for Mac OS X guests, while 697 <computeroutput>kvm</computeroutput> and 698 <computeroutput>hyperv</computeroutput> are recommended for Linux 699 and Windows guests respectively. These options are explained in 700 detail under <xref linkend="gimproviders" />.</para> 701 </listitem> 702 703 <listitem> 704 <para><computeroutput>--paravirtdebug <key=value> 705 [,<key=value> ...]</computeroutput>: This setting specifies debugging 706 options specific to the paravirtualization provider 707 configured for this VM. Please refer to the provider specific 708 options under <xref linkend="gimdebug" /> for a list of supported 709 key-value pairs for each provider.</para> 710 </listitem> 711 712 <listitem> 713 <para><computeroutput>--nestedpaging on|off</computeroutput>: If 714 hardware virtualization is enabled, this additional setting 715 enables or disables the use of the nested paging feature in the 716 processor of your host system; see <xref 717 linkend="hwvirt" />.</para> 718 </listitem> 719 720 <listitem> 721 <para><computeroutput>--largepages on|off</computeroutput>: If 722 hardware virtualization <emphasis>and</emphasis> nested paging are 723 enabled, for Intel VT-x only, an additional performance 724 improvement of up to 5% can be obtained by enabling this setting. 725 This causes the hypervisor to use large pages to reduce TLB use 726 and overhead.</para> 727 </listitem> 728 729 <listitem> 730 <para><computeroutput>--vtxvpid on|off</computeroutput>: If 731 hardware virtualization is enabled, for Intel VT-x only, this 732 additional setting enables or disables the use of the tagged TLB 733 (VPID) feature in the processor of your host system; see <xref 734 linkend="hwvirt" />.</para> 735 </listitem> 736 737 <listitem> 738 <para><computeroutput>--vtxux on|off</computeroutput>: If 739 hardware virtualization is enabled, for Intel VT-x only, this 740 setting enables or disables the use of the unrestricted guest mode 741 feature for executing your guest.</para> 742 </listitem> 743 744 <listitem> 745 <para><computeroutput>--accelerate3d on|off</computeroutput>: 746 If the Guest Additions are installed, this setting enables or 747 disables hardware 3D acceleration; see <xref 748 linkend="guestadd-3d" />.</para> 749 </listitem> 750 751 <listitem> 752 <para><computeroutput>--accelerate2dvideo on|off</computeroutput>: 753 If the Guest Additions are installed, this setting enables or 754 disables 2D video acceleration; see <xref 755 linkend="guestadd-2d" />.</para> 756 </listitem> 757 758 <listitem> 759 <para><computeroutput>--chipset piix3|ich9</computeroutput>: 760 By default VirtualBox emulates an Intel PIIX3 chipset. Usually there 761 is no reason to change the default setting unless this is required to 762 relax some of its constraints; see <xref 763 linkend="settings-motherboard" />.</para> 764 </listitem> 765 766 <listitem> 767 <para>You can influence the BIOS logo that is displayed when a 768 virtual machine starts up with a number of settings. By default, 769 a VirtualBox logo is displayed.</para> 770 771 <para>With <computeroutput>--bioslogofadein 772 on|off</computeroutput> and <computeroutput>--bioslogofadeout 773 on|off</computeroutput>, you can determine whether the logo should 774 fade in and out, respectively.</para> 775 776 <para>With <computeroutput>--bioslogodisplaytime 777 <msec></computeroutput> you can set how long the logo should 778 be visible, in milliseconds.</para> 779 780 <para>With <computeroutput>--bioslogoimagepath 781 <imagepath></computeroutput> you can, if you are so 782 inclined, replace the image that is shown, with your own logo. The 783 image must be an uncompressed 256 color BMP file without color 784 space information (Windows 3.0 format). The image must not be 785 bigger than 640 x 480.</para> 786 </listitem> 787 788 <listitem> 789 <para><computeroutput>--biosbootmenu 790 disabled|menuonly|messageandmenu</computeroutput>: This specifies 791 whether the BIOS allows the user to select a temporary boot 792 device. <computeroutput>menuonly</computeroutput> suppresses the 793 message, but the user can still press F12 to select a temporary 794 boot device.</para> 795 </listitem> 796 797 <listitem> 798 <para><computeroutput>--biosapic 799 x2apic|apic|disabled</computeroutput>: This specifies 800 the firmware APIC level to be used. Options are: x2apic, apic or 801 disabled (no apic or x2apic) respectively.</para> 802 803 <para>Note that if x2apic is specified and x2apic is unsupported by the 804 VCPU, biosapic downgrades to apic, if supported - otherwise down to 'disabled'. 805 Similarly, if apic is specified, and apic is unsupported a 806 downgrade to 'disabled' results.</para> 807 </listitem> 808 809 <listitem> 810 <para><computeroutput>--biossystemtimeoffset <ms></computeroutput>: 811 This specifies a fixed time offset (milliseconds) of the guest relative to 812 the host time. If the offset is positive, the guest time runs ahead of the 813 host time.</para> 814 </listitem> 815 816 <listitem> 817 <para><computeroutput>--biospxedebug on|off</computeroutput>: 818 This option enables additional debugging output when using the 819 Intel PXE boot ROM. The output will be written to the release log 820 file (<xref linkend="collect-debug-info" />.</para> 821 </listitem> 822 823 <listitem> 824 <para><computeroutput>--boot<1-4> 825 none|floppy|dvd|disk|net</computeroutput>: This specifies the boot 826 order for the virtual machine. There are four "slots", which the 827 VM will try to access from 1 to 4, and for each of which you can 828 set a device that the VM should attempt to boot from.</para> 829 </listitem> 830 831 <listitem> 832 <para><computeroutput>--rtcuseutc on|off</computeroutput>: This 833 option lets the real-time clock (RTC) operate in UTC time. See 834 <xref linkend="settings-motherboard" />.</para> 835 </listitem> 836 837 <listitem> 838 <para><computeroutput>--graphicscontroller none|vboxvga|vmsvga</computeroutput>: This 839 option specifies use of a graphics controller, and type chosen from vboxvga or vmsvga. 840 <xref linkend="settings-motherboard" />).</para> 841 </listitem> 842 843 <listitem> 844 <para><computeroutput>--snapshotfolder 845 default|<path></computeroutput>: This option specifies the folder in which 846 snapshots will be kept for a virtual machine.</para> 847 </listitem> 848 849 <listitem> 850 <para><computeroutput>--firmware bios|efi|efi32|efi64</computeroutput>: 851 This option specifies which firmware to be used to boot the VM: 852 Available options are: BIOS, or one of the EFI options: efi, efi32 or efi64. 853 Use EFI options with care.</para> 854 </listitem> 855 856 <listitem> 857 <para><computeroutput>--guestmemoryballoon 858 <size></computeroutput> This option sets the default size of the guest 859 memory balloon, that is, memory allocated by the VirtualBox Guest 860 Additions from the guest operating system and returned to the 861 hypervisor for re-use by other virtual machines. 862 <computeroutput><size></computeroutput> must be specified in 863 megabytes. The default size is 0 megabytes. For details, 864 see <xref linkend="guestadd-balloon" />.</para> 865 </listitem> 866 867 <listitem> 868 <para><computeroutput>--defaultfrontend 869 default|<name></computeroutput>: This option specifies 870 the default frontend to be used when starting this VM; 871 see <xref linkend="vboxmanage-startvm" /> for details.</para> 872 </listitem> 873 </itemizedlist></para> 874 </sect2> 875 876 <sect2> 877 <title>Networking settings</title> 878 879 <para>The following networking settings are available through 880 <computeroutput>VBoxManage modifyvm</computeroutput>. With all these 881 settings, the decimal number directly following the option name ("1-N" 882 in the list below) specifies the virtual network adapter whose settings 883 should be changed.<itemizedlist> 884 <listitem> 885 <para><computeroutput>--nic<1-N> 886 none|null|nat|natnetwork|bridged|intnet|hostonly|generic</computeroutput>: 887 With this, you can set, for each of the VM's virtual network cards, 888 what type of networking should be available. They can be not 889 present (<computeroutput>none</computeroutput>), not connected to 890 the host (<computeroutput>null</computeroutput>), use network 891 address translation (<computeroutput>nat</computeroutput>), 892 use the new network address translation engine 893 (<computeroutput>natnetwork</computeroutput>), 894 bridged networking (<computeroutput>bridged</computeroutput>) or 895 communicate with other virtual machines using internal networking 896 (<computeroutput>intnet</computeroutput>), host-only networking 897 (<computeroutput>hostonly</computeroutput>), or access rarely used 898 sub-modes (<computeroutput>generic</computeroutput>). 899 These options correspond 900 to the modes which are described in detail in <xref 901 linkend="networkingmodes" />.</para> 902 </listitem> 903 904 <listitem> 905 <para><computeroutput>--nictype<1-N> 906 Am79C970A|Am79C973|82540EM|82543GC|82545EM|virtio</computeroutput>: 907 This enables you to specify which networking hardware VirtualBox presents 908 to the guest for a specified VM virtual network card; 909 see <xref linkend="nichardware" />.</para> 910 </listitem> 911 912 <listitem> 913 <para><computeroutput>--cableconnected<1-N> 914 on|off</computeroutput>: This enables you to temporarily disconnect 915 a virtual network interface, as if a network cable had been pulled 916 from a real network card. This might be useful e.g. for resetting 917 certain software components in the VM.</para> 918 </listitem> 919 920 <listitem> 921 <para>With the "nictrace" options, you can optionally trace 922 network traffic by dumping it to a file, for debugging 923 purposes.</para> 924 925 <para>With <computeroutput>--nictrace<1-N> 926 on|off</computeroutput>, you can enable network tracing for a 927 particular virtual network card.</para> 928 929 <para>If enabled, you must specify with 930 <computeroutput>--nictracefile<1-N> 931 <filename></computeroutput> the absolute path of the file the trace should be 932 logged to.</para> 933 </listitem> 934 935 <listitem> 936 <para><computeroutput>--nicproperty<1-N> 937 <paramname>="paramvalue"</computeroutput>: 938 This option, in combination with "nicgenericdrv" allows you to 939 pass parameters to rarely-used network backends.</para> 940 941 <para>These parameters are backend engine-specific, and are different 942 between UDP Tunnel and the VDE backend drivers. For examples, 943 please see <xref linkend="network_udp_tunnel" />. 1476 <para> 1477 <computeroutput>--natnet<1-N> 1478 <network>|default</computeroutput>: If the 1479 networking type is set to 1480 <computeroutput>nat</computeroutput> (not 1481 <computeroutput>natnetwork</computeroutput>) then this 1482 setting specifies the IP address range to be used for this 1483 network. See <xref linkend="changenat" /> for an example. 944 1484 </para> 945 1485 </listitem> 946 1486 947 1487 <listitem> 948 <para> <computeroutput>--nicspeed<1-N> <kbps></computeroutput>:949 If generic networking has been enabled for a particular virtual network950 card (see the <computeroutput>--nic</computeroutput> option above - otherwise951 this setting has no effect), this mode enables access to rarely used networking952 sub-modes, such as VDE network or UDP Tunnel. This option specifies the953 throughput rate in KBytes/sec.1488 <para> 1489 <computeroutput>--natpf<1-N> 1490 [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], 1491 <guestport></computeroutput>: This setting defines a 1492 NAT port-forwarding rule. See 1493 <xref linkend="natforward" />. 954 1494 </para> 955 1495 </listitem> 956 1496 957 1497 <listitem> 958 <para><computeroutput>--nicbootprio<1-N> 959 <priority></computeroutput>: This specifies the order in which 960 NICs are tried for booting over the network (using PXE). The 961 priority is an integer in the 0 to 4 range. Priority 1 is the 962 highest, priority 4 is low. Priority 0, which is the default unless 963 otherwise specified, is the lowest.</para> 964 965 <para>Note that this option only has effect when the Intel PXE boot 966 ROM is used.</para> 967 </listitem> 968 969 <listitem> 970 <para><computeroutput>--nicpromisc<1-N> 971 deny|allow-vms|allow-all</computeroutput>: 972 This ernables you to specify how the promiscuous mode is handled for 973 the specified VM virtual network card. 974 This setting is only relevant for bridged networking. 975 <computeroutput>deny</computeroutput> (default setting) hides 976 any traffic not intended for this VM. 977 <computeroutput>allow-vms</computeroutput> hides all host 978 traffic from this VM but allows the VM to see traffic from/to other 979 VMs. 980 <computeroutput>allow-all</computeroutput> removes this 981 restriction completely.</para> 982 </listitem> 983 984 <listitem> 985 <para><computeroutput>--nicbandwidthgroup<1-N> 986 none|<name></computeroutput>: This removes/adds an assignment 987 of a bandwidth group from/to the specified virtual network interface. 988 Specifying <computeroutput>none</computeroutput> removes any current 989 bandwidth group assignment from the specified virtual network interface. 990 Specifying <computeroutput><name></computeroutput> adds an 991 assignment of a bandwidth group to the specified virtual network 992 interface.</para> 993 <para>For details, please see <xref linkend="network_bandwidth_limit" />.</para> 994 </listitem> 995 996 <listitem> 997 <para><computeroutput>--bridgeadapter<1-N> 998 none|<devicename></computeroutput>: If bridged networking 999 has been enabled for a virtual network card (see the 1000 <computeroutput>--nic</computeroutput> option above; otherwise 1001 this setting has no effect), use this option to specify which host 1002 interface the given virtual network interface will use. For 1003 details, please see <xref linkend="network_bridged" />.</para> 1004 </listitem> 1005 1006 <listitem> 1007 <para><computeroutput>--hostonlyadapter<1-N> 1008 none|<devicename></computeroutput>: If host-only networking 1009 has been enabled for a virtual network card (see the 1010 <computeroutput>--nic</computeroutput> option 1011 above; otherwise this setting has no effect), use this option to 1012 specify which host-only networking interface the given virtual 1013 network interface will use. For details, please see <xref 1014 linkend="network_hostonly" />.</para> 1015 </listitem> 1016 1017 <listitem> 1018 <para><computeroutput>--intnet<1-N> 1019 network</computeroutput>: If internal networking has been enabled 1020 for a virtual network card (see the 1021 <computeroutput>--nic</computeroutput> option above; otherwise 1022 this setting has no effect), use this option to specify the name 1023 of the internal network (see <xref 1024 linkend="network_internal" />).</para> 1025 </listitem> 1026 1027 1028 <listitem> 1029 <para><computeroutput>--nat-network<1-N> <network 1030 name></computeroutput>: If the networking type is set to 1031 <computeroutput>natnetwork</computeroutput> (not 1032 <computeroutput>nat</computeroutput>) then this setting specifies 1033 the name of the NAT network this adapter is connected to. Optional.</para> 1034 </listitem> 1035 1036 <listitem> 1037 <para><computeroutput>--nicgenericdrv<1-N> 1038 <backend driver></computeroutput>: If generic networking has been 1039 enabled for a virtual network card (see the 1040 <computeroutput>--nic</computeroutput> option above; otherwise 1041 this setting has no effect), this mode allows you to access 1042 rarely used networking sub-modes, such as VDE network or UDP Tunnel. 1498 <para> 1499 <computeroutput>--natpf<1-N> delete 1500 <name></computeroutput>: This setting deletes a NAT 1501 port-forwarding rule. See <xref linkend="natforward" />. 1043 1502 </para> 1044 1503 </listitem> 1045 1504 1046 1505 <listitem> 1047 <para><computeroutput>--macaddress<1-N> 1048 auto|<mac></computeroutput>: With this option you can set 1049 the MAC address of a particular network adapter on the VM. Normally, each 1050 network adapter is assigned a random address by VirtualBox at 1051 VM creation.</para> 1506 <para> 1507 <computeroutput>--nattftpprefix<1-N> 1508 <prefix></computeroutput>: This setting defines a 1509 prefix for the built-in TFTP server, i.e. where the boot 1510 file is located. See <xref linkend="nat-tftp" /> and 1511 <xref 1512 linkend="nat-adv-tftp" />. 1513 </para> 1052 1514 </listitem> 1053 </itemizedlist></para> 1054 1055 <sect3> 1056 <title>NAT Networking settings.</title> 1057 1058 <para>The following NAT networking settings are available through 1059 <computeroutput>VBoxManage modifyvm</computeroutput>. With all these 1060 settings, the decimal number directly following the option name ("1-N" 1061 in the list below) specifies the virtual network adapter whose 1062 settings should be changed.<itemizedlist> 1063 1064 <listitem> 1065 <para><computeroutput>--natnet<1-N> 1066 <network>|default</computeroutput>: 1067 If the networking type is set to <computeroutput>nat</computeroutput> 1068 (not <computeroutput>natnetwork</computeroutput>) then this 1069 setting specifies the IP address range to be used for 1070 this network. See <xref linkend="changenat" /> for an 1071 example.</para> 1072 </listitem> 1073 1074 <listitem> 1075 <para><computeroutput>--natpf<1-N> 1076 [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], 1077 <guestport></computeroutput>: This setting defines a NAT 1078 port-forwarding rule. See <xref linkend="natforward" /> 1079 for details.</para> 1080 </listitem> 1081 1082 <listitem> 1083 <para><computeroutput>--natpf<1-N> delete 1084 <name></computeroutput>: This setting deletes a NAT 1085 port-forwarding rule. See <xref linkend="natforward" /> 1086 for details.</para> 1087 </listitem> 1088 1089 <listitem> 1090 <para><computeroutput>--nattftpprefix<1-N> 1091 <prefix></computeroutput>: This setting defines a prefix 1092 for the built-in TFTP server, i.e. where the boot file is 1093 located. See <xref linkend="nat-tftp" /> and <xref 1094 linkend="nat-adv-tftp" /> for details.</para> 1095 </listitem> 1096 1097 <listitem> 1098 <para><computeroutput>--nattftpfile<1-N> 1099 <bootfile></computeroutput>: This setting defines the TFT 1100 boot file. See <xref linkend="nat-adv-tftp" /> for 1101 details.</para> 1102 </listitem> 1103 1104 <listitem> 1105 <para><computeroutput>--nattftpserver<1-N> 1106 <tftpserver></computeroutput>: This setting defines the 1107 TFTP server address to boot from. Please see <xref 1108 linkend="nat-adv-tftp" /> for details.</para> 1109 </listitem> 1110 1111 <listitem> 1112 <para><computeroutput>--nattbindip<1-N> 1113 <ip;></computeroutput>: VirtualBox's NAT engine normally routes 1114 TCP/IP packets through the default interface assigned by the host's 1115 TCP/IP stack. Use this setting to instruct the NAT engine to bind 1116 to a specified IP address instead. Please see <xref 1117 linkend="nat-adv-settings" /> for details.</para> 1118 </listitem> 1119 1120 <listitem> 1121 <para><computeroutput>--natdnspassdomain<1-N> 1122 on|off</computeroutput>: This setting specifies whether the 1123 built-in DHCP server passes the domain name for network name 1124 resolution.</para> 1125 </listitem> 1126 1127 <listitem> 1128 <para><computeroutput>--natdnsproxy<1-N> 1129 on|off</computeroutput>: This setting makes the NAT engine proxy 1130 all guest DNS requests to the host's DNS servers. Please see 1131 <xref linkend="nat-adv-dns" /> for details.</para> 1132 </listitem> 1133 1134 <listitem> 1135 <para><computeroutput>--natdnshostresolver<1-N> 1136 on|off</computeroutput>: This setting makes the NAT engine use 1137 the host's resolver mechanisms to handle DNS requests. Please 1138 see <xref linkend="nat-adv-dns" /> for detailsx).</para> 1139 </listitem> 1140 1141 <listitem> 1142 <para><computeroutput>--natsettings<1-N> 1515 1516 <listitem> 1517 <para> 1518 <computeroutput>--nattftpfile<1-N> 1519 <bootfile></computeroutput>: This setting defines 1520 the TFT boot file. See <xref linkend="nat-adv-tftp" />. 1521 </para> 1522 </listitem> 1523 1524 <listitem> 1525 <para> 1526 <computeroutput>--nattftpserver<1-N> 1527 <tftpserver></computeroutput>: This setting defines 1528 the TFTP server address to boot from. See 1529 <xref 1530 linkend="nat-adv-tftp" />. 1531 </para> 1532 </listitem> 1533 1534 <listitem> 1535 <para> 1536 <computeroutput>--nattbindip<1-N> 1537 <ip;></computeroutput>: VirtualBox's NAT engine 1538 normally routes TCP/IP packets through the default 1539 interface assigned by the host's TCP/IP stack. Use this 1540 setting to instruct the NAT engine to bind to a specified 1541 IP address instead. See 1542 <xref 1543 linkend="nat-adv-settings" />. 1544 </para> 1545 </listitem> 1546 1547 <listitem> 1548 <para> 1549 <computeroutput>--natdnspassdomain<1-N> 1550 on|off</computeroutput>: This setting specifies whether 1551 the built-in DHCP server passes the domain name for 1552 network name resolution. 1553 </para> 1554 </listitem> 1555 1556 <listitem> 1557 <para> 1558 <computeroutput>--natdnsproxy<1-N> 1559 on|off</computeroutput>: This setting makes the NAT engine 1560 proxy all guest DNS requests to the host's DNS servers. 1561 See <xref linkend="nat-adv-dns" />. 1562 </para> 1563 </listitem> 1564 1565 <listitem> 1566 <para> 1567 <computeroutput>--natdnshostresolver<1-N> 1568 on|off</computeroutput>: This setting makes the NAT engine 1569 use the host's resolver mechanisms to handle DNS requests. 1570 See <xref linkend="nat-adv-dns" />. 1571 </para> 1572 </listitem> 1573 1574 <listitem> 1575 <para> 1576 <computeroutput>--natsettings<1-N> 1143 1577 [<mtu>],[<socksnd>],[<sockrcv>],[<tcpsnd>], 1144 [<tcprcv>]</computeroutput>: This setting controls several 1145 NAT settings. Please see <xref linkend="nat-adv-settings" /> for 1146 details.</para> 1147 </listitem> 1148 1149 <listitem> 1150 <para><computeroutput>--nataliasmode<1-N> 1151 default|[log],[proxyonly],[sameports]</computeroutput>: This 1152 setting defines behaviour of NAT engine core: log - enables 1153 logging, proxyonly - switches of aliasing mode makes NAT 1154 transparent, sameports enforces NAT engine to send packets via 1155 the same port as they originated on, default - disable all 1156 mentioned modes above. Please see <xref 1157 linkend="nat-adv-alias" /> for details.</para> 1158 </listitem> 1159 </itemizedlist></para> 1578 [<tcprcv>]</computeroutput>: This setting controls 1579 several NAT settings. See 1580 <xref linkend="nat-adv-settings" />. 1581 </para> 1582 </listitem> 1583 1584 <listitem> 1585 <para> 1586 <computeroutput>--nataliasmode<1-N> 1587 default|[log],[proxyonly],[sameports]</computeroutput>: 1588 This setting defines behaviour of NAT engine core: log - 1589 enables logging, proxyonly - switches of aliasing mode 1590 makes NAT transparent, sameports enforces NAT engine to 1591 send packets via the same port as they originated on, 1592 default - disable all mentioned modes above. See 1593 <xref 1594 linkend="nat-adv-alias" />. 1595 </para> 1596 </listitem> 1597 1598 </itemizedlist> 1599 1160 1600 </sect3> 1601 1161 1602 </sect2> 1162 1603 1163 1604 <sect2 id="vboxmanage-modifyvm-other"> 1164 <title>Miscellaneous settings</title> 1165 1166 <para>The following other hardware settings, such as serial port, audio, 1167 clipboard, drag and drop, monitor and USB settings are available through 1168 <computeroutput>VBoxManage modifyvm</computeroutput>:<itemizedlist> 1169 <listitem> 1170 <para><computeroutput>--mouse <ps2|usb|usbtablet|usbmultitouch></computeroutput>: 1171 Specifies the mode of the mouse to be used in the VM. Available options are: ps2, usb, 1172 usbtablet, usbmultitouch. 1173 </para> 1174 </listitem> 1175 1176 <listitem> 1177 <para><computeroutput>--keyboard <ps2|usb></computeroutput>: 1178 Specifies the mode of the keyboard to be used in the VM. Available options are: ps2, usb. 1179 </para> 1180 </listitem> 1181 <listitem> 1182 <para><computeroutput>--uart<1-N> off|<I/O base> 1183 <IRQ></computeroutput>: With this setting you can configure 1184 virtual serial ports for the VM. See <xref 1185 linkend="serialports" /> for an introduction.</para> 1186 </listitem> 1187 1188 <listitem> 1189 <para><computeroutput>--uartmode<1-N> 1190 <arg></computeroutput>: This setting controls how VirtualBox 1191 connects a given virtual serial port (previously configured with 1192 the <computeroutput>--uartX</computeroutput> setting, see above) 1193 to the host on which the virtual machine is running. As 1194 described in detail in <xref linkend="serialports" />, for each 1195 such port, you can specify <computeroutput><arg></computeroutput> 1196 as one of the following options:<itemizedlist> 1197 <listitem> 1198 <para><computeroutput>disconnected</computeroutput>: Even 1199 though the serial port is shown to the guest, it has no 1200 "other end" -- like a real COM port without a cable.</para> 1201 </listitem> 1202 1203 <listitem> 1204 <para><computeroutput>server 1205 <pipename></computeroutput>: On a Windows host, this 1206 tells VirtualBox to create a named pipe on the host named 1207 <computeroutput><pipename></computeroutput> and 1208 connect the virtual serial device to it. Note that Windows 1209 requires that the name of a named pipe begin with 1210 <computeroutput>\\.\pipe\</computeroutput>.</para> 1211 1212 <para>On a Linux host, instead of a named pipe, a local 1213 domain socket is used.</para> 1214 </listitem> 1215 1216 <listitem> 1217 <para><computeroutput>client 1218 <pipename></computeroutput>: This operates just like 1219 <computeroutput>server ...</computeroutput>, except that the 1220 pipe (or local domain socket) is not created by VirtualBox, 1221 but assumed to exist already.</para> 1222 </listitem> 1223 1224 <listitem> 1225 <para><computeroutput>tcpserver 1226 <port></computeroutput>: This 1227 tells VirtualBox to create a TCP socket on the host with TCP 1228 <computeroutput><port></computeroutput> and 1229 connect the virtual serial device to it. Note that UNIX-like 1230 systems require ports over 1024 for normal users.</para> 1231 </listitem> 1232 1233 <listitem> 1234 <para><computeroutput>tcpclient 1235 <hostname:port></computeroutput>: This operates just like 1236 <computeroutput>tcpserver ...</computeroutput>, except that the 1237 TCP socket is not created by VirtualBox, 1238 but assumed to exist already.</para> 1239 </listitem> 1240 1241 <listitem> 1242 <para><computeroutput>file <file></computeroutput>: 1243 This redirects the serial port output to a raw file <file> 1244 specified by its absolute path on the host file system.</para> 1245 </listitem> 1246 1247 <listitem> 1248 <para><computeroutput><devicename></computeroutput>: 1249 If, instead of the above, the device name of a physical 1250 hardware serial port of the host is specified, the virtual 1251 serial port is connected to that hardware port. On a Windows 1252 host, the device name will be a COM port such as 1253 <computeroutput>COM1</computeroutput>; on a Linux host, the 1254 device name will look like 1255 <computeroutput>/dev/ttyS0</computeroutput>. This allows you 1256 to "wire" a real serial port to a virtual machine.</para> 1257 </listitem> 1258 </itemizedlist></para> 1259 </listitem> 1260 1261 <listitem> 1262 <para><computeroutput>--lptmode<1-N> 1263 <Device></computeroutput>: 1264 Specifies the Device Name of the parallel port that 1265 the Parallel Port feature will be using. Use this 1266 <emphasis>before</emphasis> <computeroutput>--lpt</computeroutput>. 1267 This feature is host operating system specific. For Windows hosts, use 1268 a device name like <emphasis>lpt1</emphasis> while on Linux 1269 hosts you have to use a device name like <emphasis>/dev/lp0</emphasis></para> 1270 </listitem> 1271 1272 <listitem> 1273 <para><computeroutput>--lpt<1-N> 1274 <I/O base> <IRQ></computeroutput>: 1275 Specifies the I/O address of the parallel port and the IRQ 1276 number that the Parallel Port feature will be using. Optional. Use this 1277 <emphasis>after</emphasis> <computeroutput>--lptmod</computeroutput>. 1278 I/O base address and IRQ are the values that guest sees i.e. the values 1279 avalable under guest Device Manager.</para> 1280 </listitem> 1281 1282 <listitem> 1283 <para><computeroutput>--audio none|null|dsound|oss|alsa|pulse|coreaudio</computeroutput>: 1284 With this setting, you can specify whether the VM should have audio support, and 1285 – if so – which type. The list of supported audio types depends on the 1286 host and can be determined with <computeroutput>VBoxManage modifyvm</computeroutput>. 1287 </para> 1288 </listitem> 1289 1290 <listitem> 1291 <para><computeroutput>--audiocontroller ac97|hda|sb16</computeroutput>: With 1292 this setting, you can specify the audio controller to be used with this 1293 VM. 1294 </para> 1295 </listitem> 1296 1297 <listitem> 1298 <para><computeroutput>--audiocodec stac9700|ad1980|stac9221|sb16</computeroutput>: With 1299 this setting, you can specify the audio codec to be used with this VM. 1300 </para> 1301 </listitem> 1302 1303 <listitem> 1304 <para><computeroutput>--audioin on</computeroutput>: With 1305 this setting, you can specify whether capturing audio from the 1306 host is enabled or disabled.</para> 1307 </listitem> 1308 1309 <listitem> 1310 <para><computeroutput>--audioout on</computeroutput>: With 1311 this setting, you can specify whether audio playback from the guest 1312 is enabled or disabled.</para> 1313 </listitem> 1314 1315 <listitem> 1316 <para><computeroutput>--clipboard 1317 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 1318 With this setting, you can select if and how the guest or host 1319 operating system's clipboard should be shared with the host or guest. 1320 See <xref linkend="generalsettings" />. This requires that the Guest 1321 Additions be installed in the virtual machine.</para> 1322 </listitem> 1323 1324 <listitem> 1325 <para><computeroutput>--draganddrop 1326 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 1327 With this setting, you can specify the current drag and drop mode 1328 being used between the host and the virtual machine. 1329 See <xref linkend="guestadd-dnd" />. This requires that the Guest 1330 Additions be installed in the virtual machine.</para> 1331 </listitem> 1332 1333 <listitem> 1334 <para><computeroutput>--monitorcount 1335 <count></computeroutput>: This enables multi-monitor 1336 support. See <xref linkend="settings-display" />.</para> 1337 </listitem> 1338 1339 <listitem> 1340 <para><computeroutput>--usb on|off</computeroutput>: This setting 1341 enables or disables the VM's virtual USB controller. See <xref 1342 linkend="settings-usb" /> for details.</para> 1343 </listitem> 1344 1345 <listitem> 1346 <para><computeroutput>--usbehci on|off</computeroutput>: This 1347 setting enables or disables the VM's virtual USB 2.0 controller. 1348 See <xref linkend="settings-usb" /> for details.</para> 1349 </listitem> 1350 1351 <listitem> 1352 <para><computeroutput>--usbxhci on|off</computeroutput>: This 1353 setting enables or disables the VM's virtual USB 3.0 controller. 1354 See <xref linkend="settings-usb" /> for details.</para> 1355 </listitem> 1356 1357 <listitem> 1358 <para><computeroutput>--usbrename 1359 <oldname> <newname></computeroutput>: This 1360 setting enables renaming of the VM's virtual USB controller from <oldname> 1361 to <newname>.</para> 1362 </listitem> 1363 </itemizedlist></para> 1605 1606 <title>Miscellaneous Settings</title> 1607 1608 <para> 1609 The following hardware settings, such as serial port, audio, 1610 clipboard, drag and drop, monitor and USB settings are available 1611 through <computeroutput>VBoxManage modifyvm</computeroutput>: 1612 </para> 1613 1614 <itemizedlist> 1615 1616 <listitem> 1617 <para> 1618 <computeroutput>--mouse 1619 <ps2|usb|usbtablet|usbmultitouch></computeroutput>: 1620 Specifies the mode of the mouse to be used in the VM. 1621 Available options are: ps2, usb, usbtablet, usbmultitouch. 1622 </para> 1623 </listitem> 1624 1625 <listitem> 1626 <para> 1627 <computeroutput>--keyboard <ps2|usb></computeroutput>: 1628 Specifies the mode of the keyboard to be used in the VM. 1629 Available options are: ps2, usb. 1630 </para> 1631 </listitem> 1632 1633 <listitem> 1634 <para> 1635 <computeroutput>--uart<1-N> off|<I/O base> 1636 <IRQ></computeroutput>: With this setting you can 1637 configure virtual serial ports for the VM. See 1638 <xref 1639 linkend="serialports" />. 1640 </para> 1641 </listitem> 1642 1643 <listitem> 1644 <para> 1645 <computeroutput>--uartmode<1-N> 1646 <arg></computeroutput>: This setting controls how 1647 VirtualBox connects a given virtual serial port (previously 1648 configured with the <computeroutput>--uartX</computeroutput> 1649 setting, see above) to the host on which the virtual machine 1650 is running. As described in <xref linkend="serialports" />, 1651 for each such port, you can specify 1652 <computeroutput><arg></computeroutput> as one of the 1653 following options: 1654 </para> 1655 1656 <itemizedlist> 1657 1658 <listitem> 1659 <para> 1660 <computeroutput>disconnected</computeroutput>: Even 1661 though the serial port is shown to the guest, it has no 1662 "other end". This is like a real COM port without a 1663 cable. 1664 </para> 1665 </listitem> 1666 1667 <listitem> 1668 <para> 1669 <computeroutput>server 1670 <pipename></computeroutput>: On a Windows host, 1671 this tells VirtualBox to create a named pipe on the host 1672 named <computeroutput><pipename></computeroutput> 1673 and connect the virtual serial device to it. Note that 1674 Windows requires that the name of a named pipe begin 1675 with <computeroutput>\\.\pipe\</computeroutput>. 1676 </para> 1677 1678 <para> 1679 On a Linux host, instead of a named pipe, a local domain 1680 socket is used. 1681 </para> 1682 </listitem> 1683 1684 <listitem> 1685 <para> 1686 <computeroutput>client 1687 <pipename></computeroutput>: This operates just 1688 like <computeroutput>server ...</computeroutput>, except 1689 that the pipe, or local domain socket, is not created by 1690 VirtualBox, but assumed to exist already. 1691 </para> 1692 </listitem> 1693 1694 <listitem> 1695 <para> 1696 <computeroutput>tcpserver <port></computeroutput>: 1697 This tells VirtualBox to create a TCP socket on the host 1698 with TCP <computeroutput><port></computeroutput> 1699 and connect the virtual serial device to it. Note that 1700 UNIX-like systems require ports over 1024 for normal 1701 users. 1702 </para> 1703 </listitem> 1704 1705 <listitem> 1706 <para> 1707 <computeroutput>tcpclient 1708 <hostname:port></computeroutput>: This operates 1709 just like <computeroutput>tcpserver 1710 ...</computeroutput>, except that the TCP socket is not 1711 created by VirtualBox, but assumed to exist already. 1712 </para> 1713 </listitem> 1714 1715 <listitem> 1716 <para> 1717 <computeroutput>file <file></computeroutput>: This 1718 redirects the serial port output to a raw file 1719 <file> specified by its absolute path on the host 1720 file system. 1721 </para> 1722 </listitem> 1723 1724 <listitem> 1725 <para> 1726 <computeroutput><devicename></computeroutput>: If, 1727 instead of the above, the device name of a physical 1728 hardware serial port of the host is specified, the 1729 virtual serial port is connected to that hardware port. 1730 On a Windows host, the device name will be a COM port 1731 such as <computeroutput>COM1</computeroutput>; on a 1732 Linux host, the device name will look like 1733 <computeroutput>/dev/ttyS0</computeroutput>. This allows 1734 you to "wire" a real serial port to a virtual machine. 1735 </para> 1736 </listitem> 1737 1738 </itemizedlist> 1739 </listitem> 1740 1741 <listitem> 1742 <para> 1743 <computeroutput>--lptmode<1-N> 1744 <Device></computeroutput>: Specifies the Device Name 1745 of the parallel port that the Parallel Port feature will be 1746 using. Use this <emphasis>before</emphasis> 1747 <computeroutput>--lpt</computeroutput>. This feature is host 1748 operating system specific. For Windows hosts, use a device 1749 name like <emphasis>lpt1</emphasis> while on Linux hosts you 1750 have to use a device name like <emphasis>/dev/lp0</emphasis> 1751 </para> 1752 </listitem> 1753 1754 <listitem> 1755 <para> 1756 <computeroutput>--lpt<1-N> <I/O base> 1757 <IRQ></computeroutput>: Specifies the I/O address of 1758 the parallel port and the IRQ number that the Parallel Port 1759 feature will be using. Optional. Use this 1760 <emphasis>after</emphasis> 1761 <computeroutput>--lptmod</computeroutput>. I/O base address 1762 and IRQ are the values that guest sees. For example, the 1763 values avalable under guest Device Manager. 1764 </para> 1765 </listitem> 1766 1767 <listitem> 1768 <para> 1769 <computeroutput>--audio 1770 none|null|dsound|oss|alsa|pulse|coreaudio</computeroutput>: 1771 With this setting, you can specify whether the VM should 1772 have audio support, and – if so – which type. 1773 The list of supported audio types depends on the host and 1774 can be determined with <computeroutput>VBoxManage 1775 modifyvm</computeroutput>. 1776 </para> 1777 </listitem> 1778 1779 <listitem> 1780 <para> 1781 <computeroutput>--audiocontroller 1782 ac97|hda|sb16</computeroutput>: With this setting, you can 1783 specify the audio controller to be used with this VM. 1784 </para> 1785 </listitem> 1786 1787 <listitem> 1788 <para> 1789 <computeroutput>--audiocodec 1790 stac9700|ad1980|stac9221|sb16</computeroutput>: With this 1791 setting, you can specify the audio codec to be used with 1792 this VM. 1793 </para> 1794 </listitem> 1795 1796 <listitem> 1797 <para> 1798 <computeroutput>--audioin on</computeroutput>: With this 1799 setting, you can specify whether capturing audio from the 1800 host is enabled or disabled. 1801 </para> 1802 </listitem> 1803 1804 <listitem> 1805 <para> 1806 <computeroutput>--audioout on</computeroutput>: With this 1807 setting, you can specify whether audio playback from the 1808 guest is enabled or disabled. 1809 </para> 1810 </listitem> 1811 1812 <listitem> 1813 <para> 1814 <computeroutput>--clipboard 1815 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 1816 With this setting, you can select if and how the guest or 1817 host operating system's clipboard should be shared with the 1818 host or guest. See <xref linkend="generalsettings" />. This 1819 requires that the Guest Additions be installed in the 1820 virtual machine. 1821 </para> 1822 </listitem> 1823 1824 <listitem> 1825 <para> 1826 <computeroutput>--draganddrop 1827 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 1828 With this setting, you can specify the current drag and drop 1829 mode being used between the host and the virtual machine. 1830 See <xref linkend="guestadd-dnd" />. This requires that the 1831 Guest Additions be installed in the virtual machine. 1832 </para> 1833 </listitem> 1834 1835 <listitem> 1836 <para> 1837 <computeroutput>--monitorcount 1838 <count></computeroutput>: This enables multi-monitor 1839 support. See <xref linkend="settings-display" />. 1840 </para> 1841 </listitem> 1842 1843 <listitem> 1844 <para> 1845 <computeroutput>--usb on|off</computeroutput>: This setting 1846 enables or disables the VM's virtual USB controller. See 1847 <xref 1848 linkend="settings-usb" />. 1849 </para> 1850 </listitem> 1851 1852 <listitem> 1853 <para> 1854 <computeroutput>--usbehci on|off</computeroutput>: This 1855 setting enables or disables the VM's virtual USB 2.0 1856 controller. See <xref linkend="settings-usb" />. 1857 </para> 1858 </listitem> 1859 1860 <listitem> 1861 <para> 1862 <computeroutput>--usbxhci on|off</computeroutput>: This 1863 setting enables or disables the VM's virtual USB 3.0 1864 controller. See <xref linkend="settings-usb" />. 1865 </para> 1866 </listitem> 1867 1868 <listitem> 1869 <para> 1870 <computeroutput>--usbrename <oldname> 1871 <newname></computeroutput>: This setting enables 1872 renaming of the VM's virtual USB controller from 1873 <oldname> to <newname>. 1874 </para> 1875 </listitem> 1876 1877 </itemizedlist> 1364 1878 1365 1879 </sect2> 1366 1880 1367 1881 <sect2 id="vboxmanage-modifyvm-videocap"> 1368 <title>Video Capture settings</title> 1369 1370 <para>The following settings for changing video recording parameters are 1371 available through <computeroutput>VBoxManage modifyvm</computeroutput>. 1882 1883 <title>Video Capture Settings</title> 1884 1885 <para> 1886 The following settings for changing video recording parameters 1887 are available through <computeroutput>VBoxManage 1888 modifyvm</computeroutput>. 1889 </para> 1890 1372 1891 <itemizedlist> 1373 <listitem> 1374 <para><computeroutput>--videocap on|off</computeroutput>: 1375 This option enables or disables recording a VM session into a WebM/VP8 1376 file. If this option is enabled, recording will start when the VM 1377 session is started.</para> 1378 </listitem> 1379 <listitem> 1380 <para><computeroutput>--videocapscreens all|<screen ID> 1381 [<screen ID> ...]</computeroutput>: This option allows to specify which screens of 1382 the VM are being recorded. Each screen is recorded into a separate file.</para> 1383 </listitem> 1384 <listitem> 1385 <para><computeroutput>--videocapfile <filename></computeroutput>: 1386 This option sets the filename VirtualBox uses to save the recorded content. 1387 </para> 1388 </listitem> 1389 <listitem> 1390 <para><computeroutput>--videocapres <width>x<height></computeroutput>: 1391 This option sets the resolution (in pixels) of the recorded video.</para> 1392 </listitem> 1393 <listitem> 1394 <para><computeroutput>--videocaprate <rate></computeroutput>: 1395 This option sets the bitrate in kilobits (kb) per second. Increasing this 1396 value makes the video look better for the cost of an increased file size.</para> 1397 </listitem> 1398 <listitem> 1399 <para><computeroutput>--videocapfps <fps></computeroutput>: 1400 This option sets the maximum number of frames per second (FPS) to be 1401 recorded. Frames with a higher frequency will be skipped. Reducing this 1402 value increases the number of skipped frames and reduces the file size.</para> 1403 </listitem> 1404 <listitem> 1405 <para><computeroutput>--videocapmaxtime <ms></computeroutput>: 1406 This option sets the maximum time in milliseconds the video capturing 1407 will be enabled since activation. The capturing stops when the defined 1408 time interval has elapsed. If this value is zero the capturing is not 1409 limited by time.</para> 1410 </listitem> 1411 <listitem> 1412 <para><computeroutput>--videocapmaxsize <MB></computeroutput>: 1413 This option limits the maximum size of the captured video file (in MB). 1414 The capturing stops when the file size has reached the specified size. If 1415 this value is zero the capturing will not be limited by file size.</para> 1416 </listitem> 1417 <listitem> 1418 <para><computeroutput>--videocapopts <key=value> 1419 [,<key=value> ...]</computeroutput>: 1420 This format can be used to specify additional video capturing options. 1421 These options only are for advanced users and must be specified in a 1422 comma-separated key=value format, e.g. 1892 1893 <listitem> 1894 <para> 1895 <computeroutput>--videocap on|off</computeroutput>: This 1896 option enables or disables recording a VM session into a 1897 WebM/VP8 file. If this option is enabled, recording will 1898 start when the VM session is started. 1899 </para> 1900 </listitem> 1901 1902 <listitem> 1903 <para> 1904 <computeroutput>--videocapscreens all|<screen ID> 1905 [<screen ID> ...]</computeroutput>: This option allows 1906 to specify which screens of the VM are being recorded. Each 1907 screen is recorded into a separate file. 1908 </para> 1909 </listitem> 1910 1911 <listitem> 1912 <para> 1913 <computeroutput>--videocapfile 1914 <filename></computeroutput>: This option sets the 1915 filename VirtualBox uses to save the recorded content. 1916 </para> 1917 </listitem> 1918 1919 <listitem> 1920 <para> 1921 <computeroutput>--videocapres 1922 <width>x<height></computeroutput>: This option 1923 sets the resolution (in pixels) of the recorded video. 1924 </para> 1925 </listitem> 1926 1927 <listitem> 1928 <para> 1929 <computeroutput>--videocaprate 1930 <rate></computeroutput>: This option sets the bitrate 1931 in kilobits (kb) per second. Increasing this value makes the 1932 video look better for the cost of an increased file size. 1933 </para> 1934 </listitem> 1935 1936 <listitem> 1937 <para> 1938 <computeroutput>--videocapfps <fps></computeroutput>: 1939 This option sets the maximum number of frames per second 1940 (FPS) to be recorded. Frames with a higher frequency will be 1941 skipped. Reducing this value increases the number of skipped 1942 frames and reduces the file size. 1943 </para> 1944 </listitem> 1945 1946 <listitem> 1947 <para> 1948 <computeroutput>--videocapmaxtime 1949 <ms></computeroutput>: This option sets the maximum 1950 time in milliseconds the video capturing will be enabled 1951 since activation. The capturing stops when the defined time 1952 interval has elapsed. If this value is zero the capturing is 1953 not limited by time. 1954 </para> 1955 </listitem> 1956 1957 <listitem> 1958 <para> 1959 <computeroutput>--videocapmaxsize 1960 <MB></computeroutput>: This option limits the maximum 1961 size of the captured video file (in MB). The capturing stops 1962 when the file size has reached the specified size. If this 1963 value is zero the capturing will not be limited by file 1964 size. 1965 </para> 1966 </listitem> 1967 1968 <listitem> 1969 <para> 1970 <computeroutput>--videocapopts <key=value> 1971 [,<key=value> ...]</computeroutput>: This format can 1972 be used to specify additional video capturing options. These 1973 options only are for advanced users and must be specified in 1974 a comma-separated key=value format. For example: 1423 1975 <computeroutput>foo=bar,a=b</computeroutput>. 1424 1976 </para> 1425 1977 1426 <para>The following keys and their corresponding values are available: 1427 <itemizedlist> 1428 <listitem> 1429 <para><computeroutput>ac_enabled</computeroutput>: 1430 Enables audio recording when set to <computeroutput>true</computeroutput>, 1431 otherwise set to <computeroutput>false</computeroutput> to disable. 1432 This feature is considered being experimental.</para> 1433 </listitem> 1434 </itemizedlist> 1435 </para> 1436 1437 </listitem> 1438 </itemizedlist></para> 1978 <para> 1979 The following keys and their corresponding values are 1980 available: 1981 </para> 1982 1983 <itemizedlist> 1984 1985 <listitem> 1986 <para> 1987 <computeroutput>ac_enabled</computeroutput>: Enables 1988 audio recording when set to 1989 <computeroutput>true</computeroutput>, otherwise set to 1990 <computeroutput>false</computeroutput> to disable. This 1991 feature is considered being experimental. 1992 </para> 1993 </listitem> 1994 1995 </itemizedlist> 1996 </listitem> 1997 1998 </itemizedlist> 1439 1999 1440 2000 </sect2> 1441 2001 1442 2002 <sect2 id="vboxmanage-modifyvm-vrde"> 1443 <title>Remote machine settings</title> 1444 1445 <para>The following settings that affect remote machine behavior are 1446 available through <computeroutput>VBoxManage 1447 modifyvm</computeroutput>:<itemizedlist> 1448 <listitem> 1449 <para><computeroutput>--vrde on|off</computeroutput>: 1450 This enables or disables the VirtualBox remote desktop extension 1451 (VRDE) server.</para> 1452 </listitem> 1453 1454 <listitem> 1455 <para><computeroutput>--vrdeproperty "TCP/Ports|Address=<value>"</computeroutput> 1456 sets the port number(s) and IP address on the VM that the VRDE server can bind to.</para> 1457 1458 <itemizedlist> 1459 <listitem> 1460 <para>For TCP/Ports, <value> should be a port or a range of ports that the VRDE 1461 server can bind to; "default" or "0" means port 3389, the standard port for RDP. 1462 For details, see the description for the 1463 <computeroutput>--vrdeport</computeroutput> option in <xref 1464 linkend="vboxmanage-modifyvm-vrde" />.</para> 1465 </listitem> 1466 1467 <listitem> 1468 <para>For TCP/Address, <value> should be the IP address of the host network 1469 interface that the VRDE server will bind to. If specified, the server 1470 will accept connections only on the specified host network interface. 1471 For details, see the description for the 1472 <computeroutput>--vrdeaddress</computeroutput> option in <xref 1473 linkend="vboxmanage-modifyvm-vrde" />.</para> 1474 </listitem> 1475 </itemizedlist> 1476 </listitem> 1477 1478 <listitem> 1479 <para><computeroutput>--vrdeproperty "VideoChannel/Enabled|Quality|DownscaleProtection=<value>"</computeroutput> 1480 sets the VRDP video redirection properties.</para> 1481 <itemizedlist> 1482 <listitem> 1483 <para>For VideoChannel/Enabled, <value> can be set to "1" switching the VRDP video channel on. 1484 For details, see <xref linkend="vrde-videochannel" />.</para> 1485 </listitem> 1486 1487 <listitem> 1488 <para>For VideoChannel/Quality, <value> should be set between 10 and 100% inclusive, 1489 representing a JPEG compression level on the VRDE server video channel. Lower values mean lower 1490 quality but higher compression. For details, see <xref linkend="vrde-videochannel" />.</para> 1491 </listitem> 1492 1493 <listitem> 1494 <para>For VideoChannel/DownscaleProtection, <value> can be set to "1" to 1495 enable the videochannel downscale protection feature. When enabled, if a video's size equals the shadow buffer 1496 size, then it is regarded as a full screen video, and is displayed; but if its size is between fullscreen and the downscale 1497 threshold - it is NOT displayed, as it could be an application window, which would be unreadable when downscaled. 1498 When the downscale protection feature is disabled, an attempt is always made to display videos.</para> 1499 </listitem> 1500 </itemizedlist> 1501 </listitem> 1502 1503 <listitem> 1504 <para><computeroutput>--vrdeproperty "Client/DisableDisplay|DisableInput|DisableAudio|DisableUSB=1"</computeroutput></para> 1505 <para>disables one of the VRDE server features: Display, Input, Audio or USB respectively. 1506 To re-enable a feature, use e.g. "Client/DisableDisplay=". 1507 For details, see <xref linkend="vrde-customization" />.</para> 1508 </listitem> 1509 1510 <listitem> 1511 <para><computeroutput>--vrdeproperty "Client/DisableClipboard|DisableUpstreamAudio=1"</computeroutput></para> 1512 <para>disables one of the VRDE server features: Clipboard or UpstreamAudio respectively. 1513 To re-enable a feature, use e.g. "Client/DisableClipboard=". 1514 For details, see <xref linkend="vrde-customization" />.</para> 1515 </listitem> 1516 1517 <listitem> 1518 <para><computeroutput>--vrdeproperty "Client/DisableRDPDR=1"</computeroutput></para> 1519 <para>disables the VRDE server feature: RDP device redirection for smart cards. 1520 To re-enable this feature, use "Client/DisableRDPR=".</para> 1521 </listitem> 1522 1523 <listitem> 1524 <para><computeroutput>--vrdeproperty "H3DRedirect/Enabled=1"</computeroutput></para> 1525 <para>enables the VRDE server feature: 3D redirection. 1526 To re-disable this feature, use "H3DRedirect/Enabled=".</para> 1527 </listitem> 1528 1529 <listitem> 1530 <para><computeroutput>--vrdeproperty "Security/Method|ServerCertificate|ServerPrivateKey|CACertificate=<value>"</computeroutput> 1531 sets the desired security method/Path of server certificate, path of server private key, path of CA certificate, used for a connection. 1532 1533 <itemizedlist> 1534 <listitem> 1535 <para><computeroutput>--vrdeproperty "Security/Method=<value>"</computeroutput> 1536 sets the desired security method, which is used for a connection. Valid values are: 1537 <itemizedlist> 1538 <listitem> 1539 <para> <computeroutput>Negotiate</computeroutput> - both Enhanced (TLS) 1540 and Standard RDP Security connections are allowed. The security 1541 method is negotiated with the client. This is the default setting.</para> 1542 </listitem> 1543 <listitem> 1544 <para> <computeroutput>RDP</computeroutput> - only Standard RDP Security is accepted.</para> 1545 </listitem> 1546 <listitem> 1547 <para> <computeroutput>TLS</computeroutput> - only Enhanced RDP Security is accepted. 1548 The client must support TLS.</para> 1549 </listitem> 1550 </itemizedlist> 1551 For details, see <xref linkend="vrde-crypt" />.</para> 1552 </listitem> 1553 1554 <listitem> 1555 <para><computeroutput>--vrdeproperty "Security/ServerCertificate=<value>"</computeroutput> 1556 where <value> is the absolute path of the server certificate. 1557 For details, see <xref linkend="vrde-crypt" />.</para> 1558 </listitem> 1559 1560 <listitem> 1561 <para><computeroutput>--vrdeproperty "Security/ServerPrivateKey=<value>"</computeroutput> 1562 where <value> is the absolute path of the server private key. 1563 For details, see <xref linkend="vrde-crypt" />.</para> 1564 </listitem> 1565 1566 <listitem> 1567 <para><computeroutput>--vrdeproperty "Security/CACertificate=<value>"</computeroutput> 1568 where <value> is the absolute path of the CA self signed certificate. 1569 For details, see <xref linkend="vrde-crypt" />.</para> 1570 </listitem> 1571 </itemizedlist></para> 1572 </listitem> 1573 1574 <listitem> 1575 <para><computeroutput>--vrdeproperty "Audio/RateCorrectionMode|LogPath=<value>"</computeroutput> 1576 sets the Audio connection mode, or Path of the audio logfile. 1577 1578 <itemizedlist> 1579 <listitem> 1580 <para><computeroutput>--vrdeproperty "Audio/RateCorrectionMode=<value>"</computeroutput> 1581 where <value> is the desired rate correction mode, allowed values are: 1582 <itemizedlist> 1583 <listitem> 1584 <para> <computeroutput>VRDP_AUDIO_MODE_VOID</computeroutput> - no mode specified, use to unset any Audio mode already set.</para> 1585 </listitem> 1586 <listitem> 1587 <para> <computeroutput>VRDP_AUDIO_MODE_RC</computeroutput> - rate correction mode.</para> 1588 </listitem> 1589 <listitem> 1590 <para> <computeroutput>VRDP_AUDIO_MODE_LPF</computeroutput> - low pass filter mode.</para> 1591 </listitem> 1592 <listitem> 1593 <para> <computeroutput>VRDP_AUDIO_MODE_CS</computeroutput> - client sync mode to prevent under/overflow of the client queue.</para> 1594 </listitem> 1595 </itemizedlist></para> 1596 </listitem> 1597 <listitem> 1598 <para><computeroutput>--vrdeproperty "Audio/LogPath=<value>"</computeroutput> 1599 where <value> is the absolute path of the Audio log file.</para> 1600 </listitem> 1601 </itemizedlist></para> 1602 </listitem> 1603 1604 <listitem> 1605 <para><computeroutput>--vrdeextpack default|<name></computeroutput>: 1606 Enables specification of the library for accessing the VM 1607 remotely. The default is to use the RDP code which is part of the 1608 Oracle VM VirtualBox Extension Pack.</para> 1609 </listitem> 1610 1611 <listitem> 1612 <para><computeroutput>--vrdeport 1613 default|<ports></computeroutput>: A port or a range of ports 1614 the VRDE server can bind to; "default" or "0" means port 3389, the 1615 standard port for RDP. You can specify a comma-separated list of 1616 ports or ranges of ports. Use a dash between two port numbers to 1617 specify a range. The VRDE server will bind to <emphasis 1618 role="bold">one</emphasis> of the available ports from the specified 1619 list. Only one machine can use a given port at a time. For 1620 example, the option <computeroutput> --vrdeport 1621 5000,5010-5012</computeroutput> will tell the server to bind to 1622 one of following ports: 5000, 5010, 5011 or 5012.</para> 1623 </listitem> 1624 1625 <listitem> 1626 <para><computeroutput>--vrdeaddress <IP 1627 address></computeroutput>: The IP address of the host network 1628 interface the VRDE server will bind to. If specified, the server 1629 will accept connections only on the specified host network 1630 interface.</para> 1631 <para>The setting can be used to specify whether the VRDP server 2003 2004 <title>Remote Machine Settings</title> 2005 2006 <para> 2007 The following settings that affect remote machine behavior are 2008 available through <computeroutput>VBoxManage 2009 modifyvm</computeroutput>: 2010 </para> 2011 2012 <itemizedlist> 2013 2014 <listitem> 2015 <para> 2016 <computeroutput>--vrde on|off</computeroutput>: This enables 2017 or disables the VirtualBox remote desktop extension (VRDE) 2018 server. 2019 </para> 2020 </listitem> 2021 2022 <listitem> 2023 <para> 2024 <computeroutput>--vrdeproperty 2025 "TCP/Ports|Address=<value>"</computeroutput> sets the 2026 port number(s) and IP address on the VM that the VRDE server 2027 can bind to. 2028 </para> 2029 2030 <itemizedlist> 2031 2032 <listitem> 2033 <para> 2034 For TCP/Ports, <value> should be a port or a range 2035 of ports that the VRDE server can bind to; "default" or 2036 "0" means port 3389, the standard port for RDP. See the 2037 description for the 2038 <computeroutput>--vrdeport</computeroutput> option in 2039 <xref 2040 linkend="vboxmanage-modifyvm-vrde" />. 2041 </para> 2042 </listitem> 2043 2044 <listitem> 2045 <para> 2046 For TCP/Address, <value> should be the IP address 2047 of the host network interface that the VRDE server will 2048 bind to. If specified, the server will accept 2049 connections only on the specified host network 2050 interface. See the description for the 2051 <computeroutput>--vrdeaddress</computeroutput> option in 2052 <xref 2053 linkend="vboxmanage-modifyvm-vrde" />. 2054 </para> 2055 </listitem> 2056 2057 </itemizedlist> 2058 </listitem> 2059 2060 <listitem> 2061 <para> 2062 <computeroutput>--vrdeproperty 2063 "VideoChannel/Enabled|Quality|DownscaleProtection=<value>"</computeroutput> 2064 sets the VRDP video redirection properties. 2065 </para> 2066 2067 <itemizedlist> 2068 2069 <listitem> 2070 <para> 2071 For VideoChannel/Enabled, <value> can be set to 2072 "1" switching the VRDP video channel on. For details, 2073 see <xref linkend="vrde-videochannel" />. 2074 </para> 2075 </listitem> 2076 2077 <listitem> 2078 <para> 2079 For VideoChannel/Quality, <value> should be set 2080 between 10 and 100% inclusive, representing a JPEG 2081 compression level on the VRDE server video channel. 2082 Lower values mean lower quality but higher compression. 2083 See <xref linkend="vrde-videochannel" />. 2084 </para> 2085 </listitem> 2086 2087 <listitem> 2088 <para> 2089 For VideoChannel/DownscaleProtection, <value> can 2090 be set to "1" to enable the videochannel downscale 2091 protection feature. When enabled, if a video's size 2092 equals the shadow buffer size, then it is regarded as a 2093 full screen video, and is displayed. But if its size is 2094 between fullscreen and the downscale threshold then it 2095 is <emphasis>not</emphasis> displayed, as it could be an 2096 application window, which would be unreadable when 2097 downscaled. When the downscale protection feature is 2098 disabled, an attempt is always made to display videos. 2099 </para> 2100 </listitem> 2101 2102 </itemizedlist> 2103 </listitem> 2104 2105 <listitem> 2106 <para> 2107 <computeroutput>--vrdeproperty 2108 "Client/DisableDisplay|DisableInput|DisableAudio|DisableUSB=1"</computeroutput> 2109 </para> 2110 2111 <para> 2112 Disables one of the VRDE server features: Display, Input, 2113 Audio or USB respectively. To reenable a feature, use 2114 "Client/DisableDisplay=" for example. See 2115 <xref linkend="vrde-customization" />. 2116 </para> 2117 </listitem> 2118 2119 <listitem> 2120 <para> 2121 <computeroutput>--vrdeproperty 2122 "Client/DisableClipboard|DisableUpstreamAudio=1"</computeroutput> 2123 </para> 2124 2125 <para> 2126 Disables one of the VRDE server features: Clipboard or 2127 UpstreamAudio respectively. To reenable a feature, use 2128 "Client/DisableClipboard=" for example. See 2129 <xref linkend="vrde-customization" />. 2130 </para> 2131 </listitem> 2132 2133 <listitem> 2134 <para> 2135 <computeroutput>--vrdeproperty 2136 "Client/DisableRDPDR=1"</computeroutput> 2137 </para> 2138 2139 <para> 2140 Disables the VRDE server feature: RDP device redirection for 2141 smart cards. To reenable this feature, use 2142 "Client/DisableRDPR=". 2143 </para> 2144 </listitem> 2145 2146 <listitem> 2147 <para> 2148 <computeroutput>--vrdeproperty 2149 "H3DRedirect/Enabled=1"</computeroutput> 2150 </para> 2151 2152 <para> 2153 Enables the VRDE server feature: 3D redirection. To disable 2154 this feature, use "H3DRedirect/Enabled=". 2155 </para> 2156 </listitem> 2157 2158 <listitem> 2159 <para> 2160 <computeroutput>--vrdeproperty 2161 "Security/Method|ServerCertificate|ServerPrivateKey|CACertificate=<value>"</computeroutput> 2162 sets the desired security method/Path of server certificate, 2163 path of server private key, path of CA certificate, used for 2164 a connection. 2165 </para> 2166 2167 <itemizedlist> 2168 2169 <listitem> 2170 <para> 2171 <computeroutput>--vrdeproperty 2172 "Security/Method=<value>"</computeroutput> sets 2173 the desired security method, which is used for a 2174 connection. Valid values are: 2175 </para> 2176 2177 <itemizedlist> 2178 2179 <listitem> 2180 <para> 2181 <computeroutput>Negotiate</computeroutput> - both 2182 Enhanced (TLS) and Standard RDP Security connections 2183 are allowed. The security method is negotiated with 2184 the client. This is the default setting. 2185 </para> 2186 </listitem> 2187 2188 <listitem> 2189 <para> 2190 <computeroutput>RDP</computeroutput> - only Standard 2191 RDP Security is accepted. 2192 </para> 2193 </listitem> 2194 2195 <listitem> 2196 <para> 2197 <computeroutput>TLS</computeroutput> - only Enhanced 2198 RDP Security is accepted. The client must support 2199 TLS. 2200 </para> 2201 </listitem> 2202 2203 </itemizedlist> 2204 2205 <para> 2206 See <xref linkend="vrde-crypt" />. 2207 </para> 2208 </listitem> 2209 2210 <listitem> 2211 <para> 2212 <computeroutput>--vrdeproperty 2213 "Security/ServerCertificate=<value>"</computeroutput> 2214 where <value> is the absolute path of the server 2215 certificate. Ssee <xref linkend="vrde-crypt" />. 2216 </para> 2217 </listitem> 2218 2219 <listitem> 2220 <para> 2221 <computeroutput>--vrdeproperty 2222 "Security/ServerPrivateKey=<value>"</computeroutput> 2223 where <value> is the absolute path of the server 2224 private key. See <xref linkend="vrde-crypt" />. 2225 </para> 2226 </listitem> 2227 2228 <listitem> 2229 <para> 2230 <computeroutput>--vrdeproperty 2231 "Security/CACertificate=<value>"</computeroutput> 2232 where <value> is the absolute path of the CA self 2233 signed certificate. See <xref linkend="vrde-crypt" />. 2234 </para> 2235 </listitem> 2236 2237 </itemizedlist> 2238 </listitem> 2239 2240 <listitem> 2241 <para> 2242 <computeroutput>--vrdeproperty 2243 "Audio/RateCorrectionMode|LogPath=<value>"</computeroutput> 2244 sets the Audio connection mode, or Path of the audio 2245 logfile. 2246 </para> 2247 2248 <itemizedlist> 2249 2250 <listitem> 2251 <para> 2252 <computeroutput>--vrdeproperty 2253 "Audio/RateCorrectionMode=<value>"</computeroutput> 2254 where <value> is the desired rate correction mode, 2255 allowed values are: 2256 </para> 2257 2258 <itemizedlist> 2259 2260 <listitem> 2261 <para> 2262 <computeroutput>VRDP_AUDIO_MODE_VOID</computeroutput> 2263 - no mode specified, use to unset any Audio mode 2264 already set. 2265 </para> 2266 </listitem> 2267 2268 <listitem> 2269 <para> 2270 <computeroutput>VRDP_AUDIO_MODE_RC</computeroutput> 2271 - rate correction mode. 2272 </para> 2273 </listitem> 2274 2275 <listitem> 2276 <para> 2277 <computeroutput>VRDP_AUDIO_MODE_LPF</computeroutput> 2278 - low pass filter mode. 2279 </para> 2280 </listitem> 2281 2282 <listitem> 2283 <para> 2284 <computeroutput>VRDP_AUDIO_MODE_CS</computeroutput> 2285 - client sync mode to prevent under/overflow of the 2286 client queue. 2287 </para> 2288 </listitem> 2289 2290 </itemizedlist> 2291 </listitem> 2292 2293 <listitem> 2294 <para> 2295 <computeroutput>--vrdeproperty 2296 "Audio/LogPath=<value>"</computeroutput> where 2297 <value> is the absolute path of the Audio log 2298 file. 2299 </para> 2300 </listitem> 2301 2302 </itemizedlist> 2303 </listitem> 2304 2305 <listitem> 2306 <para> 2307 <computeroutput>--vrdeextpack 2308 default|<name></computeroutput>: Enables specification 2309 of the library for accessing the VM remotely. The default is 2310 to use the RDP code which is part of the Oracle VM 2311 VirtualBox Extension Pack. 2312 </para> 2313 </listitem> 2314 2315 <listitem> 2316 <para> 2317 <computeroutput>--vrdeport 2318 default|<ports></computeroutput>: A port or a range of 2319 ports the VRDE server can bind to; "default" or "0" means 2320 port 3389, the standard port for RDP. You can specify a 2321 comma-separated list of ports or ranges of ports. Use a dash 2322 between two port numbers to specify a range. The VRDE server 2323 will bind to 2324 <emphasis 2325 role="bold">one</emphasis> of the 2326 available ports from the specified list. Only one machine 2327 can use a given port at a time. For example, the option 2328 <computeroutput> --vrdeport 5000,5010-5012</computeroutput> 2329 will tell the server to bind to one of following ports: 2330 5000, 5010, 5011 or 5012. 2331 </para> 2332 </listitem> 2333 2334 <listitem> 2335 <para> 2336 <computeroutput>--vrdeaddress <IP 2337 address></computeroutput>: The IP address of the host 2338 network interface the VRDE server will bind to. If 2339 specified, the server will accept connections only on the 2340 specified host network interface. 2341 </para> 2342 2343 <para> 2344 The setting can be used to specify whether the VRDP server 1632 2345 should accept either IPv4, IPv6 or both connections: 1633 <itemizedlist> 1634 <listitem> 1635 <para>only IPv4: <computeroutput>--vrdeaddress "0.0.0.0" 1636 </computeroutput></para> 1637 </listitem> 1638 <listitem> 1639 <para>only IPv6: <computeroutput>--vrdeaddress "::" 1640 </computeroutput></para> 1641 </listitem> 1642 <listitem> 1643 <para>both IPv6 and IPv4 (default): <computeroutput>--vrdeaddress "" 1644 </computeroutput></para> 1645 </listitem> 1646 </itemizedlist></para> 1647 </listitem> 1648 1649 <listitem> 1650 <para><computeroutput>--vrdeauthtype 1651 null|external|guest</computeroutput>: This enables you to indicate 1652 use of authorization, and specify how authorization will be performed; 1653 see <xref linkend="vbox-auth" /> for details.</para> 1654 </listitem> 1655 1656 <listitem> 1657 <para><computeroutput>--vrdeauthlibrary 2346 </para> 2347 2348 <itemizedlist> 2349 2350 <listitem> 2351 <para> 2352 Only IPv4: <computeroutput>--vrdeaddress "0.0.0.0" 2353 </computeroutput> 2354 </para> 2355 </listitem> 2356 2357 <listitem> 2358 <para> 2359 Only IPv6: <computeroutput>--vrdeaddress "::" 2360 </computeroutput> 2361 </para> 2362 </listitem> 2363 2364 <listitem> 2365 <para> 2366 Both IPv6 and IPv4 (default): 2367 <computeroutput>--vrdeaddress "" </computeroutput> 2368 </para> 2369 </listitem> 2370 2371 </itemizedlist> 2372 </listitem> 2373 2374 <listitem> 2375 <para> 2376 <computeroutput>--vrdeauthtype 2377 null|external|guest</computeroutput>: This enables you to 2378 indicate use of authorization, and specify how authorization 2379 will be performed. See <xref linkend="vbox-auth" />. 2380 </para> 2381 </listitem> 2382 2383 <listitem> 2384 <para> 2385 <computeroutput>--vrdeauthlibrary 1658 2386 default|<name></computeroutput>: This specifies the 1659 library used for RDP authentication, see <xref lang="" 1660 linkend="vbox-auth" /> for details.</para> 1661 </listitem> 1662 1663 <listitem> 1664 <para><computeroutput>--vrdemulticon on|off</computeroutput>: This 1665 enables multiple connections to be made to the same VRDE server, if the 1666 server supports this feature; see <xref lang="" 1667 linkend="vrde-multiconnection" />.</para> 1668 </listitem> 1669 1670 <listitem> 1671 <para><computeroutput>--vrdereusecon on|off</computeroutput>: This 1672 specifies the VRDE server behavior when multiple connections are 1673 disabled. When this option is enabled, the server will allow a new 1674 client to connect and will drop the existing connection. When this 1675 option is disabled (this is the default setting), a new connection 1676 will not be accepted if there is already a client connected to the 1677 server.</para> 1678 </listitem> 1679 1680 <listitem> 1681 <para><computeroutput>--vrdevideochannel on|off</computeroutput>: 1682 This enables video redirection, if it is supported by the VRDE 1683 server; see <xref lang="" linkend="vrde-videochannel" />.</para> 1684 </listitem> 1685 1686 <listitem> 1687 <para><computeroutput>--vrdevideochannelquality 1688 <percent></computeroutput>: Specifies the image quality for video 1689 redirection; see <xref lang="" 1690 linkend="vrde-videochannel" />.</para> 1691 </listitem> 1692 </itemizedlist></para> 2387 library used for RDP authentication. See 2388 <xref 2389 linkend="vbox-auth" />. 2390 </para> 2391 </listitem> 2392 2393 <listitem> 2394 <para> 2395 <computeroutput>--vrdemulticon on|off</computeroutput>: This 2396 enables multiple connections to be made to the same VRDE 2397 server, if the server supports this feature. See 2398 <xref 2399 linkend="vrde-multiconnection" />. 2400 </para> 2401 </listitem> 2402 2403 <listitem> 2404 <para> 2405 <computeroutput>--vrdereusecon on|off</computeroutput>: This 2406 specifies the VRDE server behavior when multiple connections 2407 are disabled. When this option is enabled, the server will 2408 allow a new client to connect and will drop the existing 2409 connection. When this option is disabled, the default 2410 setting, a new connection will not be accepted if there is 2411 already a client connected to the server. 2412 </para> 2413 </listitem> 2414 2415 <listitem> 2416 <para> 2417 <computeroutput>--vrdevideochannel on|off</computeroutput>: 2418 This enables video redirection, if it is supported by the 2419 VRDE server. See <xref linkend="vrde-videochannel" />. 2420 </para> 2421 </listitem> 2422 2423 <listitem> 2424 <para> 2425 <computeroutput>--vrdevideochannelquality 2426 <percent></computeroutput>: Specifies the image 2427 quality for video redirection. See 2428 <xref 2429 linkend="vrde-videochannel" />. 2430 </para> 2431 </listitem> 2432 2433 </itemizedlist> 2434 1693 2435 </sect2> 1694 2436 1695 2437 <sect2 id="vboxmanage-modifyvm-teleport"> 1696 <title>Teleporting settings</title> 1697 1698 <para>With the following commands for <computeroutput>VBoxManage 1699 modifyvm</computeroutput> you can configure a machine to be a target for 1700 teleporting. See <xref linkend="teleporting" /> for an 1701 introduction.<itemizedlist> 1702 <listitem> 1703 <para><computeroutput>--teleporter on|off</computeroutput>: 1704 This setting enables/disables the teleporter feature whereby when the 1705 machine is started, it waits to receieve a teleporting request from the 1706 network instead of booting normally; teleporting requests are received on the 1707 port and address specified using the following two parameters.</para> 1708 </listitem> 1709 1710 <listitem> 1711 <para><computeroutput>--teleporterport 1712 <port></computeroutput>, <computeroutput>--teleporteraddress 1713 <address></computeroutput>: these settings must be used with 1714 --teleporter and they specify the port and address the virtual machine should 1715 listen to to receive a teleporting request sent from another virtual machine. 1716 <computeroutput><port></computeroutput> can 1717 be any free TCP/IP port number (e.g. 6000); 1718 <computeroutput><address></computeroutput> can be any IP 1719 address or hostname and specifies the TCP/IP socket to bind to. 1720 The default is "0.0.0.0", which means any address.</para> 1721 </listitem> 1722 1723 <listitem> 1724 <para><computeroutput>--teleporterpassword 1725 <password></computeroutput>: if this optional setting is 1726 given, then the teleporting request will only succeed if the 1727 source machine specifies the same password as the one given with 1728 this command.</para> 1729 </listitem> 1730 1731 <listitem> 1732 <para><computeroutput>--teleporterpasswordfile 1733 <password></computeroutput>: if this optional setting is 1734 given, then the teleporting request will only succeed if the 1735 source machine specifies the same password as the one specified 1736 in the file give with this command. Use <computeroutput>stdin</computeroutput> 1737 to read the password from stdin.</para> 1738 </listitem> 1739 1740 <listitem> 1741 <para><computeroutput>--cpuid <leaf> <eax> <ebx> 1742 <ecx> <edx></computeroutput>: Advanced users can use 1743 this setting before a teleporting operation to restrict the 1744 virtual CPU capabilities that VirtualBox presents to the guest 1745 operating system. This must be run on both the source and the 1746 target machines involved in the teleporting and will then modify 1747 what the guest sees when it executes the 1748 <computeroutput>CPUID</computeroutput> machine instruction. This 1749 might help with misbehaving applications that wrongly assume that 1750 certain CPU capabilities are present. The meaning of the 1751 parameters is hardware dependent; please refer to the AMD or Intel 1752 processor manuals.</para> 1753 </listitem> 1754 </itemizedlist></para> 2438 2439 <title>Teleporting Settings</title> 2440 2441 <para> 2442 With the following commands for <computeroutput>VBoxManage 2443 modifyvm</computeroutput> you can configure a machine to be a 2444 target for teleporting. See <xref linkend="teleporting" />. 2445 </para> 2446 2447 <itemizedlist> 2448 2449 <listitem> 2450 <para> 2451 <computeroutput>--teleporter on|off</computeroutput>: This 2452 setting enables/disables the teleporter feature whereby when 2453 the machine is started, it waits to receieve a teleporting 2454 request from the network instead of booting normally. 2455 Teleporting requests are received on the port and address 2456 specified using the following parameters. 2457 </para> 2458 </listitem> 2459 2460 <listitem> 2461 <para> 2462 <computeroutput>--teleporterport 2463 <port></computeroutput>, 2464 <computeroutput>--teleporteraddress 2465 <address></computeroutput>: These settings must be 2466 used with --teleporter and they specify the port and address 2467 the virtual machine should listen to to receive a 2468 teleporting request sent from another virtual machine. 2469 <computeroutput><port></computeroutput> can be any 2470 free TCP/IP port number, such as 6000. 2471 <computeroutput><address></computeroutput> can be any 2472 IP address or hostname and specifies the TCP/IP socket to 2473 bind to. The default is "0.0.0.0", which means any address. 2474 </para> 2475 </listitem> 2476 2477 <listitem> 2478 <para> 2479 <computeroutput>--teleporterpassword 2480 <password></computeroutput>: If this optional setting 2481 is given, then the teleporting request will only succeed if 2482 the source machine specifies the same password as the one 2483 given with this command. 2484 </para> 2485 </listitem> 2486 2487 <listitem> 2488 <para> 2489 <computeroutput>--teleporterpasswordfile 2490 <password></computeroutput>: If this optional setting 2491 is given, then the teleporting request will only succeed if 2492 the source machine specifies the same password as the one 2493 specified in the file give with this command. Use 2494 <computeroutput>stdin</computeroutput> to read the password 2495 from stdin. 2496 </para> 2497 </listitem> 2498 2499 <listitem> 2500 <para> 2501 <computeroutput>--cpuid <leaf> <eax> <ebx> 2502 <ecx> <edx></computeroutput>: Advanced users can 2503 use this setting before a teleporting operation to restrict 2504 the virtual CPU capabilities that VirtualBox presents to the 2505 guest operating system. This must be run on both the source 2506 and the target machines involved in the teleporting and will 2507 then modify what the guest sees when it executes the 2508 <computeroutput>CPUID</computeroutput> machine instruction. 2509 This might help with misbehaving applications that wrongly 2510 assume that certain CPU capabilities are present. The 2511 meaning of the parameters is hardware dependent, refer to 2512 the AMD or Intel processor documentation. 2513 </para> 2514 </listitem> 2515 2516 </itemizedlist> 2517 1755 2518 </sect2> 1756 2519 1757 2520 <sect2 id="vboxmanage-modifyvm-debugging"> 1758 <title>Debugging settings</title> 1759 1760 <para>The following settings are only relevant for low-level VM 1761 debugging. Regular users will never need these settings.<itemizedlist> 1762 <listitem> 1763 <para><computeroutput>--tracing-enabled on|off</computeroutput>: 1764 Enable the tracebuffer. This consumes some memory for the tracebuffer 1765 and adds extra overhead.</para> 1766 </listitem> 1767 <listitem> 1768 <para><computeroutput>--tracing-config <config-string></computeroutput>: 1769 Enables tracing configuration. In particular, this defines which group of 1770 tracepoints are enabled.</para> 1771 </listitem> 1772 <listitem> 1773 <para><computeroutput>--tracing-allow-vm-access on|off</computeroutput>: 1774 Enables/disables(default) VM access to the tracebuffer.</para> 1775 </listitem> 1776 </itemizedlist> 2521 2522 <title>Debugging Settings</title> 2523 2524 <para> 2525 The following settings are only relevant for low-level VM 2526 debugging. Regular users will never need these settings. 1777 2527 </para> 2528 2529 <itemizedlist> 2530 2531 <listitem> 2532 <para> 2533 <computeroutput>--tracing-enabled on|off</computeroutput>: 2534 Enable the tracebuffer. This consumes some memory for the 2535 tracebuffer and adds extra overhead. 2536 </para> 2537 </listitem> 2538 2539 <listitem> 2540 <para> 2541 <computeroutput>--tracing-config 2542 <config-string></computeroutput>: Enables tracing 2543 configuration. In particular, this defines which group of 2544 tracepoints are enabled. 2545 </para> 2546 </listitem> 2547 2548 <listitem> 2549 <para> 2550 <computeroutput>--tracing-allow-vm-access 2551 on|off</computeroutput>: Enables/disables (default) VM 2552 access to the tracebuffer. 2553 </para> 2554 </listitem> 2555 2556 </itemizedlist> 2557 1778 2558 </sect2> 1779 2559 1780 2560 <sect2 id="vboxmanage-usbcardreader"> 1781 <title>USB card reader settings</title> 1782 1783 <para>The following setting defines access to a USB Card Reader by the guest environment. 1784 USB card readers are typically used for accessing data on memory cards such as 1785 CompactFlash (CF), Secure Digital (SD) or MultiMediaCard (MMC).</para> 2561 2562 <title>USB Card Reader Settings</title> 2563 2564 <para> 2565 The following setting defines access to a USB Card Reader by the 2566 guest environment. USB card readers are typically used for 2567 accessing data on memory cards such as CompactFlash (CF), Secure 2568 Digital (SD), or MultiMediaCard (MMC). 2569 </para> 2570 1786 2571 <itemizedlist> 1787 <listitem> 1788 <para><computeroutput>--usbcardreader on|off</computeroutput>: 1789 Enables/disables the USB card reader interface.</para> 1790 </listitem> 2572 2573 <listitem> 2574 <para> 2575 <computeroutput>--usbcardreader on|off</computeroutput>: 2576 Enables/disables the USB card reader interface. 2577 </para> 2578 </listitem> 2579 1791 2580 </itemizedlist> 2581 1792 2582 </sect2> 1793 2583 1794 2584 <sect2 id="vboxmanage-autostart"> 1795 <title>Auto starting VMs during host system boot</title> 1796 1797 <para>These settings configure the VM autostart feature, 1798 which automatically starts the VM at host system boot-up. 1799 Note that there are pre-requisites that need to be addressed before using this feature. 1800 See <xref lang="" linkend="autostart" /> for more details.</para> 2585 2586 <title>Autostarting VMs During Host System Boot</title> 2587 2588 <para> 2589 These settings configure the VM autostart feature, which 2590 automatically starts the VM at host system boot-up. Note that 2591 there are prerequisites that need to be addressed before using 2592 this feature. See <xref linkend="autostart" />. 2593 </para> 2594 1801 2595 <itemizedlist> 1802 <listitem> 1803 <para><computeroutput>--autostart-enabled on|off</computeroutput>: 1804 Enables/disables VM autostart at host system boot-up, using specified user name.</para> 1805 </listitem> 1806 <listitem> 1807 <para><computeroutput>--autostart-delay <seconds></computeroutput>: 1808 Specifies a delay (seconds) following host system boot-up, before VM autostarts.</para> 1809 </listitem> 2596 2597 <listitem> 2598 <para> 2599 <computeroutput>--autostart on|off</computeroutput>: 2600 Enables/disables VM autostart at host system boot-up, using 2601 specified user name. 2602 </para> 2603 </listitem> 2604 2605 <listitem> 2606 <para> 2607 <computeroutput>--autostart-delay 2608 <seconds></computeroutput>: Specifies a delay 2609 (seconds) following host system boot-up, before VM 2610 autostarts. 2611 </para> 2612 </listitem> 2613 1810 2614 </itemizedlist> 2615 1811 2616 </sect2> 2617 1812 2618 </sect1> 1813 2619 1814 2620 <sect1 id="vboxmanage-clonevm"> 2621 1815 2622 <title>VBoxManage clonevm</title> 1816 2623 1817 <para>This command creates a full or linked copy of an existing virtual 1818 machine.</para> 1819 1820 <para>The <computeroutput>clonevm</computeroutput> subcommand takes at 1821 least the name of the virtual machine which should be cloned. The following 1822 additional settings can be used to further configure the clone VM 1823 operation:</para> 2624 <para> 2625 This command creates a full or linked copy of an existing virtual 2626 machine. 2627 </para> 2628 2629 <para> 2630 The <computeroutput>clonevm</computeroutput> subcommand takes at 2631 least the name of the virtual machine which should be cloned. The 2632 following additional settings can be used to further configure the 2633 clone VM operation: 2634 </para> 1824 2635 1825 2636 <itemizedlist> 1826 <listitem> 1827 <para><computeroutput>--snapshot <uuid>|<name></computeroutput>: 1828 Select a specific snapshot where the clone operation should refer 1829 to. Default is referring to the current state.</para> 1830 </listitem> 1831 <listitem> 1832 <para><computeroutput>--mode machine|machineandchildren|all</computeroutput>: 1833 Selects the cloning mode of the operation. If 1834 <computeroutput>machine</computeroutput> is selected (the default), 1835 the current state of the VM without any snapshots is cloned. In the 1836 <computeroutput>machineandchildren</computeroutput> mode the snapshot 1837 provided by <computeroutput>--snapshot</computeroutput> and all 1838 child snapshots are cloned. If <computeroutput>all</computeroutput> 1839 is the selected mode all snapshots and the current state are cloned. 1840 </para> 1841 </listitem> 1842 <listitem> 1843 <para><computeroutput>--options link|keepallmacs|keepnatmacs|keepdisknames</computeroutput>: 1844 Allows additional fine tuning of the clone operation. The first 1845 option defines that a linked clone should be created, which is 1846 only possible for a machine cloned from a snapshot. The next two 1847 options enable specification of the handling of MAC addresses of 1848 every virtual network card. They can either be reinitialized 1849 (the default), left unchanged 1850 (<computeroutput>keepallmacs</computeroutput>) or left unchanged 1851 when the network type is NAT 1852 (<computeroutput>keepnatmacs</computeroutput>). If you add 1853 <computeroutput>keepdisknames</computeroutput> all new disk images 1854 are called like the original ones, otherwise they are 1855 renamed.</para> 1856 </listitem> 1857 <listitem> 1858 <para><computeroutput>--name <name></computeroutput>: Select a 1859 new name for the new virtual machine. Default is "Original Name 1860 Clone".</para> 1861 </listitem> 1862 <listitem> 1863 <para><computeroutput>--groups <group>, ...</computeroutput> 1864 Enables the clone to be assigned membership of the specified 1865 VM groups in the list. Note that group ids always start with a 1866 <computeroutput>/</computeroutput> and can be nested. By default, 1867 clones are always assigned membership of the group 1868 <computeroutput>/</computeroutput>.</para> 1869 </listitem> 1870 <listitem> 1871 <para><computeroutput>--basefolder <basefolder></computeroutput>: 1872 Select the folder where the new virtual machine configuration should 1873 be saved in.</para> 1874 </listitem> 1875 <listitem> 1876 <para><computeroutput>--uuid <uuid></computeroutput>: 1877 Select the UUID the new VM should have. This id has to be unique in 1878 the VirtualBox instance this clone should be registered. Default is 1879 creating a new UUID.</para> 1880 </listitem> 1881 <listitem> 1882 <para><computeroutput>--register</computeroutput>: 1883 Automatically register the new clone in this VirtualBox 1884 installation. If you manually want to register the new VM later, see 1885 <xref linkend="vboxmanage-registervm" /> for instructions how to do 1886 so.</para> 1887 </listitem> 2637 2638 <listitem> 2639 <para> 2640 <computeroutput>--snapshot 2641 <uuid>|<name></computeroutput>: Select a specific 2642 snapshot where the clone operation should refer to. Default is 2643 referring to the current state. 2644 </para> 2645 </listitem> 2646 2647 <listitem> 2648 <para> 2649 <computeroutput>--mode 2650 machine|machineandchildren|all</computeroutput>: Selects the 2651 cloning mode of the operation. If 2652 <computeroutput>machine</computeroutput> is selected (the 2653 default), the current state of the VM without any snapshots is 2654 cloned. In the 2655 <computeroutput>machineandchildren</computeroutput> mode the 2656 snapshot provided by 2657 <computeroutput>--snapshot</computeroutput> and all child 2658 snapshots are cloned. If <computeroutput>all</computeroutput> 2659 is the selected mode all snapshots and the current state are 2660 cloned. 2661 </para> 2662 </listitem> 2663 2664 <listitem> 2665 <para> 2666 <computeroutput>--options 2667 link|keepallmacs|keepnatmacs|keepdisknames</computeroutput>: 2668 Allows additional fine tuning of the clone operation. The 2669 first option defines that a linked clone should be created, 2670 which is only possible for a machine cloned from a snapshot. 2671 The next two options enable specification of the handling of 2672 MAC addresses of every virtual network card. They can either 2673 be reinitialized (the default), left unchanged 2674 (<computeroutput>keepallmacs</computeroutput>) or left 2675 unchanged when the network type is NAT 2676 (<computeroutput>keepnatmacs</computeroutput>). If you add 2677 <computeroutput>keepdisknames</computeroutput> all new disk 2678 images are called like the original ones, otherwise they are 2679 renamed. 2680 </para> 2681 </listitem> 2682 2683 <listitem> 2684 <para> 2685 <computeroutput>--name <name></computeroutput>: Select a 2686 new name for the new virtual machine. Default is "Original 2687 Name Clone". 2688 </para> 2689 </listitem> 2690 2691 <listitem> 2692 <para> 2693 <computeroutput>--groups <group>, ...</computeroutput> 2694 Enables the clone to be assigned membership of the specified 2695 VM groups in the list. Note that group ids always start with a 2696 <computeroutput>/</computeroutput> and can be nested. By 2697 default, clones are always assigned membership of the group 2698 <computeroutput>/</computeroutput>. 2699 </para> 2700 </listitem> 2701 2702 <listitem> 2703 <para> 2704 <computeroutput>--basefolder 2705 <basefolder></computeroutput>: Select the folder where 2706 the new virtual machine configuration should be saved in. 2707 </para> 2708 </listitem> 2709 2710 <listitem> 2711 <para> 2712 <computeroutput>--uuid <uuid></computeroutput>: Select 2713 the UUID the new VM should have. This ID has to be unique in 2714 the VirtualBox instance this clone should be registered. 2715 Default is creating a new UUID. 2716 </para> 2717 </listitem> 2718 2719 <listitem> 2720 <para> 2721 <computeroutput>--register</computeroutput>: Automatically 2722 register the new clone in this VirtualBox installation. If you 2723 manually want to register the new VM later, see 2724 <xref linkend="vboxmanage-registervm" />. 2725 </para> 2726 </listitem> 2727 1888 2728 </itemizedlist> 2729 1889 2730 </sect1> 1890 2731 1891 2732 <sect1 id="vboxmanage-import"> 2733 1892 2734 <title>VBoxManage import</title> 1893 2735 1894 <para>This command imports a virtual appliance in OVF format by copying 1895 the virtual disk images and creating virtual machines in VirtualBox. See 1896 <xref linkend="ovf" /> for an introduction to appliances.</para> 1897 1898 <para>The <computeroutput>import</computeroutput> subcommand takes at 1899 least the path name of an OVF file as input and expects the disk images, 1900 if needed, in the same directory as the OVF file. A lot of additional 1901 command-line options are supported to control in detail what is being 1902 imported and modify the import parameters, but the details depend on the 1903 content of the OVF file.</para> 1904 1905 <para>It is therefore recommended to first run the import subcommand with 1906 the <computeroutput>--dry-run</computeroutput> or 1907 <computeroutput>-n</computeroutput> option. This will then print a 1908 description of the appliance's contents to the screen how it would be 1909 imported into VirtualBox, together with the optional command-line options 1910 to influence the import behavior.</para> 1911 1912 <para>Use of the <computeroutput>--options link|keepallmacs|keepnatmacs|keepdisknames</computeroutput>: 1913 option enables additional fine tuning of the clone operation. The first 1914 option defines that a linked clone should be created, which is 1915 only possible for a machine clone from a snapshot. The next two 1916 options enable specification of how the MAC addresses of every virtual 1917 network card should be handled. They can either be reinitialized 1918 (the default), left unchanged 1919 (<computeroutput>keepallmacs</computeroutput>) or left unchanged 1920 when the network type is NAT 1921 (<computeroutput>keepnatmacs</computeroutput>). If you add 1922 <computeroutput>keepdisknames</computeroutput> all new disk images 1923 are assigned the same names as the originals, otherwise they are 1924 renamed.</para> 1925 1926 <para>As an example, here is the screen output with a sample appliance 1927 containing a Windows XP guest:<screen>VBoxManage import WindowsXp.ovf --dry-run 2736 <para> 2737 This command imports a virtual appliance in OVF format by copying 2738 the virtual disk images and creating virtual machines in 2739 VirtualBox. See <xref linkend="ovf" /> for an introduction to 2740 appliances. 2741 </para> 2742 2743 <para> 2744 The <computeroutput>import</computeroutput> subcommand takes at 2745 least the path name of an OVF file as input and expects the disk 2746 images, if needed, in the same directory as the OVF file. A lot of 2747 additional command-line options are supported to control in detail 2748 what is being imported and modify the import parameters, but the 2749 details depend on the content of the OVF file. 2750 </para> 2751 2752 <para> 2753 It is therefore recommended to first run the import subcommand 2754 with the <computeroutput>--dry-run</computeroutput> or 2755 <computeroutput>-n</computeroutput> option. This will then print a 2756 description of the appliance's contents to the screen how it would 2757 be imported into VirtualBox, together with the optional 2758 command-line options to influence the import behavior. 2759 </para> 2760 2761 <para> 2762 Use of the <computeroutput>--options 2763 link|keepallmacs|keepnatmacs|keepdisknames</computeroutput>: 2764 option enables additional fine tuning of the clone operation. The 2765 first option defines that a linked clone should be created, which 2766 is only possible for a machine clone from a snapshot. The next two 2767 options enable specification of how the MAC addresses of every 2768 virtual network card should be handled. They can either be 2769 reinitialized (the default), left unchanged 2770 (<computeroutput>keepallmacs</computeroutput>) or left unchanged 2771 when the network type is NAT 2772 (<computeroutput>keepnatmacs</computeroutput>). If you add 2773 <computeroutput>keepdisknames</computeroutput> all new disk images 2774 are assigned the same names as the originals, otherwise they are 2775 renamed. 2776 </para> 2777 2778 <para> 2779 As an example, here is the screen output with a sample appliance 2780 containing a Windows XP guest: 2781 </para> 2782 2783 <screen>VBoxManage import WindowsXp.ovf --dry-run 1928 2784 Interpreting WindowsXp.ovf... 1929 2785 OK. … … 1951 2807 target path=/home/user/disks/WindowsXp.vmdk, controller=9;channel=0 1952 2808 (change controller with "--vsys 0 --unit 11 --controller <id>"; 1953 disable with "--vsys 0 --unit 11 --ignore")</screen></para> 1954 1955 <para>As you can see, the individual configuration items are numbered, and 1956 depending on their type support different command-line options. The import 1957 subcommand can be directed to ignore many such items with a 1958 <computeroutput>--vsys X --unit Y --ignore</computeroutput> option, where 1959 X is the number of the virtual system (zero unless there are several 1960 virtual system descriptions in the appliance) and Y the item number, as 1961 printed on the screen.</para> 1962 1963 <para>In the above example, Item #1 specifies the name of the target 1964 machine in VirtualBox. Items #9 and #10 specify hard disk controllers, 1965 respectively. Item #11 describes a hard disk image; in this case, the 1966 additional <computeroutput>--controller</computeroutput> option indicates 1967 which item the disk image should be connected to, with the default coming 1968 from the OVF file.</para> 1969 1970 <para>You can combine several items for the same virtual system behind the 1971 same <computeroutput>--vsys</computeroutput> option. For example, to 1972 import a machine as described in the OVF, but without the sound card and 1973 without the USB controller, and with the disk image connected to the IDE 1974 controller instead of the SCSI controller, use this:<screen>VBoxManage import WindowsXp.ovf 1975 --vsys 0 --unit 5 --ignore --unit 6 --ignore --unit 11 --controller 10</screen></para> 2809 disable with "--vsys 0 --unit 11 --ignore")</screen> 2810 2811 <para> 2812 The individual configuration items are numbered, and depending on 2813 their type support different command-line options. The import 2814 subcommand can be directed to ignore many such items with a 2815 <computeroutput>--vsys X --unit Y --ignore</computeroutput> 2816 option, where X is the number of the virtual system (zero unless 2817 there are several virtual system descriptions in the appliance) 2818 and Y the item number, as printed on the screen. 2819 </para> 2820 2821 <para> 2822 In the above example, Item #1 specifies the name of the target 2823 machine in VirtualBox. Items #9 and #10 specify hard disk 2824 controllers, respectively. Item #11 describes a hard disk image; 2825 in this case, the additional 2826 <computeroutput>--controller</computeroutput> option indicates 2827 which item the disk image should be connected to, with the default 2828 coming from the OVF file. 2829 </para> 2830 2831 <para> 2832 You can combine several items for the same virtual system behind 2833 the same <computeroutput>--vsys</computeroutput> option. For 2834 example, to import a machine as described in the OVF, but without 2835 the sound card and without the USB controller, and with the disk 2836 image connected to the IDE controller instead of the SCSI 2837 controller, use this command: 2838 </para> 2839 2840 <screen>VBoxManage import WindowsXp.ovf 2841 --vsys 0 --unit 5 --ignore --unit 6 --ignore --unit 11 --controller 10</screen> 2842 1976 2843 </sect1> 1977 2844 1978 2845 <sect1 id="vboxmanage-export"> 2846 1979 2847 <title>VBoxManage export</title> 1980 2848 1981 <para>This command exports one or more virtual machines from VirtualBox 1982 into a virtual appliance in OVF format, including copying their virtual 1983 disk images to compressed VMDK. See <xref linkend="ovf" /> for an 1984 introduction to appliances.</para> 1985 1986 <para>The <computeroutput>export</computeroutput> command is simple to 1987 use: list the machine (or the machines) that you would like to export to 1988 the same OVF file and specify the target OVF file after an additional 1989 <computeroutput>--output</computeroutput> or 1990 <computeroutput>-o</computeroutput> option. Note that the directory of the 1991 target OVF file will also receive the exported disk images in the 1992 compressed VMDK format (regardless of the original format) and should have 1993 enough disk space left for them.</para> 1994 1995 <para>Beside a simple export of a given virtual machine, you can append 1996 several product information to the appliance file. Use 1997 <computeroutput>--product</computeroutput>, 1998 <computeroutput>--producturl</computeroutput>, 1999 <computeroutput>--vendor</computeroutput>, 2000 <computeroutput>--vendorurl</computeroutput>, 2001 <computeroutput>--version</computeroutput> and 2002 <computeroutput>--description</computeroutput> to specify this additional 2003 information. For legal reasons you may add a license text or the content 2004 of a license file by using the <computeroutput>--eula</computeroutput> and 2005 <computeroutput>--eulafile</computeroutput> option respectively. As with 2006 OVF import, you must use the <computeroutput>--vsys X</computeroutput> 2007 option to direct the previously mentioned options to the correct virtual 2008 machine.</para> 2009 2010 <para>For virtualization products which aren't fully compatible with the 2011 OVF standard 1.0 you can enable a OVF 0.9 legacy mode with the 2012 <computeroutput>--legacy09</computeroutput> option. Other options are 2013 <computeroutput>--ovf09</computeroutput>, 2014 <computeroutput>--ovf10</computeroutput>, 2015 <computeroutput>--ovf20</computeroutput>.</para> 2016 2017 <para>To specify options controlling the exact content of the appliance 2018 file, you can use <computeroutput>--options</computeroutput> to request the 2019 creation of a manifest file (encouraged, allows detection of corrupted 2020 appliances on import), the additional export of DVD images, and the 2021 exclusion of MAC addresses. You can specify a list of options, e.g. 2022 <computeroutput>--options manifest,nomacs</computeroutput>. For details, 2023 check the help output of <computeroutput>VBoxManage export</computeroutput>.</para> 2849 <para> 2850 This command exports one or more virtual machines from VirtualBox 2851 into a virtual appliance in OVF format, including copying their 2852 virtual disk images to compressed VMDK. See <xref linkend="ovf" /> 2853 for an introduction to appliances. 2854 </para> 2855 2856 <para> 2857 The <computeroutput>export</computeroutput> command is simple to 2858 use: list the machine (or the machines) that you would like to 2859 export to the same OVF file and specify the target OVF file after 2860 an additional <computeroutput>--output</computeroutput> or 2861 <computeroutput>-o</computeroutput> option. Note that the 2862 directory of the target OVF file will also receive the exported 2863 disk images in the compressed VMDK format (regardless of the 2864 original format) and should have enough disk space left for them. 2865 </para> 2866 2867 <para> 2868 Beside a simple export of a given virtual machine, you can append 2869 several product information to the appliance file. Use 2870 <computeroutput>--product</computeroutput>, 2871 <computeroutput>--producturl</computeroutput>, 2872 <computeroutput>--vendor</computeroutput>, 2873 <computeroutput>--vendorurl</computeroutput>, 2874 <computeroutput>--version</computeroutput> and 2875 <computeroutput>--description</computeroutput> to specify this 2876 additional information. For legal reasons you may add a license 2877 text or the content of a license file by using the 2878 <computeroutput>--eula</computeroutput> and 2879 <computeroutput>--eulafile</computeroutput> option respectively. 2880 As with OVF import, you must use the <computeroutput>--vsys 2881 X</computeroutput> option to direct the previously mentioned 2882 options to the correct virtual machine. 2883 </para> 2884 2885 <para> 2886 For virtualization products which are not fully compatible with 2887 the OVF standard 1.0 you can enable an OVF 0.9 legacy mode with 2888 the <computeroutput>--legacy09</computeroutput> option. Other 2889 options are <computeroutput>--ovf09</computeroutput>, 2890 <computeroutput>--ovf10</computeroutput>, 2891 <computeroutput>--ovf20</computeroutput>. 2892 </para> 2893 2894 <para> 2895 To specify options controlling the exact content of the appliance 2896 file, you can use <computeroutput>--options</computeroutput> to 2897 request the creation of a manifest file, which allows detection of 2898 corrupted appliances on import, the additional export of DVD 2899 images, and the exclusion of MAC addresses. You can specify a list 2900 of options, such as <computeroutput>--options 2901 manifest,nomacs</computeroutput>. For details, check the help 2902 output of <computeroutput>VBoxManage export</computeroutput>. 2903 </para> 2904 2024 2905 </sect1> 2025 2906 2026 2907 <sect1 id="vboxmanage-startvm"> 2908 2027 2909 <title>VBoxManage startvm</title> 2028 2910 2029 <para>This command starts a virtual machine that is currently in the 2030 "Powered off" or "Saved" states.</para> 2031 2032 <para>The optional <computeroutput>--type</computeroutput> specifier 2033 determines whether the machine will be started in a window or whether the 2034 output should go through <computeroutput>VBoxHeadless</computeroutput>, 2035 with VRDE enabled or not; see <xref linkend="vboxheadless" /> for more 2036 information. The list of types is subject to change, and it's not 2037 guaranteed that all types are accepted by any product variant.</para> 2038 2039 <para>The global or per-VM default value for the VM frontend type will be 2040 taken if the type is not explicitly specified. If none of these are set, 2041 the GUI variant will be started.</para> 2042 2043 <para>The following values are allowed:</para> 2044 2045 <glosslist> 2046 <glossentry> 2047 <glossterm><computeroutput>gui</computeroutput></glossterm> 2048 2049 <glossdef> 2050 <para>Starts a VM showing a GUI window. This is the default.</para> 2051 </glossdef> 2052 </glossentry> 2053 2054 <glossentry> 2055 <glossterm><computeroutput>headless</computeroutput></glossterm> 2056 2057 <glossdef> 2058 <para>Starts a VM without a window for remote display only.</para> 2059 </glossdef> 2060 </glossentry> 2061 2062 <glossentry> 2063 <glossterm><computeroutput>sdl</computeroutput></glossterm> 2064 2065 <glossdef> 2066 <para>Starts a VM with a minimal GUI and limited features.</para> 2067 </glossdef> 2068 </glossentry> 2069 2070 <glossentry> 2071 <glossterm><computeroutput>separate</computeroutput></glossterm> 2072 2073 <glossdef> 2074 <para>Starts a VM with detachable UI (technically it is a headless VM 2075 with user interface in a separate process). This is an experimental 2076 feature as it lacks certain functionality at the moment (e.g. 3D 2077 acceleration will not work).</para> 2078 </glossdef> 2079 </glossentry> 2080 </glosslist> 2911 <para> 2912 This command starts a virtual machine that is currently in the 2913 "Powered off" or "Saved" states. 2914 </para> 2915 2916 <para> 2917 The optional <computeroutput>--type</computeroutput> specifier 2918 determines whether the machine will be started in a window or 2919 whether the output should go through 2920 <computeroutput>VBoxHeadless</computeroutput>, with VRDE enabled 2921 or not. See <xref linkend="vboxheadless" />. The list of types is 2922 subject to change, and it is not guaranteed that all types are 2923 accepted by any product variant. 2924 </para> 2925 2926 <para> 2927 The global or per-VM default value for the VM frontend type will 2928 be taken if the type is not explicitly specified. If none of these 2929 are set, the GUI variant will be started. 2930 </para> 2931 2932 <para> 2933 The following values are allowed: 2934 </para> 2935 2936 <variablelist> 2937 2938 <varlistentry> 2939 <term> 2940 <computeroutput>gui</computeroutput> 2941 </term> 2942 2943 <listitem> 2944 <para> 2945 Starts a VM showing a GUI window. This is the default. 2946 </para> 2947 </listitem> 2948 </varlistentry> 2949 2950 <varlistentry> 2951 <term> 2952 <computeroutput>headless</computeroutput> 2953 </term> 2954 2955 <listitem> 2956 <para> 2957 Starts a VM without a window for remote display only. 2958 </para> 2959 </listitem> 2960 </varlistentry> 2961 2962 <varlistentry> 2963 <term> 2964 <computeroutput>sdl</computeroutput> 2965 </term> 2966 2967 <listitem> 2968 <para> 2969 Starts a VM with a minimal GUI and limited features. 2970 </para> 2971 </listitem> 2972 </varlistentry> 2973 2974 <varlistentry> 2975 <term> 2976 <computeroutput>separate</computeroutput> 2977 </term> 2978 2979 <listitem> 2980 <para> 2981 Starts a VM with detachable UI. Technically, it is a 2982 headless VM with user interface in a separate process. This 2983 is an experimental feature as it lacks certain 2984 functionality, such as 3D acceleration, at the moment. 2985 </para> 2986 </listitem> 2987 </varlistentry> 2988 2989 </variablelist> 2081 2990 2082 2991 <note> 2083 <para>If you experience problems with starting virtual machines with 2084 particular frontends and there is no conclusive error information, 2085 consider starting virtual machines directly by running the respective 2086 front-end, as this can give additional error information.</para> 2992 <para> 2993 If you experience problems with starting virtual machines with 2994 particular frontends and there is no conclusive error 2995 information, consider starting virtual machines directly by 2996 running the respective front-end, as this can give additional 2997 error information. 2998 </para> 2087 2999 </note> 3000 2088 3001 </sect1> 2089 3002 2090 3003 <sect1 id="vboxmanage-controlvm"> 3004 2091 3005 <title>VBoxManage controlvm</title> 2092 3006 2093 <para>The <computeroutput>controlvm</computeroutput> subcommand allows you 2094 to change the state of a virtual machine that is currently running. The 2095 following can be specified:</para> 2096 2097 <para><itemizedlist> 2098 <listitem> 2099 <para><computeroutput>VBoxManage controlvm <vm> 2100 pause</computeroutput> temporarily puts a virtual machine on hold, 2101 without changing its state for good. The VM window will be painted 2102 in gray to indicate that the VM is currently paused. (This is 2103 equivalent to selecting the "Pause" item in the "Machine" menu of 2104 the GUI).</para> 2105 </listitem> 2106 2107 <listitem> 2108 <para>Use <computeroutput>VBoxManage controlvm <vm> 3007 <para> 3008 The <computeroutput>controlvm</computeroutput> subcommand allows 3009 you to change the state of a virtual machine that is currently 3010 running. The following can be specified: 3011 </para> 3012 3013 <itemizedlist> 3014 3015 <listitem> 3016 <para> 3017 <computeroutput>VBoxManage controlvm <vm> 3018 pause</computeroutput> temporarily puts a virtual machine on 3019 hold, without changing its state for good. The VM window will 3020 be painted in gray to indicate that the VM is currently 3021 paused. This is equivalent to selecting the "Pause" item in 3022 the "Machine" menu of the GUI. 3023 </para> 3024 </listitem> 3025 3026 <listitem> 3027 <para> 3028 Use <computeroutput>VBoxManage controlvm <vm> 2109 3029 resume</computeroutput> to undo a previous 2110 <computeroutput>pause</computeroutput> command. (This is equivalent 2111 to selecting the "Resume" item in the "Machine" menu of the 2112 GUI.)</para> 2113 </listitem> 2114 2115 <listitem> 2116 <para><computeroutput>VBoxManage controlvm <vm> 2117 reset</computeroutput> has the same effect on a virtual machine as 2118 pressing the "Reset" button on a real computer: a cold reboot of the 2119 virtual machine, which will restart and boot the guest operating 2120 system again immediately. The state of the VM is not saved 2121 beforehand, and data may be lost. (This is equivalent to selecting 2122 the "Reset" item in the "Machine" menu of the GUI).</para> 2123 </listitem> 2124 2125 <listitem> 2126 <para><computeroutput>VBoxManage controlvm <vm> 2127 poweroff</computeroutput> has the same effect on a virtual machine 2128 as pulling the power cable on a real computer. Again, the state of 2129 the VM is not saved beforehand, and data may be lost. (This is 2130 equivalent to selecting the "Close" item in the "Machine" menu of 2131 the GUI or pressing the window's close button, and then selecting 2132 "Power off the machine" in the dialog).</para> 2133 2134 <para>After this, the VM's state will be "Powered off". From there, 2135 it can be started again; see <xref 2136 linkend="vboxmanage-startvm" />.</para> 2137 </listitem> 2138 2139 <listitem> 2140 <para><computeroutput>VBoxManage controlvm <vm> 2141 savestate</computeroutput> will save the current state of the VM to 2142 disk and then stop the VM. (This is equivalent to selecting the 2143 "Close" item in the "Machine" menu of the GUI or pressing the 2144 window's close button, and then selecting "Save the machine state" 2145 in the dialog.)</para> 2146 2147 <para>After this, the VM's state will be "Saved". From there, it can 2148 be started again; see <xref linkend="vboxmanage-startvm" />.</para> 2149 </listitem> 2150 2151 <listitem> 2152 <para><computeroutput>VBoxManage controlvm <vm> 2153 acpipowerbutton</computeroutput> will send an ACPI shutdown signal to 2154 the VM, as if the power button on a real computer had been pressed. 2155 So long as the VM is running a fairly modern guest operating system 2156 providing ACPI support, this should trigger a proper shutdown mechanism 2157 from within the VM.</para> 2158 </listitem> 2159 2160 <listitem> 2161 <para><computeroutput>VBoxManage controlvm <vm> 2162 keyboardputscancode <hex> [<hex>...]</computeroutput> 2163 Sends commands using keycodes to the VM. Keycodes are documented in the 2164 public domain, e.g. http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html.</para> 2165 </listitem> 2166 2167 <listitem> 2168 <para><computeroutput>VBoxManage controlvm "VM name" teleport 3030 <computeroutput>pause</computeroutput> command. This is 3031 equivalent to selecting the "Resume" item in the "Machine" 3032 menu of the GUI. 3033 </para> 3034 </listitem> 3035 3036 <listitem> 3037 <para> 3038 <computeroutput>VBoxManage controlvm <vm> 3039 reset</computeroutput> has the same effect on a virtual 3040 machine as pressing the "Reset" button on a real computer: a 3041 cold reboot of the virtual machine, which will restart and 3042 boot the guest operating system again immediately. The state 3043 of the VM is not saved beforehand, and data may be lost. This 3044 is equivalent to selecting the "Reset" item in the "Machine" 3045 menu of the GUI. 3046 </para> 3047 </listitem> 3048 3049 <listitem> 3050 <para> 3051 <computeroutput>VBoxManage controlvm <vm> 3052 poweroff</computeroutput> has the same effect on a virtual 3053 machine as pulling the power cable on a real computer. Again, 3054 the state of the VM is not saved beforehand, and data may be 3055 lost. This is equivalent to selecting the "Close" item in the 3056 "Machine" menu of the GUI or pressing the window's close 3057 button, and then selecting "Power off the machine" in the 3058 dialog. 3059 </para> 3060 3061 <para> 3062 After this, the VM's state will be "Powered off". From there, 3063 it can be started again. See 3064 <xref 3065 linkend="vboxmanage-startvm" />. 3066 </para> 3067 </listitem> 3068 3069 <listitem> 3070 <para> 3071 <computeroutput>VBoxManage controlvm <vm> 3072 savestate</computeroutput> will save the current state of the 3073 VM to disk and then stop the VM. This is equivalent to 3074 selecting the "Close" item in the "Machine" menu of the GUI or 3075 pressing the window's close button, and then selecting "Save 3076 the machine state" in the dialog. 3077 </para> 3078 3079 <para> 3080 After this, the VM's state will be "Saved". From there, it can 3081 be started again. See <xref linkend="vboxmanage-startvm" />. 3082 </para> 3083 </listitem> 3084 3085 <listitem> 3086 <para> 3087 <computeroutput>VBoxManage controlvm <vm> 3088 acpipowerbutton</computeroutput> will send an ACPI shutdown 3089 signal to the VM, as if the power button on a real computer 3090 had been pressed. So long as the VM is running a fairly modern 3091 guest operating system providing ACPI support, this should 3092 trigger a proper shutdown mechanism from within the VM. 3093 </para> 3094 </listitem> 3095 3096 <listitem> 3097 <para> 3098 <computeroutput>VBoxManage controlvm <vm> 3099 keyboardputscancode <hex> 3100 [<hex>...]</computeroutput> Sends commands using 3101 keycodes to the VM. Keycodes are documented in the public 3102 domain, e.g. 3103 http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html. 3104 </para> 3105 </listitem> 3106 3107 <listitem> 3108 <para> 3109 <computeroutput>VBoxManage controlvm "VM name" teleport 2169 3110 --hostname <name> --port <port> [--passwordfile 2170 <file> | --password <password>]</computeroutput> makes 2171 the machine the source of a teleporting operation and initiates a 2172 teleport to the given target. See <xref linkend="teleporting" /> for 2173 an introduction. If the optional password is specified, it must match 2174 the password that was given to the 2175 <computeroutput>modifyvm</computeroutput> command for the target 2176 machine; see <xref linkend="vboxmanage-modifyvm-teleport" /> for 2177 details.</para> 2178 </listitem> 2179 </itemizedlist></para> 2180 2181 <para>A few extra options are available with 2182 <computeroutput>controlvm</computeroutput> that do not directly affect the 2183 VM's running state:</para> 3111 <file> | --password <password>]</computeroutput> 3112 makes the machine the source of a teleporting operation and 3113 initiates a teleport to the given target. See 3114 <xref linkend="teleporting" /> for an introduction. If the 3115 optional password is specified, it must match the password 3116 that was given to the 3117 <computeroutput>modifyvm</computeroutput> command for the 3118 target machine. See 3119 <xref linkend="vboxmanage-modifyvm-teleport" />. 3120 </para> 3121 </listitem> 3122 3123 </itemizedlist> 3124 3125 <para> 3126 A few extra options are available with 3127 <computeroutput>controlvm</computeroutput> that do not directly 3128 affect the VM's running state: 3129 </para> 2184 3130 2185 3131 <itemizedlist> 2186 <listitem> 2187 <para>The <computeroutput>setlinkstate<1-N></computeroutput> 2188 operation connects or disconnects virtual network cables from their 2189 network interfaces.</para> 2190 </listitem> 2191 2192 <listitem> 2193 <para><computeroutput>nic<1-N> 2194 null|nat|bridged|intnet|hostonly|generic|natnetwork[<devicename>]</computeroutput>: 2195 specifies the type of networking that should be made available on the specified VM 2196 virtual network card. 2197 They can be: not connected to the host 2198 (<computeroutput>null</computeroutput>), use network address 2199 translation (<computeroutput>nat</computeroutput>), bridged networking 2200 (<computeroutput>bridged</computeroutput>) or communicate with other 2201 virtual machines using internal networking 2202 (<computeroutput>intnet</computeroutput>) or host-only networking 2203 (<computeroutput>hostonly</computeroutput>) or natnetwork networking 2204 (<computeroutput>natnetwork</computeroutput>) or access to rarely used 2205 sub-modes 2206 (<computeroutput>generic</computeroutput>). 2207 These options correspond to the modes which are described in detail in <xref 2208 linkend="networkingmodes" />.</para> 2209 </listitem> 2210 2211 <listitem> 2212 <para>With the "nictrace" options, you can optionally trace network traffic by dumping 2213 it to a file, for debugging purposes.</para> 2214 2215 <para>With <computeroutput>nictrace<1-N> 2216 on|off</computeroutput>, you can enable network tracing for a particular virtual 2217 network card.</para> 2218 2219 <para>If enabled, you must specify with 2220 <computeroutput>--nictracefile<1-N> 2221 <filename></computeroutput> the pathname of the file to which the trace should be 2222 logged.</para> 2223 </listitem> 2224 2225 <listitem> 2226 <para><computeroutput>nicpromisc<1-N> 2227 deny|allow-vms|allow-all</computeroutput>: 2228 This specifies how the promiscious mode is handled for the specified VM 2229 virtual network card. This setting is only relevant for bridged networking. 2230 <computeroutput>deny</computeroutput> (default setting) hides 2231 any traffic not intended for this VM. 2232 <computeroutput>allow-vms</computeroutput> hides all host 2233 traffic from this VM but allows the VM to see traffic from/to other 2234 VMs. 2235 <computeroutput>allow-all</computeroutput> removes this 2236 restriction completely.</para> 2237 </listitem> 2238 2239 <listitem> 2240 <para><computeroutput>nicproperty<1-N> 2241 <paramname>="paramvalue"</computeroutput>: 2242 This option, in combination with "nicgenericdrv" enables you to 2243 pass parameters to rarely-used network backends.</para><para> 2244 Those parameters are backend engine-specific, and are different 2245 between UDP Tunnel and the VDE backend drivers. For example, 2246 please see <xref linkend="network_udp_tunnel" />. 2247 </para> 2248 </listitem> 2249 2250 <listitem> 2251 <para><computeroutput>natpf<1-N> 2252 [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], 2253 <guestport></computeroutput>: This option specifies a NAT 2254 port-forwarding rule (please see <xref linkend="natforward"/> 2255 for details). 2256 </para> 2257 </listitem> 2258 2259 <listitem> 2260 <para><computeroutput>natpf<1-N> delete 2261 <name></computeroutput>: This option deletes a NAT 2262 port-forwarding rule (please see <xref linkend="natforward"/> 2263 for details).</para> 2264 </listitem> 2265 2266 <listitem> 2267 <para>The <computeroutput>guestmemoryballoon<balloon size in MB></computeroutput> 2268 operation changes the size of the guest memory balloon, that is, 2269 memory allocated by the VirtualBox Guest Additions from the guest 2270 operating system and returned to the hypervisor for re-use by other 2271 virtual machines. This must be specified in megabytes. For details, 2272 see <xref linkend="guestadd-balloon" />.</para> 2273 </listitem> 2274 2275 <listitem> 2276 <para><computeroutput>usbattach<uuid|address> [--capturefile <filename>]</computeroutput></para> 2277 <para>and <computeroutput>usbdetach <uuid|address> [--capturefile <filename>]</computeroutput> 2278 make host USB devices visible/invisible to the virtual machine on the fly, without the need for 2279 creating filters first. The USB devices can be specified by UUID 2280 (unique identifier) or by address on the host system. Use the --capturefile 2281 option to specify the absolute path of a file for writing activity logging data.</para> 2282 2283 <para>You can use <computeroutput>VBoxManage list 2284 usbhost</computeroutput> to locate this information.</para> 2285 </listitem> 2286 2287 <listitem> 2288 <para><computeroutput>audioin on</computeroutput>: With 2289 this setting, you can select whether capturing audio from the 2290 host is enabled or disabled.</para> 2291 </listitem> 2292 2293 <listitem> 2294 <para><computeroutput>audioout on</computeroutput>: With 2295 this setting, you can select whether audio playback from the guest 2296 is enabled or disabled.</para> 2297 </listitem> 2298 2299 <listitem> 2300 <para><computeroutput>clipboard 2301 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 2302 With this setting, you can select if and how the guest or host 2303 operating system's clipboard should be shared with the host or guest; 2304 see <xref linkend="generalsettings" />. This requires that the Guest 2305 Additions be installed in the virtual machine.</para> 2306 </listitem> 2307 2308 <listitem> 2309 <para><computeroutput>draganddrop 2310 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 2311 With this setting, you can select the current drag and drop mode 2312 being used between the host and the virtual machine; 2313 see <xref linkend="guestadd-dnd" />. This requires that the Guest 2314 Additions be installed in the virtual machine.</para> 2315 </listitem> 2316 2317 <listitem> 2318 <para><computeroutput>vrde on|off</computeroutput> lets you enable or 2319 disable the VRDE server, if it is installed.</para> 2320 </listitem> 2321 2322 <listitem> 2323 <para><computeroutput>vrdeport default|<ports></computeroutput> 2324 changes the port or a range of ports that the VRDE server can bind to; 2325 "default" or "0" means port 3389, the standard port for RDP. For 2326 details, see the description for the 2327 <computeroutput>--vrdeport</computeroutput> option in <xref 2328 linkend="vboxmanage-modifyvm-vrde" />.</para> 2329 </listitem> 2330 2331 <listitem> 2332 <para><computeroutput>vrdeproperty "TCP/Ports|Address=<value>"</computeroutput> 2333 sets the port number(s) and IP address on the VM to which the VRDE server can bind.</para> 3132 3133 <listitem> 3134 <para> 3135 The <computeroutput>setlinkstate<1-N></computeroutput> 3136 operation connects or disconnects virtual network cables from 3137 their network interfaces. 3138 </para> 3139 </listitem> 3140 3141 <listitem> 3142 <para> 3143 <computeroutput>nic<1-N> 3144 null|nat|bridged|intnet|hostonly|generic|natnetwork[<devicename>]</computeroutput>: 3145 specifies the type of networking that should be made available 3146 on the specified VM virtual network card. They can be: not 3147 connected to the host (<computeroutput>null</computeroutput>), 3148 use network address translation 3149 (<computeroutput>nat</computeroutput>), bridged networking 3150 (<computeroutput>bridged</computeroutput>) or communicate with 3151 other virtual machines using internal networking 3152 (<computeroutput>intnet</computeroutput>) or host-only 3153 networking (<computeroutput>hostonly</computeroutput>) or 3154 natnetwork networking 3155 (<computeroutput>natnetwork</computeroutput>) or access to 3156 rarely used sub-modes 3157 (<computeroutput>generic</computeroutput>). These options 3158 correspond to the modes which are described in detail in 3159 <xref 3160 linkend="networkingmodes" />. 3161 </para> 3162 </listitem> 3163 3164 <listitem> 3165 <para> 3166 With the "nictrace" options, you can optionally trace network 3167 traffic by dumping it to a file, for debugging purposes. 3168 </para> 3169 3170 <para> 3171 With <computeroutput>nictrace<1-N> 3172 on|off</computeroutput>, you can enable network tracing for a 3173 particular virtual network card. 3174 </para> 3175 3176 <para> 3177 If enabled, you must specify with 3178 <computeroutput>--nictracefile<1-N> 3179 <filename></computeroutput> the pathname of the file to 3180 which the trace should be logged. 3181 </para> 3182 </listitem> 3183 3184 <listitem> 3185 <para> 3186 <computeroutput>nicpromisc<1-N> 3187 deny|allow-vms|allow-all</computeroutput>: This specifies how 3188 the promiscious mode is handled for the specified VM virtual 3189 network card. This setting is only relevant for bridged 3190 networking. <computeroutput>deny</computeroutput> (default 3191 setting) hides any traffic not intended for this VM. 3192 <computeroutput>allow-vms</computeroutput> hides all host 3193 traffic from this VM but allows the VM to see traffic from/to 3194 other VMs. <computeroutput>allow-all</computeroutput> removes 3195 this restriction completely. 3196 </para> 3197 </listitem> 3198 3199 <listitem> 3200 <para> 3201 <computeroutput>nicproperty<1-N> 3202 <paramname>="paramvalue"</computeroutput>: This option, 3203 in combination with "nicgenericdrv" enables you to pass 3204 parameters to rarely-used network backends. 3205 </para> 3206 3207 <para> 3208 Those parameters are backend engine-specific, and are 3209 different between UDP Tunnel and the VDE backend drivers. For 3210 example, please see <xref linkend="network_udp_tunnel" />. 3211 </para> 3212 </listitem> 3213 3214 <listitem> 3215 <para> 3216 <computeroutput>natpf<1-N> 3217 [<name>],tcp|udp,[<hostip>],<hostport>,[<guestip>], 3218 <guestport></computeroutput>: This option specifies a 3219 NAT port-forwarding rule. See <xref linkend="natforward"/>. 3220 </para> 3221 </listitem> 3222 3223 <listitem> 3224 <para> 3225 <computeroutput>natpf<1-N> delete 3226 <name></computeroutput>: This option deletes a NAT 3227 port-forwarding rule. See <xref linkend="natforward"/>. 3228 </para> 3229 </listitem> 3230 3231 <listitem> 3232 <para> 3233 The <computeroutput>guestmemoryballoon<balloon size in 3234 MB></computeroutput> operation changes the size of the 3235 guest memory balloon, that is, memory allocated by the 3236 VirtualBox Guest Additions from the guest operating system and 3237 returned to the hypervisor for re-use by other virtual 3238 machines. This must be specified in megabytes. See 3239 <xref linkend="guestadd-balloon" />. 3240 </para> 3241 </listitem> 3242 3243 <listitem> 3244 <para> 3245 <computeroutput>usbattach<uuid|address> [--capturefile 3246 <filename>]</computeroutput> 3247 </para> 3248 3249 <para> 3250 and <computeroutput>usbdetach <uuid|address> 3251 [--capturefile <filename>]</computeroutput> make host 3252 USB devices visible/invisible to the virtual machine on the 3253 fly, without the need for creating filters first. The USB 3254 devices can be specified by UUID (unique identifier) or by 3255 address on the host system. Use the --capturefile option to 3256 specify the absolute path of a file for writing activity 3257 logging data. 3258 </para> 3259 3260 <para> 3261 You can use <computeroutput>VBoxManage list 3262 usbhost</computeroutput> to locate this information. 3263 </para> 3264 </listitem> 3265 3266 <listitem> 3267 <para> 3268 <computeroutput>audioin on</computeroutput>: With this 3269 setting, you can select whether capturing audio from the host 3270 is enabled or disabled. 3271 </para> 3272 </listitem> 3273 3274 <listitem> 3275 <para> 3276 <computeroutput>audioout on</computeroutput>: With this 3277 setting, you can select whether audio playback from the guest 3278 is enabled or disabled. 3279 </para> 3280 </listitem> 3281 3282 <listitem> 3283 <para> 3284 <computeroutput>clipboard 3285 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 3286 With this setting, you can select if and how the guest or host 3287 operating system's clipboard should be shared with the host or 3288 guest. See <xref linkend="generalsettings" />. This requires 3289 that the Guest Additions be installed in the virtual machine. 3290 </para> 3291 </listitem> 3292 3293 <listitem> 3294 <para> 3295 <computeroutput>draganddrop 3296 disabled|hosttoguest|guesttohost|bidirectional</computeroutput>: 3297 With this setting, you can select the current drag and drop 3298 mode being used between the host and the virtual machine. See 3299 <xref linkend="guestadd-dnd" />. This requires that the Guest 3300 Additions be installed in the virtual machine. 3301 </para> 3302 </listitem> 3303 3304 <listitem> 3305 <para> 3306 <computeroutput>vrde on|off</computeroutput> lets you enable 3307 or disable the VRDE server, if it is installed. 3308 </para> 3309 </listitem> 3310 3311 <listitem> 3312 <para> 3313 <computeroutput>vrdeport 3314 default|<ports></computeroutput> changes the port or a 3315 range of ports that the VRDE server can bind to; "default" or 3316 "0" means port 3389, the standard port for RDP. See the 3317 description for the 3318 <computeroutput>--vrdeport</computeroutput> option in 3319 <xref 3320 linkend="vboxmanage-modifyvm-vrde" />. 3321 </para> 3322 </listitem> 3323 3324 <listitem> 3325 <para> 3326 <computeroutput>vrdeproperty 3327 "TCP/Ports|Address=<value>"</computeroutput> sets the 3328 port number(s) and IP address on the VM to which the VRDE 3329 server can bind. 3330 </para> 2334 3331 2335 3332 <itemizedlist> 3333 2336 3334 <listitem> 2337 <para>For TCP/Ports, <value> should be a port or a range of ports to which 2338 the VRDE server can bind; "default" or "0" means port 3389, the standard port for RDP. 2339 For details, see the description for the 2340 <computeroutput>--vrdeport</computeroutput> option in <xref 2341 linkend="vboxmanage-modifyvm-vrde" />.</para> 3335 <para> 3336 For TCP/Ports, <value> should be a port or a range 3337 of ports to which the VRDE server can bind; "default" or 3338 "0" means port 3389, the standard port for RDP. See the 3339 description for the 3340 <computeroutput>--vrdeport</computeroutput> option in 3341 <xref 3342 linkend="vboxmanage-modifyvm-vrde" />. 3343 </para> 2342 3344 </listitem> 2343 3345 2344 3346 <listitem> 2345 <para>For TCP/Address, <value> should be the IP address of the host network 2346 interface that the VRDE server will bind to. If specified, the server 2347 will accept connections only on the specified host network interface. 2348 For details, see the description for the 2349 <computeroutput>--vrdeaddress</computeroutput> option in <xref 2350 linkend="vboxmanage-modifyvm-vrde" />.</para> 3347 <para> 3348 For TCP/Address, <value> should be the IP address of 3349 the host network interface that the VRDE server will bind 3350 to. If specified, the server will accept connections only 3351 on the specified host network interface. See the 3352 description for the 3353 <computeroutput>--vrdeaddress</computeroutput> option in 3354 <xref 3355 linkend="vboxmanage-modifyvm-vrde" />. 3356 </para> 2351 3357 </listitem> 3358 2352 3359 </itemizedlist> 2353 3360 </listitem> 2354 3361 2355 3362 <listitem> 2356 <para><computeroutput>vrdeproperty "VideoChannel/Enabled|Quality|DownscaleProtection=<value>"</computeroutput> 2357 sets the VRDP video redirection properties.</para> 3363 <para> 3364 <computeroutput>vrdeproperty 3365 "VideoChannel/Enabled|Quality|DownscaleProtection=<value>"</computeroutput> 3366 sets the VRDP video redirection properties. 3367 </para> 3368 2358 3369 <itemizedlist> 3370 2359 3371 <listitem> 2360 <para>For VideoChannel/Enabled, <value> can be set to "1" switching the VRDP video channel on. 2361 For details, see <xref linkend="vrde-videochannel" />.</para> 3372 <para> 3373 For VideoChannel/Enabled, <value> can be set to "1" 3374 switching the VRDP video channel on. See 3375 <xref linkend="vrde-videochannel" />. 3376 </para> 2362 3377 </listitem> 2363 3378 2364 3379 <listitem> 2365 <para>For VideoChannel/Quality, <value> should be set between 10 and 100% inclusive, 2366 representing a JPEG compression level on the VRDE server video channel. Lower values mean lower 2367 quality but higher compression. For details, see <xref linkend="vrde-videochannel" />.</para> 3380 <para> 3381 For VideoChannel/Quality, <value> should be set 3382 between 10 and 100% inclusive, representing a JPEG 3383 compression level on the VRDE server video channel. Lower 3384 values mean lower quality but higher compression. For 3385 details, see <xref linkend="vrde-videochannel" />. 3386 </para> 2368 3387 </listitem> 2369 3388 2370 3389 <listitem> 2371 <para>For VideoChannel/DownscaleProtection, <value> can be set to "1" to enable the 2372 videochannel downscale protection feature. When enabled, if a video's size equals the shadow 2373 buffer size, then it is regarded as a full screen video, and is displayed; but if its size 2374 is between fullscreen and the downscale threshold - it is NOT displayed, as it could be an 2375 application window, which would be unreadable when downscaled. 2376 When the downscale protection feature is disabled, an attempt is always made to display videos.</para> 3390 <para> 3391 For VideoChannel/DownscaleProtection, <value> can be 3392 set to "1" to enable the videochannel downscale protection 3393 feature. When enabled, if a video's size equals the shadow 3394 buffer size, then it is regarded as a full screen video, 3395 and is displayed; but if its size is between fullscreen 3396 and the downscale threshold - it is NOT displayed, as it 3397 could be an application window, which would be unreadable 3398 when downscaled. When the downscale protection feature is 3399 disabled, an attempt is always made to display videos. 3400 </para> 2377 3401 </listitem> 3402 2378 3403 </itemizedlist> 2379 3404 </listitem> 2380 3405 2381 3406 <listitem> 2382 <para><computeroutput>vrdeproperty "Client/DisableDisplay|DisableInput|DisableAudio|DisableUSB=1"</computeroutput></para> 2383 <para>disables one of the VRDE server features: Display, Input, Audio or USB respectively. 2384 To re-enable a feature, use e.g. "Client/DisableDisplay=". 2385 For details, see <xref linkend="vrde-customization" />.</para> 2386 </listitem> 2387 2388 <listitem> 2389 <para><computeroutput>vrdeproperty "Client/DisableClipboard|DisableUpstreamAudio=1"</computeroutput></para> 2390 <para>disables one of the VRDE server features: Clipboard or UpstreamAudio respectively. 2391 To re-enable a feature, use e.g. "Client/DisableClipboard=". 2392 For details, see <xref linkend="vrde-customization" />.</para> 2393 </listitem> 2394 2395 <listitem> 2396 <para><computeroutput>vrdeproperty "Client/DisableRDPDR=1"</computeroutput></para> 2397 <para>disables the VRDE server feature: RDP device redirection for smart cards. 2398 To re-enable this feature, use "Client/DisableRDPR=".</para> 2399 </listitem> 2400 2401 <listitem> 2402 <para><computeroutput>vrdeproperty "H3DRedirect/Enabled=1"</computeroutput></para> 2403 <para>enables the VRDE server feature: 3D redirection. 2404 To re-disable this feature, use "H3DRedirect/Enabled=".</para> 2405 </listitem> 2406 2407 <listitem> 2408 <para><computeroutput>vrdeproperty "Security/Method|ServerCertificate|ServerPrivateKey|CACertificate=<value>"</computeroutput> 2409 sets the desired security method/Path of server certificate, path of server private key, path of CA certificate, used for a connection. 3407 <para> 3408 <computeroutput>vrdeproperty 3409 "Client/DisableDisplay|DisableInput|DisableAudio|DisableUSB=1"</computeroutput> 3410 </para> 3411 3412 <para> 3413 disables one of the VRDE server features: Display, Input, 3414 Audio or USB respectively. To reenable a feature, use 3415 "Client/DisableDisplay=" for example. See 3416 <xref linkend="vrde-customization" />. 3417 </para> 3418 </listitem> 3419 3420 <listitem> 3421 <para> 3422 <computeroutput>vrdeproperty 3423 "Client/DisableClipboard|DisableUpstreamAudio=1"</computeroutput> 3424 </para> 3425 3426 <para> 3427 disables one of the VRDE server features: Clipboard or 3428 UpstreamAudio respectively. To reenable a feature, use 3429 "Client/DisableClipboard=" for example. See 3430 <xref linkend="vrde-customization" />. 3431 </para> 3432 </listitem> 3433 3434 <listitem> 3435 <para> 3436 <computeroutput>vrdeproperty 3437 "Client/DisableRDPDR=1"</computeroutput> 3438 </para> 3439 3440 <para> 3441 disables the VRDE server feature: RDP device redirection for 3442 smart cards. To reenable this feature, use 3443 "Client/DisableRDPR=". 3444 </para> 3445 </listitem> 3446 3447 <listitem> 3448 <para> 3449 <computeroutput>vrdeproperty 3450 "H3DRedirect/Enabled=1"</computeroutput> 3451 </para> 3452 3453 <para> 3454 enables the VRDE server feature: 3D redirection. To disable 3455 this feature, use "H3DRedirect/Enabled=". 3456 </para> 3457 </listitem> 3458 3459 <listitem> 3460 <para> 3461 <computeroutput>vrdeproperty 3462 "Security/Method|ServerCertificate|ServerPrivateKey|CACertificate=<value>"</computeroutput> 3463 sets the desired security method/Path of server certificate, 3464 path of server private key, path of CA certificate, used for a 3465 connection. 3466 </para> 2410 3467 2411 3468 <itemizedlist> 3469 2412 3470 <listitem> 2413 <para><computeroutput>vrdeproperty "Security/Method=<value>"</computeroutput> 2414 sets the desired security method, which is used for a connection. Valid values are: 3471 <para> 3472 <computeroutput>vrdeproperty 3473 "Security/Method=<value>"</computeroutput> sets the 3474 desired security method, which is used for a connection. 3475 Valid values are: 3476 </para> 3477 2415 3478 <itemizedlist> 3479 2416 3480 <listitem> 2417 <para> <computeroutput>Negotiate</computeroutput> - both Enhanced (TLS) 2418 and Standard RDP Security connections are allowed. The security 2419 method is negotiated with the client. This is the default setting.</para> 3481 <para> 3482 <computeroutput>Negotiate</computeroutput> - both 3483 Enhanced (TLS) and Standard RDP Security connections 3484 are allowed. The security method is negotiated with 3485 the client. This is the default setting. 3486 </para> 2420 3487 </listitem> 3488 2421 3489 <listitem> 2422 <para> <computeroutput>RDP</computeroutput> - only Standard RDP Security is accepted.</para> 3490 <para> 3491 <computeroutput>RDP</computeroutput> - only Standard 3492 RDP Security is accepted. 3493 </para> 2423 3494 </listitem> 3495 2424 3496 <listitem> 2425 <para> <computeroutput>TLS</computeroutput> - only Enhanced RDP Security is accepted. 2426 The client must support TLS.</para> 3497 <para> 3498 <computeroutput>TLS</computeroutput> - only Enhanced 3499 RDP Security is accepted. The client must support TLS. 3500 </para> 2427 3501 </listitem> 3502 2428 3503 </itemizedlist> 2429 For details, see <xref linkend="vrde-crypt" />.</para> 3504 3505 <para> 3506 See <xref linkend="vrde-crypt" />. 3507 </para> 2430 3508 </listitem> 2431 3509 2432 3510 <listitem> 2433 <para><computeroutput>vrdeproperty "Security/ServerCertificate=<value>"</computeroutput> 2434 where <value> is the absolute path of the server certificate. 2435 For details, see <xref linkend="vrde-crypt" />.</para> 3511 <para> 3512 <computeroutput>vrdeproperty 3513 "Security/ServerCertificate=<value>"</computeroutput> 3514 where <value> is the absolute path of the server 3515 certificate. See <xref linkend="vrde-crypt" />. 3516 </para> 2436 3517 </listitem> 2437 3518 2438 3519 <listitem> 2439 <para><computeroutput>vrdeproperty "Security/ServerPrivateKey=<value>"</computeroutput> 2440 where <value> is the absolute path of the server private key. 2441 For details, see <xref linkend="vrde-crypt" />.</para> 3520 <para> 3521 <computeroutput>vrdeproperty 3522 "Security/ServerPrivateKey=<value>"</computeroutput> 3523 where <value> is the absolute path of the server 3524 private key. See <xref linkend="vrde-crypt" />. 3525 </para> 2442 3526 </listitem> 2443 3527 2444 3528 <listitem> 2445 <para><computeroutput>vrdeproperty "Security/CACertificate=<value>"</computeroutput> 2446 where <value> is the absolute path of the CA self signed certificate. 2447 For details, see <xref linkend="vrde-crypt" />.</para> 3529 <para> 3530 <computeroutput>vrdeproperty 3531 "Security/CACertificate=<value>"</computeroutput> 3532 where <value> is the absolute path of the CA self 3533 signed certificate. See <xref linkend="vrde-crypt" />. 3534 </para> 2448 3535 </listitem> 2449 </itemizedlist></para> 2450 </listitem> 2451 2452 <listitem> 2453 <para><computeroutput>vrdeproperty "Audio/RateCorrectionMode|LogPath=<value>"</computeroutput> 2454 sets the Audio connection mode, or Path of the audio logfile. 3536 3537 </itemizedlist> 3538 </listitem> 3539 3540 <listitem> 3541 <para> 3542 <computeroutput>vrdeproperty 3543 "Audio/RateCorrectionMode|LogPath=<value>"</computeroutput> 3544 sets the Audio connection mode, or Path of the audio logfile. 3545 </para> 2455 3546 2456 3547 <itemizedlist> 3548 2457 3549 <listitem> 2458 <para><computeroutput>vrdeproperty "Audio/RateCorrectionMode=<value>"</computeroutput> 2459 where <value> is the desired rate correction mode, allowed values are: 3550 <para> 3551 <computeroutput>vrdeproperty 3552 "Audio/RateCorrectionMode=<value>"</computeroutput> 3553 where <value> is the desired rate correction mode, 3554 allowed values are: 3555 </para> 3556 2460 3557 <itemizedlist> 3558 2461 3559 <listitem> 2462 <para> <computeroutput>VRDP_AUDIO_MODE_VOID</computeroutput> - no mode specified, use to 2463 unset any Audio mode already set.</para> 3560 <para> 3561 <computeroutput>VRDP_AUDIO_MODE_VOID</computeroutput> 3562 - no mode specified, use to unset any Audio mode 3563 already set. 3564 </para> 2464 3565 </listitem> 3566 2465 3567 <listitem> 2466 <para> <computeroutput>VRDP_AUDIO_MODE_RC</computeroutput> - rate correction mode.</para> 3568 <para> 3569 <computeroutput>VRDP_AUDIO_MODE_RC</computeroutput> - 3570 rate correction mode. 3571 </para> 2467 3572 </listitem> 3573 2468 3574 <listitem> 2469 <para> <computeroutput>VRDP_AUDIO_MODE_LPF</computeroutput> - low pass filter mode.</para> 3575 <para> 3576 <computeroutput>VRDP_AUDIO_MODE_LPF</computeroutput> - 3577 low pass filter mode. 3578 </para> 2470 3579 </listitem> 3580 2471 3581 <listitem> 2472 <para> <computeroutput>VRDP_AUDIO_MODE_CS</computeroutput> - client sync mode to prevent 2473 under/overflow of the client queue.</para> 3582 <para> 3583 <computeroutput>VRDP_AUDIO_MODE_CS</computeroutput> - 3584 client sync mode to prevent under/overflow of the 3585 client queue. 3586 </para> 2474 3587 </listitem> 2475 </itemizedlist></para> 3588 3589 </itemizedlist> 2476 3590 </listitem> 3591 2477 3592 <listitem> 2478 <para><computeroutput>vrdeproperty "Audio/LogPath=<value>"</computeroutput> 2479 where <value> is the absolute path of the Audio log file.</para> 3593 <para> 3594 <computeroutput>vrdeproperty 3595 "Audio/LogPath=<value>"</computeroutput> where 3596 <value> is the absolute path of the Audio log file. 3597 </para> 2480 3598 </listitem> 2481 </itemizedlist></para> 2482 </listitem> 2483 2484 <listitem> 2485 <para><computeroutput>vrdevideochannelquality 2486 <percent></computeroutput>: Sets the image quality for video 2487 redirection; see <xref lang="" 2488 linkend="vrde-videochannel" />.</para> 2489 </listitem> 2490 2491 <listitem> 2492 <para><computeroutput>setvideomodehint</computeroutput> requests that 2493 the guest system change to a particular video mode. This requires that 2494 the Guest Additions be installed, and will not work for all guest 2495 systems.</para> 2496 </listitem> 2497 2498 <listitem> 2499 <para><computeroutput>screenshotpng</computeroutput> takes a screenshot 2500 of the guest display and saves it in PNG format.</para> 2501 </listitem> 2502 2503 <listitem> 2504 <para><computeroutput>videocap on|off</computeroutput> enables or disables 2505 recording a VM session into a WebM/VP8 file.</para> 2506 </listitem> 2507 2508 <listitem> 2509 <para><computeroutput>videocapscreens all|<screen ID> 2510 [<screen ID> ...]]</computeroutput> allows to specify which screens of 2511 the VM are being recorded. This setting 2512 cannot be changed while video capturing is enabled. Each screen is recorded 2513 into a separate file.</para> 2514 </listitem> 2515 2516 <listitem> 2517 <para><computeroutput>videocapfile <file></computeroutput> sets the filename 2518 VirtualBox uses to save the recorded content. This setting cannot be changed 2519 while video capturing is enabled.</para> 2520 </listitem> 2521 2522 <listitem> 2523 <para><computeroutput>videocapres <width> <height></computeroutput> 2524 sets the resolution (in pixels) of the recorded video. This setting cannot be 2525 changed while video capturing is enabled.</para> 2526 </listitem> 2527 2528 <listitem> <!-- @todo r=andy Clarify rate. --> 2529 <para><computeroutput>videocaprate <rate></computeroutput> sets the 2530 bitrate in kilobits (kb) per second. Increasing this value makes the video 2531 look better for the cost of an increased file size. This setting cannot be 2532 changed while video capturing is enabled.</para> 2533 </listitem> 2534 2535 <listitem> 2536 <para><computeroutput>videocapfps <fps></computeroutput> sets the 2537 maximum number of frames per second (FPS) to be recorded. Frames with a 2538 higher frequency will be skipped. Reducing this value increases the number 2539 of skipped frames and reduces the file size. This setting cannot be changed 2540 while video capturing is enabled.</para> 2541 </listitem> 2542 2543 <listitem> <!-- @todo r=andy Clarify time format. --> 2544 <para><computeroutput>videocapmaxtime <ms></computeroutput> sets 2545 the maximum time in milliseconds the video capturing will be enabled 2546 since activation. 2547 The capturing stops when the defined time interval has elapsed. If this 2548 value is zero the capturing is not limited by time. This setting cannot 2549 be changed while video capturing is enabled.</para> 2550 </listitem> 2551 2552 <listitem> 2553 <para><computeroutput>videocapmaxsize <MB></computeroutput> limits 2554 the maximum size of the captured video file (in MB). The capturing stops 2555 when the file size has reached the specified size. If this value is zero 2556 the capturing will not be limited by file size. This setting cannot be 2557 changed while video capturing is enabled.</para> 2558 </listitem> 2559 2560 <listitem> 2561 <para><computeroutput>videocapopts <key=value>[,<key=value> ...]</computeroutput> 2562 can be used to specify additional video capturing options. These options 2563 only are for advanced users and must be specified in a comma-separated 2564 key=value format, e.g. <computeroutput>foo=bar,a=b</computeroutput>. 2565 This setting cannot be changed while video capturing is enabled.</para> 2566 </listitem> 2567 2568 <listitem> 2569 <para>The <computeroutput>setcredentials</computeroutput> operation is 2570 used for remote logons in Windows guests. For details, please refer to 2571 <xref linkend="autologon" />.</para> 2572 </listitem> 2573 2574 <listitem> 2575 <para><computeroutput>teleport --host <name> --port <port></computeroutput> 2576 can be used to configure a VM as a target for teleporting. 2577 <name> specifies the virtual machine name. <port> specifies the port on the 2578 virtual machine which should listen for teleporting requests from other 2579 virtual machines. It can be any free TCP/IP port number (e.g. 6000); 2580 See <xref linkend="teleporting" /> for an introduction.</para> 3599 3600 </itemizedlist> 3601 </listitem> 3602 3603 <listitem> 3604 <para> 3605 <computeroutput>vrdevideochannelquality 3606 <percent></computeroutput>: Sets the image quality for 3607 video redirection. See 3608 <xref 3609 linkend="vrde-videochannel" />. 3610 </para> 3611 </listitem> 3612 3613 <listitem> 3614 <para> 3615 <computeroutput>setvideomodehint</computeroutput> requests 3616 that the guest system change to a particular video mode. This 3617 requires that the Guest Additions be installed, and will not 3618 work for all guest systems. 3619 </para> 3620 </listitem> 3621 3622 <listitem> 3623 <para> 3624 <computeroutput>screenshotpng</computeroutput> takes a 3625 screenshot of the guest display and saves it in PNG format. 3626 </para> 3627 </listitem> 3628 3629 <listitem> 3630 <para> 3631 <computeroutput>videocap on|off</computeroutput> enables or 3632 disables recording a VM session into a WebM/VP8 file. 3633 </para> 3634 </listitem> 3635 3636 <listitem> 3637 <para> 3638 <computeroutput>videocapscreens all|<screen ID> 3639 [<screen ID> ...]]</computeroutput> allows to specify 3640 which screens of the VM are being recorded. This setting 3641 cannot be changed while video capturing is enabled. Each 3642 screen is recorded into a separate file. 3643 </para> 3644 </listitem> 3645 3646 <listitem> 3647 <para> 3648 <computeroutput>videocapfile <file></computeroutput> 3649 sets the filename VirtualBox uses to save the recorded 3650 content. This setting cannot be changed while video capturing 3651 is enabled. 3652 </para> 3653 </listitem> 3654 3655 <listitem> 3656 <para> 3657 <computeroutput>videocapres <width> 3658 <height></computeroutput> sets the resolution (in 3659 pixels) of the recorded video. This setting cannot be changed 3660 while video capturing is enabled. 3661 </para> 3662 </listitem> 3663 3664 <listitem> 3665 <!-- @todo r=andy Clarify rate. --> 3666 3667 <para> 3668 <computeroutput>videocaprate <rate></computeroutput> 3669 sets the bitrate in kilobits (kb) per second. Increasing this 3670 value makes the video look better for the cost of an increased 3671 file size. This setting cannot be changed while video 3672 capturing is enabled. 3673 </para> 3674 </listitem> 3675 3676 <listitem> 3677 <para> 3678 <computeroutput>videocapfps <fps></computeroutput> sets 3679 the maximum number of frames per second (FPS) to be recorded. 3680 Frames with a higher frequency will be skipped. Reducing this 3681 value increases the number of skipped frames and reduces the 3682 file size. This setting cannot be changed while video 3683 capturing is enabled. 3684 </para> 3685 </listitem> 3686 3687 <listitem> 3688 <!-- @todo r=andy Clarify time format. --> 3689 3690 <para> 3691 <computeroutput>videocapmaxtime <ms></computeroutput> 3692 sets the maximum time in milliseconds the video capturing will 3693 be enabled since activation. The capturing stops when the 3694 defined time interval has elapsed. If this value is zero the 3695 capturing is not limited by time. This setting cannot be 3696 changed while video capturing is enabled. 3697 </para> 3698 </listitem> 3699 3700 <listitem> 3701 <para> 3702 <computeroutput>videocapmaxsize <MB></computeroutput> 3703 limits the maximum size of the captured video file, in MB. The 3704 capturing stops when the file size has reached the specified 3705 size. If this value is zero the capturing will not be limited 3706 by file size. This setting cannot be changed while video 3707 capturing is enabled. 3708 </para> 3709 </listitem> 3710 3711 <listitem> 3712 <para> 3713 <computeroutput>videocapopts 3714 <key=value>[,<key=value> ...]</computeroutput> can 3715 be used to specify additional video capturing options. These 3716 options only are for advanced users and must be specified in a 3717 comma-separated key=value format, e.g. 3718 <computeroutput>foo=bar,a=b</computeroutput>. This setting 3719 cannot be changed while video capturing is enabled. 3720 </para> 3721 </listitem> 3722 3723 <listitem> 3724 <para> 3725 The <computeroutput>setcredentials</computeroutput> operation 3726 is used for remote logons in Windows guests. See 3727 <xref linkend="autologon" />. 3728 </para> 3729 </listitem> 3730 3731 <listitem> 3732 <para> 3733 <computeroutput>teleport --host <name> --port 3734 <port></computeroutput> can be used to configure a VM as 3735 a target for teleporting. <name> specifies the virtual 3736 machine name. <port> specifies the port on the virtual 3737 machine which should listen for teleporting requests from 3738 other virtual machines. It can be any free TCP/IP port number, 3739 such as 6000. See <xref linkend="teleporting" />. 3740 </para> 3741 2581 3742 <itemizedlist> 3743 2582 3744 <listitem> 2583 <para><computeroutput>--maxdowntime <msec></computeroutput>: 2584 specifies the maximum downtime (milliseconds) for the 2585 teleporting target VM. Optional.</para> 3745 <para> 3746 <computeroutput>--maxdowntime 3747 <msec></computeroutput>: specifies the maximum 3748 downtime (milliseconds) for the teleporting target VM. 3749 Optional. 3750 </para> 2586 3751 </listitem> 2587 3752 2588 3753 <listitem> 2589 <para><computeroutput>--password 2590 <password></computeroutput>: 2591 indicates that the teleporting request will only succeed if the 2592 source machine specifies the same password as the one given with 2593 this command. Optional.</para> 3754 <para> 3755 <computeroutput>--password 3756 <password></computeroutput>: indicates that the 3757 teleporting request will only succeed if the source 3758 machine specifies the same password as the one given with 3759 this command. Optional. 3760 </para> 2594 3761 </listitem> 2595 3762 2596 3763 <listitem> 2597 <para><computeroutput>--passwordfile 2598 <password file></computeroutput>: 2599 indicates that the teleporting request will only succeed if the 2600 source machine specifies the same password as the one specified 2601 in the password file with the path specified with this command. 2602 Use <computeroutput>stdin</computeroutput> to read the password 2603 from stdin. Optional.</para> 3764 <para> 3765 <computeroutput>--passwordfile <password 3766 file></computeroutput>: indicates that the teleporting 3767 request will only succeed if the source machine specifies 3768 the same password as the one specified in the password 3769 file with the path specified with this command. Use 3770 <computeroutput>stdin</computeroutput> to read the 3771 password from stdin. Optional. 3772 </para> 2604 3773 </listitem> 3774 2605 3775 </itemizedlist> 2606 3776 </listitem> 2607 3777 2608 3778 <listitem> 2609 <para><computeroutput>plugcpu|unplugcpu 2610 <id></computeroutput>: If CPU hot-plugging is enabled, this adds 2611 a virtual CPU to the virtual machines (or removes one). 2612 <computeroutput><id></computeroutput> specifies the index of 2613 the virtual CPU to be added or removed and must be a number from 0 2614 to the maximum no. of CPUs configured. CPU 0 can never be removed.</para> 2615 </listitem> 2616 2617 <listitem> 2618 <para>The <computeroutput>cpuexecutioncap 2619 <1-100></computeroutput>: This operation controls how much cpu 2620 time a virtual CPU can use. A value of 50 implies a single virtual CPU 2621 can use up to 50% of a single host CPU.</para> 2622 </listitem> 2623 2624 <listitem> 2625 <para><computeroutput>webcam 2626 attach <path|alias> [<key=value>[;<key=value>...]]</computeroutput>: This operation 2627 attaches a webcam to a running VM. Specify the absolute path of the 2628 webcam on the host operating system, or use its alias (obtained by using the command: VBoxManage 2629 list webcams).</para> 2630 2631 <para>Note that alias '.0' means default video input device on the host operating system, '.1', '.2', 2632 etc. mean first, second, etc. video input device. The device order is host-specific.</para> 2633 2634 <para>The optional settings parameter is a ';' delimited list of name/value pairs, enabling configuration 2635 of the emulated webcam device.</para> 2636 2637 <para>The following settings are supported:</para> 2638 2639 <para>MaxFramerate (default no maximum limit) - this specifies the highest rate (frames/sec) at which 2640 video frames are sent to the guest. Higher frame rates increase CPU load, so this setting can be useful 2641 when there is a need to reduce CPU load. Its default 'value' is 'no maximum limit', thus enabling the 2642 guest to use all frame rates supported by the host webcam.</para> 2643 2644 <para>MaxPayloadTransferSize (default 3060 bytes) - this specifies the maximum number of bytes the emulated 2645 webcam can send to the guest in one buffer. The default is used by some webcams. Higher values can 2646 slightly reduce CPU load, if the guest is able to use larger buffers. 2647 Note that higher MaxPayloadTransferSize values may be not supported by some guest operating systems.</para> 2648 </listitem> 2649 2650 <listitem> 2651 <para><computeroutput>webcam 2652 detach <path|alias></computeroutput>: This operation 2653 detaches a webcam from a running VM. Specify the absolute path of the 2654 webcam on the host, or use its alias (obtained from webcam list below).</para> 2655 <para>Note the points below relating to specific Host Operating Systems:</para> 2656 2657 <para>Windows hosts</para> 2658 2659 <para>When the webcam device is detached from the host, the emulated webcam device 2660 is automatically detached from the guest.</para> 2661 2662 <para>Mac OS X hosts</para> 2663 2664 <para>OS X version 10.7 or newer is required.</para> 2665 2666 <para>When the webcam device is detached from the host, the emulated webcam device remains 2667 attached to the guest and must be manually detached using the 2668 VBoxManage controlvm "VM name" webcam detach command.</para> 2669 2670 <para>Linux hosts</para> 2671 2672 <para>When the webcam is detached from the host, the emulated webcam device is automatically detached 2673 from the guest only if the webcam is streaming video. If the emulated webcam is inactive, it 2674 should be manually detached using the VBoxManage controlvm "VM name" webcam detach command.</para> 2675 </listitem> 2676 2677 <listitem> 2678 <para><computeroutput>webcam list</computeroutput>: This operation 2679 lists webcams attached to the running VM. 2680 The output is a list of absolute paths or aliases that were used for attaching the webcams 2681 to the VM using the 'webcam attach' command above. 2682 </para> 2683 </listitem> 2684 2685 <listitem> 2686 <para><computeroutput>addencpassword 2687 <id> <password file>|- [--removeonsuspend <yes|no>]</computeroutput>: This operation 2688 supplies an encrypted VM specified by <id> with the encryption password to enable a headless start. 2689 Either specify the absolute path of a password file on the host file system: <password file>, or 2690 use a '-' to instruct VBoxManage to prompt the user for the encryption password. </para> 2691 2692 <para><computeroutput>--removeonsuspend <yes|no></computeroutput> specifies whether to remove/keep 2693 the password from/in VM memory when the VM is suspended. If the VM has been suspended and the password has 2694 been removed, the user needs to resupply the password before the VM can be resumed. This feature is useful 2695 in cases where the user doesn't want the password to be stored in VM memory, and the VM is suspended by a 2696 host suspend event.</para> 2697 2698 <para>Note: On VirtualBox versions 5.0 and later, data stored on hard disk images can be transparently 2699 encrypted for the guest. VirtualBox uses the AES algorithm in XTS mode and supports 128 or 256 2700 bit data encryption keys (DEK). The DEK is stored encrypted in the medium properties, and is 2701 decrypted during VM startup by supplying the encryption password.</para> 2702 2703 <para>The "VBoxManage encryptmedium" operation is used to create a DEK encrypted medium. 2704 See <xref linkend="diskencryption-encryption" />" for details. 2705 When starting an encrypted VM from a VirtualBox GUI app, the user will be prompted for the 2706 encryption password.</para> 2707 2708 <para>For a headless encrypted VM start, use:</para> 2709 2710 <para>VBoxManage startvm "vmname" --type headless</para> 2711 2712 <para>followed by:</para> 2713 2714 <para>VBoxManage "vmname" controlvm "vmname" addencpassword ...</para> 2715 2716 <para>to supply the encryption password required.</para> 2717 </listitem> 2718 2719 <listitem> 2720 <para><computeroutput>removeencpassword <id></computeroutput>: This operation 2721 removes encryption password authorization for password <id> for all encrypted media 2722 attached to the VM.</para> 2723 </listitem> 2724 2725 <listitem> 2726 <para><computeroutput>removeallencpasswords</computeroutput>: This operation 2727 removes encryption password authorization for all passwords for all 2728 encrypted media attached to the VM.</para> 3779 <para> 3780 <computeroutput>plugcpu|unplugcpu <id></computeroutput>: 3781 If CPU hot-plugging is enabled, this adds a virtual CPU to the 3782 virtual machines (or removes one). 3783 <computeroutput><id></computeroutput> specifies the 3784 index of the virtual CPU to be added or removed and must be a 3785 number from 0 to the maximum no. of CPUs configured. CPU 0 can 3786 never be removed. 3787 </para> 3788 </listitem> 3789 3790 <listitem> 3791 <para> 3792 The <computeroutput>cpuexecutioncap 3793 <1-100></computeroutput>: This operation controls how 3794 much cpu time a virtual CPU can use. A value of 50 implies a 3795 single virtual CPU can use up to 50% of a single host CPU. 3796 </para> 3797 </listitem> 3798 3799 <listitem> 3800 <para> 3801 <computeroutput>webcam attach <path|alias> 3802 [<key=value>[;<key=value>...]]</computeroutput>: 3803 This operation attaches a webcam to a running VM. Specify the 3804 absolute path of the webcam on the host operating system, or 3805 use its alias, obtained by using the command: VBoxManage list 3806 webcams. 3807 </para> 3808 3809 <para> 3810 Note that alias '.0' means default video input device on the 3811 host operating system, '.1', '.2', etc. mean first, second, 3812 etc. video input device. The device order is host-specific. 3813 </para> 3814 3815 <para> 3816 The optional settings parameter is a ';' delimited list of 3817 name/value pairs, enabling configuration of the emulated 3818 webcam device. 3819 </para> 3820 3821 <para> 3822 The following settings are supported: 3823 </para> 3824 3825 <para> 3826 MaxFramerate (default no maximum limit) - this specifies the 3827 highest rate (frames/sec) at which video frames are sent to 3828 the guest. Higher frame rates increase CPU load, so this 3829 setting can be useful when there is a need to reduce CPU load. 3830 Its default 'value' is 'no maximum limit', thus enabling the 3831 guest to use all frame rates supported by the host webcam. 3832 </para> 3833 3834 <para> 3835 MaxPayloadTransferSize (default 3060 bytes) - this specifies 3836 the maximum number of bytes the emulated webcam can send to 3837 the guest in one buffer. The default is used by some webcams. 3838 Higher values can slightly reduce CPU load, if the guest is 3839 able to use larger buffers. Note that higher 3840 MaxPayloadTransferSize values may be not supported by some 3841 guest operating systems. 3842 </para> 3843 </listitem> 3844 3845 <listitem> 3846 <para> 3847 <computeroutput>webcam detach 3848 <path|alias></computeroutput>: This operation detaches a 3849 webcam from a running VM. Specify the absolute path of the 3850 webcam on the host, or use its alias (obtained from webcam 3851 list below). 3852 </para> 3853 3854 <para> 3855 Note the points below relating to specific Host Operating 3856 Systems: 3857 </para> 3858 3859 <para> 3860 Windows hosts 3861 </para> 3862 3863 <para> 3864 When the webcam device is detached from the host, the emulated 3865 webcam device is automatically detached from the guest. 3866 </para> 3867 3868 <para> 3869 Mac OS X hosts 3870 </para> 3871 3872 <para> 3873 OS X version 10.7 or newer is required. 3874 </para> 3875 3876 <para> 3877 When the webcam device is detached from the host, the emulated 3878 webcam device remains attached to the guest and must be 3879 manually detached using the VBoxManage controlvm "VM name" 3880 webcam detach command. 3881 </para> 3882 3883 <para> 3884 Linux hosts 3885 </para> 3886 3887 <para> 3888 When the webcam is detached from the host, the emulated webcam 3889 device is automatically detached from the guest only if the 3890 webcam is streaming video. If the emulated webcam is inactive, 3891 it should be manually detached using the VBoxManage controlvm 3892 "VM name" webcam detach command. 3893 </para> 3894 </listitem> 3895 3896 <listitem> 3897 <para> 3898 <computeroutput>webcam list</computeroutput>: This operation 3899 lists webcams attached to the running VM. The output is a list 3900 of absolute paths or aliases that were used for attaching the 3901 webcams to the VM using the 'webcam attach' command above. 3902 </para> 3903 </listitem> 3904 3905 <listitem> 3906 <para> 3907 <computeroutput>addencpassword <id> <password 3908 file>|- [--removeonsuspend 3909 <yes|no>]</computeroutput>: This operation supplies an 3910 encrypted VM specified by <id> with the encryption 3911 password to enable a headless start. Either specify the 3912 absolute path of a password file on the host file system: 3913 <password file>, or use a '-' to instruct VBoxManage to 3914 prompt the user for the encryption password. 3915 </para> 3916 3917 <para> 3918 <computeroutput>--removeonsuspend 3919 <yes|no></computeroutput> specifies whether to 3920 remove/keep the password from/in VM memory when the VM is 3921 suspended. If the VM has been suspended and the password has 3922 been removed, the user needs to resupply the password before 3923 the VM can be resumed. This feature is useful in cases where 3924 the user does not want the password to be stored in VM memory, 3925 and the VM is suspended by a host suspend event. 3926 </para> 3927 3928 <para> 3929 Note: On VirtualBox versions 5.0 and later, data stored on 3930 hard disk images can be transparently encrypted for the guest. 3931 VirtualBox uses the AES algorithm in XTS mode and supports 128 3932 or 256 bit data encryption keys (DEK). The DEK is stored 3933 encrypted in the medium properties, and is decrypted during VM 3934 startup by supplying the encryption password. 3935 </para> 3936 3937 <para> 3938 The "VBoxManage encryptmedium" operation is used to create a 3939 DEK encrypted medium. See 3940 <xref linkend="diskencryption-encryption" />. When starting an 3941 encrypted VM from a VirtualBox GUI app, the user will be 3942 prompted for the encryption password. 3943 </para> 3944 3945 <para> 3946 For a headless encrypted VM start, use: 3947 </para> 3948 3949 <screen> 3950 VBoxManage startvm "vmname" --type headless 3951 </screen> 3952 3953 <para> 3954 followed by: 3955 </para> 3956 3957 <screen> 3958 VBoxManage "vmname" controlvm "vmname" addencpassword ... 3959 </screen> 3960 3961 <para> 3962 to supply the encryption password required. 3963 </para> 3964 </listitem> 3965 3966 <listitem> 3967 <para> 3968 <computeroutput>removeencpassword <id></computeroutput>: 3969 This operation removes encryption password authorization for 3970 password <id> for all encrypted media attached to the 3971 VM. 3972 </para> 3973 </listitem> 3974 3975 <listitem> 3976 <para> 3977 <computeroutput>removeallencpasswords</computeroutput>: This 3978 operation removes encryption password authorization for all 3979 passwords for all encrypted media attached to the VM. 3980 </para> 2729 3981 </listitem> 2730 3982 2731 3983 </itemizedlist> 3984 2732 3985 </sect1> 2733 3986 2734 <sect1> 3987 <sect1 id="vboxmanage-discardstate"> 3988 2735 3989 <title>VBoxManage discardstate</title> 2736 3990 2737 <para>This command discards the saved state of a virtual machine which is 2738 not currently running, which will cause its operating system to restart 2739 next time you start it. This is the equivalent of pulling out the power 2740 cable on a physical machine, and should be avoided if possible.</para> 3991 <para> 3992 This command discards the saved state of a virtual machine which 3993 is not currently running, which will cause its operating system to 3994 restart next time you start it. This is the equivalent of pulling 3995 out the power cable on a physical machine, and should be avoided 3996 if possible. 3997 </para> 3998 2741 3999 </sect1> 2742 4000 2743 <sect1> 4001 <sect1 id="vboxmanage-adoptstate"> 4002 2744 4003 <title>VBoxManage adoptstate</title> 2745 4004 2746 <para>If you have a saved state file (<computeroutput>.sav</computeroutput>) 2747 that is separate from the VM configuration, you can use this command to 2748 "adopt" the file. This will change the VM to saved state and when you 2749 start it, VirtualBox will attempt to restore it from the saved state file 2750 you indicated. This command should only be used in special setups.</para> 4005 <para> 4006 If you have a saved state file 4007 (<computeroutput>.sav</computeroutput>) that is separate from the 4008 VM configuration, you can use this command to "adopt" the file. 4009 This will change the VM to saved state and when you start it, 4010 VirtualBox will attempt to restore it from the saved state file 4011 you indicated. This command should only be used in special setups. 4012 </para> 4013 2751 4014 </sect1> 2752 4015 2753 <sect1> 4016 <sect1 id="vboxmanage-snapshot"> 4017 2754 4018 <title>VBoxManage snapshot</title> 2755 4019 2756 <para>This command is used to control snapshots from the command line. A 2757 snapshot consists of a complete copy of the virtual machine settings, 2758 copied at the time when the snapshot was taken, and optionally a virtual 2759 machine saved state file if the snapshot was taken while the machine was 2760 running. After a snapshot has been taken, VirtualBox creates differencing 2761 hard disk for each normal hard disk associated with the machine so that 2762 when a snapshot is restored, the contents of the virtual machine's virtual 2763 hard disks can be quickly reset by simply dropping the pre-existing 2764 differencing files.</para> 2765 2766 <screen>VBoxManage snapshot <uuid|vmname> 4020 <para> 4021 This command is used to control snapshots from the command line. A 4022 snapshot consists of a complete copy of the virtual machine 4023 settings, copied at the time when the snapshot was taken, and 4024 optionally a virtual machine saved state file if the snapshot was 4025 taken while the machine was running. After a snapshot has been 4026 taken, VirtualBox creates differencing hard disk for each normal 4027 hard disk associated with the machine so that when a snapshot is 4028 restored, the contents of the virtual machine's virtual hard disks 4029 can be quickly reset by simply dropping the pre-existing 4030 differencing files. 4031 </para> 4032 4033 <screen>VBoxManage snapshot <uuid|vmname> 2767 4034 take <name> [--description <desc>] [--live] 2768 4035 [--uniquename Number,Timestamp,Space,Force] | … … 2776 4043 showvminfo <uuid|snapname></screen> 2777 4044 2778 <para>The <computeroutput>take</computeroutput> operation takes a snapshot 2779 of the current state of the virtual machine. You must supply a name for 2780 the snapshot and can optionally supply a description. The new snapshot is 2781 inserted into the snapshots tree as a child of the current snapshot and 2782 then becomes the new current snapshot. The 2783 <computeroutput>--description</computeroutput> parameter allows to 2784 describe the snapshot. If <computeroutput>--live</computeroutput> 2785 is specified, the VM will not be stopped during the snapshot creation 2786 (live snapshotting).</para> 2787 2788 <para>The <computeroutput>delete</computeroutput> operation deletes a 2789 snapshot (specified by name or by UUID). This can take a while to finish 2790 since the differencing images associated with the snapshot might need to 2791 be merged with their child differencing images.</para> 2792 2793 <para>The <computeroutput>restore</computeroutput> operation will restore 2794 the given snapshot (specified by name or by UUID) by resetting the virtual 2795 machine's settings and current state to that of the snapshot. The previous 2796 current state of the machine will be lost. After this, the given snapshot 2797 becomes the new "current" snapshot so that subsequent snapshots are 2798 inserted under the snapshot from which was restored.</para> 2799 2800 <para>The <computeroutput>restorecurrent</computeroutput> operation is a 2801 shortcut to restore the current snapshot (i.e. the snapshot from which the 2802 current state is derived). This subcommand is equivalent to using the 2803 "restore" subcommand with the name or UUID of the current snapshot, except 2804 that it avoids the extra step of determining that name or UUID.</para> 2805 2806 <para>With the <computeroutput>edit</computeroutput> operation, you can 2807 change the name or description of an existing snapshot.</para> 2808 2809 <para>The <computeroutput>list</computeroutput> operation shows all 2810 snapshots of a virtual machine.</para> 2811 2812 <para>With the <computeroutput>showvminfo</computeroutput> operation, you 2813 can view the virtual machine settings that were stored with an existing 2814 snapshot.</para> 4045 <para> 4046 The <computeroutput>take</computeroutput> operation takes a 4047 snapshot of the current state of the virtual machine. You must 4048 supply a name for the snapshot and can optionally supply a 4049 description. The new snapshot is inserted into the snapshots tree 4050 as a child of the current snapshot and then becomes the new 4051 current snapshot. The 4052 <computeroutput>--description</computeroutput> parameter allows to 4053 describe the snapshot. If <computeroutput>--live</computeroutput> 4054 is specified, the VM will not be stopped during the snapshot 4055 creation (live snapshotting). 4056 </para> 4057 4058 <para> 4059 The <computeroutput>delete</computeroutput> operation deletes a 4060 snapshot (specified by name or by UUID). This can take a while to 4061 finish since the differencing images associated with the snapshot 4062 might need to be merged with their child differencing images. 4063 </para> 4064 4065 <para> 4066 The <computeroutput>restore</computeroutput> operation will 4067 restore the given snapshot (specified by name or by UUID) by 4068 resetting the virtual machine's settings and current state to that 4069 of the snapshot. The previous current state of the machine will be 4070 lost. After this, the given snapshot becomes the new "current" 4071 snapshot so that subsequent snapshots are inserted under the 4072 snapshot from which was restored. 4073 </para> 4074 4075 <para> 4076 The <computeroutput>restorecurrent</computeroutput> operation is a 4077 shortcut to restore the current snapshot (i.e. the snapshot from 4078 which the current state is derived). This subcommand is equivalent 4079 to using the "restore" subcommand with the name or UUID of the 4080 current snapshot, except that it avoids the extra step of 4081 determining that name or UUID. 4082 </para> 4083 4084 <para> 4085 With the <computeroutput>edit</computeroutput> operation, you can 4086 change the name or description of an existing snapshot. 4087 </para> 4088 4089 <para> 4090 The <computeroutput>list</computeroutput> operation shows all 4091 snapshots of a virtual machine. 4092 </para> 4093 4094 <para> 4095 With the <computeroutput>showvminfo</computeroutput> operation, 4096 you can view the virtual machine settings that were stored with an 4097 existing snapshot. 4098 </para> 4099 2815 4100 </sect1> 2816 4101 2817 4102 <sect1 id="vboxmanage-closemedium"> 4103 2818 4104 <title>VBoxManage closemedium</title> 2819 4105 2820 <para>This commands removes a hard disk, DVD or floppy image from a 2821 VirtualBox media registry.<footnote> 2822 <para>Before VirtualBox 4.0, it was necessary to call VBoxManage 2823 openmedium before a medium could be attached to a virtual machine; 2824 that call "registered" the medium with the global VirtualBox media 2825 registry. With VirtualBox 4.0 this is no longer necessary; media are 2826 added to media registries automatically. The "closemedium" call has 2827 been retained, however, to allow for explicitly removing a medium from 2828 a registry.</para> 2829 </footnote></para> 2830 2831 <screen>VBoxManage closemedium [disk|dvd|floppy] <uuid|filename> 4106 <para> 4107 This command removes a hard disk, DVD, or floppy image from a 4108 VirtualBox media registry. 4109 4110 <footnote> 4111 4112 <para> 4113 Before VirtualBox 4.0, it was necessary to call VBoxManage 4114 openmedium before a medium could be attached to a virtual 4115 machine; that call "registered" the medium with the global 4116 VirtualBox media registry. With VirtualBox 4.0 this is no 4117 longer necessary; media are added to media registries 4118 automatically. The "closemedium" call has been retained, 4119 however, to allow for explicitly removing a medium from a 4120 registry. 4121 </para> 4122 4123 </footnote> 4124 </para> 4125 4126 <screen>VBoxManage closemedium [disk|dvd|floppy] <uuid|filename> 2832 4127 [--delete]</screen> 2833 4128 2834 <para>Optionally, you can request that the image be deleted. You will get 2835 appropriate diagnostics that the deletion failed, however the image will 2836 become unregistered in any case.</para> 4129 <para> 4130 Optionally, you can request that the image be deleted. You will 4131 get appropriate diagnostics that the deletion failed, however the 4132 image will become unregistered in any case. 4133 </para> 4134 2837 4135 </sect1> 2838 4136 2839 4137 <sect1 id="vboxmanage-storageattach"> 4138 2840 4139 <title>VBoxManage storageattach</title> 2841 4140 2842 <para>This command attaches/modifies/removes a storage medium connected to 2843 a storage controller that was previously added with the 2844 <computeroutput>storagectl</computeroutput> command (see the previous 2845 section). The syntax is as follows:</para> 2846 2847 <screen>VBoxManage storageattach <uuid|vmname> 4141 <para> 4142 This command attaches/modifies/removes a storage medium connected 4143 to a storage controller that was previously added with the 4144 <computeroutput>storagectl</computeroutput> command. The syntax is 4145 as follows: 4146 </para> 4147 4148 <screen>VBoxManage storageattach <uuid|vmname> 2848 4149 --storagectl <name> 2849 4150 [--port <number>] … … 2875 4176 [--intnet]</screen> 2876 4177 2877 <para>A number of parameters are commonly required; the ones at the end of 2878 the list are required only for iSCSI targets (see below).</para> 2879 2880 <para>The common parameters are:<glosslist> 2881 <glossentry> 2882 <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> 2883 2884 <glossdef> 2885 <para>The VM UUID or VM Name. Mandatory.</para> 2886 </glossdef> 2887 </glossentry> 2888 2889 <glossentry> 2890 <glossterm><computeroutput>--storagectl</computeroutput></glossterm> 2891 2892 <glossdef> 2893 <para>Name of the storage controller. Mandatory. The list of the 2894 storage controllers currently attached to a VM can be obtained 2895 with <computeroutput>VBoxManage showvminfo</computeroutput>; see 2896 <xref linkend="vboxmanage-showvminfo" />.</para> 2897 </glossdef> 2898 </glossentry> 2899 2900 <glossentry> 2901 <glossterm><computeroutput>--port</computeroutput></glossterm> 2902 2903 <glossdef> 2904 <para>The number of the storage controller's port which is to be 2905 modified. Mandatory, unless the storage controller has only a 2906 single port.</para> 2907 </glossdef> 2908 </glossentry> 2909 2910 <glossentry> 2911 <glossterm><computeroutput>--device</computeroutput></glossterm> 2912 2913 <glossdef> 2914 <para>The number of the port's device which is to be modified. 2915 Mandatory, unless the storage controller has only a single device 2916 per port.</para> 2917 </glossdef> 2918 </glossentry> 2919 2920 <glossentry> 2921 <glossterm><computeroutput>--type</computeroutput></glossterm> 2922 2923 <glossdef> 2924 <para>Define the type of the drive to which the medium is being 2925 attached/detached/modified. This argument can only be omitted if 2926 the type of medium can be determined from either the medium given 2927 with the <computeroutput>--medium</computeroutput> argument or 2928 from a previous medium attachment.</para> 2929 </glossdef> 2930 </glossentry> 2931 2932 <glossentry> 2933 <glossterm><computeroutput>--medium</computeroutput></glossterm> 2934 2935 <glossdef> 2936 <para>Specifies what is to be attached. The following values are 2937 supported:<itemizedlist> 2938 <listitem> 2939 <para>"none": Any existing device should be removed from the 2940 given slot.</para> 2941 </listitem> 2942 2943 <listitem> 2944 <para>"emptydrive": For a virtual DVD or floppy drive only, 2945 this makes the device slot behaves like a removeable drive 2946 into which no media has been inserted.</para> 2947 </listitem> 2948 2949 <listitem> 2950 <para>"additions": For a virtual DVD drive only, this 2951 attaches the <emphasis>VirtualBox Guest Additions</emphasis> 2952 image to the given device slot.</para> 2953 </listitem> 2954 2955 <listitem> 2956 <para>If a UUID is specified, it must be the UUID of a 2957 storage medium that is already known to VirtualBox (e.g. 2958 because it has been attached to another virtual machine). 2959 See <xref linkend="vboxmanage-list" /> for how to list known 2960 media. This medium is then attached to the given device 2961 slot.</para> 2962 </listitem> 2963 2964 <listitem> 2965 <para>If a filename is specified, it must be the full path 2966 of an existing disk image (ISO, RAW, VDI, VMDK or other), 2967 which is then attached to the given device slot.</para> 2968 </listitem> 2969 2970 <listitem> 2971 <para>"host:<drive>": For a virtual DVD or floppy 2972 drive only, this connects the given device slot to the 2973 specified DVD or floppy drive on the host computer.</para> 2974 </listitem> 2975 2976 <listitem> 2977 <para>"iscsi": For virtual hard disks only, this allows for 2978 specifying an iSCSI target. In this case, more parameters 2979 must be given; see below.</para> 2980 </listitem> 2981 </itemizedlist></para> 2982 2983 <para>Some of the above changes, in particular for removeable 4178 <para> 4179 A number of parameters are commonly required. The ones at the end 4180 of the list are required only for iSCSI targets, as described 4181 below. 4182 </para> 4183 4184 <para> 4185 The common parameters are: 4186 </para> 4187 4188 <variablelist> 4189 4190 <varlistentry> 4191 <term> 4192 <computeroutput>uuid|vmname</computeroutput> 4193 </term> 4194 4195 <listitem> 4196 <para> 4197 The VM UUID or VM Name. Mandatory. 4198 </para> 4199 </listitem> 4200 </varlistentry> 4201 4202 <varlistentry> 4203 <term> 4204 <computeroutput>--storagectl</computeroutput> 4205 </term> 4206 4207 <listitem> 4208 <para> 4209 Name of the storage controller. Mandatory. The list of the 4210 storage controllers currently attached to a VM can be 4211 obtained with <computeroutput>VBoxManage 4212 showvminfo</computeroutput>. See 4213 <xref linkend="vboxmanage-showvminfo" />. 4214 </para> 4215 </listitem> 4216 </varlistentry> 4217 4218 <varlistentry> 4219 <term> 4220 <computeroutput>--port</computeroutput> 4221 </term> 4222 4223 <listitem> 4224 <para> 4225 The number of the storage controller's port which is to be 4226 modified. Mandatory, unless the storage controller has only 4227 a single port. 4228 </para> 4229 </listitem> 4230 </varlistentry> 4231 4232 <varlistentry> 4233 <term> 4234 <computeroutput>--device</computeroutput> 4235 </term> 4236 4237 <listitem> 4238 <para> 4239 The number of the port's device which is to be modified. 4240 Mandatory, unless the storage controller has only a single 4241 device per port. 4242 </para> 4243 </listitem> 4244 </varlistentry> 4245 4246 <varlistentry> 4247 <term> 4248 <computeroutput>--type</computeroutput> 4249 </term> 4250 4251 <listitem> 4252 <para> 4253 Define the type of the drive to which the medium is being 4254 attached/detached/modified. This argument can only be 4255 omitted if the type of medium can be determined from either 4256 the medium given with the 4257 <computeroutput>--medium</computeroutput> argument or from a 4258 previous medium attachment. 4259 </para> 4260 </listitem> 4261 </varlistentry> 4262 4263 <varlistentry> 4264 <term> 4265 <computeroutput>--medium</computeroutput> 4266 </term> 4267 4268 <listitem> 4269 <para> 4270 Specifies what is to be attached. The following values are 4271 supported: 4272 </para> 4273 4274 <itemizedlist> 4275 4276 <listitem> 4277 <para> 4278 "none": Any existing device should be removed from the 4279 given slot. 4280 </para> 4281 </listitem> 4282 4283 <listitem> 4284 <para> 4285 "emptydrive": For a virtual DVD or floppy drive only, 4286 this makes the device slot behaves like a removeable 4287 drive into which no media has been inserted. 4288 </para> 4289 </listitem> 4290 4291 <listitem> 4292 <para> 4293 "additions": For a virtual DVD drive only, this attaches 4294 the <emphasis>VirtualBox Guest Additions</emphasis> 4295 image to the given device slot. 4296 </para> 4297 </listitem> 4298 4299 <listitem> 4300 <para> 4301 If a UUID is specified, it must be the UUID of a storage 4302 medium that is already known to VirtualBox (e.g. because 4303 it has been attached to another virtual machine). See 4304 <xref linkend="vboxmanage-list" /> for how to list known 4305 media. This medium is then attached to the given device 4306 slot. 4307 </para> 4308 </listitem> 4309 4310 <listitem> 4311 <para> 4312 If a filename is specified, it must be the full path of 4313 an existing disk image (ISO, RAW, VDI, VMDK or other), 4314 which is then attached to the given device slot. 4315 </para> 4316 </listitem> 4317 4318 <listitem> 4319 <para> 4320 "host:<drive>": For a virtual DVD or floppy drive 4321 only, this connects the given device slot to the 4322 specified DVD or floppy drive on the host computer. 4323 </para> 4324 </listitem> 4325 4326 <listitem> 4327 <para> 4328 "iscsi": For virtual hard disks only, this allows for 4329 specifying an iSCSI target. In this case, more 4330 parameters must be given. See the description below. 4331 </para> 4332 </listitem> 4333 4334 </itemizedlist> 4335 4336 <para> 4337 Some of the above changes, in particular for removeable 2984 4338 media (floppies and CDs/DVDs), can be effected while a VM is 2985 running. Others (device changes or changes in hard disk device 2986 slots) require the VM to be powered off.</para> 2987 </glossdef> 2988 </glossentry> 2989 2990 <glossentry> 2991 <glossterm><computeroutput>--mtype</computeroutput></glossterm> 2992 2993 <glossdef> 2994 <para>Defines how this medium behaves with respect to snapshots 2995 and write operations. See <xref linkend="hdimagewrites" /> for 2996 details.</para> 2997 </glossdef> 2998 </glossentry> 2999 3000 <glossentry> 3001 <glossterm><computeroutput>--comment</computeroutput></glossterm> 3002 3003 <glossdef> 3004 <para>Any description that you want to have stored with this 3005 medium (optional; for example, for an iSCSI target, "Big storage 3006 server downstairs"). This is purely descriptive and not needed for 3007 the medium to function correctly.</para> 3008 </glossdef> 3009 </glossentry> 3010 3011 <glossentry> 3012 <glossterm><computeroutput>--setuuid, --setparentuuid</computeroutput></glossterm> 3013 3014 <glossdef> 3015 <para>Modifies the UUID or parent UUID of a medium before 3016 attaching it to a VM. This is an expert option. Inappropriate use 3017 can make the medium unusable or lead to broken VM configurations 3018 if any other VM is referring to the same media already. The most 3019 frequently used variant is <code>--setuuid ""</code>, which assigns 3020 a new (random) UUID to an image. This is useful to resolve the 3021 duplicate UUID errors if one duplicated an image using file copy 3022 utilities.</para> 3023 </glossdef> 3024 </glossentry> 3025 3026 <glossentry> 3027 <glossterm><computeroutput>--passthrough</computeroutput></glossterm> 3028 3029 <glossdef> 3030 <para>For a virtual DVD drive only, you can enable DVD writing 3031 support (currently experimental; see <xref 3032 linkend="storage-cds" />).</para> 3033 </glossdef> 3034 </glossentry> 3035 3036 <glossentry> 3037 <glossterm><computeroutput>--tempeject</computeroutput></glossterm> 3038 3039 <glossdef> 3040 <para>For a virtual DVD drive only, you can configure the behavior 3041 for guest-triggered medium eject. If this is set to "on", the eject 3042 has only temporary effects. If the VM is powered off and restarted 3043 the originally configured medium will be still in the drive.</para> 3044 </glossdef> 3045 </glossentry> 3046 3047 <glossentry> 3048 <glossterm><computeroutput>--nonrotational</computeroutput></glossterm> 3049 3050 <glossdef> 3051 <para>This switch allows to enable the non-rotational flag for virtual 3052 hard disks. Some guests (i.e. Windows 7+) treat such disks like SSDs 3053 and don't perform disk fragmentation on such media.</para> 3054 </glossdef> 3055 </glossentry> 3056 3057 <glossentry> 3058 <glossterm><computeroutput>--discard</computeroutput></glossterm> 3059 <glossdef> 3060 <para>This switch enables the auto-discard feature for the virtual 3061 hard disks. This specifies that a VDI image will be shrunk in response 3062 to the trim command from the guest OS. The following requirements 3063 must be met: 3064 3065 <itemizedlist> 3066 <listitem> 3067 <para>The disk format must be VDI.</para> 3068 </listitem> 3069 <listitem> 3070 <para>The size of the cleared area must be at least 1MB.</para> 3071 </listitem> 3072 <listitem> 3073 <para>VirtualBox will only trim whole 1MB blocks. The VDIs themselves are organized 3074 into 1MB blocks, so this will only work if the space being TRIM-ed is at least 3075 a 1MB contiguous block at a 1MB boundary. On Windows, occasional defrag (with "defrag.exe /D"), 3076 or under Linux running "btrfs filesystem defrag" as a background cron job may be 3077 beneficial.</para> 3078 </listitem> 3079 </itemizedlist></para> 3080 3081 <para>Notes: the Guest OS must be configured to issue trim command, and typically this 3082 means that the guest OS is made to 'see' the disk as an SSD. Ext4 supports -o discard mount flag; 3083 OSX probably requires additional settings. Windows ought to automatically detect and 3084 support SSDs - at least in versions 7, 8 and 10. Linux exFAT driver (courtesy of Samsung) 3085 supports the trim command.</para> 3086 <para>It is unclear whether Microsoft's implementation of exFAT supports this feature, even 3087 though that file system was originally designed for flash.</para> 3088 <para>Alternatively, there are ad hoc methods to issue trim, e.g. Linux fstrim command, 3089 part of util-linux package. Earlier solutions required a user to zero out unused areas, 3090 e.g. using zerofree, and explicitly compact the disk - only possible when the VM is 3091 offline.</para> 3092 </glossdef> 3093 </glossentry> 3094 3095 <glossentry> 3096 <glossterm><computeroutput>--bandwidthgroup</computeroutput></glossterm> 3097 3098 <glossdef> 3099 <para>Sets the bandwidth group to use for the given device; see 3100 <xref linkend="storage-bandwidth-limit" />.</para> 3101 </glossdef> 3102 </glossentry> 3103 3104 <glossentry> 3105 <glossterm><computeroutput>--forceunmount</computeroutput></glossterm> 3106 3107 <glossdef> 3108 <para>For a virtual DVD or floppy drive only, this forcibly 3109 unmounts the DVD/CD/Floppy or mounts a new DVD/CD/Floppy even if 3110 the previous one is locked down by the guest for reading. Again, 3111 see <xref linkend="storage-cds" /> for details.</para> 3112 </glossdef> 3113 </glossentry> 3114 </glosslist></para> 3115 3116 <para>When "iscsi" is used with the 3117 <computeroutput>--medium</computeroutput> parameter for iSCSI support -- 3118 see <xref linkend="storage-iscsi" /> --, additional parameters must or can 3119 be used:<glosslist> 3120 <glossentry> 3121 <glossterm><computeroutput>--server</computeroutput></glossterm> 3122 3123 <glossdef> 3124 <para>The host name or IP address of the iSCSI target; 3125 required.</para> 3126 </glossdef> 3127 </glossentry> 3128 3129 <glossentry> 3130 <glossterm><computeroutput>--target</computeroutput></glossterm> 3131 3132 <glossdef> 3133 <para>Target name string. This is determined by the iSCSI target 3134 and used to identify the storage resource; required.</para> 3135 </glossdef> 3136 </glossentry> 3137 3138 <glossentry> 3139 <glossterm><computeroutput>--tport</computeroutput></glossterm> 3140 3141 <glossdef> 3142 <para>TCP/IP port number of the iSCSI service on the target. 3143 Optional.</para> 3144 </glossdef> 3145 </glossentry> 3146 3147 <glossentry> 3148 <glossterm><computeroutput>--lun</computeroutput></glossterm> 3149 3150 <glossdef> 3151 <para>Logical Unit Number of the target resource. Optional. 3152 Often, this value is zero.</para> 3153 </glossdef> 3154 </glossentry> 3155 3156 <glossentry> 3157 <glossterm><computeroutput>--encodedlun</computeroutput></glossterm> 3158 3159 <glossdef> 3160 <para>Hex encoded Logical Unit Number of the target resource. Optional. 3161 Often, this value is zero.</para> 3162 </glossdef> 3163 </glossentry> 3164 3165 <glossentry> 3166 <glossterm><computeroutput>--username, --password, --passwordfile</computeroutput></glossterm> 3167 3168 <glossdef> 3169 <para>Username and password (initiator secret) for target 3170 authentication, if required. Optional.<note> 3171 <para>Username and password are stored without 3172 encryption (i.e. in clear text) in the XML machine 3173 configuration file if no settings password is provided. 3174 When a settings password was specified the first time, 3175 the password is stored encrypted. Alternatively to providing the password 3176 on the command line, a reference to a file containing the text 3177 can be provided instead via the passwordfile option.</para> 3178 </note></para> 3179 </glossdef> 3180 </glossentry> 3181 3182 <glossentry> 3183 <glossterm><computeroutput>--initiator</computeroutput></glossterm> 3184 3185 <glossdef> 3186 <para>iSCSI Initiator (optional). Note:</para> 3187 3188 <para>Microsoft iSCSI Initiator is a system, such as a server that attaches to an IP network and initiates requests and receives responses 3189 from an iSCSI target. The SAN components in Microsoft iSCSI Initiator are largely analogous to Fibre Channel SAN components, and 3190 they include the following:/</para> 3191 3192 <para>To transport blocks of iSCSI commands over the IP network, an iSCSI driver must be installed on the iSCSI host. 3193 An iSCSI driver is included with Microsoft iSCSI Initiator.</para> 3194 3195 <para>A gigabit Ethernet adapter that transmits 1000 megabits per second (Mbps) is recommended for the connection to an iSCSI target. Like 3196 standard 10/100 adapters, most gigabit adapters use a pre-existing Category 5 or Category 6E cable. Each port on the adapter is 3197 identified by a unique IP address.</para> 3198 3199 <para>An iSCSI target is any device that receives iSCSI commands. The device can be an end node, such as a storage device, or it can be an 3200 intermediate device, such as a network bridge between IP and Fibre Channel devices. Each port on the storage array controller or network 3201 bridge is identified by one or more IP addresses</para> 3202 </glossdef> 3203 </glossentry> 3204 3205 <glossentry> 3206 <glossterm><computeroutput>--intnet</computeroutput></glossterm> 3207 3208 <glossdef> 3209 <para>If specified, connect to the iSCSI target via Internal 3210 Networking. This needs further configuration which is described in 3211 <xref linkend="iscsi-intnet" />.</para> 3212 </glossdef> 3213 </glossentry> 3214 </glosslist></para> 4339 running. Others, such as device changes or changes in hard 4340 disk device slots, require the VM to be powered off. 4341 </para> 4342 </listitem> 4343 </varlistentry> 4344 4345 <varlistentry> 4346 <term> 4347 <computeroutput>--mtype</computeroutput> 4348 </term> 4349 4350 <listitem> 4351 <para> 4352 Defines how this medium behaves with respect to snapshots 4353 and write operations. See <xref linkend="hdimagewrites" /> 4354 for details. 4355 </para> 4356 </listitem> 4357 </varlistentry> 4358 4359 <varlistentry> 4360 <term> 4361 <computeroutput>--comment</computeroutput> 4362 </term> 4363 4364 <listitem> 4365 <para> 4366 An optional description that you want to have stored with 4367 this medium. For example, for an iSCSI target, "Big storage 4368 server downstairs". This is purely descriptive and not 4369 needed for the medium to function correctly. 4370 </para> 4371 </listitem> 4372 </varlistentry> 4373 4374 <varlistentry> 4375 <term> 4376 <computeroutput>--setuuid, --setparentuuid</computeroutput> 4377 </term> 4378 4379 <listitem> 4380 <para> 4381 Modifies the UUID or parent UUID of a medium before 4382 attaching it to a VM. This is an expert option. 4383 Inappropriate use can make the medium unusable or lead to 4384 broken VM configurations if any other VM is referring to the 4385 same media already. The most frequently used variant is 4386 <code>--setuuid ""</code>, which assigns a new (random) UUID 4387 to an image. This is useful to resolve the duplicate UUID 4388 errors if one duplicated an image using file copy utilities. 4389 </para> 4390 </listitem> 4391 </varlistentry> 4392 4393 <varlistentry> 4394 <term> 4395 <computeroutput>--passthrough</computeroutput> 4396 </term> 4397 4398 <listitem> 4399 <para> 4400 For a virtual DVD drive only, you can enable DVD writing 4401 support. This feature is currently experimental, see 4402 <xref 4403 linkend="storage-cds" />. 4404 </para> 4405 </listitem> 4406 </varlistentry> 4407 4408 <varlistentry> 4409 <term> 4410 <computeroutput>--tempeject</computeroutput> 4411 </term> 4412 4413 <listitem> 4414 <para> 4415 For a virtual DVD drive only, you can configure the behavior 4416 for guest-triggered medium eject. If this is set to "on", 4417 the eject has only temporary effects. If the VM is powered 4418 off and restarted the originally configured medium will be 4419 still in the drive. 4420 </para> 4421 </listitem> 4422 </varlistentry> 4423 4424 <varlistentry> 4425 <term> 4426 <computeroutput>--nonrotational</computeroutput> 4427 </term> 4428 4429 <listitem> 4430 <para> 4431 This switch allows to enable the non-rotational flag for 4432 virtual hard disks. Some guests (i.e. Windows 7+) treat such 4433 disks like SSDs and do not perform disk fragmentation on 4434 such media. 4435 </para> 4436 </listitem> 4437 </varlistentry> 4438 4439 <varlistentry> 4440 <term> 4441 <computeroutput>--discard</computeroutput> 4442 </term> 4443 4444 <listitem> 4445 <para> 4446 This switch enables the auto-discard feature for the virtual 4447 hard disks. This specifies that a VDI image will be shrunk 4448 in response to the trim command from the guest OS. The 4449 following requirements must be met: 4450 </para> 4451 4452 <itemizedlist> 4453 4454 <listitem> 4455 <para> 4456 The disk format must be VDI. 4457 </para> 4458 </listitem> 4459 4460 <listitem> 4461 <para> 4462 The size of the cleared area must be at least 1MB. 4463 </para> 4464 </listitem> 4465 4466 <listitem> 4467 <para> 4468 VirtualBox will only trim whole 1 MB blocks. The VDIs 4469 themselves are organized into 1 MB blocks, so this will 4470 only work if the space being TRIM-ed is at least a 1 MB 4471 contiguous block at a 1 MB boundary. On Windows, 4472 occasional defrag (with "defrag.exe /D"), or under Linux 4473 running "btrfs filesystem defrag" as a background cron 4474 job may be beneficial. 4475 </para> 4476 </listitem> 4477 4478 </itemizedlist> 4479 4480 <para> 4481 Notes: the Guest OS must be configured to issue trim 4482 command, and typically this means that the guest OS is made 4483 to 'see' the disk as an SSD. Ext4 supports -o discard mount 4484 flag; OSX probably requires additional settings. Windows 4485 ought to automatically detect and support SSDs - at least in 4486 versions 7, 8 and 10. Linux exFAT driver (courtesy of 4487 Samsung) supports the trim command. 4488 </para> 4489 4490 <para> 4491 It is unclear whether Microsoft's implementation of exFAT 4492 supports this feature, even though that file system was 4493 originally designed for flash. 4494 </para> 4495 4496 <para> 4497 Alternatively, there are ad hoc methods to issue trim, e.g. 4498 Linux fstrim command, part of util-linux package. Earlier 4499 solutions required a user to zero out unused areas, e.g. 4500 using zerofree, and explicitly compact the disk - only 4501 possible when the VM is offline. 4502 </para> 4503 </listitem> 4504 </varlistentry> 4505 4506 <varlistentry> 4507 <term> 4508 <computeroutput>--bandwidthgroup</computeroutput> 4509 </term> 4510 4511 <listitem> 4512 <para> 4513 Sets the bandwidth group to use for the given device. See 4514 <xref linkend="storage-bandwidth-limit" />. 4515 </para> 4516 </listitem> 4517 </varlistentry> 4518 4519 <varlistentry> 4520 <term> 4521 <computeroutput>--forceunmount</computeroutput> 4522 </term> 4523 4524 <listitem> 4525 <para> 4526 For a virtual DVD or floppy drive only, this forcibly 4527 unmounts the DVD/CD/Floppy or mounts a new DVD/CD/Floppy 4528 even if the previous one is locked down by the guest for 4529 reading. Again, see <xref linkend="storage-cds" /> for 4530 details. 4531 </para> 4532 </listitem> 4533 </varlistentry> 4534 4535 </variablelist> 4536 4537 <para> 4538 When "iscsi" is used with the 4539 <computeroutput>--medium</computeroutput> parameter for iSCSI 4540 support, additional parameters must or can be used. See also 4541 <xref linkend="storage-iscsi" />. 4542 </para> 4543 4544 <variablelist> 4545 4546 <varlistentry> 4547 <term> 4548 <computeroutput>--server</computeroutput> 4549 </term> 4550 4551 <listitem> 4552 <para> 4553 The host name or IP address of the iSCSI target; required. 4554 </para> 4555 </listitem> 4556 </varlistentry> 4557 4558 <varlistentry> 4559 <term> 4560 <computeroutput>--target</computeroutput> 4561 </term> 4562 4563 <listitem> 4564 <para> 4565 Target name string. This is determined by the iSCSI target 4566 and used to identify the storage resource; required. 4567 </para> 4568 </listitem> 4569 </varlistentry> 4570 4571 <varlistentry> 4572 <term> 4573 <computeroutput>--tport</computeroutput> 4574 </term> 4575 4576 <listitem> 4577 <para> 4578 TCP/IP port number of the iSCSI service on the target. 4579 Optional. 4580 </para> 4581 </listitem> 4582 </varlistentry> 4583 4584 <varlistentry> 4585 <term> 4586 <computeroutput>--lun</computeroutput> 4587 </term> 4588 4589 <listitem> 4590 <para> 4591 Logical Unit Number of the target resource. Optional. Often, 4592 this value is zero. 4593 </para> 4594 </listitem> 4595 </varlistentry> 4596 4597 <varlistentry> 4598 <term> 4599 <computeroutput>--encodedlun</computeroutput> 4600 </term> 4601 4602 <listitem> 4603 <para> 4604 Hex encoded Logical Unit Number of the target resource. 4605 Optional. Often, this value is zero. 4606 </para> 4607 </listitem> 4608 </varlistentry> 4609 4610 <varlistentry> 4611 <term> 4612 <computeroutput>--username, --password, 4613 --passwordfile</computeroutput> 4614 </term> 4615 4616 <listitem> 4617 <para> 4618 Username and password (initiator secret) for target 4619 authentication, if required. Optional. 4620 4621 <note> 4622 <para> 4623 Username and password are stored without encryption, in 4624 clear text, in the XML machine configuration file if no 4625 settings password is provided. When a settings password 4626 was specified the first time, the password is stored 4627 encrypted. Alternatively to providing the password on 4628 the command line, a reference to a file containing the 4629 text can be provided instead via the passwordfile 4630 option. 4631 </para> 4632 </note> 4633 </para> 4634 </listitem> 4635 </varlistentry> 4636 4637 <varlistentry> 4638 <term> 4639 <computeroutput>--initiator</computeroutput> 4640 </term> 4641 4642 <listitem> 4643 <para> 4644 iSCSI Initiator (optional). 4645 </para> 4646 4647 <para> 4648 Note: Microsoft iSCSI Initiator is a system, such as a 4649 server that attaches to an IP network and initiates requests 4650 and receives responses from an iSCSI target. The SAN 4651 components in Microsoft iSCSI Initiator are largely 4652 analogous to Fibre Channel SAN components, and they include 4653 the following: 4654 </para> 4655 4656 <para> 4657 To transport blocks of iSCSI commands over the IP network, 4658 an iSCSI driver must be installed on the iSCSI host. An 4659 iSCSI driver is included with Microsoft iSCSI Initiator. 4660 </para> 4661 4662 <para> 4663 A gigabit Ethernet adapter that transmits 1000 megabits per 4664 second (Mbps) is recommended for the connection to an iSCSI 4665 target. Like standard 10/100 adapters, most gigabit adapters 4666 use a pre-existing Category 5 or Category 6E cable. Each 4667 port on the adapter is identified by a unique IP address. 4668 </para> 4669 4670 <para> 4671 An iSCSI target is any device that receives iSCSI commands. 4672 The device can be an end node, such as a storage device, or 4673 it can be an intermediate device, such as a network bridge 4674 between IP and Fibre Channel devices. Each port on the 4675 storage array controller or network bridge is identified by 4676 one or more IP addresses 4677 </para> 4678 </listitem> 4679 </varlistentry> 4680 4681 <varlistentry> 4682 <term> 4683 <computeroutput>--intnet</computeroutput> 4684 </term> 4685 4686 <listitem> 4687 <para> 4688 If specified, connect to the iSCSI target via Internal 4689 Networking. This needs further configuration, see 4690 <xref linkend="iscsi-intnet" />. 4691 </para> 4692 </listitem> 4693 </varlistentry> 4694 4695 </variablelist> 4696 3215 4697 </sect1> 3216 4698 3217 4699 <sect1 id="vboxmanage-storagectl"> 4700 3218 4701 <title>VBoxManage storagectl</title> 3219 4702 3220 <para>This command attaches/modifies/removes a storage controller. After 3221 this, virtual media can be attached to the controller with the 3222 <computeroutput>storageattach</computeroutput> command (see the next 3223 section).</para> 3224 3225 <para>The syntax is as follows:</para> 3226 3227 <screen>VBoxManage storagectl <uuid|vmname> 4703 <para> 4704 This command attaches/modifies/removes a storage controller. After 4705 this, virtual media can be attached to the controller with the 4706 <computeroutput>storageattach</computeroutput> command . 4707 </para> 4708 4709 <para> 4710 The syntax is as follows: 4711 </para> 4712 4713 <screen>VBoxManage storagectl <uuid|vmname> 3228 4714 --name <name> 3229 4715 [--add ide|sata|scsi|floppy|sas|usb|pcie] … … 3237 4723 [--remove]</screen> 3238 4724 3239 <para>where the parameters mean: <glosslist> 3240 <glossentry> 3241 <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> 3242 3243 <glossdef> 3244 <para>The VM UUID or VM Name. Mandatory.</para> 3245 </glossdef> 3246 </glossentry> 3247 3248 <glossentry> 3249 <glossterm><computeroutput>--name</computeroutput></glossterm> 3250 3251 <glossdef> 3252 <para>Specifies the name of the storage controller. Mandatory.</para> 3253 </glossdef> 3254 </glossentry> 3255 3256 <glossentry> 3257 <glossterm><computeroutput>--add</computeroutput></glossterm> 3258 3259 <glossdef> 3260 <para>Specifies the type of the system bus to which the storage 3261 controller must be connected.</para> 3262 </glossdef> 3263 </glossentry> 3264 3265 <glossentry> 3266 <glossterm><computeroutput>--controller</computeroutput></glossterm> 3267 3268 <glossdef> 3269 <para>Enables a choice of chipset type being emulated for the 3270 given storage controller.</para> 3271 </glossdef> 3272 </glossentry> 3273 3274 <glossentry> 3275 <glossterm><computeroutput>--portcount</computeroutput></glossterm> 3276 3277 <glossdef> 3278 <para>This specifies the number of ports the storage controller should 3279 support.</para> 3280 </glossdef> 3281 </glossentry> 3282 3283 <glossentry> 3284 <glossterm><computeroutput>--hostiocache</computeroutput></glossterm> 3285 3286 <glossdef> 3287 <para>Configures the use of the host I/O cache for all disk images 3288 attached to this storage controller. For details, please see <xref 3289 linkend="iocaching" />.</para> 3290 </glossdef> 3291 </glossentry> 3292 3293 <glossentry> 3294 <glossterm><computeroutput>--bootable</computeroutput></glossterm> 3295 3296 <glossdef> 3297 <para>Specifies whether this controller is bootable.</para> 3298 </glossdef> 3299 </glossentry> 3300 3301 <glossentry> 3302 <glossterm><computeroutput>--rename</computeroutput></glossterm> 3303 3304 <glossdef> 3305 <para>Specifies a new name for the storage controller.</para> 3306 </glossdef> 3307 </glossentry> 3308 3309 <glossentry> 3310 <glossterm><computeroutput>--remove</computeroutput></glossterm> 3311 3312 <glossdef> 3313 <para>Removes the storage controller from the VM config.</para> 3314 </glossdef> 3315 </glossentry> 3316 </glosslist></para> 4725 <para> 4726 where the parameters mean: 4727 </para> 4728 4729 <variablelist> 4730 4731 <varlistentry> 4732 <term> 4733 <computeroutput>uuid|vmname</computeroutput> 4734 </term> 4735 4736 <listitem> 4737 <para> 4738 The VM UUID or VM Name. Mandatory. 4739 </para> 4740 </listitem> 4741 </varlistentry> 4742 4743 <varlistentry> 4744 <term> 4745 <computeroutput>--name</computeroutput> 4746 </term> 4747 4748 <listitem> 4749 <para> 4750 Specifies the name of the storage controller. Mandatory. 4751 </para> 4752 </listitem> 4753 </varlistentry> 4754 4755 <varlistentry> 4756 <term> 4757 <computeroutput>--add</computeroutput> 4758 </term> 4759 4760 <listitem> 4761 <para> 4762 Specifies the type of the system bus to which the storage 4763 controller must be connected. 4764 </para> 4765 </listitem> 4766 </varlistentry> 4767 4768 <varlistentry> 4769 <term> 4770 <computeroutput>--controller</computeroutput> 4771 </term> 4772 4773 <listitem> 4774 <para> 4775 Enables a choice of chipset type being emulated for the 4776 given storage controller. 4777 </para> 4778 </listitem> 4779 </varlistentry> 4780 4781 <varlistentry> 4782 <term> 4783 <computeroutput>--portcount</computeroutput> 4784 </term> 4785 4786 <listitem> 4787 <para> 4788 This specifies the number of ports the storage controller 4789 should support. 4790 </para> 4791 </listitem> 4792 </varlistentry> 4793 4794 <varlistentry> 4795 <term> 4796 <computeroutput>--hostiocache</computeroutput> 4797 </term> 4798 4799 <listitem> 4800 <para> 4801 Configures the use of the host I/O cache for all disk images 4802 attached to this storage controller. See 4803 <xref 4804 linkend="iocaching" />. 4805 </para> 4806 </listitem> 4807 </varlistentry> 4808 4809 <varlistentry> 4810 <term> 4811 <computeroutput>--bootable</computeroutput> 4812 </term> 4813 4814 <listitem> 4815 <para> 4816 Specifies whether this controller is bootable. 4817 </para> 4818 </listitem> 4819 </varlistentry> 4820 4821 <varlistentry> 4822 <term> 4823 <computeroutput>--rename</computeroutput> 4824 </term> 4825 4826 <listitem> 4827 <para> 4828 Specifies a new name for the storage controller. 4829 </para> 4830 </listitem> 4831 </varlistentry> 4832 4833 <varlistentry> 4834 <term> 4835 <computeroutput>--remove</computeroutput> 4836 </term> 4837 4838 <listitem> 4839 <para> 4840 Removes the storage controller from the VM config. 4841 </para> 4842 </listitem> 4843 </varlistentry> 4844 4845 </variablelist> 4846 3317 4847 </sect1> 3318 4848 3319 <sect1> 4849 <sect1 id="vboxmanage-bandwidthctl"> 4850 3320 4851 <title>VBoxManage bandwidthctl</title> 3321 4852 3322 <para>This command creates/deletes/modifies/shows bandwidth groups of the given 3323 virtual machine: 3324 <screen>VBoxManage bandwidthctl <uuid|vmname> 3325 add <name> --type disk|network --limit <megabytes per second>[k|m|g|K|M|G] | 3326 set <name> --limit <megabytes per second>[k|m|g|K|M|G] | 4853 <para> 4854 This command creates/deletes/modifies/shows bandwidth groups of 4855 the given virtual machine: 4856 4857 <screen>VBoxManage bandwidthctl <uuid|vmname> 4858 add <name> --type disk|network --limit <MBps>[k|m|g|K|M|G] | 4859 set <name> --limit <MBps>[k|m|g|K|M|G] | 3327 4860 remove <name> | 3328 list [--machinereadable]</screen></para> 3329 3330 <para>The following subcommands are available:<itemizedlist> 3331 <listitem> 3332 <para><computeroutput>add</computeroutput>, creates a new bandwidth 3333 group of a given type.</para> 3334 </listitem> 3335 <listitem> 3336 <para><computeroutput>set</computeroutput>, modifies the limit for an 3337 existing bandwidth group.</para> 3338 </listitem> 3339 <listitem> 3340 <para><computeroutput>remove</computeroutput>, destroys a bandwidth 3341 group.</para> 3342 </listitem> 3343 <listitem> 3344 <para><computeroutput>list</computeroutput>, shows all bandwidth groups 3345 defined for the given VM. Use the <computeroutput>--machinereadable</computeroutput> 3346 option to produce the same output, but in machine readable format. This is of the 3347 form: name="value" on a line by line basis.</para> 3348 </listitem> 4861 list [--machinereadable]</screen> 4862 </para> 4863 4864 <para> 4865 The following subcommands are available: 4866 </para> 4867 4868 <itemizedlist> 4869 4870 <listitem> 4871 <para> 4872 <computeroutput>add</computeroutput>, creates a new bandwidth 4873 group of a given type. 4874 </para> 4875 </listitem> 4876 4877 <listitem> 4878 <para> 4879 <computeroutput>set</computeroutput>, modifies the limit for 4880 an existing bandwidth group. 4881 </para> 4882 </listitem> 4883 4884 <listitem> 4885 <para> 4886 <computeroutput>remove</computeroutput>, destroys a bandwidth 4887 group. 4888 </para> 4889 </listitem> 4890 4891 <listitem> 4892 <para> 4893 <computeroutput>list</computeroutput>, shows all bandwidth 4894 groups defined for the given VM. Use the 4895 <computeroutput>--machinereadable</computeroutput> option to 4896 produce the same output, but in machine readable format. This 4897 is of the form: name="value" on a line by line basis. 4898 </para> 4899 </listitem> 4900 3349 4901 </itemizedlist> 3350 </para> 3351 <para>The parameters mean:<glosslist> 3352 <glossentry> 3353 <glossterm><computeroutput>uuid|vmname</computeroutput></glossterm> 3354 3355 <glossdef> 3356 <para>The VM UUID or VM Name. Mandatory.</para> 3357 </glossdef> 3358 </glossentry> 3359 3360 <glossentry> 3361 <glossterm><computeroutput>--name</computeroutput></glossterm> 3362 3363 <glossdef> 3364 <para>Name of the bandwidth group. Mandatory.</para> 3365 </glossdef> 3366 </glossentry> 3367 3368 <glossentry> 3369 <glossterm><computeroutput>--type</computeroutput></glossterm> 3370 3371 <glossdef> 3372 <para>Type of the bandwidth group. Mandatory. Two types are 4902 4903 <para> 4904 The parameters mean the following: 4905 </para> 4906 4907 <variablelist> 4908 4909 <varlistentry> 4910 <term> 4911 <computeroutput>uuid|vmname</computeroutput> 4912 </term> 4913 4914 <listitem> 4915 <para> 4916 The VM UUID or VM Name. Mandatory. 4917 </para> 4918 </listitem> 4919 </varlistentry> 4920 4921 <varlistentry> 4922 <term> 4923 <computeroutput>--name</computeroutput> 4924 </term> 4925 4926 <listitem> 4927 <para> 4928 Name of the bandwidth group. Mandatory. 4929 </para> 4930 </listitem> 4931 </varlistentry> 4932 4933 <varlistentry> 4934 <term> 4935 <computeroutput>--type</computeroutput> 4936 </term> 4937 4938 <listitem> 4939 <para> 4940 Type of the bandwidth group. Mandatory. Two types are 3373 4941 supported: <computeroutput>disk</computeroutput> and 3374 4942 <computeroutput>network</computeroutput>. See 3375 4943 <xref linkend="storage-bandwidth-limit" /> or 3376 <xref linkend="network_bandwidth_limit" /> for the description of a 3377 particular type.</para> 3378 </glossdef> 3379 </glossentry> 3380 3381 <glossentry> 3382 <glossterm><computeroutput>--limit</computeroutput></glossterm> 3383 3384 <glossdef> 3385 <para>Specifies the limit for the given bandwidth group. This can be changed 3386 while the VM is running. The default unit is megabytes per 3387 second. The unit can be changed by specifying one of the 3388 following suffixes: <computeroutput>k</computeroutput> for kilobits/s, 4944 <xref linkend="network_bandwidth_limit" /> for the 4945 description of a particular type. 4946 </para> 4947 </listitem> 4948 </varlistentry> 4949 4950 <varlistentry> 4951 <term> 4952 <computeroutput>--limit</computeroutput> 4953 </term> 4954 4955 <listitem> 4956 <para> 4957 Specifies the limit for the given bandwidth group. This can 4958 be changed while the VM is running. The default unit is 4959 megabytes per second. The unit can be changed by specifying 4960 one of the following suffixes: 4961 <computeroutput>k</computeroutput> for kilobits/s, 3389 4962 <computeroutput>m</computeroutput> for megabits/s, 3390 4963 <computeroutput>g</computeroutput> for gigabits/s, 3391 4964 <computeroutput>K</computeroutput> for kilobytes/s, 3392 4965 <computeroutput>M</computeroutput> for megabytes/s, 3393 <computeroutput>G</computeroutput> for gigabytes/s.</para> 3394 </glossdef> 3395 </glossentry> 3396 </glosslist> 4966 <computeroutput>G</computeroutput> for gigabytes/s. 4967 </para> 4968 </listitem> 4969 </varlistentry> 4970 4971 </variablelist> 4972 4973 <note> 4974 <para> 4975 The network bandwidth limits apply only to the traffic being 4976 sent by virtual machines. The traffic being received by VMs is 4977 unlimited. 4978 </para> 4979 </note> 4980 4981 <note> 4982 <para> 4983 To remove a bandwidth group it must not be referenced by any 4984 disks or adapters in the running VM. 4985 </para> 4986 </note> 4987 4988 </sect1> 4989 4990 <sect1 id="vboxmanage-showmediuminfo"> 4991 4992 <title>VBoxManage showmediuminfo</title> 4993 4994 <para> 4995 This command shows information about a medium, notably its size, 4996 its size on disk, its type and the virtual machines which use it. 4997 3397 4998 <note> 3398 <para>The network bandwidth limits apply only to the traffic being sent by 3399 virtual machines. The traffic being received by VMs is unlimited.</para> 4999 <para> 5000 For compatibility with earlier versions of VirtualBox, the 5001 "showvdiinfo" command is also supported and mapped internally 5002 to the "showmediuminfo" command. 5003 </para> 3400 5004 </note> 3401 <note> 3402 <para>To remove a bandwidth group it must not be referenced by any disks 3403 or adapters in the running VM.</para> 3404 </note> 3405 </para> 5005 </para> 5006 5007 <screen>VBoxManage showmediuminfo [disk|dvd|floppy] <uuid|filename></screen> 5008 5009 <para> 5010 The medium must be specified either by its UUID (if the medium is 5011 registered) or by its filename. Registered images can be listed by 5012 <computeroutput>VBoxManage list hdds</computeroutput>, 5013 <computeroutput>VBoxManage list dvds</computeroutput>, or 5014 <computeroutput>VBoxManage list floppies</computeroutput>, as 5015 appropriate. See <xref linkend="vboxmanage-list" />. 5016 </para> 5017 3406 5018 </sect1> 3407 5019 3408 <sect1>3409 <title>VBoxManage showmediuminfo</title>3410 3411 <para>This command shows information about a medium,3412 notably its size, its size on disk, its type and the virtual machines3413 which use it.<note>3414 <para>For compatibility with earlier versions of VirtualBox, the3415 "showvdiinfo" command is also supported and mapped internally to the3416 "showmediuminfo" command.</para>3417 </note></para>3418 3419 <screen>VBoxManage showmediuminfo [disk|dvd|floppy] <uuid|filename></screen>3420 3421 <para>The medium must be specified either by its UUID (if the medium3422 is registered) or by its filename. Registered images can be listed by3423 <computeroutput>VBoxManage list hdds</computeroutput>,3424 <computeroutput>VBoxManage list dvds</computeroutput>,3425 or <computeroutput>VBoxManage list floppies</computeroutput>, as appropriate.3426 (see <xref linkend="vboxmanage-list" />3427 for more information).</para>3428 </sect1>3429 3430 5020 <sect1 id="vboxmanage-createmedium"> 5021 3431 5022 <title>VBoxManage createmedium</title> 3432 5023 3433 <para>This command creates a new medium. The syntax is as follows:</para> 3434 3435 <screen>VBoxManage createmedium [disk|dvd|floppy] --filename <filename> 5024 <para> 5025 This command creates a new medium. The syntax is as follows: 5026 </para> 5027 5028 <screen>VBoxManage createmedium [disk|dvd|floppy] --filename <filename> 3436 5029 [--size <megabytes>|--sizebyte <bytes>] 3437 5030 [--diffparent <uuid>|<filename> … … 3439 5032 [--variant Standard,Fixed,Split2G,Stream,ESX]</screen> 3440 5033 3441 <para>where the parameters mean:<glosslist> 3442 <glossentry> 3443 <glossterm><computeroutput>--filename <filename></computeroutput></glossterm> 3444 3445 <glossdef> 3446 <para>Specifies a file name <filename> as an absolute path on the host file 3447 system. Mandatory.</para> 3448 </glossdef> 3449 </glossentry> 3450 3451 <glossentry> 3452 <glossterm><computeroutput>--size <megabytes></computeroutput></glossterm> 3453 3454 <glossdef> 3455 <para><megabytes> Specifies the image capacity, in 1 MB units. 3456 Optional.</para> 3457 </glossdef> 3458 </glossentry> 3459 3460 <glossentry> 3461 <glossterm><computeroutput>--diffparent <uuid>|<filename></computeroutput></glossterm> 3462 3463 <glossdef> 3464 <para>Specifies the differencing image parent, either as a UUID or 3465 by the absolute pathname of the file on the host file system. 3466 Useful for sharing a base box disk image among several VMs.</para> 3467 </glossdef> 3468 </glossentry> 3469 3470 <glossentry> 3471 <glossterm><computeroutput>--format VDI|VMDK|VHD</computeroutput></glossterm> 3472 3473 <glossdef> 3474 <para>Specifies the file format for the output file. Available 3475 options are VDI, VMDK, VHD. Default is VDI. Optional. </para> 3476 </glossdef> 3477 </glossentry> 3478 3479 <glossentry> 3480 <glossterm><computeroutput>--variant Standard,Fixed,Split2G,Stream,ESX</computeroutput></glossterm> 3481 3482 <glossdef> 3483 <para>Specifies any required file format variant(s) for the output file. It is a 3484 comma-separated list of variant flags. Not all combinations are supported, and specifying 3485 mutually incompatible flags results in an error message. Optional.</para> 3486 </glossdef> 3487 </glossentry> 3488 </glosslist> <note> 3489 <para>For compatibility with earlier versions of VirtualBox, the "createvdi" and "createhd" commands 3490 are also supported and mapped internally to the "createmedium" command.</para> 3491 </note></para> 5034 <para> 5035 where the parameters mean: 5036 </para> 5037 5038 <variablelist> 5039 5040 <varlistentry> 5041 <term> 5042 <computeroutput>--filename <filename></computeroutput> 5043 </term> 5044 5045 <listitem> 5046 <para> 5047 Specifies a file name <filename> as an absolute path 5048 on the host file system. Mandatory. 5049 </para> 5050 </listitem> 5051 </varlistentry> 5052 5053 <varlistentry> 5054 <term> 5055 <computeroutput>--size <megabytes></computeroutput> 5056 </term> 5057 5058 <listitem> 5059 <para> 5060 <megabytes> Specifies the image capacity, in 1 MB 5061 units. Optional. 5062 </para> 5063 </listitem> 5064 </varlistentry> 5065 5066 <varlistentry> 5067 <term> 5068 <computeroutput>--diffparent 5069 <uuid>|<filename></computeroutput> 5070 </term> 5071 5072 <listitem> 5073 <para> 5074 Specifies the differencing image parent, either as a UUID or 5075 by the absolute pathname of the file on the host file 5076 system. Useful for sharing a base box disk image among 5077 several VMs. 5078 </para> 5079 </listitem> 5080 </varlistentry> 5081 5082 <varlistentry> 5083 <term> 5084 <computeroutput>--format VDI|VMDK|VHD</computeroutput> 5085 </term> 5086 5087 <listitem> 5088 <para> 5089 Specifies the file format for the output file. Available 5090 options are VDI, VMDK, VHD. Default is VDI. Optional. 5091 </para> 5092 </listitem> 5093 </varlistentry> 5094 5095 <varlistentry> 5096 <term> 5097 <computeroutput>--variant 5098 Standard,Fixed,Split2G,Stream,ESX</computeroutput> 5099 </term> 5100 5101 <listitem> 5102 <para> 5103 Specifies any required file format variant(s) for the output 5104 file. It is a comma-separated list of variant flags. Not all 5105 combinations are supported, and specifying mutually 5106 incompatible flags results in an error message. Optional. 5107 </para> 5108 </listitem> 5109 </varlistentry> 5110 5111 </variablelist> 5112 5113 <note> 5114 <para> 5115 For compatibility with earlier versions of VirtualBox, the 5116 "createvdi" and "createhd" commands are also supported and 5117 mapped internally to the "createmedium" command. 5118 </para> 5119 </note> 5120 3492 5121 </sect1> 3493 5122 3494 5123 <sect1 id="vboxmanage-modifyvdi"> 5124 3495 5125 <title>VBoxManage modifymedium</title> 3496 5126 3497 <para>With the <computeroutput>modifymedium</computeroutput> command, you can 3498 change the characteristics of a disk image after it has been 3499 created:<screen>VBoxManage modifymedium [disk|dvd|floppy] <uuid|filename> 5127 <para> 5128 With the <computeroutput>modifymedium</computeroutput> command, 5129 you can change the characteristics of a disk image after it has 5130 been created: 5131 5132 <screen>VBoxManage modifymedium [disk|dvd|floppy] <uuid|filename> 3500 5133 [--type normal|writethrough|immutable|shareable| 3501 5134 readonly|multiattach] … … 3504 5137 [--compact] 3505 5138 [--resize <megabytes>|--resizebyte <bytes>] 3506 [--move <path></screen><note> 3507 <para>For compatibility with earlier versions of VirtualBox, the "modifyvdi" and "modifyhd" 3508 commands are also supported and mapped internally to the "modifymedium" command.</para> 3509 </note></para> 3510 3511 <para>The disk image to modify must be specified either by its UUID 3512 (if the medium is registered) or by its filename. Registered images 3513 can be listed by <computeroutput>VBoxManage list hdds</computeroutput> 3514 (see <xref linkend="vboxmanage-list" /> for more information). 3515 A filename must be specified as valid path, either as an absolute path 3516 or as a relative path starting from the current directory.</para> 3517 <para>The following options are available:<itemizedlist> 3518 <listitem> 3519 <para>With the <computeroutput>--type</computeroutput> argument, you 5139 [--move <path></screen> 5140 5141 <note> 5142 <para> 5143 For compatibility with earlier versions of VirtualBox, the 5144 "modifyvdi" and "modifyhd" commands are also supported and 5145 mapped internally to the "modifymedium" command. 5146 </para> 5147 </note> 5148 </para> 5149 5150 <para> 5151 The disk image to modify must be specified either by its UUID (if 5152 the medium is registered) or by its filename. Registered images 5153 can be listed by <computeroutput>VBoxManage list 5154 hdds</computeroutput>, see <xref linkend="vboxmanage-list" />. A 5155 filename must be specified as a valid path, either as an absolute 5156 path or as a relative path starting from the current directory. 5157 </para> 5158 5159 <para> 5160 The following options are available: 5161 </para> 5162 5163 <itemizedlist> 5164 5165 <listitem> 5166 <para> 5167 With the <computeroutput>--type</computeroutput> argument, you 3520 5168 can change the type of an existing image between the normal, 3521 immutable, write-through and other modes; see <xref 3522 linkend="hdimagewrites" /> for details.</para> 3523 </listitem> 3524 3525 <listitem> 3526 <para>For immutable (differencing) hard disks only, the 5169 immutable, write-through and other modes. See 5170 <xref 5171 linkend="hdimagewrites" />. 5172 </para> 5173 </listitem> 5174 5175 <listitem> 5176 <para> 5177 For immutable (differencing) hard disks only, the 3527 5178 <computeroutput>--autoreset on|off</computeroutput> option 3528 5179 determines whether the disk is automatically reset on every VM 3529 startup (again, see <xref linkend="hdimagewrites" />). The default 3530 is "on".</para> 3531 </listitem> 3532 3533 <listitem> 3534 <para>The <computeroutput>--compact</computeroutput> option 3535 can be used to compact disk images, i.e. remove blocks that only 3536 contains zeroes. This will shrink a dynamically allocated image 3537 again; it will reduce the <emphasis>physical</emphasis> size of the 3538 image without affecting the logical size of the virtual disk. 3539 Compaction works both for base images and for diff images created as 3540 part of a snapshot.</para> 3541 3542 <para>For this operation to be effective, it is required that free 5180 startup, see <xref linkend="hdimagewrites" />. The default is 5181 "on". 5182 </para> 5183 </listitem> 5184 5185 <listitem> 5186 <para> 5187 The <computeroutput>--compact</computeroutput> option can be 5188 used to compact disk images, i.e. remove blocks that only 5189 contains zeroes. This will shrink a dynamically allocated 5190 image again; it will reduce the <emphasis>physical</emphasis> 5191 size of the image without affecting the logical size of the 5192 virtual disk. Compaction works both for base images and for 5193 diff images created as part of a snapshot. 5194 </para> 5195 5196 <para> 5197 For this operation to be effective, it is required that free 3543 5198 space in the guest system first be zeroed out using a suitable 3544 5199 software tool. For Windows guests, you can use the 3545 <computeroutput>sdelete</computeroutput> tool provided by Microsoft. 3546 Execute <computeroutput>sdelete -z</computeroutput> in the guest to 3547 zero the free disk space before compressing the virtual disk 3548 image. For Linux, use the <code>zerofree</code> utility which 3549 supports ext2/ext3 filesystems. For Mac OS X guests, use the 3550 <code>diskutil secureErase freespace 0 /</code> command line 3551 from an elevated Terminal.</para> 3552 3553 <para>Please note that compacting is currently only available for 3554 VDI images. A similar effect can be achieved by zeroing out free 3555 blocks and then cloning the disk to any other dynamically allocated 3556 format. You can use this workaround until compacting is also 3557 supported for disk formats other than VDI.</para> 3558 </listitem> 3559 3560 <listitem> 3561 <para>The <computeroutput>--resize x</computeroutput> option (where x 3562 is the desired new total space in <emphasis role="bold">megabytes</emphasis>) 3563 allows you to change the capacity of an existing image; this adjusts the 3564 <emphasis>logical</emphasis> size of a virtual disk without affecting 3565 the physical size much.<footnote> 3566 <para>Image resizing was added with VirtualBox 4.0.</para> 3567 </footnote> This currently works only for VDI and VHD formats, and only 3568 for the dynamically allocated variants, and can only be used to expand 3569 (not shrink) the capacity. 3570 For example, if you originally created a 10G disk which is now full, 3571 you can use the <computeroutput>--resize 15360</computeroutput> 3572 command to change the capacity to 15G (15,360MB) without having to create a new 3573 image and copy all data from within a virtual machine. Note however that 3574 this only changes the drive capacity; you will typically next need to use 3575 a partition management tool inside the guest to adjust the main partition 3576 to fill the drive.</para><para>The <computeroutput>--resizebyte x</computeroutput> 3577 option does almost the same thing, except that x is expressed in bytes 3578 instead of megabytes.</para> 3579 </listitem> 3580 3581 <listitem> 3582 <para>The <computeroutput>--move <path></computeroutput> option 3583 can be used to relocate a medium to a different location <path> on the 3584 host file system. The path can be either relative to the current directory or 3585 absolute.</para> 3586 </listitem> 3587 </itemizedlist></para> 5200 <computeroutput>sdelete</computeroutput> tool provided by 5201 Microsoft. Execute <computeroutput>sdelete -z</computeroutput> 5202 in the guest to zero the free disk space before compressing 5203 the virtual disk image. For Linux, use the 5204 <code>zerofree</code> utility which supports ext2/ext3 5205 filesystems. For Mac OS X guests, use the <code>diskutil 5206 secureErase freespace 0 /</code> command line from an elevated 5207 Terminal. 5208 </para> 5209 5210 <para> 5211 Please note that compacting is currently only available for 5212 VDI images. A similar effect can be achieved by zeroing out 5213 free blocks and then cloning the disk to any other dynamically 5214 allocated format. You can use this workaround until compacting 5215 is also supported for disk formats other than VDI. 5216 </para> 5217 </listitem> 5218 5219 <listitem> 5220 <para> 5221 The <computeroutput>--resize x</computeroutput> option, where 5222 x is the desired new total space in 5223 <emphasis role="bold">megabytes</emphasis> enables you to 5224 change the capacity of an existing image. This adjusts the 5225 <emphasis>logical</emphasis> size of a virtual disk without 5226 affecting the physical size much. 5227 5228 <footnote> 5229 5230 <para> 5231 Image resizing was added with VirtualBox 4.0. 5232 </para> 5233 5234 </footnote> 5235 5236 This currently works only for VDI and VHD formats, and only 5237 for the dynamically allocated variants, and can only be used 5238 to expand (not shrink) the capacity. For example, if you 5239 originally created a 10 GB disk which is now full, you can use 5240 the <computeroutput>--resize 15360</computeroutput> command to 5241 change the capacity to 15 GB (15,360 MB) without having to 5242 create a new image and copy all data from within a virtual 5243 machine. Note however that this only changes the drive 5244 capacity. You will typically next need to use a partition 5245 management tool inside the guest to adjust the main partition 5246 to fill the drive. 5247 </para> 5248 5249 <para> 5250 The <computeroutput>--resizebyte x</computeroutput> option 5251 does almost the same thing, except that x is expressed in 5252 bytes instead of megabytes. 5253 </para> 5254 </listitem> 5255 5256 <listitem> 5257 <para> 5258 The <computeroutput>--move <path></computeroutput> 5259 option can be used to relocate a medium to a different 5260 location <path> on the host file system. The path can be 5261 either relative to the current directory or absolute. 5262 </para> 5263 </listitem> 5264 5265 </itemizedlist> 5266 3588 5267 </sect1> 3589 5268 3590 5269 <sect1 id="vboxmanage-clonevdi"> 5270 3591 5271 <title>VBoxManage clonemedium</title> 3592 5272 3593 <para>This command duplicates a virtual disk/DVD/floppy medium to a 3594 new medium (usually an image file) with a new unique identifier (UUID). 3595 The new image can be transferred to another host system or imported into 3596 VirtualBox again using the Virtual Media Manager; see <xref linkend="vdis" /> 3597 and <xref linkend="cloningvdis" />. The syntax is as follows:</para> 3598 3599 <screen>VBoxManage clonemedium [disk|dvd|floppy] <uuid|inputfile> <uuid|outputfile> 5273 <para> 5274 This command duplicates a virtual disk/DVD/floppy medium to a new 5275 medium, usually an image file, with a new unique identifier 5276 (UUID). The new image can be transferred to another host system or 5277 reimported into VirtualBox using the Virtual Media Manager. See 5278 <xref linkend="vdis" /> and <xref linkend="cloningvdis" />. The 5279 syntax is as follows: 5280 </para> 5281 5282 <screen>VBoxManage clonemedium [disk|dvd|floppy] <uuid|inputfile> <uuid|outputfile> 3600 5283 3601 5284 [--format VDI|VMDK|VHD|RAW|<other>] … … 3603 5286 [--existing]</screen> 3604 5287 3605 3606 <para>The medium to clone as well as the target image must be described 3607 either by its UUIDs (if the mediums are registered) or by its filename. 3608 Registered images can be listed by <computeroutput>VBoxManage list hdds</computeroutput> 3609 (see <xref linkend="vboxmanage-list" /> for more information). 3610 A filename must be specified as valid path, either as an absolute path or 3611 as a relative path starting from the current directory.</para> 3612 <para>The following options are available:<glosslist> 3613 <glossentry> 3614 <glossterm><computeroutput>--format</computeroutput></glossterm> 3615 3616 <glossdef> 3617 <para>Allow to choose a file format for the output file different 3618 from the file format of the input file.</para> 3619 </glossdef> 3620 </glossentry> 3621 3622 <glossentry> 3623 <glossterm><computeroutput>--variant</computeroutput></glossterm> 3624 3625 <glossdef> 3626 <para>Allow to choose a file format variant for the output file. 5288 <para> 5289 The medium to clone as well as the target image must be described 5290 either by its UUIDs, if the mediums are registered, or by its 5291 filename. Registered images can be listed by 5292 <computeroutput>VBoxManage list hdds</computeroutput>. See 5293 <xref linkend="vboxmanage-list" />. A filename must be specified 5294 as valid path, either as an absolute path or as a relative path 5295 starting from the current directory. 5296 </para> 5297 5298 <para> 5299 The following options are available: 5300 </para> 5301 5302 <variablelist> 5303 5304 <varlistentry> 5305 <term> 5306 <computeroutput>--format</computeroutput> 5307 </term> 5308 5309 <listitem> 5310 <para> 5311 Allow to choose a file format for the output file different 5312 from the file format of the input file. 5313 </para> 5314 </listitem> 5315 </varlistentry> 5316 5317 <varlistentry> 5318 <term> 5319 <computeroutput>--variant</computeroutput> 5320 </term> 5321 5322 <listitem> 5323 <para> 5324 Allow to choose a file format variant for the output file. 3627 5325 It is a comma-separated list of variant flags. Not all 3628 combinations are supported, and specifying inconsistent flags will 3629 result in an error message.</para> 3630 </glossdef> 3631 </glossentry> 3632 3633 <glossentry> 3634 <glossterm><computeroutput>--existing</computeroutput></glossterm> 3635 3636 <glossdef> 3637 <para>Perform the clone operation to an already existing 3638 destination medium. Only the portion of the source medium which 3639 fits into the destination medium is copied. This means if the 3640 destination medium is smaller than the source only a part of it is 3641 copied, and if the destination medium is larger than the source 3642 the remaining part of the destination medium is unchanged.</para> 3643 </glossdef> 3644 </glossentry> 3645 </glosslist> <note> 3646 <para>For compatibility with earlier versions of VirtualBox, the 5326 combinations are supported, and specifying inconsistent 5327 flags will result in an error message. 5328 </para> 5329 </listitem> 5330 </varlistentry> 5331 5332 <varlistentry> 5333 <term> 5334 <computeroutput>--existing</computeroutput> 5335 </term> 5336 5337 <listitem> 5338 <para> 5339 Perform the clone operation to an already existing 5340 destination medium. Only the portion of the source medium 5341 which fits into the destination medium is copied. This means 5342 if the destination medium is smaller than the source only a 5343 part of it is copied, and if the destination medium is 5344 larger than the source the remaining part of the destination 5345 medium is unchanged. 5346 </para> 5347 </listitem> 5348 </varlistentry> 5349 5350 </variablelist> 5351 5352 <note> 5353 <para> 5354 For compatibility with earlier versions of VirtualBox, the 3647 5355 "clonevdi" and "clonehd" commands are still supported and mapped 3648 internally to the "clonehd disk" command.</para> 3649 </note></para> 5356 internally to the "clonehd disk" command. 5357 </para> 5358 </note> 5359 3650 5360 </sect1> 3651 5361 3652 5362 <sect1 id="vboxmanage-mediumproperty"> 5363 3653 5364 <title>VBoxManage mediumproperty</title> 3654 5365 3655 <para>This command sets up, gets or deletes a medium property. 3656 The syntax is as follows:</para> 3657 3658 <screen>VBoxManage mediumproperty [disk|dvd|floppy] set <uuid|filename> 5366 <para> 5367 This command sets up, gets or deletes a medium property. The 5368 syntax is as follows: 5369 </para> 5370 5371 <screen>VBoxManage mediumproperty [disk|dvd|floppy] set <uuid|filename> 3659 5372 <property> <value></screen> 3660 5373 3661 3662 <para><itemizedlist> 3663 <listitem> 3664 <para>Use <computeroutput><disk|dvd|floppy></computeroutput> to optionally specify 3665 the type of medium: disk (hard drive), dvd or floppy.</para> 3666 </listitem> 3667 3668 <listitem> 3669 <para>Use <computeroutput><uuid|filename></computeroutput> to supply either the uuid 3670 or absolute path of the medium/image to be encrypted.</para> 3671 </listitem> 3672 3673 <listitem> 3674 <para>Use <computeroutput><property></computeroutput> to supply the name of the 3675 property.</para> 3676 </listitem> 3677 3678 <listitem> 3679 <para>Use <computeroutput><value></computeroutput> to supply the property value.</para> 3680 </listitem> 3681 </itemizedlist></para> 3682 3683 <screen>VBoxManage mediumproperty [disk|dvd|floppy] get <uuid|filename> 5374 <itemizedlist> 5375 5376 <listitem> 5377 <para> 5378 Use <computeroutput><disk|dvd|floppy></computeroutput> 5379 to optionally specify the type of medium: disk (hard drive), 5380 dvd or floppy. 5381 </para> 5382 </listitem> 5383 5384 <listitem> 5385 <para> 5386 Use <computeroutput><uuid|filename></computeroutput> to 5387 supply either the uuid or absolute path of the medium/image to 5388 be encrypted. 5389 </para> 5390 </listitem> 5391 5392 <listitem> 5393 <para> 5394 Use <computeroutput><property></computeroutput> to 5395 supply the name of the property. 5396 </para> 5397 </listitem> 5398 5399 <listitem> 5400 <para> 5401 Use <computeroutput><value></computeroutput> to supply 5402 the property value. 5403 </para> 5404 </listitem> 5405 5406 </itemizedlist> 5407 5408 <screen>VBoxManage mediumproperty [disk|dvd|floppy] get <uuid|filename> 3684 5409 <property></screen> 3685 <para><itemizedlist> 3686 <listitem> 3687 <para>Use <computeroutput><disk|dvd|floppy></computeroutput> to optionally specify 3688 the type of medium: disk (hard drive), dvd or floppy.</para> 3689 </listitem> 3690 3691 <listitem> 3692 <para>Use <computeroutput><uuid|filename></computeroutput> to supply either the uuid 3693 or absolute path of the medium/image to be encrypted.</para> 3694 </listitem> 3695 3696 <listitem> 3697 <para>Use <computeroutput><property></computeroutput> to supply the name of the 3698 property.</para> 3699 </listitem> 3700 </itemizedlist></para> 3701 3702 <screen>VBoxManage mediumproperty [disk|dvd|floppy] delete <uuid|filename> 5410 5411 <itemizedlist> 5412 5413 <listitem> 5414 <para> 5415 Use <computeroutput><disk|dvd|floppy></computeroutput> 5416 to optionally specify the type of medium: disk (hard drive), 5417 dvd or floppy. 5418 </para> 5419 </listitem> 5420 5421 <listitem> 5422 <para> 5423 Use <computeroutput><uuid|filename></computeroutput> to 5424 supply either the uuid or absolute path of the medium/image to 5425 be encrypted. 5426 </para> 5427 </listitem> 5428 5429 <listitem> 5430 <para> 5431 Use <computeroutput><property></computeroutput> to 5432 supply the name of the property. 5433 </para> 5434 </listitem> 5435 5436 </itemizedlist> 5437 5438 <screen>VBoxManage mediumproperty [disk|dvd|floppy] delete <uuid|filename> 3703 5439 <property></screen> 3704 5440 3705 3706 <para><itemizedlist> 3707 <listitem> 3708 <para>Use <computeroutput><disk|dvd|floppy></computeroutput> to optionally specify 3709 the type of medium: disk (hard drive), dvd or floppy.</para> 3710 </listitem> 3711 3712 <listitem> 3713 <para>Use <computeroutput><uuid|filename></computeroutput> to supply either the uuid 3714 or absolute path of the medium/image.</para> 3715 </listitem> 3716 3717 <listitem> 3718 <para>Use <computeroutput><property></computeroutput> to supply the name of the 3719 property.</para> 3720 </listitem> 3721 </itemizedlist></para> 5441 <itemizedlist> 5442 5443 <listitem> 5444 <para> 5445 Use <computeroutput><disk|dvd|floppy></computeroutput> 5446 to optionally specify the type of medium: disk (hard drive), 5447 dvd or floppy. 5448 </para> 5449 </listitem> 5450 5451 <listitem> 5452 <para> 5453 Use <computeroutput><uuid|filename></computeroutput> to 5454 supply either the uuid or absolute path of the medium/image. 5455 </para> 5456 </listitem> 5457 5458 <listitem> 5459 <para> 5460 Use <computeroutput><property></computeroutput> to 5461 supply the name of the property. 5462 </para> 5463 </listitem> 5464 5465 </itemizedlist> 5466 3722 5467 </sect1> 3723 5468 3724 5469 <sect1 id="vboxmanage-encryptmedium"> 5470 3725 5471 <title>VBoxManage encryptmedium</title> 3726 5472 3727 <para>This command is used to create a DEK encrypted medium/image. 3728 See <xref linkend="diskencryption-encryption" />" for details.</para> 3729 3730 <para>The syntax is as follows:</para> 3731 3732 <screen>VBoxManage encryptmedium <uuid|filename> 5473 <para> 5474 This command is used to create a DEK encrypted medium/image. See 5475 <xref linkend="diskencryption-encryption" />. 5476 </para> 5477 5478 <para> 5479 The syntax is as follows: 5480 </para> 5481 5482 <screen>VBoxManage encryptmedium <uuid|filename> 3733 5483 [--newpassword <file|->] 3734 5484 [--oldpassword <file|->] … … 3736 5486 [--newpasswordid <password id>]</screen> 3737 5487 3738 <para><itemizedlist> 3739 <listitem> 3740 <para>use <computeroutput><uuid|filename></computeroutput> to supply the 3741 uuid or absolute path of the medium/image to be encrypted.</para> 3742 </listitem> 3743 3744 <listitem> 3745 <para>Use <computeroutput>--newpassword <file|-></computeroutput> to supply a new 3746 encryption password; either specify the absolute pathname of a password file on the host operating system, 3747 or <computeroutput>-</computeroutput> to prompt you for the password on the command line. 3748 Always use the <computeroutput>--newpasswordid</computeroutput> option with this option.</para> 3749 </listitem> 3750 3751 <listitem> 3752 <para>use <computeroutput>--oldpassword <file|-></computeroutput> to supply any old 3753 encryption password; either specify the absolute pathname of a password file on the host operating system, 3754 or <computeroutput>-</computeroutput> to prompt you for the old password on the command line.</para> 3755 3756 <para>Use this option to gain access to an encrypted medium/image to change its password using 3757 <computeroutput>--newpassword</computeroutput> and/or change its encryption using 3758 <computeroutput>--cipher</computeroutput>.</para> 3759 </listitem> 3760 3761 <listitem> 3762 <para>Use <computeroutput>--cipher <cipher></computeroutput> to specify the cipher to use for 3763 encryption; this can be either <computeroutput>AES-XTS128-PLAIN64</computeroutput> or 3764 <computeroutput>AES-AXTS256-PLAIN64</computeroutput>.</para> 3765 3766 <para>Use this option to change any existing encryption on the medium/image, or setup new encryption on 3767 it for the 1st time.</para> 3768 </listitem> 3769 3770 <listitem> 3771 <para>Use <computeroutput>--newpasswordid <password id></computeroutput> to supply the new password identifier. 3772 This can be freely chosen by the user, and is used for correct identification when supplying multiple 3773 passwords during VM startup.</para> 3774 3775 <para>If the user uses the same password when encrypting multiple images and also the same password identifier, the 3776 user needs to supply the password only once during VM startup.</para> 3777 </listitem> 3778 </itemizedlist></para> 5488 <itemizedlist> 5489 5490 <listitem> 5491 <para> 5492 use <computeroutput><uuid|filename></computeroutput> to 5493 supply the uuid or absolute path of the medium/image to be 5494 encrypted. 5495 </para> 5496 </listitem> 5497 5498 <listitem> 5499 <para> 5500 Use <computeroutput>--newpassword 5501 <file|-></computeroutput> to supply a new encryption 5502 password; either specify the absolute pathname of a password 5503 file on the host operating system, or 5504 <computeroutput>-</computeroutput> to prompt you for the 5505 password on the command line. Always use the 5506 <computeroutput>--newpasswordid</computeroutput> option with 5507 this option. 5508 </para> 5509 </listitem> 5510 5511 <listitem> 5512 <para> 5513 use <computeroutput>--oldpassword 5514 <file|-></computeroutput> to supply any old encryption 5515 password; either specify the absolute pathname of a password 5516 file on the host operating system, or 5517 <computeroutput>-</computeroutput> to prompt you for the old 5518 password on the command line. 5519 </para> 5520 5521 <para> 5522 Use this option to gain access to an encrypted medium/image to 5523 change its password using 5524 <computeroutput>--newpassword</computeroutput> and/or change 5525 its encryption using 5526 <computeroutput>--cipher</computeroutput>. 5527 </para> 5528 </listitem> 5529 5530 <listitem> 5531 <para> 5532 Use <computeroutput>--cipher <cipher></computeroutput> 5533 to specify the cipher to use for encryption; this can be 5534 either <computeroutput>AES-XTS128-PLAIN64</computeroutput> or 5535 <computeroutput>AES-AXTS256-PLAIN64</computeroutput>. 5536 </para> 5537 5538 <para> 5539 Use this option to change any existing encryption on the 5540 medium/image, or setup new encryption on it for the 1st time. 5541 </para> 5542 </listitem> 5543 5544 <listitem> 5545 <para> 5546 Use <computeroutput>--newpasswordid <password 5547 id></computeroutput> to supply the new password identifier. 5548 This can be freely chosen by the user, and is used for correct 5549 identification when supplying multiple passwords during VM 5550 startup. 5551 </para> 5552 5553 <para> 5554 If the user uses the same password when encrypting multiple 5555 images and also the same password identifier, the user needs 5556 to supply the password only once during VM startup. 5557 </para> 5558 </listitem> 5559 5560 </itemizedlist> 3779 5561 3780 5562 </sect1> … … 3784 5566 <title>VBoxManage checkmediumpwd</title> 3785 5567 3786 <para>This command is used to check the current encryption password on a DEK encrypted medium/image. 3787 See <xref linkend="diskencryption-encryption" />" for details.</para> 3788 3789 <para>The syntax is as follows:</para> 3790 3791 <screen>VBoxManage checkmediumpwd <uuid|filename> 5568 <para> 5569 This command is used to check the current encryption password on a 5570 DEK encrypted medium/image. See 5571 <xref linkend="diskencryption-encryption" />. 5572 </para> 5573 5574 <para> 5575 The syntax is as follows: 5576 </para> 5577 5578 <screen>VBoxManage checkmediumpwd <uuid|filename> 3792 5579 <pwd file|-></screen> 3793 <para><itemizedlist> 3794 <listitem> 3795 <para>Use <computeroutput><uuid|filename></computeroutput> to supply the uuid or absolute path of the 3796 medium/image to be checked.</para> 3797 </listitem> 3798 3799 <listitem> 3800 <para>Use <computeroutput><pwd file|-></computeroutput> to supply the password identifier to be checked. Either 3801 specify the absolute pathname of a password file on the host operating system, or <computeroutput>-</computeroutput> to 3802 prompt you for the password on the command line.</para> 3803 </listitem> 3804 </itemizedlist></para> 5580 5581 <itemizedlist> 5582 5583 <listitem> 5584 <para> 5585 Use <computeroutput><uuid|filename></computeroutput> to 5586 supply the uuid or absolute path of the medium/image to be 5587 checked. 5588 </para> 5589 </listitem> 5590 5591 <listitem> 5592 <para> 5593 Use <computeroutput><pwd file|-></computeroutput> to 5594 supply the password identifier to be checked. Either specify 5595 the absolute pathname of a password file on the host operating 5596 system, or <computeroutput>-</computeroutput> to prompt you 5597 for the password on the command line. 5598 </para> 5599 </listitem> 5600 5601 </itemizedlist> 3805 5602 3806 5603 </sect1> 3807 5604 3808 <sect1> 5605 <sect1 id="vboxmanage-convertfromraw"> 5606 3809 5607 <title>VBoxManage convertfromraw</title> 3810 5608 3811 <para>This command converts a raw disk image to a VirtualBox Disk Image 3812 (VDI) file. The syntax is as follows:</para> 3813 3814 <screen>VBoxManage convertfromraw <filename> <outputfile> 5609 <para> 5610 This command converts a raw disk image to a VirtualBox Disk Image 5611 (VDI) file. The syntax is as follows: 5612 </para> 5613 5614 <screen>VBoxManage convertfromraw <filename> <outputfile> 3815 5615 [--format VDI|VMDK|VHD] 3816 5616 [--variant Standard,Fixed,Split2G,Stream,ESX] … … 3821 5621 [--uuid <uuid>]</screen> 3822 5622 3823 <para>where the parameters mean:<glosslist> 3824 <glossentry> 3825 <glossterm><computeroutput>--bytes</computeroutput></glossterm> 3826 3827 <glossdef> 3828 <para>The size of the image file, in bytes, provided through 3829 stdin.</para> 3830 </glossdef> 3831 </glossentry> 3832 3833 <glossentry> 3834 <glossterm><computeroutput>--format</computeroutput></glossterm> 3835 3836 <glossdef> 3837 <para>Select the disk image format to create. Default is 3838 VDI. Other options are VMDK and VHD.</para> 3839 </glossdef> 3840 </glossentry> 3841 3842 <glossentry> 3843 <glossterm><computeroutput>--variant</computeroutput></glossterm> 3844 3845 <glossdef> 3846 <para>Allow to choose a file format variant for the output file. 5623 <para> 5624 where the parameters mean: 5625 </para> 5626 5627 <variablelist> 5628 5629 <varlistentry> 5630 <term> 5631 <computeroutput>--bytes</computeroutput> 5632 </term> 5633 5634 <listitem> 5635 <para> 5636 The size of the image file, in bytes, provided through 5637 stdin. 5638 </para> 5639 </listitem> 5640 </varlistentry> 5641 5642 <varlistentry> 5643 <term> 5644 <computeroutput>--format</computeroutput> 5645 </term> 5646 5647 <listitem> 5648 <para> 5649 Select the disk image format to create. Default is VDI. 5650 Other options are VMDK and VHD. 5651 </para> 5652 </listitem> 5653 </varlistentry> 5654 5655 <varlistentry> 5656 <term> 5657 <computeroutput>--variant</computeroutput> 5658 </term> 5659 5660 <listitem> 5661 <para> 5662 Allow to choose a file format variant for the output file. 3847 5663 It is a comma-separated list of variant flags. Not all 3848 combinations are supported, and specifying inconsistent flags will 3849 result in an error message.</para> 3850 </glossdef> 3851 </glossentry> 3852 3853 <glossentry> 3854 <glossterm><computeroutput>--uuid</computeroutput></glossterm> 3855 3856 <glossdef> 3857 <para>Allow to specifiy the UUID of the output file.</para> 3858 </glossdef> 3859 </glossentry> 3860 </glosslist> The second form forces VBoxManage to read the content for 3861 the disk image from standard input (useful for using that command in a 3862 pipe).</para> 3863 3864 <para><note> 3865 <para>For compatibility with earlier versions of VirtualBox, the 3866 "convertdd" command is also supported and mapped internally to the 3867 "convertfromraw" command.</para> 3868 </note></para> 5664 combinations are supported, and specifying inconsistent 5665 flags will result in an error message. 5666 </para> 5667 </listitem> 5668 </varlistentry> 5669 5670 <varlistentry> 5671 <term> 5672 <computeroutput>--uuid</computeroutput> 5673 </term> 5674 5675 <listitem> 5676 <para> 5677 Allow to specifiy the UUID of the output file. 5678 </para> 5679 </listitem> 5680 </varlistentry> 5681 5682 </variablelist> 5683 5684 <para> 5685 The second form forces VBoxManage to read the content for the disk 5686 image from standard input (useful for using that command in a 5687 pipe). 5688 </para> 5689 5690 <para> 5691 <note> 5692 <para> 5693 For compatibility with earlier versions of VirtualBox, the 5694 "convertdd" command is also supported and mapped internally to 5695 the "convertfromraw" command. 5696 </para> 5697 </note> 5698 </para> 5699 3869 5700 </sect1> 3870 5701 3871 <sect1> 5702 <sect1 id="vboxmanage-extradata"> 5703 3872 5704 <title>VBoxManage getextradata/setextradata</title> 3873 5705 3874 <para>These commands let you attach and retrieve string data to a virtual 3875 machine or to a VirtualBox configuration (by specifying 3876 <computeroutput>global</computeroutput> instead of a virtual machine 3877 name). You must specify a key (as a text string) to associate the data 3878 with, which you can later use to retrieve it. For example:</para> 3879 3880 <screen>VBoxManage setextradata Fedora5 installdate 2006.01.01 5706 <para> 5707 These commands let you attach and retrieve string data to a 5708 virtual machine or to a VirtualBox configuration, by specifying 5709 <computeroutput>global</computeroutput> instead of a virtual 5710 machine name. You must specify a key as a text string to associate 5711 the data with, which you can later use to retrieve it. For 5712 example: 5713 </para> 5714 5715 <screen>VBoxManage setextradata Fedora5 installdate 2006.01.01 3881 5716 VBoxManage setextradata SUSE10 installdate 2006.02.02</screen> 3882 5717 3883 <para>would associate the string "2006.01.01" with the key installdate for 3884 the virtual machine Fedora5, and "2006.02.02" on the machine SUSE10. You 3885 could retrieve the information as follows:</para> 3886 3887 <screen>VBoxManage getextradata Fedora5 installdate</screen> 3888 3889 <para>which would return</para> 3890 3891 <screen>VirtualBox Command Line Management Interface Version @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@ 3892 (C) 2005-@VBOX_C_YEAR@ @VBOX_VENDOR@ 5718 <para> 5719 would associate the string "2006.01.01" with the key installdate 5720 for the virtual machine Fedora5, and "2006.02.02" on the machine 5721 SUSE10. You could retrieve the information as follows: 5722 </para> 5723 5724 <screen>VBoxManage getextradata Fedora5 installdate</screen> 5725 5726 <para> 5727 which would return 5728 </para> 5729 5730 <screen>VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable> 5731 (C) 2005-2018 Oracle Corporation 3893 5732 All rights reserved. 3894 5733 3895 5734 Value: 2006.01.01</screen> 3896 5735 3897 <para>You could retrieve the information for all keys as follows:</para> 3898 3899 <screen>VBoxManage getextradata Fedora5 enumerate</screen> 3900 3901 <para>To remove a key, the <computeroutput>setextradata</computeroutput> 3902 command must be run without specifying data (only the key), for example: 3903 </para> 3904 3905 <screen>VBoxManage setextradata Fedora5 installdate</screen> 5736 <para> 5737 You could retrieve the information for all keys as follows: 5738 </para> 5739 5740 <screen>VBoxManage getextradata Fedora5 enumerate</screen> 5741 5742 <para> 5743 To remove a key, the <computeroutput>setextradata</computeroutput> 5744 command must be run without specifying data, only the key. For 5745 example: 5746 </para> 5747 5748 <screen>VBoxManage setextradata Fedora5 installdate</screen> 3906 5749 3907 5750 </sect1> 3908 5751 3909 5752 <sect1 id="vboxmanage-setproperty"> 5753 3910 5754 <title>VBoxManage setproperty</title> 3911 5755 3912 <para>This command is used to change global settings which affect the 3913 entire VirtualBox installation. Some of these correspond to the settings 3914 in the "Global settings" dialog in the graphical user interface. The 3915 following properties are available:<glosslist> 3916 <glossentry> 3917 <glossterm><computeroutput>machinefolder</computeroutput></glossterm> 3918 <glossdef> 3919 <para>This specifies the default folder in which virtual machine 3920 definitions are kept; see <xref linkend="vboxconfigdata" /> for 3921 details.</para> 3922 </glossdef> 3923 </glossentry> 3924 3925 <glossentry> 3926 <glossterm><computeroutput>hwvirtexclusive</computeroutput></glossterm> 3927 <glossdef><para>This specifies whether VirtualBox will make exclusive use of 3928 the hardware virtualization extensions (Intel VT-x or AMD-V) of the 3929 host system's processor; see <xref linkend="hwvirt" />. If you wish to 3930 share these extensions with other hypervisors running at the same time, 3931 you must disable this setting. Doing so has negative performance implications. 3932 </para></glossdef> 3933 </glossentry> 3934 3935 <glossentry> 3936 <glossterm><computeroutput>vrdeauthlibrary</computeroutput></glossterm> 3937 3938 <glossdef> 3939 <para>This specifies which library to use when "external" 3940 authentication has been selected for a particular virtual machine; 3941 see <xref linkend="vbox-auth" /> for details.</para> 3942 </glossdef> 3943 </glossentry> 3944 3945 <glossentry> 3946 <glossterm><computeroutput>websrvauthlibrary</computeroutput></glossterm> 3947 3948 <glossdef> 3949 <para>This specifies which library the web service uses to 3950 authenticate users. For details about the VirtualBox web service, 3951 please refer to the separate VirtualBox SDK reference (see <xref 3952 linkend="VirtualBoxAPI" />).</para> 3953 </glossdef> 3954 </glossentry> 3955 3956 <glossentry> 3957 <glossterm><computeroutput>vrdeextpack</computeroutput></glossterm> 3958 3959 <glossdef> 3960 <para>This specifies which library implements the VirtualBox 3961 Remote Desktop Extension.</para> 3962 </glossdef> 3963 </glossentry> 3964 3965 <glossentry> 3966 <glossterm><computeroutput>loghistorycount</computeroutput></glossterm> 3967 3968 <glossdef> 3969 <para>This selects how many rotated (old) VM logs are kept.</para> 3970 </glossdef> 3971 </glossentry> 3972 3973 <glossentry> 3974 <glossterm><computeroutput>autostartdbpath</computeroutput></glossterm> 3975 3976 <glossdef> 3977 <para>This selects the path to the autostart database. See 3978 <xref linkend="autostart" />.</para> 3979 </glossdef> 3980 </glossentry> 3981 3982 <glossentry> 3983 <glossterm><computeroutput>defaultfrontend</computeroutput></glossterm> 3984 3985 <glossdef> 3986 <para>This selects the global default VM frontend setting. See 3987 <xref linkend="vboxmanage-startvm" />.</para> 3988 </glossdef> 3989 </glossentry> 3990 3991 <glossentry> 3992 <glossterm><computeroutput>logginglevel</computeroutput></glossterm> 3993 3994 <glossdef> 3995 <para>This configures the VBoxSVC release logging details.<footnote> 3996 <para><ulink url="http://www.virtualbox.org/wiki/VBoxLogging">http://www.virtualbox.org/wiki/VBoxLogging</ulink>.</para> 3997 </footnote> 3998 </para> 3999 </glossdef> 4000 </glossentry> 4001 </glosslist></para> 5756 <para> 5757 This command is used to change global settings which affect the 5758 entire VirtualBox installation. Some of these correspond to the 5759 settings in the "Global settings" dialog in the graphical user 5760 interface. The following properties are available: 5761 </para> 5762 5763 <variablelist> 5764 5765 <varlistentry> 5766 <term> 5767 <computeroutput>machinefolder</computeroutput> 5768 </term> 5769 5770 <listitem> 5771 <para> 5772 This specifies the default folder in which virtual machine 5773 definitions are kept. See <xref linkend="vboxconfigdata" />. 5774 </para> 5775 </listitem> 5776 </varlistentry> 5777 5778 <varlistentry> 5779 <term> 5780 <computeroutput>hwvirtexclusive</computeroutput> 5781 </term> 5782 5783 <listitem> 5784 <para> 5785 This specifies whether VirtualBox will make exclusive use of 5786 the hardware virtualization extensions (Intel VT-x or AMD-V) 5787 of the host system's processor. See 5788 <xref linkend="hwvirt" />. If you wish to share these 5789 extensions with other hypervisors running at the same time, 5790 you must disable this setting. Doing so has negative 5791 performance implications. 5792 </para> 5793 </listitem> 5794 </varlistentry> 5795 5796 <varlistentry> 5797 <term> 5798 <computeroutput>vrdeauthlibrary</computeroutput> 5799 </term> 5800 5801 <listitem> 5802 <para> 5803 This specifies which library to use when "external" 5804 authentication has been selected for a particular virtual 5805 machine. See <xref linkend="vbox-auth" />. 5806 </para> 5807 </listitem> 5808 </varlistentry> 5809 5810 <varlistentry> 5811 <term> 5812 <computeroutput>websrvauthlibrary</computeroutput> 5813 </term> 5814 5815 <listitem> 5816 <para> 5817 This specifies which library the web service uses to 5818 authenticate users. For details about the VirtualBox web 5819 service, please refer to the separate VirtualBox SDK 5820 reference. See <xref 5821 linkend="VirtualBoxAPI" />. 5822 </para> 5823 </listitem> 5824 </varlistentry> 5825 5826 <varlistentry> 5827 <term> 5828 <computeroutput>vrdeextpack</computeroutput> 5829 </term> 5830 5831 <listitem> 5832 <para> 5833 This specifies which library implements the VirtualBox 5834 Remote Desktop Extension. 5835 </para> 5836 </listitem> 5837 </varlistentry> 5838 5839 <varlistentry> 5840 <term> 5841 <computeroutput>loghistorycount</computeroutput> 5842 </term> 5843 5844 <listitem> 5845 <para> 5846 This selects how many rotated (old) VM logs are kept. 5847 </para> 5848 </listitem> 5849 </varlistentry> 5850 5851 <varlistentry> 5852 <term> 5853 <computeroutput>autostartdbpath</computeroutput> 5854 </term> 5855 5856 <listitem> 5857 <para> 5858 This selects the path to the autostart database. See 5859 <xref linkend="autostart" />. 5860 </para> 5861 </listitem> 5862 </varlistentry> 5863 5864 <varlistentry> 5865 <term> 5866 <computeroutput>defaultfrontend</computeroutput> 5867 </term> 5868 5869 <listitem> 5870 <para> 5871 This selects the global default VM frontend setting. See 5872 <xref linkend="vboxmanage-startvm" />. 5873 </para> 5874 </listitem> 5875 </varlistentry> 5876 5877 <varlistentry> 5878 <term> 5879 <computeroutput>logginglevel</computeroutput> 5880 </term> 5881 5882 <listitem> 5883 <para> 5884 This configures the VBoxSVC release logging details. 5885 5886 <footnote> 5887 5888 <para> 5889 <ulink url="http://www.virtualbox.org/wiki/VBoxLogging">http://www.virtualbox.org/wiki/VBoxLogging</ulink>. 5890 </para> 5891 5892 </footnote> 5893 </para> 5894 </listitem> 5895 </varlistentry> 5896 5897 </variablelist> 5898 4002 5899 </sect1> 4003 5900 4004 <sect1> 5901 <sect1 id="vboxmanage-usbfilter"> 5902 4005 5903 <title>VBoxManage usbfilter add/modify/remove</title> 4006 5904 4007 5905 <screen>VBoxManage usbfilter add <index,0-N> 4008 5906 --target <uuid|vmname>global 4009 5907 --name <string> … … 4020 5918 </screen> 4021 5919 4022 5920 <screen>VBoxManage usbfilter modify <index,0-N> 4023 5921 --target <uuid|vmname>global 4024 5922 [--name <string>] … … 4035 5933 </screen> 4036 5934 4037 5935 <screen>VBoxManage usbfilter remove <index,0-N> 4038 5936 --target <uuid|vmname>global 4039 5937 </screen> 4040 5938 4041 <para>The <computeroutput>usbfilter</computeroutput> commands are used for 4042 working with USB filters in virtual machines, or global filters which 4043 affect the whole VirtualBox setup. Global filters are applied before 4044 machine-specific filters, and may be used to prevent devices from being 4045 captured by any virtual machine. Global filters are always applied in a 4046 particular order, and only the first filter which fits a device is 4047 applied. So for example, if the first global filter says to hold (make 4048 available) a particular Kingston memory stick device and the second to 4049 ignore all Kingston devices, that memory stick will be available to any 4050 machine with an appropriate filter, but no other Kingston device 4051 will.</para> 4052 4053 <para>When creating a USB filter using <computeroutput>usbfilter 4054 add</computeroutput>, you must supply three or four mandatory parameters. 4055 The index specifies the position in the list at which the filter should be 4056 placed. If there is already a filter at that position, then it and the 4057 following ones will be shifted back one place. Otherwise the new filter 4058 will be added onto the end of the list. The 4059 <computeroutput>target</computeroutput> parameter selects the virtual 4060 machine that the filter should be attached to or use "global" to apply it 4061 to all virtual machines. <computeroutput>name</computeroutput> is a name 4062 for the new filter and for global filters, 4063 <computeroutput>action</computeroutput> says whether to allow VMs 4064 access to devices that fit the filter description ("hold") or not to give 4065 them access ("ignore"). In addition, you should specify parameters to 4066 filter by. You can find the parameters for devices attached to your system 4067 using <computeroutput>VBoxManage list usbhost</computeroutput>. Finally, 4068 you can specify whether the filter should be active, and for local 4069 filters, whether they are for local devices, remote (over an RDP 4070 connection) or either.</para> 4071 4072 <para>When you modify a USB filter using <computeroutput>usbfilter 4073 modify</computeroutput>, you must specify the filter by index (see the 4074 output of <computeroutput>VBoxManage list usbfilters</computeroutput> to 4075 find global filter indexes and that of <computeroutput>VBoxManage 4076 showvminfo</computeroutput> to find indexes for individual machines) and 4077 by target, which is either a virtual machine or "global". The properties 4078 which can be changed are the same as for <computeroutput>usbfilter 4079 add</computeroutput>. To remove a filter, use <computeroutput>usbfilter 4080 remove</computeroutput> and specify the index and the target.</para> 4081 4082 <para>The following is a list of the additional 4083 <computeroutput>usbfilter add</computeroutput> and 4084 <computeroutput>usbfilter modify</computeroutput> options, with detailed 4085 explanations on how to use them.</para> 4086 4087 <para><itemizedlist> 4088 <listitem> 4089 <para><computeroutput>--action ignore|hold</computeroutput>Specifies 4090 whether devices that fit the filter description are allowed access by 4091 machines ("hold"), or have access denied ("ignore"). Applies to 4092 global filters only.</para> 4093 </listitem> 4094 4095 <listitem> 4096 <para><computeroutput>--active yes|no</computeroutput>Specifies whether 4097 the USB Filter is active or temporarily disabled. For 4098 <computeroutput>usbfilter create</computeroutput> the default is 4099 active.</para> 4100 </listitem> 4101 4102 <listitem> 4103 <para><computeroutput>--vendorid <XXXX>|""</computeroutput>Specifies 4104 a vendor ID filter - the string representation for the exact matching 4105 has the form XXXX, where X is the hex digit (including leading zeroes).</para> 4106 </listitem> 4107 4108 <listitem> 4109 <para><computeroutput>--productid <XXXX>|""</computeroutput>Specifies 4110 a product ID filter - The string representation for the exact matching has 4111 the form XXXX, where X is the hex digit (including leading zeroes).</para> 4112 </listitem> 4113 4114 <listitem> 4115 <para><computeroutput>--revision <IIFF>|""</computeroutput>Specifies 4116 a revision ID filter - the string representation for the exact matching has 4117 the form IIFF, where I is the decimal digit of the integer part of the revision, 4118 and F is the decimal digit of its fractional part (including leading and trailing zeros). 4119 Note that for interval filters, it's best to use the hex form, because the revision is 4120 stored as a 16 bit packed BCD value; so the expression int:0x0100-0x0199 will match 4121 any revision from 1.0 to 1.99 inclusive.</para> 4122 </listitem> 4123 4124 <listitem> 4125 <para><computeroutput>--manufacturer <string>|""</computeroutput>Specifies 4126 a manufacturer ID filter, as a string.</para> 4127 </listitem> 4128 4129 <listitem> 4130 <para><computeroutput>--product <string>|""</computeroutput>Specifies 4131 a product ID filter, as a string.</para> 4132 </listitem> 4133 4134 <listitem> 4135 <para><computeroutput>--remote yes|no""</computeroutput>Specifies 4136 a remote filter - indicating whether the device is physically connected to a 4137 remote VRDE client or to a local host machine. Applies to VM filters only.</para> 4138 </listitem> 4139 4140 <listitem> 4141 <para><computeroutput>--serialnumber <string>|""</computeroutput>Specifies 4142 a serial number filter, as a string.</para> 4143 </listitem> 4144 4145 <listitem> 4146 <para><computeroutput>--maskedinterfaces <XXXXXXXX></computeroutput>Specifies 4147 a masked interface filter, for hiding one or more USB interfaces from the guest. 4148 The value is a bit mask where the set bits correspond to the USB interfaces that 4149 should be hidden, or masked off. This feature only works on Linux hosts.</para> 4150 </listitem> 4151 </itemizedlist></para> 5939 <para> 5940 The <computeroutput>usbfilter</computeroutput> commands are used 5941 for working with USB filters in virtual machines, or global 5942 filters which affect the whole VirtualBox setup. Global filters 5943 are applied before machine-specific filters, and may be used to 5944 prevent devices from being captured by any virtual machine. Global 5945 filters are always applied in a particular order, and only the 5946 first filter which fits a device is applied. So for example, if 5947 the first global filter says to hold (make available) a particular 5948 Kingston memory stick device and the second to ignore all Kingston 5949 devices, that memory stick will be available to any machine with 5950 an appropriate filter, but no other Kingston device will. 5951 </para> 5952 5953 <para> 5954 When creating a USB filter using <computeroutput>usbfilter 5955 add</computeroutput>, you must supply three or four mandatory 5956 parameters. The index specifies the position in the list at which 5957 the filter should be placed. If there is already a filter at that 5958 position, then it and the following ones will be shifted back one 5959 place. Otherwise the new filter will be added onto the end of the 5960 list. The <computeroutput>target</computeroutput> parameter 5961 selects the virtual machine that the filter should be attached to 5962 or use "global" to apply it to all virtual machines. 5963 <computeroutput>name</computeroutput> is a name for the new filter 5964 and for global filters, <computeroutput>action</computeroutput> 5965 says whether to allow VMs access to devices that fit the filter 5966 description ("hold") or not to give them access ("ignore"). In 5967 addition, you should specify parameters to filter by. You can find 5968 the parameters for devices attached to your system using 5969 <computeroutput>VBoxManage list usbhost</computeroutput>. Finally, 5970 you can specify whether the filter should be active, and for local 5971 filters, whether they are for local devices, remote (over an RDP 5972 connection) or either. 5973 </para> 5974 5975 <para> 5976 When you modify a USB filter using <computeroutput>usbfilter 5977 modify</computeroutput>, you must specify the filter by index and 5978 by target, which is either a virtual machine or "global". See the 5979 output of <computeroutput>VBoxManage list 5980 usbfilters</computeroutput> to find global filter indexes and 5981 <computeroutput>VBoxManage showvminfo</computeroutput> to find 5982 indexes for individual machines. The properties which can be 5983 changed are the same as for <computeroutput>usbfilter 5984 add</computeroutput>. To remove a filter, use 5985 <computeroutput>usbfilter remove</computeroutput> and specify the 5986 index and the target. 5987 </para> 5988 5989 <para> 5990 The following is a list of the additional 5991 <computeroutput>usbfilter add</computeroutput> and 5992 <computeroutput>usbfilter modify</computeroutput> options, with 5993 detailed explanations on how to use them. 5994 </para> 5995 5996 <itemizedlist> 5997 5998 <listitem> 5999 <para> 6000 <computeroutput>--action ignore|hold</computeroutput>Specifies 6001 whether devices that fit the filter description are allowed 6002 access by machines ("hold"), or have access denied ("ignore"). 6003 Applies to global filters only. 6004 </para> 6005 </listitem> 6006 6007 <listitem> 6008 <para> 6009 <computeroutput>--active yes|no</computeroutput>Specifies 6010 whether the USB Filter is active or temporarily disabled. For 6011 <computeroutput>usbfilter create</computeroutput> the default 6012 is active. 6013 </para> 6014 </listitem> 6015 6016 <listitem> 6017 <para> 6018 <computeroutput>--vendorid 6019 <XXXX>|""</computeroutput>Specifies a vendor ID filter - 6020 the string representation for the exact matching has the form 6021 XXXX, where X is the hex digit (including leading zeroes). 6022 </para> 6023 </listitem> 6024 6025 <listitem> 6026 <para> 6027 <computeroutput>--productid 6028 <XXXX>|""</computeroutput>Specifies a product ID filter 6029 - The string representation for the exact matching has the 6030 form XXXX, where X is the hex digit (including leading 6031 zeroes). 6032 </para> 6033 </listitem> 6034 6035 <listitem> 6036 <para> 6037 <computeroutput>--revision 6038 <IIFF>|""</computeroutput>Specifies a revision ID filter 6039 - the string representation for the exact matching has the 6040 form IIFF, where I is the decimal digit of the integer part of 6041 the revision, and F is the decimal digit of its fractional 6042 part (including leading and trailing zeros). Note that for 6043 interval filters, it's best to use the hex form, because the 6044 revision is stored as a 16 bit packed BCD value; so the 6045 expression int:0x0100-0x0199 will match any revision from 1.0 6046 to 1.99 inclusive. 6047 </para> 6048 </listitem> 6049 6050 <listitem> 6051 <para> 6052 <computeroutput>--manufacturer 6053 <string>|""</computeroutput>Specifies a manufacturer ID 6054 filter, as a string. 6055 </para> 6056 </listitem> 6057 6058 <listitem> 6059 <para> 6060 <computeroutput>--product 6061 <string>|""</computeroutput>Specifies a product ID 6062 filter, as a string. 6063 </para> 6064 </listitem> 6065 6066 <listitem> 6067 <para> 6068 <computeroutput>--remote yes|no""</computeroutput>Specifies a 6069 remote filter - indicating whether the device is physically 6070 connected to a remote VRDE client or to a local host machine. 6071 Applies to VM filters only. 6072 </para> 6073 </listitem> 6074 6075 <listitem> 6076 <para> 6077 <computeroutput>--serialnumber 6078 <string>|""</computeroutput>Specifies a serial number 6079 filter, as a string. 6080 </para> 6081 </listitem> 6082 6083 <listitem> 6084 <para> 6085 <computeroutput>--maskedinterfaces 6086 <XXXXXXXX></computeroutput>Specifies a masked interface 6087 filter, for hiding one or more USB interfaces from the guest. 6088 The value is a bit mask where the set bits correspond to the 6089 USB interfaces that should be hidden, or masked off. This 6090 feature only works on Linux hosts. 6091 </para> 6092 </listitem> 6093 6094 </itemizedlist> 6095 4152 6096 </sect1> 4153 6097 4154 6098 <sect1 id="vboxmanage-sharedfolder"> 6099 4155 6100 <title>VBoxManage sharedfolder add/remove</title> 4156 6101 … … 4161 6106 </screen> 4162 6107 4163 <para>This command allows you to share folders on the host computer with 4164 guest operating systems. For this, the guest systems must have a version 4165 of the VirtualBox Guest Additions installed which supports this 4166 functionality.</para> 4167 4168 <para>Parameters are:</para> 4169 4170 <para><itemizedlist> 4171 <listitem> 4172 <para><computeroutput><uuid|vmname></computeroutput> 4173 Specifies the UUID or name of the VM whose guest operating system will be 4174 sharing folders with the host computer. Mandatory.</para> 4175 </listitem> 4176 4177 <listitem> 4178 <para><computeroutput>--name <name></computeroutput> 4179 Specifies the name of the share. Each share has a unique name within the 4180 namespace of the host operating system. Mandatory.</para> 4181 </listitem> 4182 4183 <listitem> 4184 <para><computeroutput>-hostpath <hostpath></computeroutput> 4185 Specifies the absolute path on the host operating system of the 4186 folder/directory to be shared with the guest operating system. 4187 Mandatory.</para> 4188 </listitem> 4189 4190 <listitem> 4191 <para><computeroutput>-transient</computeroutput> 4192 Specifies that the share is 'transient', meaning that it can be added 4193 and removed at runtime and does not persist after the VM has stopped. 4194 Optional.</para> 4195 </listitem> 4196 4197 <listitem> 4198 <para><computeroutput>-readonly</computeroutput> 4199 Specifies that the share has only read-only access to files at the host path.</para> 4200 4201 <para>By default, shared folders have read/write access to the files at the host 4202 path. More specifically, on Linux distros - shared folders are mounted with 4203 770 io permissions with root user and vboxsf as the group, and using this option 4204 the io permissions change to 700. Optional.</para> 4205 </listitem> 4206 4207 <listitem> 4208 <para><computeroutput>-automount</computeroutput> 4209 Specifies that the share will be automatically mounted. On Linux distros, this will 4210 be to either /media/USER/sf_<name> or /media/sf_<name> - depending on 4211 your guest OS. Where <name> is the share name. Optional.</para> 4212 </listitem> 4213 </itemizedlist></para> 6108 <para> 6109 This command allows you to share folders on the host computer with 6110 guest operating systems. For this, the guest systems must have a 6111 version of the VirtualBox Guest Additions installed which supports 6112 this functionality. 6113 </para> 6114 6115 <para> 6116 Parameters are as follows: 6117 </para> 6118 6119 <itemizedlist> 6120 6121 <listitem> 6122 <para> 6123 <computeroutput><uuid|vmname></computeroutput> Specifies 6124 the UUID or name of the VM whose guest operating system will 6125 be sharing folders with the host computer. Mandatory. 6126 </para> 6127 </listitem> 6128 6129 <listitem> 6130 <para> 6131 <computeroutput>--name <name></computeroutput> Specifies 6132 the name of the share. Each share has a unique name within the 6133 namespace of the host operating system. Mandatory. 6134 </para> 6135 </listitem> 6136 6137 <listitem> 6138 <para> 6139 <computeroutput>-hostpath <hostpath></computeroutput> 6140 Specifies the absolute path on the host operating system of 6141 the folder/directory to be shared with the guest operating 6142 system. Mandatory. 6143 </para> 6144 </listitem> 6145 6146 <listitem> 6147 <para> 6148 <computeroutput>-transient</computeroutput> Specifies that the 6149 share is 'transient', meaning that it can be added and removed 6150 at runtime and does not persist after the VM has stopped. 6151 Optional. 6152 </para> 6153 </listitem> 6154 6155 <listitem> 6156 <para> 6157 <computeroutput>-readonly</computeroutput> Specifies that the 6158 share has only read-only access to files at the host path. 6159 </para> 6160 6161 <para> 6162 By default, shared folders have read/write access to the files 6163 at the host path. More specifically, on Linux distros - shared 6164 folders are mounted with 770 io permissions with root user and 6165 vboxsf as the group, and using this option the io permissions 6166 change to 700. Optional. 6167 </para> 6168 </listitem> 6169 6170 <listitem> 6171 <para> 6172 <computeroutput>-automount</computeroutput> Specifies that the 6173 share will be automatically mounted. On Linux distros, this 6174 will be to either /media/USER/sf_<name> or 6175 /media/sf_<name> - depending on your guest OS. Where 6176 <name> is the share name. Optional. 6177 </para> 6178 </listitem> 6179 6180 </itemizedlist> 4214 6181 4215 6182 <screen> … … 4219 6186 </screen> 4220 6187 4221 <para>This command allows you to delete shared folders on the host computer shares with 4222 the guest operating systems. For this, the guest systems must have a version 4223 of the VirtualBox Guest Additions installed which supports this 4224 functionality.</para> 4225 4226 <para>Parameters are:</para> 4227 4228 <para><itemizedlist> 4229 <listitem> 4230 <para><computeroutput><uuid|vmname></computeroutput> 4231 Specifies the UUID or name of the VM whose guest operating system is 4232 sharing folders with the host computer. Mandatory.</para> 4233 </listitem> 4234 4235 <listitem> 4236 <para><computeroutput>--name <name></computeroutput> 4237 Specifies the name of the share to be removed. Each share has a unique name within the 4238 namespace of the host operating system. Mandatory.</para> 4239 </listitem> 4240 4241 <listitem> 4242 <para><computeroutput>-transient</computeroutput> 4243 Specifies that the share is 'transient', meaning that it can be added 4244 and removed at runtime and does not persist after the VM has stopped. 4245 Optional.</para> 4246 </listitem> 4247 </itemizedlist></para> 4248 4249 4250 <para>Shared folders are described in detail in <xref linkend="sharedfolders" />.</para> 6188 <para> 6189 This command allows you to delete shared folders on the host 6190 computer shares with the guest operating systems. For this, the 6191 guest systems must have a version of the VirtualBox Guest 6192 Additions installed which supports this functionality. 6193 </para> 6194 6195 <para> 6196 Parameters are as follows: 6197 </para> 6198 6199 <itemizedlist> 6200 6201 <listitem> 6202 <para> 6203 <computeroutput><uuid|vmname></computeroutput> Specifies 6204 the UUID or name of the VM whose guest operating system is 6205 sharing folders with the host computer. Mandatory. 6206 </para> 6207 </listitem> 6208 6209 <listitem> 6210 <para> 6211 <computeroutput>--name <name></computeroutput> Specifies 6212 the name of the share to be removed. Each share has a unique 6213 name within the namespace of the host operating system. 6214 Mandatory. 6215 </para> 6216 </listitem> 6217 6218 <listitem> 6219 <para> 6220 <computeroutput>-transient</computeroutput> Specifies that the 6221 share is 'transient', meaning that it can be added and removed 6222 at runtime and does not persist after the VM has stopped. 6223 Optional. 6224 </para> 6225 </listitem> 6226 6227 </itemizedlist> 6228 6229 <para> 6230 Shared folders are described in <xref linkend="sharedfolders" />. 6231 </para> 6232 4251 6233 </sect1> 4252 6234 4253 6235 <sect1 id="vboxmanage-guestproperty"> 6236 4254 6237 <title>VBoxManage guestproperty</title> 4255 6238 4256 <para>The "guestproperty" commands allow you to get or set properties of a 4257 running virtual machine. Please see <xref linkend="guestadd-guestprops" /> 4258 for an introduction. As explained there, guest properties are arbitrary 4259 key/value string pairs which can be written to and read from by either the 4260 guest or the host, so they can be used as a low-volume communication 4261 channel for strings, provided that a guest is running and has the Guest 4262 Additions installed. In addition, a number of values whose keys begin with 4263 "/VirtualBox/" are automatically set and maintained by the Guest 4264 Additions.</para> 4265 4266 <para>The following subcommands are available (where 4267 <computeroutput><vm></computeroutput>, in each case, can either be a 4268 VM name or a VM UUID, as with the other VBoxManage commands):<itemizedlist> 4269 <listitem> 4270 <para><computeroutput>enumerate <vm> [--patterns 6239 <para> 6240 The "guestproperty" commands allow you to get or set properties of 6241 a running virtual machine. See 6242 <xref linkend="guestadd-guestprops" /> for an introduction. As 6243 explained there, guest properties are arbitrary key/value string 6244 pairs which can be written to and read from by either the guest or 6245 the host, so they can be used as a low-volume communication 6246 channel for strings, provided that a guest is running and has the 6247 Guest Additions installed. In addition, a number of values whose 6248 keys begin with "/VirtualBox/" are automatically set and 6249 maintained by the Guest Additions. 6250 </para> 6251 6252 <para> 6253 The following subcommands are available, where 6254 <computeroutput><vm></computeroutput> can either be a VM 6255 name or a VM UUID, as with the other VBoxManage commands: 6256 </para> 6257 6258 <itemizedlist> 6259 6260 <listitem> 6261 <para> 6262 <computeroutput>enumerate <vm> [--patterns 4271 6263 <pattern>]</computeroutput>: This lists all the guest 4272 properties that are available for the given VM, including the value. 4273 This list will be very limited if the guest's service process cannot 4274 be contacted, e.g. because the VM is not running or the Guest 4275 Additions are not installed.</para> 4276 4277 <para>If <computeroutput>--patterns <pattern></computeroutput> 4278 is specified, it acts as a filter to only list properties that match 4279 the given pattern. The pattern can contain the following wildcard 4280 characters:<itemizedlist> 4281 <listitem> 4282 <para><computeroutput>*</computeroutput> (asterisk): 4283 represents any number of characters; for example, 4284 "<computeroutput>/VirtualBox*</computeroutput>" would match 4285 all properties beginning with "/VirtualBox".</para> 4286 </listitem> 4287 4288 <listitem> 4289 <para><computeroutput>?</computeroutput> (question mark): 4290 represents a single arbitrary character; for example, 4291 "<computeroutput>fo?</computeroutput>" would match both "foo" 4292 and "for".</para> 4293 </listitem> 4294 4295 <listitem> 4296 <para><computeroutput>|</computeroutput> (pipe symbol): can be 4297 used to specify multiple alternative patterns; for example, 4298 "<computeroutput>s*|t*</computeroutput>" would match anything 4299 starting with either "s" or "t".</para> 4300 </listitem> 4301 </itemizedlist></para> 4302 </listitem> 4303 4304 <listitem> 4305 <para><computeroutput>get <vm> <property> 4306 </computeroutput>: This 4307 retrieves the value of a single property only. If the property 4308 cannot be found (e.g. because the guest is not running), this will 4309 print <screen>No value set!</screen></para> 4310 </listitem> 4311 4312 <listitem> 4313 <para><computeroutput>set <vm> <property> [<value> 4314 [--flags <flags>]]</computeroutput>: This allows you to set a 4315 guest property by specifying the key and value. If 6264 properties that are available for the given VM, including the 6265 value. This list will be very limited if the guest's service 6266 process cannot be contacted, e.g. because the VM is not 6267 running or the Guest Additions are not installed. 6268 </para> 6269 6270 <para> 6271 If <computeroutput>--patterns <pattern></computeroutput> 6272 is specified, it acts as a filter to only list properties that 6273 match the given pattern. The pattern can contain the following 6274 wildcard characters: 6275 </para> 6276 6277 <itemizedlist> 6278 6279 <listitem> 6280 <para> 6281 <computeroutput>*</computeroutput> (asterisk): represents 6282 any number of characters; for example, 6283 "<computeroutput>/VirtualBox*</computeroutput>" would 6284 match all properties beginning with "/VirtualBox". 6285 </para> 6286 </listitem> 6287 6288 <listitem> 6289 <para> 6290 <computeroutput>?</computeroutput> (question mark): 6291 represents a single arbitrary character; for example, 6292 "<computeroutput>fo?</computeroutput>" would match both 6293 "foo" and "for". 6294 </para> 6295 </listitem> 6296 6297 <listitem> 6298 <para> 6299 <computeroutput>|</computeroutput> (pipe symbol): can be 6300 used to specify multiple alternative patterns; for 6301 example, "<computeroutput>s*|t*</computeroutput>" would 6302 match anything starting with either "s" or "t". 6303 </para> 6304 </listitem> 6305 6306 </itemizedlist> 6307 </listitem> 6308 6309 <listitem> 6310 <para> 6311 <computeroutput>get <vm> <property> 6312 </computeroutput>: This retrieves the value of a single 6313 property only. If the property cannot be found (e.g. because 6314 the guest is not running), this will print 6315 6316 <screen>No value set!</screen> 6317 </para> 6318 </listitem> 6319 6320 <listitem> 6321 <para> 6322 <computeroutput>set <vm> <property> [<value> 6323 [--flags <flags>]]</computeroutput>: This allows you to 6324 set a guest property by specifying the key and value. If 4316 6325 <computeroutput><value></computeroutput> is omitted, the 4317 property is deleted. With <computeroutput>--flags</computeroutput> 4318 you can optionally specify additional behavior (you can combine 4319 several by separating them with commas):<itemizedlist> 4320 <listitem> 4321 <para><computeroutput>TRANSIENT</computeroutput>: the value 4322 will not be stored with the VM data when the VM exits;</para> 4323 </listitem> 4324 4325 <listitem> 4326 <para><computeroutput>TRANSRESET</computeroutput>: the value 4327 will be deleted as soon as the VM restarts and/or exits;</para> 4328 </listitem> 4329 4330 <listitem> 4331 <para><computeroutput>RDONLYGUEST</computeroutput>: the value 4332 can only be changed by the host, but the guest can only read 4333 it;</para> 4334 </listitem> 4335 4336 <listitem> 4337 <para><computeroutput>RDONLYHOST</computeroutput>: reversely, 4338 the value can only be changed by the guest, but the host can 4339 only read it;</para> 4340 </listitem> 4341 4342 <listitem> 4343 <para><computeroutput>READONLY</computeroutput>: a combination 4344 of the two, the value cannot be changed at all.</para> 4345 </listitem> 4346 </itemizedlist></para> 4347 </listitem> 4348 4349 <listitem> 4350 <para><computeroutput>wait <vm> <pattern> --timeout 4351 <timeout></computeroutput>: This waits for a particular value 4352 described by "pattern" to change or to be deleted or created. The 4353 pattern rules are the same as for the "enumerate" subcommand 4354 above.</para> 4355 </listitem> 4356 4357 <listitem> 4358 <para><computeroutput>delete <vm> <property> 4359 </computeroutput>: Deletes a formerly set guest property. 4360 </para></listitem> 4361 </itemizedlist></para> 6326 property is deleted. With 6327 <computeroutput>--flags</computeroutput>, you can specify 6328 additional behavior. You can combine several flags by 6329 separating them with commas. 6330 </para> 6331 6332 <itemizedlist> 6333 6334 <listitem> 6335 <para> 6336 <computeroutput>TRANSIENT</computeroutput>: The value will 6337 not be stored with the VM data when the VM exits. 6338 </para> 6339 </listitem> 6340 6341 <listitem> 6342 <para> 6343 <computeroutput>TRANSRESET</computeroutput>: The value 6344 will be deleted as soon as the VM restarts and/or exits. 6345 </para> 6346 </listitem> 6347 6348 <listitem> 6349 <para> 6350 <computeroutput>RDONLYGUEST</computeroutput>: The value 6351 can only be changed by the host, but the guest can only 6352 read it. 6353 </para> 6354 </listitem> 6355 6356 <listitem> 6357 <para> 6358 <computeroutput>RDONLYHOST</computeroutput>: The value can 6359 only be changed by the guest, but the host can only read 6360 it. 6361 </para> 6362 </listitem> 6363 6364 <listitem> 6365 <para> 6366 <computeroutput>READONLY</computeroutput>: The value 6367 cannot be changed at all. 6368 </para> 6369 </listitem> 6370 6371 </itemizedlist> 6372 </listitem> 6373 6374 <listitem> 6375 <para> 6376 <computeroutput>wait <vm> <pattern> --timeout 6377 <timeout></computeroutput>: This waits for a particular 6378 value described by "pattern" to change or to be deleted or 6379 created. The pattern rules are the same as for the "enumerate" 6380 subcommand above. 6381 </para> 6382 </listitem> 6383 6384 <listitem> 6385 <para> 6386 <computeroutput>delete <vm> 6387 <property></computeroutput>: Deletes a formerly set 6388 guest property. 6389 </para> 6390 </listitem> 6391 6392 </itemizedlist> 6393 4362 6394 </sect1> 4363 6395 4364 6396 <sect1 id="vboxmanage-guestcontrol"> 6397 4365 6398 <title>VBoxManage guestcontrol</title> 4366 6399 4367 <para>The <computeroutput>guestcontrol</computeroutput> commands enable 4368 control of the guest from the host. Please see <xref 4369 linkend="guestadd-guestcontrol" /> for an introduction.</para> 4370 4371 <para>guestcontrol has two sets of subcommands. The first set requires guest 4372 credentials to be specified, the second does not.</para> 4373 4374 <para>The first set of subcommands is of the form:</para> 4375 <screen>VBoxManage guestcontrol <uuid|vmname> <sub-command> 6400 <para> 6401 The <computeroutput>guestcontrol</computeroutput> commands enable 6402 control of the guest from the host. See 6403 <xref 6404 linkend="guestadd-guestcontrol" /> for an introduction. 6405 </para> 6406 6407 <para> 6408 guestcontrol has two sets of subcommands. The first set requires 6409 guest credentials to be specified, the second does not. 6410 </para> 6411 6412 <para> 6413 The first set of subcommands is of the form: 6414 </para> 6415 6416 <screen>VBoxManage guestcontrol <uuid|vmname> <sub-command> 4376 6417 [--username <name> ] 4377 6418 [--passwordfile <file> | --password <password>] … … 4380 6421 </screen> 4381 6422 4382 <para>The "common-options" are:</para> 4383 <screen> 6423 <para> 6424 The "common-options" are: 6425 </para> 6426 6427 <screen> 4384 6428 [--username <name> ] 4385 6429 [--passwordfile <file> | --password <password>] … … 4388 6432 </screen> 4389 6433 4390 <para>Where details of the common options for the first set of subcommands are: 4391 <glosslist> 4392 4393 <glossentry> 4394 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4395 <glossdef> 4396 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4397 </glossdef> 4398 </glossentry> 4399 4400 <glossentry> 4401 <glossterm><computeroutput>--username <name></computeroutput></glossterm> 4402 <glossdef><para>Specifies the user name on guest OS under which the process should run. This 4403 user name must already exist on the guest OS. If unspecified, the host user name is used. Optional</para> 4404 </glossdef> 4405 </glossentry> 4406 4407 <glossentry> 4408 <glossterm><computeroutput>--passwordfile <file>|--password</computeroutput></glossterm> 4409 <glossdef><para>Specifies the absolute path on guest file system of password file containing the 4410 password for the specified user account or password for the specified user account. Optional. 4411 If both are omitted, empty password is assumed.</para></glossdef> 4412 </glossentry> 4413 4414 <glossentry> 4415 <glossterm><computeroutput>--domain <domain></computeroutput></glossterm> 4416 <glossdef><para>User domain for Windows guests. Optional.</para></glossdef> 4417 </glossentry> 4418 4419 <glossentry> 4420 <glossterm><computeroutput>-v|--verbose</computeroutput></glossterm> 4421 <glossdef><para>Makes the subcommand execution more verbose. Optional</para></glossdef> 4422 </glossentry> 4423 4424 <glossentry> 4425 <glossterm><computeroutput>-q|--quiet</computeroutput></glossterm> 4426 <glossdef><para>Makes the subcommand execution quieter. Optional.</para></glossdef> 4427 </glossentry> 4428 </glosslist> 4429 </para> 4430 4431 <para>The first set of subcommands: <itemizedlist> 4432 <listitem> 4433 <para><emphasis role="bold"><computeroutput>run</computeroutput></emphasis> 4434 Executes a guest program - forwarding stdout, stderr and stdin to/from the host 4435 until it completes.</para> 4436 <screen>VBoxManage guestcontrol <uuid|vmname> run [common-options] 6434 <para> 6435 Where details of the common options for the first set of 6436 subcommands are: 6437 </para> 6438 6439 <variablelist> 6440 6441 <varlistentry> 6442 <term> 6443 <computeroutput><uuid|vmname></computeroutput> 6444 </term> 6445 6446 <listitem> 6447 <para> 6448 Specifies the VM UUID or VM name. Mandatory. 6449 </para> 6450 </listitem> 6451 </varlistentry> 6452 6453 <varlistentry> 6454 <term> 6455 <computeroutput>--username <name></computeroutput> 6456 </term> 6457 6458 <listitem> 6459 <para> 6460 Specifies the user name on guest OS under which the process 6461 should run. This user name must already exist on the guest 6462 OS. If unspecified, the host user name is used. Optional 6463 </para> 6464 </listitem> 6465 </varlistentry> 6466 6467 <varlistentry> 6468 <term> 6469 <computeroutput>--passwordfile 6470 <file>|--password</computeroutput> 6471 </term> 6472 6473 <listitem> 6474 <para> 6475 Specifies the absolute path on guest file system of password 6476 file containing the password for the specified user account 6477 or password for the specified user account. Optional. If 6478 both are omitted, empty password is assumed. 6479 </para> 6480 </listitem> 6481 </varlistentry> 6482 6483 <varlistentry> 6484 <term> 6485 <computeroutput>--domain <domain></computeroutput> 6486 </term> 6487 6488 <listitem> 6489 <para> 6490 User domain for Windows guests. Optional. 6491 </para> 6492 </listitem> 6493 </varlistentry> 6494 6495 <varlistentry> 6496 <term> 6497 <computeroutput>-v|--verbose</computeroutput> 6498 </term> 6499 6500 <listitem> 6501 <para> 6502 Makes the subcommand execution more verbose. Optional 6503 </para> 6504 </listitem> 6505 </varlistentry> 6506 6507 <varlistentry> 6508 <term> 6509 <computeroutput>-q|--quiet</computeroutput> 6510 </term> 6511 6512 <listitem> 6513 <para> 6514 Makes the subcommand execution quieter. Optional. 6515 </para> 6516 </listitem> 6517 </varlistentry> 6518 6519 </variablelist> 6520 6521 <para> 6522 The first set of subcommands: 6523 </para> 6524 6525 <itemizedlist> 6526 6527 <listitem> 6528 <para> 6529 <emphasis role="bold"><computeroutput>run</computeroutput></emphasis> 6530 Executes a guest program - forwarding stdout, stderr and stdin 6531 to/from the host until it completes. 6532 </para> 6533 6534 <screen>VBoxManage guestcontrol <uuid|vmname> run [common-options] 4437 6535 --exe <path to executable> [--timeout <msec>] 4438 6536 [-E|--putenv <NAME>[=<VALUE>]] [--unquoted-args] … … 4443 6541 -- <program/arg0> [argument1] ... [argumentN]] 4444 6542 </screen> 4445 <glosslist> 4446 <glossentry> 4447 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4448 <glossdef> 4449 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4450 </glossdef> 4451 </glossentry> 4452 4453 <glossentry> 4454 <glossterm><computeroutput>--exe <path to executable></computeroutput></glossterm> 4455 <glossdef><para>Specifies the absolute path of the executable on the guest OS file system. Mandatory. e.g.: 4456 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>.</para> 4457 </glossdef> 4458 </glossentry> 4459 4460 <glossentry> 4461 <glossterm><computeroutput>--timeout <msec></computeroutput></glossterm> 4462 <glossdef> 4463 <para>Specifies the maximum time (microseconds) that the executable can run, 4464 during which VBoxManage receives its output. Optional. 4465 If unspecified, VBoxManage waits indefinitely for the process to end, or an error occurs.</para> 4466 </glossdef> 4467 </glossentry> 4468 4469 <glossentry> 4470 <glossterm><computeroutput>-E|--putenv <NAME>=<VALUE> 4471 </computeroutput></glossterm> 4472 <glossdef> 4473 <para>Sets/modifies/unsets environment variable(s) in the environment in which the program will run. Optional.</para> 4474 <para>The guest process is created with the standard default guest OS environment. 4475 Use this option to modify that default environment. To set/modify a variable use: 4476 <computeroutput><NAME>=<VALUE></computeroutput>. 4477 To unset a variable use: 4478 <computeroutput><NAME>=</computeroutput></para> 4479 <para>Any spaces in names/values should be enclosed by quotes. </para> 4480 <para>To set/modify/unset multiple variables, use multiple instances of the 4481 <computeroutput>--E|--putenv</computeroutput> option. </para> 4482 </glossdef> 4483 </glossentry> 4484 4485 <glossentry> 4486 <glossterm><computeroutput>--unquoted-args</computeroutput></glossterm> 4487 <glossdef> 4488 <para>Disables escaped double quoting (e.g. \"fred\") on arguments passed to the executed program. Optional.</para> 4489 </glossdef> 4490 </glossentry> 4491 4492 <glossentry> 4493 <glossterm><computeroutput>--ignore-operhaned-processes</computeroutput></glossterm> 4494 <glossdef> 4495 <para>Ignore orphaned processes. Not yet implemented. Optional.</para> 4496 </glossdef> 4497 </glossentry> 4498 4499 <glossentry> 4500 <glossterm><computeroutput>--profile</computeroutput></glossterm> 4501 <glossdef> 4502 <para>Use Profile. Not yet implemented. Optional.</para> 4503 </glossdef> 4504 </glossentry> 4505 4506 <glossentry> 4507 <glossterm><computeroutput>--no-wait-stdout|--wait-stdout</computeroutput></glossterm> 4508 <glossdef> 4509 <para>Does not wait/waits until the guest process ends and receives its exit code and reason/flags. 4510 In the case of --wait-stdout - while the process runs, VBoxManage receives its stdout. Optional.</para> 4511 </glossdef> 4512 </glossentry> 4513 4514 <glossentry> 4515 <glossterm><computeroutput>--no-wait-stderr|--wait-stderr</computeroutput></glossterm> 4516 <glossdef> 4517 <para>Does not wait/waits until the guest process ends and receives its exit code and reason/flags. 4518 In case of --wait-stderr - while the process runs, VBoxManage receives its stderr. Optional.</para> 4519 </glossdef> 4520 </glossentry> 4521 4522 <glossentry> 4523 <glossterm><computeroutput>--dos2unix</computeroutput></glossterm> 4524 <glossdef><para> 4525 Converts output from DOS/Windows guests to UNIX/Linux-compatible line endings 4526 (CR + LF → LF). Not yet implemented. Optional.</para> 4527 </glossdef> 4528 </glossentry> 4529 4530 <glossentry> 4531 <glossterm><computeroutput>--unix2dos</computeroutput></glossterm> 4532 <glossdef><para> 4533 Converts output from a UNIX/Linux guests to DOS/Windows-compatible 4534 line endings (LF → CR + LF). Not yet implemented. Optional.</para> 4535 </glossdef> 4536 </glossentry> 4537 4538 <glossentry> 4539 <glossterm><computeroutput>[-- <program/arg0> [<argument1>] ... [<argumentN>]]</computeroutput></glossterm> 4540 <glossdef> 4541 <para>Specifies program name, followed by one or more arguments to pass to the program. Optional.</para> 4542 <para>Note: Any spaces in arguments should be enclosed by quotes.</para> 4543 </glossdef> 4544 </glossentry> 4545 </glosslist> 4546 4547 <para><note> 4548 <para>On Windows there are certain limitations for graphical 4549 applications; please see <xref linkend="KnownIssues" /> for more 4550 information.</para> 4551 </note> Examples: <screen>VBoxManage --nologo guestcontrol "My VM" run --exe "/bin/ls" 4552 --username foo --passwordfile bar.txt --wait-exit --wait-stdout -- -l /usr</screen> <screen>VBoxManage --nologo guestcontrol "My VM" run --exe "c:\\windows\\system32\\ipconfig.exe" 4553 --username foo --passwordfile bar.txt --wait-exit --wait-stdout</screen> Note that 4554 the double backslashes in the second example are only required on 4555 Unix hosts.</para> 4556 4557 <para><note> 4558 <para>For certain commands a user name of an existing user account on the guest 4559 must be specified; anonymous executions are not supported for security reasons. A 4560 user account password, however, is optional and depends on the guest's OS security 4561 policy or rules. If no password is specified for a given user name, an empty password 4562 will be used. On certain OSes like Windows the security policy may needs to be adjusted 4563 in order to allow user accounts with an empty password set. Also, global domain rules might 4564 apply and therefore cannot be changed.</para> 4565 </note></para> 4566 4567 <para>Starting at VirtualBox 4.1.2 guest process execution by default is limited 4568 to serve up to 5 guest processes at a time. If a new guest process gets started 4569 which would exceed this limit, the oldest not running guest process will be discarded 4570 in order to be able to run that new process. Also, retrieving output from this 4571 old guest process will not be possible anymore then. If all 5 guest processes 4572 are still active and running, starting a new guest process will result in an 4573 appropriate error message.</para> 4574 4575 <para>To raise or lower the guest process execution limit, either the guest 4576 property <computeroutput>/VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept</computeroutput> 4577 or VBoxService' command line by specifying <computeroutput>--control-procs-max-kept</computeroutput> 4578 needs to be modified. A restart of the guest OS is required afterwards. To serve unlimited 4579 guest processes, a value of <computeroutput>0</computeroutput> needs to be set (not recommended).</para> 4580 </listitem> 4581 4582 <listitem> 4583 <para><emphasis role="bold"><computeroutput>start</computeroutput></emphasis> 4584 Executes a guest program until it completes.</para> 4585 <screen>VBoxManage guestcontrol <uuid|vmname> start [common-options] 6543 6544 <variablelist> 6545 6546 <varlistentry> 6547 <term> 6548 <computeroutput><uuid|vmname></computeroutput> 6549 </term> 6550 6551 <listitem> 6552 <para> 6553 Specifies the VM UUID or VM name. Mandatory. 6554 </para> 6555 </listitem> 6556 </varlistentry> 6557 6558 <varlistentry> 6559 <term> 6560 <computeroutput>--exe <path to 6561 executable></computeroutput> 6562 </term> 6563 6564 <listitem> 6565 <para> 6566 Specifies the absolute path of the executable on the 6567 guest OS file system. Mandatory. e.g.: 6568 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>. 6569 </para> 6570 </listitem> 6571 </varlistentry> 6572 6573 <varlistentry> 6574 <term> 6575 <computeroutput>--timeout <msec></computeroutput> 6576 </term> 6577 6578 <listitem> 6579 <para> 6580 Specifies the maximum time (microseconds) that the 6581 executable can run, during which VBoxManage receives its 6582 output. Optional. If unspecified, VBoxManage waits 6583 indefinitely for the process to end, or an error occurs. 6584 </para> 6585 </listitem> 6586 </varlistentry> 6587 6588 <varlistentry> 6589 <term> 6590 <computeroutput>-E|--putenv <NAME>=<VALUE> 6591 </computeroutput> 6592 </term> 6593 6594 <listitem> 6595 <para> 6596 Sets/modifies/unsets environment variable(s) in the 6597 environment in which the program will run. Optional. 6598 </para> 6599 6600 <para> 6601 The guest process is created with the standard default 6602 guest OS environment. Use this option to modify that 6603 default environment. To set/modify a variable use: 6604 <computeroutput><NAME>=<VALUE></computeroutput>. 6605 To unset a variable use: 6606 <computeroutput><NAME>=</computeroutput> 6607 </para> 6608 6609 <para> 6610 Any spaces in names/values should be enclosed by quotes. 6611 </para> 6612 6613 <para> 6614 To set/modify/unset multiple variables, use multiple 6615 instances of the 6616 <computeroutput>--E|--putenv</computeroutput> option. 6617 </para> 6618 </listitem> 6619 </varlistentry> 6620 6621 <varlistentry> 6622 <term> 6623 <computeroutput>--unquoted-args</computeroutput> 6624 </term> 6625 6626 <listitem> 6627 <para> 6628 Disables escaped double quoting (e.g. \"fred\") on 6629 arguments passed to the executed program. Optional. 6630 </para> 6631 </listitem> 6632 </varlistentry> 6633 6634 <varlistentry> 6635 <term> 6636 <computeroutput>--ignore-operhaned-processes</computeroutput> 6637 </term> 6638 6639 <listitem> 6640 <para> 6641 Ignore orphaned processes. Not yet implemented. 6642 Optional. 6643 </para> 6644 </listitem> 6645 </varlistentry> 6646 6647 <varlistentry> 6648 <term> 6649 <computeroutput>--profile</computeroutput> 6650 </term> 6651 6652 <listitem> 6653 <para> 6654 Use Profile. Not yet implemented. Optional. 6655 </para> 6656 </listitem> 6657 </varlistentry> 6658 6659 <varlistentry> 6660 <term> 6661 <computeroutput>--no-wait-stdout|--wait-stdout</computeroutput> 6662 </term> 6663 6664 <listitem> 6665 <para> 6666 Does not wait/waits until the guest process ends and 6667 receives its exit code and reason/flags. In the case of 6668 --wait-stdout - while the process runs, VBoxManage 6669 receives its stdout. Optional. 6670 </para> 6671 </listitem> 6672 </varlistentry> 6673 6674 <varlistentry> 6675 <term> 6676 <computeroutput>--no-wait-stderr|--wait-stderr</computeroutput> 6677 </term> 6678 6679 <listitem> 6680 <para> 6681 Does not wait/waits until the guest process ends and 6682 receives its exit code and reason/flags. In case of 6683 --wait-stderr - while the process runs, VBoxManage 6684 receives its stderr. Optional. 6685 </para> 6686 </listitem> 6687 </varlistentry> 6688 6689 <varlistentry> 6690 <term> 6691 <computeroutput>--dos2unix</computeroutput> 6692 </term> 6693 6694 <listitem> 6695 <para> 6696 Converts output from DOS/Windows guests to 6697 UNIX/Linux-compatible line endings, CR + LF to LF. Not 6698 yet implemented. Optional. 6699 </para> 6700 </listitem> 6701 </varlistentry> 6702 6703 <varlistentry> 6704 <term> 6705 <computeroutput>--unix2dos</computeroutput> 6706 </term> 6707 6708 <listitem> 6709 <para> 6710 Converts output from a UNIX/Linux guests to 6711 DOS/Windows-compatible line endings, LF to CR + LF. Not 6712 yet implemented. Optional. 6713 </para> 6714 </listitem> 6715 </varlistentry> 6716 6717 <varlistentry> 6718 <term> 6719 <computeroutput>[-- <program/arg0> 6720 [<argument1>] ... 6721 [<argumentN>]]</computeroutput> 6722 </term> 6723 6724 <listitem> 6725 <para> 6726 Specifies program name, followed by one or more 6727 arguments to pass to the program. Optional. 6728 </para> 6729 6730 <para> 6731 Note: Any spaces in arguments should be enclosed by 6732 quotes. 6733 </para> 6734 </listitem> 6735 </varlistentry> 6736 6737 </variablelist> 6738 6739 <para> 6740 <note> 6741 <para> 6742 On Windows there are certain limitations for graphical 6743 applications; please see <xref linkend="KnownIssues" /> 6744 for more information. 6745 </para> 6746 </note> 6747 6748 Examples: 6749 6750 <screen>VBoxManage --nologo guestcontrol "My VM" run --exe "/bin/ls" 6751 --username foo --passwordfile bar.txt --wait-exit --wait-stdout -- -l /usr</screen> 6752 6753 <screen>VBoxManage --nologo guestcontrol "My VM" run --exe "c:\\windows\\system32\\ipconfig.exe" 6754 --username foo --passwordfile bar.txt --wait-exit --wait-stdout</screen> 6755 6756 Note that the double backslashes in the second example are 6757 only required on Unix hosts. 6758 </para> 6759 6760 <para> 6761 <note> 6762 <para> 6763 For certain commands a user name of an existing user 6764 account on the guest must be specified; anonymous 6765 executions are not supported for security reasons. A user 6766 account password, however, is optional and depends on the 6767 guest's OS security policy or rules. If no password is 6768 specified for a given user name, an empty password will be 6769 used. On certain OSes like Windows the security policy may 6770 needs to be adjusted in order to allow user accounts with 6771 an empty password set. Also, global domain rules might 6772 apply and therefore cannot be changed. 6773 </para> 6774 </note> 6775 </para> 6776 6777 <para> 6778 Starting at VirtualBox 4.1.2 guest process execution by 6779 default is limited to serve up to 5 guest processes at a time. 6780 If a new guest process gets started which would exceed this 6781 limit, the oldest not running guest process will be discarded 6782 in order to be able to run that new process. Also, retrieving 6783 output from this old guest process will not be possible 6784 anymore then. If all 5 guest processes are still active and 6785 running, starting a new guest process will result in an 6786 appropriate error message. 6787 </para> 6788 6789 <para> 6790 To raise or lower the guest process execution limit, either 6791 the guest property 6792 <computeroutput>/VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept</computeroutput> 6793 or VBoxService' command line by specifying 6794 <computeroutput>--control-procs-max-kept</computeroutput> 6795 needs to be modified. A restart of the guest OS is required 6796 afterwards. To serve unlimited guest processes, a value of 6797 <computeroutput>0</computeroutput> needs to be set (not 6798 recommended). 6799 </para> 6800 </listitem> 6801 6802 <listitem> 6803 <para> 6804 <emphasis role="bold"><computeroutput>start</computeroutput></emphasis> 6805 Executes a guest program until it completes. 6806 </para> 6807 6808 <screen>VBoxManage guestcontrol <uuid|vmname> start [common-options] 4586 6809 [--exe <path to executable>] [--timeout <msec>] 4587 6810 [-E|--putenv <NAME>[=<VALUE>]] [--unquoted-args] … … 4590 6813 </screen> 4591 6814 4592 <para>Where the options are: <glosslist> 4593 <glossentry> 4594 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4595 <glossdef> 4596 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4597 </glossdef> 4598 </glossentry> 4599 4600 <glossentry> 4601 <glossterm><computeroutput>--exe <path to executable></computeroutput></glossterm> 4602 <glossdef><para>Specifies the absolute path of the executable on the guest OS file system. Mandatory. e.g.: 4603 <computeroutput>C:\Windows\System32\calc.exe</computeroutput></para> 4604 </glossdef> 4605 </glossentry> 4606 4607 <glossentry> 4608 <glossterm><computeroutput>--timeout <msec></computeroutput></glossterm> 4609 <glossdef> 4610 <para>Specifies the maximum time (microseconds) that the executable can run. Optional. 4611 If unspecified, VBoxManage waits indefinitely for the process to end, or an error occurs.</para> 4612 </glossdef> 4613 </glossentry> 4614 4615 <glossentry> 4616 <glossterm><computeroutput>-E|--putenv <NAME>=<VALUE> 4617 </computeroutput></glossterm> 4618 <glossdef> 4619 <para>Sets/modifies/unsets environment variable(s) in the environment in which the program will run. Optional.</para> 4620 <para>The guest process is created with the standard default guest OS environment. 4621 Use this option to modify that default environment. To set/modify a variable use: 4622 <computeroutput><NAME>=<VALUE></computeroutput>. 4623 To unset a variable use: 4624 <computeroutput><NAME>=</computeroutput></para> 4625 <para>Any spaces in names/values should be enclosed by quotes. </para> 4626 <para>To set/modify/unset multiple variables, use multiple instances of the 4627 <computeroutput>--E|--putenv</computeroutput> option. </para> 4628 </glossdef> 4629 </glossentry> 4630 4631 <glossentry> 4632 <glossterm><computeroutput>--unquoted-args</computeroutput></glossterm> 4633 <glossdef> 4634 <para>Disables escaped double quoting (e.g. \"fred\") on arguments passed to the executed program. Optional.</para> 4635 </glossdef> 4636 </glossentry> 4637 4638 <glossentry> 4639 <glossterm><computeroutput>--ignore-operhaned-processes</computeroutput></glossterm> 4640 <glossdef> 4641 <para>Ignores orphaned processes. Not yet implemented. Optional.</para> 4642 </glossdef> 4643 </glossentry> 4644 4645 <glossentry> 4646 <glossterm><computeroutput>--profile</computeroutput></glossterm> 4647 <glossdef> 4648 <para>Use a profile. Not yet implemented. Optional.</para> 4649 </glossdef> 4650 </glossentry> 4651 4652 <glossentry> 4653 <glossterm><computeroutput>[-- <program/arg0> [<argument1>] ... [<argumentN>]]</computeroutput></glossterm> 4654 <glossdef> 4655 <para>Specifies program name, followed by one or more arguments to pass to the program. Optional.</para> 4656 <para>Note: Any spaces in arguments should be enclosed by quotes.</para> 4657 </glossdef> 4658 </glossentry> 4659 </glosslist></para> 4660 4661 <para><note> 4662 <para>On Windows there are certain limitations for graphical 4663 applications; please see <xref linkend="KnownIssues" /> for more 4664 information.</para> 4665 </note> Examples: <screen>VBoxManage --nologo guestcontrol "My VM" start --exe "/bin/ls" 4666 --username foo --passwordfile bar.txt --wait-exit --wait-stdout -- -l /usr</screen> <screen>VBoxManage --nologo guestcontrol "My VM" start --exe "c:\\windows\\system32\\ipconfig.exe" 4667 --username foo --passwordfile bar.txt --wait-exit --wait-stdout</screen> Note that 4668 the double backslashes in the second example are only required on 4669 Unix hosts.</para> 4670 4671 <para><note> 4672 <para>For certain commands a user name of an existing user account on the guest 4673 must be specified; anonymous executions are not supported for security reasons. A 4674 user account password, however, is optional and depends on the guest's OS security 4675 policy or rules. If no password is specified for a given user name, an empty password 4676 will be used. On certain OSes like Windows the security policy may needs to be adjusted 4677 in order to allow user accounts with an empty password set. Also, global domain rules might 4678 apply and therefore cannot be changed.</para> 4679 </note></para> 4680 4681 <para>Starting at VirtualBox 4.1.2 guest process execution by default is limited 4682 to serve up to 5 guest processes at a time. If a new guest process gets started 4683 which would exceed this limit, the oldest not running guest process will be discarded 4684 in order to be able to run that new process. Also, retrieving output from this 4685 old guest process will not be possible anymore then. If all 5 guest processes 4686 are still active and running, starting a new guest process will result in an 4687 appropriate error message.</para> 4688 4689 <para>To raise or lower the guest process execution limit, either the guest 4690 property <computeroutput>/VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept</computeroutput> 4691 or VBoxService' command line by specifying <computeroutput>--control-procs-max-kept</computeroutput> 4692 needs to be modified. A restart of the guest OS is required afterwards. To serve unlimited 4693 guest processes, a value of <computeroutput>0</computeroutput> needs to be set (not recommended).</para> 4694 </listitem> 4695 4696 <listitem> 4697 <para><emphasis role="bold"><computeroutput>copyfrom</computeroutput></emphasis> 4698 Copies files from the guest to the host file system. 4699 (Note - only with Guest Additions 4.0 or later installed).</para> 4700 4701 <screen>VBoxManage guestcontrol <uuid|vmname> copyfrom [common-options] 6815 <para> 6816 Where the options are: 6817 </para> 6818 6819 <variablelist> 6820 6821 <varlistentry> 6822 <term> 6823 <computeroutput><uuid|vmname></computeroutput> 6824 </term> 6825 6826 <listitem> 6827 <para> 6828 Specifies the VM UUID or VM name. Mandatory. 6829 </para> 6830 </listitem> 6831 </varlistentry> 6832 6833 <varlistentry> 6834 <term> 6835 <computeroutput>--exe <path to 6836 executable></computeroutput> 6837 </term> 6838 6839 <listitem> 6840 <para> 6841 Specifies the absolute path of the executable on the 6842 guest OS file system. Mandatory. e.g.: 6843 <computeroutput>C:\Windows\System32\calc.exe</computeroutput> 6844 </para> 6845 </listitem> 6846 </varlistentry> 6847 6848 <varlistentry> 6849 <term> 6850 <computeroutput>--timeout <msec></computeroutput> 6851 </term> 6852 6853 <listitem> 6854 <para> 6855 Specifies the maximum time (microseconds) that the 6856 executable can run. Optional. If unspecified, VBoxManage 6857 waits indefinitely for the process to end, or an error 6858 occurs. 6859 </para> 6860 </listitem> 6861 </varlistentry> 6862 6863 <varlistentry> 6864 <term> 6865 <computeroutput>-E|--putenv <NAME>=<VALUE> 6866 </computeroutput> 6867 </term> 6868 6869 <listitem> 6870 <para> 6871 Sets/modifies/unsets environment variable(s) in the 6872 environment in which the program will run. Optional. 6873 </para> 6874 6875 <para> 6876 The guest process is created with the standard default 6877 guest OS environment. Use this option to modify that 6878 default environment. To set/modify a variable use: 6879 <computeroutput><NAME>=<VALUE></computeroutput>. 6880 To unset a variable use: 6881 <computeroutput><NAME>=</computeroutput> 6882 </para> 6883 6884 <para> 6885 Any spaces in names/values should be enclosed by quotes. 6886 </para> 6887 6888 <para> 6889 To set/modify/unset multiple variables, use multiple 6890 instances of the 6891 <computeroutput>--E|--putenv</computeroutput> option. 6892 </para> 6893 </listitem> 6894 </varlistentry> 6895 6896 <varlistentry> 6897 <term> 6898 <computeroutput>--unquoted-args</computeroutput> 6899 </term> 6900 6901 <listitem> 6902 <para> 6903 Disables escaped double quoting (e.g. \"fred\") on 6904 arguments passed to the executed program. Optional. 6905 </para> 6906 </listitem> 6907 </varlistentry> 6908 6909 <varlistentry> 6910 <term> 6911 <computeroutput>--ignore-operhaned-processes</computeroutput> 6912 </term> 6913 6914 <listitem> 6915 <para> 6916 Ignores orphaned processes. Not yet implemented. 6917 Optional. 6918 </para> 6919 </listitem> 6920 </varlistentry> 6921 6922 <varlistentry> 6923 <term> 6924 <computeroutput>--profile</computeroutput> 6925 </term> 6926 6927 <listitem> 6928 <para> 6929 Use a profile. Not yet implemented. Optional. 6930 </para> 6931 </listitem> 6932 </varlistentry> 6933 6934 <varlistentry> 6935 <term> 6936 <computeroutput>[-- <program/arg0> 6937 [<argument1>] ... 6938 [<argumentN>]]</computeroutput> 6939 </term> 6940 6941 <listitem> 6942 <para> 6943 Specifies program name, followed by one or more 6944 arguments to pass to the program. Optional. 6945 </para> 6946 6947 <para> 6948 Note: Any spaces in arguments should be enclosed by 6949 quotes. 6950 </para> 6951 </listitem> 6952 </varlistentry> 6953 6954 </variablelist> 6955 6956 <note> 6957 <para> 6958 On Windows there are certain limitations for graphical 6959 applications; please see <xref linkend="KnownIssues" /> for 6960 more information. 6961 </para> 6962 </note> 6963 6964 <para> 6965 Examples: 6966 6967 <screen>VBoxManage --nologo guestcontrol "My VM" start --exe "/bin/ls" 6968 --username foo --passwordfile bar.txt --wait-exit --wait-stdout -- -l /usr</screen> 6969 6970 <screen>VBoxManage --nologo guestcontrol "My VM" start --exe "c:\\windows\\system32\\ipconfig.exe" 6971 --username foo --passwordfile bar.txt --wait-exit --wait-stdout</screen> 6972 6973 Note that the double backslashes in the second example are 6974 only required on Unix hosts. 6975 </para> 6976 6977 <note> 6978 <para> 6979 For certain commands a user name of an existing user account 6980 on the guest must be specified; anonymous executions are not 6981 supported for security reasons. A user account password, 6982 however, is optional and depends on the guest's OS security 6983 policy or rules. If no password is specified for a given 6984 user name, an empty password will be used. On certain OSes 6985 like Windows the security policy may needs to be adjusted in 6986 order to allow user accounts with an empty password set. 6987 Also, global domain rules might apply and therefore cannot 6988 be changed. 6989 </para> 6990 </note> 6991 6992 <para> 6993 Starting at VirtualBox 4.1.2 guest process execution by 6994 default is limited to serve up to 5 guest processes at a time. 6995 If a new guest process gets started which would exceed this 6996 limit, the oldest not running guest process will be discarded 6997 in order to be able to run that new process. Also, retrieving 6998 output from this old guest process will not be possible 6999 anymore then. If all 5 guest processes are still active and 7000 running, starting a new guest process will result in an 7001 appropriate error message. 7002 </para> 7003 7004 <para> 7005 To raise or lower the guest process execution limit, either 7006 the guest property 7007 <computeroutput>/VirtualBox/GuestAdd/VBoxService/--control-procs-max-kept</computeroutput> 7008 or VBoxService' command line by specifying 7009 <computeroutput>--control-procs-max-kept</computeroutput> 7010 needs to be modified. A restart of the guest OS is required 7011 afterwards. To serve unlimited guest processes, a value of 7012 <computeroutput>0</computeroutput> needs to be set (not 7013 recommended). 7014 </para> 7015 </listitem> 7016 7017 <listitem> 7018 <para> 7019 <emphasis role="bold"><computeroutput>copyfrom</computeroutput></emphasis> 7020 Copies files from the guest to the host file system. (Note - 7021 only with Guest Additions 4.0 or later installed). 7022 </para> 7023 7024 <screen>VBoxManage guestcontrol <uuid|vmname> copyfrom [common-options] 4702 7025 [--follow] [--R|recursive] 4703 7026 --target-directory <host-dst-dir> 4704 7027 <guest-src0> [<guest-src1> [...]] </screen> 4705 7028 4706 <para>Where the parameters are:<glosslist> 4707 <glossentry> 4708 <glossterm><computeroutput><uid|vmname></computeroutput></glossterm> 4709 <glossdef> 4710 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4711 </glossdef> 4712 </glossentry> 4713 4714 <glossentry> 4715 <glossterm><computeroutput>--follow</computeroutput></glossterm> 4716 <glossdef> 4717 <para>Enables symlink following on the guest file system. Optional.</para> 4718 </glossdef> 4719 </glossentry> 4720 4721 <glossentry> 4722 <glossterm><computeroutput>-R|--recursive</computeroutput></glossterm> 4723 <glossdef> 4724 <para>Enables recursive copying of files/directories from the specified guest file system 4725 directory. Optional.</para> 4726 </glossdef> 4727 </glossentry> 4728 4729 <glossentry> 4730 <glossterm><computeroutput>--target-directory <host-dst-dir></computeroutput></glossterm> 4731 <glossdef> 4732 <para>Specifies the absolute path of the host file system destination directory. Mandatory. e.g. 4733 <computeroutput>C:\Temp</computeroutput>.</para> 4734 </glossdef> 4735 </glossentry> 4736 4737 <glossentry> 4738 <glossterm><computeroutput><guest-src0> [<guest-src1> [...]]</computeroutput></glossterm> 4739 <glossdef> 4740 <para>Specifies the absolute path(s) of guest file system file(s) to be copied. Mandatory. e.g. 4741 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>. 4742 Wildcards can be used in the expression(s), e.g. 4743 <computeroutput>C:\Windows\System*\*.dll</computeroutput>.</para> 4744 </glossdef> 4745 </glossentry> 4746 </glosslist> 4747 </para> 4748 </listitem> 4749 4750 <listitem> 4751 <para><emphasis role="bold"><computeroutput>copyto</computeroutput></emphasis> 4752 Copies files from the host to the guest file system. 4753 (Note - only with Guest Additions 4.0 or later installed).</para> 4754 4755 <screen>VBoxManage guestcontrol <uuid|vmname> copyto [common-options] 7029 <para> 7030 Where the parameters are: 7031 </para> 7032 7033 <variablelist> 7034 7035 <varlistentry> 7036 <term> 7037 <computeroutput><uid|vmname></computeroutput> 7038 </term> 7039 7040 <listitem> 7041 <para> 7042 Specifies the VM UUID or VM name. Mandatory. 7043 </para> 7044 </listitem> 7045 </varlistentry> 7046 7047 <varlistentry> 7048 <term> 7049 <computeroutput>--follow</computeroutput> 7050 </term> 7051 7052 <listitem> 7053 <para> 7054 Enables symlink following on the guest file system. 7055 Optional. 7056 </para> 7057 </listitem> 7058 </varlistentry> 7059 7060 <varlistentry> 7061 <term> 7062 <computeroutput>-R|--recursive</computeroutput> 7063 </term> 7064 7065 <listitem> 7066 <para> 7067 Enables recursive copying of files/directories from the 7068 specified guest file system directory. Optional. 7069 </para> 7070 </listitem> 7071 </varlistentry> 7072 7073 <varlistentry> 7074 <term> 7075 <computeroutput>--target-directory 7076 <host-dst-dir></computeroutput> 7077 </term> 7078 7079 <listitem> 7080 <para> 7081 Specifies the absolute path of the host file system 7082 destination directory. Mandatory. e.g. 7083 <computeroutput>C:\Temp</computeroutput>. 7084 </para> 7085 </listitem> 7086 </varlistentry> 7087 7088 <varlistentry> 7089 <term> 7090 <computeroutput><guest-src0> [<guest-src1> 7091 [...]]</computeroutput> 7092 </term> 7093 7094 <listitem> 7095 <para> 7096 Specifies the absolute path(s) of guest file system 7097 file(s) to be copied. Mandatory. e.g. 7098 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>. 7099 Wildcards can be used in the expression(s), e.g. 7100 <computeroutput>C:\Windows\System*\*.dll</computeroutput>. 7101 </para> 7102 </listitem> 7103 </varlistentry> 7104 7105 </variablelist> 7106 </listitem> 7107 7108 <listitem> 7109 <para> 7110 <emphasis role="bold"><computeroutput>copyto</computeroutput></emphasis> 7111 Copies files from the host to the guest file system. (Note - 7112 only with Guest Additions 4.0 or later installed). 7113 </para> 7114 7115 <screen>VBoxManage guestcontrol <uuid|vmname> copyto [common-options] 4756 7116 [--follow] [--R|recursive] 4757 7117 --target-directory <guest-dst> 4758 7118 <host-src0> [<host-src1> [...]] </screen> 4759 7119 4760 <para>Where the parameters are:<glosslist> 4761 <glossentry> 4762 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4763 <glossdef> 4764 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4765 </glossdef> 4766 </glossentry> 4767 4768 <glossentry> 4769 <glossterm><computeroutput>--follow</computeroutput></glossterm> 4770 <glossdef> 4771 <para>Enables symlink following on the host file system. Optional.</para> 4772 </glossdef> 4773 </glossentry> 4774 4775 <glossentry> 4776 <glossterm><computeroutput>-R|--recursive</computeroutput></glossterm> 4777 <glossdef> 4778 <para>Enables recursive copying of files/directories from the specified host file system 4779 directory(ies). Optional.</para> 4780 </glossdef> 4781 </glossentry> 4782 4783 <glossentry> 4784 <glossterm><computeroutput>--target-directory <guest-dst></computeroutput></glossterm> 4785 <glossdef> 4786 <para>Specifies the absolute path of the guest file system destination directory. Mandatory. e.g. 4787 <computeroutput>C:\Temp</computeroutput>.</para> 4788 </glossdef> 4789 </glossentry> 4790 4791 <glossentry> 4792 <glossterm><computeroutput><host-src0> [<host-src1> [...]]</computeroutput></glossterm> 4793 <glossdef> 4794 <para>Specifies the absolute path(s) of host file system file(s) to be copied. Mandatory. e.g. 4795 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>. 4796 Wildcards can be used in the expression(s), e.g. 4797 <computeroutput>C:\Windows\System*\*.dll</computeroutput>.</para> 4798 </glossdef> 4799 </glossentry> 4800 </glosslist> 4801 </para> 4802 </listitem> 4803 4804 <listitem> 4805 <para><emphasis role="bold"><computeroutput>md|mkdir|createdir|createdirectory</computeroutput></emphasis> 7120 <para> 7121 Where the parameters are: 7122 </para> 7123 7124 <variablelist> 7125 7126 <varlistentry> 7127 <term> 7128 <computeroutput><uuid|vmname></computeroutput> 7129 </term> 7130 7131 <listitem> 7132 <para> 7133 Specifies the VM UUID or VM name. Mandatory. 7134 </para> 7135 </listitem> 7136 </varlistentry> 7137 7138 <varlistentry> 7139 <term> 7140 <computeroutput>--follow</computeroutput> 7141 </term> 7142 7143 <listitem> 7144 <para> 7145 Enables symlink following on the host file system. 7146 Optional. 7147 </para> 7148 </listitem> 7149 </varlistentry> 7150 7151 <varlistentry> 7152 <term> 7153 <computeroutput>-R|--recursive</computeroutput> 7154 </term> 7155 7156 <listitem> 7157 <para> 7158 Enables recursive copying of files/directories from the 7159 specified host file system directory(ies). Optional. 7160 </para> 7161 </listitem> 7162 </varlistentry> 7163 7164 <varlistentry> 7165 <term> 7166 <computeroutput>--target-directory 7167 <guest-dst></computeroutput> 7168 </term> 7169 7170 <listitem> 7171 <para> 7172 Specifies the absolute path of the guest file system 7173 destination directory. Mandatory. e.g. 7174 <computeroutput>C:\Temp</computeroutput>. 7175 </para> 7176 </listitem> 7177 </varlistentry> 7178 7179 <varlistentry> 7180 <term> 7181 <computeroutput><host-src0> [<host-src1> 7182 [...]]</computeroutput> 7183 </term> 7184 7185 <listitem> 7186 <para> 7187 Specifies the absolute path(s) of host file system 7188 file(s) to be copied. Mandatory. e.g. 7189 <computeroutput>C:\Windows\System32\calc.exe</computeroutput>. 7190 Wildcards can be used in the expression(s), e.g. 7191 <computeroutput>C:\Windows\System*\*.dll</computeroutput>. 7192 </para> 7193 </listitem> 7194 </varlistentry> 7195 7196 </variablelist> 7197 </listitem> 7198 7199 <listitem> 7200 <para> 7201 <emphasis role="bold"><computeroutput>md|mkdir|createdir|createdirectory</computeroutput></emphasis> 4806 7202 Creates one or more directory(ies) on the guest file system. 4807 (Note - only with Guest Additions 4.0 or later installed).</para> 4808 4809 <screen>VBoxManage guestcontrol <uuid|vmname> md|mkdir|createdir|createdirectory [common-options] 7203 (Note - only with Guest Additions 4.0 or later installed). 7204 </para> 7205 7206 <screen>VBoxManage guestcontrol <uuid|vmname> md|mkdir|createdir|createdirectory [common-options] 4810 7207 [--parents] [--mode <mode>] 4811 7208 <guest-dir0> [<guest-dir1> [...]] </screen> 4812 7209 4813 <para>Where the parameters are: <glosslist> 4814 <glossentry> 4815 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4816 <glossdef> 4817 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4818 </glossdef> 4819 </glossentry> 4820 <glossentry> 4821 <glossterm><computeroutput>--parents</computeroutput></glossterm> 4822 <glossdef> 4823 <para>Creates any absent parent directory(ies) of the specified directory. Optional.</para> 4824 <para>e.g. If specified directory is <computeroutput>D:\Foo\Bar</computeroutput> 4825 and <computeroutput>D:\Foo</computeroutput> is absent, it will 4826 be created. In such a case, had the <computeroutput>--parents</computeroutput> 4827 option not been used, this command would have failed.</para> 4828 </glossdef> 4829 </glossentry> 4830 4831 <glossentry> 4832 <glossterm><computeroutput>--mode <mode></computeroutput></glossterm> 4833 <glossdef> 4834 <para>Specifies the permission mode on the specified directory(ies) (and any parents, 4835 where <computeroutput>--parents</computeroutput> option used). 4836 Currently octal modes (e.g. <computeroutput>0755</computeroutput>) only are 4837 supported.</para> 4838 </glossdef> 4839 </glossentry> 4840 4841 <glossentry> 4842 <glossterm><computeroutput><guest-dir0> [<guest-dir1> [...]]</computeroutput></glossterm> 4843 <glossdef> 4844 <para>Specifies list of absolute path(s) of directory(ies) to be created on 4845 guest file system. Mandatory. 4846 e.g. <computeroutput>D:\Foo\Bar</computeroutput>.</para> 4847 <para>All parent directories must already exist 4848 unless switch <computeroutput>--parents</computeroutput> used. 4849 (e.g. in the above example <computeroutput>D:\Foo</computeroutput>). 4850 The specified user must have sufficient rights to create the 4851 specified directory(ies), and any parents that need 4852 to be created.</para> 4853 </glossdef> 4854 </glossentry> 4855 </glosslist> 4856 </para> 4857 </listitem> 4858 4859 <listitem> 4860 <para><emphasis role="bold"><computeroutput>rmdir|removedir|removedirectory</computeroutput></emphasis> 4861 Deletes specified guest file system directories. (Only with installed Guest Additions 4.3.2 and later).</para> 4862 4863 <screen>VBoxManage guestcontrol <uuid|vmname> rmdir|removedir|removedirectory [common-options] 7210 <para> 7211 Where the parameters are: 7212 </para> 7213 7214 <variablelist> 7215 7216 <varlistentry> 7217 <term> 7218 <computeroutput><uuid|vmname></computeroutput> 7219 </term> 7220 7221 <listitem> 7222 <para> 7223 Specifies the VM UUID or VM name. Mandatory. 7224 </para> 7225 </listitem> 7226 </varlistentry> 7227 7228 <varlistentry> 7229 <term> 7230 <computeroutput>--parents</computeroutput> 7231 </term> 7232 7233 <listitem> 7234 <para> 7235 Creates any absent parent directory(ies) of the 7236 specified directory. Optional. 7237 </para> 7238 7239 <para> 7240 e.g. If specified directory is 7241 <computeroutput>D:\Foo\Bar</computeroutput> and 7242 <computeroutput>D:\Foo</computeroutput> is absent, it 7243 will be created. In such a case, had the 7244 <computeroutput>--parents</computeroutput> option not 7245 been used, this command would have failed. 7246 </para> 7247 </listitem> 7248 </varlistentry> 7249 7250 <varlistentry> 7251 <term> 7252 <computeroutput>--mode <mode></computeroutput> 7253 </term> 7254 7255 <listitem> 7256 <para> 7257 Specifies the permission mode on the specified 7258 directory(ies) (and any parents, where 7259 <computeroutput>--parents</computeroutput> option used). 7260 Currently octal modes (e.g. 7261 <computeroutput>0755</computeroutput>) only are 7262 supported. 7263 </para> 7264 </listitem> 7265 </varlistentry> 7266 7267 <varlistentry> 7268 <term> 7269 <computeroutput><guest-dir0> [<guest-dir1> 7270 [...]]</computeroutput> 7271 </term> 7272 7273 <listitem> 7274 <para> 7275 Specifies list of absolute path(s) of directory(ies) to 7276 be created on guest file system. Mandatory. e.g. 7277 <computeroutput>D:\Foo\Bar</computeroutput>. 7278 </para> 7279 7280 <para> 7281 All parent directories must already exist unless switch 7282 <computeroutput>--parents</computeroutput> used. (e.g. 7283 in the above example 7284 <computeroutput>D:\Foo</computeroutput>). The specified 7285 user must have sufficient rights to create the specified 7286 directory(ies), and any parents that need to be created. 7287 </para> 7288 </listitem> 7289 </varlistentry> 7290 7291 </variablelist> 7292 </listitem> 7293 7294 <listitem> 7295 <para> 7296 <emphasis role="bold"><computeroutput>rmdir|removedir|removedirectory</computeroutput></emphasis> 7297 Deletes specified guest file system directories. (Only with 7298 installed Guest Additions 4.3.2 and later). 7299 </para> 7300 7301 <screen>VBoxManage guestcontrol <uuid|vmname> rmdir|removedir|removedirectory [common-options] 4864 7302 [--recursive|-R] 4865 7303 <guest-dir0> [<guest-dir1> [...]] 4866 7304 </screen> 4867 7305 4868 <para>Where the parameters are: <glosslist> 4869 <glossentry> 4870 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4871 <glossdef> 4872 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4873 </glossdef> 4874 </glossentry> 4875 4876 <glossentry> 4877 <glossterm><computeroutput>--recursive</computeroutput></glossterm> 4878 <glossdef> 4879 <para>Recursively removes directories and contents. Optional.</para> 4880 </glossdef> 4881 </glossentry> 4882 4883 <glossentry> 4884 <glossterm><computeroutput><guest-dir0> [<guest-dir1> [...]]</computeroutput></glossterm> 4885 <glossdef> 4886 <para>Specifies list of the absolute path(s) of directory(ies) to be deleted on 4887 guest file system. Mandatory. Wildcards are allowed. e.g. <computeroutput>D:\Foo\*Bar</computeroutput>. 4888 The specified user must have sufficient rights to delete the 4889 specified directory(ies).</para> 4890 </glossdef> 4891 </glossentry> 4892 </glosslist></para> 4893 </listitem> 4894 4895 <listitem> 4896 <para><emphasis role="bold"><computeroutput>rm|removefile</computeroutput></emphasis> 4897 Deletes specified files on the guest file system. (Only with installed Guest 4898 Additions 4.3.2 and later).</para> 4899 4900 <screen>VBoxManage guestcontrol <uuid|vmname> rm|removefile [common-options] 7306 <para> 7307 Where the parameters are: 7308 </para> 7309 7310 <variablelist> 7311 7312 <varlistentry> 7313 <term> 7314 <computeroutput><uuid|vmname></computeroutput> 7315 </term> 7316 7317 <listitem> 7318 <para> 7319 Specifies the VM UUID or VM name. Mandatory. 7320 </para> 7321 </listitem> 7322 </varlistentry> 7323 7324 <varlistentry> 7325 <term> 7326 <computeroutput>--recursive</computeroutput> 7327 </term> 7328 7329 <listitem> 7330 <para> 7331 Recursively removes directories and contents. Optional. 7332 </para> 7333 </listitem> 7334 </varlistentry> 7335 7336 <varlistentry> 7337 <term> 7338 <computeroutput><guest-dir0> [<guest-dir1> 7339 [...]]</computeroutput> 7340 </term> 7341 7342 <listitem> 7343 <para> 7344 Specifies list of the absolute path(s) of directory(ies) 7345 to be deleted on guest file system. Mandatory. Wildcards 7346 are allowed. e.g. 7347 <computeroutput>D:\Foo\*Bar</computeroutput>. The 7348 specified user must have sufficient rights to delete the 7349 specified directory(ies). 7350 </para> 7351 </listitem> 7352 </varlistentry> 7353 7354 </variablelist> 7355 </listitem> 7356 7357 <listitem> 7358 <para> 7359 <emphasis role="bold"><computeroutput>rm|removefile</computeroutput></emphasis> 7360 Deletes specified files on the guest file system. (Only with 7361 installed Guest Additions 4.3.2 and later). 7362 </para> 7363 7364 <screen>VBoxManage guestcontrol <uuid|vmname> rm|removefile [common-options] 4901 7365 [-f|--force] 4902 7366 <guest-file0> [<guest-file1> [...]] </screen> 4903 7367 4904 <para>Where the parameters are: <glosslist> 4905 <glossentry> 4906 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4907 <glossdef> 4908 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4909 </glossdef> 4910 </glossentry> 4911 4912 <glossentry> 4913 <glossterm><computeroutput>-f|--force</computeroutput></glossterm> 4914 <glossdef> 4915 <para>Enforce operation (override any requests for confirmations). Optional.</para> 4916 </glossdef> 4917 </glossentry> 4918 4919 <glossentry> 4920 <glossterm><computeroutput><guest-file0> [<guest-file1> [...]]</computeroutput></glossterm> 4921 <glossdef> 4922 <para>Specifies list of absolute path(s) of file(s) to be deleted on guest file system. Mandatory. 4923 Wildcards are allowed. e.g. <computeroutput>D:\Foo\Bar\text*.txt</computeroutput>. 4924 The specified user should have sufficient rights to delete the specified file(s).</para> 4925 </glossdef> 4926 </glossentry> 4927 </glosslist> 4928 </para> 4929 </listitem> 4930 4931 <listitem> 4932 <para><emphasis role="bold"><computeroutput>mv|move|ren|rename</computeroutput></emphasis> 4933 This subcommand renames file(s) and/or directory(ies) on the guest file system. (Only with installed Guest 4934 Additions 4.3.2 and later).</para> 4935 4936 <screen>VBoxManage guestcontrol <uuid|vmname> mv|move|ren|rename [common-options] 7368 <para> 7369 Where the parameters are: 7370 </para> 7371 7372 <variablelist> 7373 7374 <varlistentry> 7375 <term> 7376 <computeroutput><uuid|vmname></computeroutput> 7377 </term> 7378 7379 <listitem> 7380 <para> 7381 Specifies the VM UUID or VM name. Mandatory. 7382 </para> 7383 </listitem> 7384 </varlistentry> 7385 7386 <varlistentry> 7387 <term> 7388 <computeroutput>-f|--force</computeroutput> 7389 </term> 7390 7391 <listitem> 7392 <para> 7393 Enforce operation (override any requests for 7394 confirmations). Optional. 7395 </para> 7396 </listitem> 7397 </varlistentry> 7398 7399 <varlistentry> 7400 <term> 7401 <computeroutput><guest-file0> [<guest-file1> 7402 [...]]</computeroutput> 7403 </term> 7404 7405 <listitem> 7406 <para> 7407 Specifies list of absolute path(s) of file(s) to be 7408 deleted on guest file system. Mandatory. Wildcards are 7409 allowed. e.g. 7410 <computeroutput>D:\Foo\Bar\text*.txt</computeroutput>. 7411 The specified user should have sufficient rights to 7412 delete the specified file(s). 7413 </para> 7414 </listitem> 7415 </varlistentry> 7416 7417 </variablelist> 7418 </listitem> 7419 7420 <listitem> 7421 <para> 7422 <emphasis role="bold"><computeroutput>mv|move|ren|rename</computeroutput></emphasis> 7423 This subcommand renames file(s) and/or directory(ies) on the 7424 guest file system. (Only with installed Guest Additions 4.3.2 7425 and later). 7426 </para> 7427 7428 <screen>VBoxManage guestcontrol <uuid|vmname> mv|move|ren|rename [common-options] 4937 7429 <guest-source0> [<guest-source1> [...]] <guest-dest></screen> 4938 7430 4939 <para>Where the parameters are: <glosslist> 4940 <glossentry> 4941 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4942 <glossdef> 4943 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4944 </glossdef> 4945 </glossentry> 4946 4947 <glossentry> 4948 <glossterm><computeroutput><guest-source0> [<guest-source1> [...]]</computeroutput></glossterm> 4949 <glossdef> 4950 <para>Specifies absolute path(s) of file(s) and/or single directory to be moved/renamed on guest 4951 file system. Mandatory. 4952 Wildcards are allowed in file names(s). The specified user should have sufficient rights to 4953 access the specified file(s).</para> 4954 </glossdef> 4955 </glossentry> 4956 4957 <glossentry> 4958 <glossterm><computeroutput><dest></computeroutput></glossterm> 4959 <glossdef> 4960 <para>Specifies the absolute path of the destination file/directory to which the file(s) 4961 are to be moved. Mandatory. If only one file to be moved, <dest> can be file or directory, 4962 else it must be a directory. 4963 The specified user must have sufficient rights to access the destination file/directory.</para> 4964 </glossdef> 4965 </glossentry> 4966 </glosslist></para> 4967 </listitem> 4968 4969 <listitem> 4970 <para><emphasis role="bold"><computeroutput>mktemp|createtemp|createtemporary</computeroutput></emphasis> 4971 Creates a temporary file/directory on the guest file system, to assist subsequent 4972 copying of files from the host to the guest file systems. By default, the file/directory 4973 is created in the guest's platform specific temp directory. Not currently supported. 4974 (Only with installed Guest Additions 4.2 and later).</para> 4975 4976 <screen>VBoxManage guestcontrol <uuid|vmname> mktemp|createtemp|createtemporary [common-options] 7431 <para> 7432 Where the parameters are: 7433 </para> 7434 7435 <variablelist> 7436 7437 <varlistentry> 7438 <term> 7439 <computeroutput><uuid|vmname></computeroutput> 7440 </term> 7441 7442 <listitem> 7443 <para> 7444 Specifies the VM UUID or VM name. Mandatory. 7445 </para> 7446 </listitem> 7447 </varlistentry> 7448 7449 <varlistentry> 7450 <term> 7451 <computeroutput><guest-source0> 7452 [<guest-source1> [...]]</computeroutput> 7453 </term> 7454 7455 <listitem> 7456 <para> 7457 Specifies absolute path(s) of file(s) and/or single 7458 directory to be moved/renamed on guest file system. 7459 Mandatory. Wildcards are allowed in file names(s). The 7460 specified user should have sufficient rights to access 7461 the specified file(s). 7462 </para> 7463 </listitem> 7464 </varlistentry> 7465 7466 <varlistentry> 7467 <term> 7468 <computeroutput><dest></computeroutput> 7469 </term> 7470 7471 <listitem> 7472 <para> 7473 Specifies the absolute path of the destination 7474 file/directory to which the file(s) are to be moved. 7475 Mandatory. If only one file to be moved, <dest> 7476 can be file or directory, else it must be a directory. 7477 The specified user must have sufficient rights to access 7478 the destination file/directory. 7479 </para> 7480 </listitem> 7481 </varlistentry> 7482 7483 </variablelist> 7484 </listitem> 7485 7486 <listitem> 7487 <para> 7488 <emphasis role="bold"><computeroutput>mktemp|createtemp|createtemporary</computeroutput></emphasis> 7489 Creates a temporary file/directory on the guest file system, 7490 to assist subsequent copying of files from the host to the 7491 guest file systems. By default, the file/directory is created 7492 in the guest's platform specific temp directory. Not currently 7493 supported. (Only with installed Guest Additions 4.2 and 7494 later). 7495 </para> 7496 7497 <screen>VBoxManage guestcontrol <uuid|vmname> mktemp|createtemp|createtemporary [common-options] 4977 7498 [--directory] [--secure] [--mode <mode>] [--tmpdir <directory>] 4978 7499 <template> 4979 7500 </screen> 4980 7501 4981 <para>The parameters are: <glosslist> 4982 <glossentry> 4983 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 4984 <glossdef> 4985 <para>Specifies the VM UUID or VM name. Mandatory.</para> 4986 </glossdef> 4987 </glossentry> 4988 4989 <glossentry> 4990 <glossterm><computeroutput>--directory</computeroutput></glossterm> 4991 <glossdef> 4992 <para>Creates a temporary directory instead of a file, specified by the <template> parameter. Optional.</para> 4993 </glossdef> 4994 </glossentry> 4995 4996 <glossentry> 4997 <glossterm><computeroutput>--secure</computeroutput></glossterm> 4998 <glossdef> 4999 <para> 5000 Enforces secure file/directory creation. Optional. The permission mode is set to 5001 <computeroutput>0755</computeroutput>. Operation fails if it cannot be performed securely. 5002 </para> 5003 </glossdef> 5004 </glossentry> 5005 5006 <glossentry> 5007 <glossterm><computeroutput>--mode <mode></computeroutput></glossterm> 5008 <glossdef> 5009 <para>Specifies the permission mode of the specified directory. Optional. 5010 Currently only octal modes (e.g. <computeroutput>0755</computeroutput>) 5011 are supported.</para> 5012 </glossdef> 5013 </glossentry> 5014 5015 <glossentry> 5016 <glossterm><computeroutput>--tmpdir <directory></computeroutput></glossterm> 5017 <glossdef> 5018 <para> 5019 Specifies the absolute path of the directory on the guest file system into which the 5020 file/directory specified in will be created. Optional. 5021 If unspecified, the platform-specific temp directory is used. 5022 </para> 5023 </glossdef> 5024 </glossentry> 5025 5026 <glossentry> 5027 <glossterm><computeroutput><template></computeroutput></glossterm> 5028 <glossdef> 5029 <para>Specifies a file name without a directory path, containing at least one sequence comprising 5030 three consecutive 'X' characters, or ending in 'X'. Mandatory. 5031 </para> 5032 </glossdef> 5033 </glossentry> 5034 </glosslist></para> 5035 </listitem> 5036 5037 <listitem> 5038 <para><emphasis role="bold"><computeroutput>stat</computeroutput></emphasis> 5039 Displays file or file system status(es) on the guest.</para> 5040 5041 <screen>VBoxManage guestcontrol <uuid|vmname> stat [common-options] 7502 <para> 7503 The parameters are: 7504 </para> 7505 7506 <variablelist> 7507 7508 <varlistentry> 7509 <term> 7510 <computeroutput><uuid|vmname></computeroutput> 7511 </term> 7512 7513 <listitem> 7514 <para> 7515 Specifies the VM UUID or VM name. Mandatory. 7516 </para> 7517 </listitem> 7518 </varlistentry> 7519 7520 <varlistentry> 7521 <term> 7522 <computeroutput>--directory</computeroutput> 7523 </term> 7524 7525 <listitem> 7526 <para> 7527 Creates a temporary directory instead of a file, 7528 specified by the <template> parameter. Optional. 7529 </para> 7530 </listitem> 7531 </varlistentry> 7532 7533 <varlistentry> 7534 <term> 7535 <computeroutput>--secure</computeroutput> 7536 </term> 7537 7538 <listitem> 7539 <para> 7540 Enforces secure file/directory creation. Optional. The 7541 permission mode is set to 7542 <computeroutput>0755</computeroutput>. Operation fails 7543 if it cannot be performed securely. 7544 </para> 7545 </listitem> 7546 </varlistentry> 7547 7548 <varlistentry> 7549 <term> 7550 <computeroutput>--mode <mode></computeroutput> 7551 </term> 7552 7553 <listitem> 7554 <para> 7555 Specifies the permission mode of the specified 7556 directory. Optional. Currently only octal modes (e.g. 7557 <computeroutput>0755</computeroutput>) are supported. 7558 </para> 7559 </listitem> 7560 </varlistentry> 7561 7562 <varlistentry> 7563 <term> 7564 <computeroutput>--tmpdir 7565 <directory></computeroutput> 7566 </term> 7567 7568 <listitem> 7569 <para> 7570 Specifies the absolute path of the directory on the 7571 guest file system into which the file/directory 7572 specified in will be created. Optional. If unspecified, 7573 the platform-specific temp directory is used. 7574 </para> 7575 </listitem> 7576 </varlistentry> 7577 7578 <varlistentry> 7579 <term> 7580 <computeroutput><template></computeroutput> 7581 </term> 7582 7583 <listitem> 7584 <para> 7585 Specifies a file name without a directory path, 7586 containing at least one sequence comprising three 7587 consecutive 'X' characters, or ending in 'X'. Mandatory. 7588 </para> 7589 </listitem> 7590 </varlistentry> 7591 7592 </variablelist> 7593 </listitem> 7594 7595 <listitem> 7596 <para> 7597 <emphasis role="bold"><computeroutput>stat</computeroutput></emphasis> 7598 Displays file or file system status(es) on the guest. 7599 </para> 7600 7601 <screen>VBoxManage guestcontrol <uuid|vmname> stat [common-options] 5042 7602 <file0> [<file1> [...]]</screen> 5043 7603 5044 <para>Where the parameters are: <glosslist> 5045 <glossentry> 5046 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5047 <glossdef> 5048 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5049 </glossdef> 5050 </glossentry> 5051 5052 <glossentry> 5053 <glossterm><computeroutput><file0> [<file1> [...]]</computeroutput></glossterm> 5054 <glossdef> 5055 <para>Specifies absolute path(s) of file(s) and/or file system(s) on guest file system. Mandatory. 5056 e.g. <computeroutput>/home/foo/a.out</computeroutput>. 5057 The specified user should have sufficient rights to access 5058 the specified file(s)/file system(s).</para> 5059 </glossdef> 5060 </glossentry> 5061 </glosslist></para> 5062 </listitem> 5063 </itemizedlist> 5064 </para> 5065 5066 <para>The second set of subcommands is of the form:</para> 5067 <screen>VBoxManage guestcontrol <uuid|vmname> <sub-command> 7604 <para> 7605 Where the parameters are: 7606 </para> 7607 7608 <variablelist> 7609 7610 <varlistentry> 7611 <term> 7612 <computeroutput><uuid|vmname></computeroutput> 7613 </term> 7614 7615 <listitem> 7616 <para> 7617 Specifies the VM UUID or VM name. Mandatory. 7618 </para> 7619 </listitem> 7620 </varlistentry> 7621 7622 <varlistentry> 7623 <term> 7624 <computeroutput><file0> [<file1> 7625 [...]]</computeroutput> 7626 </term> 7627 7628 <listitem> 7629 <para> 7630 Specifies absolute path(s) of file(s) and/or file 7631 system(s) on guest file system. Mandatory. e.g. 7632 <computeroutput>/home/foo/a.out</computeroutput>. The 7633 specified user should have sufficient rights to access 7634 the specified file(s)/file system(s). 7635 </para> 7636 </listitem> 7637 </varlistentry> 7638 7639 </variablelist> 7640 </listitem> 7641 7642 </itemizedlist> 7643 7644 <para> 7645 The second set of subcommands is of the form: 7646 </para> 7647 7648 <screen>VBoxManage guestcontrol <uuid|vmname> <sub-command> 5068 7649 [-v|--verbose] [-q|quiet] ... 5069 7650 </screen> 5070 7651 5071 <para>The "common-options" are:</para> 5072 <screen> 7652 <para> 7653 The "common-options" are: 7654 </para> 7655 7656 <screen> 5073 7657 [-v|--verbose] [-q|--quiet] 5074 7658 </screen> 5075 7659 5076 <para>Where details of the common options for the second set of subcommands are: 5077 <glosslist> 5078 5079 <glossentry> 5080 <glossterm><computeroutput>-v|--verbose</computeroutput></glossterm> 5081 <glossdef><para>Makes the sub-command execution more verbose. Optional.</para></glossdef> 5082 </glossentry> 5083 5084 <glossentry> 5085 <glossterm><computeroutput>-q|--quiet</computeroutput></glossterm> 5086 <glossdef><para>Makes the sub-command execution quieter. Optional.</para></glossdef> 5087 </glossentry> 5088 </glosslist> 5089 </para> 5090 5091 <para>The second set of subcommands: <itemizedlist> 5092 <listitem> 5093 <para><emphasis role="bold"><computeroutput>list</computeroutput></emphasis> 5094 Lists guest control configuration and status data, e.g. open guest sessions, 5095 guest processes and files.</para> 5096 5097 <screen>VBoxManage guestcontrol <uuid|vmname> list [common-opts] 7660 <para> 7661 Where details of the common options for the second set of 7662 subcommands are: 7663 </para> 7664 7665 <variablelist> 7666 7667 <varlistentry> 7668 <term> 7669 <computeroutput>-v|--verbose</computeroutput> 7670 </term> 7671 7672 <listitem> 7673 <para> 7674 Makes the sub-command execution more verbose. Optional. 7675 </para> 7676 </listitem> 7677 </varlistentry> 7678 7679 <varlistentry> 7680 <term> 7681 <computeroutput>-q|--quiet</computeroutput> 7682 </term> 7683 7684 <listitem> 7685 <para> 7686 Makes the sub-command execution quieter. Optional. 7687 </para> 7688 </listitem> 7689 </varlistentry> 7690 7691 </variablelist> 7692 7693 <para> 7694 The second set of subcommands: 7695 </para> 7696 7697 <itemizedlist> 7698 7699 <listitem> 7700 <para> 7701 <emphasis role="bold"><computeroutput>list</computeroutput></emphasis> 7702 Lists guest control configuration and status data, e.g. open 7703 guest sessions, guest processes and files. 7704 </para> 7705 7706 <screen>VBoxManage guestcontrol <uuid|vmname> list [common-opts] 5098 7707 <all|sessions|processes|files> </screen> 5099 7708 5100 <para>Where the parameters are: <glosslist> 5101 <glossentry> 5102 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5103 <glossdef> 5104 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5105 </glossdef> 5106 </glossentry> 5107 5108 <glossentry> 5109 <glossterm><computeroutput>all|sessions|processes|files</computeroutput></glossterm> 5110 <glossdef> 5111 <para>Indicates whether to list all available data or guest sessions, processes or files. 5112 Mandatory.</para> 5113 </glossdef> 5114 </glossentry> 5115 5116 </glosslist></para> 5117 </listitem> 5118 5119 <listitem> 5120 <para><emphasis role="bold"><computeroutput>closeprocess</computeroutput></emphasis> 5121 Terminates guest processes specified by PID(s))running in guest session(s), 5122 specified by the session ID or name(s).</para> 5123 5124 <screen>VBoxManage guestcontrol <uuid|vmname> closeprocess [common-options] 7709 <para> 7710 Where the parameters are: 7711 </para> 7712 7713 <variablelist> 7714 7715 <varlistentry> 7716 <term> 7717 <computeroutput><uuid|vmname></computeroutput> 7718 </term> 7719 7720 <listitem> 7721 <para> 7722 Specifies the VM UUID or VM name. Mandatory. 7723 </para> 7724 </listitem> 7725 </varlistentry> 7726 7727 <varlistentry> 7728 <term> 7729 <computeroutput>all|sessions|processes|files</computeroutput> 7730 </term> 7731 7732 <listitem> 7733 <para> 7734 Indicates whether to list all available data or guest 7735 sessions, processes or files. Mandatory. 7736 </para> 7737 </listitem> 7738 </varlistentry> 7739 7740 </variablelist> 7741 </listitem> 7742 7743 <listitem> 7744 <para> 7745 <emphasis role="bold"><computeroutput>closeprocess</computeroutput></emphasis> 7746 Terminates guest processes specified by PID(s))running in 7747 guest session(s), specified by the session ID or name(s). 7748 </para> 7749 7750 <screen>VBoxManage guestcontrol <uuid|vmname> closeprocess [common-options] 5125 7751 --session-id <ID> | --session-name <name or pattern> 5126 7752 <PID0> [<PID1> [...]] </screen> 5127 7753 5128 <para>Where the parameters are: <glosslist> 5129 <glossentry> 5130 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5131 <glossdef> 5132 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5133 </glossdef> 5134 </glossentry> 5135 5136 <glossentry> 5137 <glossterm><computeroutput>--session-id <ID></computeroutput></glossterm> 5138 <glossdef> 5139 <para>Specifies the guest session by its ID. Optional.</para> 5140 </glossdef> 5141 </glossentry> 5142 5143 <glossentry> 5144 <glossterm><computeroutput>--session-name <name or pattern></computeroutput></glossterm> 5145 <glossdef> 5146 <para>Specifies the guest session by its name, or multiple sessions 5147 using a pattern containing wildcards. Optional.</para> 5148 </glossdef> 5149 </glossentry> 5150 5151 <glossentry> 5152 <glossterm><computeroutput><PID0> [<PID1> [...]]</computeroutput></glossterm> 5153 <glossdef> 5154 <para>Specifies a list of process identifiers (PIDs) of guest processes to be terminated. Mandatory.</para> 5155 </glossdef> 5156 </glossentry> 5157 </glosslist></para> 5158 </listitem> 5159 5160 <listitem> 5161 <para><emphasis role="bold"><computeroutput>closesession</computeroutput></emphasis> 5162 Closes specified guest sessions, specified either by session ID or name.</para> 5163 5164 <screen>VBoxManage guestcontrol <uuid|vmname> closesession [common-options] 7754 <para> 7755 Where the parameters are: 7756 </para> 7757 7758 <variablelist> 7759 7760 <varlistentry> 7761 <term> 7762 <computeroutput><uuid|vmname></computeroutput> 7763 </term> 7764 7765 <listitem> 7766 <para> 7767 Specifies the VM UUID or VM name. Mandatory. 7768 </para> 7769 </listitem> 7770 </varlistentry> 7771 7772 <varlistentry> 7773 <term> 7774 <computeroutput>--session-id <ID></computeroutput> 7775 </term> 7776 7777 <listitem> 7778 <para> 7779 Specifies the guest session by its ID. Optional. 7780 </para> 7781 </listitem> 7782 </varlistentry> 7783 7784 <varlistentry> 7785 <term> 7786 <computeroutput>--session-name <name or 7787 pattern></computeroutput> 7788 </term> 7789 7790 <listitem> 7791 <para> 7792 Specifies the guest session by its name, or multiple 7793 sessions using a pattern containing wildcards. Optional. 7794 </para> 7795 </listitem> 7796 </varlistentry> 7797 7798 <varlistentry> 7799 <term> 7800 <computeroutput><PID0> [<PID1> 7801 [...]]</computeroutput> 7802 </term> 7803 7804 <listitem> 7805 <para> 7806 Specifies a list of process identifiers (PIDs) of guest 7807 processes to be terminated. Mandatory. 7808 </para> 7809 </listitem> 7810 </varlistentry> 7811 7812 </variablelist> 7813 </listitem> 7814 7815 <listitem> 7816 <para> 7817 <emphasis role="bold"><computeroutput>closesession</computeroutput></emphasis> 7818 Closes specified guest sessions, specified either by session 7819 ID or name. 7820 </para> 7821 7822 <screen>VBoxManage guestcontrol <uuid|vmname> closesession [common-options] 5165 7823 --session-id <ID> | --session-name <name or pattern> | --all </screen> 5166 7824 5167 <para>Where the parameters are: <glosslist> 5168 <glossentry> 5169 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5170 <glossdef> 5171 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5172 </glossdef> 5173 </glossentry> 5174 5175 <glossentry> 5176 <glossterm><computeroutput>--session-id <ID></computeroutput></glossterm> 5177 <glossdef> 5178 <para>Specifies the guest session to be closed by ID. Optional.</para> 5179 </glossdef> 5180 </glossentry> 5181 5182 <glossentry> 5183 <glossterm><computeroutput>--session-name <name or pattern></computeroutput></glossterm> 5184 <glossdef> 5185 <para>Specifies the guest session to be closed by name. Optional. 5186 Multiple sessions can be specified by using a pattern 5187 containing wildcards. </para> 5188 </glossdef> 5189 </glossentry> 5190 5191 <glossentry> 5192 <glossterm><computeroutput>--all</computeroutput></glossterm> 5193 <glossdef> 5194 <para>Close all guest sessions. Optional.</para> 5195 </glossdef> 5196 </glossentry> 5197 </glosslist></para> 5198 </listitem> 5199 5200 <listitem> 5201 <para><emphasis role="bold"><computeroutput>updatega|updateadditions|updateguestadditions</computeroutput></emphasis> 5202 Ugrades Guest Additions already installed on the guest. 5203 (Only already installed Guest Additions 4.0 and later).</para> 5204 5205 <screen>VBoxManage guestcontrol <uuid|vmname> updatega|updateadditions|updateguestadditions [common-options] 7825 <para> 7826 Where the parameters are: 7827 </para> 7828 7829 <variablelist> 7830 7831 <varlistentry> 7832 <term> 7833 <computeroutput><uuid|vmname></computeroutput> 7834 </term> 7835 7836 <listitem> 7837 <para> 7838 Specifies the VM UUID or VM name. Mandatory. 7839 </para> 7840 </listitem> 7841 </varlistentry> 7842 7843 <varlistentry> 7844 <term> 7845 <computeroutput>--session-id <ID></computeroutput> 7846 </term> 7847 7848 <listitem> 7849 <para> 7850 Specifies the guest session to be closed by ID. 7851 Optional. 7852 </para> 7853 </listitem> 7854 </varlistentry> 7855 7856 <varlistentry> 7857 <term> 7858 <computeroutput>--session-name <name or 7859 pattern></computeroutput> 7860 </term> 7861 7862 <listitem> 7863 <para> 7864 Specifies the guest session to be closed by name. 7865 Optional. Multiple sessions can be specified by using a 7866 pattern containing wildcards. 7867 </para> 7868 </listitem> 7869 </varlistentry> 7870 7871 <varlistentry> 7872 <term> 7873 <computeroutput>--all</computeroutput> 7874 </term> 7875 7876 <listitem> 7877 <para> 7878 Close all guest sessions. Optional. 7879 </para> 7880 </listitem> 7881 </varlistentry> 7882 7883 </variablelist> 7884 </listitem> 7885 7886 <listitem> 7887 <para> 7888 <emphasis role="bold"><computeroutput>updatega|updateadditions|updateguestadditions</computeroutput></emphasis> 7889 Ugrades Guest Additions already installed on the guest. (Only 7890 already installed Guest Additions 4.0 and later). 7891 </para> 7892 7893 <screen>VBoxManage guestcontrol <uuid|vmname> updatega|updateadditions|updateguestadditions 7894 [common-options] 5206 7895 [--source <New .ISO path>] 5207 7896 [--wait-start] 5208 7897 [-- <argument0> [<argument1> [...]]]</screen> 5209 7898 5210 <para>Where the parameters are: <glosslist> 5211 <glossentry> 5212 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5213 <glossdef> 5214 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5215 </glossdef> 5216 </glossentry> 5217 5218 <glossentry> 5219 <glossterm><computeroutput>--source</computeroutput> <New .ISO path></glossterm> 5220 <glossdef> 5221 <para>Specifies the absolute path on guest file system of the .ISO file for Guest Additions update. Mandatory.</para> 5222 </glossdef> 5223 </glossentry> 5224 5225 <glossentry> 5226 <glossterm><computeroutput>--wait-start</computeroutput></glossterm> 5227 <glossdef> 5228 <para>Indicates that VBoxManage starts the usual updating process on the guest and then waits 5229 until the actual Guest Additions updating begins, at which point VBoxManage self-terminates. Optional.</para> 5230 <para>Default behavior is that VBoxManage waits for completion of the Guest Additions update before 5231 terminating. Use of this option is sometimes necessary, as a running VBoxManage 5232 can affect the interaction between the installer and the guest OS.</para> 5233 </glossdef> 5234 </glossentry> 5235 5236 <glossentry> 5237 <glossterm><computeroutput>[-- <argument0> [<argument1> [...]]]</computeroutput></glossterm> 5238 <glossdef> 5239 <para>Specifies optional command line arguments to be supplied to the Guest Additions 5240 updater. Useful for retrofitting features which are not currently installed.</para> 5241 <para>Arguments containing spaces should be enclosed by quotes.</para> 5242 </glossdef> 5243 </glossentry> 5244 </glosslist></para> 5245 </listitem> 5246 5247 <listitem> 5248 <para><emphasis role="bold"><computeroutput>watch</computeroutput></emphasis> 5249 This subcommand prints current guest control activity.</para> 5250 5251 <screen>VBoxManage guestcontrol <uuid|vmname> watch [common-options] 7899 <para> 7900 Where the parameters are: 7901 </para> 7902 7903 <variablelist> 7904 7905 <varlistentry> 7906 <term> 7907 <computeroutput><uuid|vmname></computeroutput> 7908 </term> 7909 7910 <listitem> 7911 <para> 7912 Specifies the VM UUID or VM name. Mandatory. 7913 </para> 7914 </listitem> 7915 </varlistentry> 7916 7917 <varlistentry> 7918 <term> 7919 <computeroutput>--source</computeroutput> <New .ISO 7920 path> 7921 </term> 7922 7923 <listitem> 7924 <para> 7925 Specifies the absolute path on guest file system of the 7926 .ISO file for Guest Additions update. Mandatory. 7927 </para> 7928 </listitem> 7929 </varlistentry> 7930 7931 <varlistentry> 7932 <term> 7933 <computeroutput>--wait-start</computeroutput> 7934 </term> 7935 7936 <listitem> 7937 <para> 7938 Indicates that VBoxManage starts the usual updating 7939 process on the guest and then waits until the actual 7940 Guest Additions updating begins, at which point 7941 VBoxManage self-terminates. Optional. 7942 </para> 7943 7944 <para> 7945 Default behavior is that VBoxManage waits for completion 7946 of the Guest Additions update before terminating. Use of 7947 this option is sometimes necessary, as a running 7948 VBoxManage can affect the interaction between the 7949 installer and the guest OS. 7950 </para> 7951 </listitem> 7952 </varlistentry> 7953 7954 <varlistentry> 7955 <term> 7956 <computeroutput>[-- <argument0> [<argument1> 7957 [...]]]</computeroutput> 7958 </term> 7959 7960 <listitem> 7961 <para> 7962 Specifies optional command line arguments to be supplied 7963 to the Guest Additions updater. Useful for retrofitting 7964 features which are not currently installed. 7965 </para> 7966 7967 <para> 7968 Arguments containing spaces should be enclosed by 7969 quotes. 7970 </para> 7971 </listitem> 7972 </varlistentry> 7973 7974 </variablelist> 7975 </listitem> 7976 7977 <listitem> 7978 <para> 7979 <emphasis role="bold"><computeroutput>watch</computeroutput></emphasis> 7980 This subcommand prints current guest control activity. 7981 </para> 7982 7983 <screen>VBoxManage guestcontrol <uuid|vmname> watch [common-options] 5252 7984 </screen> 5253 <para>Where the parameters are: <glosslist> 5254 <glossentry> 5255 <glossterm><computeroutput><uuid|vmname></computeroutput></glossterm> 5256 <glossdef> 5257 <para>Specifies the VM UUID or VM name. Mandatory.</para> 5258 </glossdef> 5259 </glossentry> 5260 </glosslist></para> 5261 </listitem> 5262 </itemizedlist></para> 7985 7986 <para> 7987 Where the parameters are: 7988 </para> 7989 7990 <variablelist> 7991 7992 <varlistentry> 7993 <term> 7994 <computeroutput><uuid|vmname></computeroutput> 7995 </term> 7996 7997 <listitem> 7998 <para> 7999 Specifies the VM UUID or VM name. Mandatory. 8000 </para> 8001 </listitem> 8002 </varlistentry> 8003 8004 </variablelist> 8005 </listitem> 8006 8007 </itemizedlist> 8008 5263 8009 </sect1> 5264 8010 5265 <sect1 id="metrics"> 8011 <sect1 id="vboxmanage-metrics"> 8012 5266 8013 <title>VBoxManage metrics</title> 5267 8014 5268 <para>This command supports monitoring the usage of system resources. 5269 Resources are represented by various metrics associated with the host 5270 system or a particular VM. For example, the host system has a 5271 <computeroutput>CPU/Load/User</computeroutput> metric that shows the 5272 percentage of time CPUs spend executing in user mode over a specific 5273 sampling period.</para> 5274 5275 <para>Metric data is collected and retained internally; it may be 5276 retrieved at any time with the <computeroutput>VBoxManage metrics 5277 query</computeroutput> subcommand. The data is available as long as the 5278 background <computeroutput>VBoxSVC</computeroutput> process is alive. That 5279 process terminates shortly after all VMs and frontends have been 5280 closed.</para> 5281 5282 <para>By default no metrics are collected at all. Metrics collection does 5283 not start until <computeroutput>VBoxManage metrics setup</computeroutput> 5284 is invoked with a proper sampling interval and the number of metrics to be 5285 retained. The interval is measured in seconds. For example, to enable 5286 collecting the host processor and memory usage metrics every second and 5287 keeping the 5 most current samples, the following command can be 5288 used:</para> 5289 5290 <screen>VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage</screen> 5291 5292 <para>Metric collection can only be enabled for started VMs. Collected 5293 data and collection settings for a particular VM will disappear as soon as 5294 it shuts down. Use <computeroutput>VBoxManage metrics list 5295 </computeroutput> subcommand to see which metrics are currently available. 5296 You can also use <computeroutput>--list</computeroutput> option with any 5297 subcommand that modifies metric settings to find out which metrics were 5298 affected.</para> 5299 5300 <para>Note that the <computeroutput>VBoxManage metrics 5301 setup</computeroutput> subcommand discards all samples that may have been 5302 previously collected for the specified set of objects and metrics.</para> 5303 5304 <para>To enable or disable metrics collection without discarding the data 5305 <computeroutput>VBoxManage metrics enable</computeroutput> and 5306 <computeroutput>VBoxManage metrics disable</computeroutput> subcommands 5307 can be used. Note that these subcommands expect metrics, not submetrics, 5308 like <code>CPU/Load</code> or <code>RAM/Usage</code> as parameters. In 5309 other words enabling <code>CPU/Load/User</code> while disabling 5310 <code>CPU/Load/Kernel</code> is not supported.</para> 5311 5312 <para>The host and VMs have different sets of associated metrics. 5313 Available metrics can be listed with <computeroutput>VBoxManage metrics 5314 list</computeroutput> subcommand.</para> 5315 5316 <para>A complete metric name may include an aggregate function. The name 5317 has the following form: 5318 <computeroutput>Category/Metric[/SubMetric][:aggregate]</computeroutput>. 5319 For example, <computeroutput>RAM/Usage/Free:min</computeroutput> stands 5320 for the minimum amount of available memory over all retained data if 5321 applied to the host object.</para> 5322 5323 <para>Subcommands may apply to all objects and metrics or can be limited 5324 to one object or/and a list of metrics. If no objects or metrics are given 5325 in the parameters, the subcommands will apply to all available metrics of 5326 all objects. You may use an asterisk 5327 ("<computeroutput>*</computeroutput>") to explicitly specify that the 5328 command should be applied to all objects or metrics. Use "host" as the 5329 object name to limit the scope of the command to host-related metrics. To 5330 limit the scope to a subset of metrics, use a metric list with names 5331 separated by commas.</para> 5332 5333 <para>For example, to query metric data on the CPU time spent in user and 5334 kernel modes by the virtual machine named "test", you can use the 5335 following command:</para> 5336 5337 <screen>VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel</screen> 5338 5339 <para>The following list summarizes the available subcommands:</para> 5340 5341 <glosslist> 5342 <glossentry> 5343 <glossterm><computeroutput>list</computeroutput></glossterm> 5344 5345 <glossdef> 5346 <para>This subcommand shows the parameters of the currently existing 5347 metrics. Note that VM-specific metrics are only available when a 5348 particular VM is running.</para> 5349 </glossdef> 5350 </glossentry> 5351 5352 <glossentry> 5353 <glossterm><computeroutput>setup</computeroutput></glossterm> 5354 5355 <glossdef> 5356 <para>This subcommand sets the interval between taking two samples 5357 of metric data and the number of samples retained internally. The 5358 retained data is available for displaying with the 5359 <code>query</code> subcommand. The <computeroutput>--list 5360 </computeroutput> option shows which metrics have been modified as 5361 the result of the command execution.</para> 5362 </glossdef> 5363 </glossentry> 5364 5365 <glossentry> 5366 <glossterm><computeroutput>enable</computeroutput></glossterm> 5367 5368 <glossdef> 5369 <para>This subcommand "resumes" data collection after it has been 5370 stopped with <code>disable</code> subcommand. Note that specifying 5371 submetrics as parameters will not enable underlying metrics. Use 5372 <computeroutput>--list</computeroutput> to find out if the command 5373 did what was expected.</para> 5374 </glossdef> 5375 </glossentry> 5376 5377 <glossentry> 5378 <glossterm><computeroutput>disable</computeroutput></glossterm> 5379 5380 <glossdef> 5381 <para>This subcommand "suspends" data collection without affecting 5382 collection parameters or collected data. Note that specifying 5383 submetrics as parameters will not disable underlying metrics. Use 5384 <computeroutput>--list</computeroutput> to find out if the command 5385 did what was expected.</para> 5386 </glossdef> 5387 </glossentry> 5388 5389 <glossentry> 5390 <glossterm><computeroutput>query</computeroutput></glossterm> 5391 5392 <glossdef> 5393 <para>This subcommand retrieves and displays the currently retained 5394 metric data.<note> 5395 <para>The <code>query</code> subcommand does not remove or 5396 "flush" retained data. If you query often enough you will see 5397 how old samples are gradually being "phased out" by new 5398 samples.</para> 5399 </note></para> 5400 </glossdef> 5401 </glossentry> 5402 5403 <glossentry> 5404 <glossterm><computeroutput>collect</computeroutput></glossterm> 5405 5406 <glossdef> 5407 <para>This subcommand sets the interval between taking two samples 5408 of metric data and the number of samples retained internally. The 5409 collected data is displayed periodically until Ctrl-C is pressed 5410 unless the <computeroutput>--detach</computeroutput> option is 5411 specified. With the <computeroutput>--detach</computeroutput> 5412 option, this subcommand operates the same way as <code>setup</code> 5413 does. The <computeroutput>--list</computeroutput> option shows which 5414 metrics match the specified filter.</para> 5415 </glossdef> 5416 </glossentry> 5417 </glosslist> 8015 <para> 8016 This command supports monitoring the usage of system resources. 8017 Resources are represented by various metrics associated with the 8018 host system or a particular VM. For example, the host system has a 8019 <computeroutput>CPU/Load/User</computeroutput> metric that shows 8020 the percentage of time CPUs spend executing in user mode over a 8021 specific sampling period. 8022 </para> 8023 8024 <para> 8025 Metric data is collected and retained internally; it may be 8026 retrieved at any time with the <computeroutput>VBoxManage metrics 8027 query</computeroutput> subcommand. The data is available as long 8028 as the background <computeroutput>VBoxSVC</computeroutput> process 8029 is alive. That process terminates shortly after all VMs and 8030 frontends have been closed. 8031 </para> 8032 8033 <para> 8034 By default no metrics are collected at all. Metrics collection 8035 does not start until <computeroutput>VBoxManage metrics 8036 setup</computeroutput> is invoked with a proper sampling interval 8037 and the number of metrics to be retained. The interval is measured 8038 in seconds. For example, to enable collecting the host processor 8039 and memory usage metrics every second and keeping the 5 most 8040 current samples, the following command can be used: 8041 </para> 8042 8043 <screen>VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage</screen> 8044 8045 <para> 8046 Metric collection can only be enabled for started VMs. Collected 8047 data and collection settings for a particular VM will disappear as 8048 soon as it shuts down. Use <computeroutput>VBoxManage metrics list 8049 </computeroutput> subcommand to see which metrics are currently 8050 available. You can also use 8051 <computeroutput>--list</computeroutput> option with any subcommand 8052 that modifies metric settings to find out which metrics were 8053 affected. 8054 </para> 8055 8056 <para> 8057 Note that the <computeroutput>VBoxManage metrics 8058 setup</computeroutput> subcommand discards all samples that may 8059 have been previously collected for the specified set of objects 8060 and metrics. 8061 </para> 8062 8063 <para> 8064 To enable or disable metrics collection without discarding the 8065 data <computeroutput>VBoxManage metrics enable</computeroutput> 8066 and <computeroutput>VBoxManage metrics disable</computeroutput> 8067 subcommands can be used. Note that these subcommands expect 8068 metrics, not submetrics, like <code>CPU/Load</code> or 8069 <code>RAM/Usage</code> as parameters. In other words enabling 8070 <code>CPU/Load/User</code> while disabling 8071 <code>CPU/Load/Kernel</code> is not supported. 8072 </para> 8073 8074 <para> 8075 The host and VMs have different sets of associated metrics. 8076 Available metrics can be listed with <computeroutput>VBoxManage 8077 metrics list</computeroutput> subcommand. 8078 </para> 8079 8080 <para> 8081 A complete metric name may include an aggregate function. The name 8082 has the following form: 8083 <computeroutput>Category/Metric[/SubMetric][:aggregate]</computeroutput>. 8084 For example, <computeroutput>RAM/Usage/Free:min</computeroutput> 8085 stands for the minimum amount of available memory over all 8086 retained data if applied to the host object. 8087 </para> 8088 8089 <para> 8090 Subcommands may apply to all objects and metrics or can be limited 8091 to one object or/and a list of metrics. If no objects or metrics 8092 are given in the parameters, the subcommands will apply to all 8093 available metrics of all objects. You may use an asterisk 8094 ("<computeroutput>*</computeroutput>") to explicitly specify that 8095 the command should be applied to all objects or metrics. Use 8096 "host" as the object name to limit the scope of the command to 8097 host-related metrics. To limit the scope to a subset of metrics, 8098 use a metric list with names separated by commas. 8099 </para> 8100 8101 <para> 8102 For example, to query metric data on the CPU time spent in user 8103 and kernel modes by the virtual machine named "test", you can use 8104 the following command: 8105 </para> 8106 8107 <screen>VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel</screen> 8108 8109 <para> 8110 The following list summarizes the available subcommands: 8111 </para> 8112 8113 <variablelist> 8114 8115 <varlistentry> 8116 <term> 8117 <computeroutput>list</computeroutput> 8118 </term> 8119 8120 <listitem> 8121 <para> 8122 This subcommand shows the parameters of the currently 8123 existing metrics. Note that VM-specific metrics are only 8124 available when a particular VM is running. 8125 </para> 8126 </listitem> 8127 </varlistentry> 8128 8129 <varlistentry> 8130 <term> 8131 <computeroutput>setup</computeroutput> 8132 </term> 8133 8134 <listitem> 8135 <para> 8136 This subcommand sets the interval between taking two samples 8137 of metric data and the number of samples retained 8138 internally. The retained data is available for displaying 8139 with the <code>query</code> subcommand. The 8140 <computeroutput>--list </computeroutput> option shows which 8141 metrics have been modified as the result of the command 8142 execution. 8143 </para> 8144 </listitem> 8145 </varlistentry> 8146 8147 <varlistentry> 8148 <term> 8149 <computeroutput>enable</computeroutput> 8150 </term> 8151 8152 <listitem> 8153 <para> 8154 This subcommand "resumes" data collection after it has been 8155 stopped with <code>disable</code> subcommand. Note that 8156 specifying submetrics as parameters will not enable 8157 underlying metrics. Use 8158 <computeroutput>--list</computeroutput> to find out if the 8159 command did what was expected. 8160 </para> 8161 </listitem> 8162 </varlistentry> 8163 8164 <varlistentry> 8165 <term> 8166 <computeroutput>disable</computeroutput> 8167 </term> 8168 8169 <listitem> 8170 <para> 8171 This subcommand "suspends" data collection without affecting 8172 collection parameters or collected data. Note that 8173 specifying submetrics as parameters will not disable 8174 underlying metrics. Use 8175 <computeroutput>--list</computeroutput> to find out if the 8176 command did what was expected. 8177 </para> 8178 </listitem> 8179 </varlistentry> 8180 8181 <varlistentry> 8182 <term> 8183 <computeroutput>query</computeroutput> 8184 </term> 8185 8186 <listitem> 8187 <para> 8188 This subcommand retrieves and displays the currently 8189 retained metric data. 8190 8191 <note> 8192 <para> 8193 The <code>query</code> subcommand does not remove or 8194 "flush" retained data. If you query often enough you 8195 will see how old samples are gradually being "phased 8196 out" by new samples. 8197 </para> 8198 </note> 8199 </para> 8200 </listitem> 8201 </varlistentry> 8202 8203 <varlistentry> 8204 <term> 8205 <computeroutput>collect</computeroutput> 8206 </term> 8207 8208 <listitem> 8209 <para> 8210 This subcommand sets the interval between taking two samples 8211 of metric data and the number of samples retained 8212 internally. The collected data is displayed periodically 8213 until Ctrl-C is pressed unless the 8214 <computeroutput>--detach</computeroutput> option is 8215 specified. With the 8216 <computeroutput>--detach</computeroutput> option, this 8217 subcommand operates the same way as <code>setup</code> does. 8218 The <computeroutput>--list</computeroutput> option shows 8219 which metrics match the specified filter. 8220 </para> 8221 </listitem> 8222 </varlistentry> 8223 8224 </variablelist> 8225 5418 8226 </sect1> 5419 8227 5420 8228 <sect1 id="vboxmanage-natnetwork"> 8229 5421 8230 <title>VBoxManage natnetwork</title> 5422 8231 5423 <para>NAT networks use the Network Address Translation (NAT) service - which works in a 5424 similar way to a home router. It groups systems using it into a network and prevents 5425 outside systems from directly accessing those inside, while letting systems inside communicate 5426 with each other and outside systems using TCP and UDP over IPv4 and IPv6.</para> 5427 5428 <para>A NAT service is attached to an internal network. Virtual machines to make use of one 5429 should be attached to it. The name of an internal network is chosen when the NAT service is 5430 created, and the internal network will be created if it does not already exist. 5431 An example command to create a NAT network:</para> 5432 5433 <screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable</screen> 5434 5435 <para>Here, "natnet1" is the name of the internal network to be used and "192.168.15.0/24" is the 5436 network address and mask of the NAT service interface. By default, in this static configuration 5437 - the gateway will be assigned the address 192.168.15.1 (the address after the interface address), 5438 though this is subject to change.</para> 5439 5440 <para>To add a DHCP server to the NAT network after creation:</para> 5441 5442 <screen>VBoxManage natnetwork modify --netname natnet1 --dhcp on</screen> 5443 5444 <para>Below are the subcommands for <emphasis role="bold"><computeroutput>VBoxManage natnetwork </computeroutput></emphasis></para> 5445 5446 <screen>VBoxManage natnetwork add --netname <name> 8232 <para> 8233 NAT networks use the Network Address Translation (NAT) service, 8234 which works in a similar way to a home router. It groups systems 8235 using it into a network and prevents outside systems from directly 8236 accessing those inside, while letting systems inside communicate 8237 with each other and outside systems using TCP and UDP over IPv4 8238 and IPv6. 8239 </para> 8240 8241 <para> 8242 A NAT service is attached to an internal network. Virtual machines 8243 to make use of one should be attached to it. The name of an 8244 internal network is chosen when the NAT service is created, and 8245 the internal network will be created if it does not already exist. 8246 An example command to create a NAT network: 8247 </para> 8248 8249 <screen>VBoxManage natnetwork add --netname natnet1 --network "192.168.15.0/24" --enable</screen> 8250 8251 <para> 8252 Here, "natnet1" is the name of the internal network to be used and 8253 "192.168.15.0/24" is the network address and mask of the NAT 8254 service interface. By default, in this static configuration the 8255 gateway will be assigned the address 192.168.15.1, the address 8256 after the interface address, though this is subject to change. 8257 </para> 8258 8259 <para> 8260 To add a DHCP server to the NAT network after creation: 8261 </para> 8262 8263 <screen>VBoxManage natnetwork modify --netname natnet1 --dhcp on</screen> 8264 8265 <para> 8266 Below are the subcommands for 8267 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8268 </computeroutput></emphasis> 8269 </para> 8270 8271 <screen>VBoxManage natnetwork add --netname <name> 5447 8272 [--network <network>] 5448 8273 [--enable|--disable] … … 5455 8280 </screen> 5456 8281 5457 5458 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork add</computeroutput></emphasis> 5459 Creates a new internal network interface, and adds a NAT network service. This command is a 5460 prerequisite for enabling attachment of VMs to the NAT network. Parameters:</para> 5461 5462 <para> 5463 <glosslist> 5464 <glossentry> 5465 <glossterm><computeroutput>--netname <name></computeroutput></glossterm> 5466 <glossdef> 5467 <para>Where <name> is the name of the new internal network interface on the host OS. </para> 5468 </glossdef> 5469 </glossentry> 5470 <glossentry> 5471 <glossterm><computeroutput>--network <network></computeroutput></glossterm> 5472 <glossdef> 5473 <para>Where <network> specifies the static(default)/DHCP network address and mask of 5474 the NAT service interface.</para> 5475 </glossdef> 5476 </glossentry> 5477 <glossentry> 5478 <glossterm><computeroutput>--enable|--disable</computeroutput></glossterm> 5479 <glossdef> 5480 <para>Enables/disables the NAT network service.</para> 5481 </glossdef> 5482 </glossentry> 5483 <glossentry> 5484 <glossterm><computeroutput>--dhcp on|off</computeroutput></glossterm> 5485 <glossdef> 5486 <para>Enables/disables DHCP server specified by --netname; its use also indicates that it 5487 is a DHCP server.</para> 5488 </glossdef> 5489 </glossentry> 5490 <glossentry> 5491 <glossterm><computeroutput>--port-forward-4 <rule></computeroutput></glossterm> 5492 <glossdef> 5493 <para>Enables IPv4 port forwarding, rule specified by <rule>.</para> 5494 </glossdef> 5495 </glossentry> 5496 <glossentry> 5497 <glossterm><computeroutput>--loopback-4 <rule></computeroutput></glossterm> 5498 <glossdef> 5499 <para>Enables IPv4 loopback interface, rule specified by <rule>.</para> 5500 </glossdef> 5501 </glossentry> 5502 <glossentry> 5503 <glossterm><computeroutput>--ipv6 on|off</computeroutput></glossterm> 5504 <glossdef> 5505 <para>Enables/disables IPv6 (default is IPv4, disables gives IPv4).</para> 5506 </glossdef> 5507 </glossentry> 5508 <glossentry> 5509 <glossterm><computeroutput>--port-forward-6 <rule></computeroutput></glossterm> 5510 <glossdef> 5511 <para>Enables IPv6 port forwarding, rule specified by <rule>.</para> 5512 </glossdef> 5513 </glossentry> 5514 <glossentry> 5515 <glossterm><computeroutput>--loopback-6 <rule></computeroutput></glossterm> 5516 <glossdef> 5517 <para>Enables IPv6 loopback interface, rule specified by <rule>.</para> 5518 </glossdef> 5519 </glossentry> 5520 </glosslist> 5521 </para> 5522 5523 <screen>VBoxManage natnetwork remove --netname <name> </screen> 5524 5525 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork remove</computeroutput></emphasis> 5526 Removes a NAT network service, parameters:</para> 5527 5528 <para> 5529 <glosslist> 5530 <glossentry> 5531 <glossterm><computeroutput>--netname <name></computeroutput></glossterm> 5532 <glossdef> 5533 <para>Where <name> specifies an existing NAT network service. 5534 Does not remove any DHCP server enabled on the network.</para> 5535 </glossdef> 5536 </glossentry> 5537 </glosslist> 5538 </para> 5539 5540 <screen>VBoxManage natnetwork modify --netname <name> 8282 <para> 8283 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8284 add</computeroutput></emphasis> Creates a new internal network 8285 interface, and adds a NAT network service. This command is a 8286 prerequisite for enabling attachment of VMs to the NAT network. 8287 Parameters are as follows: 8288 </para> 8289 8290 <variablelist> 8291 8292 <varlistentry> 8293 <term> 8294 <computeroutput>--netname <name></computeroutput> 8295 </term> 8296 8297 <listitem> 8298 <para> 8299 Where <name> is the name of the new internal network 8300 interface on the host OS. 8301 </para> 8302 </listitem> 8303 </varlistentry> 8304 8305 <varlistentry> 8306 <term> 8307 <computeroutput>--network <network></computeroutput> 8308 </term> 8309 8310 <listitem> 8311 <para> 8312 Where <network> specifies the static(default)/DHCP 8313 network address and mask of the NAT service interface. 8314 </para> 8315 </listitem> 8316 </varlistentry> 8317 8318 <varlistentry> 8319 <term> 8320 <computeroutput>--enable|--disable</computeroutput> 8321 </term> 8322 8323 <listitem> 8324 <para> 8325 Enables/disables the NAT network service. 8326 </para> 8327 </listitem> 8328 </varlistentry> 8329 8330 <varlistentry> 8331 <term> 8332 <computeroutput>--dhcp on|off</computeroutput> 8333 </term> 8334 8335 <listitem> 8336 <para> 8337 Enables/disables DHCP server specified by --netname; its use 8338 also indicates that it is a DHCP server. 8339 </para> 8340 </listitem> 8341 </varlistentry> 8342 8343 <varlistentry> 8344 <term> 8345 <computeroutput>--port-forward-4 <rule></computeroutput> 8346 </term> 8347 8348 <listitem> 8349 <para> 8350 Enables IPv4 port forwarding, rule specified by 8351 <rule>. 8352 </para> 8353 </listitem> 8354 </varlistentry> 8355 8356 <varlistentry> 8357 <term> 8358 <computeroutput>--loopback-4 <rule></computeroutput> 8359 </term> 8360 8361 <listitem> 8362 <para> 8363 Enables IPv4 loopback interface, rule specified by 8364 <rule>. 8365 </para> 8366 </listitem> 8367 </varlistentry> 8368 8369 <varlistentry> 8370 <term> 8371 <computeroutput>--ipv6 on|off</computeroutput> 8372 </term> 8373 8374 <listitem> 8375 <para> 8376 Enables/disables IPv6 (default is IPv4, disables gives 8377 IPv4). 8378 </para> 8379 </listitem> 8380 </varlistentry> 8381 8382 <varlistentry> 8383 <term> 8384 <computeroutput>--port-forward-6 <rule></computeroutput> 8385 </term> 8386 8387 <listitem> 8388 <para> 8389 Enables IPv6 port forwarding, rule specified by 8390 <rule>. 8391 </para> 8392 </listitem> 8393 </varlistentry> 8394 8395 <varlistentry> 8396 <term> 8397 <computeroutput>--loopback-6 <rule></computeroutput> 8398 </term> 8399 8400 <listitem> 8401 <para> 8402 Enables IPv6 loopback interface, rule specified by 8403 <rule>. 8404 </para> 8405 </listitem> 8406 </varlistentry> 8407 8408 </variablelist> 8409 8410 <screen>VBoxManage natnetwork remove --netname <name> </screen> 8411 8412 <para> 8413 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8414 remove</computeroutput></emphasis> Removes a NAT network service. 8415 Parameters are as follows: 8416 </para> 8417 8418 <variablelist> 8419 8420 <varlistentry> 8421 <term> 8422 <computeroutput>--netname <name></computeroutput> 8423 </term> 8424 8425 <listitem> 8426 <para> 8427 Where <name> specifies an existing NAT network 8428 service. Does not remove any DHCP server enabled on the 8429 network. 8430 </para> 8431 </listitem> 8432 </varlistentry> 8433 8434 </variablelist> 8435 8436 <screen>VBoxManage natnetwork modify --netname <name> 5541 8437 [--network <network>] 5542 8438 [--enable|--disable] … … 5549 8445 </screen> 5550 8446 5551 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork modify</computeroutput></emphasis> 5552 Modifies an existing NAT network service, parameters:</para> 5553 5554 <para> 5555 <glosslist> 5556 <glossentry> 5557 <glossterm><computeroutput>--netname <name></computeroutput></glossterm> 5558 <glossdef> 5559 <para>Where <name> specifies an existing NAT network service.</para> 5560 </glossdef> 5561 </glossentry> 5562 <glossentry> 5563 <glossterm><computeroutput>--network <network></computeroutput></glossterm> 5564 <glossdef> 5565 <para>Where <network> specifies the new static(default)/DHCP network address and mask 5566 of the NAT service interface.</para> 5567 </glossdef> 5568 </glossentry> 5569 <glossentry> 5570 <glossterm><computeroutput>--enable|--disable</computeroutput></glossterm> 5571 <glossdef> 5572 <para>Enables/disables the NAT network service.</para> 5573 </glossdef> 5574 </glossentry> 5575 <glossentry> 5576 <glossterm><computeroutput>--dhcp on|off</computeroutput></glossterm> 5577 <glossdef> 5578 <para>Enables (and if absent, adds)/disables (if any) DHCP server.</para> 5579 </glossdef> 5580 </glossentry> 5581 <glossentry> 5582 <glossterm><computeroutput>--port-forward-4 <rule></computeroutput></glossterm> 5583 <glossdef> 5584 <para>Enables IPv4 port forwarding, rule specified by <rule>.</para> 5585 </glossdef> 5586 </glossentry> 5587 <glossentry> 5588 <glossterm><computeroutput>--loopback-4 <rule></computeroutput></glossterm> 5589 <glossdef> 5590 <para>Enables IPv4 loopback interface, rule specified by <rule>.</para> 5591 </glossdef> 5592 </glossentry> 5593 <glossentry> 5594 <glossterm><computeroutput>--ipv6 on|off</computeroutput></glossterm> 5595 <glossdef> 5596 <para>Enables/disables IPv6 (default is IPv4, disables gives IPv4).</para> 5597 </glossdef> 5598 </glossentry> 5599 <glossentry> 5600 <glossterm><computeroutput>--port-forward-6 <rule></computeroutput></glossterm> 5601 <glossdef> 5602 <para>Enables IPv6 port forwarding, rule specified by <rule>.</para> 5603 </glossdef> 5604 </glossentry> 5605 <glossentry> 5606 <glossterm><computeroutput>--loopback-6 <rule></computeroutput></glossterm> 5607 <glossdef> 5608 <para>Enables IPv6 loopback interface, rule specified by <rule>.</para> 5609 </glossdef> 5610 </glossentry> 5611 </glosslist> 5612 </para> 5613 5614 <screen>VBoxManage natnetwork start --netname <name> 8447 <para> 8448 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8449 modify</computeroutput></emphasis> Modifies an existing NAT 8450 network service. Parameters are as follows: 8451 </para> 8452 8453 <variablelist> 8454 8455 <varlistentry> 8456 <term> 8457 <computeroutput>--netname <name></computeroutput> 8458 </term> 8459 8460 <listitem> 8461 <para> 8462 Where <name> specifies an existing NAT network 8463 service. 8464 </para> 8465 </listitem> 8466 </varlistentry> 8467 8468 <varlistentry> 8469 <term> 8470 <computeroutput>--network <network></computeroutput> 8471 </term> 8472 8473 <listitem> 8474 <para> 8475 Where <network> specifies the new static(default)/DHCP 8476 network address and mask of the NAT service interface. 8477 </para> 8478 </listitem> 8479 </varlistentry> 8480 8481 <varlistentry> 8482 <term> 8483 <computeroutput>--enable|--disable</computeroutput> 8484 </term> 8485 8486 <listitem> 8487 <para> 8488 Enables/disables the NAT network service. 8489 </para> 8490 </listitem> 8491 </varlistentry> 8492 8493 <varlistentry> 8494 <term> 8495 <computeroutput>--dhcp on|off</computeroutput> 8496 </term> 8497 8498 <listitem> 8499 <para> 8500 Enables (and if absent, adds)/disables (if any) DHCP server. 8501 </para> 8502 </listitem> 8503 </varlistentry> 8504 8505 <varlistentry> 8506 <term> 8507 <computeroutput>--port-forward-4 <rule></computeroutput> 8508 </term> 8509 8510 <listitem> 8511 <para> 8512 Enables IPv4 port forwarding, rule specified by 8513 <rule>. 8514 </para> 8515 </listitem> 8516 </varlistentry> 8517 8518 <varlistentry> 8519 <term> 8520 <computeroutput>--loopback-4 <rule></computeroutput> 8521 </term> 8522 8523 <listitem> 8524 <para> 8525 Enables IPv4 loopback interface, rule specified by 8526 <rule>. 8527 </para> 8528 </listitem> 8529 </varlistentry> 8530 8531 <varlistentry> 8532 <term> 8533 <computeroutput>--ipv6 on|off</computeroutput> 8534 </term> 8535 8536 <listitem> 8537 <para> 8538 Enables/disables IPv6 (default is IPv4, disables gives 8539 IPv4). 8540 </para> 8541 </listitem> 8542 </varlistentry> 8543 8544 <varlistentry> 8545 <term> 8546 <computeroutput>--port-forward-6 <rule></computeroutput> 8547 </term> 8548 8549 <listitem> 8550 <para> 8551 Enables IPv6 port forwarding, rule specified by 8552 <rule>. 8553 </para> 8554 </listitem> 8555 </varlistentry> 8556 8557 <varlistentry> 8558 <term> 8559 <computeroutput>--loopback-6 <rule></computeroutput> 8560 </term> 8561 8562 <listitem> 8563 <para> 8564 Enables IPv6 loopback interface, rule specified by 8565 <rule>. 8566 </para> 8567 </listitem> 8568 </varlistentry> 8569 8570 </variablelist> 8571 8572 <screen>VBoxManage natnetwork start --netname <name> 5615 8573 </screen> 5616 8574 5617 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork start</computeroutput></emphasis> 5618 Starts specified NAT network service and any associated DHCP server, parameters:</para> 5619 5620 <para> 5621 <glosslist> 5622 <glossentry> 5623 <glossterm><computeroutput>--netname <name></computeroutput></glossterm> 5624 <glossdef> 5625 <para>Where <name> specifies an existing NAT network service.</para> 5626 </glossdef> 5627 </glossentry> 5628 </glosslist> 5629 </para> 5630 5631 <screen>VBoxManage natnetwork stop --netname <name> 8575 <para> 8576 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8577 start</computeroutput></emphasis> Starts specified NAT network 8578 service and any associated DHCP server. Parameters are as follows: 8579 </para> 8580 8581 <variablelist> 8582 8583 <varlistentry> 8584 <term> 8585 <computeroutput>--netname <name></computeroutput> 8586 </term> 8587 8588 <listitem> 8589 <para> 8590 Where <name> specifies an existing NAT network 8591 service. 8592 </para> 8593 </listitem> 8594 </varlistentry> 8595 8596 </variablelist> 8597 8598 <screen>VBoxManage natnetwork stop --netname <name> 5632 8599 </screen> 5633 8600 5634 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork stop</computeroutput></emphasis> 5635 Stops specified NAT network service and any DHCP server, parameters:</para> 5636 5637 <para> 5638 <glosslist> 5639 <glossentry> 5640 <glossterm><computeroutput>--netname <name></computeroutput></glossterm> 5641 <glossdef> 5642 <para>Where <name> specifies an existing NAT network service.</para> 5643 </glossdef> 5644 </glossentry> 5645 </glosslist> 5646 </para> 5647 5648 <screen>VBoxManage natnetwork list [<pattern>] </screen> 5649 5650 <para><emphasis role="bold"><computeroutput>VBoxManage natnetwork list</computeroutput></emphasis> 5651 Lists all NAT network services with optional filtering, parameters:</para> 5652 5653 <para> 5654 <glosslist> 5655 <glossentry> 5656 <glossterm><computeroutput>[<pattern>]</computeroutput></glossterm> 5657 <glossdef> 5658 <para>Where <pattern> is optional filtering pattern.</para> 5659 </glossdef> 5660 </glossentry> 5661 </glosslist> 5662 </para> 8601 <para> 8602 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8603 stop</computeroutput></emphasis> Stops specified NAT network 8604 service and any DHCP server. Parameters are as follows: 8605 </para> 8606 8607 <variablelist> 8608 8609 <varlistentry> 8610 <term> 8611 <computeroutput>--netname <name></computeroutput> 8612 </term> 8613 8614 <listitem> 8615 <para> 8616 Where <name> specifies an existing NAT network 8617 service. 8618 </para> 8619 </listitem> 8620 </varlistentry> 8621 8622 </variablelist> 8623 8624 <screen>VBoxManage natnetwork list [<pattern>] </screen> 8625 8626 <para> 8627 <emphasis role="bold"><computeroutput>VBoxManage natnetwork 8628 list</computeroutput></emphasis> Lists all NAT network services 8629 with optional filtering. Parameters are as follows: 8630 </para> 8631 8632 <variablelist> 8633 8634 <varlistentry> 8635 <term> 8636 <computeroutput>[<pattern>]</computeroutput> 8637 </term> 8638 8639 <listitem> 8640 <para> 8641 Where <pattern> is optional filtering pattern. 8642 </para> 8643 </listitem> 8644 </varlistentry> 8645 8646 </variablelist> 8647 5663 8648 </sect1> 5664 8649 5665 8650 <sect1 id="vboxmanage-hostonlyif"> 8651 5666 8652 <title>VBoxManage hostonlyif</title> 5667 8653 5668 <para>With "hostonlyif" you can change the IP configuration of a host-only 5669 network interface. For a description of host-only networking, please 5670 refer to <xref linkend="network_hostonly" />. Each host-only interface is 5671 identified by a name and can either use the internal DHCP server or a 5672 manual IP configuration (both IP4 and IP6).</para> 5673 5674 <para>The following list summarizes the available subcommands:</para> 5675 5676 <glosslist> 5677 <glossentry> 5678 <glossterm><computeroutput>ipconfig "<name>"</computeroutput></glossterm> 5679 <glossdef> 5680 <para>Configure a hostonly interface</para> 5681 </glossdef> 5682 </glossentry> 5683 <glossentry> 5684 <glossterm><computeroutput>create</computeroutput></glossterm> 5685 <glossdef> 5686 <para>Creates a new vboxnet<N> interface on the host OS. 5687 This command is essential before you can attach VMs to host-only network.</para> 5688 </glossdef> 5689 </glossentry> 5690 <glossentry> 5691 <glossterm><computeroutput>remove vboxnet<N></computeroutput></glossterm> 5692 <glossdef> 5693 <para>Removes a vboxnet<N> interface from the host OS.</para> 5694 </glossdef> 5695 </glossentry> 5696 </glosslist> 8654 <para> 8655 With "hostonlyif" you can change the IP configuration of a 8656 host-only network interface. For a description of host-only 8657 networking, see <xref linkend="network_hostonly" />. Each 8658 host-only interface is identified by a name and can either use the 8659 internal DHCP server or a manual IP configuration, both IP4 and 8660 IP6. 8661 </para> 8662 8663 <para> 8664 The following list summarizes the available subcommands: 8665 </para> 8666 8667 <variablelist> 8668 8669 <varlistentry> 8670 <term> 8671 <computeroutput>ipconfig "<name>"</computeroutput> 8672 </term> 8673 8674 <listitem> 8675 <para> 8676 Configure a host-only interface 8677 </para> 8678 </listitem> 8679 </varlistentry> 8680 8681 <varlistentry> 8682 <term> 8683 <computeroutput>create</computeroutput> 8684 </term> 8685 8686 <listitem> 8687 <para> 8688 Creates a new vboxnet<N> interface on the host OS. 8689 This command is essential before you can attach VMs to a 8690 host-only network. 8691 </para> 8692 </listitem> 8693 </varlistentry> 8694 8695 <varlistentry> 8696 <term> 8697 <computeroutput>remove vboxnet<N></computeroutput> 8698 </term> 8699 8700 <listitem> 8701 <para> 8702 Removes a vboxnet<N> interface from the host OS. 8703 </para> 8704 </listitem> 8705 </varlistentry> 8706 8707 </variablelist> 5697 8708 5698 8709 </sect1> 5699 8710 5700 8711 <sect1 id="vboxmanage-dhcpserver"> 8712 5701 8713 <title>VBoxManage dhcpserver</title> 5702 8714 5703 <para>The "dhcpserver" commands allow you to control the DHCP server that 5704 is built into VirtualBox. You may find this useful when using internal or 5705 host-only networking. (Theoretically, you can enable it for a bridged 5706 network as well, but that will likely cause conflicts with other DHCP 5707 servers in your physical network.)</para> 5708 5709 <para>Use the following command line options:<itemizedlist> 5710 <listitem> 5711 <para>If you use internal networking for a virtual network adapter 5712 of a virtual machine, use <computeroutput>VBoxManage dhcpserver add 5713 --netname <network_name></computeroutput>, where 5714 <computeroutput><network_name></computeroutput> is the same 5715 network name you used with <computeroutput>VBoxManage modifyvm 5716 <vmname> --intnet<X> 5717 <network_name></computeroutput>.</para> 5718 </listitem> 5719 5720 <listitem> 5721 <para>If you use host-only networking for a virtual network adapter 5722 of a virtual machine, use <computeroutput>VBoxManage dhcpserver add 5723 --ifname <hostonly_if_name></computeroutput> instead, where 5724 <computeroutput><hostonly_if_name></computeroutput> is the 5725 same host-only interface name you used with 8715 <para> 8716 The "dhcpserver" commands allow you to control the DHCP server 8717 that is built into VirtualBox. You may find this useful when using 8718 internal or host-only networking. Theoretically, you can enable it 8719 for a bridged network as well, but that will likely cause 8720 conflicts with other DHCP servers in your physical network. 8721 </para> 8722 8723 <para> 8724 Use the following command line options: 8725 </para> 8726 8727 <itemizedlist> 8728 8729 <listitem> 8730 <para> 8731 If you use internal networking for a virtual network adapter 8732 of a virtual machine, use <computeroutput>VBoxManage 8733 dhcpserver add --netname 8734 <network_name></computeroutput>, where 8735 <computeroutput><network_name></computeroutput> is the 8736 same network name you used with <computeroutput>VBoxManage 8737 modifyvm <vmname> --intnet<X> 8738 <network_name></computeroutput>. 8739 </para> 8740 </listitem> 8741 8742 <listitem> 8743 <para> 8744 If you use host-only networking for a virtual network adapter 8745 of a virtual machine, use <computeroutput>VBoxManage 8746 dhcpserver add --ifname 8747 <hostonly_if_name></computeroutput> instead, where 8748 <computeroutput><hostonly_if_name></computeroutput> is 8749 the same host-only interface name you used with 5726 8750 <computeroutput>VBoxManage modifyvm <vmname> 5727 8751 --hostonlyadapter<X> 5728 <hostonly_if_name></computeroutput>.</para> 5729 5730 <para>Alternatively, you can also use the 8752 <hostonly_if_name></computeroutput>. 8753 </para> 8754 8755 <para> 8756 Alternatively, you can also use the 5731 8757 <computeroutput>--netname</computeroutput> option as with 5732 internal networks if you know the host-only network's name; you can 5733 see the names with <computeroutput>VBoxManage list 5734 hostonlyifs</computeroutput> (see <xref linkend="vboxmanage-list" /> 5735 above).</para> 5736 </listitem> 5737 </itemizedlist></para> 5738 5739 <para>The following additional parameters are required when first adding a 5740 DHCP server:<itemizedlist> 5741 <listitem> 5742 <para>With <computeroutput>--ip</computeroutput>, specify the IP 5743 address of the DHCP server itself.</para> 5744 </listitem> 5745 5746 <listitem> 5747 <para>With <computeroutput>--netmask</computeroutput>, specify the 5748 netmask of the network.</para> 5749 </listitem> 5750 5751 <listitem> 5752 <para>With <computeroutput>--lowerip</computeroutput> and 5753 <computeroutput>--upperip</computeroutput>, you can specify the 5754 lowest and highest IP address, respectively, that the DHCP server 5755 will hand out to clients.</para> 5756 </listitem> 5757 </itemizedlist></para> 5758 5759 <para>Finally, you must specify <computeroutput>--enable</computeroutput> 5760 or the DHCP server will be created in the disabled state, doing 5761 nothing.</para> 5762 5763 <para>After this, VirtualBox will automatically start the DHCP server for 5764 given internal or host-only network as soon as the first virtual machine 5765 which uses that network is started.</para> 5766 5767 <para>Reversely, use <computeroutput>VBoxManage dhcpserver 5768 remove</computeroutput> with the given <computeroutput>--netname 5769 <network_name></computeroutput> or <computeroutput>--ifname 5770 <hostonly_if_name></computeroutput> to remove the DHCP server again 5771 for the given internal or host-only network.</para> 5772 5773 <para>To modify the settings of a DHCP server created earlier with 5774 <computeroutput>VBoxManage dhcpserver add</computeroutput>, you can use 5775 <computeroutput>VBoxManage dhcpserver modify</computeroutput> for a given 5776 network or host-only interface name. This has the same parameters as 5777 <computeroutput>VBoxManage dhcpserver add</computeroutput>.</para> 8758 internal networks if you know the host-only network's name. 8759 You can see the names with <computeroutput>VBoxManage list 8760 hostonlyifs</computeroutput>. See 8761 <xref linkend="vboxmanage-list" />. 8762 </para> 8763 </listitem> 8764 8765 </itemizedlist> 8766 8767 <para> 8768 The following additional parameters are required when first adding 8769 a DHCP server: 8770 </para> 8771 8772 <itemizedlist> 8773 8774 <listitem> 8775 <para> 8776 With <computeroutput>--ip</computeroutput>, specify the IP 8777 address of the DHCP server itself. 8778 </para> 8779 </listitem> 8780 8781 <listitem> 8782 <para> 8783 With <computeroutput>--netmask</computeroutput>, specify the 8784 netmask of the network. 8785 </para> 8786 </listitem> 8787 8788 <listitem> 8789 <para> 8790 With <computeroutput>--lowerip</computeroutput> and 8791 <computeroutput>--upperip</computeroutput>, you can specify 8792 the lowest and highest IP address, respectively, that the DHCP 8793 server will hand out to clients. 8794 </para> 8795 </listitem> 8796 8797 </itemizedlist> 8798 8799 <para> 8800 Finally, you must specify 8801 <computeroutput>--enable</computeroutput> or the DHCP server will 8802 be created in the disabled state, doing nothing. 8803 </para> 8804 8805 <para> 8806 After this, VirtualBox will automatically start the DHCP server 8807 for given internal or host-only network as soon as the first 8808 virtual machine which uses that network is started. 8809 </para> 8810 8811 <para> 8812 Reversely, use <computeroutput>VBoxManage dhcpserver 8813 remove</computeroutput> with the given <computeroutput>--netname 8814 <network_name></computeroutput> or <computeroutput>--ifname 8815 <hostonly_if_name></computeroutput> to remove the DHCP 8816 server again for the given internal or host-only network. 8817 </para> 8818 8819 <para> 8820 To modify the settings of a DHCP server created earlier with 8821 <computeroutput>VBoxManage dhcpserver add</computeroutput>, you 8822 can use <computeroutput>VBoxManage dhcpserver 8823 modify</computeroutput> for a given network or host-only interface 8824 name. This has the same parameters as <computeroutput>VBoxManage 8825 dhcpserver add</computeroutput>. 8826 </para> 8827 5778 8828 </sect1> 5779 8829 5780 8830 <sect1 id="vboxmanage-usbdevsource"> 8831 5781 8832 <title>VBoxManage usbdevsource</title> 5782 8833 5783 <para>The "usbdevsource" commands enables you to add and remove USB devices 5784 globally.</para> 5785 5786 <para>The following command adds a USB device.</para> 5787 5788 <screen>VBoxManage usbdevsource add <source name> 8834 <para> 8835 The "usbdevsource" commands enable you to add and remove USB 8836 devices globally. 8837 </para> 8838 8839 <para> 8840 The following command adds a USB device. 8841 </para> 8842 8843 <screen>VBoxManage usbdevsource add <source name> 5789 8844 --backend <backend> 5790 8845 --address <address> 5791 8846 </screen> 5792 8847 5793 <para>Where the command line options are:<itemizedlist> 5794 <listitem> 5795 <para><source name> specifies the ID of the 'source' USB 5796 device to be added. Mandatory.</para> 5797 </listitem> 5798 <listitem> 5799 <para>--backend <backend> specifies the USB proxy service 5800 backend to use. Mandatory.</para> 5801 </listitem> 5802 <listitem> 5803 <para>--address <address> specifies the backend specific 5804 address. Mandatory.</para> 5805 </listitem> 5806 </itemizedlist></para> 5807 5808 <para>The following command removes a USB device.</para> 5809 5810 <screen>VBoxManage usbdevsource remove <source name> 8848 <para> 8849 Where the command line options are: 8850 </para> 8851 8852 <itemizedlist> 8853 8854 <listitem> 8855 <para> 8856 <source name> specifies the ID of the 'source' USB 8857 device to be added. Mandatory. 8858 </para> 8859 </listitem> 8860 8861 <listitem> 8862 <para> 8863 --backend <backend> specifies the USB proxy service 8864 backend to use. Mandatory. 8865 </para> 8866 </listitem> 8867 8868 <listitem> 8869 <para> 8870 --address <address> specifies the backend specific 8871 address. Mandatory. 8872 </para> 8873 </listitem> 8874 8875 </itemizedlist> 8876 8877 <para> 8878 The following command removes a USB device. 8879 </para> 8880 8881 <screen>VBoxManage usbdevsource remove <source name> 5811 8882 </screen> 5812 8883 5813 <para>Where the command line options are:<itemizedlist> 5814 <listitem> 5815 <para><source name> specifies the ID of the 'source' USB 5816 device to be removed. Mandatory.</para> 5817 </listitem> 5818 </itemizedlist></para> 8884 <para> 8885 Where the command line options are: 8886 </para> 8887 8888 <itemizedlist> 8889 8890 <listitem> 8891 <para> 8892 <source name> specifies the ID of the 'source' USB 8893 device to be removed. Mandatory. 8894 </para> 8895 </listitem> 8896 8897 </itemizedlist> 8898 5819 8899 </sect1> 5820 8900 5821 5822 <xi:include href="user_man_VBoxManage-mediumio.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> 5823 <xi:include href="user_man_VBoxManage-debugvm.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> 5824 <xi:include href="user_man_VBoxManage-extpack.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> 5825 <xi:include href="user_man_VBoxManage-unattended.xml" xpointer="element(/1)" xmlns:xi="http://www.w3.org/2001/XInclude" /> 8901 <xi:include href="user_man_VBoxManage-mediumio.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 8902 8903 <xi:include href="user_man_VBoxManage-debugvm.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 8904 8905 <xi:include href="user_man_VBoxManage-extpack.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 8906 8907 <xi:include href="user_man_VBoxManage-unattended.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> 8908 5826 8909 </chapter> -
trunk/doc/manual/en_US/user_VirtualBoxAPI.xml
r69633 r73276 1 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"> 2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" 3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[ 4 <!ENTITY % all.entities SYSTEM "all-entities.ent"> 5 %all.entities; 6 ]> 4 7 <chapter id="VirtualBoxAPI"> 5 <title>VirtualBox programming interfaces</title>6 8 7 <para>VirtualBox comes with comprehensive support for third-party 8 developers. The so-called "Main API" of VirtualBox exposes the entire 9 feature set of the virtualization engine. It is completely documented and 10 available to anyone who wishes to control VirtualBox programmatically. 9 <title>VirtualBox Programming Interfaces</title> 10 11 <para> 12 VirtualBox comes with comprehensive support for third-party 13 developers. The so-called "Main API" of VirtualBox exposes the 14 entire feature set of the virtualization engine. It is completely 15 documented and available to anyone who wishes to control VirtualBox 16 programmatically. 11 17 </para> 12 18 13 <para>The Main API is made available to C++ clients through COM (on Windows 14 hosts) or XPCOM (on other hosts). Bridges also exist for SOAP, Java and 15 Python.</para> 19 <para> 20 The Main API is made available to C++ clients through COM on Windows 21 hosts or XPCOM on other hosts. Bridges also exist for SOAP, Java and 22 Python. 23 </para> 16 24 17 <para>All programming information (documentation, reference information, 18 header and other interface files as well as samples) have been split out to 19 a separate <emphasis role="bold">Software Development Kit (SDK),</emphasis> 20 which is available for download from <ulink type="" 21 url="http://www.virtualbox.org">http://www.virtualbox.org</ulink>. In 22 particular, the SDK comes with a "Programming Guide and Reference" in PDF 23 format, which contains, among other things, the information that was 24 previously in this chapter of the User Manual.</para> 25 <para> 26 All programming information such as documentation, reference 27 information, header and other interface files, as well as samples 28 have been split out to a separate <emphasis role="bold">Software 29 Development Kit (SDK)</emphasis>. The SDK is available for download 30 from 31 <ulink 32 url="http://www.virtualbox.org">http://www.virtualbox.org</ulink>. 33 In particular, the SDK comes with a Programming Guide and Reference 34 manual in PDF format. This manual contains, among other things, the 35 information that was previously in this chapter of the User Manual. 36 </para> 37 25 38 </chapter> -
trunk/doc/manual/user_ChangeLogImpl.xml
r71799 r73276 28 28 So, we use chapter and xpointer="xpointer(/chapter/)" with xi:include. --> 29 29 30 30 <sect1> 31 31 <title>Version 5.3.0 (2018-xx-xx)</title> 32 32 … … 41 41 42 42 </itemizedlist> 43 44 <para>In addition, the following items were fixed and/or added:</para> 43 <para>In addition, the following items were fixed and/or added:</para> 45 44 46 45 <itemizedlist> … … 53 52 <listitem> 54 53 <para>Guest Control: various new APIs and features were implemented 55 56 </listitem> 57 58 54 (see SDK documentation for more)</para> 55 </listitem> 56 57 <listitem> 59 58 <para>Networking: Added a workaround for older guests which do not enable 60 59 bus mastering for the virtio PCI device</para> 61 60 </listitem> 62 61 … … 73 72 74 73 <listitem> 75 <para>GUI: fixed occasional screen corruption when host screen 76 resolutionis changed</para>74 <para>GUI: fixed occasional screen corruption when host screen resolution 75 is changed</para> 77 76 </listitem> 78 77 … … 432 431 </listitem> 433 432 434 433 <listitem> 435 434 <para>Audio: fixed playback with ALSA backend (5.1.28 regression)</para> 436 435 </listitem> -
trunk/src/VBox/Runtime/common/fs/isomakercmd-man.xml
r69633 r73276 22 22 terms and conditions of either the GPL or the CDDL or both. 23 23 --> 24 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4. 3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">24 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"> 25 25 <refentry id="viso" lang="en"> 26 26
Note:
See TracChangeset
for help on using the changeset viewer.