VirtualBox

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

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

doc: bridged & host-only troubleshooting on win hosts

File size: 56.1 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 </sect1>
545
546 <sect1>
547 <title>Windows guests</title>
548
549 <sect2>
550 <title>Windows bluescreens after changing VM configuration</title>
551
552 <para>Changing certain virtual machine settings can cause Windows guests
553 to fail during start up with a bluescreen. This may happen if you change
554 VM settings after installing Windows, or if you copy a disk image with
555 an already installed Windows to a newly created VM which has settings
556 that differ from the original machine.</para>
557
558 <para>This applies in particular to the following settings:<itemizedlist>
559 <listitem>
560 <para>The ACPI and I/O APIC settings should never be changed after
561 installing Windows. Depending on the presence of these hardware
562 features, the Windows installation program chooses special kernel
563 and device driver versions and will fail to startup should these
564 hardware features be removed. (Enabling them for a Windows VM
565 which was installed without them does not cause any harm. However,
566 Windows will not use these features in this case.)</para>
567 </listitem>
568
569 <listitem>
570 <para>Changing the storage controller hardware will cause bootup
571 failures as well. This might also apply to you if you copy a disk
572 image from an older version of VirtualBox to a virtual machine
573 created with a newer VirtualBox version; the default subtype of
574 IDE controller hardware was changed from PIIX3 to PIIX4 with
575 VirtualBox 2.2. Make sure these settings are identical.</para>
576 </listitem>
577 </itemizedlist></para>
578 </sect2>
579
580 <sect2>
581 <title>Windows 0x101 bluescreens with SMP enabled (IPI timeout)</title>
582
583 <para>If a VM is configured to have more than one processor (symmetrical
584 multiprocessing, SMP), some configurations of Windows guests crash with
585 an 0x101 error message, indicating a timeout for inter-processor
586 interrupts (IPIs). These interrupts synchronize memory management
587 between processors.</para>
588
589 <para>According to Microsoft, this is due to a race condition in
590 Windows. A hotfix is available.<footnote>
591 <para>See <ulink
592 url="http://support.microsoft.com/kb/955076">http://support.microsoft.com/kb/955076</ulink>.</para>
593 </footnote> If this does not help, please reduce the number of virtual
594 processors to 1.</para>
595 </sect2>
596
597 <sect2>
598 <title>Windows 2000 installation failures</title>
599
600 <para>When installing Windows 2000 guests, you might run into one of the
601 following issues:</para>
602
603 <itemizedlist>
604 <listitem>
605 <para>Installation reboots, usually during component
606 registration.</para>
607 </listitem>
608
609 <listitem>
610 <para>Installation fills the whole hard disk with empty log
611 files.</para>
612 </listitem>
613
614 <listitem>
615 <para>Installation complains about a failure installing
616 <literal>msgina.dll</literal>.</para>
617 </listitem>
618 </itemizedlist>
619
620 <para>These problems are all caused by a bug in the hard disk driver of
621 Windows 2000. After issuing a hard disk request, there is a race
622 condition in the Windows driver code which leads to corruption if the
623 operation completes too fast, i.e. the hardware interrupt from the IDE
624 controller arrives too soon. With physical hardware, there is a
625 guaranteed delay in most systems so the problem is usually hidden there
626 (however it should be possible to reproduce it on physical hardware as
627 well). In a virtual environment, it is possible for the operation to be
628 done immediately (especially on very fast systems with multiple CPUs)
629 and the interrupt is signaled sooner than on a physical system. The
630 solution is to introduce an artificial delay before delivering such
631 interrupts. This delay can be configured for a VM using the following
632 command:</para>
633
634 <screen>VBoxManage setextradata "VM name" "VBoxInternal/Devices/piix3ide/0/Config/IRQDelay" 1</screen>
635
636 <para>This sets the delay to one millisecond. In case this doesn't help,
637 increase it to a value between 1 and 5 milliseconds. Please note that
638 this slows down disk performance. After installation, you should be able
639 to remove the key (or set it to 0).</para>
640 </sect2>
641
642 <sect2>
643 <title>How to record bluescreen information from Windows guests</title>
644
645 <para>When Windows guests run into a kernel crash, they display the
646 infamous bluescreen. Depending on how Windows is configured, the
647 information will remain on the screen until the machine is restarted or
648 it will reboot automatically. During installation, Windows is usually
649 configured to reboot automatically. With automatic reboots, there is no
650 chance to record the bluescreen information which might be important for
651 problem determination.</para>
652
653 <para>VirtualBox provides a method of halting a guest when it wants to
654 perform a reset. In order to enable this feature, issue the following
655 command:</para>
656
657 <para><screen>VBoxManage setextradata "VM name" "VBoxInternal/PDM/HaltOnReset" 1</screen></para>
658 </sect2>
659
660 <sect2>
661 <title>No networking in Windows Vista guests</title>
662
663 <para>Unfortunately, with Vista, Microsoft dropped support for the
664 virtual AMD PCNet card that we are providing to virtual machines. As a
665 result, after installation, Vista guests initially have no networking.
666 VirtualBox therefore ships a driver for that card with the Windows Guest
667 Additions; see <xref linkend="vista_networking" />.</para>
668
669 <para>Starting with version 1.6.0 VirtualBox can emulate an Intel E1000
670 network device which is supported by Vista without any third-party
671 drivers.</para>
672 </sect2>
673
674 <sect2>
675 <title>Windows guests may cause a high CPU load</title>
676
677 <para>Several background applications of Windows guests, especially
678 virus scanners, are known to increases the CPU load notably even if the
679 guest appears to be idle. We recommend to deactivate virus scanners
680 within virtualized guests if possible.</para>
681 </sect2>
682
683 <sect2>
684 <title>Long delays when accessing shared folders</title>
685
686 <para>The performance for accesses to shared folders from a Windows
687 guest might be decreased due to delays during the resolution of the
688 VirtualBox shared folders name service. To fix these delays, add the
689 following entries to the file
690 <computeroutput>\windows\system32\drivers\etc\lmhosts</computeroutput>
691 of the Windows guest:</para>
692
693 <screen>255.255.255.255 VBOXSVR #PRE
694255.255.255.255 VBOXSRV #PRE</screen>
695
696 <para>After doing this change, a reboot of the guest is required.</para>
697 </sect2>
698 </sect1>
699
700 <sect1>
701 <title>Linux and X11 guests</title>
702
703 <sect2>
704 <title>Linux guests may cause a high CPU load</title>
705
706 <para>Some Linux guests may cause a high CPU load even if the guest
707 system appears to be idle. This can be caused by a high timer frequency
708 of the guest kernel. Some Linux distributions, for example Fedora, ship
709 a Linux kernel configured for a timer frequency of <emphasis
710 role="bold"> 1000Hz</emphasis>. We recommend to recompile the guest
711 kernel and to select a timer frequency of 100Hz.</para>
712
713 <para>Linux kernels shipped with Red Hat Enterprise Linux (RHEL) as of
714 release 4.7 and 5.1 as well as kernels of related Linux distributions
715 (for instance CentOS and Oracle Enterprise Linux) support a kernel
716 parameter <emphasis>divider=N</emphasis>. Hence, such kernels support a
717 lower timer frequency without recompilation. We suggest to add the
718 kernel parameter <emphasis>divider=10</emphasis> to select a guest
719 kernel timer frequency of 100Hz.</para>
720 </sect2>
721
722 <sect2>
723 <title>AMD Barcelona CPUs</title>
724
725 <para>Most Linux-based guests will fail with AMD Phenoms or
726 Barcelona-level Opterons due to a bug in the Linux kernel. Enable the
727 I/O-APIC to work around the problem (see <xref
728 linkend="settings-general-advanced" />).</para>
729 </sect2>
730
731 <sect2 id="trouble-linux-buggy">
732 <title>Buggy Linux 2.6 kernel versions</title>
733
734 <para>The following bugs in Linux kernels prevent them from executing
735 correctly in VirtualBox, causing VM boot crashes:<itemizedlist>
736 <listitem>
737 <para>The Linux kernel version 2.6.18 (and some 2.6.17 versions)
738 introduced a race condition that can cause boot crashes in
739 VirtualBox. Please use a kernel version 2.6.19 or later.</para>
740 </listitem>
741
742 <listitem>
743 <para>With hardware virtualization and the I/O APIC enabled,
744 kernels before 2.6.24-rc6 may panic on boot with the following
745 message:<screen>Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with
746apic=debug and send a report. Then try booting with the 'noapic' option</screen></para>
747
748 <para>If you see this message, either disable hardware
749 virtualization or the I/O APIC (see <xref
750 linkend="settings-system" />), or upgrade the guest to a newer
751 kernel.<footnote>
752 <para>See <ulink
753 url="http://www.mail-archive.com/[email protected]/msg30813.html">http://www.mail-archive.com/[email protected]/msg30813.html</ulink>
754 for details about the kernel fix.</para>
755 </footnote></para>
756 </listitem>
757 </itemizedlist></para>
758 </sect2>
759
760 <sect2>
761 <title>Shared clipboard, auto-resizing and seamless desktop in X11
762 guests</title>
763
764 <para>Guest desktop services in guests running the X11 window system
765 (Solaris, Linux and others) are provided by a guest service called
766 <computeroutput>VBoxClient</computeroutput>, which runs under the ID of
767 the user who started the desktop session and is automatically started
768 using the following command lines <screen>VBoxClient --clipboard
769VBoxClient --display
770VBoxClient --seamless</screen> when your X11 user session is started if you
771 are using a common desktop environment (Gnome, KDE and others). If a
772 particular desktop service is not working correctly, it is worth
773 checking whether the process which should provide it is running.</para>
774
775 <para>The <computeroutput>VBoxClient</computeroutput> processes create
776 files in the user's home directory with names of the form
777 <computeroutput>.vboxclient-*.pid</computeroutput> when they are running
778 in order to prevent a given service from being started twice. It can
779 happen due to misconfiguration that these files are created owned by
780 root and not deleted when the services are stopped, which will prevent
781 them from being started in future sessions. If the services cannot be
782 started, you may wish to check whether these files still exist.</para>
783 </sect2>
784 </sect1>
785
786 <sect1>
787 <title>Windows hosts</title>
788
789 <sect2>
790 <title>VBoxSVC out-of-process COM server issues</title>
791
792 <para>VirtualBox makes use of the Microsoft Component Object Model (COM)
793 for inter- and intra-process communication. This allows VirtualBox to
794 share a common configuration among different virtual machine processes
795 and provide several user interface options based on a common
796 architecture. All global status information and configuration is
797 maintained by the process <computeroutput>VBoxSVC.exe</computeroutput>,
798 which is an out-of-process COM server. Whenever a VirtualBox process is
799 started, it requests access to the COM server and Windows automatically
800 starts the process. Note that it should never be started by the end
801 user.</para>
802
803 <para>When the last process disconnects from the COM server, it will
804 terminate itself after some seconds. The VirtualBox configuration (XML
805 files) is maintained and owned by the COM server and the files are
806 locked whenever the server runs.</para>
807
808 <para>In some cases - such as when a virtual machine is terminated
809 unexpectedly - the COM server will not notice that the client is
810 disconnected and stay active for a longer period (10 minutes or so)
811 keeping the configuration files locked. In other rare cases the COM
812 server might experience an internal error and subsequently other
813 processes fail to initialize it. In these situations, it is recommended
814 to use the Windows task manager to kill the process
815 <computeroutput>VBoxSVC.exe</computeroutput>.</para>
816 </sect2>
817
818 <sect2>
819 <title>CD/DVD changes not recognized</title>
820
821 <para>In case you have assigned a physical CD/DVD drive to a guest and
822 the guest does not notice when the medium changes, make sure that the
823 Windows media change notification (MCN) feature is not turned off. This
824 is represented by the following key in the Windows registry:<screen><literal>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Cdrom\Autorun</literal></screen>Certain
825 applications may disable this key against Microsoft's advice. If it is
826 set to 0, change it to 1 and reboot your system. VirtualBox relies on
827 Windows notifying it of media changes.</para>
828 </sect2>
829
830 <sect2>
831 <title>Sluggish response when using Microsoft RDP client</title>
832
833 <para>If connecting to a Virtual Machine via the Microsoft RDP client
834 (called Remote Desktop Connection), there can be large delays between
835 input (moving the mouse over a menu is the most obvious situation) and
836 output. This is because this RDP client collects input for a certain
837 time before sending it to the VRDP server built into VirtualBox.</para>
838
839 <para>The interval can be decreased by setting a Windows registry key to
840 smaller values than the default of 100. The key does not exist initially
841 and must be of type DWORD. The unit for its values is milliseconds.
842 Values around 20 are suitable for low-bandwidth connections between the
843 RDP client and server. Values around 4 can be used for a gigabit
844 Ethernet connection. Generally values below 10 achieve a performance
845 that is very close to that of the local input devices and screen of the
846 host on which the Virtual Machine is running.</para>
847
848 <para>Depending whether the setting should be changed for an individual
849 user or for the system, either</para>
850
851 <screen>HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
852
853 <para>or</para>
854
855 <screen>HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Min Send Interval</screen>
856
857 <para>can be set appropriately.</para>
858 </sect2>
859
860 <sect2>
861 <title>Running an iSCSI initiator and target on a single system</title>
862
863 <para>Deadlocks can occur on a Windows host when attempting to access an
864 iSCSI target running in a guest virtual machine with an iSCSI initiator
865 (e.g. Microsoft iSCSI Initiator) that is running on the host. This is
866 caused by a flaw in the Windows cache manager component, and causes
867 sluggish host system response for several minutes, followed by a
868 "Delayed Write Failed" error message in the system tray or in a separate
869 message window. The guest is blocked during that period and may show
870 error messages or become unstable.</para>
871
872 <para>Setting the environment variable
873 <computeroutput>VBOX_DISABLE_HOST_DISK_CACHE</computeroutput> to 1 will
874 enable a workaround for this problem until Microsoft addresses the
875 issue. For example, open a command prompt window and start VirtualBox
876 like this:</para>
877
878 <screen>set VBOX_DISABLE_HOST_DISK_CACHE=1
879VirtualBox</screen>
880
881 <para>While this will decrease guest disk performance (especially
882 writes), it does not affect the performance of other applications
883 running on the host.</para>
884 </sect2>
885
886 <sect2>
887 <title>Bridged Networking</title>
888
889 <para>In case no Bridge adapters are listed in bridged networking settings UI,
890 this typically means that Bridged networking driver was not installed properly on your host.
891 This could be due to any of the following reasons:
892 <itemizedlist>
893 <listitem>
894 <para>The maximum allowed filter count is reached on the host.
895 The MSI log would mention the 0x8004a029 error code returned on NetFlt network component install:
896 "VBoxNetCfgWinInstallComponent: Install failed, hr (0x8004a029)".
897 The solution would typically be to increase the maximum filter count under
898 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\MaxNumFilters (the maximum number allowed is 14),
899 reboot and try to re-install the VirtualBox</para>
900 </listitem>
901
902 <listitem>
903 <para>Inf cache is corrupt.
904 The %windir%\inf\setupapi.log (for XP) or %windir%\inf\setupapi.dev.log (for Vista+)
905 would typically mention the failure to find a suitable driver package
906 for either sun_VBoxNetFlt or sun_VBoxNetFltmp components.
907 The solution is to uninstall VirtualBox, remove the inf cache (%windir%\inf\INFCACHE.1,
908 reboot and try to re-install the VirtualBox</para>
909 </listitem>
910 </itemizedlist>
911 </para>
912 </sect2>
913
914 <sect2>
915 <title>Host-Only Networking</title>
916
917 <para>Host-Only adapter creation (either via GUI or VBoxManage) may fail due to any of the following reasons:
918 <itemizedlist>
919 <listitem>
920 <para>Inf cache is corrupt.
921 The %windir%\inf\setupapi.log (for XP) or %windir%\inf\setupapi.dev.log (for Vista+)
922 would typically mention the failure to find a suitable driver package for sun_VBoxNetAdp component.
923 The solution is to uninstall VirtualBox, remove the inf cache (%windir%\inf\INFCACHE.1,
924 reboot and try to re-install the VirtualBox</para>
925 </listitem>
926 </itemizedlist>
927 </para>
928 </sect2>
929 </sect1>
930
931 <sect1>
932 <title>Linux hosts</title>
933
934 <sect2 id="linuxkernelmodulefailstoload">
935 <title>Linux kernel module refuses to load</title>
936
937 <para>If the VirtualBox kernel module
938 (<computeroutput>vboxdrv</computeroutput>) refuses to load, i.e. you get
939 an "Error inserting vboxdrv: Invalid argument", check (as root) the
940 output of the <computeroutput>dmesg</computeroutput> command to find out
941 why the load failed. Most probably the kernel disagrees with the version
942 of the gcc used to compile the module. Make sure that you use the same
943 compiler as used to build the kernel.</para>
944 </sect2>
945
946 <sect2>
947 <title>Linux host CD/DVD drive not found</title>
948
949 <para>If you have configured a virtual machine to use the host's CD/DVD
950 drive, but this does not appear to work, make sure that the current user
951 has permission to access the corresponding Linux device file
952 (<computeroutput>/dev/hdc</computeroutput> or
953 <computeroutput>/dev/scd0</computeroutput> or
954 <computeroutput>/dev/cdrom</computeroutput> or similar). On most
955 distributions, the user must be added to a corresponding group (usually
956 called <computeroutput>cdrom</computeroutput> or
957 <computeroutput>cdrw</computeroutput>).</para>
958 </sect2>
959
960 <sect2>
961 <title>Linux host CD/DVD drive not found (older distributions)</title>
962
963 <para>On older Linux distributions, if your CD/DVD device has a
964 different name, VirtualBox may be unable to find it. On older Linux
965 hosts, VirtualBox performs the following steps to locate your CD/DVD
966 drives:</para>
967
968 <para><orderedlist>
969 <listitem>
970 <para>VirtualBox examines if the environment variable
971 <computeroutput>VBOX_CDROM</computeroutput> is defined (see
972 below). If so, VirtualBox omits all the following checks.</para>
973 </listitem>
974
975 <listitem>
976 <para>VirtualBox tests if
977 <computeroutput>/dev/cdrom</computeroutput> works.</para>
978 </listitem>
979
980 <listitem>
981 <para>In addition, VirtualBox checks if any CD/DVD drives are
982 currently mounted by checking
983 <computeroutput>/etc/mtab</computeroutput>.</para>
984 </listitem>
985
986 <listitem>
987 <para>In addition, VirtualBox checks if any of the entries in
988 <computeroutput>/etc/fstab</computeroutput> point to CD/DVD
989 devices.</para>
990 </listitem>
991 </orderedlist></para>
992
993 <para>In other words, you can try to set VBOX_CDROM to contain a list of
994 your CD/DVD devices, separated by colons, for example as follows:</para>
995
996 <para><screen>export VBOX_CDROM='/dev/cdrom0:/dev/cdrom1'</screen>On
997 modern Linux distributions, VirtualBox uses the hardware abstraction
998 layer (hal) to locate CD and DVD hardware.</para>
999 </sect2>
1000
1001 <sect2>
1002 <title>Linux host floppy not found</title>
1003
1004 <para>The previous instructions (for CD and DVD drives) apply
1005 accordingly to floppy disks, except that on older distributions
1006 VirtualBox tests for <computeroutput>/dev/fd*</computeroutput> devices
1007 by default, and this can be overridden with the
1008 <computeroutput>VBOX_FLOPPY</computeroutput> environment
1009 variable.</para>
1010 </sect2>
1011
1012 <sect2>
1013 <title>Strange guest IDE error messages when writing to CD/DVD</title>
1014
1015 <para>If the experimental CD/DVD writer support is enabled with an
1016 incorrect VirtualBox, host or guest configuration, it is possible that
1017 any attempt to access the CD/DVD writer fails and simply results in
1018 guest kernel error messages (for Linux guests) or application error
1019 messages (for Windows guests). VirtualBox performs the usual consistency
1020 checks when a VM is powered up (in particular it aborts with an error
1021 message if the device for the CD/DVD writer is not writable by the user
1022 starting the VM), but it cannot detect all misconfigurations. The
1023 necessary host and guest OS configuration is not specific for
1024 VirtualBox, but a few frequent problems are listed here which occurred
1025 in connection with VirtualBox.</para>
1026
1027 <para>Special care must be taken to use the correct device. The
1028 configured host CD/DVD device file name (in most cases
1029 <literal>/dev/cdrom</literal>) must point to the device that allows
1030 writing to the CD/DVD unit. For CD/DVD writer units connected to a SCSI
1031 controller or to a IDE controller that interfaces to the Linux SCSI
1032 subsystem (common for some SATA controllers), this must refer to the
1033 SCSI device node (e.g. <literal>/dev/scd0</literal>). Even for IDE
1034 CD/DVD writer units this must refer to the appropriate SCSI CD-ROM
1035 device node (e.g. <literal>/dev/scd0</literal>) if the
1036 <literal>ide-scsi</literal> kernel module is loaded. This module is
1037 required for CD/DVD writer support with all Linux 2.4 kernels and some
1038 early 2.6 kernels. Many Linux distributions load this module whenever a
1039 CD/DVD writer is detected in the system, even if the kernel would
1040 support CD/DVD writers without the module. VirtualBox supports the use
1041 of IDE device files (e.g. <literal>/dev/hdc</literal>), provided the
1042 kernel supports this and the <literal>ide-scsi</literal> module is not
1043 loaded.</para>
1044
1045 <para>Similar rules (except that within the guest the CD/DVD writer is
1046 always an IDE device) apply to the guest configuration. Since this setup
1047 is very common, it is likely that the default configuration of the guest
1048 works as expected.</para>
1049 </sect2>
1050
1051 <sect2>
1052 <title>VBoxSVC IPC issues</title>
1053
1054 <para>On Linux, VirtualBox makes use of a custom version of Mozilla
1055 XPCOM (cross platform component object model) for inter- and
1056 intra-process communication (IPC). The process
1057 <computeroutput>VBoxSVC</computeroutput> serves as a communication hub
1058 between different VirtualBox processes and maintains the global
1059 configuration, i.e. the XML database. When starting a VirtualBox
1060 component, the processes <computeroutput>VBoxSVC</computeroutput> and
1061 <computeroutput>VirtualBoxXPCOMIPCD</computeroutput> are started
1062 automatically. They are only accessible from the user account they are
1063 running under. <computeroutput>VBoxSVC</computeroutput> owns the
1064 VirtualBox configuration database which normally resides in
1065 <computeroutput>~/.VirtualBox</computeroutput>. While it is running, the
1066 configuration files are locked. Communication between the various
1067 VirtualBox components and <computeroutput>VBoxSVC</computeroutput> is
1068 performed through a local domain socket residing in
1069 <computeroutput>/tmp/.vbox-&lt;username&gt;-ipc</computeroutput>. In
1070 case there are communication problems (i.e. a VirtualBox application
1071 cannot communicate with <computeroutput>VBoxSVC</computeroutput>),
1072 terminate the daemons and remove the local domain socket
1073 directory.</para>
1074 </sect2>
1075
1076 <sect2 id="usb_linux">
1077 <title>USB not working</title>
1078
1079 <para>If USB is not working on your Linux host, make sure that the
1080 current user is a member of the
1081 <computeroutput>vboxusers</computeroutput> group. On older hosts, you
1082 need to make sure that the user has permission to access the USB
1083 filesystem (<computeroutput>usbfs</computeroutput>), which VirtualBox
1084 relies on to retrieve valid information about your host's USB devices.
1085 The rest of this section only applies to those older systems.</para>
1086
1087 <para>As <computeroutput>usbfs</computeroutput> is a virtual filesystem,
1088 a <computeroutput>chmod</computeroutput> on
1089 <computeroutput>/proc/bus/usb</computeroutput> has no effect. The
1090 permissions for <computeroutput>usbfs</computeroutput> can therefore
1091 <emphasis>only</emphasis> be changed by editing the
1092 <computeroutput>/etc/fstab</computeroutput> file.</para>
1093
1094 <para>For example, most Linux distributions have a user group called
1095 <computeroutput>usb</computeroutput> or similar, of which the current
1096 user must be a member. To give all users of that group access to usbfs,
1097 make sure the following line is present:<screen># 85 is the USB group
1098none /proc/bus/usb usbfs devgid=85,devmode=664 0 0</screen>Replace
1099 85 with the group ID that matches your system (search
1100 <computeroutput>/etc/group</computeroutput> for "usb" or similar).
1101 Alternatively, if you don't mind the security hole, give all users
1102 access to USB by changing "664" to "666".</para>
1103
1104 <para>The various distributions are very creative from which script the
1105 <computeroutput>usbfs</computeroutput> filesystem is mounted. Sometimes
1106 the command is hidden in unexpected places. For SuSE 10.0 the mount
1107 command is part of the udev configuration file
1108 <computeroutput>/etc/udev/rules.d/50-udev.rules</computeroutput>. As
1109 this distribution has no user group called
1110 <computeroutput>usb</computeroutput>, you may e.g. use the
1111 <computeroutput>vboxusers</computeroutput> group which was created by
1112 the VirtualBox installer. Since group numbers are allocated dynamically,
1113 the following example uses 85 as a placeholder. Modify the line
1114 containing (a linebreak has been inserted to improve
1115 readability)<screen>DEVPATH="/module/usbcore", ACTION=="add",
1116 RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb"</screen> and add the
1117 necessary options (make sure that everything is in a single
1118 line):<screen>DEVPATH="/module/usbcore", ACTION=="add",
1119 RUN+="/bin/mount -t usbfs usbfs /proc/bus/usb -o devgid=85,devmode=664"</screen></para>
1120
1121 <para>Debian Etch has the mount command in
1122 <computeroutput>/etc/init.d/mountkernfs.sh</computeroutput>. Since that
1123 distribution has no group <computeroutput>usb</computeroutput>, it is
1124 also the easiest solution to allow all members of the group
1125 <computeroutput>vboxusers</computeroutput> to access the USB subsystem.
1126 Modify the line <screen>domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev</screen>
1127 so that it contains <screen>domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=85,devmode=664</screen>
1128 As usual, replace the 85 with the actual group number which should get
1129 access to USB devices.</para>
1130
1131 <para>Other distributions do similar operations in scripts stored in the
1132 <computeroutput>/etc/init.d</computeroutput> directory.</para>
1133 </sect2>
1134
1135 <sect2>
1136 <title>PAX/grsec kernels</title>
1137
1138 <para>Linux kernels including the grsec patch (see <literal><ulink
1139 url="http://www.grsecurity.net/">http://www.grsecurity.net/</ulink></literal>)
1140 and derivates have to disable PAX_MPROTECT for the VBox binaries to be
1141 able to start a VM. The reason is that VBox has to create executable
1142 code on anonymous memory.</para>
1143 </sect2>
1144
1145 <sect2>
1146 <title>Linux kernel vmalloc pool exhausted</title>
1147
1148 <para>When running a large number of VMs with a lot of RAM on a Linux
1149 system (say 20 VMs with 1GB of RAM each), additional VMs might fail to
1150 start with a kernel error saying that the vmalloc pool is exhausted and
1151 should be extended. The error message also tells you to specify
1152 <computeroutput>vmalloc=256MB</computeroutput> in your kernel parameter
1153 list. If adding this parameter to your GRUB or LILO configuration makes
1154 the kernel fail to boot (with a weird error message such as "failed to
1155 mount the root partition"), then you have probably run into a memory
1156 conflict of your kernel and initial RAM disk. This can be solved by
1157 adding the following parameter to your GRUB configuration:</para>
1158
1159 <screen>uppermem 524288</screen>
1160 </sect2>
1161 </sect1>
1162
1163 <sect1>
1164 <title>Solaris hosts</title>
1165
1166 <sect2>
1167 <title>Cannot start VM, not enough contiguous memory</title>
1168
1169 <para>The ZFS file system is known to use all available RAM as cache if
1170 the default system settings are not changed. This may lead to a heavy
1171 fragmentation of the host memory preventing VirtualBox VMs from being
1172 started. We recommend to limit the ZFS cache by adding a line<screen>set zfs:zfs_arc_max = xxxx</screen>
1173 to /etc/system where <computeroutput>xxxx</computeroutput> bytes is the
1174 amount of memory usable for the ZFS cache.</para>
1175 </sect2>
1176
1177 <sect2>
1178 <title>VM aborts with out of memory errors on Solaris 10 hosts</title>
1179
1180 <para>32-bit Solaris 10 hosts (bug 1225025) require swap space equal to,
1181 or greater than the host's physical memory size. For example, 8 GB
1182 physical memory would require at least 8 GB swap. This can be configured
1183 during a Solaris 10 install by choosing a 'custom install' and changing
1184 the default partitions.</para>
1185
1186 <note>
1187 <para>This restriction applies only to 32-bit Solaris hosts, 64-bit
1188 hosts are not affected!</para>
1189 </note>
1190
1191 <para>For existing Solaris 10 installs, an additional swap image needs
1192 to be mounted and used as swap. Hence if you have 1 GB swap and 8 GB of
1193 physical memory, you require to add 7 GB more swap. This can be done as
1194 follows:</para>
1195
1196 <para>For ZFS (as root user):</para>
1197
1198 <para><screen>zfs create -V 8gb /_&lt;ZFS volume&gt;_/swap
1199swap -a /dev/zvol/dsk/_&lt;ZFS volume&gt;_/swap</screen></para>
1200
1201 <para>To mount if after reboot, add the following line to
1202 /etc/vfstab:</para>
1203
1204 <screen>/dev/zvol/dsk/_&lt;ZFS volume&gt;_/swap - - swap - no -</screen>
1205
1206 <para>Alternatively, you could grow the existing swap using:</para>
1207
1208 <screen>zfs set volsize=8G rpool/swap</screen>
1209
1210 <para>And reboot the system for the changes to take effect.</para>
1211
1212 <para>For UFS (as root user):</para>
1213
1214 <screen>mkfile 7g /path/to/swapfile.img
1215swap -a /path/to/swapfile.img</screen>
1216
1217 <para>To mount it after reboot, add the following line to
1218 /etc/vfstab:</para>
1219
1220 <screen>/path/to/swap.img - - swap - no -</screen>
1221 </sect2>
1222 </sect1>
1223</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