VirtualBox

Changeset 73276 in vbox


Ignore:
Timestamp:
Jul 20, 2018 5:42:10 PM (7 years ago)
Author:
vboxsync
Message:

doc/manual: Big build system overhaul, because the use of entities and catalogs eliminates the need to have placeholders in XML which previously needed separate preprocessing. Many cleanups, including replacing almost all pattern rules (since their dependencies had to be too generous) and using defines instead. Also integrated many cleanups for the user manual text (which needs careful review, couldn't check yet if it uses any additional tags which some of our XSLT would ignore).

Location:
trunk
Files:
1 added
38 edited

Legend:

Unmodified
Added
Removed
  • trunk/doc/manual/Config.kmk

    r72949 r73276  
    4646 # use docbook from our tools directory
    4747 VBOX_PATH_DOCBOOK        ?= $(PATH_DEVTOOLS)/common/DocBook/v1.69.1
    48  VBOX_PATH_DOCBOOK_DTD    ?= $(PATH_DEVTOOLS)/common/docbook-xml/v4.3
     48 VBOX_PATH_DOCBOOK_DTD    ?= $(PATH_DEVTOOLS)/common/docbook-xml/v4.5
    4949 VBOX_XML_CATALOG         ?= $(VBOX_PATH_MANUAL_OUTBASE)/catalog
    5050 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
    5153else
    5254 # use docbook of the build host
     
    6769
    6870##
    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_xslt
    74 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 endef
    84 
    85 
    86 ##
    8771# Emits rules for preprocessing refentry sources (applying remarks element),
    8872# and for producing the actual man pages.
     
    9680                $(3) \
    9781                $$(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) \
    9983                $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
    10084        $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
     
    118102                $$(VBOX_DOCBOOK_REFENTRY_TO_H_HELP) \
    119103               $(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 $$$$@)
    121105        $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(filter %.xml,$$^),$$(patsubst %.ts,%,$$@))
    122106        $$(QUIET)$$(APPEND) -tn "$$@" \
     
    168152                '  <delegateSystem systemIdStartString="http://www.oasis-open.org/docbook/" catalog="file:///$(VBOX_XML_CATALOG_DOCBOOK)"/>' \
    169153                '  <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)"/>' \
    170157                '</catalog>'
    171158
     
    177164                '<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">' \
    178165                '<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"/>' \
    185172                '  <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)"/>' \
    189176                '  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN"   uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsa.ent"/>' \
    190177                '  <public publicId="ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN"  uri="file:///$(VBOX_PATH_DOCBOOK_DTD)/ent/iso-amsb.ent"/>' \
     
    208195                '</catalog>'
    209196
     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
    210219endif # VBOX_XML_CATALOG
    211220
    212221
     222ifdef 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
     235endif # VBOX_XML_ENTITIES
     236
     237
    213238#
    214239# Generate rules for editing the refentry to C/H style sheets.
    215240#
    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
     241VBOX_DOCBOOK_REFENTRY_TO_C_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-C-help.xsl
     242
     243VBOX_DOCBOOK_REFENTRY_TO_H_HELP = $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-H-help.xsl
    221244
    222245#
  • trunk/doc/manual/Makefile.kmk

    r69633 r73276  
    3737#   -- PDF file via LaTeX: pre-process the XML files in PATH_TARGET, then
    3838#      run our custom "dblatex" perl script on UserManual.xml, which parses
    39 #      the XML (using the Perl SAX parsers) and dumps a matching latex file
     39#      the XML (using the Perl SAX parsers) and dumps a matching LaTeX file
    4040#      to UserManual.tex. This is then regularly processed by pdflatex to
    4141#      generate PDF.
     
    125125
    126126
    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_xml
    134 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 endef
    153 
    154 
    155 
    156127#
    157128# Targets
     
    204175 endif
    205176
    206  VBOX_MANUAL_XML_CHANGELOG = \
    207         user_ChangeLogImpl.xml
    208 
    209177 VBOX_MANUAL_XML_FILES = \
    210178        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 \
    211187        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 \
    218192        user_KnownIssues.xml \
     193        user_ChangeLog.xml \
     194        user_ThirdParty.xml \
    219195        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.xml
    228 
    229  VBOX_MANUAL_XML_FILES_INCL_CHANGELOG = $(VBOX_MANUAL_XML_FILES) \
    230         user_ChangeLog.xml
     196        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))
    231207
    232208 VBOX_SDKREF_XML_FILES = \
     
    267243        $(VBOX_XML_CATALOG) \
    268244        $(VBOX_XML_CATALOG_DOCBOOK) \
     245        $(VBOX_XML_CATALOG_MANUAL) \
     246        $(VBOX_XML_ENTITIES) \
    269247        $(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/, \
    270                 $(VBOX_MANUAL_XML_FILES_INCL_CHANGELOG) \
    271                $(VBOX_MANUAL_XML_REFENTRY_FILES) \
    272248               $(addprefix user_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
    273249               $(patsubst man_%,%.1,$(basename $(VBOX_MANUAL_XML_REFENTRY_FILES))) \
     
    293269               HTMLHelp/toc.hhc \
    294270               HTMLHelp/htmlhelp.hhp \
    295                 titlepage-htmlhelp.xsl \
    296271                UserManual.pdf \
    297272                VirtualBox.chm \
    298273                ChangeLog.html \
    299274                validatemanual.run \
     275                validateaccessibility.run \
     276                validatesdkref.run \
    300277                )) \
    301         $(VBOX_PATH_MANUAL_OUTBASE)/$(VBOX_MANUAL_XML_CHANGELOG) \
     278        $(VBOX_PATH_MANUAL_OUTBASE)/titlepage-htmlhelp.xsl \
    302279        $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/overview_,$(VBOX_MANUAL_XML_REFENTRY_FILES)) \
    303280        $(VBOX_PATH_MANUAL_OUTBASE)/user_VBoxManage_CommandsOverview.xml \
     
    308285        \
    309286        $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \
    310                 $(VBOX_SDKREF_XML_FILES) \
    311287                $(VBOX_SDKREF_LATEX_FILES_TARGET) \
    312288                SDKRef.pdf \
     
    315291        \
    316292        $(addprefix $(VBOX_PATH_MANUAL_OUTBASE)/en_US/, \
    317                 $(VBOX_ACCESSIBILITY_XML_FILES) \
    318293                $(VBOX_ACCESSIBILITY_LATEX_FILES_TARGET) \
    319294                html-single/Accessibility.html \
     
    381356if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DOCS) || defined(VBOX_ONLY_SDK))
    382357
    383 
    384 ##########################################################################################
    385 #
    386 #  Rules: Preprocess DocBook XML files
    387 #  (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 files
    393 # in doc/manual to allow for some magic variable replacements. The PDF and CHM
    394 # targets do not depend on the XML files in doc/manual, but those in
    395 # $(VBOX_PATH_MANUAL_OUTBASE) instead, which we copy there from here, after that magic
    396 # 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 current
    402 #    output of the actual VBoxManage program, to save us from having to
    403 #    update the manual all the time.
    404 #
    405 
    406 # Only one changelog for all languages
    407 # $(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.xml
    411 $(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 
    429358##
    430359# Morph man pages into manual sections.
     
    436365$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/user_$(2): $(3) \
    437366                $$(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) \
    439368                $$(VBOX_VERSION_STAMP) | $$(dir $$@)
    440369        $$(call MSG_TOOL,xsltproc $$(notdir $$(filter %.xsl,$$^)),,$$(filter %.xml,$$^),$$@)
     
    453382                $(VBOX_PATH_MANUAL_SRC)/docbook-refentry-to-manual-overview.xsl \
    454383                $$(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) \
    456385               | $$(dir $$@)
    457386        $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
     
    463392        $(QUIET)$(APPEND) -tn "$@" \
    464393                '<?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">' \
    466395               '<sect1> <!-- this will be skipped via xpointer in the include. --> '
    467396        $(QUIET)$(REDIRECT) -wo [email protected] -E 'VBOX_LOG_FLAGS=disabled' -E 'VBOX_LOG_DEST=nofile' \
     
    511440        $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)'
    512441endef
    513 
    514442$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_cp_images_pdf))
    515443
     
    521449##########################################################################################
    522450
    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.
     454define def_vbox_usermanual_tex_to_pdf
     455local 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 $$$$@)
    529460# 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.tex
    532         $(QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) -- $(VBOX_PDFLATEX_CMD) UserManual.tex
    533         $(QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) -- $(VBOX_PDFLATEX_CMD) UserManual.tex
    534         $(QUIET)$(REDIRECT) -w+ti /dev/null -C $(@D) -- $(VBOX_PDFLATEX_CMD) UserManual.tex
    535         $(QUIET)$(SED) -ne '/Warning: Hyper reference/p' $(basename $<).log
    536         $(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 \
    537468                -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 $$@)
     471endef
     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.
     476define def_vbox_usermanual_xml_to_tex
     477local 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))
    551488#   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 $$<
    556492#   for pretty quotes, replace " with `` or '' depending on whether it's at the start of a word;
    557493#   the \QUOTE{} was inserted by docbook2latex.xsl for all quotes _outside_ of screen sections
    558         $(QUIET)$(SED) \
     494        $$(QUIET)$$(SED) \
    559495                -e 's|^\\QUOTE{}|\\OQ{}|g' \
    560496                -e 's|\(\W\)\\QUOTE{}|\1\\OQ{}|g' \
    561497                -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]
     500endef
     501$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_usermanual_xml_to_tex))
    564502
    565503# Useful aliases
     
    577515validatemanual_$(lang):: $$(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/validatemanual.run
    578516$$(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 $$$$@)
    582522        $$(call MSG_L1,Validating $$<)
    583523        $$(QUIET)$$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$<
     
    585525endef
    586526$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(evalcall2 def_vbox_validate_xml))
     527
     528
     529# Handy aliases.
    587530validatemanual:: $(foreach lang,$(VBOX_MANUAL_LANGUAGES),validatemanual_$(lang))
    588531
     
    605548        $(QUIET)$(VBOX_XSLTPROC) $(VBOX_XSLTPROC_OPTS) --xinclude --nonet -o $@ $< $(VBOX_DOC_XIDL_SRC_TMP)
    606549
    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.
    611551$(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) \
    613554                $(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 $$@)
    615558        $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
    616559        $(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 #endif
    621560#       generate TeX source from processed docbook and store it in SDKRef.tex.tmp
    622561        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \
     
    646585        $(call MSG_L1,Fresh LaTeX-generated PDF is now at $@)
    647586
     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
    648599
    649600# Handy aliases.
    650 validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/SDKRef.xml
     601validate-sdkref:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validatesdkref.run
    651602sdkref:: $(PATH_STAGE_BIN)/sdk/docs/SDKRef.pdf
    652603
     
    657608#
    658609
    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.
    662611$(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)) \
    664613                $(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 $$@)
    666617        $(call MSG_TOOL,xsltproc $(notdir $(filter %.xsl,$^)),,$(firstword $(filter %.xml,$^)),$@)
    667618        $(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 endif
    672619#       generate TeX source from processed docbook and store it in Accessibility.tex.tmp
    673620        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --stringparam TARGETLANG en_US \
     
    698645
    699646$(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 $$@)
    704651        $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
    705652        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
    706653                --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
    709668
    710669# Handy aliases.
    711 validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/Accessibility.xml
     670validate-accessibility:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/validateaccessibility.run
    712671accessibility:: $(PATH_STAGE_BIN)/Accessibility.pdf
    713672accessibility-html:: $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-single/Accessibility.html
     673
    714674
    715675
     
    722682 # Microsoft Help Compiler.
    723683 #
    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 \
    728686        $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \
    729687        $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl
    730688
    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 
    740689 # 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: \
    742691                $(VBOX_PATH_MANUAL_SRC)/titlepage-htmlhelp.xml $(MAKEFILE_CURRENT) | $$(dir $$@)
    743692        $(call MSG_L1,xsltproc $<)
     
    746695        $(QUIET)$(MV) -f [email protected] $@
    747696
    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)/ \
    760728                --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))
    764734
    765735 # copy the PNG files.
    766736 # 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
    768738 local out_dir := $(VBOX_PATH_MANUAL_OUTBASE)/$(lang)/HTMLHelp
    769  $$(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \
    770                         $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
     739 $(addprefix $$(out_dir)/,$(VBOX_MANUAL_PNG_FILES_$(lang))): \
     740                $$(out_dir)/%: $(VBOX_PATH_MANUAL_SRC)/$(lang)/% | $$$$(dir $$$$@)
    771741        $$(call MSG_L1,Copying temporary $$< => $$@)
    772         $$(QUIET)$$(CP) -f $$< $$@
     742        $$(QUIET)$$(INSTALL_STAGING) -m0644 -- '$$<' '$$(@D)'
    773743 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)))
    776745
    777746 # Packing the docs into a zip file
     
    789758#
    790759##########################################################################################
    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: \
     760VBOX_DOCBOOK_HTML_ONE_PAGE_FORMATCFG = \
     761        $(VBOX_PATH_MANUAL_SRC)/docbook-html-one-page-formatcfg.xsl \
    797762        $(VBOX_PATH_MANUAL_SRC)/common-formatcfg.xsl \
    798763        $(VBOX_PATH_MANUAL_SRC)/common-html-formatcfg.xsl
    799764
    800765$(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) \
    804771                $(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 $$@)
    807774        $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
    808775        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
    809776                --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
     780VBOX_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
    812784
    813785$(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)) \
    817791                $(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 $$@)
    820794        $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
    821795        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) \
    822796                --output $(VBOX_PATH_MANUAL_OUTBASE)/en_US/html-chunks/index.html \
    823797                --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.xml
     798                $(VBOX_PATH_MANUAL_SRC)/docbook-html-chunks-formatcfg.xsl \
     799                $<
    826800
    827801$(VBOX_PATH_MANUAL_OUTBASE)/en_US/UserManual.zip: \
     
    841815# ChangeLog.html
    842816#
    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#
    849820$(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 \
    851822                $(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 $$@)
    853825        $(call MSG_TOOL,xsltproc $(notdir $(firstword $(filter %.xsl,$^))),,$(firstword $(filter %.xml,$^)),$@)
    854826        $(QUIET)$(call VBOX_XSLTPROC_WITH_CAT) --output "$@" "$<" $(filter %.xml,$^)
     
    865837# VBoxManage man pages (parts also required by VBoxManage built-in help).
    866838#
    867 $(evalcall2 def_vbox_replace_paths_in_xslt,docbook-refentry-to-manpage.xsl,)
    868839
    869840##
     
    877848                $$(VBOX_PATH_MANUAL_SRC)/$(1)/$(2) \
    878849                $$(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) \
    880851                $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
    881852        $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
     
    883854        $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT) --output $$@ \
    884855                $$(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...
     856if defined(VBOX_HAVE_XMLLINT)
    886857        $$(VBOX_XMLLINT_WITH_CAT) --dtdvalid $$(VBOX_PATH_DOCBOOK_DTD)/docbookx.dtd $$@
    887858endif
     
    889860$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$(patsubst man_%,%.1,$(basename $(2))): \
    890861                $$(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) \
    893864                $$(VBOX_VERSION_STAMP) | $$$$(dir $$$$@)
    894865        $$(call MSG_TOOL,xsltproc $$(notdir $$(firstword $$(filter %.xsl,$$^))),,$$(firstword $$(filter %.xml,$$^)),$$@)
    895866        $$(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 $$<
    897868endef
    898869$(foreach lang,$(VBOX_MANUAL_LANGUAGES),$(foreach file,$(VBOX_MANUAL_XML_REFENTRY_FILES) \
  • trunk/doc/manual/docbook-changelog-formatcfg.xsl

    r69482 r73276  
    33
    44<!-- 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"/>
    77
    88<!-- Adjust some params -->
  • trunk/doc/manual/docbook-html-chunks-formatcfg.xsl

    r69482 r73276  
    33
    44<!-- Single html file template -->
    5 <xsl:import href="@VBOX_PATH_DOCBOOK@/html/chunk.xsl"/>
     5<xsl:import href="html/chunk.xsl"/>
    66
    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"/>
    99
    1010<!-- Adjust some params -->
  • trunk/doc/manual/docbook-html-one-page-formatcfg.xsl

    r57587 r73276  
    33
    44<!-- Single html file template -->
    5 <xsl:import href="@VBOX_PATH_DOCBOOK@/html/docbook.xsl"/>
     5<xsl:import href="html/docbook.xsl"/>
    66
    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"/>
    99
    1010<!-- Adjust some params -->
  • trunk/doc/manual/docbook-htmlhelp-formatcfg.xsl

    r56536 r73276  
    22<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    33
    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"/>
    77
    8 <xsl:include href="@VBOX_PATH_MANUAL_OUT_LANG@/titlepage-htmlhelp.xsl"/>
     8<xsl:include href="titlepage-htmlhelp.xsl"/>
    99
    1010<!-- Override the style sheet stuff from common-html-formatcfg.xsl, we don't
  • trunk/doc/manual/docbook-refentry-to-C-help.xsl

    r68873 r73276  
    2323  >
    2424
    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"/>
    2727
    2828  <xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/>
  • trunk/doc/manual/docbook-refentry-to-H-help.xsl

    r68860 r73276  
    2222  >
    2323
    24   <xsl:import href="@VBOX_PATH_MANUAL_SRC@/string.xsl"/>
     24  <xsl:import href="string.xsl"/>
    2525
    2626  <xsl:output method="text" version="1.0" encoding="utf-8" indent="yes"/>
  • trunk/doc/manual/docbook-refentry-to-manpage.xsl

    r56533 r73276  
    1919  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    2020
    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"/>
    2322
    2423  <!--
  • trunk/doc/manual/docbook2latex.xsl

    r69482 r73276  
    697697  </xsl:template>
    698698
     699  <xsl:template match="trademark">
     700    <xsl:apply-templates />
     701    <xsl:text>\textsuperscript{\textregistered}</xsl:text>
     702  </xsl:template>
     703
    699704  <!-- for some reason, DocBook insists of having image data nested this way always:
    700705       mediaobject -> imageobject -> imagedata
  • trunk/doc/manual/en_US/Accessibility.xml

    r68450 r73276  
    11<?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
    48<book>
    59  <bookinfo>
    6     <title>@VBOX_PRODUCT@<superscript>®</superscript></title>
     10    <title>&VBOX_PRODUCT;</title>
    711
    812    <subtitle>Accessibility Reference</subtitle>
    913
    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>
    1519
    1620    <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>
    2024    </copyright>
    2125  </bookinfo>
  • trunk/doc/manual/en_US/SDKRef.xml

    r71806 r73276  
    11<?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
    48<book>
    59  <bookinfo>
    6     <title>@VBOX_PRODUCT@<superscript>®</superscript></title>
     10    <title>&VBOX_PRODUCT;</title>
    711
    812    <subtitle>Programming Guide and Reference</subtitle>
    913
    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>
    1317
    1418    <address>http://www.virtualbox.org</address>
    1519
    1620    <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>
    2024    </copyright>
    2125  </bookinfo>
     
    11981202
    11991203                <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>
    12011205              </listitem>
    12021206
     
    30863090
    30873091        <para><screen>
    3088 DECLVBGL(int) VbglHGCMConnect (VBGLHGCMHANDLE *pHandle, VBoxGuestHGCMConnectInfo *pData);
     3092DECLR0VBGL(int) VbglR0HGCMConnect(VBGLHGCMHANDLE *pHandle, const char *pszServiceName, HGCMCLIENTID *pidClient);
    30893093          </screen> Connects to the service: <screen>
    30903094    VBoxGuestHGCMConnectInfo data;
    30913095
    3092     memset (&amp;data, sizeof (VBoxGuestHGCMConnectInfo));
     3096    memset(&amp;data, sizeof(VBoxGuestHGCMConnectInfo));
    30933097
    30943098    data.result   = VINF_SUCCESS;
     
    30963100    strcpy (data.Loc.u.host.achName, "VBoxSharedFolders");
    30973101
    3098     rc = VbglHGCMConnect (&amp;handle, &amp;data);
     3102    rc = VbglHGCMConnect (&amp;handle, "VBoxSharedFolders"&amp;data);
    30993103
    31003104    if (RT_SUCCESS (rc))
     
    39153919
    39163920    <sect1>
    3917       <title>Incompatible API changes with version 5.3</title>
     3921      <title>Incompatible API changes with version x.x</title>
    39183922
    39193923      <itemizedlist>
     
    39363940            </listitem>
    39373941
    3938             <listitem><para>The <link linkend="FileCopyFlag">FileCopyFlag</link> flags for
    3939               <link linkend="IGuestSession__directoryCopyFromGuest">IGuestSession::directoryCopyFromGuest()</link>
    3940               have been implemented.</para>
    3941             </listitem>
    3942 
    39433942            <listitem>
    39443943              <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>.
    39493946              </para>
    39503947
    39513948              <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>
    39543954
    39553955            </listitem>
  • trunk/doc/manual/en_US/UserManual.xml

    r69633 r73276  
    11<?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
    511  <bookinfo>
    6     <title>@VBOX_PRODUCT@<superscript>®</superscript></title>
     12
     13    <title>&VBOX_PRODUCT;</title>
    714
    815    <subtitle>User Manual</subtitle>
    916
    1017    <edition>Version
    11     @VBOX_VERSION_STRING@</edition>
     18    &VBOX_VERSION_STRING;</edition>
    1219
    13     <corpauthor>@VBOX_VENDOR@</corpauthor>
     20    <corpauthor>Oracle Corporation</corpauthor>
    1421
    15     <address>http://www.virtualbox.org</address>
     22    <address>https://www.virtualbox.org</address>
    1623
    1724    <copyright>
    18       <year>2004-@VBOX_C_YEAR@</year>
    1925
    20       <holder>@VBOX_VENDOR@</holder>
     26      <year>2004-&VBOX_C_YEAR;</year>
     27
     28      <holder>Oracle Corporation</holder>
     29
    2130    </copyright>
     31
    2232  </bookinfo>
    2333
    24   <xi:include href="user_Introduction.xml" xpointer="element(/1)"
     34  <xi:include href="user_Introduction.xml"
    2535    xmlns:xi="http://www.w3.org/2001/XInclude" />
    2636
    27   <xi:include href="user_Installation.xml" xpointer="element(/1)"
     37  <xi:include href="user_Installation.xml"
    2838    xmlns:xi="http://www.w3.org/2001/XInclude" />
    2939
    30   <xi:include href="user_BasicConcepts.xml" xpointer="element(/1)"
     40  <xi:include href="user_BasicConcepts.xml"
    3141    xmlns:xi="http://www.w3.org/2001/XInclude" />
    3242
    33   <xi:include href="user_GuestAdditions.xml" xpointer="element(/1)"
     43  <xi:include href="user_GuestAdditions.xml"
    3444    xmlns:xi="http://www.w3.org/2001/XInclude" />
    3545
    36   <xi:include href="user_Storage.xml" xpointer="element(/1)"
     46  <xi:include href="user_Storage.xml"
    3747    xmlns:xi="http://www.w3.org/2001/XInclude" />
    3848
    39   <xi:include href="user_Networking.xml" xpointer="element(/1)"
     49  <xi:include href="user_Networking.xml"
    4050    xmlns:xi="http://www.w3.org/2001/XInclude" />
    4151
    42   <xi:include href="user_Frontends.xml" xpointer="element(/1)"
     52  <xi:include href="user_Frontends.xml"
    4353    xmlns:xi="http://www.w3.org/2001/XInclude" />
    4454
    45   <xi:include href="user_VBoxManage.xml" xpointer="element(/1)"
     55  <xi:include href="user_VBoxManage.xml"
    4656    xmlns:xi="http://www.w3.org/2001/XInclude" />
    4757
    48   <xi:include href="user_AdvancedTopics.xml" xpointer="element(/1)"
     58  <xi:include href="user_AdvancedTopics.xml"
    4959    xmlns:xi="http://www.w3.org/2001/XInclude" />
    5060
    51   <xi:include href="user_Technical.xml" xpointer="element(/1)"
     61  <xi:include href="user_Technical.xml"
    5262    xmlns:xi="http://www.w3.org/2001/XInclude" />
    5363
    54   <xi:include href="user_VirtualBoxAPI.xml" xpointer="element(/1)"
     64  <xi:include href="user_VirtualBoxAPI.xml"
    5565    xmlns:xi="http://www.w3.org/2001/XInclude" />
    5666
    57   <xi:include href="user_Troubleshooting.xml" xpointer="element(/1)"
     67  <xi:include href="user_Troubleshooting.xml"
    5868    xmlns:xi="http://www.w3.org/2001/XInclude" />
    5969
    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"
    6471    xmlns:xi="http://www.w3.org/2001/XInclude" />
    6572
    66   <xi:include href="user_ChangeLog.xml" xpointer="element(/1)"
     73  <xi:include href="user_KnownIssues.xml"
    6774    xmlns:xi="http://www.w3.org/2001/XInclude" />
    6875
    69   <xi:include href="user_ThirdParty.xml" xpointer="element(/1)"
     76  <xi:include href="user_ChangeLog.xml"
    7077    xmlns:xi="http://www.w3.org/2001/XInclude" />
    7178
    72   <xi:include href="user_PrivacyPolicy.xml" xpointer="element(/1)"
     79  <xi:include href="user_ThirdParty.xml"
    7380    xmlns:xi="http://www.w3.org/2001/XInclude" />
    7481
    75   <xi:include href="user_Glossary.xml" xpointer="element(/1)"
     82  <xi:include href="user_PrivacyPolicy.xml"
    7683    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
    7788</book>
  • trunk/doc/manual/en_US/man_VBoxManage-debugvm.xml

    r69633 r73276  
    1313    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1414 -->
    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">
    1616<refentry id="vboxmanage-debugvm" lang="en">
    1717
  • trunk/doc/manual/en_US/man_VBoxManage-extpack.xml

    r69633 r73276  
    1313    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1414 -->
    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">
    1616<refentry id="vboxmanage-extpack" lang="en">
    1717
  • trunk/doc/manual/en_US/man_VBoxManage-mediumio.xml

    r72949 r73276  
    1313    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1414 -->
    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">
    1616<refentry id="vboxmanage-mediumio" lang="en">
    1717
  • trunk/doc/manual/en_US/man_VBoxManage-unattended.xml

    r69633 r73276  
    1313    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1414 -->
    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">
    1616<refentry id="vboxmanage-unattended" lang="en">
    1717
  • trunk/doc/manual/en_US/user_AdvancedTopics.xml

    r73185 r73276  
    11<?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]>
    47<chapter id="AdvancedTopics">
    5   <title>Advanced topics</title>
     8
     9  <title>Advanced Topics</title>
    610
    711  <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
    1117      <title>Introduction</title>
    1218
    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>
    2844          <imageobject>
    2945            <imagedata align="center" fileref="images/vbox-sdl.png"
    3046                       width="10cm" />
    3147          </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 &lt;vm&gt;</screen></para>
    36 
    37       <para>where <computeroutput>&lt;vm&gt;</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 &lt;vm&gt;</screen>
     57
     58      <para>
     59        where <computeroutput>&lt;vm&gt;</computeroutput> is the name or
     60        UUID of an existing virtual machine.
     61      </para>
     62
    4063    </sect2>
    4164
    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"
    6291      --securelabel --seclabelfnt ~/fonts/arial.ttf
    6392      --seclabelsiz 14 --seclabelfgcol 00FF00 --seclabelbgcol 00FFFF</screen>
    6493
    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
    94137vga = 839</screen>
    95138
    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
    106155    </sect2>
    107156
    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 &lt;pid&gt;
    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 &lt;pid&gt;
     177VBoxManage controlvm "Windows 2000" savestate</screen>
     178
    124179    </sect2>
     180
    125181  </sect1>
    126182
    127183  <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>
    138198
    139199    <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>
    163233
    164234      <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>
    169241      </note>
    170242
    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\
    177253           Authentication\Credential Providers\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}
    178254
    179255HKEY_CLASSES_ROOT\CLSID\{275D3BCC-22BB-4948-A7F6-3A3054EBA92B}
    180256
    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>
     257HKEY_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
    245356    </sect2>
    246357
    247358    <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>
    268387
    269388      <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>
    275397      </note>
    276398
    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-&lt;version&gt;/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-&lt;version&gt;/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>
    292418
    293419      <orderedlist>
     420
    294421        <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>
    298427        </listitem>
    299428
    300429        <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>
    309441        </listitem>
    310442
    311443        <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>
    326462        </listitem>
     463
    327464      </orderedlist>
    328465
    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
    356502        <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>
    365513        </listitem>
    366514
    367515        <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>
    371521        </listitem>
    372522
    373523        <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>
    382535        </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
    389546        <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>
    394553        </listitem>
    395554
    396555        <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>
    401563        </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>
    412578
    413579      <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-&lt;version&gt;/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]
     633greeter-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>
    436937        <computeroutput>/opt/VBoxGuestAdditions-&lt;version&gt;/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-&lt;version&gt;/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       "&lt;width&gt;x&lt;height&gt;" 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 "&lt;width&gt;x&lt;height&gt;" 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"
    679987        Identifier    "Default Screen"
    680988        Device        "VirtualBox graphics card"
     
    686994        EndSubSection
    687995EndSection</screen>
     996
    688997    </sect2>
     998
    689999  </sect1>
    6901000
    6911001  <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 &gt; /sys/devices/system/cpu/cpu&lt;id&gt;/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
     1053VBoxManage 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
     1064VBoxManage 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 &gt; /sys/devices/system/cpu/cpu&lt;id&gt;/online</screen>
     1088
    7381089  </sect1>
    7391090
    7401091  <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>
    7491109
    7501110    <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>
    7541117    </note>
    7551118
    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]
    824121601:00.1 Audio device: ATI Technologies Inc Manhattan HDMI Audio [Mobility Radeon HD 5000 Series]
    825121702:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit
     
    828122003:00.1 IDE interface: JMicron Technology Corp. JMB362/JMB363 Serial ATA Controller (rev 03)
    829122106: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
    8441328        <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"
     1340host 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>
    8461348        </listitem>
    8471349
    8481350        <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>
    8501394        </listitem>
    8511395
    8521396        <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>
    8541402        </listitem>
    8551403
    8561404        <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>
    8591414        </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
    8611470  </sect1>
    8621471
    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&lt;x&gt;</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
     1510vga = 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
    9301517    </sect2>
    9311518
    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 &gt;width,height&lt;</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
    9371555    </sect2>
    9381556
    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
    9471794    </sect2>
    9481795
    949     <sect2>
    950       <title>Linux and Solaris hosts</title>
    951 
    952       <para>When the webcam is detached from the host the emulated webcam device is
    953       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 the
    955       <computeroutput>VBoxManage controlvm "VM name" webcam detach ...</computeroutput> command.</para>
    956 
    957       <para>Aliases <computeroutput>.0</computeroutput> and <computeroutput>.1</computeroutput> are mapped
    958       to <computeroutput>/dev/video0</computeroutput>, alias <computeroutput>.2</computeroutput> is mapped
    959       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 BIOS
    970       allows you to add up to 16 custom video modes which will be reported to
    971       the guest operating system. When using Windows guests with the
    972       VirtualBox Guest Additions, a custom graphics driver will be used
    973       instead of the fallback VESA solution so this information does not
    974       apply.</para>
    975 
    976       <para>Additional video modes can be configured for each VM using the
    977       extra data facility. The extra data key is called
    978       <literal>CustomVideoMode&lt;x&gt;</literal> with <literal>x</literal>
    979       being a number from 1 to 16. Please note that modes will be read from 1
    980       until either the following number is not defined or 16 is reached. The
    981       following example adds a video mode that corresponds to the native
    982       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 at
    987       <literal>0x160</literal>. In order to use the above defined custom video
    988       mode, the following command line has be supplied to Linux:</para>
    989 
    990       <screen>vga = 0x200 | 0x160
    991 vga = 864</screen>
    992 
    993       <para>For guest operating systems with VirtualBox Guest Additions, a
    994       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 the
    999       graphical frontend</title>
    1000 
    1001       <para>When guest systems with the Guest Additions installed are started
    1002       using the graphical frontend (the normal VirtualBox application), they
    1003       will not be allowed to use screen resolutions greater than the host's
    1004       screen size unless the user manually resizes them by dragging the
    1005       window, switching to full screen or seamless mode or sending a video mode
    1006       hint using VBoxManage. This behavior is what most users will want, but
    1007       if you have different needs, it is possible to change it by issuing one
    1008       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 &gt;width,height&lt;</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 apply
    1021       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 disk
    1032       images (as described in detail in <xref linkend="storage" />),
    1033       VirtualBox can also present either entire physical hard disks or
    1034       selected partitions thereof as virtual disks to virtual machines.</para>
    1035 
    1036       <para>With VirtualBox, this type of access is called "raw hard disk
    1037       access"; it allows a guest operating system to access its virtual hard
    1038       disk without going through the host OS file system. The actual
    1039       performance difference for image files vs. raw disk varies greatly
    1040       depending on the overhead of the host file system, whether dynamically
    1041       growing images are used, and on host OS caching strategies. The caching
    1042       indirectly also affects other aspects such as failure behavior, i.e.
    1043       whether the virtual disk contains all data written before a host OS
    1044       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 use
    1048           or use of an outdated configuration can lead to <emphasis
    1049           role="bold">total loss of data </emphasis>on the physical disk. Most
    1050           importantly, <emphasis>do not</emphasis> attempt to boot the
    1051           partition with the currently running host operating system in a
    1052           guest. This will lead to severe data corruption.</para>
    1053         </warning></para>
    1054 
    1055       <para>Raw hard disk access -- both for entire disks and individual
    1056       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 which
    1058       defines where the data will be stored. After creating such a special
    1059       VMDK image, you can use it like a regular virtual disk image. For
    1060       example, you can use the VirtualBox Manager (<xref linkend="vdis" />)
    1061       or <computeroutput>VBoxManage</computeroutput> to assign the image to a
    1062       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 aware
    1068         that this will give a guest operating system direct and full access to
    1069         an <emphasis>entire physical disk</emphasis>. If your
    1070         <emphasis>host</emphasis> operating system is also booted from this
    1071         disk, please take special care to not access the partition from the
    1072         guest at all. On the positive side, the physical disk can be
    1073         repartitioned in arbitrary ways without having to recreate the image
    1074         file that gives access to the raw disk.</para>
    1075 
    1076         <para>To create an image that represents an entire physical hard disk
    1077         (which will not contain any actual data, as this will all be stored on
    1078         the physical disk), on a Linux host, use the command<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
    1079       -rawdisk /dev/sda</screen>This creates the image
    1080         <code>/path/to/file.vmdk</code> (must be absolute), and all data will
    1081         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, instead
    1085         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 no
    1087         volume is mounted from it.</para>
    1088 
    1089         <para>Creating the image requires read/write access for the given
    1090         device. Read/write access is also later needed when using the image
    1091         from a virtual machine. On some host platforms (e.g. Windows Vista
    1092         and later), raw disk access may be restricted and not permitted by
    1093         the host OS in some situations.</para>
    1094 
    1095         <para>Just like with regular disk images, this does not automatically
    1096         attach the newly created image to a virtual machine. This can be done
    1097         with e.g. <screen>VBoxManage storageattach WindowsXP --storagectl "IDE Controller"
    1098       --port 0 --device 0 --type hdd --medium /path/to/file.vmdk</screen>When
    1099         this is done the selected virtual machine will boot from the specified
    1100         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 hard
    1107         disk" access described above. However, in this case, any partitioning
    1108         information will be stored inside the VMDK image, so you can e.g.
    1109         install a different boot loader in the virtual hard disk without
    1110         affecting the host's partitioning information. While the guest will be
    1111         able to <emphasis>see</emphasis> all partitions that exist on the
    1112         physical disk, access will be filtered in that reading from partitions
    1113         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 will
    1117         contain a small amount of data, as already mentioned), on a Linux
    1118         host, use the command<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
    1119       -rawdisk /dev/sda -partitions 1,5</screen></para>
    1120 
    1121         <para>As you can see, the command is identical to the one for "full
    1122         hard disk" access, except for the additional
    1123         <computeroutput>-partitions</computeroutput> parameter. This example
    1124         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 the
    1130         first primary partition and the first logical drive in the extended
    1131         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, instead
    1135         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 mounted
    1137         (eject the respective volume first). Partition numbers are the same on
    1138         Linux, Windows and Mac OS X hosts.</para>
    1139 
    1140         <para>The numbers for the list of partitions can be taken from the
    1141         output of<screen>VBoxManage internalcommands listpartitions -rawdisk /dev/sda</screen>The
    1142         output lists the partition types and sizes to give the user enough
    1143         information to identify the partitions necessary for the guest.</para>
    1144 
    1145         <para>Images which give access to individual partitions are specific
    1146         to a particular host disk setup. You cannot transfer these images to
    1147         another host; also, whenever the host partitioning changes, the image
    1148         <emphasis>must be recreated</emphasis>.</para>
    1149 
    1150         <para>Creating the image requires read/write access for the given
    1151         device. Read/write access is also later needed when using the image
    1152         from a virtual machine. If this is not feasible, there is a special
    1153         variant for raw partition access (currently only available on Linux
    1154         hosts) that avoids having to give the current user access to the
    1155         entire disk. To set up such an image, use<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
    1156       -rawdisk /dev/sda -partitions 1,5 -relative</screen>When used from a
    1157         virtual machine, the image will then refer not to the entire disk, but
    1158         only to the individual partitions (in the example
    1159         <code>/dev/sda1</code> and <code>/dev/sda5</code>). As a consequence,
    1160         read/write access is only required for the affected partitions, not
    1161         for the entire disk. During creation however, read-only access to the
    1162         entire disk is required to obtain the partitioning information.</para>
    1163 
    1164         <para>In some configurations it may be necessary to change the MBR
    1165         code of the created image, e.g. to replace the Linux boot loader that
    1166         is used on the host by another boot loader. This allows e.g. the guest
    1167         to boot directly to Windows, while the host boots Linux from the
    1168         "same" disk. For this purpose the
    1169         <computeroutput>-mbr</computeroutput> parameter is provided. It
    1170         specifies a file name from which to take the MBR code. The partition
    1171         table is not modified at all, so a MBR file from a system with totally
    1172         different partitioning can be used. An example of this is<screen>VBoxManage internalcommands createrawvmdk -filename /path/to/file.vmdk
    1173       -rawdisk /dev/sda -partitions 1,5 -mbr winxp.mbr</screen>The modified
    1174         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 a
    1177         VM configuration as usual.</para>
    1178       </sect3>
    1179     </sect2>
    1180 
    11811796    <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"
    11891808      "VBoxInternal/Devices/ahci/0/Config/Port0/SerialNumber" "serial"
    11901809VBoxManage setextradata "VM name"
     
    11931812      "VBoxInternal/Devices/ahci/0/Config/Port0/ModelNumber" "model"</screen>
    11941813
    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"
    12051828      "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/SerialNumber" "serial"
    12061829VBoxManage setextradata "VM name"
     
    12091832      "VBoxInternal/Devices/piix3ide/0/Config/PrimaryMaster/ModelNumber" "model"</screen>
    12101833
    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"
    12151840      "VBoxInternal/Devices/ahci/0/Config/Port0/NonRotational" "1"</screen>
    12161841
    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"
    12211848      "VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIVendorId" "vendor"
    12221849VBoxManage setextradata "VM name"
     
    12251852      "VBoxInternal/Devices/ahci/0/Config/Port0/ATAPIRevision" "revision"</screen>
    12261853
    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
    12311861    </sect2>
    12321862
    12331863    <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
    12491888VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/MAC 08:00:27:01:02:0f
    12501889VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/Config/IP 10.0.9.1
     
    12531892VBoxManage setextradata "VM name" VBoxInternal/Devices/IntNetIP/0/LUN#0/Config/Network MyIntNet
    12541893VBoxManage 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>
     1894VBoxManage 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
    12711919    </sect2>
     1920
    12721921  </sect1>
    12731922
    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
    12851941        <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"
    12971956      "VBoxInternal/Devices/serial/0/Config/IRQ" 4
    12981957VBoxManage setextradata "VM name"
     
    13071966      "VBoxInternal/Devices/serial/0/LUN#0/AttachedDriver/Config/IsServer" 1</screen>
    13081967
    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
    13221985  </sect1>
    13231986
    13241987  <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
    13502025    </sect2>
    13512026
    13522027    <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
     2039VBoxManage modifyvm "VM name" --nattftpfile1 /srv/tftp/boot/MyPXEBoot.pxe</screen>
     2040      </para>
     2041
    13622042    </sect2>
    13632043
    13642044    <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
    13822072    </sect2>
    13832073
    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
    13972095    </sect2>
    13982096
    13992097    <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
    14082112    </sect2>
    14092113
    14102114    <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" \
    14332155      "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \
    14342156      &lt;unique rule name of interception rule&gt;/HostIP" &lt;IPv4&gt;
     
    14362158      "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \
    14372159      &lt;unique rule name&gt;/HostName" &lt;name of host&gt;</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" \
    14402167      "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \
    14412168      &lt;unique rule name&gt;/HostIP" &lt;IPv4&gt;
     
    14432170      "VBoxInternal/Devices/{pcnet,e1000}/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \
    14442171      &lt;unique rule name&gt;/HostNamePattern" &lt;hostpattern&gt;</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" \
    14492185      "VBoxInternal/Devices/e1000/0/LUN#0/AttachedDriver/Config/HostResolverMappings/ \
    14502186      all_blocked_site/HostIP" 127.0.0.1
     
    14532189      all_blocked_site/HostNamePattern" "*.blocked-site.*|*.fb.org"</screen>
    14542190
    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
    14582199    </sect2>
    14592200
    14602201    <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
    14732225    </sect2>
     2226
    14742227  </sect1>
    14752228
    14762229  <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"
    14902249      "VBoxInternal/Devices/pcbios/0/Config/DmiBIOSVendor"        "BIOS Vendor"
    14912250VBoxManage setextradata "VM name"
     
    15012260VBoxManage setextradata "VM name"
    15022261      "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           <screen>VBoxManage setextradata "VM name"
     2262      </listitem>
     2263
     2264      <listitem>
     2265        <para>
     2266          DMI system information (type 1)
     2267        </para>
     2268
     2269<screen>VBoxManage setextradata "VM name"
    15112270      "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor"      "System Vendor"
    15122271VBoxManage setextradata "VM name"
     
    15232282      "VBoxInternal/Devices/pcbios/0/Config/DmiSystemUuid"
    15242283                                               "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           <screen>VBoxManage setextradata "VM name"
     2284      </listitem>
     2285
     2286      <listitem>
     2287        <para>
     2288          DMI board information (type 2)
     2289        </para>
     2290
     2291<screen>VBoxManage setextradata "VM name"
    15332292      "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVendor"       "Board Vendor"
    15342293VBoxManage setextradata "VM name"
     
    15442303VBoxManage setextradata "VM name"
    15452304      "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           <screen>VBoxManage setextradata "VM name"
     2305      </listitem>
     2306
     2307      <listitem>
     2308        <para>
     2309          DMI system enclosure or chassis (type 3)
     2310        </para>
     2311
     2312<screen>VBoxManage setextradata "VM name"
    15542313      "VBoxInternal/Devices/pcbios/0/Config/DmiChassisVendor"     "Chassis Vendor"
    15552314VBoxManage setextradata "VM name"
     
    15612320VBoxManage setextradata "VM name"
    15622321      "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           <screen>VBoxManage setextradata "VM name"
     2322      </listitem>
     2323
     2324      <listitem>
     2325        <para>
     2326          DMI processor information (type 4)
     2327        </para>
     2328
     2329<screen>VBoxManage setextradata "VM name"
    15712330      "VBoxInternal/Devices/pcbios/0/Config/DmiProcManufacturer"  "GenuineIntel"
    15722331VBoxManage setextradata "VM name"
    15732332      "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           <screen>VBoxManage setextradata "VM name"
     2333      </listitem>
     2334
     2335      <listitem>
     2336        <para>
     2337          DMI OEM strings (type 11)
     2338        </para>
     2339
     2340<screen>VBoxManage setextradata "VM name"
    15822341      "VBoxInternal/Devices/pcbios/0/Config/DmiOEMVBoxVer"        "vboxVer_1.2.3"
    15832342VBoxManage setextradata "VM name"
    15842343      "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>"&lt;EMPTY&gt;"</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:&lt;value&gt;"</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>"&lt;EMPTY&gt;"</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:&lt;value&gt;"</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
    16072381  </sect1>
    16082382
    16092383  <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"
    16162393      "VBoxInternal/Devices/acpi/0/Config/CustomTable" "/path/to/table.bin"</screen>
    16172394
    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
    16222402  </sect1>
    16232403
    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>
    16262407
    16272408    <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
    16542447    </sect2>
    16552448
    16562449    <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
    16802481    </sect2>
    16812482
    16822483    <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
    17652615    </sect2>
    17662616
    17672617    <sect2 id="disabletimesync">
    17682618
    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
    17772630    </sect2>
     2631
    17782632  </sect1>
    17792633
    17802634  <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
    18092674  </sect1>
    18102675
    18112676  <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
    18362729LINK        CLASS     MTU    STATE    BRIDGE     OVER
    18372730nge0        phys      1500   up       --         --
     
    18412734$ dladm show-vnic
    18422735LINK         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>
     2736vboxvnic_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
    18582761  </sect1>
    18592762
    18602763  <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;
    18842797name="vboxnet" parent="pseudo" instance=2;</screen>
    18852798
    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
    18982818LINK              MEDIA                STATE      SPEED  DUPLEX    DEVICE
    18992819net0              Ethernet             up         100    full      e1000g0
     
    19012821net1              Ethernet             up         1000   full      vboxnet0</screen>
    19022822
    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
    19212851  </sect1>
    19222852
    19232853  <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 &lt;path-to-directory&gt;</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 &lt;VM-process-id&gt;</screen></para>
    1967 
    1968     <para>Core files produced by the VirtualBox CoreDumper are of the form
    1969     <computeroutput>core.vb.&lt;ProcessName&gt;.&lt;ProcessID&gt;</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 &lt;path-to-directory&gt;</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
     2897VBoxManage 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 &lt;VM-process-id&gt;</screen>
     2920    </para>
     2921
     2922    <para>
     2923      Core files produced by the VirtualBox CoreDumper are of the form
     2924      <computeroutput>core.vb.&lt;ProcessName&gt;.&lt;ProcessID&gt;</computeroutput>,
     2925      for example
     2926      <computeroutput>core.vb.VBoxHeadless.11321</computeroutput>.
     2927    </para>
     2928
    19712929  </sect1>
    19722930
    19732931  <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
    19962967  </sect1>
    19972968
    19982969  <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>
    20373039
    20383040    </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>
    20823132
    20833133    </sect2>
    20843134
    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>
    21533262
    21543263    </sect2>
    21553264
    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>
    25614095
    25624096    </sect2>
    25634097
    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>
    26584254
    26594255    </sect2>
    26604256
    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>
    26964318
    26974319    </sect2>
    26984320
    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>
    27154346        <tgroup cols="3">
    27164347          <thead>
     
    27254356              <entry><computeroutput>TakeSnapshot</computeroutput></entry>
    27264357              <entry>T</entry>
    2727               <entry>take a snapshot</entry>
     4358              <entry>Take a snapshot</entry>
    27284359            </row>
    27294360            <row>
    27304361              <entry><computeroutput>TakeScreenshot</computeroutput></entry>
    27314362              <entry>E</entry>
    2732               <entry>take a screenshot</entry>
     4363              <entry>Take a screenshot</entry>
    27334364            </row>
    27344365            <row>
    27354366              <entry><computeroutput>MouseIntegration</computeroutput></entry>
    27364367              <entry>I</entry>
    2737               <entry>toggle mouse integration</entry>
     4368              <entry>Toggle mouse integration</entry>
    27384369            </row>
    27394370            <row>
    27404371              <entry><computeroutput>TypeCAD</computeroutput></entry>
    27414372              <entry>Del</entry>
    2742               <entry>inject Ctrl+Alt+Del</entry>
     4373              <entry>Inject Ctrl+Alt+Del</entry>
    27434374            </row>
    27444375            <row>
    27454376              <entry><computeroutput>TypeCABS</computeroutput></entry>
    27464377              <entry>Backspace</entry>
    2747               <entry>inject Ctrl+Alt+Backspace</entry>
     4378              <entry>Inject Ctrl+Alt+Backspace</entry>
    27484379            </row>
    27494380            <row>
     
    27554386              <entry><computeroutput>Reset</computeroutput></entry>
    27564387              <entry>R</entry>
    2757               <entry>(hard) reset the guest</entry>
     4388              <entry>Hard reset the guest</entry>
    27584389            </row>
    27594390            <row>
    27604391              <entry><computeroutput>SaveState</computeroutput></entry>
    27614392              <entry></entry>
    2762               <entry>save the VM state and terminate the VM</entry>
     4393              <entry>Save the VM state and terminate the VM</entry>
    27634394            </row>
    27644395            <row>
    27654396              <entry><computeroutput>Shutdown</computeroutput></entry>
    27664397              <entry>H</entry>
    2767               <entry>press the (virtual) ACPI power button</entry>
     4398              <entry>Press the (virtual) ACPI power button</entry>
    27684399            </row>
    27694400            <row>
    27704401              <entry><computeroutput>PowerOff</computeroutput></entry>
    27714402              <entry></entry>
    2772               <entry>power the VM off (without saving the state!)</entry>
     4403              <entry>Power the VM off, without saving the state</entry>
    27734404            </row>
    27744405            <row>
    27754406              <entry><computeroutput>Close</computeroutput></entry>
    27764407              <entry>Q</entry>
    2777               <entry>show the VM close dialog</entry>
     4408              <entry>Show the VM close dialog</entry>
    27784409            </row>
    27794410            <row>
    27804411              <entry><computeroutput>FullscreenMode</computeroutput></entry>
    27814412              <entry>F</entry>
    2782               <entry>switch the VM into full screen</entry>
     4413              <entry>Switch the VM into full screen</entry>
    27834414            </row>
    27844415            <row>
    27854416              <entry><computeroutput>SeamlessMode</computeroutput></entry>
    27864417              <entry>L</entry>
    2787               <entry>switch the VM into seamless mode</entry>
     4418              <entry>Switch the VM into seamless mode</entry>
    27884419            </row>
    27894420            <row>
    27904421              <entry><computeroutput>ScaleMode</computeroutput></entry>
    27914422              <entry>C</entry>
    2792               <entry>switch the VM into scale mode</entry>
     4423              <entry>Switch the VM into scale mode</entry>
    27934424            </row>
    27944425            <row>
    27954426              <entry><computeroutput>GuestAutoResize</computeroutput></entry>
    27964427              <entry>G</entry>
    2797               <entry>automatically resize the guest window</entry>
     4428              <entry>Automatically resize the guest window</entry>
    27984429            </row>
    27994430            <row>
    28004431              <entry><computeroutput>WindowAdjust</computeroutput></entry>
    28014432              <entry>A</entry>
    2802               <entry>immediately resize the guest window</entry>
     4433              <entry>Immediately resize the guest window</entry>
    28034434            </row>
    28044435            <row>
    28054436              <entry><computeroutput>PopupMenu</computeroutput></entry>
    28064437              <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>
    28084439            </row>
    28094440            <row>
    28104441              <entry><computeroutput>SettingsDialog</computeroutput></entry>
    28114442              <entry>S</entry>
    2812               <entry>open the VM settings dialog</entry>
     4443              <entry>Open the VM settings dialog</entry>
    28134444            </row>
    28144445            <row>
    28154446              <entry><computeroutput>InformationDialog</computeroutput></entry>
    28164447              <entry>N</entry>
    2817               <entry>show the VM information window</entry>
     4448              <entry>Show the VM information window</entry>
    28184449            </row>
    28194450            <row>
    28204451              <entry><computeroutput>NetworkAdaptersDialog</computeroutput></entry>
    28214452              <entry></entry>
    2822               <entry>show the VM network adapters dialog</entry>
     4453              <entry>Show the VM network adapters dialog</entry>
    28234454            </row>
    28244455            <row>
    28254456              <entry><computeroutput>SharedFoldersDialog</computeroutput></entry>
    28264457              <entry></entry>
    2827               <entry>show the VM shared folders dialog</entry>
     4458              <entry>Show the VM shared folders dialog</entry>
    28284459            </row>
    28294460            <row>
    28304461              <entry><computeroutput>InstallGuestAdditions</computeroutput></entry>
    28314462              <entry>D</entry>
    2832               <entry>mount the ISO containing the Guest Additions</entry>
     4463              <entry>Mount the ISO containing the Guest Additions</entry>
    28334464            </row>
    28344465          </tbody>
     
    28364467      </table>
    28374468
    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>
    28404474      </para>
    28414475
    28424476    </sect2>
    28434477
    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
    28974570    </sect2>
    28984571
    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
    29494664    </sect2>
    29504665
    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
    29554672        cannot be fixed by other means than terminating the process. The
    29564673        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
    29904739    </sect2>
    29914740
    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>
    30334816
    30344817    </sect2>
    30354818
    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>
    30774847
    30784848    </sect2>
    30794849
    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
    30974987    </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
     5000svccfg -s svc:/application/virtualbox/webservice:default setprop config/port=18083
     5001svccfg -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
    30985066  </sect1>
    30995067
    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 &lt;Size in MB&gt;</screen>
     5140
     5141        or on a per-VM basis extradata value with:
     5142
     5143<screen>VBoxManage setextradata &lt;VM-Name&gt; VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax &lt;Size in MB&gt;</screen>
     5144
     5145        or using a global extradata value with:
     5146
     5147<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen>
     5163
     5164        or using a global extradata value with:
     5165
     5166<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonIncrementMB &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen>
     5176
     5177        or using a global extradata value with:
     5178
     5179<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonDecrementMB &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen>
     5189
     5190        can be used or using a global extradata value with:
     5191
     5192<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonLowerLimitMB &lt;Size in MB&gt;</screen>
     5193
     5194        is available. Default lower limit is 128 if not specified.
     5195      </para>
     5196
    32235197    </sect2>
    32245198
    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=&lt;string[,stringN]&gt;</screen>
     5221
     5222        or using a global extradata value with:
     5223
     5224<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/Groups &lt;string[,stringN]&gt;</screen>
     5225      </para>
     5226
     5227      <para>
     5228        To set the host isolation timeout via command line:
     5229
     5230<screen>--apimon-isln-timeout=&lt;ms&gt;</screen>
     5231
     5232        or using a global extradata value with:
     5233
     5234<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationTimeoutMS &lt;ms&gt;</screen>
     5235      </para>
     5236
     5237      <para>
     5238        To set the actual host isolation response via command line:
     5239
     5240<screen>--apimon-isln-response=&lt;cmd&gt;</screen>
     5241
     5242        or using a global extradata value with:
     5243
     5244<screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationResponse &lt;cmd&gt;</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
    32515292    </sect2>
    32525293
    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
    32675304    </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
     5408svccfg -s svc:/application/virtualbox/balloonctrl:default setprop \
     5409config/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
    32685446  </sect1>
    32695447
    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 &lt;Size in MB&gt;</screen>, on a per-VM basis extradata value with
    3314         <screen>VBoxManage setextradata &lt;VM-Name&gt; VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax &lt;Size in MB&gt;</screen>
    3315         or using a global extradata value with
    3316         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonSizeMax &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen> or using a global
    3324         extradata value with
    3325         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonIncrementMB &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen> or using a global
    3330         extradata value with
    3331         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonDecrementMB &lt;Size in MB&gt;</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 &lt;Size in MB&gt;</screen> can be used or using a global
    3336         extradata value with
    3337         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/BalloonCtrl/BalloonLowerLimitMB &lt;Size in MB&gt;</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=&lt;string[,stringN]&gt;</screen> or using a global
    3356         extradata value with
    3357         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/Groups &lt;string[,stringN]&gt;</screen>
    3358         </para>
    3359 
    3360         <para>To set the host isolation timeout via command line:
    3361         <screen>--apimon-isln-timeout=&lt;ms&gt;</screen> or using a global
    3362         extradata value with
    3363         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationTimeoutMS &lt;ms&gt;</screen>
    3364         </para>
    3365 
    3366         <para>To set the actual host isolation response via command line:
    3367         <screen>--apimon-isln-response=&lt;cmd&gt;</screen> or using a global
    3368         extradata value with
    3369         <screen>VBoxManage setextradata global VBoxInternal2/Watchdog/APIMonitor/IsolationResponse &lt;cmd&gt;</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
    35095504  </sect1>
    35105505
    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 previous
    3516     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 supported
    3519     in any way by Oracle.</para>
    3520 
    3521     <para>The keyboard handling is severely limited, and only the US keyboard
    3522     layout works. Other keyboard layouts will have at least some keys which
    3523     produce the wrong results (often quite surprising effects), and for layouts
    3524     which have significant differences to the US keyboard layout it is most
    3525     likely unusable.</para>
    3526 
    3527     <para>It is possible to install both the Oracle VM VirtualBox Extension
    3528     Pack and VNC, but only one VRDE module can be active at any time. The
    3529     following command switches to the VNC VRDE module in
    3530     VNC:<screen>VBoxManage setproperty vrdeextpack VNC</screen></para>
    3531 
    3532     <para>Configuring the remote access works very similarly to VRDP (see
    3533     <xref linkend="vrde" />), with some limitations: VNC does not
    3534     support specifying several port numbers, and the authentication is done
    3535     differently. VNC can only deal with password authentication, and there
    3536     is no option to use password hashes. This leaves no other choice than
    3537     having a clear-text password in the VM configuration, which can be set with
    3538     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 it
    3541     should be removed when a VM configuration is passed to another person,
    3542     for whatever purpose. Some VNC servers claim to have "encrypted" passwords
    3543     in the configuration. This is not true encryption, it is only concealing
    3544     the passwords, which is exactly as secure as clear-text passwords.</para>
    3545 
    3546     <para>The following command switches back to VRDP (if
    3547     installed):<screen>VBoxManage setproperty vrdeextpack "Oracle VM VirtualBox Extension Pack"</screen></para>
    3548   </sect1>
    3549 
    35505506  <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>
    35555515
    35565516    <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>
    35805548# Default policy is to deny starting a VM, the other option is "allow".
    35815549default_policy = deny
     
    35935561    allow = false
    35945562}
    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 &lt;Autostart directory&gt;</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 &lt;Autostart directory&gt;</screen>
     5571      </para>
     5572
    36015573    </sect2>
    36025574
    36035575    <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
    36175602    </sect2>
    36185603
    36195604    <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
    36355632    </sect2>
     5633
    36365634  </sect1>
    36375635
    36385636  <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
    36545663  </sect1>
    36555664
    36565665  <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
    37105732VBoxManage 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>
    37265753<screen>VBoxManage setextradata "VM name" VBoxInternal/CPUM/IsaExts/SSE4.1 0
    37275754VBoxManage 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>
    37325761
    37335762  <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>
    37445775
    37455776    <para>
    37465777      This is a per-VM setting and it is enabled by default.
    37475778    </para>
     5779
    37485780  </sect1>
    37495781
    37505782  <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
    37745813  </sect1>
    37755814
    37765815  <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>
    38015850
    38025851    <para>
    38035852      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
    38105860  </sect1>
    38115861
    38125862  <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.
    38355887    </para>
    38365888
    38375889    <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:
    38435896      </para>
    38445897
     
    38465899
    38475900        <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
    38495903            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.
    38585905          </para>
    38595906        </listitem>
    38605907
    38615908        <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.
    38805915          </para>
    38815916        </listitem>
    38825917
    38835918        <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>
    38875924        </listitem>
    38885925
     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
    38895956      </itemizedlist>
    38905957
     
    38925959
    38935960    <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
    39235999    </sect2>
    39246000
    39256001    <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
    39496029    </sect2>
    39506030
    39516031    <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
    39666049    </sect2>
     6050
    39676051  </sect1>
    39686052
    39696053  <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>
    39746061
    39756062    <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>
    39786068    </note>
    39796069
    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>
    39826075
    39836076    <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>
    39896085
    39906086      <itemizedlist>
     6087
    39916088        <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>
    39996111        </listitem>
     6112
    40006113        <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>
    40056131        </listitem>
     6132
    40066133        <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>
    40116151        </listitem>
     6152
    40126153        <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>
    40206175        </listitem>
     6176
    40216177        <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>
    40286198        </listitem>
     6199
    40296200        <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>
    40386224        </listitem>
     6225
    40396226      </itemizedlist>
    40406227
    40416228      <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
    41736479      </sect3>
     6480
    41746481    </sect2>
     6482
    41756483  </sect1>
    41766484
    41776485  <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
    42196538              <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
    42886624  </sect1>
    42896625
    42906626  <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>
    43096656    </para>
    43106657
    43116658    <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>
    43276682$ 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>
    43326691 - busid 4-2 (0bda:0301)
    43336692   Realtek Semiconductor Corp. : multicard reader (0bda:0301)
     
    43356694 - busid 5-1 (046d:c52b)
    43366695   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
    43506721    </sect2>
    43516722
    43526723    <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
    43616738    </sect2>
     6739
    43626740  </sect1>
    43636741
    4364   <xi:include href="user_isomakercmd-man.xml"    xpointer="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" />
    43656743
    43666744</chapter>
    4367 
  • trunk/doc/manual/en_US/user_BasicConcepts.xml

    r69633 r73276  
    11<?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]>
    47<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>
    2029
    2130  <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>
    148190
    149191    <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
    201269    </sect2>
    202270
    203271    <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
    253353    </sect2>
     354
    254355  </sect1>
    255356
    256357  <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
    284405  </sect1>
    285406
    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,
    294422          VirtualBox emulates a standard PS/2 keyboard and mouse. These
    295423          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>
    301545        </listitem>
    302546
    303547        <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>
    310563        </listitem>
    311564
     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
    312579        <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>
    323588        </listitem>
    324589
    325590        <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>
    328617        </listitem>
    329618
    330619        <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>
    346654        </listitem>
    347655
     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
    348710        <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>
    351729        </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
    3531009  </sect1>
    3541010
    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
    4781130  </sect1>
    4791131
    480   <sect1 id="settings-system">
    481     <title>System settings</title>
    482 
    483     <para>The "System" category groups various settings that are related to
    484     the basic hardware that is presented to the virtual machine.<note>
    485         <para>As the activation mechanism of Microsoft Windows is sensitive to
    486         hardware changes, if you are changing hardware settings for a Windows
    487         guest, some of these changes may trigger a request for another
    488         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 that
    495       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 to
    501               the VM when it is running. The specified amount of memory will
    502               be requested from the host operating system, so it must be
    503               available or made available as free memory on the host when
    504               attempting to start the VM and will not be available to the host
    505               while the VM is running. This is the same setting that was
    506               specified in the "New Virtual Machine" wizard, as described with
    507               guidelines under <xref linkend="gui-createvm" /> above.</para>
    508 
    509               <para>Generally, it is possible to change the memory size after
    510               installing the guest operating system (provided you do not
    511               reduce the memory to an amount where the operating system would
    512               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 guest
    521               operating system will attempt to boot from the various virtual
    522               boot devices. Analogous to a real PC's BIOS setting, VirtualBox
    523               can tell a guest OS to start from the virtual floppy, the
    524               virtual CD/DVD drive, the virtual hard drive (each of these as
    525               defined by the other VM settings), the network, or none of
    526               these.</para>
    527 
    528               <para>If you select "Network", the VM will attempt to boot from
    529               a network via the PXE mechanism. This needs to be configured in
    530               detail on the command line; please see <xref
    531               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 the
    540               virtual machine. Before VirtualBox 4.0, PIIX3 was the only
    541               available option here. For modern guest operating systems such
    542               as Mac OS X, that old chipset is no longer well supported. As a
    543               result, VirtualBox 4.0 introduced an emulation of the more
    544               modern ICH9 chipset, which supports PCI express, three PCI
    545               buses, PCI-to-PCI bridges and Message Signaled Interrupts
    546               (MSI). This allows modern operating systems to address more PCI
    547               devices and no longer requires IRQ sharing. Using the ICH9 chipset
    548               it is also possible to configure up to 36 network cards (up to 8
    549               network adapters with PIIX3). Note that the ICH9 support is
    550               experimental and not recommended for guest operating systems which
    551               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 the
    560               traditional PS/2 mouse. If set to <emphasis>USB tablet</emphasis>,
    561               VirtualBox reports to the virtual machine that a USB tablet
    562               device is present and communicates mouse events to
    563               the virtual machine through this device. The third setting is
    564               a <emphasis>USB Multi-Touch Tablet</emphasis> which is suited
    565               for recent Windows guests.</para>
    566 
    567               <para>Using the virtual USB tablet has the advantage that
    568               movements are reported in absolute coordinates (instead of as
    569               relative position changes), which allows VirtualBox to translate
    570               mouse events over the VM window into tablet events without
    571               having to "capture" the mouse in the guest as described in <xref
    572               linkend="keyb_mouse_normal" />. This makes using the VM less
    573               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 is
    576                   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 a
    585               newer x86 hardware feature that have replaced old-style
    586               Programmable Interrupt Controllers (PICs) in recent years. With
    587               an I/O APIC, operating systems can use more than 16 interrupt
    588               requests (IRQs) and therefore avoid IRQ sharing for improved
    589               reliability.<note>
    590                   <para>Enabling the I/O APIC is <emphasis>required</emphasis>
    591                   for 64-bit guest operating systems, especially Windows
    592                   Vista; it is also required if you want to use more than one
    593                   virtual CPU in a virtual machine.</para>
    594                 </note></para>
    595 
    596               <para>However, software support for I/O APICs has been
    597               unreliable with some operating systems other than Windows. Also,
    598               the use of an I/O APIC slightly increases the overhead of
    599               virtualization and therefore slows down the guest OS a
    600               little.<warning>
    601                   <para>All Windows operating systems starting with Windows
    602                   2000 install different kernels depending on whether an I/O
    603                   APIC is available. As with ACPI, the I/O APIC therefore
    604                   <emphasis>must not be turned off after
    605                   installation</emphasis> of a Windows guest OS. Turning it on
    606                   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), which
    616               replaces the legacy BIOS and may be useful for certain
    617               advanced use cases. Please refer to <xref linkend="efi" /> for
    618               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 UTC
    627               format to the guest instead of local (host) time. This affects
    628               how the virtual real-time clock (RTC) operates and may be useful
    629               for Unix-like guest operating systems, which typically expect
    630               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">Advanced
    637       Configuration and Power Interface (ACPI)</emphasis> which VirtualBox
    638       presents to the guest operating system by default. ACPI is the current
    639       industry standard to allow operating systems to recognize hardware,
    640       configure motherboards and other devices and manage power. As all modern
    641       PCs contain this feature and Windows and Linux have been supporting it
    642       for years, it is also enabled by default in VirtualBox. It can only be
    643       turned off on the command line; see <xref
    644       linkend="vboxmanage-modifyvm" />.<warning>
    645           <para>All Windows operating systems starting with Windows 2000
    646           install different kernels depending on whether ACPI is available, so
    647           ACPI <emphasis>must not be turned off</emphasis> after installation
    648           of a Windows guest OS. Turning it on after installation will have no
    649           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 <emphasis
    657       role="bold">CPU cores</emphasis> the guest operating systems should see.
    658       Starting with version 3.0, VirtualBox supports symmetrical
    659       multiprocessing (SMP) and can present up to 32 virtual CPU cores to each
    660       virtual machine.</para>
    661 
    662       <para>You should not, however, configure virtual machines to use more
    663       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 execution
    666       cap"</emphasis>. This setting
    667       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 setting
    669       of 50% implies a single virtual CPU can use up to 50% of a single host
    670       CPU. Note that limiting the execution time of the virtual CPUs may induce
    671       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 CPU
    675       will be exposed to the virtual machine. PAE stands for "Physical Address
    676       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 is
    678       made possible by adding another 4 bits to memory addresses, so that with
    679       36 bits, up to 64 GB can be addressed. Some operating systems (such as
    680       Ubuntu Server) require PAE support from the CPU and cannot be run in a
    681       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 should
    692       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 whether
    696       VirtualBox should use software or hardware virtualization.<footnote>
    697           <para>Prior to VirtualBox version 2.2, software virtualization was
    698           the default; starting with version 2.2, VirtualBox will enable
    699           hardware virtualization by default for new virtual machines that you
    700           create. (Existing virtual machines are not automatically changed for
    701           compatibility reasons, and the default can of course be changed for
    702           each virtual machine.)</para>
    703         </footnote></para>
    704 
    705       <para>In most cases, the default settings will be fine; VirtualBox will
    706       have picked sensible defaults depending on the operating system that you
    707       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 about
    711       software vs. hardware virtualization; please see <xref
    712       linkend="hwvirt" />.</para>
    713 
    714       <para>If your host's CPU supports the <emphasis role="bold">nested
    715       paging</emphasis> (AMD-V) or <emphasis role="bold">EPT</emphasis> (Intel
    716       VT-x) features, then you can expect a significant performance increase
    717       by enabling nested paging in addition to hardware virtualization. For
    718       technical details, see <xref linkend="nestedpaging" />.</para>
    719 
    720       <para>Starting with version 5.0, VirtualBox provides paravirtualization
    721       interfaces to improve time-keeping accuracy and performance of guest
    722       operating systems. The options available are documented under the
    723       <computeroutput>paravirtprovider</computeroutput> option
    724       in <xref linkend="vboxmanage-modifyvm" />. For further details on
    725       the paravirtualization providers, please refer to
    726       <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 virtual
    739           graphics card available to the guest, in MB. As with the main
    740           memory, the specified amount will be allocated from the host's
    741           resident memory. Based on the amount of video memory, higher
    742           resolutions and color depths may be available.</para>
    743           <para>The GUI will show a warning if the amount of video memory
    744           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, the
    746           screen resolution and the color depth of the host display as well
    747           as of the activation of <emphasis>3D acceleration</emphasis> and
    748           <emphasis>2D video acceleration</emphasis>. A rough estimate
    749           is (<emphasis>color depth</emphasis> / 8) x
    750           <emphasis>vertical pixels</emphasis> x
    751           <emphasis>horizontal pixels</emphasis> x
    752           <emphasis>number of screens</emphasis> = <emphasis>number of bytes</emphasis>.
    753           Like said above, there might be extra memory required for any
    754           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 virtual
    763           monitor to a virtual machine. If a guest operating system (such as
    764           Windows) supports multiple attached monitors, VirtualBox can pretend
    765           that multiple virtual monitors are present.<footnote>
    766               <para>Multiple monitor support was added with VirtualBox
    767               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 the
    771           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 the
    774           available physical monitors attached to the host. As a result, for
    775           full screen and seamless modes to work with multiple monitors, you
    776           will need at least as many physical monitors as you have virtual
    777           monitors configured, or VirtualBox will report an error. You can
    778           configure the relationship between guest and host monitors using the
    779           view menu by pressing Host key + Home when you are in full screen or
    780           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 can
    791           select here whether the guest should support accelerated 3D
    792           graphics. Please refer to <xref linkend="guestadd-3d" /> for
    793           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 Guest
    802           Additions installed, you can select here whether the guest should
    803           support accelerated 2D video graphics. Please refer to <xref
    804           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 Remote
    813           Display Extension (VRDE) is installed, you can enable the VRDP server
    814           that is built into VirtualBox. This allows you to connect to the
    815           console of the virtual machine remotely with any standard RDP viewer,
    816           such as <computeroutput>mstsc.exe</computeroutput> that comes with
    817           Microsoft Windows. On Linux and Solaris systems you can use the
    818           standard open-source <computeroutput>rdesktop</computeroutput>
    819           program. These features are described in detail in
    820           <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 capturing
    829           for this VM. Note that this feature can also be enabled/disabled
    830           while the VM is executed.</para>
    831         </glossdef>
    832       </glossentry>
    833     </glosslist>
    834   </sect1>
    835 
    8361132  <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>
    8591169        <imageobject>
    8601170          <imagedata align="center" fileref="images/vm-settings-harddisk.png"
    8611171                     width="10cm" />
    8621172        </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
    8781197          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
    9181282              <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\&lt;name&gt;</computeroutput>
    1148                       where <computeroutput>&lt;name&gt;</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" />.
    11791301                </para>
    11801302              </listitem>
    11811303
    11821304              <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\&lt;name&gt;</computeroutput>
     1615                  where <computeroutput>&lt;name&gt;</computeroutput>
     1616                  should identify the virtual machine but may be freely
     1617                  chosen.
    11881618                </para>
    11891619              </listitem>
    11901620
    11911621              <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.
    11961629                </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>
    12201638              </listitem>
    12211639
    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>
    12231864        </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
    12301954  </sect1>
    12311955
    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
    13532484    </sect2>
    13542485
    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 &lt;value&gt;</screen>
     2500      </para>
     2501
    13852502    </sect2>
     2503
    13862504  </sect1>
    13872505
    1388   <sect1>
    1389     <title>Shared folders</title>
    1390 
    1391     <para>Shared folders allow you to easily exchange data between a virtual
    1392     machine and your host. This feature requires that the VirtualBox Guest
    1393     Additions be installed in a virtual machine and is described in detail in
    1394     <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 of
    1401       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 at
    1408             the menu to release it), certain menu entries (uncheck the
    1409             checkbox of the entry to disable it) and the complete menu bar
    1410             (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 a
    1419           small toolbar that contains some of the items that are normally
    1420           available from the virtual machine's menu bar. This toolbar
    1421           reduces itself to a small gray line unless you move the mouse
    1422           over it. With the toolbar, you can return from full screen or
    1423           seamless mode, control machine execution or enable certain
    1424           devices. If you don't want to see the toolbar, disable this
    1425           setting.</para>
    1426           <para>The second setting allows to show the toolbar at the top
    1427           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 the
    1435           status bar (uncheck the checkbox of an icon to disable it),
    1436           to re-arrange icons (drag and drop the icon) and to disable the
    1437           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 support
    1448     for the Extensible Firmware Interface (EFI), which is a new industry
    1449     standard intended to eventually replace the legacy BIOS as the primary
    1450     interface for bootstrapping computers and certain system services
    1451     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 the
    1455     machine's "Settings" dialog (see <xref linkend="settings-motherboard" />).
    1456     Alternatively, use the <computeroutput>VBoxManage</computeroutput> command
    1457     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>One
    1459     notable user of EFI is Apple's Mac OS X, but more recent Linuxes
    1460     and Windows (starting with Vista) offer special versions that can be
    1461     booted using EFI as well.</para>
    1462 
    1463     <para>Another possible use of EFI in VirtualBox is development and testing
    1464     of EFI applications, without booting any OS.</para>
    1465 
    1466     <para>Note that the VirtualBox EFI support is experimental and will be
    1467       enhanced as EFI matures and becomes more widespread. Mac OS X, Linux
    1468       and newer Windows guests are known to work fine. Windows 7 guests are
    1469       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 Output
    1475       Protocol) and UGA (Universal Graphics Adapter). Modern operating systems
    1476       (such as Mac OS X) generally use GOP, while some older ones still use
    1477       UGA. VirtualBox provides a configuration option to control the
    1478       graphics resolution for both interfaces, making the difference mostly
    1479       irrelevant for users.</para>
    1480 
    1481       <para>The default resolution is 1024x768. To select a graphics resolution
    1482       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 from
    1486       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, see
    1709       <xref linkend="customvesa" />. Note that the color depth value specified
    1710       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 when
    1714       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 guest
    1721       (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 set
    1723       the "boot-args" variable. To change the "boot-args" EFI variable:
    1724       <screen>VBoxManage setextradata "VM name" VBoxInternal2/EfiBootArgs &lt;value&gt;</screen>
    1725       </para>
    1726     </sect2>
    1727 
    1728   </sect1>
    17292506</chapter>
  • trunk/doc/manual/en_US/user_ChangeLog.xml

    r69633 r73276  
    11<?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
    48<chapter id="ChangeLog">
    5   <title>Change log</title>
     9  <title>Change Log</title>
    610
    711  <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>
    913
    1014  <para>VirtualBox version numbers consist of three numbers separated by dots
     
    1418  In addition, each build contains a revision number.</para>
    1519
    16   <xi:include href="@VBOX_PATH_MANUAL_SRC@/user_ChangeLogImpl.xml" xpointer="xpointer(/chapter/*)"
     20  <xi:include href="user_ChangeLogImpl.xml" xpointer="xpointer(/chapter/*)"
    1721    xmlns:xi="http://www.w3.org/2001/XInclude" />
    1822
    19   <sect1>
    20     <title>Older Change log details</title>
     23  <sect1 id="change-log-older">
     24    <title>Older Change Log Details</title>
    2125    <para>With VirtualBox 5.0, changelog information for versions before 4.3
    2226    was removed in order to save space. To access this information, please
  • trunk/doc/manual/en_US/user_Frontends.xml

    r69633 r73276  
    11<?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]>
    47<chapter id="remotevm">
    5   <title>Remote virtual machines</title>
     8
     9  <title>Remote Virtual Machines</title>
    610
    711  <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>
    6899
    69100    <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" &rarr; "All Programs" &rarr; "Accessories"
    87             &rarr; "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>
    176116
    177117      <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 &lt;uuid|name&gt;</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 &lt;uuid|name&gt; --vrde on</screen>
    217       and to disable it:<screen>VBoxHeadless --startvm &lt;uuid|name&gt; --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 &lt;uuid|name&gt; --vrde config</screen>
    221       but this is the same as <screen>VBoxHeadless --startvm &lt;uuid|name&gt;</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>&lt;vm&gt;</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/&lt;user&gt;" &lt;hash&gt;</screen></para>
    469 
    470                         <para>Replace
    471                         <computeroutput>&lt;vm&gt;</computeroutput> with the
    472                         VM name or UUID,
    473                         <computeroutput>&lt;user&gt;</computeroutput> with the
    474                         user name who should be allowed to log in and
    475                         <computeroutput>&lt;hash&gt;</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
    551146              <listitem>
    552147                <para>
    553                   <computeroutput>Negotiate</computeroutput> - both Enhanced (TLS)
    554                   and Standard RDP Security connections are allowed. The security
    555                   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>
    556151                </para>
    557152              </listitem>
     
    559154              <listitem>
    560155                <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>
    563165              </listitem>
    564166
    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 &lt;uuid|name&gt;</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 &lt;uuid|name&gt; --vrde on</screen>
     334
     335        To disable the VRDP server:
     336
     337<screen>VBoxHeadless --startvm &lt;uuid|name&gt; --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 &lt;uuid|name&gt; --vrde config</screen>
     343
     344        This command is the same as:
     345
     346<screen>VBoxHeadless --startvm &lt;uuid|name&gt;</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>
    569637                </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
    583639                <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>
    587646                </listitem>
    588647
    589648                <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>
    593663                </listitem>
    594664
     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
    595689                <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>
    599697                </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>&lt;vm&gt;</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/&lt;user&gt;" &lt;hash&gt;</screen>
     725
     726                  <para>
     727                    Replace <computeroutput>&lt;vm&gt;</computeroutput>
     728                    with the VM name or UUID,
     729                    <computeroutput>&lt;user&gt;</computeroutput> with
     730                    the user name who should be allowed to log in and
     731                    <computeroutput>&lt;hash&gt;</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
     915openssl 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" \
    603935  --vrdeproperty "Security/CACertificate=path/ca_cert.pem"</screen>
    604             <screen>vboxmanage modifyvm "VM name" \
     936
     937<screen>vboxmanage modifyvm "VM name" \
    605938  --vrdeproperty "Security/ServerCertificate=path/server_cert.pem"</screen>
    606             <screen>vboxmanage modifyvm "VM name" \
     939
     940<screen>vboxmanage modifyvm "VM name" \
    607941  --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
    616953    </sect2>
    617954
    618955    <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
    628974    </sect2>
    629975
    630976    <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
    6531010    </sect2>
    6541011
    6551012    <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
    6811055    </sect2>
    6821056
    6831057    <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
    6941072VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableInput=1
    6951073VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUSB=1
     
    6981076VBoxManage modifyvm "VM name" --vrdeproperty Client/DisableUpstreamAudio=1</screen>
    6991077
    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
    7081092VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableInput" 1
    7091093VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableUSB" 1
     
    7111095VBoxManage setextradata "VM name" "VRDP/Feature/Client/DisableClipboard" 1</screen>
    7121096
    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
    7151104    </sect2>
     1105
    7161106  </sect1>
    7171107
    7181108  <sect1 id="teleporting">
     1109
    7191110    <title>Teleporting</title>
    7201111
    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 &lt;targetvmname&gt; --teleporter on --teleporterport &lt;port&gt;</screen></para>
    769 
    770           <para>where <computeroutput>&lt;targetvmname&gt;</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 &lt;targetvmname&gt; --teleporter on --teleporterport &lt;port&gt;</screen>
     1189
     1190        <para>
     1191          where <computeroutput>&lt;targetvmname&gt;</computeroutput> is
    7711192          the name of the virtual machine on the target host and
    7721193          <computeroutput>&lt;port&gt;</computeroutput> is a TCP/IP port
    7731194          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 &lt;sourcevmname&gt; teleport --host &lt;targethost&gt; --port &lt;port&gt;</screen></para>
    788 
    789           <para>where <computeroutput>&lt;sourcevmname&gt;</computeroutput> is
    790           the name of the virtual machine on the source host (the machine that
    791           is currently running),
    792           <computeroutput>&lt;targethost&gt;</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>&lt;port&gt;</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 &lt;sourcevmname&gt; teleport --host &lt;targethost&gt; --port &lt;port&gt;</screen>
     1217
     1218        <para>
     1219          where <computeroutput>&lt;sourcevmname&gt;</computeroutput> is
     1220          the name of the virtual machine on the source host (the
     1221          machine that is currently running),
     1222          <computeroutput>&lt;targethost&gt;</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>&lt;port&gt;</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
    8151257  </sect1>
     1258
    8161259</chapter>
  • trunk/doc/manual/en_US/user_Glossary.xml

    r69633 r73276  
    11<?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]>
    47<glossary id="Glossary">
    5   <glossdiv>
     8
     9  <glossdiv>
     10
    611    <title>A</title>
    712
    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
    73107    <title>B</title>
    74108
    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
    89129    <title>C</title>
    90130
    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
    106152    <title>D</title>
    107153
    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
    124177    <title>E</title>
    125178
    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
    149213    <title>G</title>
    150214
    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
    174248    <title>I</title>
    175249
    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
    203291    <title>M</title>
    204292
    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
    232330    <title>N</title>
    233331
    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
    250355    <title>O</title>
    251356
    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
    264375    <title>P</title>
    265376
    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
    298424    <title>R</title>
    299425
    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
    319452    <title>S</title>
    320453
    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
    373528    <title>T</title>
    374529
    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
    390552    <title>U</title>
    391553
    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
    407576    <title>V</title>
    408577
    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
    460653    <title>X</title>
    461654
    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
    495702</glossary>
  • trunk/doc/manual/en_US/user_GuestAdditions.xml

    r69633 r73276  
    11<?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]>
    47<chapter id="guestadditions">
     8
    59  <title>Guest Additions</title>
    610
    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
    175209  </sect1>
    176210
    177   <sect1>
     211  <sect1 id="guestadd-install">
     212
    178213    <title>Installing and Maintaining Guest Additions</title>
    179214
    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>
    183220
    184221    <sect2 id="additions-windows">
     222
    185223      <title>Guest Additions for Windows</title>
    186224
    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>
    190230
    191231      <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>
    230291        </listitem>
    231292
     
    233294
    234295      <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>
    244310
    245311        <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>
    254332        </note>
    255333
    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>
    258338
    259339        <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
    280374                  <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
    314420        </orderedlist>
    315421
    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
    333448      </sect3>
    334449
    335       <sect3>
     450      <sect3 id="additions-windows-updating">
     451
    336452        <title>Updating the Windows Guest Additions</title>
    337453
    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>
    344465
    345466        <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
    353480        </orderedlist>
    354481
    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
    358488      </sect3>
    359489
    360       <sect3>
     490      <sect3 id="additions-windows-install-unattended">
     491
    361492        <title>Unattended Installation</title>
    362493
    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-&lt;Architecture&gt;.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-&lt;Architecture&gt;.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 "&lt;Path to exported
    482         certificate file&gt;"</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 &ndash; 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 "&lt;Path to
     715          exported certificate file&gt;"</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
    507758      </sect3>
    508759
    509760      <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
    524783      </sect3>
    525784
    526785    </sect2>
    527786
    528     <sect2>
     787    <sect2 id="additions-linux">
     788
    529789      <title>Guest Additions for Linux</title>
    530790
    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>
    536800
    537801      <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
    557833      </itemizedlist>
    558834
    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
    580864        <title>Installing the Linux Guest Additions</title>
    581865
    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>
    589879
    590880        <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
    619923        </orderedlist>
     924
    620925      </sect3>
    621926
    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
    650967      </sect3>
    651968
    652       <sect3>
     969      <sect3 id="additions-linux-updating">
     970
    653971        <title>Updating the Linux Guest Additions</title>
    654972
    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
    659980      </sect3>
    660981
    661       <sect3>
     982      <sect3 id="additions-linux-uninstall">
     983
    662984        <title>Uninstalling the Linux Guest Additions</title>
    663985
    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
    6831020      </sect3>
     1021
    6841022    </sect2>
    6851023
    686     <sect2>
     1024    <sect2 id="additions-solaris">
     1025
    6871026      <title>Guest Additions for Solaris</title>
    6881027
    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>
    6961038
    6971039      <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
    7051053      </itemizedlist>
    7061054
    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
    7111062        <title>Installing the Solaris Guest Additions</title>
    7121063
    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>
    7191074
    7201075        <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
    7461114        </orderedlist>
     1115
    7471116      </sect3>
    7481117
    749       <sect3>
     1118      <sect3 id="additions-solaris-uninstall">
     1119
    7501120        <title>Uninstalling the Solaris Guest Additions</title>
    7511121
    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
    7571132      </sect3>
    7581133
    759       <sect3>
     1134      <sect3 id="additions-solaris-updating">
     1135
    7601136        <title>Updating the Solaris Guest Additions</title>
    7611137
    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
    7661145      </sect3>
     1146
    7671147    </sect2>
    7681148
    769     <sect2>
     1149    <sect2 id="additions-os2">
     1150
    7701151      <title>Guest Additions for OS/2</title>
    7711152
    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
    7861175    </sect2>
     1176
    7871177  </sect1>
    7881178
    7891179  <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>
    8341250
    8351251    <orderedlist>
     1252
    8361253      <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>
    8391258      </listitem>
    8401259
    8411260      <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>
    8461267      </listitem>
     1268
    8471269    </orderedlist>
    8481270
    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>
    8761314
    8771315    <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" &rarr; "Entire Network"
    889             &rarr; "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
    9351396uid=5000(jack) gid=1(other)
    9361397$ mkdir /export/home/jack/mount
     
    9411402$</screen>
    9421403
    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
    9621433            <computeroutput>uid</computeroutput>,
    9631434            <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
    9691443    </sect2>
    9701444
    9711445    <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
    10011489            <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
    10321535    </sect2>
     1536
    10331537  </sect1>
    10341538
    10351539  <sect1 id="guestadd-dnd">
     1540
    10361541    <title>Drag and Drop</title>
    10371542
    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"
    10761603                   width="10cm" />
    10771604        </imageobject>
    1078       </mediaobject></para>
     1605      </mediaobject>
     1606    </para>
    10791607
    10801608    <itemizedlist>
     1609
    10811610      <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>
    10841616      </listitem>
     1617
    10851618      <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>
    10881623      </listitem>
     1624
    10891625      <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>
    10921630      </listitem>
     1631
    10931632      <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>
    10971638      </listitem>
     1639
    10981640    </itemizedlist>
    10991641
    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>
    11081658
    11091659    <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
    11371711    </sect2>
    11381712
    11391713    <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
    11531730    </sect2>
    11541731
     
    11561733
    11571734  <sect1 id="guestadd-video">
    1158     <title>Hardware-accelerated graphics</title>
     1735
     1736    <title>Hardware-Accelerated Graphics</title>
    11591737
    11601738    <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).
    12171791              </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>
    12251843            <para>
    12261844              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
    12761918    </sect2>
    12771919
    12781920    <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
    13171981    </sect2>
     1982
    13181983  </sect1>
    13191984
    13201985  <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
    13532037  </sect1>
    13542038
    13552039  <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"
     2108VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable>
     2109(C) 2005-2018 Oracle Corporation
    14012110All rights reserved.
    14022111
     
    14122121Name: /VirtualBox/GuestAdd/Revision, value: 40720,
    14132122    timestamp: 1229098279345664000, flags:
    1414 Name: /VirtualBox/GuestAdd/Version, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@,
     2123Name: /VirtualBox/GuestAdd/Version, value: <replaceable>version-number</replaceable>,
    14152124    timestamp: 1229098279479515000, flags:
    1416 Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2125Name: /VirtualBox/GuestAdd/Components/VBoxControl.exe, value: <replaceable>version-number</replaceable>r40720,
    14172126    timestamp: 1229098279651731000, flags:
    1418 Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2127Name: /VirtualBox/GuestAdd/Components/VBoxHook.dll, value: <replaceable>version-number</replaceable>r40720,
    14192128    timestamp: 1229098279804835000, flags:
    1420 Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2129Name: /VirtualBox/GuestAdd/Components/VBoxDisp.dll, value: <replaceable>version-number</replaceable>r40720,
    14212130    timestamp: 1229098279880611000, flags:
    1422 Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2131Name: /VirtualBox/GuestAdd/Components/VBoxMRXNP.dll, value: <replaceable>version-number</replaceable>r40720,
    14232132    timestamp: 1229098279882618000, flags:
    1424 Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2133Name: /VirtualBox/GuestAdd/Components/VBoxService.exe, value: <replaceable>version-number</replaceable>r40720,
    14252134    timestamp: 1229098279883195000, flags:
    1426 Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2135Name: /VirtualBox/GuestAdd/Components/VBoxTray.exe, value: <replaceable>version-number</replaceable>r40720,
    14272136    timestamp: 1229098279885027000, flags:
    1428 Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2137Name: /VirtualBox/GuestAdd/Components/VBoxGuest.sys, value: <replaceable>version-number</replaceable>r40720,
    14292138    timestamp: 1229098279886838000, flags:
    1430 Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2139Name: /VirtualBox/GuestAdd/Components/VBoxMouse.sys, value: <replaceable>version-number</replaceable>r40720,
    14312140    timestamp: 1229098279890600000, flags:
    1432 Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2141Name: /VirtualBox/GuestAdd/Components/VBoxSF.sys, value: <replaceable>version-number</replaceable>r40720,
    14332142    timestamp: 1229098279893056000, flags:
    1434 Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: @VBOX_VERSION_MAJOR@.@VBOX_VERSION_MINOR@.@VBOX_VERSION_BUILD@r40720,
     2143Name: /VirtualBox/GuestAdd/Components/VBoxVideo.sys, value: <replaceable>version-number</replaceable>r40720,
    14352144    timestamp: 1229098279895767000, flags:
    14362145Name: /VirtualBox/GuestInfo/OS/LoggedInUsers, value: 1,
     
    14512160    timestamp: 1229099826300524000, flags:
    14522161Name: /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"
     2170VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable>
     2171(C) 2005-2018 Oracle Corporation
    14592172All rights reserved.
    14602173
    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@
     2174Value: 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
     2185VirtualBox Guest Additions Command Line Management Interface Version <replaceable>version-number</replaceable>
     2186(C) 2005-2018 Oracle Corporation
    14692187All rights reserved.
    14702188
     
    14732191Name: /VirtualBox/GuestInfo/OS/Version, value: #59-Ubuntu SMP Thu Jan 28 01:23:03 UTC 2010,
    14742192    timestamp: 1265813265836305000, flags: &lt;NULL&gt;
    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
    14792200  </sect1>
    14802201
    14812202  <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
    15042239  </sect1>
    15052240
    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>
    15142252
    15152253    <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>
    15222263
    15232264      <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 &lt;VM name&gt;
     2279              --largepages off</computeroutput>
     2280            </para>
     2281          </listitem>
     2282
     2283        </itemizedlist>
    15262284      </note>
    15272285
     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
    15282374      <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 &lt;VM name&gt; --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.
    15322379        </para>
    15332380      </note>
    15342381
    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 &lt;n&gt;</screen>where
    1564       <computeroutput>"VM name"</computeroutput> is the name or UUID of the
    1565       virtual machine in question and
    1566       <computeroutput>&lt;n&gt;</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 &lt;n&gt;</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
    15782473    </sect2>
    15792474
    1580     <sect2 id="guestadd-pagefusion">
    1581       <title>Page Fusion</title>
    1582 
    1583       <para>Whereas memory ballooning simply reduces the amount of RAM that is
    1584       available to a VM, Page Fusion works differently: it avoids memory
    1585       duplication between several similar running VMs.</para>
    1586 
    1587       <para>In a server environment running several similar VMs (e.g. with
    1588       identical operating systems) on the same host, lots of memory pages are
    1589       identical. VirtualBox's Page Fusion technology, introduced with
    1590       VirtualBox 3.2, is a novel technique to efficiently identify these
    1591       identical memory pages and share them between multiple VMs.<note>
    1592           <para>VirtualBox supports Page Fusion only on 64-bit hosts, and it
    1593           is not supported on Mac OS X hosts. Page Fusion currently works only
    1594           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 efficiently
    1598       Page Fusion can reduce the amount of host memory that is in use. It
    1599       therefore works best if all VMs on a host run identical operating
    1600       systems (e.g. Windows XP Service Pack 2). Instead of having a complete
    1601       copy of each operating system in each VM, Page Fusion identifies the
    1602       identical memory pages in use by these operating systems and eliminates
    1603       the duplicates, sharing host memory between several machines
    1604       ("deduplication"). If a VM tries to modify a page that has been shared
    1605       with other VMs, a new page is allocated again for that VM with a copy of
    1606       the shared page ("copy on write"). All this is fully transparent to the
    1607       virtual machine.</para>
    1608 
    1609       <para>You may be familiar with this kind of memory overcommitment from
    1610       other hypervisor products, which call this feature "page sharing" or
    1611       "same page merging". However, Page Fusion differs significantly from
    1612       those other solutions, whose approaches have several
    1613       drawbacks:<orderedlist>
    1614           <listitem>
    1615             <para>Traditional hypervisors scan <emphasis>all</emphasis> guest
    1616             memory and compute checksums (hashes) for every single memory
    1617             page. Then, they look for pages with identical hashes and compare
    1618             the entire content of those pages; if two pages produce the same
    1619             hash, it is very likely that the pages are identical in content.
    1620             This, of course, can take rather long, especially if the system is
    1621             not idling. As a result, the additional memory only becomes
    1622             available after a significant amount of time (this can be hours or
    1623             even days!). Even worse, this kind of page sharing algorithm
    1624             generally consumes significant CPU resources and increases the
    1625             virtualization overhead by 10-20%.</para>
    1626 
    1627             <para>Page Fusion in VirtualBox uses logic in the VirtualBox Guest
    1628             Additions to quickly identify memory cells that are most likely
    1629             identical across VMs. It can therefore achieve most of the
    1630             possible savings of page sharing almost immediately and with
    1631             almost no overhead.</para>
    1632           </listitem>
    1633 
    1634           <listitem>
    1635             <para>Page Fusion is also much less likely to be confused by
    1636             identical memory that it will eliminate just to learn seconds
    1637             later that the memory will now change and having to perform a
    1638             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, use
    1644       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 amount
    1648       of fused pages, whereas the per-VM metric
    1649       <computeroutput>Guest/RAM/Usage/Shared</computeroutput> will return the
    1650       amount of fused memory for a given VM. Please refer to <xref
    1651         linkend="metrics" /> for information on how to query metrics.</para>
    1652 
    1653       <note><para>Enabling Page Fusion might indirectly increase the chances
    1654       for malicious guests to successfully attack other VMs running on the
    1655       same host, see <xref linkend="pot-insecure"/>.</para></note>
    1656     </sect2>
    16572475  </sect1>
     2476
    16582477</chapter>
  • trunk/doc/manual/en_US/user_Installation.xml

    r70838 r73276  
    11<?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]>
    47<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>
    1017
    1118  <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
    1524      <title>Prerequisites</title>
    1625
    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-&lt;version&gt;-&lt;revision&gt;-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-&lt;version&gt;-&lt;revision&gt;-MultiArch_&lt;x86|amd64&gt;.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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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
    30175          <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>
    33187          </listitem>
     188        </varlistentry>
     189
     190        <varlistentry>
     191          <term>
     192            VBoxUSB
     193          </term>
    34194
    35195          <listitem>
    36             <para>or by entering <screen>VirtualBox-&lt;version&gt;-&lt;revision&gt;-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-&lt;version&gt;-&lt;revision&gt;-MultiArch_&lt;x86|amd64&gt;.msi</screen>
    41             to perform the installation.</para>
     196            <para>
     197              USB support.
     198            </para>
    42199          </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 &ge; 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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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 &ge; 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.
    159253              </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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.msi NETWORKTYPE=NDIS5</screen>
     287
     288    </sect2>
     289
     290    <sect2 id="install-win-uninstall">
     291
    184292      <title>Uninstallation</title>
    185293
    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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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-&lt;version&gt;-MultiArch_&lt;x86|amd64&gt;.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
    262404  </sect1>
    263405
    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
    273715          <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>
    276723          </listitem>
    277724
    278725          <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>
    282732          </listitem>
    283733
    284734          <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>
    287739          </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
    474824      </sect3>
    475825
    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
    580848sudo tar jxf ./install/VirtualBox.tar.bz2 -C /opt/VirtualBox</screen>
    581849
    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 &gt; /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
     854tar 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
     916echo INSTALL_DIR=/opt/VirtualBox &gt; /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
    628922ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxManage
    629923ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxHeadless
    630924ln -sf /opt/VirtualBox/VBox.sh /usr/bin/VBoxSDL</screen>
     925
    631926      </sect3>
    632927
    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
    645954      </sect3>
    646955
    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
     969virtualbox 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
    668991      </sect3>
    669992
    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
    6771005      </sect3>
    6781006
    6791007      <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
    6921033      </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
    7061053    </sect2>
    7071054
    7081055    <sect2 id="startingvboxonlinux">
     1056
    7091057      <title>Starting VirtualBox on Linux</title>
    7101058
    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-&lt;username&gt;-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-&lt;username&gt;-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
    7441104  </sect1>
    7451105
    7461106  <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>
    7901167
    7911168      <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>
    7941173      </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
    8161204      <title>Starting VirtualBox on Solaris</title>
    8171205
    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
    8341232    </sect2>
    8351233
    8361234    <sect2 id="uninstall-solaris-host">
     1235
    8371236      <title>Uninstallation</title>
    8381237
    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
    8711290    </sect2>
    8721291
    8731292    <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&gt;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&gt;add device
    8921318zonecfg:vboxzone:device&gt;set match=/dev/vboxdrv
    8931319zonecfg:vboxzone:device&gt;end
     
    8971323zonecfg:vboxzone&gt;exit</screen>
    8981324
    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&gt;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&gt;add fs
    9111343zonecfg:vboxzone:device&gt;set dir=/opt/VirtualBox
    9121344zonecfg:vboxzone:device&gt;set special=/opt/VirtualBox
     
    9151347zonecfg:vboxzone&gt;exit</screen>
    9161348
    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
    9201357  </sect1>
     1358
    9211359</chapter>
  • trunk/doc/manual/en_US/user_Introduction.xml

    r71810 r73276  
    11<?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]>
    47<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>
    28958      <imageobject>
    29         <imagedata align="center" fileref="images/vm-vista-running.png"
    30                    width="14cm" />
     959        <imagedata align="center" fileref="images/virtualbox-main-empty.png"
     960                     width="10cm" />
    31961      </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
    105988  </sect1>
    106989
    107   <sect1 id="virtintro">
    108     <title>Some terminology</title>
    109 
    110     <para>When dealing with virtualization (and also for understanding the
    111     following chapters of this documentation), it helps to acquaint oneself
    112     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 which
    120           VirtualBox was installed. There are versions of VirtualBox for
    121           Windows, Mac OS X, Linux and Solaris hosts; for details, please see
    122           <xref linkend="hostossupport" />.</para>
    123 
    124           <para>Most of the time, this User Manual discusses all VirtualBox
    125           versions together. There may be platform-specific differences which
    126           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 the
    135           virtual machine. Theoretically, VirtualBox can run any x86 operating
    136           system (DOS, Windows, OS/2, FreeBSD, OpenBSD), but to achieve
    137           near-native performance of the guest code on your machine, we had to
    138           go through a lot of optimizations that are specific to certain
    139           operating systems. So while your favorite operating system
    140           <emphasis>may</emphasis> run as a guest, we officially support and
    141           optimize for a select few (which, however, include the most common
    142           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 for
    153           your guest operating system while it is running. In other words, you
    154           run your guest operating system "in" a VM. Normally, a VM will be
    155           shown as a window on your computer's desktop, but depending on which
    156           of the various frontends of VirtualBox you use, it can be displayed
    157           in full screen mode or remotely on another computer.</para>
    158 
    159           <para>In a more abstract way, internally, VirtualBox thinks of a VM
    160           as a set of parameters that determine its behavior. They include
    161           hardware settings (how much memory the VM should have, what hard
    162           disks VirtualBox should virtualize through which container files,
    163           what CDs are mounted etc.) as well as state information (whether the
    164           VM is currently running, saved, its snapshots etc.). These settings
    165           are mirrored in the VirtualBox Manager window as well as the
    166           <computeroutput>VBoxManage</computeroutput> command line program;
    167           see <xref linkend="vboxmanage" />. In other words, a VM is also what
    168           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 shipped
    177           with VirtualBox but designed to be installed
    178           <emphasis>inside</emphasis> a VM to improve performance of the guest
    179           OS and to add extra features. This is described in detail in <xref
    180           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 on
    194         a large number of 32-bit and 64-bit host operating systems (again, see
    195         <xref linkend="hostossupport" /> for details).</para>
    196 
    197         <para>VirtualBox is a so-called "hosted" hypervisor (sometimes
    198         referred to as a "type 2" hypervisor). Whereas a "bare-metal" or "type
    199         1" hypervisor would run directly on the hardware, VirtualBox requires
    200         an existing operating system to be installed. It can thus run
    201         alongside existing applications on that host.</para>
    202 
    203         <para>To a very large degree, VirtualBox is functionally identical on
    204         all of the host platforms, and the same file and image formats are
    205         used. This allows you to run virtual machines created on one host on
    206         another host with a different host operating system; for example, you
    207         can create a virtual machine on Windows and then run it under
    208         Linux.</para>
    209 
    210         <para>In addition, virtual machines can easily be imported and
    211         exported using the Open Virtualization Format (OVF, see <xref
    212         linkend="ovf" />), an industry standard created for this purpose. You
    213         can even import OVFs that were created with a different virtualization
    214         software.</para>
    215       </listitem>
    216 
    217       <listitem>
    218         <para><emphasis role="bold">No hardware virtualization
    219         required.</emphasis> For many scenarios, VirtualBox does not require
    220         the processor features built into newer hardware like Intel VT-x or
    221         AMD-V. As opposed to many other virtualization solutions, you can
    222         therefore use VirtualBox even on older hardware where these features
    223         are not present. The technical details are explained in <xref
    224         linkend="hwvirt" />.</para>
    225       </listitem>
    226 
    227       <listitem>
    228         <para><emphasis role="bold">Guest Additions: shared folders, seamless
    229         windows, 3D virtualization.</emphasis> The VirtualBox Guest Additions
    230         are software packages which can be installed
    231         <emphasis>inside</emphasis> of supported guest systems to improve
    232         their performance and to provide additional integration and
    233         communication with the host system. After installing the Guest
    234         Additions, a virtual machine will support automatic adjustment of
    235         video resolutions, seamless windows, accelerated 3D graphics and more.
    236         The Guest Additions are described in detail in <xref
    237         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 guest
    241         machine. Shared folders are described in <xref
    242         linkend="sharedfolders" />.</para>
    243       </listitem>
    244 
    245       <listitem>
    246         <para><emphasis role="bold">Great hardware support.</emphasis> Among
    247         others, VirtualBox supports:</para>
    248 
    249         <itemizedlist>
    250           <listitem>
    251             <para><emphasis role="bold">Guest multiprocessing
    252             (SMP).</emphasis> VirtualBox can present up to 32 virtual CPUs to
    253             each virtual machine, irrespective of how many CPU cores are
    254             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 to
    260             connect arbitrary USB devices to your virtual machines without
    261             having to install device-specific drivers on the host. USB support
    262             is not limited to certain device categories. For details, see
    263             <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 them
    269             many devices that are typically provided by other virtualization
    270             platforms. That includes IDE, SCSI and SATA hard disk controllers,
    271             several virtual network cards and sound cards, virtual serial and
    272             parallel ports and an Input/Output Advanced Programmable Interrupt
    273             Controller (I/O APIC), which is found in many modern PC systems.
    274             This eases cloning of PC images from real machines and importing
    275             of third-party virtual machines into VirtualBox.</para>
    276           </listitem>
    277 
    278           <listitem>
    279             <para><emphasis role="bold">Full ACPI support.</emphasis> The
    280             Advanced Configuration and Power Interface (ACPI) is fully
    281             supported by VirtualBox. This eases cloning of PC images from real
    282             machines or third-party virtual machines into VirtualBox. With its
    283             unique <emphasis role="bold">ACPI power status support,</emphasis>
    284             VirtualBox can even report to ACPI-aware guest operating systems
    285             the power status of the host. For mobile systems running on
    286             battery, the guest can thus enable energy saving and notify the
    287             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 times
    293             that of a physical screen, allowing them to be spread over a large
    294             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 machine
    300             directly to an iSCSI storage server without going through the host
    301             system. The VM accesses the iSCSI target directly without the
    302             extra overhead that is required for virtualizing hard disks in
    303             container files. For details, see <xref
    304             linkend="storage-iscsi" />.</para>
    305           </listitem>
    306 
    307           <listitem>
    308             <para><emphasis role="bold">PXE Network boot.</emphasis> The
    309             integrated virtual network cards of VirtualBox fully support
    310             remote booting via the Preboot Execution Environment (PXE).</para>
    311           </listitem>
    312         </itemizedlist>
    313       </listitem>
    314 
    315       <listitem>
    316         <para><emphasis role="bold">Multigeneration branched
    317         snapshots.</emphasis> VirtualBox can save arbitrary snapshots of the
    318         state of the virtual machine. You can go back in time and revert the
    319         virtual machine to any such snapshot and start an alternative VM
    320         configuration from there, effectively creating a whole snapshot tree.
    321         For details, see <xref linkend="snapshots" />. You can create and
    322         delete snapshots while the virtual machine is running.</para>
    323       </listitem>
    324 
    325       <listitem>
    326         <para><emphasis role="bold">VM groups.</emphasis> VirtualBox provides a
    327         groups feature that enables the user to organize and control virtual machines
    328         collectively, as well as individually. In addition to basic groups, it
    329         is also possible for any VM to be in more than one group, and for
    330         groups to be nested in a hierarchy -- i.e. groups of groups. In
    331         general, the operations that can be performed on groups are the same as
    332         those that can be applied to individual VMs i.e. Start, Pause, Reset,
    333         Close (Save state, Send Shutdown, Poweroff), Discard Saved State, Show
    334         in fileSystem, Sort.</para>
    335       </listitem>
    336 
    337       <listitem>
    338         <para><emphasis role="bold">Clean architecture; unprecedented
    339         modularity.</emphasis> VirtualBox has an extremely modular design with
    340         well-defined internal programming interfaces and a clean separation of
    341         client and server code. This makes it easy to control it from several
    342         interfaces at once: for example, you can start a VM simply by clicking
    343         on a button in the VirtualBox graphical user interface and then
    344         control that machine from the command line, or even remotely. See
    345         <xref linkend="frontends" /> for details.</para>
    346 
    347         <para>Due to its modular architecture, VirtualBox can also expose its
    348         full functionality and configurability through a comprehensive
    349         <emphasis role="bold">software development kit (SDK),</emphasis> which
    350         allows for integrating every aspect of VirtualBox with other software
    351         systems. Please see <xref linkend="VirtualBoxAPI" /> for
    352         details.</para>
    353       </listitem>
    354 
    355       <listitem>
    356         <para><emphasis role="bold">Remote machine display.</emphasis> The
    357         VirtualBox Remote Desktop Extension (VRDE) allows for high-performance
    358         remote access to any running virtual machine. This extension supports
    359         the Remote Desktop Protocol (RDP) originally built into Microsoft
    360         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 into
    363         Microsoft Windows; instead, it is plugged directly into the
    364         virtualization layer. As a result, it works with guest operating
    365         systems other than Windows (even in text mode) and does not require
    366         application support in the virtual machine either. The VRDE is
    367         described in detail in <xref linkend="vrde" />.</para>
    368 
    369         <para>On top of this special capacity, VirtualBox offers you more
    370         unique features:<itemizedlist>
    371             <listitem>
    372               <para><emphasis role="bold">Extensible RDP
    373               authentication.</emphasis> VirtualBox already supports Winlogon
    374               on Windows and PAM on Linux for RDP authentication. In addition,
    375               it includes an easy-to-use SDK which allows you to create
    376               arbitrary interfaces for other methods of authentication; see
    377               <xref linkend="vbox-auth" /> for details.</para>
    378             </listitem>
    379 
    380             <listitem>
    381               <para><emphasis role="bold">USB over RDP.</emphasis> Via RDP
    382               virtual channel support, VirtualBox also allows you to connect
    383               arbitrary USB devices locally to a virtual machine which is
    384               running remotely on a VirtualBox RDP server; see <xref
    385               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 operating
    396     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 VirtualBox
    402           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 with
    449             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.7
    451             (Lion) and earlier was removed with VirtualBox 5.0. Support for Mac
    452             OS X 10.8 (Mountain Lion) was removed with VirtualBox 5.1. Support
    453             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 <xref
    477         linkend="KnownIssues" /> also.</para>
    478       </listitem>
    479 
    480       <listitem>
    481         <para><emphasis role="bold">Linux</emphasis> hosts (32-bit and
    482         64-bit<footnote>
    483             <para>Support for 64-bit Linux was added with VirtualBox
    484             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 on
    517         Linux kernel 2.6 or 3.x using either the VirtualBox installer or by doing a
    518         manual installation; see <xref linkend="install-linux-host" />. However,
    519         the formally tested and supported Linux distributions are those for
    520         which we offer a dedicated package.</para>
    521 
    522         <para>Note that starting with VirtualBox 2.1, Linux 2.4-based host
    523         operating systems are no longer supported.</para>
    524       </listitem>
    525 
    526       <listitem>
    527         <para><emphasis role="bold">Solaris</emphasis> hosts (64-bit only) are
    528         supported with the restrictions listed in <xref
    529         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 customers
    541     who have a support contract is limited to a subset of the listed host
    542     operating systems. Also, any feature which is marked as  <emphasis
    543     role="bold">experimental</emphasis> is not supported. Feedback and
    544     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 installation
    558     depends on your host operating system. If you have installed software
    559     before, installation should be straightforward: on each host platform,
    560     VirtualBox uses the installation method that is most common and easy to
    561     use. If you run into trouble or have special requirements, please refer to
    562     <xref linkend="installation" /> for details about the various installation
    563     methods.</para>
    564 
    565     <para>Starting with version 4.0, VirtualBox is split into several
    566     components.<orderedlist>
    567         <listitem>
    568           <para>The base package consists of all open-source components and is
    569           licensed under the GNU General Public License V2.</para>
    570         </listitem>
    571 
    572         <listitem>
    573           <para>Additional extension packs can be downloaded which extend the
    574           functionality of the VirtualBox base package. Currently, Oracle
    575           provides the one extension pack, which can be found at <ulink
    576           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 <xref
    580                 linkend="settings-usb" />.</para>
    581               </listitem>
    582 
    583               <listitem>
    584                 <para>The virtual USB 3.0 (xHCI) device; see <xref
    585                 linkend="settings-usb" />.</para>
    586               </listitem>
    587 
    588               <listitem>
    589                 <para>VirtualBox Remote Desktop Protocol (VRDP) support; see
    590                 <xref linkend="vrde" />.</para>
    591               </listitem>
    592 
    593               <listitem>
    594                 <para>Host webcam passthrough; see chapter <xref
    595                     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 a
    614           <computeroutput>.vbox-extpack</computeroutput> file name extension.
    615           To install an extension, simply double-click on the package file
    616           and a Network Operations Manager window will appear, guiding you
    617           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 the
    621           "File" menu, please select "Preferences". In the window that shows
    622           up, go to the "Extensions" category which shows you the extensions
    623           which are currently installed and allows you to remove a package or
    624           add a new one.</para>
    625 
    626           <para>Alternatively you can use VBoxManage on the command line: see
    627           <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 as
    636     follows:<itemizedlist>
    637         <listitem>
    638           <para>On a Windows host, in the standard "Programs" menu, click on
    639           the item in the "VirtualBox" group. On Vista or Windows 7, you can
    640           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 the
    645           "VirtualBox" item in the "Applications" folder. (You may want to
    646           drag this item onto your Dock.)</para>
    647         </listitem>
    648 
    649         <listitem>
    650           <para>On a Linux or Solaris host, depending on your desktop
    651           environment, a "VirtualBox" item may have been placed in either the
    652           "System" or "System Tools" group of your "Applications" menu.
    653           Alternatively, you can type
    654           <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 the
    659     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 <emphasis
    667     role="bold">"VirtualBox Manager".</emphasis> On the left, you can see a
    668     pane that will later list all your virtual machines. Since you have not
    669     created any, the list is empty. A row of buttons above it allows you to
    670     create new VMs and work on existing VMs, once you have some. The pane on
    671     the right displays the properties of the virtual machine currently
    672     selected, if any. Again, since you don't have any machines yet, the pane
    673     displays a welcome message.</para>
    674 
    675     <para>To give you an idea what VirtualBox might look like later, after you
    676     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 
    686990  <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>
    6941002        <imageobject>
    6951003          <imagedata align="center" fileref="images/create-vm-1.png"
    6961004                     width="10cm" />
    6971005        </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
    7171035          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>
    8451116          <mediaobject>
    8461117            <imageobject>
    847               <imagedata align="center" fileref="images/create-vdi-1.png"
    848                          width="10cm" />
     1118              <imagedata align="center" fileref="images/create-vm-2.png"
     1119                           width="10cm" />
    8491120            </imageobject>
    8501121          </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>
    8551348        </listitem>
    8561349
    8571350        <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>
    8621374        </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
    8751445        <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>
    8781474        </listitem>
    8791475
    8801476        <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>
    8831495        </listitem>
    8841496
     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
    8851531        <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>
    10921571
    10931572          <itemizedlist>
     1573
    10941574            <listitem>
    1095               <para>Use the items in the "Input" &rarr; "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>
    10991585            </listitem>
    11001586
    11011587            <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>
    11241622            </listitem>
     1623
    11251624          </itemizedlist>
    11261625        </listitem>
    11271626
    11281627        <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" &rarr; "Preferences" &rarr; "Input" &rarr;
    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>
    11361638        </listitem>
     1639
    11371640      </itemizedlist>
     1641
    11381642    </sect2>
    11391643
    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
    11571671    </sect2>
    11581672
    11591673    <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
    11791706            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
    12051742    </sect2>
    12061743
    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>
    12171758          <imageobject>
    12181759            <imagedata align="center" fileref="images/vm-close.png"
    12191760                       width="11cm" />
    12201761          </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>
    12231767
    12241768      <itemizedlist>
     1769
    12251770        <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>
    12351785        </listitem>
    12361786
    12371787        <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>
    12441796        </listitem>
    12451797
    12461798        <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>
    12651827        </listitem>
     1828
    12661829      </itemizedlist>
    12671830
    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
    12721838    </sect2>
     1839
    12731840  </sect1>
    12741841
    12751842  <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>
    12811851
    12821852    <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
    12831997        <listitem>
    12841998          <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>
    13002080        </listitem>
     2081
    13012082        <listitem>
    13022083          <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.
    13112139          </para>
    13122140        </listitem>
     2141
    13132142        <listitem>
    13142143          <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.
    13192169          </para>
    13202170        </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
    13212188        <listitem>
    13222189          <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.
    13272202          </para>
    13282203        </listitem>
     2204
    13292205        <listitem>
    13302206          <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.
    13342239          </para>
    13352240        </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
    13372263  </sect1>
    13382264
    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
    15392308  </sect1>
    15402309
    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
    15712331  </sect1>
    15722332
    1573   <sect1>
    1574     <title>Removing virtual machines</title>
    1575 
    1576     <para>To remove a virtual machine which you no longer need, right-click on
    1577     it in the Manager's VM list select "Remove" from the context menu that
    1578     comes up.</para>
    1579 
    1580     <para>A confirmation window will come up that allows you to select whether
    1581     the machine should only be removed from the list of machines or whether
    1582     the files associated with it should also be deleted.</para>
    1583 
    1584     <para>The "Remove" menu item is disabled while a machine is
    1585     running.</para>
    1586   </sect1>
    1587 
    15882333  <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>
    15972354
    15982355    <mediaobject>
     
    16032360    </mediaobject>
    16042361
    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
    16162380    <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
    16322400    </itemizedlist>
    16332401
    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
    16532432  </sect1>
    16542433
    16552434  <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
    16932499          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" &rarr; "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"
    17172538                     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" &rarr; "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
    17452587        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
    17502594  </sect1>
    17512595
    17522596  <sect1 id="globalsettings">
     2597
    17532598    <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
    17992681  </sect1>
    18002682
    18012683  <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
    18602762  </sect1>
     2763
    18612764</chapter>
  • trunk/doc/manual/en_US/user_KnownIssues.xml

    r71291 r73276  
    11<?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]>
    47<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
    1297        <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
    39122        </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
    102168          <computeroutput>gpedit.msc</computeroutput>, open the key
    103169          <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.
    283431          </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
    314493</chapter>
  • trunk/doc/manual/en_US/user_Networking.xml

    r69633 r73276  
    11<?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]>
    47<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>
    2847
    2948  <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
    113171  </sect1>
    114172
    115173  <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 network
    125             card is present, but that there is no connection -- as if no
    126             Ethernet cable was plugged into the card. This way it is possible
    127             to "pull" the virtual Ethernet cable and disrupt the connection,
    128             which can be useful to inform a guest operating system that no
    129             network connection is available and enforce a
    130             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 be
    140             sufficient for you, and you can safely skip the rest of this
    141             section. Please note that there are certain limitations when using
    142             Windows file sharing (see <xref linkend="nat-limitations" /> for
    143             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 in
    152               VirtualBox 4.3. See
    153               <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 needs such as network
    163             simulations and running servers in a guest. When enabled,
    164             VirtualBox connects to one of your installed network cards and
    165             exchanges network packets directly, circumventing your host
    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 of
    175             software-based network which is visible to selected virtual
    176             machines, but not to applications running on the host or to the
    177             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 and
    186             a set of virtual machines, without the need for the host's
    187             physical network interface. Instead, a virtual network interface
    188             (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 with
    199             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 machines
    210                     running on different hosts directly, easily and
    211                     transparently, over existing network
    212                     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 Virtual
    222                     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 important
    233     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>
    236294      <tgroup cols="5">
    237295        <colspec align="left" />
     
    289347    </table>
    290348
    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
    293354  </sect1>
    294355
    295356  <sect1 id="network_nat">
     357
    296358    <title>Network Address Translation (NAT)</title>
    297359
    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>
    333407
    334408    <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
    399506    </sect2>
    400507
    401508    <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
    411522    </sect2>
    412523
    413524    <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 &lt; 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
    475594    </sect2>
     595
    476596  </sect1>
    477597
    478598  <sect1 id="network_nat_service">
     599
    479600    <title>Network Address Translation Service</title>
    480601
    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
    531730  </sect1>
    532731
    533732  <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
    615851          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
    655909  </sect1>
    656910
    657911  <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&lt;x&gt; intnet</screen>
    699           Optionally, you can specify a network name with the command <screen>VBoxManage modifyvm "VM name" --intnet&lt;x&gt; "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&lt;x&gt; 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&lt;x&gt; "network name"</screen>
     977
     978        <para>
    700979          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
    7161003  </sect1>
    7171004
    7181005  <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&lt;x&gt; 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" &rarr; "Preferences" &rarr; "Network" &rarr; "Host-only network"
    766       &rarr; "(+)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" &rarr; "Preferences"
    778           &rarr; "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&lt;x&gt; 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
    7951134  </sect1>
    7961135
    7971136  <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&lt;x&gt; 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&lt;x&gt; generic
    8421195        VBoxManage modifyvm "VM 01 on host 1" --nicgenericdrv&lt;x&gt; UDPTunnel
    8431196        VBoxManage modifyvm "VM 01 on host 1" --nicproperty&lt;x&gt; dest=10.0.0.2
    8441197        VBoxManage modifyvm "VM 01 on host 1" --nicproperty&lt;x&gt; sport=10001
    8451198        VBoxManage modifyvm "VM 01 on host 1" --nicproperty&lt;x&gt; dport=10002</screen>
    846     and <screen>        VBoxManage modifyvm "VM 02 on host 2" --nic&lt;y&gt; generic
     1199
     1200<screen>        VBoxManage modifyvm "VM 02 on host 2" --nic&lt;y&gt; generic
    8471201        VBoxManage modifyvm "VM 02 on host 2" --nicgenericdrv&lt;y&gt; UDPTunnel
    8481202        VBoxManage modifyvm "VM 02 on host 2" --nicproperty&lt;y&gt; dest=10.0.0.1
    8491203        VBoxManage modifyvm "VM 02 on host 2" --nicproperty&lt;y&gt; sport=10002
    850         VBoxManage modifyvm "VM 02 on host 2" --nicproperty&lt;y&gt; 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&lt;y&gt; 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
    8631224  </sect1>
    8641225
    8651226  <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&lt;x&gt; generic</screen>
    901           <screen>VBoxManage modifyvm "VM name" --nicgenericdrv&lt;x&gt; VDE</screen>
    902           To connect to automatically allocated switch port, use: <screen>VBoxManage modifyvm "VM name" --nicproperty&lt;x&gt; network=/tmp/switch1</screen>
    903           To connect to specific switch port &lt;n&gt;, use: <screen>VBoxManage modifyvm "VM name" --nicproperty&lt;x&gt; network=/tmp/switch1[&lt;n&gt;]</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 &lt;VLAN&gt;</screen> <screen>vde$ port/setvlan &lt;port&gt; &lt;VLAN&gt;</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&lt;x&gt; generic</screen>
     1281
     1282<screen>VBoxManage modifyvm "VM name" --nicgenericdrv&lt;x&gt; VDE</screen>
     1283
     1284        <para>
     1285          To connect to an automatically allocated switch port:
     1286        </para>
     1287
     1288<screen>VBoxManage modifyvm "VM name" --nicproperty&lt;x&gt; 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&lt;x&gt; network=/tmp/switch1[&lt;n&gt;]</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 &lt;VLAN&gt;</screen>
     1312
     1313<screen>vde$ port/setvlan &lt;port&gt; &lt;VLAN&gt;</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
    9231345  </sect1>
    9241346
    9251347  <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>
    9351364    </note>
    9361365
    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
    9411373VBoxManage 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
     1374VBoxManage 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
    9541395      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
    9611409  </sect1>
     1410
    9621411  <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>
    9811435    </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
    10391536  </sect1>
     1537
    10401538</chapter>
  • trunk/doc/manual/en_US/user_PrivacyPolicy.xml

    r69633 r73276  
    11<?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
    48<appendix id="privacy">
    5   <title>VirtualBox privacy information</title>
     9  <title>VirtualBox Privacy Information</title>
    610
    711  <para>Version 5, Dec 13, 2012</para>
  • trunk/doc/manual/en_US/user_Security.xml

    r69633 r73276  
    11<?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]>
    47<chapter id="Security">
    5   <title>Security guide</title>
    6 
    7   <sect1>
     8
     9  <title>Security Guide</title>
     10
     11  <sect1 id="security-general">
     12
    813    <title>General Security Principles</title>
    914
    10     <para>The following principles are fundamental to using any application
     15    <para>
     16      The following principles are fundamental to using any application
    1117      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 all
    18               software versions and patches up to date. Activate the VirtualBox
    19               update notification to get notified when a new VirtualBox release
    20               is available. When updating VirtualBox, do not forget to update
    21               the Guest Additions. Keep the host operating system as well as the
    22               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 computer
    32               and your guest(s) from accesses from the outside. Choosing the proper
    33               networking mode for VMs helps to separate host networking from the
    34               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 the
    44               least amount of privilege necessary to perform their jobs. Always execute VirtualBox
    45               as a regular user. We strongly discourage anyone from executing
    46               VirtualBox with system privileges.
    47             </para>
    48             <para>
    49               Choose restrictive permissions when creating configuration files,
    50               for instance when creating /etc/default/virtualbox, see
    51               <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, proper
    61               system configuration and system monitoring. Auditing and reviewing audit
    62               records address the third requirement. Each component within a system
    63               has some degree of monitoring capability. Follow audit advice in this
    64               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 this
    74               note yearly for revisions.
    75             </para>
    76           </glossdef>
    77         </glossentry>
    78 
    79       </glosslist>
    8018    </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
    8186  </sect1>
    8287
    83   <sect1>
     88  <sect1 id="security-secure-install">
     89
    8490    <title>Secure Installation and Configuration</title>
    8591
    86     <sect2>
     92    <sect2 id="security-secure-install-overview">
     93
    8794      <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
    9199        <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
    106118        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
    128148      <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
    141166  </sect1>
    142167
    143   <sect1>
     168  <sect1 id="security-features">
     169
    144170    <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
    149179      <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
    165201      <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
    171210        <title>Networking</title>
     211
    172212        <para>
    173213          The default networking mode for VMs is NAT which means that
     
    175215          <xref linkend="network_nat"/>. The guest is part of a private
    176216          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
    206256      </sect3>
    207257
    208258      <sect3 id="security_clipboard">
     259
    209260        <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
    266340      <title>Configuring and Using Authentication</title>
    267341
    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">
    296383      <title>Configuring and Using Access Control</title>
    297384    </sect2>
    298385
    299     <sect2>
     386    <sect2 id="security-audit-config-using">
    300387      <title>Configuring and Using Security Audit</title>
    301388    </sect2>
    302389
    303     <sect2>
    304       <title>Congiguring and Using Other Security Features</title>
     390    <sect2 id="security-other-features-config-using">
     391      <title>Configuring and Using Other Security Features</title>
    305392    </sect2>
    306393    -->
    307394
    308395    <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
    371487      <title>Encryption</title>
    372488
    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
    385511  </sect1>
    386512
    387   <!--
    388   <sect1>
     513<!--
     514  <sect1 id="security-devel">
    389515    <title>Security Considerations for Developers</title>
    390516  </sect1>
  • trunk/doc/manual/en_US/user_Storage.xml

    r69633 r73276  
    11<?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]>
    47<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
    1320    <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>
    1726    </listitem>
    1827
    1928    <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>
    2334    </listitem>
    2435
    2536    <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>
    2942    </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>
    3652
    3753  <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
    5485          backwards compatible yet very advanced extension of the disk
    5586          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
    6599          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>
    77192          </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.
    184805
    185806          <warning>
    186             <para>As with SATA, the SAS controller will only be seen by
    187             operating systems with device support for it. In particular,
    188             <emphasis role="bold">there is no support for SAS in Windows
    189             before Windows Vista</emphasis>, so Windows XP (even SP3) will not
    190             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>
    191812          </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
    222863          <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
    272957  </sect1>
    273958
    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>
    3271036
    3281037    <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
    3511132    </itemizedlist>
     1133
    3521134  </sect1>
    3531135
    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>
    3831213
    3841214    <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
    3981249    </itemizedlist>
    3991250
    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 &lt;controllername&gt; --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
    4591286  </sect1>
    4601287
    461   <sect1 id="hdimagewrites">
    462     <title>Special image write modes</title>
    463 
    464     <para>For each virtual disk image supported by VirtualBox, you can
    465     determine separately how it should be affected by write operations from a
    466     virtual machine and snapshot operations. This applies to all of the
    467     aforementioned image formats (VDI, VMDK, VHD or HDD) and irrespective of
    468     whether an image is fixed-size or dynamically allocated.</para>
    469 
    470     <para>By default, images are in "normal" mode. To mark an existing image
    471     with one of the non-standard modes listed below, use
    472     <computeroutput>VBoxManage modifyhd</computeroutput>; see <xref
    473     linkend="vboxmanage-modifyvdi" />. Alternatively, use VBoxManage to attach
    474     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 default
    480         setting), there are no restrictions on how guests can read from and
    481         write to the disk.</para>
    482 
    483         <para>When you take a snapshot of your virtual machine as described in
    484         <xref linkend="snapshots" />, the state of such a "normal hard disk"
    485         will be recorded together with the snapshot, and when reverting to the
    486         snapshot, its state will be fully reset.</para>
    487 
    488         <para>(Technically, strictly speaking, the image file itself is not
    489         "reset". Instead, when a snapshot is taken, VirtualBox "freezes" the
    490         image file and no longer writes to it. For the write operations from
    491         the VM, a second, "differencing" image file is created which receives
    492         only the changes to the original image; see the next section for
    493         details.)</para>
    494 
    495         <para>While you can attach the same "normal" image to more than one
    496         virtual machine, only one of these virtual machines attached to the
    497         same image file can be executed simultaneously, as otherwise there
    498         would be conflicts if several machines write to the same image
    499         file.<footnote>
    500             <para>This restriction is more lenient now than it was before
    501             VirtualBox 2.2. Previously, each "normal" disk image could only be
    502             <emphasis>attached</emphasis> to one single machine. Now it can be
    503             attached to more than one machine so long as only one of these
    504             machines is running.</para>
    505           </footnote></para>
    506       </listitem>
    507 
    508       <listitem>
    509         <para>By contrast, <emphasis role="bold">write-through hard
    510         disks</emphasis> are completely unaffected by snapshots: their state
    511         is <emphasis>not</emphasis> saved when a snapshot is taken, and not
    512         restored when a snapshot is restored.</para>
    513       </listitem>
    514 
    515       <listitem>
    516         <para><emphasis role="bold">Shareable hard disks</emphasis> are a
    517         variant of write-through hard disks. In principle they behave exactly
    518         the same, i.e. their state is <emphasis>not</emphasis> saved when a
    519         snapshot is taken, and not restored when a snapshot is restored. The
    520         difference only shows if you attach such disks to several VMs.
    521         Shareable disks may be attached to several VMs which may run
    522         concurrently. This makes them suitable for use by cluster filesystems
    523         between VMs and similar applications which are explicitly prepared to
    524         access a disk concurrently. Only fixed size images can be used in this
    525         way, and dynamically allocated images are rejected.<warning>
    526             <para>This is an expert feature, and misuse can lead to data loss
    527             -- regular filesystems are not prepared to handle simultaneous
    528             changes by several parties.</para>
    529           </warning></para>
    530       </listitem>
    531 
    532       <listitem>
    533         <para>Next, <emphasis role="bold">immutable images</emphasis> only
    534         remember write accesses temporarily while the virtual machine is
    535         running; all changes are lost when the virtual machine is powered on
    536         the next time. As a result, as opposed to "normal" images, the same
    537         immutable image can be used with several virtual machines without
    538         restrictions.</para>
    539 
    540         <para><emphasis>Creating</emphasis> an immutable image makes little
    541         sense since it would be initially empty and lose its contents with
    542         every machine restart (unless you really want to have a disk that is
    543         always unformatted when the machine starts up). As a result, normally,
    544         you would first create a "normal" image and then, when you deem its
    545         contents useful, later mark it immutable.</para>
    546 
    547         <para>If you take a snapshot of a machine with immutable images, then
    548         on every machine power-up, those images are reset to the state of the
    549         last (current) snapshot (instead of the state of the original
    550         immutable image).</para>
    551 
    552         <note>
    553           <para>As a special exception, immutable images are
    554           <emphasis>not</emphasis> reset if they are attached to a machine
    555           in saved state or whose last snapshot was taken while the machine
    556           was running (a so-called "online" snapshot). As a result, if the
    557           machine's current snapshot is such an "online" snapshot, its
    558           immutable images behave exactly like the "normal" images described
    559           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 immutable
    564         image directly at all. All write operations from the machine will be
    565         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, its
    567         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 session
    570             <emphasis>ended</emphasis>; now they are discarded every time the
    571             machine is powered on.</para>
    572           </footnote> The differencing image is only reset when the machine is
    573         powered on from within VirtualBox, not when you reboot by requesting a
    574         reboot from within the machine. This is also why immutable images
    575         behave as described above when snapshots are also present, which use
    576         differencing images as well.</para>
    577 
    578         <para>If the automatic discarding of the differencing image on VM
    579         startup does not fit your needs, you can turn it off using the
    580         <computeroutput>autoreset</computeroutput> parameter of
    581         <computeroutput>VBoxManage modifyhd</computeroutput>; see <xref
    582         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 virtual
    589         machine to which such an image is attached, a differencing image is
    590         created. As a result, data that is written to such a virtual disk by
    591         one machine is not seen by the other machines to which the image is
    592         attached; each machine creates its own write history of the
    593         multiattach image.</para>
    594 
    595         <para>Technically, a "multiattach" image behaves identically to an
    596         "immutable" image except the differencing image is not reset every
    597         time the machine starts.</para>
    598       <para>This mode is useful for sharing files which are almost never
    599         written, for instance picture galleries, where every guest changes
    600         only a small amount of data and the majority of the disk content
    601         remains unchanged. The modified blocks are stored in differencing
    602         images which remain relatively small and the shared content is stored
    603         only once at the host.</para>
    604       </listitem>
    605 
    606       <listitem>
    607         <para>Finally, the <emphasis role="bold">read-only image</emphasis> is
    608         used automatically for CD/DVD images, since CDs/DVDs can never be
    609         written to.</para>
    610       </listitem>
    611     </orderedlist>
    612 
    613     <para>To illustrate the differences between the various types with respect
    614     to snapshots: Assume you have installed your guest operating system in
    615     your VM, and you have taken a snapshot. Imagine you have accidentally
    616     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 the
    618     earlier state of your hard disk image will be restored as well (and your
    619     virus infection will be undone). With an immutable hard disk, all it takes
    620     is to shut down and power on your VM, and the virus infection will be
    621     discarded. With a write-through image however, you cannot easily undo the
    622     virus infection by means of virtualization, but will have to disinfect
    623     your virtual machine like a real computer.</para>
    624 
    625     <para>Still, you might find write-through images useful if you want to
    626     preserve critical data irrespective of snapshots, and since you can attach
    627     more than one image to a VM, you may want to have one immutable for the
    628     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 are
    635     used with snapshots, immutable images and multiple disk attachments. For
    636     the inquisitive VirtualBox user, this section describes in more detail how
    637     they work.</para>
    638 
    639     <para>A differencing image is a special disk image that only holds the
    640     differences to another image. A differencing image by itself is useless,
    641     it must always refer to another image. The differencing image is then
    642     typically referred to as a "child", which holds the differences to its
    643     "parent".</para>
    644 
    645     <para>When a differencing image is active, it receives all write
    646     operations from the virtual machine instead of its parent. The
    647     differencing image only contains the sectors of the virtual hard disk that
    648     have changed since the differencing image was created. When the machine
    649     reads a sector from such a virtual hard disk, it looks into the
    650     differencing image first. If the sector is present, it is returned from
    651     there; if not, VirtualBox looks into the parent. In other words, the
    652     parent becomes "read-only"; it is never written to again, but it is read
    653     from if a sector has not changed.</para>
    654 
    655     <para>Differencing images can be chained. If another differencing image is
    656     created for a virtual disk that already has a differencing image, then it
    657     becomes a "grandchild" of the original parent. The first differencing
    658     image then becomes read-only as well, and write operations only go to the
    659     second-level differencing image. When reading from the virtual disk,
    660     VirtualBox needs to look into the second differencing image first, then
    661     into the first if the sector was not found, and then into the original
    662     image.</para>
    663 
    664     <para>There can be an unlimited number of differencing images, and each
    665     image can have more than one child. As a result, the differencing images
    666     can form a complex tree with parents, "siblings" and children, depending
    667     on how complex your machine configuration is. Write operations always go
    668     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 in
    670     the chain until the sector in question is found. You can look at such a
    671     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 virtual
    679     machine, the virtual hard disk behaves like any other disk. While the
    680     virtual machine is running, there is a slight run-time I/O overhead
    681     because VirtualBox might need to look up sectors several times. This is
    682     not noticeable however since the tables with sector information are always
    683     kept in memory and can be looked up quickly.</para>
    684 
    685     <para>Differencing images are used in the following
    686     situations:<orderedlist>
    687         <listitem>
    688           <para><emphasis role="bold">Snapshots.</emphasis> When you create a
    689           snapshot, as explained in the previous section, VirtualBox "freezes"
    690           the images attached to the virtual machine and creates differencing
    691           images for each of them (to be precise: one for each image that is
    692           not in "write-through" mode). From the point of view of the virtual
    693           machine, the virtual disks continue to operate before, but all write
    694           operations go into the differencing images. Each time you create
    695           another snapshot, for each hard disk attachment, another
    696           differencing image is created and attached, forming a chain or
    697           tree.</para>
    698 
    699           <para>In the above screenshot, you see that the original disk image
    700           is now attached to a snapshot, representing the state of the disk
    701           when the snapshot was taken.</para>
    702 
    703           <para>If you now <emphasis role="bold">restore</emphasis> a snapshot
    704           -- that is, if you want to go back to the exact machine state that
    705           was stored in the snapshot --, the following happens:<orderedlist>
    706               <listitem>
    707                 <para>VirtualBox copies the virtual machine settings that were
    708                 copied into the snapshot back to the virtual machine. As a
    709                 result, if you have made changes to the machine configuration
    710                 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 restored
    716                 as well; after restoring the snapshot, the machine will then
    717                 be in "Saved" state and resume execution from there when it is
    718                 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, the
    724                 differencing image holding all the write operations since the
    725                 current snapshot was taken is thrown away, and the original
    726                 parent image is made active again. (If you restored the "root"
    727                 snapshot, then this will be the root disk image for each
    728                 attachment; otherwise, some other differencing image descended
    729                 from it.) This effectively restores the old machine
    730                 state.</para>
    731               </listitem>
    732             </orderedlist></para>
    733 
    734           <para>If you later <emphasis role="bold">delete</emphasis> a
    735           snapshot in order to free disk space, for each disk attachment, one
    736           of the differencing images becomes obsolete. In this case, the
    737           differencing image of the disk attachment cannot simply be deleted.
    738           Instead, VirtualBox needs to look at each sector of the differencing
    739           image and needs to copy it back into its parent; this is called
    740           "merging" images and can be a potentially lengthy process, depending
    741           on how large the differencing image is. It can also temporarily need
    742           a considerable amount of extra disk space, before the differencing
    743           image obsoleted by the merge operation is deleted.</para>
    744         </listitem>
    745 
    746         <listitem>
    747           <para><emphasis role="bold">Immutable images.</emphasis> When an
    748           image is switched to "immutable" mode, a differencing image is
    749           created as well. As with snapshots, the parent image then becomes
    750           read-only, and the differencing image receives all the write
    751           operations. Every time the virtual machine is started, all the
    752           immutable images which are attached to it have their respective
    753           differencing image thrown away, effectively resetting the virtual
    754           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 quickly
    763     produce a second virtual machine with the same operating system setup.
    764     However, you should <emphasis>only</emphasis> make copies of virtual disk
    765     images using the utility supplied with VirtualBox; see <xref
    766     linkend="vboxmanage-clonevdi" />. This is because VirtualBox assigns a
    767     unique identity number (UUID) to each disk image, which is also stored
    768     inside the image, and VirtualBox will refuse to work with two images that
    769     use the same number. If you do accidentally try to re-import a disk image
    770     which you copied normally, you can make a second copy using VirtualBox's
    771     utility and import that instead.</para>
    772 
    773     <para>Note that newer Linux distributions identify the boot hard disk from
    774     the ID of the drive. The ID VirtualBox reports for a drive is determined
    775     from the UUID of the virtual disk image. So if you clone a disk image and
    776     try to boot the copied image the guest might not be able to determine its
    777     own boot disk as the UUID changed. In this case you have to adapt the disk
    778     ID in your boot loader script (for example
    779     <computeroutput>/boot/grub/menu.lst</computeroutput>). The disk ID looks
    780     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/O
    789     caching that the host operating system would otherwise perform on disk
    790     image files.</para>
    791 
    792     <para>Traditionally, VirtualBox has opened disk image files as normal
    793     files, which results in them being cached by the host operating system
    794     like any other file. The main advantage of this is speed: when the guest
    795     OS writes to disk and the host OS cache uses delayed writing, the write
    796     operation can be reported as completed to the guest OS quickly while the
    797     host OS can perform the operation asynchronously. Also, when you start a
    798     VM a second time and have enough memory available for the OS to use for
    799     caching, large parts of the virtual disk may be in system memory, and the
    800     VM can access the data much faster.</para>
    801 
    802     <para>Note that this applies only to image files; buffering never occurred
    803     for virtual disks residing on remote iSCSI storage, which is the more common
    804     scenario in enterprise-class setups (see <xref
    805     linkend="storage-iscsi" />).</para>
    806 
    807     <para>While buffering is a useful default setting for virtualizing a few
    808     machines on a desktop computer, there are some disadvantages to this
    809     approach:<orderedlist>
    810         <listitem>
    811           <para>Delayed writing through the host OS cache is less secure. When
    812           the guest OS writes data, it considers the data written even though
    813           it has not yet arrived on a physical disk. If for some reason the
    814           write does not happen (power failure, host crash), the likelihood of
    815           data loss increases.</para>
    816         </listitem>
    817 
    818         <listitem>
    819           <para>Disk image files tend to be very large. Caching them can
    820           therefore quickly use up the entire host OS cache. Depending on the
    821           efficiency of the host OS caching, this may slow down the host
    822           immensely, especially if several VMs run at the same time. For
    823           example, on Linux hosts, host caching may result in Linux delaying
    824           all writes until the host cache is nearly full and then writing out
    825           all these changes at once, possibly stalling VM execution for
    826           minutes. This can result in I/O errors in the guest as I/O requests
    827           time out there.</para>
    828         </listitem>
    829 
    830         <listitem>
    831           <para>Physical memory is often wasted as guest operating systems
    832           typically have their own I/O caches, which may result in the data
    833           being cached twice (in both the guest and the host caches) for
    834           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 caching
    840     since this is typically already performed by the guest OS. In addition,
    841     VirtualBox fully supports asynchronous I/O for its virtual SATA, SCSI and
    842     SAS controllers through multiple I/O threads.</para>
    843 
    844     <para>Since asynchronous I/O is not supported by IDE controllers, for
    845     performance reasons, you may want to leave host caching enabled for your
    846     VM's virtual IDE controllers.</para>
    847 
    848     <para>For this reason, VirtualBox allows you to configure whether the host
    849     I/O cache is used for each I/O controller separately. Either uncheck the
    850     "Use host I/O cache" box in the "Storage" settings for a given virtual
    851     storage controller, or use the following VBoxManage command to disable the
    852     host I/O cache for a virtual storage controller:<screen>VBoxManage storagectl "VM name" --name &lt;controllername&gt; --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 by
    857     default for new virtual machines.</para>
    858   </sect1>
    859 
    8601288  <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
    8721307VBoxManage storageattach "VM name" --storagectl "SATA" --port 0 --device 0 --type hdd
    8731308                                   --medium disk1.vdi --bandwidthgroup Limit
    8741309VBoxManage 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
    8851328  </sect1>
    8861329
    8871330  <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
    9621450  </sect1>
    9631451
    9641452  <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
    9851483  </sect1>
     1484
    9861485</chapter>
  • trunk/doc/manual/en_US/user_Technical.xml

    r69633 r73276  
    11<?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]>
    47<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>
    1118
    1219  <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>
    3452
    3553      <itemizedlist>
     54
    3655        <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>
    4869        </listitem>
    4970
    5071        <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>
    6286        </listitem>
     87
    6388      </itemizedlist>
    6489
    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
    104150    </sect2>
    105151
    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
    156225    </sect2>
    157226
    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
    197289    </sect2>
    198290
    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>
    208303        <tgroup cols="3">
    209304          <thead>
    210305            <row>
    211306              <entry><emphasis role="bold">Setting</emphasis></entry>
    212 
    213307              <entry><emphasis role="bold">Before 4.0</emphasis></entry>
    214 
    215308              <entry><emphasis role="bold">4.0 or above</emphasis></entry>
    216309            </row>
     
    219312            <row>
    220313              <entry>Default machines folder</entry>
    221 
    222314              <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>
    226316            </row>
    227 
    228317            <row>
    229318              <entry>Default disk image location</entry>
    230 
    231319              <entry><computeroutput>$HOME/.VirtualBox/HardDisks</computeroutput></entry>
    232 
    233320              <entry>In each machine's folder</entry>
    234321            </row>
    235 
    236322            <row>
    237323              <entry>Machine settings file extension</entry>
    238 
    239324              <entry><computeroutput>.xml</computeroutput></entry>
    240 
    241325              <entry><computeroutput>.vbox</computeroutput></entry>
    242326            </row>
    243 
    244327            <row>
    245328              <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>
    250330              <entry>Each machine settings file</entry>
    251331            </row>
    252 
    253332            <row>
    254333              <entry>Media registration</entry>
    255 
    256334              <entry>Explicit open/close required</entry>
    257 
    258335              <entry>Automatic on attach</entry>
    259336            </row>
     
    261338        </tgroup>
    262339      </table>
     340
    263341    </sect2>
    264342
    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
    306405    </sect2>
     406
    307407  </sect1>
    308408
    309409  <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
    341457          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
    348466          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>
    406489
    407490    <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
    512544    </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
    513699  </sect1>
    514700
    515701  <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>
    585800
    586801    <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>
    601819    </warning>
     820
    602821  </sect1>
    603822
    604823  <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
    652890  </sect1>
    653891
    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
    7431013          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
    7591035          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,
    8021088          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
    8291126  </sect1>
    8301127
    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
    9011226  </sect1>
    9021227
    9031228  <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
    9351278          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
    9441289          </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
    9611313  </sect1>
     1314
    9621315</chapter>
  • trunk/doc/manual/en_US/user_ThirdParty.xml

    r69633 r73276  
    11<?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
    48<appendix id="ThirdParty">
    5   <title>Third-party materials and licenses</title>
     9  <title>Third-Party Materials and Licenses</title>
    610
    711  <para>VirtualBox incorporates materials from several Open Source software
     
    1822  tarballs for particular releases and as a live SVN repository.</para>
    1923
    20   <sect1>
    21     <title>Materials</title>
     24  <sect1 id="third-party-materials">
     25    <title>Third-Party Materials</title>
    2226
    2327    <itemizedlist>
     
    362366  </sect1>
    363367
    364   <sect1>
    365     <title>Licenses</title>
     368  <sect1 id="third-party-licenses">
     369    <title>Third-Party Licenses</title>
    366370
    367371    <sect2 id="licGPL">
     
    16081612
    16091613    <sect2 id="licZLIB">
    1610       <title>zlib license</title>
     1614      <title>zlib License</title>
    16111615
    16121616      <para>This software is provided 'as-is', without any express or implied
     
    16341638
    16351639    <sect2 id="licSSL">
    1636       <title>OpenSSL license</title>
     1640      <title>OpenSSL License</title>
    16371641
    16381642      <para>This package is an SSL implementation written by Eric Young
     
    16971701
    16981702    <sect2 id="licSlirp">
    1699       <title>Slirp license</title>
     1703      <title>Slirp License</title>
    17001704
    17011705      <para>Copyright (c) 1995,1996 Danny Gasparovski.  All rights reserved.</para>
     
    17311735
    17321736    <sect2 id="licLZF">
    1733       <title>liblzf license</title>
     1737      <title>liblzf License</title>
    17341738
    17351739      <para>Redistribution and use in source and binary forms, with or without
     
    17621766    </sect2>
    17631767
    1764     <sect2>
    1765       <title>libpng license</title>
     1768    <sect2 id="liclibping">
     1769      <title>libpng License</title>
    17661770
    17671771      <para>The PNG Reference Library is supplied "AS IS". The Contributing
     
    17951799
    17961800    <sect2 id="licLWIP">
    1797       <title>lwIP license</title>
     1801      <title>lwIP License</title>
    17981802
    17991803      <para>Redistribution and use in source and binary forms, with or without
     
    18271831
    18281832    <sect2 id="licLibXML">
    1829       <title>libxml license</title>
     1833      <title>libxml License</title>
    18301834
    18311835      <para>Except where otherwise noted in the source code (e.g. the files
     
    18621866
    18631867    <sect2 id="licLibXSLT">
    1864       <title>libxslt licenses</title>
     1868      <title>libxslt Licenses</title>
    18651869
    18661870      <para>Licence for libxslt except libexslt:</para>
     
    23432347
    23442348    <sect2 id="licChromium">
    2345       <title>Chromium licenses</title>
     2349      <title>Chromium Licenses</title>
    23462350
    23472351      <sect3>
    2348         <title>Main license</title>
     2352        <title>Main License</title>
    23492353
    23502354        <para>Copyright (c) 2002, Stanford University All rights
     
    23572361        <para>Redistribution and use in source and binary forms, with or
    23582362        without modification, are permitted provided that the following
    2359         conditions are met:<itemizedlist>
     2363        conditions are met:</para>
     2364        <itemizedlist>
    23602365            <listitem>
    23612366              <para>Redistributions of source code must retain the above
     
    23772382              permission.</para>
    23782383            </listitem>
    2379           </itemizedlist></para>
     2384          </itemizedlist>
    23802385
    23812386        <para>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
     
    23942399
    23952400      <sect3>
    2396         <title>COPYRIGHT.LLNL file</title>
     2401        <title>COPYRIGHT.LLNL File</title>
    23972402
    23982403        <para>This Chromium distribution contains information and code which
     
    24622467
    24632468      <sect3>
    2464         <title>COPYRIGHT.REDHAT file</title>
     2469        <title>COPYRIGHT.REDHAT File</title>
    24652470
    24662471        <para>This Chromium distribution contains information and code which
     
    24942499
    24952500    <sect2 id="licLibCurl">
    2496       <title>curl license</title>
     2501      <title>curl License</title>
    24972502
    24982503      <para>COPYRIGHT AND PERMISSION NOTICE</para>
     
    25232528
    25242529    <sect2 id="licLibgd">
    2525       <title>libgd license</title>
     2530      <title>libgd License</title>
    25262531
    25272532      <para>Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
     
    25792584
    25802585    <sect2 id="licBsdIntel">
    2581       <title>BSD license from Intel</title>
     2586      <title>BSD License from Intel</title>
    25822587
    25832588      <para>All rights reserved.</para>
     
    26812686
    26822687    <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>
    26842689
    26852690      <para>Copyright 2009 Pierre Ossman &lt;[email protected]&gt; for Cendio AB</para>
     
    27092714
    27102715    <sect2 id="licFreeBsd">
    2711       <title>FreeBSD license</title>
     2716      <title>FreeBSD License</title>
    27122717
    27132718      <para>The compilation of software known as FreeBSD is distributed under the
     
    27492754
    27502755    <sect2 id="licNetBsd">
    2751       <title>NetBSD license</title>
     2756      <title>NetBSD License</title>
    27522757
    27532758      <para>Copyright (c) 1992, 1993 The Regents of the University of California.
     
    28052810
    28062811    <sect2 id="licPcre">
    2807       <title>PCRE license</title>
     2812      <title>PCRE License</title>
    28082813
    28092814      <para>
     
    28842889
    28852890    <sect2 id="licLibffi">
    2886       <title>libffi license</title>
     2891      <title>libffi License</title>
    28872892
    28882893      <para>
     
    29122917
    29132918    <sect2 id="licFltk">
    2914       <title>FLTK license</title>
     2919      <title>FLTK License</title>
    29152920
    29162921      <para>
     
    29812986
    29822987    <sect2 id="licExpat">
    2983       <title>Expat license</title>
     2988      <title>Expat License</title>
    29842989      <para>
    29852990        Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd
     
    30143019
    30153020    <sect2 id="licFontconfig">
    3016       <title>Fontconfig license</title>
     3021      <title>Fontconfig License</title>
    30173022      <para>
    30183023        Copyright (C) 2001, 2003 Keith Packard
     
    30413046
    30423047    <sect2 id="licFreetype">
    3043       <title>Freetype license</title>
     3048      <title>Freetype License</title>
    30443049      <para>
    30453050        2006-Jan-27
     
    31123117      <sect3>
    31133118        <title>Legal Terms</title>
    3114         <sect4>
    3115           <title>0. Definitions</title>
     3119       
     3120          <para>0. Definitions</para>
    31163121          <para>
    31173122            Throughout this license,  the terms `package', `FreeType Project',
     
    31413146            specified below.
    31423147          </para>
    3143         </sect4>
    3144         <sect4>
    3145           <title>1. No Warranty</title>
     3148       
     3149       
     3150          <para>1. No Warranty</para>
    31463151          <para>
    31473152            THE FREETYPE PROJECT  IS PROVIDED `AS IS' WITHOUT  WARRANTY OF ANY
     
    31523157            USE, OF THE FREETYPE PROJECT.
    31533158          </para>
    3154         </sect4>
    3155         <sect4>
    3156           <title>2. Redistribution</title>
     3159       
     3160       
     3161          <para>2. Redistribution</para>
    31573162          <para>
    31583163            This  license  grants  a  worldwide, royalty-free,  perpetual  and
     
    31913196            to us.
    31923197          </para>
    3193         </sect4>
    3194          <sect4>
    3195            <title>3. Advertising</title>
     3198       
     3199       
     3200           <para>3. Advertising</para>
    31963201           <para>
    31973202            Neither the  FreeType authors and  contributors nor you  shall use
     
    32143219            of this license.
    32153220          </para>
    3216         </sect4>
    3217         <sect4>
    3218           <title>4. Contacts</title>
     3221       
     3222       
     3223          <para>4. Contacts</para>
    32193224          <para>
    32203225            There are two mailing lists related to FreeType:
     
    32483253            http://www.freetype.org
    32493254          </para>
    3250         </sect4>
     3255       
    32513256      </sect3>
    32523257    </sect2>
  • trunk/doc/manual/en_US/user_Troubleshooting.xml

    r69682 r73276  
    11<?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]>
    47<chapter id="Troubleshooting">
     8
    59  <title>Troubleshooting</title>
    610
    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
    2945            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
    84116            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
    89124    </sect2>
    90125
    91126    <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
    155224    </sect2>
    156225
    157226    <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
    164239          it, and the following documentation is only made available for
    165240          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
    188281            --startvm</computeroutput>, with an additional
    189282            <computeroutput>--dbg</computeroutput>,
    190283            <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
    197292            <computeroutput>VBOX_GUI_DBG_ENABLED</computeroutput> or
    198293            <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
    406582    </sect2>
    407583
    408584    <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]
    422608[ Program Header, type PT_NOTE ]
    423609  &rarr; offset to COREDESCRIPTOR
     
    435621  [ DBGFCORECPU - vCPU 1 dump ]
    436622[ 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
    454649  </sect1>
    455650
    456   <sect1>
    457     <title>General</title>
     651  <sect1 id="ts_general">
     652
     653    <title>General Troubleshooting</title>
    458654
    459655    <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"
    486692      "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b]</screen>
    487693
    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"
    491699      "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b]</screen>
    492700
    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
    549780    </sect2>
    550781
    551782    <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
    570804    </sect2>
    571805
    572806    <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
    599836    </sect2>
    600837
    601838    <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
    615856    </sect2>
    616857
    617858    <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
    636886    </sect2>
    637887
    638888    <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
    656916  </sect1>
    657917
    658918  <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>
    733966
    734967      <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
    749994      </itemizedlist>
    750995
    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
    8421182255.255.255.255        VBOXSRV #PRE</screen>
    8431183
    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
    8811237          url="http://support.microsoft.com/kb/154501">http://support.microsoft.com/kb/154501</ulink>
    882           article from Microsoft.
    883       </para>
     1238      </para>
     1239
    8841240    </sect2>
    8851241
    8861242    <sect2 id="ts_d3d8-d3d9-restore">
     1243
    8871244      <title>Restoring d3d8.dll and d3d9.dll</title>
    8881245
    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>
    9221299
    9231300      <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
    9481344      </orderedlist>
    9491345
    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>
    9511350
    9521351      <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
    9591395      </orderedlist>
    9601396
    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>
    9621401
    9631402      <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
    9881451      </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
    10091482    </sect2>
    10101483
     
    10121485
    10131486  <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
    10361518      <title>AMD Barcelona CPUs</title>
    10371519
    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
    10421528    </sect2>
    10431529
    10441530    <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,
    10511544            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
     1557apic=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
    10661571                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
    10821598VBoxClient --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>
     1599VBoxClient --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
    10971621  </sect1>
    10981622
    10991623  <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
    11591696  </sect1>
    11601697
    11611698  <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
     1845VirtualBox</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-&lt;username&gt;-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>
    11672222        <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.
    11712225        </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 /_&lt;ZFS volume&gt;_/swap
     2240swap -a /dev/zvol/dsk/_&lt;ZFS volume&gt;_/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/_&lt;ZFS volume&gt;_/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
     2263swap -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
    11772273  </sect1>
    11782274
    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 to
    1187       share a common configuration among different virtual machine processes
    1188       and provide several user interface options based on a common
    1189       architecture. All global status information and configuration is
    1190       maintained by the process <computeroutput>VBoxSVC.exe</computeroutput>,
    1191       which is an out-of-process COM server. Whenever a VirtualBox process is
    1192       started, it requests access to the COM server and Windows automatically
    1193       starts the process. Note that it should never be started by the end
    1194       user.</para>
    1195 
    1196       <para>When the last process disconnects from the COM server, it will
    1197       terminate itself after some seconds. The VirtualBox configuration (XML
    1198       files) is maintained and owned by the COM server and the files are
    1199       locked whenever the server runs.</para>
    1200 
    1201       <para>In some cases - such as when a virtual machine is terminated
    1202       unexpectedly - the COM server will not notice that the client is
    1203       disconnected and stay active for a longer period (10 minutes or so)
    1204       keeping the configuration files locked. In other rare cases the COM
    1205       server might experience an internal error and subsequently other
    1206       processes fail to initialize it. In these situations, it is recommended
    1207       to use the Windows task manager to kill the process
    1208       <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 and
    1215       the guest does not notice when the medium changes, make sure that the
    1216       Windows media change notification (MCN) feature is not turned off. This
    1217       is represented by the following key in the Windows registry:<screen><literal>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</literal></screen>Certain
    1218       applications may disable this key against Microsoft's advice. If it is
    1219       set to 0, change it to 1 and reboot your system. VirtualBox relies on
    1220       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 client
    1227       (called Remote Desktop Connection), there can be large delays between
    1228       input (moving the mouse over a menu is the most obvious situation) and
    1229       output. This is because this RDP client collects input for a certain
    1230       time before sending it to the RDP server.</para>
    1231 
    1232       <para>The interval can be decreased by setting a Windows registry key to
    1233       smaller values than the default of 100. The key does not exist initially
    1234       and must be of type DWORD. The unit for its values is milliseconds.
    1235       Values around 20 are suitable for low-bandwidth connections between the
    1236       RDP client and server. Values around 4 can be used for a gigabit
    1237       Ethernet connection. Generally values below 10 achieve a performance
    1238       that is very close to that of the local input devices and screen of the
    1239       host on which the Virtual Machine is running.</para>
    1240 
    1241       <para>Depending whether the setting should be changed for an individual
    1242       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 an
    1257       iSCSI target running in a guest virtual machine with an iSCSI initiator
    1258       (e.g. Microsoft iSCSI Initiator) that is running on the host. This is
    1259       caused by a flaw in the Windows cache manager component, and causes
    1260       sluggish host system response for several minutes, followed by a
    1261       "Delayed Write Failed" error message in the system tray or in a separate
    1262       message window. The guest is blocked during that period and may show
    1263       error messages or become unstable.</para>
    1264 
    1265       <para>Setting the environment variable
    1266       <computeroutput>VBOX_DISABLE_HOST_DISK_CACHE</computeroutput> to 1 will
    1267       enable a workaround for this problem until Microsoft addresses the
    1268       issue. For example, open a command prompt window and start VirtualBox
    1269       like this:</para>
    1270 
    1271       <screen>set VBOX_DISABLE_HOST_DISK_CACHE=1
    1272 VirtualBox</screen>
    1273 
    1274       <para>While this will decrease guest disk performance (especially
    1275       writes), it does not affect the performance of other applications
    1276       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 the
    1283       VM settings, this typically means that the bridged networking driver was
    1284       not installed properly on your host. This could be due to the following
    1285       reasons: <itemizedlist>
    1286           <listitem>
    1287             <para>The maximum allowed filter count was reached on the host. In
    1288             this case, the MSI log would mention the
    1289             <computeroutput>0x8004a029</computeroutput> error code returned on
    1290             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 the
    1293             Windows registry at the following key:<screen>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters</screen>The
    1294             maximum number allowed is 14. After a reboot, try to re-install
    1295             VirtualBox.</para>
    1296           </listitem>
    1297 
    1298           <listitem>
    1299             <para>The INF cache is corrupt. In this case, the install log
    1300             (<computeroutput>%windir%\inf\setupapi.log</computeroutput> on XP
    1301             or <computeroutput>%windir%\inf\setupapi.dev.log</computeroutput>
    1302             on Vista or later) would typically mention the failure to find a
    1303             suitable driver package for either the
    1304             <computeroutput>sun_VBoxNetFlt</computeroutput> or
    1305             <computeroutput>sun_VBoxNetFltmp</computeroutput> components. The
    1306             solution then is to uninstall VirtualBox, remove the INF cache
    1307             (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), reboot
    1308             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 or
    1317       VBoxManage), then the INF cache is probably corrupt. In this case, the
    1318       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 a
    1321       suitable driver package for the
    1322       <computeroutput>sun_VBoxNetAdp</computeroutput> component. Again, as
    1323       with the bridged networking problem described above, the solution is to
    1324       uninstall VirtualBox, remove the INF cache
    1325       (<computeroutput>%windir%\inf\INFCACHE.1</computeroutput>), reboot and
    1326       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 module
    1337       (<computeroutput>vboxdrv</computeroutput>) refuses to load, i.e. you get
    1338       an "Error inserting vboxdrv: Invalid argument", check (as root) the
    1339       output of the <computeroutput>dmesg</computeroutput> command to find out
    1340       why the load failed. Most probably the kernel disagrees with the version
    1341       of the gcc used to compile the module. Make sure that you use the same
    1342       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/DVD
    1349       drive, but this does not appear to work, make sure that the current user
    1350       has permission to access the corresponding Linux device file
    1351       (<computeroutput>/dev/hdc</computeroutput> or
    1352       <computeroutput>/dev/scd0</computeroutput> or
    1353       <computeroutput>/dev/cdrom</computeroutput> or similar). On most
    1354       distributions, the user must be added to a corresponding group (usually
    1355       called <computeroutput>cdrom</computeroutput> or
    1356       <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 a
    1363       different name, VirtualBox may be unable to find it. On older Linux
    1364       hosts, VirtualBox performs the following steps to locate your CD/DVD
    1365       drives:</para>
    1366 
    1367       <para><orderedlist>
    1368           <listitem>
    1369             <para>VirtualBox examines if the environment variable
    1370             <computeroutput>VBOX_CDROM</computeroutput> is defined (see
    1371             below). If so, VirtualBox omits all the following checks.</para>
    1372           </listitem>
    1373 
    1374           <listitem>
    1375             <para>VirtualBox tests if
    1376             <computeroutput>/dev/cdrom</computeroutput> works.</para>
    1377           </listitem>
    1378 
    1379           <listitem>
    1380             <para>In addition, VirtualBox checks if any CD/DVD drives are
    1381             currently mounted by checking
    1382             <computeroutput>/etc/mtab</computeroutput>.</para>
    1383           </listitem>
    1384 
    1385           <listitem>
    1386             <para>In addition, VirtualBox checks if any of the entries in
    1387             <computeroutput>/etc/fstab</computeroutput> point to CD/DVD
    1388             devices.</para>
    1389           </listitem>
    1390         </orderedlist></para>
    1391 
    1392       <para>In other words, you can try to set VBOX_CDROM to contain a list of
    1393       your CD/DVD devices, separated by colons, for example as follows:</para>
    1394 
    1395       <para><screen>export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'</screen>On
    1396       modern Linux distributions, VirtualBox uses the hardware abstraction
    1397       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) apply
    1404       accordingly to floppy disks, except that on older distributions
    1405       VirtualBox tests for <computeroutput>/dev/fd*</computeroutput> devices
    1406       by default, and this can be overridden with the
    1407       <computeroutput>VBOX_FLOPPY</computeroutput> environment
    1408       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 an
    1415       incorrect VirtualBox, host or guest configuration, it is possible that
    1416       any attempt to access the CD/DVD writer fails and simply results in
    1417       guest kernel error messages (for Linux guests) or application error
    1418       messages (for Windows guests). VirtualBox performs the usual consistency
    1419       checks when a VM is powered up (in particular it aborts with an error
    1420       message if the device for the CD/DVD writer is not writable by the user
    1421       starting the VM), but it cannot detect all misconfigurations. The
    1422       necessary host and guest OS configuration is not specific for
    1423       VirtualBox, but a few frequent problems are listed here which occurred
    1424       in connection with VirtualBox.</para>
    1425 
    1426       <para>Special care must be taken to use the correct device. The
    1427       configured host CD/DVD device file name (in most cases
    1428       <literal>/dev/cdrom</literal>) must point to the device that allows
    1429       writing to the CD/DVD unit. For CD/DVD writer units connected to a SCSI
    1430       controller or to a IDE controller that interfaces to the Linux SCSI
    1431       subsystem (common for some SATA controllers), this must refer to the
    1432       SCSI device node (e.g. <literal>/dev/scd0</literal>). Even for IDE
    1433       CD/DVD writer units this must refer to the appropriate SCSI CD-ROM
    1434       device node (e.g. <literal>/dev/scd0</literal>) if the
    1435       <literal>ide-scsi</literal> kernel module is loaded. This module is
    1436       required for CD/DVD writer support with all Linux 2.4 kernels and some
    1437       early 2.6 kernels. Many Linux distributions load this module whenever a
    1438       CD/DVD writer is detected in the system, even if the kernel would
    1439       support CD/DVD writers without the module. VirtualBox supports the use
    1440       of IDE device files (e.g. <literal>/dev/hdc</literal>), provided the
    1441       kernel supports this and the <literal>ide-scsi</literal> module is not
    1442       loaded.</para>
    1443 
    1444       <para>Similar rules (except that within the guest the CD/DVD writer is
    1445       always an IDE device) apply to the guest configuration. Since this setup
    1446       is very common, it is likely that the default configuration of the guest
    1447       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 Mozilla
    1454       XPCOM (cross platform component object model) for inter- and
    1455       intra-process communication (IPC). The process
    1456       <computeroutput>VBoxSVC</computeroutput> serves as a communication hub
    1457       between different VirtualBox processes and maintains the global
    1458       configuration, i.e. the XML database. When starting a VirtualBox
    1459       component, the processes <computeroutput>VBoxSVC</computeroutput> and
    1460       <computeroutput>VBoxXPCOMIPCD</computeroutput> are started
    1461       automatically. They are only accessible from the user account they are
    1462       running under. <computeroutput>VBoxSVC</computeroutput> owns the
    1463       VirtualBox configuration database which normally resides in
    1464       <computeroutput>~/.config/VirtualBox</computeroutput>, or the appropriate configuration directory for your operating system. While it is running, the
    1465       configuration files are locked. Communication between the various
    1466       VirtualBox components and <computeroutput>VBoxSVC</computeroutput> is
    1467       performed through a local domain socket residing in
    1468       <computeroutput>/tmp/.vbox-&lt;username&gt;-ipc</computeroutput>. In
    1469       case there are communication problems (i.e. a VirtualBox application
    1470       cannot communicate with <computeroutput>VBoxSVC</computeroutput>),
    1471       terminate the daemons and remove the local domain socket
    1472       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 the
    1479       current user is a member of the
    1480       <computeroutput>vboxusers</computeroutput> group.
    1481       Please keep in mind that group membership does not take effect immediately
    1482       but rather at the next login. If available, the
    1483       <computeroutput>newgrp</computeroutput> command may avoid the need for
    1484       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><ulink
    1491       url="http://www.grsecurity.net/">http://www.grsecurity.net/</ulink></literal>)
    1492       and derivates have to disable PAX_MPROTECT for the VBox binaries to be
    1493       able to start a VM. The reason is that VBox has to create executable
    1494       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 Linux
    1501       system (say 20 VMs with 1 GB of RAM each), additional VMs might fail to
    1502       start with a kernel error saying that the vmalloc pool is exhausted and
    1503       should be extended. The error message also tells you to specify
    1504       <computeroutput>vmalloc=256MB</computeroutput> in your kernel parameter
    1505       list. If adding this parameter to your GRUB or LILO configuration makes
    1506       the kernel fail to boot (with a weird error message such as "failed to
    1507       mount the root partition"), then you have probably run into a memory
    1508       conflict of your kernel and initial RAM disk. This can be solved by
    1509       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 if
    1522       the default system settings are not changed. This may lead to a heavy
    1523       fragmentation of the host memory preventing VirtualBox VMs from being
    1524       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 the
    1526       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 GB
    1534       physical memory would require at least 8 GB swap. This can be configured
    1535       during a Solaris 10 install by choosing a 'custom install' and changing
    1536       the default partitions.</para>
    1537 
    1538       <note>
    1539         <para>This restriction applies only to 32-bit Solaris hosts, 64-bit
    1540         hosts are not affected!</para>
    1541       </note>
    1542 
    1543       <para>For existing Solaris 10 installs, an additional swap image needs
    1544       to be mounted and used as swap. Hence if you have 1 GB swap and 8 GB of
    1545       physical memory, you require to add 7 GB more swap. This can be done as
    1546       follows:</para>
    1547 
    1548       <para>For ZFS (as root user):</para>
    1549 
    1550       <para><screen>zfs create -V 8gb /_&lt;ZFS volume&gt;_/swap
    1551 swap -a /dev/zvol/dsk/_&lt;ZFS volume&gt;_/swap</screen></para>
    1552 
    1553       <para>To mount if after reboot, add the following line to
    1554       /etc/vfstab:</para>
    1555 
    1556       <screen>/dev/zvol/dsk/_&lt;ZFS volume&gt;_/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.img
    1567 swap -a /path/to/swapfile.img</screen>
    1568 
    1569       <para>To mount it after reboot, add the following line to
    1570       /etc/vfstab:</para>
    1571 
    1572       <screen>/path/to/swap.img - - swap - no -</screen>
    1573     </sect2>
    1574   </sect1>
    15752275</chapter>
  • trunk/doc/manual/en_US/user_VBoxManage.xml

    r72949 r73276  
    1717    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
    1818 -->
    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]>
    2124<chapter id="vboxmanage">
     25
    2226  <title>VBoxManage</title>
    2327
    24   <sect1>
     28  <sect1 id="vboxmanage-intro">
     29
    2530    <title>Introduction</title>
    2631
    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>
    5947
    6048    <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
    7764    </itemizedlist>
    7865
    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>
    8581
    8682    <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
     147VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable>
     148(C) 2005-2018 Oracle Corporation
    99149All rights reserved.
    100150
     
    103153Settings file: '/home/username/.config/VirtualBox/Machines/SUSE 10.2/SUSE 10.2.xml'</screen>
    104154
    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
    142217              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
    148227    </itemizedlist>
     228
    149229  </sect1>
    150230
    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/*)"
    161245      xmlns:xi="http://www.w3.org/2001/XInclude" />
    162246
    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
    167254  </sect1>
    168255
    169256  <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
    200304  </sect1>
    201305
    202306  <sect1 id="vboxmanage-list">
     307
    203308    <title>VBoxManage list</title>
    204309
    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
    213326          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
    223338          currently running virtual machines by their unique identifiers
    224339          (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>,
    250373          <computeroutput>hostonlyifs</computeroutput>,
    251374          <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
    261388          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
    267396          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>,
    280413          <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
    298437          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
    336488  </sect1>
    337489
    338490  <sect1 id="vboxmanage-showvminfo">
     491
    339492    <title>VBoxManage showvminfo</title>
    340493
    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"
     507VirtualBox Command Line Management Interface Version <replaceable>version-number</replaceable>
     508(C) 2005-2018 Oracle Corporation
    351509All rights reserved.
    352510
     
    366524IOAPIC:          on
    367525...
    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>
    373537name="VBoxSDL --startvm OL7.2"
    374538groups="/"
     
    376540UUID="457af700-bc0a-4258-aa3c-13b03da171f2"
    377541...
    378     </screen></para>
     542    </screen>
     543    </para>
     544
    379545  </sect1>
    380546
    381547  <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
    424614  </sect1>
    425615
    426616  <sect1 id="vboxmanage-createvm">
     617
    427618    <title>VBoxManage createvm</title>
    428619
    429     <para>This command creates a new XML virtual machine definition
    430     file.</para>
    431 
    432     <para>The <computeroutput>--name &lt;name&gt;</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     &lt;path&gt;</computeroutput> option is used, the machine folder will be
    444     named <computeroutput>&lt;path&gt;</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 &lt;group&gt;, ...</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 &lt;ostype&gt;</computeroutput>:
    456     option is used, &lt;ostype&gt; 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 &lt;uuid&gt;</computeroutput>:
    461     option is used, &lt;uuid&gt; 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 &lt;name&gt;</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      &lt;path&gt;</computeroutput> option is used, the machine folder
     641      will be named <computeroutput>&lt;path&gt;</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 &lt;group&gt;, ...</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 &lt;ostype&gt;</computeroutput>:
     657      option is used, &lt;ostype&gt; 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 &lt;uuid&gt;</computeroutput>:
     664      option is used, &lt;uuid&gt; 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>
    473678
    474679  </sect1>
    475680
    476681  <sect1 id="vboxmanage-modifyvm">
     682
    477683    <title>VBoxManage modifyvm</title>
    478684
    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 &lt;name&gt;</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 &lt;group&gt;,
     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 &lt;desc&gt;</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 &lt;ostype&gt;</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            &lt;filename&gt;</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            &lt;memorysize&gt;</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 &lt;vramsize&gt;</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 &lt;host PCI address [@ guest
     805            PCI bus address]&gt;</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 &lt;host PCI
     814            address&gt;</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            &lt;uuid&gt;</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 &lt;cpucount&gt;</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            &lt;id&gt;</computeroutput>: If CPU hot-plugging is enabled,
     855            this adds or removes a virtual CPU on the virtual machine.
     856            <computeroutput>&lt;id&gt;</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            &lt;1-100&gt;</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 &lt;host|intel
     902            80[86|286|386]&gt;</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 &lt;key=value&gt;
     989            [,&lt;key=value&gt; ...]</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            &lt;msec&gt;</computeroutput> you can set how long the logo
     1088            should be visible, in milliseconds.
     1089          </para>
     1090
     1091          <para>
     1092            With <computeroutput>--bioslogoimagepath
     1093            &lt;imagepath&gt;</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            &lt;ms&gt;</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&lt;1-4&gt;
     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|&lt;path&gt;</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            &lt;size&gt;</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>&lt;size&gt;</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|&lt;name&gt;</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&lt;1-N&gt;
     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&lt;1-N&gt;
     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&lt;1-N&gt;
     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&lt;1-N&gt;
     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&lt;1-N&gt;
     1298            &lt;filename&gt;</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&lt;1-N&gt;
     1306            &lt;paramname&gt;="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&lt;1-N&gt;
     1322            &lt;kbps&gt;</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&lt;1-N&gt;
     1335            &lt;priority&gt;</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&lt;1-N&gt;
     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&lt;1-N&gt;
     1369            none|&lt;name&gt;</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>&lt;name&gt;</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&lt;1-N&gt;
     1389            none|&lt;devicename&gt;</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&lt;1-N&gt;
     1402            none|&lt;devicename&gt;</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&lt;1-N&gt;
     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&lt;1-N&gt; &lt;network
     1429            name&gt;</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&lt;1-N&gt; &lt;backend
     1440            driver&gt;</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&lt;1-N&gt;
     1452            auto|&lt;mac&gt;</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
    4981475          <listitem>
    499             <para><computeroutput>--name &lt;name&gt;</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 &lt;group&gt;, ...</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 &lt;desc&gt;</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 &lt;ostype&gt;</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 &lt;filename&gt;</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 &lt;memorysize&gt;</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 &lt;vramsize&gt;</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 &lt;host PCI address [@ guest
    565             PCI bus address]&gt;</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 &lt;host PCI address&gt;</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             &lt;uuid&gt;</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 &lt;cpucount&gt;</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             &lt;id&gt;</computeroutput>: If CPU hot-plugging is enabled (see
    604             above), this adds a virtual CPU to the virtual machines (or
    605             removes one). <computeroutput>&lt;id&gt;</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             &lt;1-100&gt;</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 &lt;host|intel 80[86|286|386]&gt;</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 &lt;key=value&gt;
    705             [,&lt;key=value&gt; ...]</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             &lt;msec&gt;</computeroutput> you can set how long the logo should
    778             be visible, in milliseconds.</para>
    779 
    780             <para>With <computeroutput>--bioslogoimagepath
    781             &lt;imagepath&gt;</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 &lt;ms&gt;</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&lt;1-4&gt;
    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|&lt;path&gt;</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             &lt;size&gt;</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>&lt;size&gt;</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|&lt;name&gt;</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&lt;1-N&gt;
    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&lt;1-N&gt;
    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&lt;1-N&gt;
    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&lt;1-N&gt;
    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&lt;1-N&gt;
    931             &lt;filename&gt;</computeroutput> the absolute path of the file the trace should be
    932             logged to.</para>
    933           </listitem>
    934 
    935           <listitem>
    936             <para><computeroutput>--nicproperty&lt;1-N&gt;
    937             &lt;paramname&gt;="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&lt;1-N&gt;
     1478              &lt;network&gt;|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.
    9441484            </para>
    9451485          </listitem>
    9461486
    9471487          <listitem>
    948             <para><computeroutput>--nicspeed&lt;1-N&gt; &lt;kbps&gt;</computeroutput>:
    949             If generic networking has been enabled for a particular virtual network
    950             card (see the <computeroutput>--nic</computeroutput> option above - otherwise
    951             this setting has no effect), this mode enables access to rarely used networking
    952             sub-modes, such as VDE network or UDP Tunnel. This option specifies the
    953             throughput rate in KBytes/sec.
     1488            <para>
     1489              <computeroutput>--natpf&lt;1-N&gt;
     1490              [&lt;name&gt;],tcp|udp,[&lt;hostip&gt;],&lt;hostport&gt;,[&lt;guestip&gt;],
     1491              &lt;guestport&gt;</computeroutput>: This setting defines a
     1492              NAT port-forwarding rule. See
     1493              <xref linkend="natforward" />.
    9541494            </para>
    9551495          </listitem>
    9561496
    9571497          <listitem>
    958             <para><computeroutput>--nicbootprio&lt;1-N&gt;
    959             &lt;priority&gt;</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&lt;1-N&gt;
    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&lt;1-N&gt;
    986             none|&lt;name&gt;</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>&lt;name&gt;</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&lt;1-N&gt;
    998             none|&lt;devicename&gt;</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&lt;1-N&gt;
    1008             none|&lt;devicename&gt;</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&lt;1-N&gt;
    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&lt;1-N&gt; &lt;network
    1030             name&gt;</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&lt;1-N&gt;
    1038             &lt;backend driver&gt;</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&lt;1-N&gt; delete
     1500              &lt;name&gt;</computeroutput>: This setting deletes a NAT
     1501              port-forwarding rule. See <xref linkend="natforward" />.
    10431502            </para>
    10441503          </listitem>
    10451504
    10461505          <listitem>
    1047             <para><computeroutput>--macaddress&lt;1-N&gt;
    1048             auto|&lt;mac&gt;</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&lt;1-N&gt;
     1508              &lt;prefix&gt;</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>
    10521514          </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&lt;1-N&gt;
    1066               &lt;network&gt;|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&lt;1-N&gt;
    1076               [&lt;name&gt;],tcp|udp,[&lt;hostip&gt;],&lt;hostport&gt;,[&lt;guestip&gt;],
    1077               &lt;guestport&gt;</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&lt;1-N&gt; delete
    1084               &lt;name&gt;</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&lt;1-N&gt;
    1091               &lt;prefix&gt;</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&lt;1-N&gt;
    1099               &lt;bootfile&gt;</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&lt;1-N&gt;
    1106               &lt;tftpserver&gt;</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&lt;1-N&gt;
    1113               &lt;ip;&gt;</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&lt;1-N&gt;
    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&lt;1-N&gt;
    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&lt;1-N&gt;
    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&lt;1-N&gt;
     1515
     1516          <listitem>
     1517            <para>
     1518              <computeroutput>--nattftpfile&lt;1-N&gt;
     1519              &lt;bootfile&gt;</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&lt;1-N&gt;
     1527              &lt;tftpserver&gt;</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&lt;1-N&gt;
     1537              &lt;ip;&gt;</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&lt;1-N&gt;
     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&lt;1-N&gt;
     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&lt;1-N&gt;
     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&lt;1-N&gt;
    11431577              [&lt;mtu&gt;],[&lt;socksnd&gt;],[&lt;sockrcv&gt;],[&lt;tcpsnd&gt;],
    1144               [&lt;tcprcv&gt;]</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&lt;1-N&gt;
    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              [&lt;tcprcv&gt;]</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&lt;1-N&gt;
     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
    11601600      </sect3>
     1601
    11611602    </sect2>
    11621603
    11631604    <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 &lt;ps2|usb|usbtablet|usbmultitouch&gt;</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 &lt;ps2|usb&gt;</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&lt;1-N&gt; off|&lt;I/O base&gt;
    1183           &lt;IRQ&gt;</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&lt;1-N&gt;
    1190           &lt;arg&gt;</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>&lt;arg&gt;</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               &lt;pipename&gt;</computeroutput>: On a Windows host, this
    1206               tells VirtualBox to create a named pipe on the host named
    1207               <computeroutput>&lt;pipename&gt;</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               &lt;pipename&gt;</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               &lt;port&gt;</computeroutput>: This
    1227               tells VirtualBox to create a TCP socket on the host with TCP
    1228               <computeroutput>&lt;port&gt;</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               &lt;hostname:port&gt;</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 &lt;file&gt;</computeroutput>:
    1243               This redirects the serial port output to a raw file &lt;file&gt;
    1244               specified by its absolute path on the host file system.</para>
    1245             </listitem>
    1246 
    1247             <listitem>
    1248               <para><computeroutput>&lt;devicename&gt;</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&lt;1-N&gt;
    1263           &lt;Device&gt;</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&lt;1-N&gt;
    1274           &lt;I/O base&gt; &lt;IRQ&gt;</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           &ndash; if so &ndash; 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           &lt;count&gt;</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           &lt;oldname&gt; &lt;newname&gt;</computeroutput>: This
    1360           setting enables renaming of the VM's virtual USB controller from &lt;oldname&gt;
    1361           to &lt;newname&gt;.</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            &lt;ps2|usb|usbtablet|usbmultitouch&gt;</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 &lt;ps2|usb&gt;</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&lt;1-N&gt; off|&lt;I/O base&gt;
     1636            &lt;IRQ&gt;</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&lt;1-N&gt;
     1646            &lt;arg&gt;</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>&lt;arg&gt;</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                &lt;pipename&gt;</computeroutput>: On a Windows host,
     1671                this tells VirtualBox to create a named pipe on the host
     1672                named <computeroutput>&lt;pipename&gt;</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                &lt;pipename&gt;</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 &lt;port&gt;</computeroutput>:
     1697                This tells VirtualBox to create a TCP socket on the host
     1698                with TCP <computeroutput>&lt;port&gt;</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                &lt;hostname:port&gt;</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 &lt;file&gt;</computeroutput>: This
     1718                redirects the serial port output to a raw file
     1719                &lt;file&gt; specified by its absolute path on the host
     1720                file system.
     1721              </para>
     1722            </listitem>
     1723
     1724            <listitem>
     1725              <para>
     1726                <computeroutput>&lt;devicename&gt;</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&lt;1-N&gt;
     1744            &lt;Device&gt;</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&lt;1-N&gt; &lt;I/O base&gt;
     1757            &lt;IRQ&gt;</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 &ndash; if so &ndash; 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            &lt;count&gt;</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 &lt;oldname&gt;
     1871            &lt;newname&gt;</computeroutput>: This setting enables
     1872            renaming of the VM's virtual USB controller from
     1873            &lt;oldname&gt; to &lt;newname&gt;.
     1874          </para>
     1875        </listitem>
     1876
     1877      </itemizedlist>
    13641878
    13651879    </sect2>
    13661880
    13671881    <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
    13721891      <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|&lt;screen ID&gt;
    1381           [&lt;screen ID&gt; ...]</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 &lt;filename&gt;</computeroutput>:
    1386             This option sets the filename VirtualBox uses to save the recorded content.
    1387           </para>
    1388         </listitem>
    1389         <listitem>
    1390           <para><computeroutput>--videocapres &lt;width&gt;x&lt;height&gt;</computeroutput>:
    1391             This option sets the resolution (in pixels) of the recorded video.</para>
    1392         </listitem>
    1393         <listitem>
    1394           <para><computeroutput>--videocaprate &lt;rate&gt;</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 &lt;fps&gt;</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 &lt;ms&gt;</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 &lt;MB&gt;</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 &lt;key=value&gt;
    1419             [,&lt;key=value&gt; ...]</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|&lt;screen ID&gt;
     1905            [&lt;screen ID&gt; ...]</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            &lt;filename&gt;</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            &lt;width&gt;x&lt;height&gt;</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            &lt;rate&gt;</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 &lt;fps&gt;</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            &lt;ms&gt;</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            &lt;MB&gt;</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 &lt;key=value&gt;
     1971            [,&lt;key=value&gt; ...]</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:
    14231975            <computeroutput>foo=bar,a=b</computeroutput>.
    14241976          </para>
    14251977
    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>
    14391999
    14402000    </sect2>
    14412001
    14422002    <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=&lt;value&gt;"</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, &lt;value&gt; 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, &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
    1480             sets the VRDP video redirection properties.</para>
    1481             <itemizedlist>
    1482               <listitem>
    1483                 <para>For VideoChannel/Enabled, &lt;value&gt; 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, &lt;value&gt; 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, &lt;value&gt; 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=&lt;value&gt;"</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=&lt;value&gt;"</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=&lt;value&gt;"</computeroutput>
    1556                 where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
    1562                 where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
    1568                 where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
    1576             sets the Audio connection mode, or Path of the audio logfile.
    1577 
    1578             <itemizedlist>
    1579               <listitem>
    1580                 <para><computeroutput>--vrdeproperty "Audio/RateCorrectionMode=&lt;value&gt;"</computeroutput>
    1581                 where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
    1599                 where &lt;value&gt; 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|&lt;name&gt;</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|&lt;ports&gt;</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 &lt;IP
    1627             address&gt;</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=&lt;value&gt;"</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, &lt;value&gt; 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, &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     2064            sets the VRDP video redirection properties.
     2065          </para>
     2066
     2067          <itemizedlist>
     2068
     2069            <listitem>
     2070              <para>
     2071                For VideoChannel/Enabled, &lt;value&gt; 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, &lt;value&gt; 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, &lt;value&gt; 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=&lt;value&gt;"</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=&lt;value&gt;"</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=&lt;value&gt;"</computeroutput>
     2214                where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     2223                where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     2232                where &lt;value&gt; 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=&lt;value&gt;"</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=&lt;value&gt;"</computeroutput>
     2254                where &lt;value&gt; 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=&lt;value&gt;"</computeroutput> where
     2297                &lt;value&gt; 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|&lt;name&gt;</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|&lt;ports&gt;</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 &lt;IP
     2337            address&gt;</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
    16322345            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
    16582386            default|&lt;name&gt;</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             &lt;percent&gt;</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            &lt;percent&gt;</computeroutput>: Specifies the image
     2427            quality for video redirection. See
     2428            <xref
     2429            linkend="vrde-videochannel" />.
     2430          </para>
     2431        </listitem>
     2432
     2433      </itemizedlist>
     2434
    16932435    </sect2>
    16942436
    16952437    <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             &lt;port&gt;</computeroutput>, <computeroutput>--teleporteraddress
    1713             &lt;address&gt;</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>&lt;port&gt;</computeroutput> can
    1717             be any free TCP/IP port number (e.g. 6000);
    1718             <computeroutput>&lt;address&gt;</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             &lt;password&gt;</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             &lt;password&gt;</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 &lt;leaf&gt; &lt;eax&gt; &lt;ebx&gt;
    1742             &lt;ecx&gt; &lt;edx&gt;</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            &lt;port&gt;</computeroutput>,
     2464            <computeroutput>--teleporteraddress
     2465            &lt;address&gt;</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>&lt;port&gt;</computeroutput> can be any
     2470            free TCP/IP port number, such as 6000.
     2471            <computeroutput>&lt;address&gt;</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            &lt;password&gt;</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            &lt;password&gt;</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 &lt;leaf&gt; &lt;eax&gt; &lt;ebx&gt;
     2502            &lt;ecx&gt; &lt;edx&gt;</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
    17552518    </sect2>
    17562519
    17572520    <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 &lt;config-string&gt;</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.
    17772527      </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            &lt;config-string&gt;</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
    17782558    </sect2>
    17792559
    17802560    <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
    17862571      <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
    17912580      </itemizedlist>
     2581
    17922582    </sect2>
    17932583
    17942584    <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
    18012595      <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 &lt;seconds&gt;</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            &lt;seconds&gt;</computeroutput>: Specifies a delay
     2609            (seconds) following host system boot-up, before VM
     2610            autostarts.
     2611          </para>
     2612        </listitem>
     2613
    18102614      </itemizedlist>
     2615
    18112616    </sect2>
     2617
    18122618  </sect1>
    18132619
    18142620  <sect1 id="vboxmanage-clonevm">
     2621
    18152622    <title>VBoxManage clonevm</title>
    18162623
    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>
    18242635
    18252636    <itemizedlist>
    1826        <listitem>
    1827            <para><computeroutput>--snapshot &lt;uuid&gt;|&lt;name&gt;</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 &lt;name&gt;</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 &lt;group&gt;, ...</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 &lt;basefolder&gt;</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 &lt;uuid&gt;</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          &lt;uuid&gt;|&lt;name&gt;</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 &lt;name&gt;</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 &lt;group&gt;, ...</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          &lt;basefolder&gt;</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 &lt;uuid&gt;</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
    18882728    </itemizedlist>
     2729
    18892730  </sect1>
    18902731
    18912732  <sect1 id="vboxmanage-import">
     2733
    18922734    <title>VBoxManage import</title>
    18932735
    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
    19282784Interpreting WindowsXp.ovf...
    19292785OK.
     
    19512807      target path=/home/user/disks/WindowsXp.vmdk, controller=9;channel=0
    19522808    (change controller with "--vsys 0 --unit 11 --controller &lt;id&gt;";
    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
    19762843  </sect1>
    19772844
    19782845  <sect1 id="vboxmanage-export">
     2846
    19792847    <title>VBoxManage export</title>
    19802848
    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
    20242905  </sect1>
    20252906
    20262907  <sect1 id="vboxmanage-startvm">
     2908
    20272909    <title>VBoxManage startvm</title>
    20282910
    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>
    20812990
    20822991    <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>
    20872999    </note>
     3000
    20883001  </sect1>
    20893002
    20903003  <sect1 id="vboxmanage-controlvm">
     3004
    20913005    <title>VBoxManage controlvm</title>
    20923006
    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 &lt;vm&gt;
    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 &lt;vm&gt;
     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 &lt;vm&gt;
     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 &lt;vm&gt;
    21093029          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 &lt;vm&gt;
    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 &lt;vm&gt;
    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 &lt;vm&gt;
    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 &lt;vm&gt;
    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 &lt;vm&gt;
    2162           keyboardputscancode &lt;hex&gt; [&lt;hex&gt;...]</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 &lt;vm&gt;
     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 &lt;vm&gt;
     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 &lt;vm&gt;
     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 &lt;vm&gt;
     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 &lt;vm&gt;
     3099          keyboardputscancode &lt;hex&gt;
     3100          [&lt;hex&gt;...]</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
    21693110          --hostname &lt;name&gt; --port &lt;port&gt; [--passwordfile
    2170           &lt;file&gt; | --password &lt;password&gt;]</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          &lt;file&gt; | --password &lt;password&gt;]</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>
    21843130
    21853131    <itemizedlist>
    2186       <listitem>
    2187         <para>The <computeroutput>setlinkstate&lt;1-N&gt;</computeroutput>
    2188         operation connects or disconnects virtual network cables from their
    2189         network interfaces.</para>
    2190       </listitem>
    2191 
    2192       <listitem>
    2193         <para><computeroutput>nic&lt;1-N&gt;
    2194         null|nat|bridged|intnet|hostonly|generic|natnetwork[&lt;devicename&gt;]</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&lt;1-N&gt;
    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&lt;1-N&gt;
    2221         &lt;filename&gt;</computeroutput> the pathname of the file to which the trace should be
    2222         logged.</para>
    2223       </listitem>
    2224 
    2225       <listitem>
    2226         <para><computeroutput>nicpromisc&lt;1-N&gt;
    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&lt;1-N&gt;
    2241         &lt;paramname&gt;="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&lt;1-N&gt;
    2252         [&lt;name&gt;],tcp|udp,[&lt;hostip&gt;],&lt;hostport&gt;,[&lt;guestip&gt;],
    2253         &lt;guestport&gt;</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&lt;1-N&gt; delete
    2261         &lt;name&gt;</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&lt;balloon size in MB&gt;</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&lt;uuid|address&gt; [--capturefile &lt;filename&gt;]</computeroutput></para>
    2277         <para>and <computeroutput>usbdetach &lt;uuid|address&gt; [--capturefile &lt;filename&gt;]</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|&lt;ports&gt;</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=&lt;value&gt;"</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&lt;1-N&gt;</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&lt;1-N&gt;
     3144          null|nat|bridged|intnet|hostonly|generic|natnetwork[&lt;devicename&gt;]</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&lt;1-N&gt;
     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&lt;1-N&gt;
     3179          &lt;filename&gt;</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&lt;1-N&gt;
     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&lt;1-N&gt;
     3202          &lt;paramname&gt;="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&lt;1-N&gt;
     3217          [&lt;name&gt;],tcp|udp,[&lt;hostip&gt;],&lt;hostport&gt;,[&lt;guestip&gt;],
     3218          &lt;guestport&gt;</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&lt;1-N&gt; delete
     3226          &lt;name&gt;</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&lt;balloon size in
     3234          MB&gt;</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&lt;uuid|address&gt; [--capturefile
     3246          &lt;filename&gt;]</computeroutput>
     3247        </para>
     3248
     3249        <para>
     3250          and <computeroutput>usbdetach &lt;uuid|address&gt;
     3251          [--capturefile &lt;filename&gt;]</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|&lt;ports&gt;</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=&lt;value&gt;"</computeroutput> sets the
     3328          port number(s) and IP address on the VM to which the VRDE
     3329          server can bind.
     3330        </para>
    23343331
    23353332        <itemizedlist>
     3333
    23363334          <listitem>
    2337             <para>For TCP/Ports, &lt;value&gt; 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, &lt;value&gt; 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>
    23423344          </listitem>
    23433345
    23443346          <listitem>
    2345             <para>For TCP/Address, &lt;value&gt; 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, &lt;value&gt; 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>
    23513357          </listitem>
     3358
    23523359        </itemizedlist>
    23533360      </listitem>
    23543361
    23553362      <listitem>
    2356         <para><computeroutput>vrdeproperty "VideoChannel/Enabled|Quality|DownscaleProtection=&lt;value&gt;"</computeroutput>
    2357         sets the VRDP video redirection properties.</para>
     3363        <para>
     3364          <computeroutput>vrdeproperty
     3365          "VideoChannel/Enabled|Quality|DownscaleProtection=&lt;value&gt;"</computeroutput>
     3366          sets the VRDP video redirection properties.
     3367        </para>
     3368
    23583369        <itemizedlist>
     3370
    23593371          <listitem>
    2360             <para>For VideoChannel/Enabled, &lt;value&gt; 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, &lt;value&gt; can be set to "1"
     3374              switching the VRDP video channel on. See
     3375              <xref linkend="vrde-videochannel" />.
     3376            </para>
    23623377          </listitem>
    23633378
    23643379          <listitem>
    2365             <para>For VideoChannel/Quality, &lt;value&gt; 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, &lt;value&gt; 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>
    23683387          </listitem>
    23693388
    23703389          <listitem>
    2371             <para>For VideoChannel/DownscaleProtection, &lt;value&gt; 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, &lt;value&gt; 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>
    23773401          </listitem>
     3402
    23783403        </itemizedlist>
    23793404      </listitem>
    23803405
    23813406      <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=&lt;value&gt;"</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=&lt;value&gt;"</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>
    24103467
    24113468        <itemizedlist>
     3469
    24123470          <listitem>
    2413             <para><computeroutput>vrdeproperty "Security/Method=&lt;value&gt;"</computeroutput>
    2414             sets the desired security method, which is used for a connection. Valid values are:
     3471            <para>
     3472              <computeroutput>vrdeproperty
     3473              "Security/Method=&lt;value&gt;"</computeroutput> sets the
     3474              desired security method, which is used for a connection.
     3475              Valid values are:
     3476            </para>
     3477
    24153478            <itemizedlist>
     3479
    24163480              <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>
    24203487              </listitem>
     3488
    24213489              <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>
    24233494              </listitem>
     3495
    24243496              <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>
    24273501              </listitem>
     3502
    24283503            </itemizedlist>
    2429             For details, see <xref linkend="vrde-crypt" />.</para>
     3504
     3505            <para>
     3506              See <xref linkend="vrde-crypt" />.
     3507            </para>
    24303508          </listitem>
    24313509
    24323510          <listitem>
    2433             <para><computeroutput>vrdeproperty "Security/ServerCertificate=&lt;value&gt;"</computeroutput>
    2434             where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     3514              where &lt;value&gt; is the absolute path of the server
     3515              certificate. See <xref linkend="vrde-crypt" />.
     3516            </para>
    24363517          </listitem>
    24373518
    24383519          <listitem>
    2439             <para><computeroutput>vrdeproperty "Security/ServerPrivateKey=&lt;value&gt;"</computeroutput>
    2440             where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     3523              where &lt;value&gt; is the absolute path of the server
     3524              private key. See <xref linkend="vrde-crypt" />.
     3525            </para>
    24423526          </listitem>
    24433527
    24443528          <listitem>
    2445             <para><computeroutput>vrdeproperty "Security/CACertificate=&lt;value&gt;"</computeroutput>
    2446             where &lt;value&gt; 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=&lt;value&gt;"</computeroutput>
     3532              where &lt;value&gt; is the absolute path of the CA self
     3533              signed certificate. See <xref linkend="vrde-crypt" />.
     3534            </para>
    24483535          </listitem>
    2449         </itemizedlist></para>
    2450       </listitem>
    2451 
    2452       <listitem>
    2453         <para><computeroutput>vrdeproperty "Audio/RateCorrectionMode|LogPath=&lt;value&gt;"</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=&lt;value&gt;"</computeroutput>
     3544          sets the Audio connection mode, or Path of the audio logfile.
     3545        </para>
    24553546
    24563547        <itemizedlist>
     3548
    24573549          <listitem>
    2458             <para><computeroutput>vrdeproperty "Audio/RateCorrectionMode=&lt;value&gt;"</computeroutput>
    2459             where &lt;value&gt; is the desired rate correction mode, allowed values are:
     3550            <para>
     3551              <computeroutput>vrdeproperty
     3552              "Audio/RateCorrectionMode=&lt;value&gt;"</computeroutput>
     3553              where &lt;value&gt; is the desired rate correction mode,
     3554              allowed values are:
     3555            </para>
     3556
    24603557            <itemizedlist>
     3558
    24613559              <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>
    24643565              </listitem>
     3566
    24653567              <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>
    24673572              </listitem>
     3573
    24683574              <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>
    24703579              </listitem>
     3580
    24713581              <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>
    24743587              </listitem>
    2475             </itemizedlist></para>
     3588
     3589            </itemizedlist>
    24763590          </listitem>
     3591
    24773592          <listitem>
    2478             <para><computeroutput>vrdeproperty "Audio/LogPath=&lt;value&gt;"</computeroutput>
    2479             where &lt;value&gt; is the absolute path of the Audio log file.</para>
     3593            <para>
     3594              <computeroutput>vrdeproperty
     3595              "Audio/LogPath=&lt;value&gt;"</computeroutput> where
     3596              &lt;value&gt; is the absolute path of the Audio log file.
     3597            </para>
    24803598          </listitem>
    2481         </itemizedlist></para>
    2482       </listitem>
    2483 
    2484       <listitem>
    2485         <para><computeroutput>vrdevideochannelquality
    2486         &lt;percent&gt;</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|&lt;screen ID&gt;
    2510         [&lt;screen ID&gt; ...]]</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 &lt;file&gt;</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 &lt;width&gt; &lt;height&gt;</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 &lt;rate&gt;</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 &lt;fps&gt;</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 &lt;ms&gt;</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 &lt;MB&gt;</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 &lt;key=value&gt;[,&lt;key=value&gt; ...]</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 &lt;name&gt; --port &lt;port&gt;</computeroutput>
    2576         can be used to configure a VM as a target for teleporting.
    2577         &lt;name&gt; specifies the virtual machine name. &lt;port&gt; 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          &lt;percent&gt;</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|&lt;screen ID&gt;
     3639          [&lt;screen ID&gt; ...]]</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 &lt;file&gt;</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 &lt;width&gt;
     3658          &lt;height&gt;</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 &lt;rate&gt;</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 &lt;fps&gt;</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 &lt;ms&gt;</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 &lt;MB&gt;</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          &lt;key=value&gt;[,&lt;key=value&gt; ...]</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 &lt;name&gt; --port
     3734          &lt;port&gt;</computeroutput> can be used to configure a VM as
     3735          a target for teleporting. &lt;name&gt; specifies the virtual
     3736          machine name. &lt;port&gt; 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
    25813742        <itemizedlist>
     3743
    25823744          <listitem>
    2583             <para><computeroutput>--maxdowntime &lt;msec&gt;</computeroutput>:
    2584             specifies the maximum downtime (milliseconds) for the
    2585             teleporting target VM. Optional.</para>
     3745            <para>
     3746              <computeroutput>--maxdowntime
     3747              &lt;msec&gt;</computeroutput>: specifies the maximum
     3748              downtime (milliseconds) for the teleporting target VM.
     3749              Optional.
     3750            </para>
    25863751          </listitem>
    25873752
    25883753          <listitem>
    2589             <para><computeroutput>--password
    2590             &lt;password&gt;</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              &lt;password&gt;</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>
    25943761          </listitem>
    25953762
    25963763          <listitem>
    2597             <para><computeroutput>--passwordfile
    2598             &lt;password file&gt;</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 &lt;password
     3766              file&gt;</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>
    26043773          </listitem>
     3774
    26053775        </itemizedlist>
    26063776      </listitem>
    26073777
    26083778      <listitem>
    2609         <para><computeroutput>plugcpu|unplugcpu
    2610         &lt;id&gt;</computeroutput>: If CPU hot-plugging is enabled, this adds
    2611         a virtual CPU to the virtual machines (or removes one).
    2612         <computeroutput>&lt;id&gt;</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         &lt;1-100&gt;</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 &lt;path|alias&gt; [&lt;key=value&gt;[;&lt;key=value&gt;...]]</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 &lt;path|alias&gt;</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         &lt;id&gt; &lt;password file&gt;|- [--removeonsuspend &lt;yes|no&gt;]</computeroutput>: This operation
    2688         supplies an encrypted VM specified by &lt;id&gt; with the encryption password to enable a headless start.
    2689         Either specify the absolute path of a password file on the host file system: &lt;password file&gt;, or
    2690         use a '-' to instruct VBoxManage to prompt the user for the encryption password. </para>
    2691 
    2692         <para><computeroutput>--removeonsuspend &lt;yes|no&gt;</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 &lt;id&gt;</computeroutput>: This operation
    2721         removes encryption password authorization for password &lt;id&gt; 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 &lt;id&gt;</computeroutput>:
     3781          If CPU hot-plugging is enabled, this adds a virtual CPU to the
     3782          virtual machines (or removes one).
     3783          <computeroutput>&lt;id&gt;</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          &lt;1-100&gt;</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 &lt;path|alias&gt;
     3802          [&lt;key=value&gt;[;&lt;key=value&gt;...]]</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          &lt;path|alias&gt;</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 &lt;id&gt; &lt;password
     3908          file&gt;|- [--removeonsuspend
     3909          &lt;yes|no&gt;]</computeroutput>: This operation supplies an
     3910          encrypted VM specified by &lt;id&gt; 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          &lt;password file&gt;, or use a '-' to instruct VBoxManage to
     3914          prompt the user for the encryption password.
     3915        </para>
     3916
     3917        <para>
     3918          <computeroutput>--removeonsuspend
     3919          &lt;yes|no&gt;</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 &lt;id&gt;</computeroutput>:
     3969          This operation removes encryption password authorization for
     3970          password &lt;id&gt; 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>
    27293981      </listitem>
    27303982
    27313983    </itemizedlist>
     3984
    27323985  </sect1>
    27333986
    2734   <sect1>
     3987  <sect1 id="vboxmanage-discardstate">
     3988
    27353989    <title>VBoxManage discardstate</title>
    27363990
    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
    27413999  </sect1>
    27424000
    2743   <sect1>
     4001  <sect1 id="vboxmanage-adoptstate">
     4002
    27444003    <title>VBoxManage adoptstate</title>
    27454004
    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
    27514014  </sect1>
    27524015
    2753   <sect1>
     4016  <sect1 id="vboxmanage-snapshot">
     4017
    27544018    <title>VBoxManage snapshot</title>
    27554019
    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         &lt;uuid|vmname&gt;
     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         &lt;uuid|vmname&gt;
    27674034                            take &lt;name&gt; [--description &lt;desc&gt;] [--live]
    27684035                                 [--uniquename Number,Timestamp,Space,Force] |
     
    27764043                            showvminfo &lt;uuid|snapname&gt;</screen>
    27774044
    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
    28154100  </sect1>
    28164101
    28174102  <sect1 id="vboxmanage-closemedium">
     4103
    28184104    <title>VBoxManage closemedium</title>
    28194105
    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] &lt;uuid|filename&gt;
     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] &lt;uuid|filename&gt;
    28324127                            [--delete]</screen>
    28334128
    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
    28374135  </sect1>
    28384136
    28394137  <sect1 id="vboxmanage-storageattach">
     4138
    28404139    <title>VBoxManage storageattach</title>
    28414140
    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    &lt;uuid|vmname&gt;
     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    &lt;uuid|vmname&gt;
    28484149                            --storagectl &lt;name&gt;
    28494150                            [--port &lt;number&gt;]
     
    28754176                            [--intnet]</screen>
    28764177
    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:&lt;drive&gt;": 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:&lt;drive&gt;": 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
    29844338            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
    32154697  </sect1>
    32164698
    32174699  <sect1 id="vboxmanage-storagectl">
     4700
    32184701    <title>VBoxManage storagectl</title>
    32194702
    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       &lt;uuid|vmname&gt;
     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       &lt;uuid|vmname&gt;
    32284714                            --name &lt;name&gt;
    32294715                            [--add ide|sata|scsi|floppy|sas|usb|pcie]
     
    32374723                            [--remove]</screen>
    32384724
    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
    33174847  </sect1>
    33184848
    3319   <sect1>
     4849  <sect1 id="vboxmanage-bandwidthctl">
     4850
    33204851    <title>VBoxManage bandwidthctl</title>
    33214852
    3322     <para>This command creates/deletes/modifies/shows bandwidth groups of the given
    3323     virtual machine:
    3324     <screen>VBoxManage bandwidthctl    &lt;uuid|vmname&gt;
    3325                            add &lt;name&gt; --type disk|network --limit &lt;megabytes per second&gt;[k|m|g|K|M|G] |
    3326                            set &lt;name&gt; --limit &lt;megabytes per second&gt;[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    &lt;uuid|vmname&gt;
     4858                           add &lt;name&gt; --type disk|network --limit &lt;MBps&gt;[k|m|g|K|M|G] |
     4859                           set &lt;name&gt; --limit &lt;MBps&gt;[k|m|g|K|M|G] |
    33274860                           remove &lt;name&gt; |
    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
    33494901    </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
    33734941            supported: <computeroutput>disk</computeroutput> and
    33744942            <computeroutput>network</computeroutput>. See
    33754943            <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,
    33894962            <computeroutput>m</computeroutput> for megabits/s,
    33904963            <computeroutput>g</computeroutput> for gigabits/s,
    33914964            <computeroutput>K</computeroutput> for kilobytes/s,
    33924965            <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
    33974998      <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>
    34005004      </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] &lt;uuid|filename&gt;</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
    34065018  </sect1>
    34075019
    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 machines
    3413     which use it.<note>
    3414         <para>For compatibility with earlier versions of VirtualBox, the
    3415         "showvdiinfo" command is also supported and mapped internally to the
    3416         "showmediuminfo" command.</para>
    3417       </note></para>
    3418 
    3419     <screen>VBoxManage showmediuminfo     [disk|dvd|floppy] &lt;uuid|filename&gt;</screen>
    3420 
    3421     <para>The medium must be specified either by its UUID (if the medium
    3422       is registered) or by its filename. Registered images can be listed by
    3423       <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 
    34305020  <sect1 id="vboxmanage-createmedium">
     5021
    34315022    <title>VBoxManage createmedium</title>
    34325023
    3433     <para>This command creates a new medium. The syntax is as follows:</para>
    3434 
    3435     <screen>VBoxManage createmedium     [disk|dvd|floppy]    --filename &lt;filename&gt;
     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 &lt;filename&gt;
    34365029                            [--size &lt;megabytes&gt;|--sizebyte &lt;bytes&gt;]
    34375030                            [--diffparent &lt;uuid&gt;|&lt;filename&gt;
     
    34395032                            [--variant Standard,Fixed,Split2G,Stream,ESX]</screen>
    34405033
    3441     <para>where the parameters mean:<glosslist>
    3442         <glossentry>
    3443           <glossterm><computeroutput>--filename &lt;filename&gt;</computeroutput></glossterm>
    3444 
    3445           <glossdef>
    3446             <para>Specifies a file name &lt;filename&gt; as an absolute path on the host file
    3447             system. Mandatory.</para>
    3448           </glossdef>
    3449         </glossentry>
    3450 
    3451         <glossentry>
    3452           <glossterm><computeroutput>--size &lt;megabytes&gt;</computeroutput></glossterm>
    3453 
    3454           <glossdef>
    3455             <para>&lt;megabytes&gt; Specifies the image capacity, in 1 MB units.
    3456             Optional.</para>
    3457           </glossdef>
    3458         </glossentry>
    3459 
    3460         <glossentry>
    3461           <glossterm><computeroutput>--diffparent &lt;uuid&gt;|&lt;filename&gt;</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 &lt;filename&gt;</computeroutput>
     5043        </term>
     5044
     5045        <listitem>
     5046          <para>
     5047            Specifies a file name &lt;filename&gt; 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 &lt;megabytes&gt;</computeroutput>
     5056        </term>
     5057
     5058        <listitem>
     5059          <para>
     5060            &lt;megabytes&gt; 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          &lt;uuid&gt;|&lt;filename&gt;</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
    34925121  </sect1>
    34935122
    34945123  <sect1 id="vboxmanage-modifyvdi">
     5124
    34955125    <title>VBoxManage modifymedium</title>
    34965126
    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]    &lt;uuid|filename&gt;
     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]    &lt;uuid|filename&gt;
    35005133                         [--type normal|writethrough|immutable|shareable|
    35015134                                 readonly|multiattach]
     
    35045137                         [--compact]
    35055138                         [--resize &lt;megabytes&gt;|--resizebyte &lt;bytes&gt;]
    3506                          [--move &lt;path&gt;</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 &lt;path&gt;</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
    35205168          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
    35275178          <computeroutput>--autoreset on|off</computeroutput> option
    35285179          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
    35435198          space in the guest system first be zeroed out using a suitable
    35445199          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 &lt;path&gt;</computeroutput> option
    3583           can be used to relocate a medium to a different location &lt;path&gt; 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 &lt;path&gt;</computeroutput>
     5259          option can be used to relocate a medium to a different
     5260          location &lt;path&gt; 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
    35885267  </sect1>
    35895268
    35905269  <sect1 id="vboxmanage-clonevdi">
     5270
    35915271    <title>VBoxManage clonemedium</title>
    35925272
    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] &lt;uuid|inputfile&gt; &lt;uuid|outputfile&gt;
     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] &lt;uuid|inputfile&gt; &lt;uuid|outputfile&gt;
    36005283
    36015284                            [--format VDI|VMDK|VHD|RAW|&lt;other&gt;]
     
    36035286                            [--existing]</screen>
    36045287
    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.
    36275325            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
    36475355        "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
    36505360  </sect1>
    36515361
    36525362  <sect1 id="vboxmanage-mediumproperty">
     5363
    36535364    <title>VBoxManage mediumproperty</title>
    36545365
    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 &lt;uuid|filename&gt;
     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 &lt;uuid|filename&gt;
    36595372                                                &lt;property&gt; &lt;value&gt;</screen>
    36605373
    3661 
    3662     <para><itemizedlist>
    3663         <listitem>
    3664           <para>Use <computeroutput>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</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>&lt;property&gt;</computeroutput> to supply the name of the
    3675           property.</para>
    3676         </listitem>
    3677 
    3678         <listitem>
    3679           <para>Use <computeroutput>&lt;value&gt;</computeroutput> to supply the property value.</para>
    3680         </listitem>
    3681     </itemizedlist></para>
    3682 
    3683     <screen>VBoxManage mediumproperty [disk|dvd|floppy] get &lt;uuid|filename&gt;
     5374    <itemizedlist>
     5375
     5376      <listitem>
     5377        <para>
     5378          Use <computeroutput>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</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>&lt;property&gt;</computeroutput> to
     5395          supply the name of the property.
     5396        </para>
     5397      </listitem>
     5398
     5399      <listitem>
     5400        <para>
     5401          Use <computeroutput>&lt;value&gt;</computeroutput> to supply
     5402          the property value.
     5403        </para>
     5404      </listitem>
     5405
     5406    </itemizedlist>
     5407
     5408<screen>VBoxManage mediumproperty [disk|dvd|floppy] get &lt;uuid|filename&gt;
    36845409                                                &lt;property&gt;</screen>
    3685     <para><itemizedlist>
    3686         <listitem>
    3687           <para>Use <computeroutput>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</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>&lt;property&gt;</computeroutput> to supply the name of the
    3698           property.</para>
    3699         </listitem>
    3700     </itemizedlist></para>
    3701 
    3702     <screen>VBoxManage mediumproperty [disk|dvd|floppy] delete &lt;uuid|filename&gt;
     5410
     5411    <itemizedlist>
     5412
     5413      <listitem>
     5414        <para>
     5415          Use <computeroutput>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</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>&lt;property&gt;</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 &lt;uuid|filename&gt;
    37035439                                                   &lt;property&gt;</screen>
    37045440
    3705 
    3706     <para><itemizedlist>
    3707         <listitem>
    3708           <para>Use <computeroutput>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</computeroutput> to supply either the uuid
    3714           or absolute path of the medium/image.</para>
    3715         </listitem>
    3716 
    3717         <listitem>
    3718           <para>Use <computeroutput>&lt;property&gt;</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>&lt;disk|dvd|floppy&gt;</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>&lt;uuid|filename&gt;</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>&lt;property&gt;</computeroutput> to
     5461          supply the name of the property.
     5462        </para>
     5463      </listitem>
     5464
     5465    </itemizedlist>
     5466
    37225467  </sect1>
    37235468
    37245469  <sect1 id="vboxmanage-encryptmedium">
     5470
    37255471    <title>VBoxManage encryptmedium</title>
    37265472
    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 &lt;uuid|filename&gt;
     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 &lt;uuid|filename&gt;
    37335483                         [--newpassword &lt;file|-&gt;]
    37345484                         [--oldpassword &lt;file|-&gt;]
     
    37365486                         [--newpasswordid &lt;password id&gt;]</screen>
    37375487
    3738     <para><itemizedlist>
    3739         <listitem>
    3740           <para>use <computeroutput>&lt;uuid|filename&gt;</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 &lt;file|-&gt;</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 &lt;file|-&gt;</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 &lt;cipher&gt;</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 &lt;password id&gt;</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>&lt;uuid|filename&gt;</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          &lt;file|-&gt;</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          &lt;file|-&gt;</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 &lt;cipher&gt;</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 &lt;password
     5547          id&gt;</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>
    37795561
    37805562  </sect1>
     
    37845566    <title>VBoxManage checkmediumpwd</title>
    37855567
    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 &lt;uuid|filename&gt;
     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 &lt;uuid|filename&gt;
    37925579                                      &lt;pwd file|-&gt;</screen>
    3793     <para><itemizedlist>
    3794         <listitem>
    3795           <para>Use <computeroutput>&lt;uuid|filename&gt;</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>&lt;pwd file|-&gt;</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>&lt;uuid|filename&gt;</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>&lt;pwd file|-&gt;</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>
    38055602
    38065603  </sect1>
    38075604
    3808   <sect1>
     5605  <sect1 id="vboxmanage-convertfromraw">
     5606
    38095607    <title>VBoxManage convertfromraw</title>
    38105608
    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   &lt;filename&gt; &lt;outputfile&gt;
     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   &lt;filename&gt; &lt;outputfile&gt;
    38155615                            [--format VDI|VMDK|VHD]
    38165616                            [--variant Standard,Fixed,Split2G,Stream,ESX]
     
    38215621                            [--uuid &lt;uuid&gt;]</screen>
    38225622
    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.
    38475663            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
    38695700  </sect1>
    38705701
    3871   <sect1>
     5702  <sect1 id="vboxmanage-extradata">
     5703
    38725704    <title>VBoxManage getextradata/setextradata</title>
    38735705
    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
    38815716VBoxManage setextradata SUSE10 installdate 2006.02.02</screen>
    38825717
    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
    38935732All rights reserved.
    38945733
    38955734Value: 2006.01.01</screen>
    38965735
    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>
    39065749
    39075750  </sect1>
    39085751
    39095752  <sect1 id="vboxmanage-setproperty">
     5753
    39105754    <title>VBoxManage setproperty</title>
    39115755
    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
    40025899  </sect1>
    40035900
    4004   <sect1>
     5901  <sect1 id="vboxmanage-usbfilter">
     5902
    40055903    <title>VBoxManage usbfilter add/modify/remove</title>
    40065904
    4007     <screen>VBoxManage usbfilter        add &lt;index,0-N&gt;
     5905<screen>VBoxManage usbfilter        add &lt;index,0-N&gt;
    40085906                          --target &lt;uuid|vmname&gt;global
    40095907                          --name &lt;string&gt;
     
    40205918    </screen>
    40215919
    4022     <screen>VBoxManage usbfilter        modify &lt;index,0-N&gt;
     5920<screen>VBoxManage usbfilter        modify &lt;index,0-N&gt;
    40235921                          --target &lt;uuid|vmname&gt;global
    40245922                         [--name &lt;string&gt;]
     
    40355933    </screen>
    40365934
    4037     <screen>VBoxManage usbfilter        remove &lt;index,0-N&gt;
     5935<screen>VBoxManage usbfilter        remove &lt;index,0-N&gt;
    40385936                          --target &lt;uuid|vmname&gt;global
    40395937    </screen>
    40405938
    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 &lt;XXXX&gt;|""</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 &lt;XXXX&gt;|""</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 &lt;IIFF&gt;|""</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 &lt;string&gt;|""</computeroutput>Specifies
    4126            a manufacturer ID filter, as a string.</para>
    4127         </listitem>
    4128 
    4129         <listitem>
    4130           <para><computeroutput>--product &lt;string&gt;|""</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 &lt;string&gt;|""</computeroutput>Specifies
    4142            a serial number filter, as a string.</para>
    4143         </listitem>
    4144 
    4145         <listitem>
    4146           <para><computeroutput>--maskedinterfaces &lt;XXXXXXXX&gt;</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          &lt;XXXX&gt;|""</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          &lt;XXXX&gt;|""</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          &lt;IIFF&gt;|""</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          &lt;string&gt;|""</computeroutput>Specifies a manufacturer ID
     6054          filter, as a string.
     6055        </para>
     6056      </listitem>
     6057
     6058      <listitem>
     6059        <para>
     6060          <computeroutput>--product
     6061          &lt;string&gt;|""</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          &lt;string&gt;|""</computeroutput>Specifies a serial number
     6079          filter, as a string.
     6080        </para>
     6081      </listitem>
     6082
     6083      <listitem>
     6084        <para>
     6085          <computeroutput>--maskedinterfaces
     6086          &lt;XXXXXXXX&gt;</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
    41526096  </sect1>
    41536097
    41546098  <sect1 id="vboxmanage-sharedfolder">
     6099
    41556100    <title>VBoxManage sharedfolder add/remove</title>
    41566101
     
    41616106</screen>
    41626107
    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>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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 &lt;hostpath&gt;</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_&lt;name&gt; or /media/sf_&lt;name&gt; - depending on
    4211          your guest OS. Where &lt;name&gt; 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>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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 &lt;hostpath&gt;</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_&lt;name&gt; or
     6175          /media/sf_&lt;name&gt; - depending on your guest OS. Where
     6176          &lt;name&gt; is the share name. Optional.
     6177        </para>
     6178      </listitem>
     6179
     6180    </itemizedlist>
    42146181
    42156182<screen>
     
    42196186</screen>
    42206187
    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>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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
    42516233  </sect1>
    42526234
    42536235  <sect1 id="vboxmanage-guestproperty">
     6236
    42546237    <title>VBoxManage guestproperty</title>
    42556238
    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>&lt;vm&gt;</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 &lt;vm&gt; [--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>&lt;vm&gt;</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 &lt;vm&gt; [--patterns
    42716263          &lt;pattern&gt;]</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 &lt;pattern&gt;</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 &lt;vm&gt; &lt;property&gt;
    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 &lt;vm&gt; &lt;property&gt; [&lt;value&gt;
    4314           [--flags &lt;flags&gt;]]</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 &lt;pattern&gt;</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 &lt;vm&gt; &lt;property&gt;
     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 &lt;vm&gt; &lt;property&gt; [&lt;value&gt;
     6323          [--flags &lt;flags&gt;]]</computeroutput>: This allows you to
     6324          set a guest property by specifying the key and value. If
    43166325          <computeroutput>&lt;value&gt;</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 &lt;vm&gt; &lt;pattern&gt; --timeout
    4351           &lt;timeout&gt;</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 &lt;vm&gt; &lt;property&gt;
    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 &lt;vm&gt; &lt;pattern&gt; --timeout
     6377          &lt;timeout&gt;</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 &lt;vm&gt;
     6387          &lt;property&gt;</computeroutput>: Deletes a formerly set
     6388          guest property.
     6389        </para>
     6390      </listitem>
     6391
     6392    </itemizedlist>
     6393
    43626394  </sect1>
    43636395
    43646396  <sect1 id="vboxmanage-guestcontrol">
     6397
    43656398    <title>VBoxManage guestcontrol</title>
    43666399
    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 &lt;uuid|vmname&gt; &lt;sub-command&gt;
     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 &lt;uuid|vmname&gt; &lt;sub-command&gt;
    43766417            [--username &lt;name&gt; ]
    43776418            [--passwordfile &lt;file&gt; | --password &lt;password&gt;]
     
    43806421    </screen>
    43816422
    4382     <para>The "common-options" are:</para>
    4383     <screen>
     6423    <para>
     6424      The "common-options" are:
     6425    </para>
     6426
     6427<screen>
    43846428           [--username &lt;name&gt; ]
    43856429           [--passwordfile &lt;file&gt; | --password &lt;password&gt;]
     
    43886432    </screen>
    43896433
    4390     <para>Where details of the common options for the first set of subcommands are:
    4391       <glosslist>
    4392 
    4393         <glossentry>
    4394           <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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 &lt;file&gt;|--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 &lt;domain&gt;</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 &lt;uuid|vmname&gt; 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>&lt;uuid|vmname&gt;</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 &lt;name&gt;</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          &lt;file&gt;|--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 &lt;domain&gt;</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 &lt;uuid|vmname&gt; run [common-options]
    44376535            --exe &lt;path to executable&gt; [--timeout &lt;msec&gt;]
    44386536           [-E|--putenv &lt;NAME&gt;[=&lt;VALUE&gt;]] [--unquoted-args]
     
    44436541            -- &lt;program/arg0&gt; [argument1] ... [argumentN]]
    44446542          </screen>
    4445             <glosslist>
    4446               <glossentry>
    4447                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;path to executable&gt;</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 &lt;msec&gt;</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 &lt;NAME&gt;=&lt;VALUE&gt;
    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>&lt;NAME&gt;=&lt;VALUE&gt;</computeroutput>.
    4477                   To unset a variable use:
    4478                   <computeroutput>&lt;NAME&gt;=</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 &rarr; 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 &rarr; CR + LF). Not yet implemented. Optional.</para>
    4535                 </glossdef>
    4536               </glossentry>
    4537 
    4538               <glossentry>
    4539                 <glossterm><computeroutput>[-- &lt;program/arg0&gt; [&lt;argument1&gt;] ... [&lt;argumentN&gt;]]</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 &lt;uuid|vmname&gt; start [common-options]
     6543
     6544        <variablelist>
     6545
     6546          <varlistentry>
     6547            <term>
     6548              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;path to
     6561              executable&gt;</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 &lt;msec&gt;</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 &lt;NAME&gt;=&lt;VALUE&gt;
     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>&lt;NAME&gt;=&lt;VALUE&gt;</computeroutput>.
     6605                To unset a variable use:
     6606                <computeroutput>&lt;NAME&gt;=</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>[-- &lt;program/arg0&gt;
     6720              [&lt;argument1&gt;] ...
     6721              [&lt;argumentN&gt;]]</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 &lt;uuid|vmname&gt; start [common-options]
    45866809           [--exe &lt;path to executable&gt;] [--timeout &lt;msec&gt;]
    45876810           [-E|--putenv &lt;NAME&gt;[=&lt;VALUE&gt;]] [--unquoted-args]
     
    45906813          </screen>
    45916814
    4592           <para>Where the options are: <glosslist>
    4593               <glossentry>
    4594                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;path to executable&gt;</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 &lt;msec&gt;</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 &lt;NAME&gt;=&lt;VALUE&gt;
    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>&lt;NAME&gt;=&lt;VALUE&gt;</computeroutput>.
    4623                   To unset a variable use:
    4624                   <computeroutput>&lt;NAME&gt;=</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>[-- &lt;program/arg0&gt; [&lt;argument1&gt;] ... [&lt;argumentN&gt;]]</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 &lt;uuid|vmname&gt; copyfrom [common-options]
     6815        <para>
     6816          Where the options are:
     6817        </para>
     6818
     6819        <variablelist>
     6820
     6821          <varlistentry>
     6822            <term>
     6823              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;path to
     6836              executable&gt;</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 &lt;msec&gt;</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 &lt;NAME&gt;=&lt;VALUE&gt;
     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>&lt;NAME&gt;=&lt;VALUE&gt;</computeroutput>.
     6880                To unset a variable use:
     6881                <computeroutput>&lt;NAME&gt;=</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>[-- &lt;program/arg0&gt;
     6937              [&lt;argument1&gt;] ...
     6938              [&lt;argumentN&gt;]]</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 &lt;uuid|vmname&gt; copyfrom [common-options]
    47027025           [--follow] [--R|recursive]
    47037026            --target-directory &lt;host-dst-dir&gt;
    47047027            &lt;guest-src0&gt; [&lt;guest-src1&gt; [...]] </screen>
    47057028
    4706           <para>Where the parameters are:<glosslist>
    4707               <glossentry>
    4708                 <glossterm><computeroutput>&lt;uid|vmname&gt;</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 &lt;host-dst-dir&gt;</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>&lt;guest-src0&gt; [&lt;guest-src1&gt; [...]]</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 &lt;uuid|vmname&gt; copyto [common-options]
     7029        <para>
     7030          Where the parameters are:
     7031        </para>
     7032
     7033        <variablelist>
     7034
     7035          <varlistentry>
     7036            <term>
     7037              <computeroutput>&lt;uid|vmname&gt;</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              &lt;host-dst-dir&gt;</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>&lt;guest-src0&gt; [&lt;guest-src1&gt;
     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 &lt;uuid|vmname&gt; copyto [common-options]
    47567116           [--follow] [--R|recursive]
    47577117            --target-directory &lt;guest-dst&gt;
    47587118            &lt;host-src0&gt; [&lt;host-src1&gt; [...]] </screen>
    47597119
    4760           <para>Where the parameters are:<glosslist>
    4761               <glossentry>
    4762                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;guest-dst&gt;</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>&lt;host-src0&gt; [&lt;host-src1&gt; [...]]</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>&lt;uuid|vmname&gt;</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              &lt;guest-dst&gt;</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>&lt;host-src0&gt; [&lt;host-src1&gt;
     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>
    48067202          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 &lt;uuid|vmname&gt;  md|mkdir|createdir|createdirectory [common-options]
     7203          (Note - only with Guest Additions 4.0 or later installed).
     7204        </para>
     7205
     7206<screen>VBoxManage guestcontrol &lt;uuid|vmname&gt;  md|mkdir|createdir|createdirectory [common-options]
    48107207            [--parents] [--mode &lt;mode&gt;]
    48117208            &lt;guest-dir0&gt; [&lt;guest-dir1&gt; [...]] </screen>
    48127209
    4813           <para>Where the parameters are: <glosslist>
    4814               <glossentry>
    4815                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;mode&gt;</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>&lt;guest-dir0&gt; [&lt;guest-dir1&gt; [...]]</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 &lt;uuid|vmname&gt; rmdir|removedir|removedirectory [common-options]
     7210        <para>
     7211          Where the parameters are:
     7212        </para>
     7213
     7214        <variablelist>
     7215
     7216          <varlistentry>
     7217            <term>
     7218              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;mode&gt;</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>&lt;guest-dir0&gt; [&lt;guest-dir1&gt;
     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 &lt;uuid|vmname&gt; rmdir|removedir|removedirectory [common-options]
    48647302           [--recursive|-R]
    48657303            &lt;guest-dir0&gt; [&lt;guest-dir1&gt; [...]]
    48667304          </screen>
    48677305
    4868           <para>Where the parameters are: <glosslist>
    4869               <glossentry>
    4870                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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>&lt;guest-dir0&gt; [&lt;guest-dir1&gt; [...]]</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 &lt;uuid|vmname&gt; rm|removefile [common-options]
     7306        <para>
     7307          Where the parameters are:
     7308        </para>
     7309
     7310        <variablelist>
     7311
     7312          <varlistentry>
     7313            <term>
     7314              <computeroutput>&lt;uuid|vmname&gt;</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>&lt;guest-dir0&gt; [&lt;guest-dir1&gt;
     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 &lt;uuid|vmname&gt; rm|removefile [common-options]
    49017365           [-f|--force]
    49027366            &lt;guest-file0&gt; [&lt;guest-file1&gt; [...]] </screen>
    49037367
    4904           <para>Where the parameters are: <glosslist>
    4905               <glossentry>
    4906                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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>&lt;guest-file0&gt; [&lt;guest-file1&gt; [...]]</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 &lt;uuid|vmname&gt; 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>&lt;uuid|vmname&gt;</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>&lt;guest-file0&gt; [&lt;guest-file1&gt;
     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 &lt;uuid|vmname&gt; mv|move|ren|rename [common-options]
    49377429           &lt;guest-source0&gt; [&lt;guest-source1&gt; [...]] &lt;guest-dest&gt;</screen>
    49387430
    4939           <para>Where the parameters are: <glosslist>
    4940               <glossentry>
    4941                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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>&lt;guest-source0&gt; [&lt;guest-source1&gt; [...]]</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>&lt;dest&gt;</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, &lt;dest&gt; 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 &lt;uuid|vmname&gt; mktemp|createtemp|createtemporary [common-options]
     7431        <para>
     7432          Where the parameters are:
     7433        </para>
     7434
     7435        <variablelist>
     7436
     7437          <varlistentry>
     7438            <term>
     7439              <computeroutput>&lt;uuid|vmname&gt;</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>&lt;guest-source0&gt;
     7452              [&lt;guest-source1&gt; [...]]</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>&lt;dest&gt;</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, &lt;dest&gt;
     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 &lt;uuid|vmname&gt; mktemp|createtemp|createtemporary [common-options]
    49777498           [--directory] [--secure] [--mode &lt;mode&gt;] [--tmpdir &lt;directory&gt;]
    49787499            &lt;template&gt;
    49797500            </screen>
    49807501
    4981           <para>The parameters are: <glosslist>
    4982               <glossentry>
    4983                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;template&gt; 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 &lt;mode&gt;</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 &lt;directory&gt;</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>&lt;template&gt;</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 &lt;uuid|vmname&gt; stat [common-options]
     7502        <para>
     7503          The parameters are:
     7504        </para>
     7505
     7506        <variablelist>
     7507
     7508          <varlistentry>
     7509            <term>
     7510              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;template&gt; 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 &lt;mode&gt;</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              &lt;directory&gt;</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>&lt;template&gt;</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 &lt;uuid|vmname&gt; stat [common-options]
    50427602           &lt;file0&gt; [&lt;file1&gt; [...]]</screen>
    50437603
    5044           <para>Where the parameters are: <glosslist>
    5045               <glossentry>
    5046                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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>&lt;file0&gt; [&lt;file1&gt; [...]]</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 &lt;uuid|vmname&gt; &lt;sub-command&gt;
     7604        <para>
     7605          Where the parameters are:
     7606        </para>
     7607
     7608        <variablelist>
     7609
     7610          <varlistentry>
     7611            <term>
     7612              <computeroutput>&lt;uuid|vmname&gt;</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>&lt;file0&gt; [&lt;file1&gt;
     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 &lt;uuid|vmname&gt; &lt;sub-command&gt;
    50687649           [-v|--verbose] [-q|quiet] ...
    50697650    </screen>
    50707651
    5071     <para>The "common-options" are:</para>
    5072     <screen>
     7652    <para>
     7653      The "common-options" are:
     7654    </para>
     7655
     7656<screen>
    50737657            [-v|--verbose] [-q|--quiet]
    50747658    </screen>
    50757659
    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 &lt;uuid|vmname&gt; 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 &lt;uuid|vmname&gt; list [common-opts]
    50987707           &lt;all|sessions|processes|files&gt; </screen>
    50997708
    5100           <para>Where the parameters are: <glosslist>
    5101             <glossentry>
    5102               <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;uuid|vmname&gt; closeprocess [common-options]
     7709        <para>
     7710          Where the parameters are:
     7711        </para>
     7712
     7713        <variablelist>
     7714
     7715          <varlistentry>
     7716            <term>
     7717              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;uuid|vmname&gt; closeprocess [common-options]
    51257751           --session-id &lt;ID&gt; | --session-name &lt;name or pattern&gt;
    51267752           &lt;PID0&gt; [&lt;PID1&gt; [...]] </screen>
    51277753
    5128           <para>Where the parameters are: <glosslist>
    5129             <glossentry>
    5130               <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;ID&gt;</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 &lt;name or pattern&gt;</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>&lt;PID0&gt; [&lt;PID1&gt; [...]]</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 &lt;uuid|vmname&gt; closesession [common-options]
     7754        <para>
     7755          Where the parameters are:
     7756        </para>
     7757
     7758        <variablelist>
     7759
     7760          <varlistentry>
     7761            <term>
     7762              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;ID&gt;</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 &lt;name or
     7787              pattern&gt;</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>&lt;PID0&gt; [&lt;PID1&gt;
     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 &lt;uuid|vmname&gt; closesession [common-options]
    51657823           --session-id &lt;ID&gt; | --session-name &lt;name or pattern&gt; | --all </screen>
    51667824
    5167           <para>Where the parameters are: <glosslist>
    5168             <glossentry>
    5169               <glossterm><computeroutput>&lt;uuid|vmname&gt;</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 &lt;ID&gt;</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 &lt;name or pattern&gt;</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 &lt;uuid|vmname&gt; updatega|updateadditions|updateguestadditions [common-options]
     7825        <para>
     7826          Where the parameters are:
     7827        </para>
     7828
     7829        <variablelist>
     7830
     7831          <varlistentry>
     7832            <term>
     7833              <computeroutput>&lt;uuid|vmname&gt;</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 &lt;ID&gt;</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 &lt;name or
     7859              pattern&gt;</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 &lt;uuid|vmname&gt; updatega|updateadditions|updateguestadditions
     7894           [common-options]
    52067895           [--source &lt;New .ISO path&gt;]
    52077896           [--wait-start]
    52087897           [-- &lt;argument0&gt; [&lt;argument1&gt; [...]]]</screen>
    52097898
    5210           <para>Where the parameters are: <glosslist>
    5211               <glossentry>
    5212                 <glossterm><computeroutput>&lt;uuid|vmname&gt;</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> &lt;New .ISO path&gt;</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>[-- &lt;argument0&gt; [&lt;argument1&gt; [...]]]</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 &lt;uuid|vmname&gt; watch [common-options]
     7899        <para>
     7900          Where the parameters are:
     7901        </para>
     7902
     7903        <variablelist>
     7904
     7905          <varlistentry>
     7906            <term>
     7907              <computeroutput>&lt;uuid|vmname&gt;</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> &lt;New .ISO
     7920              path&gt;
     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>[-- &lt;argument0&gt; [&lt;argument1&gt;
     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 &lt;uuid|vmname&gt; watch [common-options]
    52527984          </screen>
    5253           <para>Where the parameters are: <glosslist>
    5254             <glossentry>
    5255               <glossterm><computeroutput>&lt;uuid|vmname&gt;</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>&lt;uuid|vmname&gt;</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
    52638009  </sect1>
    52648010
    5265   <sect1 id="metrics">
     8011  <sect1 id="vboxmanage-metrics">
     8012
    52668013    <title>VBoxManage metrics</title>
    52678014
    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
    54188226  </sect1>
    54198227
    54208228  <sect1 id="vboxmanage-natnetwork">
     8229
    54218230    <title>VBoxManage natnetwork</title>
    54228231
    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 &lt;name&gt;
     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 &lt;name&gt;
    54478272                         [--network &lt;network&gt;]
    54488273                         [--enable|--disable]
     
    54558280    </screen>
    54568281
    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 &lt;name&gt;</computeroutput></glossterm>
    5466           <glossdef>
    5467             <para>Where &lt;name&gt; is the name of the new internal network interface on the host OS. </para>
    5468           </glossdef>
    5469         </glossentry>
    5470         <glossentry>
    5471           <glossterm><computeroutput>--network &lt;network&gt;</computeroutput></glossterm>
    5472           <glossdef>
    5473             <para>Where &lt;network&gt; 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 &lt;rule&gt;</computeroutput></glossterm>
    5492           <glossdef>
    5493             <para>Enables IPv4 port forwarding, rule specified by &lt;rule&gt;.</para>
    5494           </glossdef>
    5495         </glossentry>
    5496         <glossentry>
    5497           <glossterm><computeroutput>--loopback-4 &lt;rule&gt;</computeroutput></glossterm>
    5498           <glossdef>
    5499             <para>Enables IPv4 loopback interface, rule specified by &lt;rule&gt;.</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 &lt;rule&gt;</computeroutput></glossterm>
    5510           <glossdef>
    5511             <para>Enables IPv6 port forwarding, rule specified by &lt;rule&gt;.</para>
    5512           </glossdef>
    5513         </glossentry>
    5514         <glossentry>
    5515           <glossterm><computeroutput>--loopback-6 &lt;rule&gt;</computeroutput></glossterm>
    5516           <glossdef>
    5517             <para>Enables IPv6 loopback interface, rule specified by &lt;rule&gt;.</para>
    5518           </glossdef>
    5519         </glossentry>
    5520       </glosslist>
    5521     </para>
    5522 
    5523     <screen>VBoxManage natnetwork remove --netname &lt;name&gt; </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 &lt;name&gt;</computeroutput></glossterm>
    5532           <glossdef>
    5533             <para>Where &lt;name&gt; 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 &lt;name&gt;
     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 &lt;name&gt;</computeroutput>
     8295        </term>
     8296
     8297        <listitem>
     8298          <para>
     8299            Where &lt;name&gt; 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 &lt;network&gt;</computeroutput>
     8308        </term>
     8309
     8310        <listitem>
     8311          <para>
     8312            Where &lt;network&gt; 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 &lt;rule&gt;</computeroutput>
     8346        </term>
     8347
     8348        <listitem>
     8349          <para>
     8350            Enables IPv4 port forwarding, rule specified by
     8351            &lt;rule&gt;.
     8352          </para>
     8353        </listitem>
     8354      </varlistentry>
     8355
     8356      <varlistentry>
     8357        <term>
     8358          <computeroutput>--loopback-4 &lt;rule&gt;</computeroutput>
     8359        </term>
     8360
     8361        <listitem>
     8362          <para>
     8363            Enables IPv4 loopback interface, rule specified by
     8364            &lt;rule&gt;.
     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 &lt;rule&gt;</computeroutput>
     8385        </term>
     8386
     8387        <listitem>
     8388          <para>
     8389            Enables IPv6 port forwarding, rule specified by
     8390            &lt;rule&gt;.
     8391          </para>
     8392        </listitem>
     8393      </varlistentry>
     8394
     8395      <varlistentry>
     8396        <term>
     8397          <computeroutput>--loopback-6 &lt;rule&gt;</computeroutput>
     8398        </term>
     8399
     8400        <listitem>
     8401          <para>
     8402            Enables IPv6 loopback interface, rule specified by
     8403            &lt;rule&gt;.
     8404          </para>
     8405        </listitem>
     8406      </varlistentry>
     8407
     8408    </variablelist>
     8409
     8410<screen>VBoxManage natnetwork remove --netname &lt;name&gt; </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 &lt;name&gt;</computeroutput>
     8423        </term>
     8424
     8425        <listitem>
     8426          <para>
     8427            Where &lt;name&gt; 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 &lt;name&gt;
    55418437                            [--network &lt;network&gt;]
    55428438                            [--enable|--disable]
     
    55498445    </screen>
    55508446
    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 &lt;name&gt;</computeroutput></glossterm>
    5558           <glossdef>
    5559             <para>Where &lt;name&gt; specifies an existing NAT network service.</para>
    5560           </glossdef>
    5561         </glossentry>
    5562         <glossentry>
    5563           <glossterm><computeroutput>--network &lt;network&gt;</computeroutput></glossterm>
    5564           <glossdef>
    5565             <para>Where &lt;network&gt; 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 &lt;rule&gt;</computeroutput></glossterm>
    5583           <glossdef>
    5584             <para>Enables IPv4 port forwarding, rule specified by &lt;rule&gt;.</para>
    5585           </glossdef>
    5586         </glossentry>
    5587         <glossentry>
    5588           <glossterm><computeroutput>--loopback-4 &lt;rule&gt;</computeroutput></glossterm>
    5589           <glossdef>
    5590             <para>Enables IPv4 loopback interface, rule specified by &lt;rule&gt;.</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 &lt;rule&gt;</computeroutput></glossterm>
    5601           <glossdef>
    5602             <para>Enables IPv6 port forwarding, rule specified by &lt;rule&gt;.</para>
    5603           </glossdef>
    5604         </glossentry>
    5605         <glossentry>
    5606           <glossterm><computeroutput>--loopback-6 &lt;rule&gt;</computeroutput></glossterm>
    5607           <glossdef>
    5608             <para>Enables IPv6 loopback interface, rule specified by &lt;rule&gt;.</para>
    5609           </glossdef>
    5610         </glossentry>
    5611       </glosslist>
    5612     </para>
    5613 
    5614     <screen>VBoxManage natnetwork start --netname &lt;name&gt;
     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 &lt;name&gt;</computeroutput>
     8458        </term>
     8459
     8460        <listitem>
     8461          <para>
     8462            Where &lt;name&gt; specifies an existing NAT network
     8463            service.
     8464          </para>
     8465        </listitem>
     8466      </varlistentry>
     8467
     8468      <varlistentry>
     8469        <term>
     8470          <computeroutput>--network &lt;network&gt;</computeroutput>
     8471        </term>
     8472
     8473        <listitem>
     8474          <para>
     8475            Where &lt;network&gt; 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 &lt;rule&gt;</computeroutput>
     8508        </term>
     8509
     8510        <listitem>
     8511          <para>
     8512            Enables IPv4 port forwarding, rule specified by
     8513            &lt;rule&gt;.
     8514          </para>
     8515        </listitem>
     8516      </varlistentry>
     8517
     8518      <varlistentry>
     8519        <term>
     8520          <computeroutput>--loopback-4 &lt;rule&gt;</computeroutput>
     8521        </term>
     8522
     8523        <listitem>
     8524          <para>
     8525            Enables IPv4 loopback interface, rule specified by
     8526            &lt;rule&gt;.
     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 &lt;rule&gt;</computeroutput>
     8547        </term>
     8548
     8549        <listitem>
     8550          <para>
     8551            Enables IPv6 port forwarding, rule specified by
     8552            &lt;rule&gt;.
     8553          </para>
     8554        </listitem>
     8555      </varlistentry>
     8556
     8557      <varlistentry>
     8558        <term>
     8559          <computeroutput>--loopback-6 &lt;rule&gt;</computeroutput>
     8560        </term>
     8561
     8562        <listitem>
     8563          <para>
     8564            Enables IPv6 loopback interface, rule specified by
     8565            &lt;rule&gt;.
     8566          </para>
     8567        </listitem>
     8568      </varlistentry>
     8569
     8570    </variablelist>
     8571
     8572<screen>VBoxManage natnetwork start --netname &lt;name&gt;
    56158573    </screen>
    56168574
    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 &lt;name&gt;</computeroutput></glossterm>
    5624           <glossdef>
    5625             <para>Where &lt;name&gt; specifies an existing NAT network service.</para>
    5626           </glossdef>
    5627         </glossentry>
    5628       </glosslist>
    5629     </para>
    5630 
    5631     <screen>VBoxManage natnetwork stop --netname &lt;name&gt;
     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 &lt;name&gt;</computeroutput>
     8586        </term>
     8587
     8588        <listitem>
     8589          <para>
     8590            Where &lt;name&gt; specifies an existing NAT network
     8591            service.
     8592          </para>
     8593        </listitem>
     8594      </varlistentry>
     8595
     8596    </variablelist>
     8597
     8598<screen>VBoxManage natnetwork stop --netname &lt;name&gt;
    56328599    </screen>
    56338600
    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 &lt;name&gt;</computeroutput></glossterm>
    5641           <glossdef>
    5642             <para>Where &lt;name&gt; specifies an existing NAT network service.</para>
    5643           </glossdef>
    5644         </glossentry>
    5645       </glosslist>
    5646     </para>
    5647 
    5648     <screen>VBoxManage natnetwork list [&lt;pattern&gt;] </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>[&lt;pattern&gt;]</computeroutput></glossterm>
    5657           <glossdef>
    5658             <para>Where &lt;pattern&gt; 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 &lt;name&gt;</computeroutput>
     8612        </term>
     8613
     8614        <listitem>
     8615          <para>
     8616            Where &lt;name&gt; specifies an existing NAT network
     8617            service.
     8618          </para>
     8619        </listitem>
     8620      </varlistentry>
     8621
     8622    </variablelist>
     8623
     8624<screen>VBoxManage natnetwork list [&lt;pattern&gt;] </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>[&lt;pattern&gt;]</computeroutput>
     8637        </term>
     8638
     8639        <listitem>
     8640          <para>
     8641            Where &lt;pattern&gt; is optional filtering pattern.
     8642          </para>
     8643        </listitem>
     8644      </varlistentry>
     8645
     8646    </variablelist>
     8647
    56638648  </sect1>
    56648649
    56658650  <sect1 id="vboxmanage-hostonlyif">
     8651
    56668652    <title>VBoxManage hostonlyif</title>
    56678653
    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 "&lt;name&gt;"</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&lt;N&gt; 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&lt;N&gt;</computeroutput></glossterm>
    5692         <glossdef>
    5693           <para>Removes a vboxnet&lt;N&gt; 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 "&lt;name&gt;"</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&lt;N&gt; 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&lt;N&gt;</computeroutput>
     8698        </term>
     8699
     8700        <listitem>
     8701          <para>
     8702            Removes a vboxnet&lt;N&gt; interface from the host OS.
     8703          </para>
     8704        </listitem>
     8705      </varlistentry>
     8706
     8707    </variablelist>
    56978708
    56988709  </sect1>
    56998710
    57008711  <sect1 id="vboxmanage-dhcpserver">
     8712
    57018713    <title>VBoxManage dhcpserver</title>
    57028714
    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 &lt;network_name&gt;</computeroutput>, where
    5714           <computeroutput>&lt;network_name&gt;</computeroutput> is the same
    5715           network name you used with <computeroutput>VBoxManage modifyvm
    5716           &lt;vmname&gt; --intnet&lt;X&gt;
    5717           &lt;network_name&gt;</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 &lt;hostonly_if_name&gt;</computeroutput> instead, where
    5724           <computeroutput>&lt;hostonly_if_name&gt;</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          &lt;network_name&gt;</computeroutput>, where
     8735          <computeroutput>&lt;network_name&gt;</computeroutput> is the
     8736          same network name you used with <computeroutput>VBoxManage
     8737          modifyvm &lt;vmname&gt; --intnet&lt;X&gt;
     8738          &lt;network_name&gt;</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          &lt;hostonly_if_name&gt;</computeroutput> instead, where
     8748          <computeroutput>&lt;hostonly_if_name&gt;</computeroutput> is
     8749          the same host-only interface name you used with
    57268750          <computeroutput>VBoxManage modifyvm &lt;vmname&gt;
    57278751          --hostonlyadapter&lt;X&gt;
    5728           &lt;hostonly_if_name&gt;</computeroutput>.</para>
    5729 
    5730           <para>Alternatively, you can also use the
     8752          &lt;hostonly_if_name&gt;</computeroutput>.
     8753        </para>
     8754
     8755        <para>
     8756          Alternatively, you can also use the
    57318757          <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     &lt;network_name&gt;</computeroutput> or <computeroutput>--ifname
    5770     &lt;hostonly_if_name&gt;</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      &lt;network_name&gt;</computeroutput> or <computeroutput>--ifname
     8815      &lt;hostonly_if_name&gt;</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
    57788828  </sect1>
    57798829
    57808830  <sect1 id="vboxmanage-usbdevsource">
     8831
    57818832    <title>VBoxManage usbdevsource</title>
    57828833
    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 &lt;source name&gt;
     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 &lt;source name&gt;
    57898844                            --backend &lt;backend&gt;
    57908845                            --address &lt;address&gt;
    57918846    </screen>
    57928847
    5793     <para>Where the command line options are:<itemizedlist>
    5794         <listitem>
    5795           <para>&lt;source name&gt; specifies the ID of the 'source' USB
    5796           device to be added. Mandatory.</para>
    5797         </listitem>
    5798         <listitem>
    5799           <para>--backend &lt;backend&gt; specifies the USB proxy service
    5800           backend to use. Mandatory.</para>
    5801         </listitem>
    5802         <listitem>
    5803           <para>--address &lt;address&gt; 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 &lt;source name&gt;
     8848    <para>
     8849      Where the command line options are:
     8850    </para>
     8851
     8852    <itemizedlist>
     8853
     8854      <listitem>
     8855        <para>
     8856          &lt;source name&gt; specifies the ID of the 'source' USB
     8857          device to be added. Mandatory.
     8858        </para>
     8859      </listitem>
     8860
     8861      <listitem>
     8862        <para>
     8863          --backend &lt;backend&gt; specifies the USB proxy service
     8864          backend to use. Mandatory.
     8865        </para>
     8866      </listitem>
     8867
     8868      <listitem>
     8869        <para>
     8870          --address &lt;address&gt; 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 &lt;source name&gt;
    58118882    </screen>
    58128883
    5813     <para>Where the command line options are:<itemizedlist>
    5814         <listitem>
    5815           <para>&lt;source name&gt; 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          &lt;source name&gt; specifies the ID of the 'source' USB
     8893          device to be removed. Mandatory.
     8894        </para>
     8895      </listitem>
     8896
     8897    </itemizedlist>
     8898
    58198899  </sect1>
    58208900
    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
    58268909</chapter>
  • trunk/doc/manual/en_US/user_VirtualBoxAPI.xml

    r69633 r73276  
    11<?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]>
    47<chapter id="VirtualBoxAPI">
    5   <title>VirtualBox programming interfaces</title>
    68
    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.
    1117  </para>
    1218
    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>
    1624
    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
    2538</chapter>
  • trunk/doc/manual/user_ChangeLogImpl.xml

    r71799 r73276  
    2828                           So, we use chapter and xpointer="xpointer(/chapter/)" with xi:include. -->
    2929
    30    <sect1>
     30  <sect1>
    3131    <title>Version 5.3.0 (2018-xx-xx)</title>
    3232
     
    4141
    4242    </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>
    4544
    4645    <itemizedlist>
     
    5352      <listitem>
    5453        <para>Guest Control: various new APIs and features were implemented
    55           (see SDK documentation for more)</para>
    56       </listitem>
    57 
    58       <listitem>
     54        (see SDK documentation for more)</para>
     55      </listitem>
     56
     57    <listitem>
    5958        <para>Networking: Added a workaround for older guests which do not enable
    60           bus mastering for the virtio PCI device</para>
     59        bus mastering for the virtio PCI device</para>
    6160      </listitem>
    6261
     
    7372
    7473      <listitem>
    75         <para>GUI: fixed occasional screen corruption when host screen
    76           resolution is changed</para>
     74        <para>GUI: fixed occasional screen corruption when host screen resolution
     75          is changed</para>
    7776      </listitem>
    7877
     
    432431      </listitem>
    433432
    434       <listitem>
     433    <listitem>
    435434        <para>Audio: fixed playback with ALSA backend (5.1.28 regression)</para>
    436435      </listitem>
  • trunk/src/VBox/Runtime/common/fs/isomakercmd-man.xml

    r69633 r73276  
    2222    terms and conditions of either the GPL or the CDDL or both.
    2323 -->
    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">
    2525<refentry id="viso" lang="en">
    2626
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette