f2f1a3f0158dd2afa65a5ac9d3bcaa9c6a155210
[virt-what.git] / virt-what.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 virt-what - detect if we are running in a virtual machine
6
7 =head1 SUMMARY
8
9 virt-what [options]
10
11 =head1 DESCRIPTION
12
13 C<virt-what> is a shell script which can be used to detect if the
14 program is running in a virtual machine.
15
16 The program prints out a list of "facts" about the virtual machine,
17 derived from heuristics.  One fact is printed per line.
18
19 If nothing is printed and the script exits with code 0 (no error),
20 then it can mean I<either> that the program is running on bare-metal
21 I<or> the program is running inside a type of virtual machine which we
22 don't know about or cannot detect.
23
24 =head1 FACTS
25
26 =over 4
27
28 =item B<hyperv>
29
30 This is Hyper-V.
31
32 Status: from MSDN description, not tested.
33
34 =item B<linux_vserver>
35
36 This process is running in a Linux VServer container.
37
38 Status: contributed by Barış Metin
39
40 =item B<kvm>
41
42 This is KVM.
43
44 Status: confirmed by RWMJ.
45
46 =item B<openvz>
47
48 The guest appears to be running inside an OpenVZ or Virtuozzo
49 container.
50
51 Status: contributed by Evgeniy Sokolov
52
53 =item B<powervm_lx86>
54
55 The guest is running inside IBM PowerVM Lx86 Linux/x86 emulator.
56
57 Status: data supplied by Jeffrey Scheel, not confirmed
58
59 =item B<qemu>
60
61 This is QEMU using software emulation.
62
63 Note that for KVM (hardware accelerated) guests you should I<not> see
64 this.
65
66 Status: confirmed by RWMJ.
67
68 =item B<uml>
69
70 This is a User-Mode Linux (UML) guest.
71
72 Status: contributed by Laurent Léonard
73
74 =item B<virtage>
75
76 This is Hitachi Virtualization Manager (HVM) Virtage logical partitioning.
77
78 Status: data supplied by Bhavna Sarathy, not confirmed
79
80 =item B<virtualbox>
81
82 This is a VirtualBox guest.
83
84 Status: contributed by Laurent Léonard
85
86 =item B<virtualpc>
87
88 The guest appears to be running on Microsoft VirtualPC.
89
90 Status: not confirmed
91
92 =item B<vmware>
93
94 The guest appears to be running on VMware.
95
96 Status: confirmed by RWMJ
97
98 =item B<xen>
99
100 The guest appears to be running on Xen.
101
102 Status: confirmed by RWMJ
103
104 =item B<xen-dom0>
105
106 This is the Xen dom0 (privileged domain).
107
108 Status: confirmed by RWMJ
109
110 =item B<xen-domU>
111
112 This is a Xen domU (paravirtualized guest domain).
113
114 Status: confirmed by RWMJ
115
116 =item B<xen-hvm>
117
118 This is a Xen guest fully virtualized (HVM).
119
120 Status: confirmed by RWMJ
121
122 =item B<zvm>
123
124 This is a z/VM guest running on an IBM SystemZ mainframe.
125
126 Status: confirmed by RWMJ using a Fedora guest running in z/VM.  Not
127 tested whether this also works for Linux installed directly in an
128 LPAR.
129
130 =back
131
132 =head1 IMPORTANT NOTE
133
134 Most of the time, using this program is the I<wrong> thing to do.
135 Instead you should detect the specific features you actually want to
136 use.  (As an example, if you wanted to issue Xen hypervisor commands
137 you would look for the C</proc/xen/privcmd> file).
138
139 However people keep asking for this, so we provide it.  There are a
140 few legitimate uses:
141
142 =over 4
143
144 =item Bug reporting tool
145
146 If you think that virtualization could affect how your program runs,
147 then you might use C<virt-what> to report this in a bug reporting
148 tool.
149
150 =item Status display and monitoring tools
151
152 You might include this information in status and monitoring programs.
153
154 =back
155
156 =head1 SEE ALSO
157
158 L<http://people.redhat.com/~rjones/virt-what/>,
159 L<http://www.vmware.com/>,
160 L<http://www.microsoft.com/windows/products/winfamily/virtualpc>,
161 L<http://xensource.com/>,
162 L<http://bellard.org/qemu/>,
163 L<http://kvm.qumranet.com/>,
164 L<http://openvz.org/>
165
166 =head1 AUTHORS
167
168 Richard W.M. Jones <rjones @ redhat . com>
169
170 =head1 COPYRIGHT
171
172 (C) Copyright 2008-2011 Red Hat Inc.,
173 L<http://people.redhat.com/~rjones/virt-what/>
174
175 This program is free software; you can redistribute it and/or modify
176 it under the terms of the GNU General Public License as published by
177 the Free Software Foundation; either version 2 of the License, or
178 (at your option) any later version.
179
180 This program is distributed in the hope that it will be useful,
181 but WITHOUT ANY WARRANTY; without even the implied warranty of
182 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
183 GNU General Public License for more details.
184
185 You should have received a copy of the GNU General Public License
186 along with this program; if not, write to the Free Software
187 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
188
189 =head1 REPORTING BUGS
190
191 Bugs can be viewed on the Red Hat Bugzilla page:
192 L<https://bugzilla.redhat.com/>.
193
194 If you find a bug in virt-what, please follow these steps to report it:
195
196 =over 4
197
198 =item 1. Check for existing bug reports
199
200 Go to L<https://bugzilla.redhat.com/> and search for similar bugs.
201 Someone may already have reported the same bug, and they may even
202 have fixed it.
203
204 =item 2. Capture debug and error messages
205
206 Run
207
208  virt-what > virt-what.log 2>&1
209
210 and keep I<virt-what.log>.  It may contain error messages which you
211 should submit with your bug report.
212
213 =item 3. Get version of virt-what.
214
215 Run
216
217  virt-what --version
218
219 =item 4. Submit a bug report.
220
221 Go to L<https://bugzilla.redhat.com/> and enter a new bug.
222 Please describe the problem in as much detail as possible.
223
224 Remember to include the version numbers (step 3) and the debug
225 messages file (step 2) and as much other detail as possible.
226
227 =item 5. Assign the bug to rjones @ redhat.com
228
229 Assign or reassign the bug to B<rjones @ redhat.com> (without the
230 spaces).  You can also send me an email with the bug number if you
231 want a faster response.
232
233 =back