VirtualBox

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

Last change on this file since 74865 was 73276, checked in by vboxsync, 6 years ago

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

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