VirtualBox

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

Last change on this file since 96918 was 96407, checked in by vboxsync, 3 years ago

scm copyright and license note update

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