VirtualBox

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

Last change on this file since 81940 was 79368, checked in by vboxsync, 5 years ago

docs/manual: fix formatting inconsistency

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