VirtualBox

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

Last change on this file since 35065 was 35065, checked in by vboxsync, 14 years ago

Manual: doc updates (vbox settings, chipset)

File size: 57.8 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
3"http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd">
4<chapter id="Troubleshooting">
5 <title>Troubleshooting</title>
6
7 <para>This chapter provides answers to commonly asked questions. In order to
8 improve your user experience with VirtualBox, it is recommended to read this
9 section to learn more about common pitfalls and get recommendations on how
10 to use the product.</para>
11
12 <sect1>
13 <title>Procedures and tools</title>
14
15 <sect2>
16 <title>Categorizing and isolating problems</title>
17
18 <para>More often than not, a virtualized guest behaves like a physical
19 system. Any problems that a physical machine would encounter, a virtual
20 machine will encounter as well. If, for example, Internet connectivity
21 is lost due to external issues, virtual machines will be affected just
22 as much as physical ones.</para>
23
24 <para>If a true VirtualBox problem is encountered, it helps to
25 categorize and isolate the problem first. Here are some of the questions
26 that should be answered before reporting a problem:<orderedlist>
27 <listitem>
28 <para>Is the problem specific to a certain guest OS? Specific
29 release of a guest OS? Especially with Linux guest related
30 problems, the issue may be specific to a certain distribution and
31 version of Linux.</para>
32 </listitem>
33
34 <listitem>
35 <para>Is the problem specific to a certain host OS? Problems are
36 usually not host OS specific (because most of the VirtualBox code
37 base is shared across all supported platforms), but especially in
38 the areas of networking and USB support, there are significant
39 differences between host platforms. Some GUI related issues are
40 also host specific.</para>
41 </listitem>
42
43 <listitem>
44 <para>Is the problem specific to certain host hardware? This
45 category of issues is typically related to the host CPU. Because
46 of significant differences between VT-x and AMD-V, problems may be
47 specific to one or the other technology. The exact CPU model may
48 also make a difference (even for software virtualization) because
49 different CPUs support different features, which may affect
50 certain aspects of guest CPU operation.</para>
51 </listitem>
52
53 <listitem>
54 <para>Is the problem specific to a certain virtualization mode?
55 Some problems may only occur in software virtualization mode,
56 others may be specific to hardware virtualization.</para>
57 </listitem>
58
59 <listitem>
60 <para>Is the problem specific to guest SMP? That is, is it related
61 to the number of virtual CPUs (VCPUs) in the guest? Using more
62 than one CPU usually significantly affects the internal operation
63 of a guest OS.</para>
64 </listitem>
65
66 <listitem>
67 <para>Is the problem specific to the Guest Additions? In some
68 cases, this is a given (e.g., a shared folders problem), in other
69 cases it may be less obvious (for example, display problems). And
70 if the problem is Guest Additions specific, is it also specific to
71 a certain version of the Additions?</para>
72 </listitem>
73
74 <listitem>
75 <para>Is the problem specific to a certain environment? Some
76 problems are related to a particular environment external to the
77 VM; this usually involves network setup. Certain configurations of
78 external servers such as DHCP or PXE may expose problems which do
79 not occur with other, similar servers.</para>
80 </listitem>
81
82 <listitem>
83 <para>Is the problem a regression? Knowing that an issue is a
84 regression usually makes it significantly easier to find the
85 solution. In this case, it is crucial to know which version is
86 affected and which is not.</para>
87 </listitem>
88 </orderedlist></para>
89 </sect2>
90
91 <sect2>
92 <title>Collecting debugging information</title>
93
94 <para>For problem determination, it is often important to collect
95 debugging information which can be analyzed by VirtualBox support. This
96 section contains information about what kind of information can be
97 obtained.</para>
98
99 <para>Every time VirtualBox starts up a VM, a so-called <emphasis
100 role="bold">"release log file"</emphasis> is created containing lots of
101 information about the VM configuration and runtime events. The log file
102 is called <computeroutput><literal>VBox.log</literal></computeroutput>
103 and resides in the VM log file folder. Typically this will be a
104 directory like this:<screen>$HOME/VirtualBox VMs/{machinename}/Logs</screen></para>
105
106 <para>When starting a VM, the configuration file of the last run will be
107 renamed to <computeroutput>.1</computeroutput>, up to
108 <computeroutput>.3</computeroutput>. Sometimes when there is a problem,
109 it is useful to have a look at the logs. Also when requesting support
110 for VirtualBox, supplying the corresponding log file is
111 mandatory.</para>
112
113 <para>For convenience, for each virtual machine, the VirtualBox main
114 window can show these logs in a window. To access it, select a virtual
115 machine from the list on the left and select "Show logs..." from the
116 "Machine" window.</para>
117
118 <para>The release log file (VBox.log) contains a wealth of diagnostic
119 information, such as Host OS type and version, VirtualBox version and
120 build (32-bit or 64-bit), a complete dump of the guest's configuration
121 (CFGM), detailed information about the host CPU type and supported
122 features, whether hardware virtualization is enabled, information about
123 VT-x/AMD-V setup, state transitions (creating, running, paused,
124 stopping, etc.), guest BIOS messages, Guest Additions messages,
125 device-specific log entries and, at the end of execution, final guest
126 state and condensed statistics.</para>
127
128 <para>In case of crashes, it is very important to collect <emphasis
129 role="bold">crash dumps</emphasis>. This is true for both host and guest
130 crashes. For information about enabling core dumps on Linux, Solaris,
131 and OS X systems, refer to the core dump article on the VirtualBox
132 website.<footnote>
133 <para><ulink
134 url="http://www.virtualbox.org/wiki/Core_dump">http://www.virtualbox.org/wiki/Core_dump</ulink>.</para>
135 </footnote></para>
136
137 <para>For network related problems, it is often helpful to capture a
138 trace of network traffic. If the traffic is routed through an adapter on
139 the host, it is possible to use Wireshark or a similar tool to capture
140 the traffic there. However, this often also includes a lot of traffic
141 unrelated to the VM.</para>
142
143 <para>VirtualBox provides an ability to capture network traffic only on
144 a specific VM's network adapter. Refer to the network tracing article on
145 the VirtualBox website<footnote>
146 <para><ulink
147 url="http://www.virtualbox.org/wiki/Network_tips">http://www.virtualbox.org/wiki/Network_tips</ulink>.</para>
148 </footnote> for information on enabling this capture. The trace files
149 created by VirtualBox are in <computeroutput>.pcap</computeroutput>
150 format and can be easily analyzed with Wireshark.</para>
151 </sect2>
152
153 <sect2>
154 <title>The built-in VM debugger</title>
155
156 <para>VirtualBox includes a built-in VM debugger, which advanced users
157 may find useful. This debugger allows for examining and, to some extent,
158 controlling the VM state.<warning>
159 <para>Use the VM debugger at your own risk. There is no support for
160 it, and the following documentation is only made available for
161 advanced users with a very high level of familiarity with the
162 x86/AMD64 machine instruction set, as well as detailed knowledge of
163 the PC architecture. A degree of familiarity with the internals of
164 the guest OS in question may also be very helpful.</para>
165 </warning></para>
166
167 <para>The VM debugger is available in all regular production versions of
168 VirtualBox, but it is disabled by default because the average user will
169 have little use for it. There are two ways to access the
170 debugger:<itemizedlist>
171 <listitem>
172 <para>A debugger console window displayed alongside the VM</para>
173 </listitem>
174
175 <listitem>
176 <para>Via the <computeroutput>telnet</computeroutput> protocol at
177 port 5000</para>
178 </listitem>
179 </itemizedlist></para>
180
181 <para>The debugger can be enabled in three ways:<itemizedlist>
182 <listitem>
183 <para>Start the VM directly using <computeroutput>VirtualBox
184 --startvm</computeroutput>, with an additional
185 <computeroutput>--dbg</computeroutput>,
186 <computeroutput>--debug</computeroutput>, or
187 <computeroutput>--debug-command-line</computeroutput> argument.
188 See the VirtualBox usage help for details.</para>
189 </listitem>
190
191 <listitem>
192 <para>Set the
193 <computeroutput>VBOX_GUI_DBG_ENABLED</computeroutput> or
194 <computeroutput>VBOX_GUI_DBG_AUTO_SHOW</computeroutput>
195 environment variable to <computeroutput>true</computeroutput>
196 before launching the VirtualBox process. Setting these variables
197 (only their presence is checked) is effective even when the first
198 VirtualBox process is the VM selector window. VMs subsequently
199 launched from the selector will have the debugger enabled.</para>
200 </listitem>
201
202 <listitem>
203 <para>Set the <computeroutput>GUI/Dbg/Enabled</computeroutput>
204 extra data item to <computeroutput>true</computeroutput> before
205 launching the VM. This can be set globally or on a per VM
206 basis.</para>
207 </listitem>
208 </itemizedlist></para>
209
210 <para>A new 'Debug' menu entry will be added to the VirtualBox
211 application. This menu allows the user to open the debugger
212 console.</para>
213
214 <para>The VM debugger command syntax is loosely modeled on Microsoft and
215 IBM debuggers used on DOS, OS/2 and Windows. Users familiar with symdeb,
216 CodeView, or the OS/2 kernel debugger will find the VirtualBox VM
217 debugger familiar.</para>
218
219 <para>The most important command is
220 <computeroutput>help</computeroutput>. This will print brief usage help
221 for all debugger commands. The set of commands supported by the VM
222 debugger changes frequently and the
223 <computeroutput>help</computeroutput> command is always
224 up-to-date.</para>
225
226 <para>A brief summary of frequently used commands follows:<itemizedlist>
227 <listitem>
228 <para><computeroutput>stop</computeroutput> -- stops the VM
229 execution and enables single stepping</para>
230 </listitem>
231
232 <listitem>
233 <para><computeroutput>g</computeroutput> -- continue VM
234 execution</para>
235 </listitem>
236
237 <listitem>
238 <para><computeroutput>t</computeroutput> -- single step an
239 instruction</para>
240 </listitem>
241
242 <listitem>
243 <para><computeroutput>rg/rh/r</computeroutput> -- print the
244 guest/hypervisor/current registers</para>
245 </listitem>
246
247 <listitem>
248 <para><computeroutput>kg/kh/k</computeroutput> -- print the
249 guest/hypervisor/current call stack</para>
250 </listitem>
251
252 <listitem>
253 <para><computeroutput>da/db/dw/dd/dq</computeroutput> -- print
254 memory contents as ASCII/bytes/words/dwords/qwords</para>
255 </listitem>
256
257 <listitem>
258 <para><computeroutput>u</computeroutput> -- unassemble
259 memory</para>
260 </listitem>
261
262 <listitem>
263 <para><computeroutput>dg</computeroutput> -- print the guest's
264 GDT</para>
265 </listitem>
266
267 <listitem>
268 <para><computeroutput>di</computeroutput> -- print the guest's
269 IDT</para>
270 </listitem>
271
272 <listitem>
273 <para><computeroutput>dl</computeroutput> -- print the guest's
274 LDT</para>
275 </listitem>
276
277 <listitem>
278 <para><computeroutput>dt</computeroutput> -- print the guest's
279 TSS</para>
280 </listitem>
281
282 <listitem>
283 <para><computeroutput>dp*</computeroutput> -- print the guest's
284 page table structures</para>
285 </listitem>
286
287 <listitem>
288 <para><computeroutput>bp/br</computeroutput> -- set a
289 normal/recompiler breakpoint</para>
290 </listitem>
291
292 <listitem>
293 <para><computeroutput>bl</computeroutput> -- list
294 breakpoints</para>
295 </listitem>
296
297 <listitem>
298 <para><computeroutput>bc</computeroutput> -- clear a
299 breakpoint</para>
300 </listitem>
301
302 <listitem>
303 <para><computeroutput>writecore</computeroutput> -- writes a VM
304 core file to disk, refer <xref linkend="guestcoreformat" /></para>
305 </listitem>
306 </itemizedlist></para>
307
308 <para>See the built-in <computeroutput>help</computeroutput> for other
309 available commands.</para>
310
311 <para>The VM debugger supports symbolic debugging, although symbols for
312 guest code are often not available. For Solaris guests, the
313 <computeroutput>detect</computeroutput> command automatically determines
314 the guest OS version and locates kernel symbols in guest's memory.
315 Symbolic debugging is then available. For Linux guests, the
316 <computeroutput>detect</computeroutput> commands also determines the
317 guest OS version, but there are no symbols in the guest's memory. Kernel
318 symbols are available in the file
319 <computeroutput>/proc/kallsyms</computeroutput> on Linux guests. This
320 file must be copied to the host, for example using
321 <computeroutput>scp</computeroutput>. The
322 <computeroutput>loadmap</computeroutput> debugger command can be used to
323 make the symbol information available to the VM debugger. Note that the
324 <computeroutput>kallsyms</computeroutput> file contains the symbols for
325 the currently loaded modules; if the guest's configuration changes, the
326 symbols will change as well and must be updated.</para>
327
328 <para>For all guests, a simple way to verify that the correct symbols
329 are loaded is the <computeroutput>k</computeroutput> command. The guest
330 is normally idling and it should be clear from the symbolic information
331 that the guest operating system's idle loop is being executed.</para>
332
333 <para>Another group of debugger commands is the set of
334 <computeroutput>info</computeroutput> commands. Running
335 <computeroutput>info help</computeroutput> provides complete usage
336 information. The information commands provide ad-hoc data pertinent to
337 various emulated devices and aspects of the VMM. There is no general
338 guideline for using the <computeroutput>info</computeroutput> commands,
339 the right command to use depends entirely on the problem being
340 investigated. Some of the info commands are:<itemizedlist>
341 <listitem>
342 <para><computeroutput>cfgm</computeroutput> -- print a branch of
343 the configuration tree</para>
344 </listitem>
345
346 <listitem>
347 <para><computeroutput>cpuid</computeroutput> -- display the guest
348 CPUID leaves</para>
349 </listitem>
350
351 <listitem>
352 <para><computeroutput>ioport</computeroutput> -- print registered
353 I/O port ranges</para>
354 </listitem>
355
356 <listitem>
357 <para><computeroutput>mmio</computeroutput> -- print registered
358 MMIO ranges</para>
359 </listitem>
360
361 <listitem>
362 <para><computeroutput>mode</computeroutput> -- print the current
363 paging mode</para>
364 </listitem>
365
366 <listitem>
367 <para><computeroutput>pit</computeroutput> -- print the i8254 PIT
368 state</para>
369 </listitem>
370
371 <listitem>
372 <para><computeroutput>pic</computeroutput> -- print the i8259A PIC
373 state</para>
374 </listitem>
375
376 <listitem>
377 <para><computeroutput>ohci/ehci</computeroutput> -- print a subset
378 of the OHCI/EHCI USB controller state</para>
379 </listitem>
380
381 <listitem>
382 <para><computeroutput>pcnet0</computeroutput> -- print the PCnet
383 state</para>
384 </listitem>
385
386 <listitem>
387 <para><computeroutput>vgatext</computeroutput> -- print the
388 contents of the VGA framebuffer formatted as standard text
389 mode</para>
390 </listitem>
391
392 <listitem>
393 <para><computeroutput>timers</computeroutput> -- print all VM
394 timers</para>
395 </listitem>
396 </itemizedlist></para>
397
398 <para>The output of the <computeroutput>info</computeroutput> commands
399 generally requires in-depth knowledge of the emulated device and/or
400 VirtualBox VMM internals. However, when used properly, the information
401 provided can be invaluable.</para>
402 </sect2>
403
404 <sect2 id="guestcoreformat">
405 <title>VM core format</title>
406
407 <para>VirtualBox uses the 64-bit ELF format for its VM core files. The
408 VM core file contain the memory and CPU dumps of the VM and can be
409 useful for debugging your guest OS. The 64-bit ELF object format
410 specficiation can be obtained here: <literal><ulink
411 url="http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf">http://downloads.openwatcom.org/ftp/devel/docs/elf-64-gen.pdf</ulink></literal>.</para>
412
413 <para>The overall layout of the VM core format is as follows:</para>
414
415 <para><screen>[ ELF 64 Header]
416[ Program Header, type PT_NOTE ]
417 -&gt; offset to COREDESCRIPTOR
418[ Program Header, type PT_LOAD ] - one for each contiguous physical memory range
419 -&gt; Memory offset of range
420 -&gt; File offset
421[ Note Header, type NT_VBOXCORE ]
422[ COREDESCRIPTOR ]
423 -&gt; Magic
424 -&gt; VM core file version
425 -&gt; VBox version
426 -&gt; Number of vCPUs etc.
427[ Note Header, type NT_VBOXCPU ] - one for each vCPU
428[ vCPU 1 Note Header ]
429 [ CPUMCTX - vCPU 1 dump ]
430[ Additional Notes + Data ] - currently unused
431[ Memory dump ]</screen></para>
432
433 <para>The memory descriptors contain physical addresses relative to the
434 guest and not virtual addresses. Regions of memory such as MMIO regions
435 are not included in the core file.</para>
436
437 <para>The relevant data structures and definitions can be found in the
438 VirtualBox sources under the following header files:
439 <computeroutput>include/VBox/dbgfcorefmt.h</computeroutput>,
440 <computeroutput>include/VBox/cpumctx.h</computeroutput> and
441 <computeroutput>src/VBox/Runtime/include/internal/ldrELFCommon.h</computeroutput>.</para>
442
443 <para>The VM core file can be inspected using
444 <computeroutput>elfdump</computeroutput> and GNU
445 <computeroutput>readelf</computeroutput> or other similar
446 utilities.</para>
447 </sect2>
448 </sect1>
449
450 <sect1>
451 <title>General</title>
452
453 <sect2 id="configPeriodicFlush">
454 <title>Guest shows IDE/SATA errors for file-based images on slow host
455 file system</title>
456
457 <para>Occasionally, some host file systems provide very poor writing
458 performance and as a consequence cause the guest to time out IDE/SATA
459 commands. This is normal behavior and should normally cause no real
460 problems, as the guest should repeat commands that have timed out.
461 However some guests (e.g. some Linux versions) have severe problems if a
462 write to an image file takes longer than about 15 seconds. Some file
463 systems however require more than a minute to complete a single write,
464 if the host cache contains a large amount of data that needs to be
465 written.</para>
466
467 <para>The symptom for this problem is that the guest can no longer
468 access its files during large write or copying operations, usually
469 leading to an immediate hang of the guest.</para>
470
471 <para>In order to work around this problem (the true fix is to use a
472 faster file system that doesn't exhibit such unacceptable write
473 performance), it is possible to flush the image file after a certain
474 amount of data has been written. This interval is normally infinite, but
475 can be configured individually for each disk of a VM.</para>
476
477 <para>For IDE disks use the following command:</para>
478
479 <screen>VBoxManage setextradata "VM name"
480 "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/FlushInterval" [b]</screen>
481
482 <para>For SATA disks use the following command:</para>
483
484 <screen>VBoxManage setextradata "VM name"
485 "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/FlushInterval" [b]</screen>
486
487 <para>The value [x] that selects the disk for IDE is 0 for the master
488 device on the first channel, 1 for the slave device on the first
489 channel, 2 for the master device on the second channel or 3 for the
490 master device on the second channel. For SATA use values between 0 and
491 29. Only disks support this configuration option; it must not be set for
492 CD/DVD drives.</para>
493
494 <para>The unit of the interval [b] is the number of bytes written since
495 the last flush. The value for it must be selected so that the occasional
496 long write delays do not occur. Since the proper flush interval depends
497 on the performance of the host and the host filesystem, finding the
498 optimal value that makes the problem disappear requires some
499 experimentation. Values between 1000000 and 10000000 (1 to 10 megabytes)
500 are a good starting point. Decreasing the interval both decreases the
501 probability of the problem and the write performance of the guest.
502 Setting the value unnecessarily low will cost performance without
503 providing any benefits. An interval of 1 will cause a flush for each
504 write operation and should solve the problem in any case, but has a
505 severe write performance penalty.</para>
506
507 <para>Providing a value of 0 for [b] is treated as an infinite flush
508 interval, effectively disabling this workaround. Removing the extra data
509 key by specifying no value for [b] has the same effect.</para>
510 </sect2>
511
512 <sect2>
513 <title>Responding to guest IDE/SATA flush requests</title>
514
515 <para>If desired, the virtual disk images can be flushed when the guest
516 issues the IDE FLUSH CACHE command. Normally these requests are ignored
517 for improved performance. The parameters below are only accepted for
518 disk drives. They must not be set for DVD drives.</para>
519
520 <para>To enable flushing for IDE disks, issue the following
521 command:</para>
522
523 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/LUN#[x]/Config/IgnoreFlush" 0</screen>
524
525 <para>The value [x] that selects the disk is 0 for the master device on
526 the first channel, 1 for the slave device on the first channel, 2 for
527 the master device on the second channel or 3 for the master device on
528 the second channel.</para>
529
530 <para>To enable flushing for SATA disks, issue the following
531 command:</para>
532
533 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/ahci/0/LUN#[x]/Config/IgnoreFlush" 0</screen>
534
535 <para>The value [x] that selects the disk can be a value between 0 and
536 29.</para>
537
538 <para>Note that this doesn't affect the flushes performed according to
539 the configuration described in <xref linkend="configPeriodicFlush"
540 xrefstyle="template: %n" />. Restoring the default of ignoring flush
541 commands is possible by setting the value to 1 or by removing the
542 key.</para>
543 </sect2>
544
545 <sect2 id="hostPowerMgmt">
546 <title>Poor performance caused by host power management</title>
547
548 <para>On some hardware platforms and operating systems, virtualization
549 peformance is negatively affected by host CPU power management. The
550 symptoms may be choppy audio in the guest or erratic guest clock
551 behavior.</para>
552
553 <para>Some of the problems may be caused by firmware and/or host
554 operating system bugs. Therefore, updating the firmware and applying
555 operating systems fixes is recommended.</para>
556
557 <para>For optimal virtualization performance, the C1E power state
558 support in the system's BIOS should be disabled, if such a setting is
559 available (not all systems support the C1E power state). Disabling other
560 power management settings may also improve performance. However, a
561 balance between performance and power consumption must always be
562 considered.</para>
563 </sect2>
564
565 <sect2 id="gui2D_grayedout">
566 <title>GUI: 2D Video Acceleration option is grayed out</title>
567
568 <para>To use 2D Video Acceleration within VirtualBox, your host's video
569 card should support certain OpenGL extensions. On startup, VirtualBox
570 checks for those extensions, and, if the test fails, this option is
571 silently grayed out.</para>
572
573 <para>To find out why it has failed, you can manually execute the
574 following command:</para>
575
576 <screen>VBoxTestOGL --log "log_file_name" --test 2D</screen>
577
578 <para>It will list the required OpenGL extensions one by one and will
579 show you which one failed the test. This usually means that you are
580 running an outdated or misconfigured OpenGL driver on your host. It can
581 also mean that your video chip is lacking require functionality.</para>
582 </sect2>
583 </sect1>
584
585 <sect1>
586 <title>Windows guests</title>
587
588 <sect2>
589 <title>Windows bluescreens after changing VM configuration</title>
590
591 <para>Changing certain virtual machine settings can cause Windows guests
592 to fail during start up with a bluescreen. This may happen if you change
593 VM settings after installing Windows, or if you copy a disk image with
594 an already installed Windows to a newly created VM which has settings
595 that differ from the original machine.</para>
596
597 <para>This applies in particular to the following settings:<itemizedlist>
598 <listitem>
599 <para>The ACPI and I/O APIC settings should never be changed after
600 installing Windows. Depending on the presence of these hardware
601 features, the Windows installation program chooses special kernel
602 and device driver versions and will fail to startup should these
603 hardware features be removed. (Enabling them for a Windows VM
604 which was installed without them does not cause any harm. However,
605 Windows will not use these features in this case.)</para>
606 </listitem>
607
608 <listitem>
609 <para>Changing the storage controller hardware will cause bootup
610 failures as well. This might also apply to you if you copy a disk
611 image from an older version of VirtualBox to a virtual machine
612 created with a newer VirtualBox version; the default subtype of
613 IDE controller hardware was changed from PIIX3 to PIIX4 with
614 VirtualBox 2.2. Make sure these settings are identical.</para>
615 </listitem>
616 </itemizedlist></para>
617 </sect2>
618
619 <sect2>
620 <title>Windows 0x101 bluescreens with SMP enabled (IPI timeout)</title>
621
622 <para>If a VM is configured to have more than one processor (symmetrical
623 multiprocessing, SMP), some configurations of Windows guests crash with
624 an 0x101 error message, indicating a timeout for inter-processor
625 interrupts (IPIs). These interrupts synchronize memory management
626 between processors.</para>
627
628 <para>According to Microsoft, this is due to a race condition in
629 Windows. A hotfix is available.<footnote>
630 <para>See <ulink
631 url="http://support.microsoft.com/kb/955076">http://support.microsoft.com/kb/955076</ulink>.</para>
632 </footnote> If this does not help, please reduce the number of virtual
633 processors to 1.</para>
634 </sect2>
635
636 <sect2>
637 <title>Windows 2000 installation failures</title>
638
639 <para>When installing Windows 2000 guests, you might run into one of the
640 following issues:</para>
641
642 <itemizedlist>
643 <listitem>
644 <para>Installation reboots, usually during component
645 registration.</para>
646 </listitem>
647
648 <listitem>
649 <para>Installation fills the whole hard disk with empty log
650 files.</para>
651 </listitem>
652
653 <listitem>
654 <para>Installation complains about a failure installing
655 <literal>msgina.dll</literal>.</para>
656 </listitem>
657 </itemizedlist>
658
659 <para>These problems are all caused by a bug in the hard disk driver of
660 Windows 2000. After issuing a hard disk request, there is a race
661 condition in the Windows driver code which leads to corruption if the
662 operation completes too fast, i.e. the hardware interrupt from the IDE
663 controller arrives too soon. With physical hardware, there is a
664 guaranteed delay in most systems so the problem is usually hidden there
665 (however it should be possible to reproduce it on physical hardware as
666 well). In a virtual environment, it is possible for the operation to be
667 done immediately (especially on very fast systems with multiple CPUs)
668 and the interrupt is signaled sooner than on a physical system. The
669 solution is to introduce an artificial delay before delivering such
670 interrupts. This delay can be configured for a VM using the following
671 command:</para>
672
673 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</screen>
674
675 <para>This sets the delay to one millisecond. In case this doesn't help,
676 increase it to a value between 1 and 5 milliseconds. Please note that
677 this slows down disk performance. After installation, you should be able
678 to remove the key (or set it to 0).</para>
679 </sect2>
680
681 <sect2>
682 <title>How to record bluescreen information from Windows guests</title>
683
684 <para>When Windows guests run into a kernel crash, they display the
685 infamous bluescreen. Depending on how Windows is configured, the
686 information will remain on the screen until the machine is restarted or
687 it will reboot automatically. During installation, Windows is usually
688 configured to reboot automatically. With automatic reboots, there is no
689 chance to record the bluescreen information which might be important for
690 problem determination.</para>
691
692 <para>VirtualBox provides a method of halting a guest when it wants to
693 perform a reset. In order to enable this feature, issue the following
694 command:</para>
695
696 <para><screen>VBoxManage setextradata "VM name" "VBoxInternal/PDM/HaltOnReset" 1</screen></para>
697 </sect2>
698
699 <sect2>
700 <title>No networking in Windows Vista guests</title>
701
702 <para>With Windows Vista, Microsoft dropped support for the AMD PCNet
703 card that VirtualBox used to provide as the default virtual network card
704 before version 1.6.0. For Windows Vista guests, VirtualBox now uses an
705 Intel E1000 card by default.</para>
706
707 <para>If, for some reason, you still want to use the AMD card,
708 VirtualBox ships a 32-bit driver for that card with the Windows Guest
709 Additions; see <xref linkend="vista_networking" />.</para>
710 </sect2>
711
712 <sect2>
713 <title>Windows guests may cause a high CPU load</title>
714
715 <para>Several background applications of Windows guests, especially
716 virus scanners, are known to increases the CPU load notably even if the
717 guest appears to be idle. We recommend to deactivate virus scanners
718 within virtualized guests if possible.</para>
719 </sect2>
720
721 <sect2>
722 <title>Long delays when accessing shared folders</title>
723
724 <para>The performance for accesses to shared folders from a Windows
725 guest might be decreased due to delays during the resolution of the
726 VirtualBox shared folders name service. To fix these delays, add the
727 following entries to the file
728 <computeroutput>\windows\system32\drivers\etc\lmhosts</computeroutput>
729 of the Windows guest:</para>
730
731 <screen>255.255.255.255 VBOXSVR #PRE
732255.255.255.255 VBOXSRV #PRE</screen>
733
734 <para>After doing this change, a reboot of the guest is required.</para>
735 </sect2>
736 </sect1>
737
738 <sect1>
739 <title>Linux and X11 guests</title>
740
741 <sect2>
742 <title>Linux guests may cause a high CPU load</title>
743
744 <para>Some Linux guests may cause a high CPU load even if the guest
745 system appears to be idle. This can be caused by a high timer frequency
746 of the guest kernel. Some Linux distributions, for example Fedora, ship
747 a Linux kernel configured for a timer frequency of <emphasis
748 role="bold"> 1000Hz</emphasis>. We recommend to recompile the guest
749 kernel and to select a timer frequency of 100Hz.</para>
750
751 <para>Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of
752 release 4.7 and 5.1 as well as kernels of related Linux distributions
753 (for instance CentOS and Oracle Enterprise Linux) support a kernel
754 parameter <emphasis>divider=N</emphasis>. Hence, such kernels support a
755 lower timer frequency without recompilation. We suggest to add the
756 kernel parameter <emphasis>divider=10</emphasis> to select a guest
757 kernel timer frequency of 100Hz.</para>
758 </sect2>
759
760 <sect2>
761 <title>AMD Barcelona CPUs</title>
762
763 <para>Most Linux-based guests will fail with AMD Phenoms or
764 Barcelona-level Opterons due to a bug in the Linux kernel. Enable the
765 I/O-APIC to work around the problem (see <xref
766 linkend="settings-general-advanced" />).</para>
767 </sect2>
768
769 <sect2 id="trouble-linux-buggy">
770 <title>Buggy Linux 2.6 kernel versions</title>
771
772 <para>The following bugs in Linux kernels prevent them from executing
773 correctly in VirtualBox, causing VM boot crashes:<itemizedlist>
774 <listitem>
775 <para>The Linux kernel version 2.6.18 (and some 2.6.17 versions)
776 introduced a race condition that can cause boot crashes in
777 VirtualBox. Please use a kernel version 2.6.19 or later.</para>
778 </listitem>
779
780 <listitem>
781 <para>With hardware virtualization and the I/O APIC enabled,
782 kernels before 2.6.24-rc6 may panic on boot with the following
783 message:<screen>Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with
784apic=debug and send a report. Then try booting with the 'noapic' option</screen></para>
785
786 <para>If you see this message, either disable hardware
787 virtualization or the I/O APIC (see <xref
788 linkend="settings-system" />), or upgrade the guest to a newer
789 kernel.<footnote>
790 <para>See <ulink
791 url="http://www.mail-archive.com/[email protected]/msg30813.html">http://www.mail-archive.com/[email protected]/msg30813.html</ulink>
792 for details about the kernel fix.</para>
793 </footnote></para>
794 </listitem>
795 </itemizedlist></para>
796 </sect2>
797
798 <sect2>
799 <title>Shared clipboard, auto-resizing and seamless desktop in X11
800 guests</title>
801
802 <para>Guest desktop services in guests running the X11 window system
803 (Solaris, Linux and others) are provided by a guest service called
804 <computeroutput>VBoxClient</computeroutput>, which runs under the ID of
805 the user who started the desktop session and is automatically started
806 using the following command lines <screen>VBoxClient --clipboard
807VBoxClient --display
808VBoxClient --seamless</screen> when your X11 user session is started if you
809 are using a common desktop environment (Gnome, KDE and others). If a
810 particular desktop service is not working correctly, it is worth
811 checking whether the process which should provide it is running.</para>
812
813 <para>The <computeroutput>VBoxClient</computeroutput> processes create
814 files in the user's home directory with names of the form
815 <computeroutput>.vboxclient-*.pid</computeroutput> when they are running
816 in order to prevent a given service from being started twice. It can
817 happen due to misconfiguration that these files are created owned by
818 root and not deleted when the services are stopped, which will prevent
819 them from being started in future sessions. If the services cannot be
820 started, you may wish to check whether these files still exist.</para>
821 </sect2>
822 </sect1>
823
824 <sect1>
825 <title>Windows hosts</title>
826
827 <sect2>
828 <title>VBoxSVC out-of-process COM server issues</title>
829
830 <para>VirtualBox makes use of the Microsoft Component Object Model (COM)
831 for inter- and intra-process communication. This allows VirtualBox to
832 share a common configuration among different virtual machine processes
833 and provide several user interface options based on a common
834 architecture. All global status information and configuration is
835 maintained by the process <computeroutput>VBoxSVC.exe</computeroutput>,
836 which is an out-of-process COM server. Whenever a VirtualBox process is
837 started, it requests access to the COM server and Windows automatically
838 starts the process. Note that it should never be started by the end
839 user.</para>
840
841 <para>When the last process disconnects from the COM server, it will
842 terminate itself after some seconds. The VirtualBox configuration (XML
843 files) is maintained and owned by the COM server and the files are
844 locked whenever the server runs.</para>
845
846 <para>In some cases - such as when a virtual machine is terminated
847 unexpectedly - the COM server will not notice that the client is
848 disconnected and stay active for a longer period (10 minutes or so)
849 keeping the configuration files locked. In other rare cases the COM
850 server might experience an internal error and subsequently other
851 processes fail to initialize it. In these situations, it is recommended
852 to use the Windows task manager to kill the process
853 <computeroutput>VBoxSVC.exe</computeroutput>.</para>
854 </sect2>
855
856 <sect2>
857 <title>CD/DVD changes not recognized</title>
858
859 <para>In case you have assigned a physical CD/DVD drive to a guest and
860 the guest does not notice when the medium changes, make sure that the
861 Windows media change notification (MCN) feature is not turned off. This
862 is represented by the following key in the Windows registry:<screen><literal>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</literal></screen>Certain
863 applications may disable this key against Microsoft's advice. If it is
864 set to 0, change it to 1 and reboot your system. VirtualBox relies on
865 Windows notifying it of media changes.</para>
866 </sect2>
867
868 <sect2>
869 <title>Sluggish response when using Microsoft RDP client</title>
870
871 <para>If connecting to a Virtual Machine via the Microsoft RDP client
872 (called Remote Desktop Connection), there can be large delays between
873 input (moving the mouse over a menu is the most obvious situation) and
874 output. This is because this RDP client collects input for a certain
875 time before sending it to the VRDP server built into VirtualBox.</para>
876
877 <para>The interval can be decreased by setting a Windows registry key to
878 smaller values than the default of 100. The key does not exist initially
879 and must be of type DWORD. The unit for its values is milliseconds.
880 Values around 20 are suitable for low-bandwidth connections between the
881 RDP client and server. Values around 4 can be used for a gigabit
882 Ethernet connection. Generally values below 10 achieve a performance
883 that is very close to that of the local input devices and screen of the
884 host on which the Virtual Machine is running.</para>
885
886 <para>Depending whether the setting should be changed for an individual
887 user or for the system, either</para>
888
889 <screen>HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
890
891 <para>or</para>
892
893 <screen>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
894
895 <para>can be set appropriately.</para>
896 </sect2>
897
898 <sect2>
899 <title>Running an iSCSI initiator and target on a single system</title>
900
901 <para>Deadlocks can occur on a Windows host when attempting to access an
902 iSCSI target running in a guest virtual machine with an iSCSI initiator
903 (e.g. Microsoft iSCSI Initiator) that is running on the host. This is
904 caused by a flaw in the Windows cache manager component, and causes
905 sluggish host system response for several minutes, followed by a
906 "Delayed Write Failed" error message in the system tray or in a separate
907 message window. The guest is blocked during that period and may show
908 error messages or become unstable.</para>
909
910 <para>Setting the environment variable
911 <computeroutput>VBOX_DISABLE_HOST_DISK_CACHE</computeroutput> to 1 will
912 enable a workaround for this problem until Microsoft addresses the
913 issue. For example, open a command prompt window and start VirtualBox
914 like this:</para>
915
916 <screen>set VBOX_DISABLE_HOST_DISK_CACHE=1
917VirtualBox</screen>
918
919 <para>While this will decrease guest disk performance (especially
920 writes), it does not affect the performance of other applications
921 running on the host.</para>
922 </sect2>
923
924 <sect2>
925 <title>Bridged Networking</title>
926
927 <para>In case no Bridge adapters are listed in bridged networking
928 settings UI, this typically means that Bridged networking driver was not
929 installed properly on your host. This could be due to any of the
930 following reasons: <itemizedlist>
931 <listitem>
932 <para>The maximum allowed filter count is reached on the host. The
933 MSI log would mention the 0x8004a029 error code returned on NetFlt
934 network component install: "VBoxNetCfgWinInstallComponent: Install
935 failed, hr (0x8004a029)". The solution would typically be to
936 increase the maximum filter count under
937 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters
938 (the maximum number allowed is 14), reboot and try to re-install
939 the VirtualBox</para>
940 </listitem>
941
942 <listitem>
943 <para>Inf cache is corrupt. The %windir%\inf\setupapi.log (for XP)
944 or %windir%\inf\setupapi.dev.log (for Vista+) would typically
945 mention the failure to find a suitable driver package for either
946 sun_VBoxNetFlt or sun_VBoxNetFltmp components. The solution is to
947 uninstall VirtualBox, remove the inf cache
948 (%windir%\inf\INFCACHE.1, reboot and try to re-install the
949 VirtualBox</para>
950 </listitem>
951 </itemizedlist></para>
952 </sect2>
953
954 <sect2>
955 <title>Host-Only Networking</title>
956
957 <para>Host-Only adapter creation (either via GUI or VBoxManage) may fail
958 due to any of the following reasons: <itemizedlist>
959 <listitem>
960 <para>Inf cache is corrupt. The %windir%\inf\setupapi.log (for XP)
961 or %windir%\inf\setupapi.dev.log (for Vista+) would typically
962 mention the failure to find a suitable driver package for
963 sun_VBoxNetAdp component. The solution is to uninstall VirtualBox,
964 remove the inf cache (%windir%\inf\INFCACHE.1, reboot and try to
965 re-install the VirtualBox</para>
966 </listitem>
967 </itemizedlist></para>
968 </sect2>
969 </sect1>
970
971 <sect1>
972 <title>Linux hosts</title>
973
974 <sect2 id="linuxkernelmodulefailstoload">
975 <title>Linux kernel module refuses to load</title>
976
977 <para>If the VirtualBox kernel module
978 (<computeroutput>vboxdrv</computeroutput>) refuses to load, i.e. you get
979 an "Error inserting vboxdrv: Invalid argument", check (as root) the
980 output of the <computeroutput>dmesg</computeroutput> command to find out
981 why the load failed. Most probably the kernel disagrees with the version
982 of the gcc used to compile the module. Make sure that you use the same
983 compiler as used to build the kernel.</para>
984 </sect2>
985
986 <sect2>
987 <title>Linux host CD/DVD drive not found</title>
988
989 <para>If you have configured a virtual machine to use the host's CD/DVD
990 drive, but this does not appear to work, make sure that the current user
991 has permission to access the corresponding Linux device file
992 (<computeroutput>/dev/hdc</computeroutput> or
993 <computeroutput>/dev/scd0</computeroutput> or
994 <computeroutput>/dev/cdrom</computeroutput> or similar). On most
995 distributions, the user must be added to a corresponding group (usually
996 called <computeroutput>cdrom</computeroutput> or
997 <computeroutput>cdrw</computeroutput>).</para>
998 </sect2>
999
1000 <sect2>
1001 <title>Linux host CD/DVD drive not found (older distributions)</title>
1002
1003 <para>On older Linux distributions, if your CD/DVD device has a
1004 different name, VirtualBox may be unable to find it. On older Linux
1005 hosts, VirtualBox performs the following steps to locate your CD/DVD
1006 drives:</para>
1007
1008 <para><orderedlist>
1009 <listitem>
1010 <para>VirtualBox examines if the environment variable
1011 <computeroutput>VBOX_CDROM</computeroutput> is defined (see
1012 below). If so, VirtualBox omits all the following checks.</para>
1013 </listitem>
1014
1015 <listitem>
1016 <para>VirtualBox tests if
1017 <computeroutput>/dev/cdrom</computeroutput> works.</para>
1018 </listitem>
1019
1020 <listitem>
1021 <para>In addition, VirtualBox checks if any CD/DVD drives are
1022 currently mounted by checking
1023 <computeroutput>/etc/mtab</computeroutput>.</para>
1024 </listitem>
1025
1026 <listitem>
1027 <para>In addition, VirtualBox checks if any of the entries in
1028 <computeroutput>/etc/fstab</computeroutput> point to CD/DVD
1029 devices.</para>
1030 </listitem>
1031 </orderedlist></para>
1032
1033 <para>In other words, you can try to set VBOX_CDROM to contain a list of
1034 your CD/DVD devices, separated by colons, for example as follows:</para>
1035
1036 <para><screen>export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'</screen>On
1037 modern Linux distributions, VirtualBox uses the hardware abstraction
1038 layer (hal) to locate CD and DVD hardware.</para>
1039 </sect2>
1040
1041 <sect2>
1042 <title>Linux host floppy not found</title>
1043
1044 <para>The previous instructions (for CD and DVD drives) apply
1045 accordingly to floppy disks, except that on older distributions
1046 VirtualBox tests for <computeroutput>/dev/fd*</computeroutput> devices
1047 by default, and this can be overridden with the
1048 <computeroutput>VBOX_FLOPPY</computeroutput> environment
1049 variable.</para>
1050 </sect2>
1051
1052 <sect2>
1053 <title>Strange guest IDE error messages when writing to CD/DVD</title>
1054
1055 <para>If the experimental CD/DVD writer support is enabled with an
1056 incorrect VirtualBox, host or guest configuration, it is possible that
1057 any attempt to access the CD/DVD writer fails and simply results in
1058 guest kernel error messages (for Linux guests) or application error
1059 messages (for Windows guests). VirtualBox performs the usual consistency
1060 checks when a VM is powered up (in particular it aborts with an error
1061 message if the device for the CD/DVD writer is not writable by the user
1062 starting the VM), but it cannot detect all misconfigurations. The
1063 necessary host and guest OS configuration is not specific for
1064 VirtualBox, but a few frequent problems are listed here which occurred
1065 in connection with VirtualBox.</para>
1066
1067 <para>Special care must be taken to use the correct device. The
1068 configured host CD/DVD device file name (in most cases
1069 <literal>/dev/cdrom</literal>) must point to the device that allows
1070 writing to the CD/DVD unit. For CD/DVD writer units connected to a SCSI
1071 controller or to a IDE controller that interfaces to the Linux SCSI
1072 subsystem (common for some SATA controllers), this must refer to the
1073 SCSI device node (e.g. <literal>/dev/scd0</literal>). Even for IDE
1074 CD/DVD writer units this must refer to the appropriate SCSI CD-ROM
1075 device node (e.g. <literal>/dev/scd0</literal>) if the
1076 <literal>ide-scsi</literal> kernel module is loaded. This module is
1077 required for CD/DVD writer support with all Linux 2.4 kernels and some
1078 early 2.6 kernels. Many Linux distributions load this module whenever a
1079 CD/DVD writer is detected in the system, even if the kernel would
1080 support CD/DVD writers without the module. VirtualBox supports the use
1081 of IDE device files (e.g. <literal>/dev/hdc</literal>), provided the
1082 kernel supports this and the <literal>ide-scsi</literal> module is not
1083 loaded.</para>
1084
1085 <para>Similar rules (except that within the guest the CD/DVD writer is
1086 always an IDE device) apply to the guest configuration. Since this setup
1087 is very common, it is likely that the default configuration of the guest
1088 works as expected.</para>
1089 </sect2>
1090
1091 <sect2>
1092 <title>VBoxSVC IPC issues</title>
1093
1094 <para>On Linux, VirtualBox makes use of a custom version of Mozilla
1095 XPCOM (cross platform component object model) for inter- and
1096 intra-process communication (IPC). The process
1097 <computeroutput>VBoxSVC</computeroutput> serves as a communication hub
1098 between different VirtualBox processes and maintains the global
1099 configuration, i.e. the XML database. When starting a VirtualBox
1100 component, the processes <computeroutput>VBoxSVC</computeroutput> and
1101 <computeroutput>VirtualBoxXPCOMIPCD</computeroutput> are started
1102 automatically. They are only accessible from the user account they are
1103 running under. <computeroutput>VBoxSVC</computeroutput> owns the
1104 VirtualBox configuration database which normally resides in
1105 <computeroutput>~/.VirtualBox</computeroutput>. While it is running, the
1106 configuration files are locked. Communication between the various
1107 VirtualBox components and <computeroutput>VBoxSVC</computeroutput> is
1108 performed through a local domain socket residing in
1109 <computeroutput>/tmp/.vbox-&lt;username&gt;-ipc</computeroutput>. In
1110 case there are communication problems (i.e. a VirtualBox application
1111 cannot communicate with <computeroutput>VBoxSVC</computeroutput>),
1112 terminate the daemons and remove the local domain socket
1113 directory.</para>
1114 </sect2>
1115
1116 <sect2 id="usb_linux">
1117 <title>USB not working</title>
1118
1119 <para>If USB is not working on your Linux host, make sure that the
1120 current user is a member of the
1121 <computeroutput>vboxusers</computeroutput> group. On older hosts, you
1122 need to make sure that the user has permission to access the USB
1123 filesystem (<computeroutput>usbfs</computeroutput>), which VirtualBox
1124 relies on to retrieve valid information about your host's USB devices.
1125 The rest of this section only applies to those older systems.</para>
1126
1127 <para>As <computeroutput>usbfs</computeroutput> is a virtual filesystem,
1128 a <computeroutput>chmod</computeroutput> on
1129 <computeroutput>/proc/bus/usb</computeroutput> has no effect. The
1130 permissions for <computeroutput>usbfs</computeroutput> can therefore
1131 <emphasis>only</emphasis> be changed by editing the
1132 <computeroutput>/etc/fstab</computeroutput> file.</para>
1133
1134 <para>For example, most Linux distributions have a user group called
1135 <computeroutput>usb</computeroutput> or similar, of which the current
1136 user must be a member. To give all users of that group access to usbfs,
1137 make sure the following line is present:<screen># 85 is the USB group
1138none /proc/bus/usb usbfs devgid=85,devmode=664 0 0</screen>Replace
1139 85 with the group ID that matches your system (search
1140 <computeroutput>/etc/group</computeroutput> for "usb" or similar).
1141 Alternatively, if you don't mind the security hole, give all users
1142 access to USB by changing "664" to "666".</para>
1143
1144 <para>The various distributions are very creative from which script the
1145 <computeroutput>usbfs</computeroutput> filesystem is mounted. Sometimes
1146 the command is hidden in unexpected places. For SuSE 10.0 the mount
1147 command is part of the udev configuration file
1148 <computeroutput>/etc/udev/rules.d/50-udev.rules</computeroutput>. As
1149 this distribution has no user group called
1150 <computeroutput>usb</computeroutput>, you may e.g. use the
1151 <computeroutput>vboxusers</computeroutput> group which was created by
1152 the VirtualBox installer. Since group numbers are allocated dynamically,
1153 the following example uses 85 as a placeholder. Modify the line
1154 containing (a linebreak has been inserted to improve
1155 readability)<screen>DEVPATH="/module/usbcore", ACTION=="add",
1156 RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb"</screen> and add the
1157 necessary options (make sure that everything is in a single
1158 line):<screen>DEVPATH="/module/usbcore", ACTION=="add",
1159 RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb -o devgid=85,devmode=664"</screen></para>
1160
1161 <para>Debian Etch has the mount command in
1162 <computeroutput>/etc/init.d/mountkernfs.sh</computeroutput>. Since that
1163 distribution has no group <computeroutput>usb</computeroutput>, it is
1164 also the easiest solution to allow all members of the group
1165 <computeroutput>vboxusers</computeroutput> to access the USB subsystem.
1166 Modify the line <screen>domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev</screen>
1167 so that it contains <screen>domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=85,devmode=664</screen>
1168 As usual, replace the 85 with the actual group number which should get
1169 access to USB devices.</para>
1170
1171 <para>Other distributions do similar operations in scripts stored in the
1172 <computeroutput>/etc/init.d</computeroutput> directory.</para>
1173 </sect2>
1174
1175 <sect2>
1176 <title>PAX/grsec kernels</title>
1177
1178 <para>Linux kernels including the grsec patch (see <literal><ulink
1179 url="http://www.grsecurity.net/">http://www.grsecurity.net/</ulink></literal>)
1180 and derivates have to disable PAX_MPROTECT for the VBox binaries to be
1181 able to start a VM. The reason is that VBox has to create executable
1182 code on anonymous memory.</para>
1183 </sect2>
1184
1185 <sect2>
1186 <title>Linux kernel vmalloc pool exhausted</title>
1187
1188 <para>When running a large number of VMs with a lot of RAM on a Linux
1189 system (say 20 VMs with 1GB of RAM each), additional VMs might fail to
1190 start with a kernel error saying that the vmalloc pool is exhausted and
1191 should be extended. The error message also tells you to specify
1192 <computeroutput>vmalloc=256MB</computeroutput> in your kernel parameter
1193 list. If adding this parameter to your GRUB or LILO configuration makes
1194 the kernel fail to boot (with a weird error message such as "failed to
1195 mount the root partition"), then you have probably run into a memory
1196 conflict of your kernel and initial RAM disk. This can be solved by
1197 adding the following parameter to your GRUB configuration:</para>
1198
1199 <screen>uppermem 524288</screen>
1200 </sect2>
1201 </sect1>
1202
1203 <sect1>
1204 <title>Solaris hosts</title>
1205
1206 <sect2>
1207 <title>Cannot start VM, not enough contiguous memory</title>
1208
1209 <para>The ZFS file system is known to use all available RAM as cache if
1210 the default system settings are not changed. This may lead to a heavy
1211 fragmentation of the host memory preventing VirtualBox VMs from being
1212 started. We recommend to limit the ZFS cache by adding a line<screen>set zfs:zfs_arc_max = xxxx</screen>
1213 to /etc/system where <computeroutput>xxxx</computeroutput> bytes is the
1214 amount of memory usable for the ZFS cache.</para>
1215 </sect2>
1216
1217 <sect2>
1218 <title>VM aborts with out of memory errors on Solaris 10 hosts</title>
1219
1220 <para>32-bit Solaris 10 hosts (bug 1225025) require swap space equal to,
1221 or greater than the host's physical memory size. For example, 8 GB
1222 physical memory would require at least 8 GB swap. This can be configured
1223 during a Solaris 10 install by choosing a 'custom install' and changing
1224 the default partitions.</para>
1225
1226 <note>
1227 <para>This restriction applies only to 32-bit Solaris hosts, 64-bit
1228 hosts are not affected!</para>
1229 </note>
1230
1231 <para>For existing Solaris 10 installs, an additional swap image needs
1232 to be mounted and used as swap. Hence if you have 1 GB swap and 8 GB of
1233 physical memory, you require to add 7 GB more swap. This can be done as
1234 follows:</para>
1235
1236 <para>For ZFS (as root user):</para>
1237
1238 <para><screen>zfs create -V 8gb /_&lt;ZFS volume&gt;_/swap
1239swap -a /dev/zvol/dsk/_&lt;ZFS volume&gt;_/swap</screen></para>
1240
1241 <para>To mount if after reboot, add the following line to
1242 /etc/vfstab:</para>
1243
1244 <screen>/dev/zvol/dsk/_&lt;ZFS volume&gt;_/swap - - swap - no -</screen>
1245
1246 <para>Alternatively, you could grow the existing swap using:</para>
1247
1248 <screen>zfs set volsize=8G rpool/swap</screen>
1249
1250 <para>And reboot the system for the changes to take effect.</para>
1251
1252 <para>For UFS (as root user):</para>
1253
1254 <screen>mkfile 7g /path/to/swapfile.img
1255swap -a /path/to/swapfile.img</screen>
1256
1257 <para>To mount it after reboot, add the following line to
1258 /etc/vfstab:</para>
1259
1260 <screen>/path/to/swap.img - - swap - no -</screen>
1261 </sect2>
1262 </sect1>
1263</chapter>
Note: See TracBrowser for help on using the repository browser.

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