VirtualBox

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

Last change on this file since 91099 was 87077, checked in by vboxsync, 4 years ago

doc/manual: Integrate a collection of documentation improvements: sensitive terminology, diversity statement, clear messaging on what is eligible for enterprise support, OCI integration docs, export to OCI and incorrect UI doc referring to host-only networking when that place allows configuring NAT Networks

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