VirtualBox

source: vbox/trunk/doc/manual/en_US/user_Troubleshooting.xml@ 98108

Last change on this file since 98108 was 98103, checked in by vboxsync, 23 months ago

Copyright year updates by scm.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision
  • Property svn:mergeinfo set to (toggle deleted branches)
    /branches/VBox-4.0/doc/manual/en_US/user_Troubleshooting.xml71214
    /branches/VBox-4.2/doc/manual/en_US/user_Troubleshooting.xml91503-91504,​91506-91508,​91510,​91514-91515,​91521
    /branches/VBox-4.3/doc/manual/en_US/user_Troubleshooting.xml91223
    /branches/VBox-4.3/trunk/doc/manual/en_US/user_Troubleshooting.xml91223
    /branches/dsen/gui/doc/manual/en_US/user_Troubleshooting.xml79076-79078,​79089,​79109-79110,​79112-79113,​79127-79130,​79134,​79141,​79151,​79155,​79157-79159,​79193,​79197
    /branches/dsen/gui2/doc/manual/en_US/user_Troubleshooting.xml79224,​79228,​79233,​79235,​79258,​79262-79263,​79273,​79341,​79345,​79354,​79357,​79387-79388,​79559-79569,​79572-79573,​79578,​79581-79582,​79590-79591,​79598-79599,​79602-79603,​79605-79606,​79632,​79635,​79637,​79644
    /branches/dsen/gui3/doc/manual/en_US/user_Troubleshooting.xml79645-79692
File size: 67.5 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3 Copyright (C) 2006-2023 Oracle and/or its affiliates.
4
5 This file is part of VirtualBox base platform packages, as
6 available from https://www.virtualbox.org.
7
8 This program is free software; you can redistribute it and/or
9 modify it under the terms of the GNU General Public License
10 as published by the Free Software Foundation, in version 3 of the
11 License.
12
13 This program is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, see <https://www.gnu.org/licenses>.
20
21 SPDX-License-Identifier: GPL-3.0-only
22-->
23<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
24"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"[
25<!ENTITY % all.entities SYSTEM "all-entities.ent">
26%all.entities;
27]>
28<chapter id="Troubleshooting">
29
30 <title>Troubleshooting</title>
31
32 <para>
33 This chapter provides answers to commonly asked questions. In order
34 to improve your user experience with &product-name;, it is
35 recommended to read this section to learn more about common pitfalls
36 and get recommendations on how to use the product.
37 </para>
38
39 <sect1 id="ts_procs-tools">
40
41 <title>Procedures and Tools</title>
42
43 <sect2 id="ts_categorize-isolate">
44
45 <title>Categorizing and Isolating Problems</title>
46
47 <para>
48 More often than not, a virtualized guest behaves like a physical
49 system. Any problems that a physical machine would encounter, a
50 virtual machine will encounter as well. If, for example,
51 Internet connectivity is lost due to external issues, virtual
52 machines will be affected just as much as physical ones.
53 </para>
54
55 <para>
56 If a true &product-name; problem is encountered, it helps to
57 categorize and isolate the problem first. Here are some of the
58 questions that should be answered before reporting a problem:
59 </para>
60
61 <itemizedlist>
62
63 <listitem>
64 <para>
65 Is the problem specific to a certain guest OS? Or a specific
66 release of a guest OS? Especially with Linux guest related
67 problems, the issue may be specific to a certain
68 distribution and version of Linux.
69 </para>
70 </listitem>
71
72 <listitem>
73 <para>
74 Is the problem specific to a certain host OS? Problems are
75 usually not host OS specific, because most of the
76 &product-name; code base is shared across all supported
77 platforms, but especially in the areas of networking and USB
78 support, there are significant differences between host
79 platforms. Some GUI related issues are also host specific.
80 </para>
81 </listitem>
82
83 <listitem>
84 <para>
85 Is the problem specific to certain host hardware? This
86 category of issues is typically related to the host CPU.
87 Because of significant differences between VT-x and AMD-V,
88 problems may be specific to one or the other technology. The
89 exact CPU model may also make a difference because different
90 CPUs support different features, which may affect certain
91 aspects of guest CPU operation.
92 </para>
93 </listitem>
94
95 <listitem>
96 <para>
97 Is the problem specific to guest SMP? That is, is it related
98 to the number of virtual CPUs (VCPUs) in the guest? Using
99 more than one CPU usually significantly affects the internal
100 operation of a guest OS.
101 </para>
102 </listitem>
103
104 <listitem>
105 <para>
106 Is the problem specific to the Guest Additions? In some
107 cases, this is obvious, such as a shared folders problem. In
108 other cases such as display problems, it may be less
109 obvious. If the problem is Guest Additions specific, is it
110 also specific to a certain version of the Guest Additions?
111 </para>
112 </listitem>
113
114 <listitem>
115 <para>
116 Is the problem specific to a certain environment? Some
117 problems are related to a particular environment external to
118 the VM. This usually involves network setup. Certain
119 configurations of external servers such as DHCP or PXE may
120 expose problems which do not occur with other, similar
121 servers.
122 </para>
123 </listitem>
124
125 <listitem>
126 <para>
127 Is the problem a regression? Knowing that an issue is a
128 regression usually makes it significantly easier to find the
129 solution. In this case, it is crucial to know which version
130 is affected and which is not.
131 </para>
132 </listitem>
133
134 </itemizedlist>
135
136 </sect2>
137
138 <sect2 id="collect-debug-info">
139
140 <title>Collecting Debugging Information</title>
141
142 <para>
143 For problem determination, it is often important to collect
144 debugging information which can be analyzed by &product-name;
145 support. This section contains information about what kind of
146 information can be obtained.
147 </para>
148
149 <para>
150 Every time &product-name; starts up a VM, a so-called
151 <emphasis>release log file</emphasis> is created, containing
152 lots of information about the VM configuration and runtime
153 events. The log file is called <filename>VBox.log</filename> and
154 resides in the VM log file folder, which is
155 <filename>$HOME/VirtualBox
156 VMs/<replaceable>VM-name</replaceable>/Logs</filename> by
157 default.
158 </para>
159
160 <para>
161 When starting a VM, the configuration file of the last run will
162 be renamed to <filename>.1</filename>, up to
163 <filename>.3</filename>. Sometimes when there is a problem, it
164 is useful to have a look at the logs. Also when requesting
165 support for &product-name;, supplying the corresponding log file
166 is mandatory.
167 </para>
168
169 <para>
170 For convenience, for each virtual machine, &vbox-mgr; can show
171 these logs in a window. Select a virtual machine from the
172 machine list on the left and click
173 <emphasis role="bold">Logs</emphasis> in the machine tools menu.
174 </para>
175
176 <para>
177 The release log file, <filename>VBox.log</filename>, contains a
178 wealth of diagnostic information, such as Host OS type and
179 version, &product-name; version and build. It also includes a
180 complete dump of the guest's configuration (CFGM), detailed
181 information about the host CPU type and supported features,
182 whether hardware virtualization is enabled, information about
183 VT-x/AMD-V setup, state transitions (such as creating, running,
184 paused, stopping), guest BIOS messages, Guest Additions
185 messages, device-specific log entries and, at the end of
186 execution, final guest state and condensed statistics.
187 </para>
188
189 <para>
190 In case of crashes, it is very important to collect
191 <emphasis>crash dumps</emphasis>. This is true for both host and
192 guest crashes. For information about enabling core dumps on
193 Linux, Oracle Solaris, and macOS systems, refer to the following
194 core dump article on the &product-name; website:
195 </para>
196
197 <para>
198 <ulink url="http://www.virtualbox.org/wiki/Core_dump" />.
199 </para>
200
201 <para>
202 You can also use <command>VBoxManage debugvm</command> to create
203 a dump of a complete virtual machine. See
204 <xref linkend="vboxmanage-debugvm" />.
205 </para>
206
207 <para>
208 For network related problems, it is often helpful to capture a
209 trace of network traffic. If the traffic is routed through an
210 adapter on the host, it is possible to use Wireshark or a
211 similar tool to capture the traffic there. However, this often
212 also includes a lot of traffic unrelated to the VM.
213 </para>
214
215 <para>
216 &product-name; provides an ability to capture network traffic
217 only on a specific VM's network adapter. Refer to the following
218 network tracing article on the &product-name; website for
219 information on enabling this capture:
220 </para>
221
222 <para>
223 <ulink url="http://www.virtualbox.org/wiki/Network_tips" />.
224 </para>
225
226 <para>
227 The trace files created by &product-name; are in
228 <filename>.pcap</filename> format and can be easily analyzed
229 with Wireshark.
230 </para>
231
232 </sect2>
233
234 <sect2 id="ts_vboxbugreport">
235
236 <title>Using the VBoxBugReport Command to Collect Debug Information
237 Automatically</title>
238
239 <para>
240 The <command>VBoxBugReport</command> command is used to collect
241 debug information automatically for an &product-name;
242 installation. This command can be useful when you need to gather
243 information to send to Oracle Support.
244 </para>
245
246 <para>
247 The following examples show how to use
248 <command>VBoxBugReport</command>.
249 </para>
250
251 <para>
252 By default, the command collects <command>VBoxSVC</command>
253 process logs, device settings, and global configuration data for
254 an &product-name; host.
255 </para>
256
257<screen>$ VBoxBugReport
258 ...
259 0% - collecting VBoxSVC.log.10...
260 7% - collecting VBoxSVC.log.9...
261 ...
262 64% - collecting VBoxSVC.log.1...
263 71% - collecting VBoxSVC.log...
264 78% - collecting VirtualBox.xml...
265 85% - collecting HostUsbDevices...
266 92% - collecting HostUsbFilters...
267100% - compressing...
268
269Report was written to '2019-03-26-13-32-02-bugreport.tgz'</screen>
270
271 <para>
272 The results are saved as a compressed tar file archive in the
273 same directory where the command is run.
274 </para>
275
276 <para>
277 To specify a different output file location:
278 </para>
279
280<screen>$ VBoxBugReport --output ~/debug/bug004.tgz</screen>
281
282 <para>
283 To output all debug information to a single text file, rather
284 than a <filename>tgz</filename> file:
285 </para>
286
287<screen>$ VBoxBugReport --text</screen>
288
289 <para>
290 To collect information for a specific VM, called
291 <literal>Windows_10</literal>:
292 </para>
293
294<screen>$ VBoxBugReport Windows_10</screen>
295
296 <para>
297 This command collects machine settings, guest properties, and
298 log files for the specified VM. Global configuration information
299 for the host is also included.
300 </para>
301
302 <para>
303 To collect information for several VMs, called
304 <literal>Windows_7</literal>, <literal>Windows_8</literal>, and
305 <literal>Windows_10</literal>:
306 </para>
307
308<screen>$ VBoxBugReport Windows_7 Windows_8 Windows_10</screen>
309
310 <para>
311 To collect information for all VMs:
312 </para>
313
314<screen>$ VBoxBugReport --all</screen>
315
316 <para>
317 To show a full list of the available command options, run
318 <command>VBoxBugReport --help</command>.
319 </para>
320
321 </sect2>
322
323 <sect2 id="ts_debugger">
324
325 <title>The Built-In VM Debugger</title>
326
327 <para>
328 &product-name; includes a built-in VM debugger, which advanced
329 users may find useful. This debugger enables you to examine and,
330 to some extent, control the VM state.
331 </para>
332
333 <warning>
334 <para>
335 Use the VM debugger at your own risk. There is no support for
336 it, and the following documentation is only made available for
337 advanced users with a very high level of familiarity with the
338 x86/AMD64 machine instruction set, as well as detailed
339 knowledge of the PC architecture. A degree of familiarity with
340 the internals of the guest OS in question may also be very
341 helpful.
342 </para>
343 </warning>
344
345 <para>
346 The VM debugger is available in all regular production versions
347 of &product-name;, but it is disabled by default because the
348 average user will have little use for it. There are two ways to
349 access the debugger:
350 </para>
351
352 <itemizedlist>
353
354 <listitem>
355 <para>
356 Using a debugger console window displayed alongside the VM
357 </para>
358 </listitem>
359
360 <listitem>
361 <para>
362 Using the <command>telnet</command> protocol on port 5000
363 </para>
364 </listitem>
365
366 </itemizedlist>
367
368 <para>
369 The debugger can be enabled in the following ways:
370 </para>
371
372 <itemizedlist>
373
374 <listitem>
375 <para>
376 Start the VM directly using <command>VirtualBoxVM
377 --startvm</command>, with an additional
378 <option>--dbg</option>, <option>--debug</option>, or
379 <option>--debug-command-line</option> argument. See the
380 <command>VirtualBoxVM --help</command> command usage help
381 for details.
382 </para>
383 </listitem>
384
385 <listitem>
386 <para>
387 Set the <literal>VBOX_GUI_DBG_ENABLED</literal> or
388 <literal>VBOX_GUI_DBG_AUTO_SHOW</literal> environment
389 variable to <literal>true</literal> before launching the
390 &product-name; process. Setting these variables, only their
391 presence is checked, is effective even when the first
392 &product-name; process is the VM selector window. VMs
393 subsequently launched from the selector will have the
394 debugger enabled.
395 </para>
396 </listitem>
397
398 <listitem>
399 <para>
400 Set the <literal>GUI/Dbg/Enabled</literal> extra data item
401 to <literal>true</literal> before launching the VM. This can
402 be set globally or on a per VM basis.
403 </para>
404 </listitem>
405
406 </itemizedlist>
407
408 <para>
409 A new <emphasis role="bold">Debug</emphasis> menu entry is added
410 to the &product-name; application. This menu enables the user to
411 open the debugger console.
412 </para>
413
414 <para>
415 The VM debugger command syntax is loosely modeled on Microsoft
416 and IBM debuggers used on DOS, OS/2, and Windows. Users familiar
417 with symdeb, CodeView, or the OS/2 kernel debugger will find the
418 &product-name; VM debugger familiar.
419 </para>
420
421 <para>
422 The most important command is <command>help</command>. This will
423 print brief usage help for all debugger commands. The set of
424 commands supported by the VM debugger changes frequently and the
425 <command>help</command> command is always up-to-date.
426 </para>
427
428 <para>
429 A brief summary of frequently used commands is as follows:
430 </para>
431
432 <itemizedlist>
433
434 <listitem>
435 <para>
436 <command>stop</command>: Stops the VM execution and enables
437 single stepping
438 </para>
439 </listitem>
440
441 <listitem>
442 <para>
443 <command>g</command>: Continue VM execution
444 </para>
445 </listitem>
446
447 <listitem>
448 <para>
449 <command>t</command>: Single step an instruction
450 </para>
451 </listitem>
452
453 <listitem>
454 <para>
455 <command>rg</command>, <command>rh</command>, and
456 <command>r</command>: Print the guest, hypervisor, and
457 current registers
458 </para>
459 </listitem>
460
461 <listitem>
462 <para>
463 <command>kg</command>, <command>kh</command>, and
464 <command>k</command>: Print the guest, hypervisor, and
465 current call stack
466 </para>
467 </listitem>
468
469 <listitem>
470 <para>
471 <command>da</command>, <command>db</command>,
472 <command>dw</command>, <command>dd</command>,
473 <command>dq</command>: Print memory contents as ASCII,
474 bytes, words, dwords, and qwords
475 </para>
476 </listitem>
477
478 <listitem>
479 <para>
480 <command>u</command>: Unassemble memory
481 </para>
482 </listitem>
483
484 <listitem>
485 <para>
486 <command>dg</command>: Print the guest's GDT
487 </para>
488 </listitem>
489
490 <listitem>
491 <para>
492 <command>di</command>: Print the guest's IDT
493 </para>
494 </listitem>
495
496 <listitem>
497 <para>
498 <command>dl</command>: Print the guest's LDT
499 </para>
500 </listitem>
501
502 <listitem>
503 <para>
504 <command>dt</command>: Print the guest's TSS
505 </para>
506 </listitem>
507
508 <listitem>
509 <para>
510 <command>dp*</command>: Print the guest's page table
511 structures
512 </para>
513 </listitem>
514
515 <listitem>
516 <para>
517 <command>bp</command> and <command>br</command>: Set a
518 normal and recompiler breakpoint
519 </para>
520 </listitem>
521
522 <listitem>
523 <para>
524 <command>bl</command>: List breakpoints
525 </para>
526 </listitem>
527
528 <listitem>
529 <para>
530 <command>bc</command>: Clear a breakpoint
531 </para>
532 </listitem>
533
534 <listitem>
535 <para>
536 <command>writecore</command>: Write a VM core file to disk.
537 See <xref linkend="ts_guest-core-format" />
538 </para>
539 </listitem>
540
541 </itemizedlist>
542
543 <para>
544 See the built-in <command>help</command> for other available
545 commands.
546 </para>
547
548 <para>
549 The VM debugger supports symbolic debugging, although symbols
550 for guest code are often not available. For Oracle Solaris
551 guests, the <command>detect</command> command automatically
552 determines the guest OS version and locates kernel symbols in
553 guest's memory. Symbolic debugging is then available. For Linux
554 guests, the <command>detect</command> commands also determines
555 the guest OS version, but there are no symbols in the guest's
556 memory. Kernel symbols are available in the file
557 <filename>/proc/kallsyms</filename> on Linux guests. This file
558 must be copied to the host, for example using
559 <command>scp</command>. The <command>loadmap</command> debugger
560 command can be used to make the symbol information available to
561 the VM debugger. Note that the <filename>kallsyms</filename>
562 file contains the symbols for the currently loaded modules. If
563 the guest's configuration changes, the symbols will change as
564 well and must be updated.
565 </para>
566
567 <para>
568 For all guests, a simple way to verify that the correct symbols
569 are loaded is the <command>k</command> command. The guest is
570 normally idling and it should be clear from the symbolic
571 information that the guest operating system's idle loop is being
572 executed.
573 </para>
574
575 <para>
576 Another group of debugger commands is the set of
577 <command>info</command> commands. Running <command>info
578 help</command> provides complete usage information. The
579 information commands provide ad-hoc data pertinent to various
580 emulated devices and aspects of the VMM. There is no general
581 guideline for using the <command>info</command> commands, the
582 right command to use depends entirely on the problem being
583 investigated. Some of the <command>info</command> commands are
584 as follows:
585 </para>
586
587 <itemizedlist>
588
589 <listitem>
590 <para>
591 <command>cfgm</command>: Print a branch of the configuration
592 tree
593 </para>
594 </listitem>
595
596 <listitem>
597 <para>
598 <command>cpuid</command>: Display the guest CPUID leaves
599 </para>
600 </listitem>
601
602 <listitem>
603 <para>
604 <command>ioport</command>: Print registered I/O port ranges
605 </para>
606 </listitem>
607
608 <listitem>
609 <para>
610 <command>mmio</command>: Print registered MMIO ranges
611 </para>
612 </listitem>
613
614 <listitem>
615 <para>
616 <command>mode</command>: Print the current paging mode
617 </para>
618 </listitem>
619
620 <listitem>
621 <para>
622 <command>pit</command>: Print the i8254 PIT state
623 </para>
624 </listitem>
625
626 <listitem>
627 <para>
628 <command>pic</command>: Print the i8259A PIC state
629 </para>
630 </listitem>
631
632 <listitem>
633 <para>
634 <command>ohci</command>, <command>ehci</command>,
635 <command>xhci</command>: Print a subset of the OHCI, EHCI,
636 and xHCI USB controller state
637 </para>
638 </listitem>
639
640 <listitem>
641 <para>
642 <command>pcnet0</command>: Print the PCnet state
643 </para>
644 </listitem>
645
646 <listitem>
647 <para>
648 <command>vgatext</command>: Print the contents of the VGA
649 framebuffer formatted as standard text mode
650 </para>
651 </listitem>
652
653 <listitem>
654 <para>
655 <command>timers</command>: Print all VM timers
656 </para>
657 </listitem>
658
659 </itemizedlist>
660
661 <para>
662 The output of the <command>info</command> commands generally
663 requires in-depth knowledge of the emulated device or
664 &product-name; VMM internals. However, when used properly, the
665 information provided can be invaluable.
666 </para>
667
668 </sect2>
669
670 <sect2 id="ts_guest-core-format">
671
672 <title>VM Core Format</title>
673
674 <para>
675 &product-name; uses the 64-bit ELF format for its VM core files
676 created by <command>VBoxManage debugvm</command>, see
677 <xref linkend="vboxmanage-debugvm" />. The VM core file contain
678 the memory and CPU dumps of the VM and can be useful for
679 debugging your guest OS. The 64-bit ELF object format
680 specification can be obtained at:
681 </para>
682
683 <para>
684 <ulink url="http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf" />.
685 </para>
686
687 <para>
688 The overall layout of the VM core format is as follows:
689 </para>
690
691<screen>[ ELF 64 Header]
692[ Program Header, type PT_NOTE ]
693 &rarr; offset to COREDESCRIPTOR
694[ Program Header, type PT_LOAD ] - one for each contiguous physical memory range
695 &rarr; Memory offset of range
696 &rarr; File offset
697[ Note Header, type NT_VBOXCORE ]
698[ COREDESCRIPTOR ]
699 &rarr; Magic
700 &rarr; VM core file version
701 &rarr; VBox version
702 &rarr; Number of vCPUs etc.
703[ Note Header, type NT_VBOXCPU ] - one for each vCPU
704[ vCPU 1 Note Header ]
705 [ DBGFCORECPU - vCPU 1 dump ]
706[ Additional Notes + Data ] - currently unused
707[ Memory dump ]</screen>
708
709 <para>
710 The memory descriptors contain physical addresses relative to
711 the guest and not virtual addresses. Regions of memory such as
712 MMIO regions are not included in the core file.
713 </para>
714
715 <para>
716 The relevant data structures and definitions can be found in the
717 &product-name; sources under the following header files:
718 <filename>include/VBox/dbgfcorefmt.h</filename>,
719 <filename>include/iprt/x86.h</filename> and
720 <filename>src/VBox/Runtime/include/internal/ldrELFCommon.h</filename>.
721 </para>
722
723 <para>
724 The VM core file can be inspected using
725 <command>elfdump</command> and GNU <command>readelf</command> or
726 other similar utilities.
727 </para>
728
729 </sect2>
730
731 </sect1>
732
733 <sect1 id="ts_general">
734
735 <title>General Troubleshooting</title>
736
737 <sect2 id="ts_config-periodic-flush">
738
739 <title>Guest Shows IDE/SATA Errors for File-Based Images on Slow Host File
740 System</title>
741
742 <para>
743 Occasionally, some host file systems provide very poor writing
744 performance and as a consequence cause the guest to time out
745 IDE/SATA commands. This is normal behavior and should normally
746 cause no real problems, as the guest should repeat commands that
747 have timed out. However, guests such as some Linux versions have
748 severe problems if a write to an image file takes longer than
749 about 15 seconds. Some file systems however require more than a
750 minute to complete a single write, if the host cache contains a
751 large amount of data that needs to be written.
752 </para>
753
754 <para>
755 The symptom for this problem is that the guest can no longer
756 access its files during large write or copying operations,
757 usually leading to an immediate hang of the guest.
758 </para>
759
760 <para>
761 In order to work around this problem, the true fix is to use a
762 faster file system that does not exhibit such unacceptable write
763 performance, it is possible to flush the image file after a
764 certain amount of data has been written. This interval is
765 normally infinite, but can be configured individually for each
766 disk of a VM.
767 </para>
768
769 <para>
770 For IDE disks use the following command:
771 </para>
772
773<screen>VBoxManage setextradata <replaceable>VM-name</replaceable>
774"VBoxInternal/Devices/piix3ide/0/LUN#[<replaceable>x</replaceable>]/Config/FlushInterval" [<replaceable>b</replaceable>]</screen>
775
776 <para>
777 For SATA disks use the following command:
778 </para>
779
780<screen>VBoxManage setextradata <replaceable>VM-name</replaceable>
781"VBoxInternal/Devices/ahci/0/LUN#[<replaceable>x</replaceable>]/Config/FlushInterval" [<replaceable>b</replaceable>]</screen>
782
783 <para>
784 <literal>[<replaceable>x</replaceable>]</literal> specifies the
785 disk. For IDE, <literal>0</literal> represents device 0 on the
786 primary channel, <literal>1</literal> represents device 1 on the
787 primary channel, <literal>2</literal> represents device 0 on the
788 secondary channel, and <literal>3</literal> represents device 1
789 on the secondary channel. For SATA, use values between
790 <literal>0</literal> and <literal>29</literal>. This
791 configuration option applies to disks only. Do not use this
792 option for CD or DVD drives.
793 </para>
794
795 <para>
796 The unit of the interval
797 (<literal>[<replaceable>b</replaceable>]</literal>) is the
798 number of bytes written since the last flush. The value for it
799 must be selected so that the occasional long write delays do not
800 occur. Since the proper flush interval depends on the
801 performance of the host and the host filesystem, finding the
802 optimal value that makes the problem disappear requires some
803 experimentation. Values between 1000000 and 10000000 (1 to 10
804 megabytes) are a good starting point. Decreasing the interval
805 both decreases the probability of the problem and the write
806 performance of the guest. Setting the value unnecessarily low
807 will cost performance without providing any benefits. An
808 interval of 1 will cause a flush for each write operation and
809 should solve the problem in any case, but has a severe write
810 performance penalty.
811 </para>
812
813 <para>
814 Providing a value of <literal>0</literal> for
815 <literal>[<replaceable>b</replaceable>]</literal> is treated as
816 an infinite flush interval, effectively disabling this
817 workaround. Removing the extra data key by specifying no value
818 for <literal>[<replaceable>b</replaceable>]</literal> has the
819 same effect.
820 </para>
821
822 </sect2>
823
824 <sect2 id="ts_ide-sata-flush">
825
826 <title>Responding to Guest IDE/SATA Flush Requests</title>
827
828 <para>
829 If desired, the virtual disk images can be flushed when the
830 guest issues the IDE FLUSH CACHE command. Normally these
831 requests are ignored for improved performance. The parameters
832 below are only accepted for disk drives. They must not be set
833 for DVD drives.
834 </para>
835
836 <para>
837 To enable flushing for IDE disks, issue the following command:
838 </para>
839
840<screen>$ VBoxManage setextradata <replaceable>VM-name</replaceable> "VBoxInternal/Devices/piix3ide/0/LUN#[<replaceable>x</replaceable>]/Config/IgnoreFlush" 0</screen>
841
842 <para>
843 <literal>[<replaceable>x</replaceable>]</literal> specifies the
844 disk. Enter <literal>0</literal> for device 0 on the primary
845 channel, <literal>1</literal> for device 1 on the primary
846 channel, <literal>2</literal> for device 0 on the secondary
847 channel, or <literal>3</literal> for device 1 on the secondary
848 channel.
849 </para>
850
851 <para>
852 To enable flushing for SATA disks, issue the following command:
853 </para>
854
855<screen>$ VBoxManage setextradata <replaceable>VM-name</replaceable> "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0</screen>
856
857 <para>
858 The value [x] that selects the disk can be a value between 0 and
859 29.
860 </para>
861
862 <para>
863 Note that this does not affect the flushes performed according
864 to the configuration described in
865 <xref linkend="ts_config-periodic-flush"/>. Restoring the
866 default of ignoring flush commands is possible by setting the
867 value to 1 or by removing the key.
868 </para>
869
870 </sect2>
871
872 <sect2 id="ts_host-freq-boost">
873
874 <title>Performance Variation with Frequency Boosting</title>
875
876 <para>
877 Many multicore processors support some form of frequency
878 boosting, which means that if only one core is utilized, it can
879 run possibly 50% faster or even more than the rated CPU
880 frequency. This causes measured performance to vary somewhat as
881 a function of the momentary overall system load. The exact
882 behavior depends strongly on the specific processor model.
883 </para>
884
885 <para>
886 As a consequence, benchmarking on systems which utilize
887 frequency boosting may produce unstable and non-repeatable
888 results. This is especially true if benchmark runs are short, of
889 the order of seconds. To obtain stable results, benchmarks must
890 be run over longer periods of time and with a constant system
891 load apart from the VM being tested.
892 </para>
893
894 </sect2>
895
896 <sect2 id="ts_host-freq-scaling">
897
898 <title>Frequency Scaling Effect on CPU Usage</title>
899
900 <para>
901 On some hardware platforms and operating systems, CPU frequency
902 scaling may cause CPU usage reporting to be highly misleading.
903 This happens in situations when the host CPU load is significant
904 but not heavy, such as between 15% to 30% of the maximum.
905 </para>
906
907 <para>
908 Most operating systems determine CPU usage in terms of time
909 spent, measuring for example how many nanoseconds the systems or
910 a process was active within one second. However, in order to
911 save energy, systems can significantly scale down CPU speed when
912 the system is not fully loaded. When the CPU is running at for
913 example one half of its maximum speed, the same number of
914 instructions will take roughly twice as long to execute compared
915 to running at full speed.
916 </para>
917
918 <para>
919 Depending on the specific hardware and host OS, this effect can
920 very significantly skew the CPU usage reported by the OS. The
921 reported CPU usage can be several times higher than what it
922 would have been had the CPU been running at full speed. The
923 effect can be observed both on the host OS and in a guest OS.
924 </para>
925
926 </sect2>
927
928 <sect2 id="ts_win-cpu-usage-rept">
929
930 <title>Inaccurate Windows CPU Usage Reporting</title>
931
932 <para>
933 CPU usage reporting tools which come with Windows, such as Task
934 Manager or Resource Monitor, do not take the time spent
935 processing hardware interrupts into account. If the interrupt
936 load is heavy, with thousands of interrupts per second, CPU
937 usage may be significantly underreported.
938 </para>
939
940 <para>
941 This problem affects Windows as both host and guest OS.
942 Sysinternals tools, such as Process Explorer, do not suffer from
943 this problem.
944 </para>
945
946 </sect2>
947
948 <sect2 id="ts_host-powermgmt">
949
950 <title>Poor Performance Caused by Host Power Management</title>
951
952 <para>
953 On some hardware platforms and operating systems, virtualization
954 performance is negatively affected by host CPU power management.
955 The symptoms may be choppy audio in the guest or erratic guest
956 clock behavior.
957 </para>
958
959 <para>
960 Some of the problems may be caused by firmware and/or host
961 operating system bugs. Therefore, updating the firmware and
962 applying operating systems fixes is recommended.
963 </para>
964
965 <para>
966 For optimal virtualization performance, the C1E power state
967 support in the system's BIOS should be disabled, if such a
968 setting is available. Not all systems support the C1E power
969 state. On Intel systems, the <literal>Intel C State</literal>
970 setting should be disabled. Disabling other power management
971 settings may also improve performance. However, a balance
972 between performance and power consumption must always be
973 considered.
974 </para>
975
976 </sect2>
977
978 <sect2 id="ts_gui-2d-grayed-out">
979
980 <title>GUI: 2D Video Acceleration Option is Grayed Out</title>
981
982 <para>
983 To use 2D Video Acceleration within &product-name;, your host's
984 video card should support certain OpenGL extensions. On startup,
985 &product-name; checks for those extensions, and, if the test
986 fails, this option is silently grayed out.
987 </para>
988
989 <para>
990 To find out why it has failed, you can manually execute the
991 following command:
992 </para>
993
994<screen>$ VBoxTestOGL --log "log_file_name" --test 2D</screen>
995
996 <para>
997 It will list the required OpenGL extensions one by one and will
998 show you which one failed the test. This usually means that you
999 are running an outdated or misconfigured OpenGL driver on your
1000 host. It can also mean that your video chip is lacking required
1001 functionality.
1002 </para>
1003
1004 </sect2>
1005
1006 </sect1>
1007
1008 <sect1 id="ts_win-guests">
1009
1010 <title>Windows Guests</title>
1011
1012 <sect2 id="ts_win7-guest-usb3-support">
1013
1014 <title>No USB 3.0 Support in Windows 7 Guests</title>
1015
1016 <para>
1017 If a Windows 7 or Windows Server 2008 R2 guest is configured for
1018 USB 3.0 (xHCI) support, the guest OS will not have any USB
1019 support at all. This happens because Windows 7 predates USB 3.0
1020 and therefore does not ship with any xHCI drivers. Microsoft
1021 also does not offer any vendor-provided xHCI drivers through
1022 Windows Update.
1023 </para>
1024
1025 <para>
1026 To solve this problem, it is necessary to download and install
1027 the Intel xHCI driver in the guest. Intel offers the driver as
1028 the USB 3.0 eXtensible Host Controller (xHCI) driver for Intel 7
1029 Series/C216 chipsets.
1030 </para>
1031
1032 <para>
1033 Note that the driver only supports Windows 7 and Windows Server
1034 2008 R2. The driver package includes support for both 32-bit and
1035 64-bit OS variants.
1036 </para>
1037
1038 </sect2>
1039
1040 <sect2 id="ts_win-guest-bluescreen">
1041
1042 <title>Windows Bluescreens After Changing VM Configuration</title>
1043
1044 <para>
1045 Changing certain virtual machine settings can cause Windows
1046 guests to fail during start up with a bluescreen. This may
1047 happen if you change VM settings after installing Windows, or if
1048 you copy a disk image with an already installed Windows to a
1049 newly created VM which has settings that differ from the
1050 original machine.
1051 </para>
1052
1053 <para>
1054 This applies in particular to the following settings:
1055 </para>
1056
1057 <itemizedlist>
1058
1059 <listitem>
1060 <para>
1061 The ACPI and I/O APIC settings should never be changed after
1062 installing Windows. Depending on the presence of these
1063 hardware features, the Windows installation program chooses
1064 special kernel and device driver versions and will fail to
1065 startup should these hardware features be removed. Enabling
1066 them for a Windows VM which was installed without them does
1067 not cause any harm. However, Windows will not use these
1068 features in this case.
1069 </para>
1070 </listitem>
1071
1072 <listitem>
1073 <para>
1074 Changing the storage controller hardware will cause bootup
1075 failures as well. This might also apply to you if you copy a
1076 disk image from an older version of &product-name; to a new
1077 virtual machine. The default subtype of IDE controller
1078 hardware used by &product-name; is PIIX4. Make sure that the
1079 storage controller settings are identical.
1080 </para>
1081 </listitem>
1082
1083 </itemizedlist>
1084
1085 </sect2>
1086
1087 <sect2 id="ts_win-guest-bluescreen-smp">
1088
1089 <title>Windows 0x101 Bluescreens with SMP Enabled (IPI Timeout)</title>
1090
1091 <para>
1092 If a VM is configured to have more than one processor
1093 (symmetrical multiprocessing, SMP), some configurations of
1094 Windows guests crash with an 0x101 error message, indicating a
1095 timeout for interprocessor interrupts (IPIs). These interrupts
1096 synchronize memory management between processors.
1097 </para>
1098
1099 <para>
1100 According to Microsoft, this is due to a race condition in
1101 Windows. A hotfix is available from Microsoft.
1102 </para>
1103
1104 <para>
1105 If this does not help, please reduce the number of virtual
1106 processors to 1.
1107 </para>
1108
1109 </sect2>
1110
1111 <sect2 id="ts_win2k-guest-install">
1112
1113 <title>Windows 2000 Installation Failures</title>
1114
1115 <para>
1116 When installing Windows 2000 guests, you might run into one of
1117 the following issues:
1118 </para>
1119
1120 <itemizedlist>
1121
1122 <listitem>
1123 <para>
1124 Installation reboots, usually during component registration.
1125 </para>
1126 </listitem>
1127
1128 <listitem>
1129 <para>
1130 Installation fills the whole hard disk with empty log files.
1131 </para>
1132 </listitem>
1133
1134 <listitem>
1135 <para>
1136 Installation complains about a failure installing
1137 <filename>msgina.dll</filename>.
1138 </para>
1139 </listitem>
1140
1141 </itemizedlist>
1142
1143 <para>
1144 These problems are all caused by a bug in the hard disk driver
1145 of Windows 2000. After issuing a hard disk request, there is a
1146 race condition in the Windows driver code which leads to
1147 corruption if the operation completes too fast. For example, the
1148 hardware interrupt from the IDE controller arrives too soon.
1149 With physical hardware, there is a guaranteed delay in most
1150 systems so the problem is usually hidden there. However, it
1151 should be possible to also reproduce it on physical hardware. In
1152 a virtual environment, it is possible for the operation to be
1153 done immediately, especially on very fast systems with multiple
1154 CPUs, and the interrupt is signaled sooner than on a physical
1155 system. The solution is to introduce an artificial delay before
1156 delivering such interrupts. This delay can be configured for a
1157 VM using the following command:
1158 </para>
1159
1160<screen>$ VBoxManage setextradata <replaceable>VM-name</replaceable> "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</screen>
1161
1162 <para>
1163 This sets the delay to one millisecond. In case this does not
1164 help, increase it to a value between 1 and 5 milliseconds.
1165 Please note that this slows down disk performance. After
1166 installation, you should be able to remove the key, or set it to
1167 0.
1168 </para>
1169
1170 </sect2>
1171
1172 <sect2 id="ts_win-guest-bluescreen-record-info">
1173
1174 <title>How to Record Bluescreen Information from Windows Guests</title>
1175
1176 <para>
1177 When Windows guests run into a kernel crash, they display a
1178 bluescreen error. Depending on how Windows is configured, the
1179 information will remain on the screen until the machine is
1180 restarted or it will reboot automatically. During installation,
1181 Windows is usually configured to reboot automatically. With
1182 automatic reboots, there is no chance to record the bluescreen
1183 information which might be important for problem determination.
1184 </para>
1185
1186 <para>
1187 &product-name; provides a method of halting a guest when it
1188 wants to perform a reset. In order to enable this feature, use
1189 the following command:
1190 </para>
1191
1192<screen>$ VBoxManage setextradata <replaceable>VM-name</replaceable> "VBoxInternal/PDM/HaltOnReset" 1</screen>
1193
1194 </sect2>
1195
1196 <sect2 id="ts_win-vista-guest-networking">
1197
1198 <title>No Networking in Windows Vista Guests</title>
1199
1200 <para>
1201 With Windows Vista, Microsoft dropped support for the AMD PCNet
1202 card that legacy versions of &product-name; used to provide as
1203 the default virtual network card. For Windows Vista guests,
1204 &product-name; now uses an Intel E1000 card by default.
1205 </para>
1206
1207 <para>
1208 If, for some reason, you still want to use the AMD card, you
1209 need to download the PCNet driver from the AMD website. This
1210 driver is available for 32-bit Windows only. You can transfer it
1211 into the virtual machine using a shared folder. See
1212 <xref linkend="sharedfolders" />.
1213 </para>
1214
1215 </sect2>
1216
1217 <sect2 id="ts_win-guest-high-cpu">
1218
1219 <title>Windows Guests may Cause a High CPU Load</title>
1220
1221 <para>
1222 Several background applications of Windows guests, especially
1223 virus scanners, are known to increase the CPU load notably even
1224 if the guest appears to be idle. We recommend to deactivate
1225 virus scanners within virtualized guests if possible.
1226 </para>
1227
1228 </sect2>
1229
1230 <sect2 id="ts_win-guest-shared-folders-access-delay">
1231
1232 <title>Long Delays When Accessing Shared Folders</title>
1233
1234 <para>
1235 The performance for accesses to shared folders from a Windows
1236 guest might be decreased due to delays during the resolution of
1237 the &product-name; shared folders name service. To fix these
1238 delays, add the following entries to the file
1239 <filename>\windows\system32\drivers\etc\lmhosts</filename> of
1240 the Windows guest:
1241 </para>
1242
1243<screen>255.255.255.255 VBOXSVR #PRE
1244255.255.255.255 VBOXSRV #PRE</screen>
1245
1246 <para>
1247 After doing this change, a reboot of the guest is required.
1248 </para>
1249
1250 </sect2>
1251
1252 <sect2 id="ts_win98-guest-usb-tablet-coordinates">
1253
1254 <title>USB Tablet Coordinates Wrong in Windows 98 Guests</title>
1255
1256 <para>
1257 If a Windows 98 VM is configured to use the emulated USB tablet
1258 (absolute pointing device), the coordinate translation may be
1259 incorrect and the pointer is restricted to the upper left
1260 quarter of the guest's screen.
1261 </para>
1262
1263 <para>
1264 The USB HID (Human Interface Device) drivers in Windows 98 are
1265 very old and do not handle tablets in the same way as modern
1266 operating systems do. To work around the problem, use the
1267 following command:
1268 </para>
1269
1270<screen>$ VBoxManage setextradata <replaceable>VM-name</replaceable> "VBoxInternal/USB/HidMouse/0/Config/CoordShift" 0</screen>
1271
1272 <para>
1273 To restore the default behavior, remove the key or set its value
1274 to 1.
1275 </para>
1276
1277 </sect2>
1278
1279 <sect2 id="ts_win-guest-active-dir-domain">
1280
1281 <title>Windows Guests are Removed From an Active Directory Domain After
1282 Restoring a Snapshot</title>
1283
1284 <para>
1285 If a Windows guest is a member of an Active Directory domain and
1286 the snapshot feature of &product-name; is used, it could be
1287 removed from the Active Direcory domain after you restore an
1288 older snapshot.
1289 </para>
1290
1291 <para>
1292 This is caused by automatic machine password changes performed
1293 by Windows at regular intervals for security purposes. You can
1294 disable this feature as shown in the following article from
1295 Microsoft:
1296 <ulink url="http://support.microsoft.com/kb/154501" />.
1297 </para>
1298
1299 </sect2>
1300
1301 <sect2 id="ts_win31-ram-limitations">
1302
1303 <title>Windows 3.x Limited to 64 MB RAM</title>
1304
1305 <para>
1306 Windows 3.x guests are typically limited to 64 MB RAM, even if a
1307 VM is assigned much more memory. While Windows 3.1 is
1308 theoretically capable of using up to 512 MB RAM, it only uses
1309 memory available through the XMS interface. Versions of
1310 HIMEM.SYS, the Microsoft XMS manager, shipped with MS-DOS and
1311 Microsoft Windows 3.x can only use up to 64 MB on standard PCs.
1312 </para>
1313
1314 <para>
1315 This is a known HIMEM.SYS limitation. Windows 3.1 memory limits
1316 are described in detail in Microsoft Knowledge base article KB
1317 84388.
1318 </para>
1319
1320 <para>
1321 It is possible for Windows 3.x guests to utilize more than 64 MB
1322 RAM if a different XMS provider is used. That could be a newer
1323 HIMEM.SYS version, such as that shipped with Windows 98, or a
1324 more capable third-party memory manager, such as QEMM.
1325 </para>
1326
1327 </sect2>
1328
1329 </sect1>
1330
1331 <sect1 id="ts_lin-x11-guests">
1332
1333 <title>Linux and X11 Guests</title>
1334
1335 <sect2 id="ts_linux-guest-high-cpu">
1336
1337 <title>Linux Guests May Cause a High CPU load</title>
1338
1339 <para>
1340 Some Linux guests may cause a high CPU load even if the guest
1341 system appears to be idle. This can be caused by a high timer
1342 frequency of the guest kernel. Some Linux distributions, for
1343 example Fedora, ship a Linux kernel configured for a timer
1344 frequency of 1000Hz. We recommend to recompile the guest kernel
1345 and to select a timer frequency of 100Hz.
1346 </para>
1347
1348 <para>
1349 Linux kernels shipped with Red Hat Enterprise Linux, as well as
1350 kernels of related Linux distributions, such as CentOS and
1351 Oracle Linux, support a kernel parameter
1352 <emphasis>divider=N</emphasis>. Hence, such kernels support a
1353 lower timer frequency without recompilation. We suggest you add
1354 the kernel parameter <emphasis>divider=10</emphasis> to select a
1355 guest kernel timer frequency of 100Hz.
1356 </para>
1357
1358 </sect2>
1359
1360 <sect2 id="ts_linux-buggy">
1361
1362 <title>Buggy Linux 2.6 Kernel Versions</title>
1363
1364 <para>
1365 The following bugs in Linux kernels prevent them from executing
1366 correctly in &product-name;, causing VM boot crashes:
1367 </para>
1368
1369 <itemizedlist>
1370
1371 <listitem>
1372 <para>
1373 The Linux kernel version 2.6.18, and some 2.6.17 versions,
1374 introduced a race condition that can cause boot crashes in
1375 &product-name;. Please use a kernel version 2.6.19 or later.
1376 </para>
1377 </listitem>
1378
1379 <listitem>
1380 <para>
1381 With hardware virtualization and the I/O APIC enabled,
1382 kernels before 2.6.24-rc6 may panic on boot with the
1383 following message:
1384 </para>
1385
1386<screen>Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with
1387apic=debug and send a report. Then try booting with the 'noapic' option</screen>
1388
1389 <para>
1390 If you see this message, either disable hardware
1391 virtualization or the I/O APIC as described in
1392 <xref linkend="settings-system" />, or upgrade the guest to
1393 a newer kernel.
1394 </para>
1395
1396 <para>
1397 See
1398 <ulink url="http://www.mail-archive.com/git-commits-head@vger.kernel.org/msg30813.html" />
1399 for details about the kernel fix.
1400 </para>
1401 </listitem>
1402
1403 </itemizedlist>
1404
1405 </sect2>
1406
1407 <sect2 id="ts_linux-guest-x11-services">
1408
1409 <title>Shared Clipboard, Auto-Resizing, and Seamless Desktop in X11 Guests</title>
1410
1411 <para>
1412 Guest desktop services in guests running the X11 window system
1413 such as Oracle Solaris and Linux, are provided by a guest
1414 service called <command>VBoxClient</command>, which runs under
1415 the ID of the user who started the desktop session and is
1416 automatically started using the following command lines when
1417 your X11 user session is started if you are using a common
1418 desktop environment such as Gnome or KDE.
1419 </para>
1420
1421<screen>$ VBoxClient --clipboard
1422$ VBoxClient --display
1423$ VBoxClient --seamless</screen>
1424
1425 <para>
1426 If a particular desktop service is not working correctly, it is
1427 worth checking whether the process which should provide it is
1428 running.
1429 </para>
1430
1431 <para>
1432 The <command>VBoxClient</command> processes create files in the
1433 user's home directory with names of the form
1434 <filename>.vboxclient-*.pid</filename> when they are running in
1435 order to prevent a given service from being started twice. It
1436 can happen due to misconfiguration that these files are created
1437 owned by root and not deleted when the services are stopped,
1438 which will prevent them from being started in future sessions.
1439 If the services cannot be started, you may wish to check whether
1440 these files still exist.
1441 </para>
1442
1443 </sect2>
1444
1445 </sect1>
1446
1447 <sect1 id="ts_sol-guests">
1448
1449 <title>Oracle Solaris Guests</title>
1450
1451 <sect2 id="ts_solaris-10-guest-slow-boot-smp">
1452
1453 <title>Certain Oracle Solaris 10 Releases May Take a Long Time to Boot with SMP</title>
1454
1455 <para>
1456 When using more than one CPU, Oracle Solaris 10 10/08, and
1457 Oracle Solaris 10 5/09 may take a long time to boot and may
1458 print warnings on the system console regarding failures to read
1459 from disk. This is a bug in Oracle Solaris 10 which affects
1460 specific physical and virtual configurations. It is caused by
1461 trying to read microcode updates from the boot disk when the
1462 disk interrupt is reassigned to a not yet fully initialized
1463 secondary CPU. Disk reads will time out and fail, triggering
1464 delays of about 45 seconds and warnings.
1465 </para>
1466
1467 <para>
1468 The recommended solution is upgrading to at least Oracle Solaris
1469 10 10/09 which includes a fix for this problem. Alternative
1470 solutions include restricting the number of virtual CPUs to one
1471 or possibly using a different storage controller.
1472 </para>
1473
1474 </sect2>
1475
1476 </sect1>
1477
1478 <sect1 id="ts_win-hosts">
1479
1480 <title>Windows Hosts</title>
1481
1482 <sect2 id="ts_win-dnd-uipi">
1483
1484 <title>Drag'n Drop not Working</title>
1485
1486 <para>
1487 Microsoft Windows uses technologies like UAC (User Account Control) and
1488 UIPI (User Interface Privilege Isolation) to prevent and/or mitigate
1489 security issues. By default, UAC and UIPI are enabled.
1490 </para>
1491 <para>
1492 When a &product-name; VM process is running with a higher so-called
1493 privilege level than another process that wants to interact with the
1494 VM process via drag'n drop (or system clipboard), Windows prevents this
1495 by default due to security reasons. This results in &product-name; not
1496 being able to receive any Windows messages for drag'n drop.
1497
1498 To make this work, the &product-name; VM process must be running with
1499 the same (or lower) privilege level as the process its interacting with
1500 using drag'n drop.
1501
1502 Disabling UAC and/or UIPI is not recommended.
1503 </para>
1504
1505 </sect2>
1506
1507 <sect2 id="ts_win-host-com-server">
1508
1509 <title>VBoxSVC Out-of-Process COM Server Issues</title>
1510
1511 <para>
1512 &product-name; makes use of the Microsoft Component Object Model
1513 (COM) for interprocess and intraprocess communication. This
1514 enables &product-name; to share a common configuration among
1515 different virtual machine processes and provide several user
1516 interface options based on a common architecture. All global
1517 status information and configuration is maintained by the
1518 process <filename>VBoxSVC.exe</filename>, which is an
1519 out-of-process COM server. Whenever an &product-name; process is
1520 started, it requests access to the COM server and Windows
1521 automatically starts the process. Note that it should never be
1522 started by the end user.
1523 </para>
1524
1525 <para>
1526 When the last process disconnects from the COM server, it will
1527 terminate itself after some seconds. The &product-name;
1528 configuration XML files are maintained and owned by the COM
1529 server and the files are locked whenever the server runs.
1530 </para>
1531
1532 <para>
1533 In some cases, such as when a virtual machine is terminated
1534 unexpectedly, the COM server will not notice that the client is
1535 disconnected and stay active for a longer period of 10 minutes
1536 or so, keeping the configuration files locked. In other rare
1537 cases the COM server might experience an internal error and
1538 subsequently other processes fail to initialize it. In these
1539 situations, it is recommended to use the Windows task manager to
1540 kill the process <filename>VBoxSVC.exe</filename>.
1541 </para>
1542
1543 </sect2>
1544
1545 <sect2 id="ts_win-host-cd-dvd-changes">
1546
1547 <title>CD and DVD Changes Not Recognized</title>
1548
1549 <para>
1550 In case you have assigned a physical CD or DVD drive to a guest
1551 and the guest does not notice when the medium changes, make sure
1552 that the Windows media change notification (MCN) feature is not
1553 turned off. This is represented by the following key in the
1554 Windows registry:
1555 </para>
1556
1557<screen>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</screen>
1558
1559 <para>
1560 Certain applications may disable this key against Microsoft's
1561 advice. If it is set to 0, change it to 1 and reboot your
1562 system. &product-name; relies on Windows notifying it of media
1563 changes.
1564 </para>
1565
1566 </sect2>
1567
1568 <sect2 id="ts_win-host-rdp-client">
1569
1570 <title>Sluggish Response When Using Microsoft RDP Client</title>
1571
1572 <para>
1573 If connecting to a Virtual Machine using the Microsoft RDP
1574 client, called a Remote Desktop Connection, there can be large
1575 delays between input such as moving the mouse over a menu and
1576 output. This is because this RDP client collects input for a
1577 certain time before sending it to the RDP server.
1578 </para>
1579
1580 <para>
1581 The interval can be decreased by setting a Windows registry key
1582 to smaller values than the default of 100. The key does not
1583 exist initially and must be of type DWORD. The unit for its
1584 values is milliseconds. Values around 20 are suitable for
1585 low-bandwidth connections between the RDP client and server.
1586 Values around 4 can be used for a gigabit Ethernet connection.
1587 Generally values below 10 achieve a performance that is very
1588 close to that of the local input devices and screen of the host
1589 on which the Virtual Machine is running.
1590 </para>
1591
1592 <para>
1593 Depending whether the setting should be changed for an
1594 individual user or for the system, set either of the following.
1595 </para>
1596
1597<screen>HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
1598
1599<screen>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
1600
1601 </sect2>
1602
1603 <sect2 id="ts_win-host-iscsi">
1604
1605 <title>Running an iSCSI Initiator and Target on a Single System</title>
1606
1607 <para>
1608 Deadlocks can occur on a Windows host when attempting to access
1609 an iSCSI target running in a guest virtual machine with an iSCSI
1610 initiator, such as a Microsoft iSCSI Initiator, that is running
1611 on the host. This is caused by a flaw in the Windows cache
1612 manager component, and causes sluggish host system response for
1613 several minutes, followed by a "Delayed Write Failed" error
1614 message in the system tray or in a separate message window. The
1615 guest is blocked during that period and may show error messages
1616 or become unstable.
1617 </para>
1618
1619 <para>
1620 Setting the <literal>VBOX_DISABLE_HOST_DISK_CACHE</literal>
1621 environment variable to <literal>1</literal> enables a
1622 workaround for this problem until Microsoft addresses the issue.
1623 For example, open a command prompt window and start
1624 &product-name; like this:
1625 </para>
1626
1627<screen>set VBOX_DISABLE_HOST_DISK_CACHE=1
1628VirtualBox</screen>
1629
1630 <para>
1631 While this will decrease guest disk performance, especially
1632 writes, it does not affect the performance of other applications
1633 running on the host.
1634 </para>
1635
1636 </sect2>
1637
1638 <sect2 id="ts_win-host-bridged-network-adapters">
1639
1640 <title>Bridged Networking Adapters Missing</title>
1641
1642 <para>
1643 If no bridged adapters show up in the
1644 <emphasis role="bold">Networking</emphasis> section of the VM
1645 settings, this typically means that the bridged networking
1646 driver was not installed properly on your host. This could be
1647 due to the following reasons:
1648 </para>
1649
1650 <itemizedlist>
1651
1652 <listitem>
1653 <para>
1654 The maximum allowed filter count was reached on the host. In
1655 this case, the MSI log would mention the
1656 <literal>0x8004a029</literal> error code returned on NetFlt
1657 network component install, as follows:
1658 </para>
1659
1660<screen>VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029)</screen>
1661
1662 <para>
1663 You can try to increase the maximum filter count in the
1664 Windows registry using the following key:
1665 </para>
1666
1667<screen>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters</screen>
1668
1669 <para>
1670 The maximum number allowed is 14. After a reboot, try to
1671 reinstall &product-name;.
1672 </para>
1673 </listitem>
1674
1675 <listitem>
1676 <para>
1677 The INF cache is corrupt. In this case, the install log at
1678 <filename>%windir%\inf\setupapi.dev.log</filename> would
1679 typically mention the failure to find a suitable driver
1680 package for either the <command>sun_VBoxNetFlt</command> or
1681 <command>sun_VBoxNetFltmp</command> components. The solution
1682 then is to uninstall &product-name;, remove the INF cache
1683 (<filename>%windir%\inf\INFCACHE.1</filename>), reboot and
1684 try to reinstall &product-name;.
1685 </para>
1686 </listitem>
1687
1688 </itemizedlist>
1689
1690 </sect2>
1691
1692 <sect2 id="ts_win-host-host-only-network-adapters">
1693
1694 <title>Host-Only Networking Adapters Cannot be Created</title>
1695
1696 <para>
1697 If a host-only adapter cannot be created, either with the
1698 &vbox-mgr; or the <command>VBoxManage</command> command, then
1699 the INF cache is probably corrupt. In this case, the install log
1700 at <filename>%windir%\inf\setupapi.dev.log</filename> would
1701 typically mention the failure to find a suitable driver package
1702 for the <filename>sun_VBoxNetAdp</filename> component. Again, as
1703 with the bridged networking problem described above, the
1704 solution is to uninstall &product-name;, remove the INF cache
1705 (<filename>%windir%\inf\INFCACHE.1</filename>), reboot and try
1706 to reinstall &product-name;.
1707 </para>
1708
1709 </sect2>
1710
1711 </sect1>
1712
1713 <sect1 id="ts_lin-hosts">
1714
1715 <title>Linux Hosts</title>
1716
1717 <sect2 id="ts_linux-kernelmodule-fails-to-load">
1718
1719 <title>Linux Kernel Module Refuses to Load</title>
1720
1721 <para>
1722 If the &product-name; kernel module, <command>vboxdrv</command>,
1723 refuses to load you may see an <literal>Error inserting vboxdrv:
1724 Invalid argument</literal> message. As root, check the output of
1725 the <command>dmesg</command> command to find out why the load
1726 failed. Most probably the kernel disagrees with the version of
1727 <command>gcc</command> used to compile the module. Make sure
1728 that you use the same compiler that was used to build the
1729 kernel.
1730 </para>
1731
1732 </sect2>
1733
1734 <sect2 id="ts_linux-host-cd-dvd-not-found">
1735
1736 <title>Linux Host CD/DVD or Floppy Disk Drive Not Found</title>
1737
1738 <para>
1739 If you have configured a virtual machine to use the host's CD or
1740 DVD drive or floppy disk drive, but this does not appear to
1741 work, make sure that the current user has permission to access
1742 the corresponding Linux device file. For example, for a CD or
1743 DVD drive this may be <filename>/dev/hdc</filename>,
1744 <filename>/dev/scd0</filename>, <filename>/dev/cdrom</filename>
1745 or similar. On most distributions, the user must be added to a
1746 corresponding group, usually called <command>cdrom</command> or
1747 <command>cdrw</command> or <command>floppy</command>.
1748 </para>
1749
1750 <para>
1751 On supported Linux distributions, &product-name; uses
1752 <command>udev</command> to locate hardware such as CD/DVD drives
1753 and floppy disk drives.
1754 </para>
1755
1756 </sect2>
1757
1758 <sect2 id="ts_linux-host-ide-messages">
1759
1760 <title>Strange Guest IDE Error Messages When Writing to CD or DVD</title>
1761
1762 <para>
1763 If the experimental CD or DVD writer support is enabled with an
1764 incorrect host or guest configuration, it is possible that any
1765 attempt to access the CD or DVD writer fails and simply results
1766 in guest kernel error messages for Linux guests or application
1767 error messages for Windows guests. &product-name; performs the
1768 usual consistency checks when a VM is powered up. In particular,
1769 it aborts with an error message if the device for the CD or DVD
1770 writer is not writable by the user starting the VM. But
1771 &product-name; cannot detect all misconfigurations. The
1772 necessary host and guest OS configuration is not specific for
1773 &product-name;, but a few frequent problems are listed here
1774 which occurred in connection with &product-name;.
1775 </para>
1776
1777 <para>
1778 Special care must be taken to use the correct device. The
1779 configured host CD or DVD device file name, in most cases
1780 <filename>/dev/cdrom</filename>, must point to the device that
1781 allows writing to the CD or DVD unit. For CD or DVD writer units
1782 connected to a SCSI controller or to a IDE controller that
1783 interfaces to the Linux SCSI subsystem, common for some SATA
1784 controllers, this must refer to the SCSI device node, such as
1785 <filename>/dev/scd0</filename>. Even for IDE CD or DVD writer
1786 units this must refer to the appropriate SCSI CD-ROM device
1787 node, such as <filename>/dev/scd0</filename>, if the
1788 <command>ide-scsi</command> kernel module is loaded. This module
1789 is required for CD or DVD writer support with some early 2.6
1790 kernels. Many Linux distributions load this module whenever a CD
1791 or DVD writer is detected in the system, even if the kernel
1792 would support CD or DVD writers without the module.
1793 &product-name; supports the use of IDE device files, such as
1794 <filename>/dev/hdc</filename>, provided the kernel supports this
1795 and the <command>ide-scsi</command> module is not loaded.
1796 </para>
1797
1798 <para>
1799 Similar rules, except that within the guest the CD or DVD writer
1800 is always an IDE device, apply to the guest configuration. Since
1801 this setup is very common, it is likely that the default
1802 configuration of the guest works as expected.
1803 </para>
1804
1805 </sect2>
1806
1807 <sect2 id="ts_linux-host-vboxsvc">
1808
1809 <title>VBoxSVC IPC Issues</title>
1810
1811 <para>
1812 On Linux, &product-name; makes use of a custom version of
1813 Mozilla XPCOM (cross platform component object model) for
1814 interprocess and intraprocess communication (IPC). The process
1815 <command>VBoxSVC</command> serves as a communication hub between
1816 different &product-name; processes and maintains the global
1817 configuration, such as the XML database. When starting an
1818 &product-name; component, the processes
1819 <command>VBoxSVC</command> and <command>VBoxXPCOMIPCD</command>
1820 are started automatically. They are only accessible from the
1821 user account they are running under. <command>VBoxSVC</command>
1822 owns the &product-name; configuration database which normally
1823 resides in <filename>~/.config/VirtualBox</filename>, or the
1824 appropriate configuration directory for your operating system.
1825 While it is running, the configuration files are locked.
1826 Communication between the various &product-name; components and
1827 <command>VBoxSVC</command> is performed through a local domain
1828 socket residing in
1829 <filename>/tmp/.vbox-<replaceable>username</replaceable>-ipc</filename>.
1830 In case there are communication problems, such as an
1831 &product-name; application cannot communicate with
1832 <command>VBoxSVC</command>, terminate the daemons and remove the
1833 local domain socket directory.
1834 </para>
1835
1836 </sect2>
1837
1838 <sect2 id="ts_usb-linux">
1839
1840 <title>USB Not Working</title>
1841
1842 <para>
1843 If USB is not working on your Linux host, make sure that the
1844 current user is a member of the <literal>vboxusers</literal>
1845 group. Please keep in mind that group membership does not take
1846 effect immediately but rather at the next login. If available,
1847 the <command>newgrp</command> command may avoid the need for a
1848 logout and login.
1849 </para>
1850
1851 </sect2>
1852
1853 <sect2 id="ts_linux-host-grsec">
1854
1855 <title>PAX/grsec Kernels</title>
1856
1857 <para>
1858 Linux kernels including the grsec patch, see
1859 <ulink url="http://www.grsecurity.net/" />, and derivates have
1860 to disable PAX_MPROTECT for the <command>VBox</command> binaries
1861 to be able to start a VM. The reason is that &product-name; has
1862 to create executable code on anonymous memory.
1863 </para>
1864
1865 </sect2>
1866
1867 <sect2 id="ts_linux-host-malloc">
1868
1869 <title>Linux Kernel vmalloc Pool Exhausted</title>
1870
1871 <para>
1872 When running a large number of VMs with a lot of RAM on a Linux
1873 system, say 20 VMs with 1 GB of RAM each, additional VMs might
1874 fail to start with a kernel error saying that the vmalloc pool
1875 is exhausted and should be extended. The error message also
1876 tells you to specify <literal>vmalloc=256MB</literal> in your
1877 kernel parameter list. If adding this parameter to your GRUB or
1878 LILO configuration makes the kernel fail to boot, with an error
1879 message such as <literal>failed to mount the root
1880 partition</literal>, then you have probably run into a memory
1881 conflict of your kernel and initial RAM disk. This can be solved
1882 by adding the following parameter to your GRUB configuration:
1883 </para>
1884
1885<screen>uppermem 524288</screen>
1886
1887 </sect2>
1888
1889 </sect1>
1890
1891 <sect1 id="ts_sol-hosts">
1892
1893 <title>Oracle Solaris Hosts</title>
1894
1895 <sect2 id="ts_sol-host-zfs">
1896
1897 <title>Cannot Start VM, Not Enough Contiguous Memory</title>
1898
1899 <para>
1900 The ZFS file system is known to use nearly all available RAM as
1901 cache if the default system settings are not changed. This may
1902 lead to a heavy fragmentation of the host memory preventing
1903 &product-name; VMs from being started. We recommend to limit the
1904 ZFS cache by adding the following line to
1905 <filename>/etc/system</filename>, where
1906 <replaceable>xxxx</replaceable> bytes is the amount of memory
1907 usable for the ZFS cache.
1908 </para>
1909
1910<screen>set zfs:zfs_arc_max = xxxx</screen>
1911
1912 </sect2>
1913
1914 </sect1>
1915
1916</chapter>
Note: See TracBrowser for help on using the repository browser.

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