source: pkg/boss/main/virtualbox-ose/trunk/debian/virtualbox-ose.files/wiki.html @ 4946

Revision 4946, 35.5 KB checked in by alanbach-guest, 5 years ago (diff)
  • Sync'd with Debian 2.1.2-dfsg-1
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2<html>
3<head>
4<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
5<meta name="robots" content="index,nofollow">
6
7<title>VirtualBox - Debian Wiki</title>
8<script type="text/javascript" src="/htdocs/common/js/common.js"></script>
9
10<script type="text/javascript">
11<!--// common functions
12
13// We keep here the state of the search box
14searchIsDisabled = false;
15
16function searchChange(e) {
17    // Update search buttons status according to search box content.
18    // Ignore empty or whitespace search term.
19    var value = e.value.replace(/\s+/, '');
20    if (value == '' || searchIsDisabled) { 
21        searchSetDisabled(true);
22    } else {
23        searchSetDisabled(false);
24    }
25}
26
27function searchSetDisabled(flag) {
28    // Enable or disable search
29    document.getElementById('fullsearch').disabled = flag;
30    document.getElementById('titlesearch').disabled = flag;
31}
32
33function searchFocus(e) {
34    // Update search input content on focus
35    if (e.value == 'Search') {
36        e.value = '';
37        e.className = '';
38        searchIsDisabled = false;
39    }
40}
41
42function searchBlur(e) {
43    // Update search input content on blur
44    if (e.value == '') {
45        e.value = 'Search';
46        e.className = 'disabled';
47        searchIsDisabled = true;
48    }
49}
50
51function actionsMenuInit(title) {
52    // Initialize action menu
53    for (i = 0; i < document.forms.length; i++) {
54        var form = document.forms[i];
55        if (form.className == 'actionsmenu') {
56            // Check if this form needs update
57            var div = form.getElementsByTagName('div')[0];
58            var label = div.getElementsByTagName('label')[0];
59            if (label) {
60                // This is the first time: remove label and do buton.
61                div.removeChild(label);
62                var dobutton = div.getElementsByTagName('input')[0];
63                div.removeChild(dobutton);
64                // and add menu title
65                var select = div.getElementsByTagName('select')[0];
66                var item = document.createElement('option');
67                item.appendChild(document.createTextNode(title));
68                item.value = 'show';
69                select.insertBefore(item, select.options[0]);
70                select.selectedIndex = 0;
71            }
72        }
73    }
74}
75//-->
76</script>
77
78
79<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/htdocs/rightsidebar/css/common.css">
80<link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="/htdocs/rightsidebar/css/screen.css">
81<link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="/htdocs/rightsidebar/css/print.css">
82<link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="/htdocs/rightsidebar/css/projection.css">
83<link rel="alternate" title="Debian Wiki Recent Changes" href="/RecentChanges?action=rss_rc&amp;ddiffs=1&amp;unique=1" type="application/rss+xml">
84
85<link rel="Start" href="/FrontPage">
86<link rel="Alternate" title="Wiki Markup" href="/VirtualBox?action=raw">
87<link rel="Alternate" media="print" title="Print View" href="/VirtualBox?action=print">
88<link rel="Appendix" title="error-1909-VERR_VM_DRIVER_NOT_ACCESSIBLE.png" href="/VirtualBox?action=AttachFile&amp;do=view&amp;target=error-1909-VERR_VM_DRIVER_NOT_ACCESSIBLE.png">
89<link rel="Appendix" title="logo.png" href="/VirtualBox?action=AttachFile&amp;do=view&amp;target=logo.png">
90<link rel="Search" href="/FindPage">
91<link rel="Index" href="/TitleIndex">
92<link rel="Glossary" href="/WordIndex">
93<link rel="Help" href="/HelpOnFormatting">
94</head>
95
96<body  lang="en" dir="ltr">
97
98<div id="header">
99
100<form id="searchform" method="get" action="">
101<div>
102<input type="hidden" name="action" value="fullsearch">
103<input type="hidden" name="context" value="180">
104<label for="searchinput">Search:</label>
105<input id="searchinput" type="text" name="value" value="" size="20"
106    onfocus="searchFocus(this)" onblur="searchBlur(this)"
107    onkeyup="searchChange(this)" onchange="searchChange(this)" alt="Search">
108<input id="titlesearch" name="titlesearch" type="submit"
109    value="Titles" alt="Search Titles">
110<input id="fullsearch" name="fullsearch" type="submit"
111    value="Text" alt="Search Full Text">
112</div>
113</form>
114<script type="text/javascript">
115<!--// Initialize search form
116var f = document.getElementById('searchform');
117f.getElementsByTagName('label')[0].style.display = 'none';
118var e = document.getElementById('searchinput');
119searchChange(e);
120searchBlur(e);
121//-->
122</script>
123
124<div id="logo"><a href="/FrontPage">Debian Wiki</a></div>
125<div id="locationline">
126
127
128<ul id="pagelocation">
129<li><a class="backlink" title="Click to do a full-text search for this title" href="/VirtualBox?action=fullsearch&amp;value=linkto%3A%22VirtualBox%22&amp;context=180">VirtualBox</a></li>
130</ul>
131
132</div>
133
134</div>
135
136<div id="sidebar">
137<div class="sidepanel">
138<h1>Wiki</h1>
139
140<ul id="navibar">
141<li class="wikilink"><a href="/FrontPage">FrontPage</a></li><li class="wikilink"><a href="/RecentChanges">RecentChanges</a></li><li class="wikilink"><a href="/FindPage">FindPage</a></li><li class="wikilink"><a href="/HelpContents">HelpContents</a></li><li class="current"><a href="/VirtualBox">VirtualBox</a></li>
142</ul>
143
144</div>
145<div class="sidepanel">
146<h1>Page</h1>
147<ul class="editbar"><li><span class="disabled">Immutable Page</span></li><li><a href="/VirtualBox?action=info">Info</a></li><li><a href="/VirtualBox?action=AttachFile">Attachments</a></li><li>
148<form class="actionsmenu" method="get" action="">
149<div>
150    <label>More Actions:</label>
151    <select name="action"
152        onchange="if ((this.selectedIndex != 0) &&
153                      (this.options[this.selectedIndex].disabled == false)) {
154                this.form.submit();
155            }
156            this.selectedIndex = 0;">
157        <option value="raw">Raw Text</option>
158<option value="print">Print View</option>
159<option value="RenderAsDocbook">Render as Docbook</option>
160<option value="refresh">Delete Cache</option>
161<option value="show" disabled class="disabled">------------</option>
162<option value="SpellCheck">Check Spelling</option>
163<option value="LikePages">Like Pages</option>
164<option value="LocalSiteMap">Local Site Map</option>
165<option value="show" disabled class="disabled">------------</option>
166<option value="RenamePage" disabled class="disabled">Rename Page</option>
167<option value="DeletePage" disabled class="disabled">Delete Page</option>
168<option value="show" disabled class="disabled">------------</option>
169<option value="MyPages">My Pages</option>
170<option value="SubscribeUser">Subscribe User</option>
171<option value="show" disabled class="disabled">------------</option>
172<option value="Despam">Remove Spam</option>
173<option value="PackagePages">Package Pages</option>
174    </select>
175    <input type="submit" value="Do">
176</div>
177<script type="text/javascript">
178<!--// Init menu
179actionsMenuInit('More Actions:');
180//-->
181</script>
182</form>
183</li></ul>
184
185</div>
186<div class="sidepanel">
187<h1>User</h1>
188<ul id="username"><li><a href="/VirtualBox?action=login" id="login">Login</a></li></ul>
189</div>
190</div>
191
192<div id="page" lang="en" dir="ltr">
193<div dir="ltr" id="content" lang="en"><span class="anchor" id="top"></span>
194<span class="anchor" id="line-2"></span><div><table style="width: 100%"><tbody><tr>  <td style="border: 0px hidden ;"><p class="line891"><small>Translation(s): <a href="/Spanish/VirtualBox">Español</a></small> </td>
195  <td style="border: 0px hidden ;  text-align: right;"><p class="line862"> <img alt="(!)" height="15" src="/htdocs/rightsidebar/img/idea.png" title="(!)" width="15" /> <a class="nonexistent" href="/VirtualBox/Discussion">/Discussion</a> </td>
196</tr>
197</tbody></table></div><span class="anchor" id="line-3"></span><p class="line867"><hr /><p class="line874"> <span class="anchor" id="line-4"></span><span class="anchor" id="line-5"></span><div><table style="width: 100%"><tbody><tr>  <td style="border: 0px hidden ;"><p class="line862"> <img src="/VirtualBox?action=AttachFile&amp;do=get&amp;target=logo.png" title="attachment:logo.png" /> </td>
198  <td style="border: 0px hidden ;"><p class="line891">VirtualBox is an x86 emulator developed by <a class="http" href="http://www.virtualbox.org/wiki/innotek">innotek</a> <em>(bought by Sun)</em> comparable to <a class="nonexistent" href="/VMWare">VMWare</a>. It has a version called VirtualBox Open Source Edition (OSE) which is freely available as Open Source Software under the terms of the GNU General Public License (GPL).<br />
199<br />
200Its a relatively new program and still has some minor issues, but in general it is reliable, stable and, above all, very fast. It has been used successfully to do installation tests with Debian Installer.<br />
201<br />
202This page contains some how-to, tips and tricks that can be useful when setting up and using VirtualBox </td>
203</tr>
204</tbody></table></div><span class="anchor" id="line-6"></span><span class="anchor" id="line-7"></span><span class="anchor" id="line-8"></span><p class="line867"><span class="anchor" id="line-9"></span><ul><li style="list-style-type:none"><div class="table-of-contents"><p class="table-of-contents-heading">Contents<ol><li><a href="#head-2e316e5674d20c3b1cb2938e6a78983c8188e9b0">Installation</a></li><li><a href="#head-75ef23fc62a634cb6fc26329de9723cac3bda93e">Experience</a></li><li><a href="#head-7d4e76488d01c13abf8c2a7b9679320db8dc07e8">Errors</a></li><li><a href="#head-478541556b984173f1c6a6291711d2a8cc4532f3">Tips &amp; tricks</a></li><li><a href="#head-9dafea02d17272b5de1d9a1d15281d44c508605e">External Links</a></li></ol></div> <span class="anchor" id="line-10"></span></li></ul><p class="line867"><span class="anchor" id="install"></span> <span class="anchor" id="line-11"></span><span class="anchor" id="line-12"></span><p class="line867">
205<h2 id="head-2e316e5674d20c3b1cb2938e6a78983c8188e9b0">Installation</h2>
206<span class="anchor" id="line-13"></span><p class="line862">Currently <em>(2008/01/01)</em>, VirtualBox is not supported natively by <a href="/DebianEtch">DebianEtch</a>, the 4.0 version of Debian. To install it, you can use different methods: <span class="anchor" id="line-14"></span><span class="anchor" id="line-15"></span><ul><li><p class="line862">Using Debian/Etch's <a href="/Backports">Backports</a> repository <span class="anchor" id="line-16"></span></li><li><p class="line862">Using <a href="/DebianTesting">DebianTesting</a> repository <span class="anchor" id="line-17"></span></li></ul><p class="line867"><span class="anchor" id="install-backport"></span> <span class="anchor" id="line-18"></span><span class="anchor" id="line-19"></span><p class="line867">
207<h3 id="head-f280c164d73bd09301342a49b8e3e0b5e183a2f7">Debian/Etch-backports</h3>
208<span class="anchor" id="line-20"></span><ul><li><p class="line862">Configure Debian/Etch <a href="/Backports">backports</a> <span class="anchor" id="line-21"></span></li><li><p class="line862">Install these packages: <a class="interwiki" href="http://packages.debian.org/virtualbox-ose" title="DebPkg">virtualbox-ose</a> <a class="interwiki" href="http://packages.debian.org/virtualbox-ose-source" title="DebPkg">virtualbox-ose-source</a> <a class="interwiki" href="http://packages.debian.org/linux-source" title="DebPkg">linux-source</a> <a class="interwiki" href="http://packages.debian.org/linux-headers" title="DebPkg">linux-headers</a> <span class="anchor" id="line-22"></span></li><li><p class="line862">Compile virtualbox kernel module <em>(as <a href="/root">root</a>)</em> <span class="anchor" id="line-23"></span></li></ul><p class="line867"><span class="anchor" id="line-24"></span><pre># cd /usr/src
209<span class="anchor" id="line-25"></span># tar xvjf virtualbox-ose.tar.bz2
210<span class="anchor" id="line-26"></span># cd modules/virtualbox-ose
211<span class="anchor" id="line-27"></span># make
212<span class="anchor" id="line-28"></span># make install
213<span class="anchor" id="line-29"></span># modprobe vboxdrv
214<span class="anchor" id="line-30"></span># lsmod | grep vbox
215<span class="anchor" id="line-31"></span>vboxdrv                55344  0</pre><span class="anchor" id="line-32"></span><ul><li><p class="line862">Or simply use module-assistant <em>(as <a href="/root">root</a>)</em> <span class="anchor" id="line-33"></span></li></ul><p class="line867"><span class="anchor" id="line-34"></span><pre># module-assistant auto-install virtualbox-ose
216<span class="anchor" id="line-35"></span># modprobe vboxdrv
217<span class="anchor" id="line-36"></span># lsmod | grep vbox
218<span class="anchor" id="line-37"></span>vboxdrv                55344  0
219<span class="anchor" id="line-38"></span></pre><span class="anchor" id="line-39"></span><ul><li><p class="line862">Start VirtualBox: <span class="anchor" id="line-40"></span></li></ul><p class="line862">In KDE, go to menu KDE &gt; System &gt; VirtualBox OSE <span class="anchor" id="line-41"></span><span class="anchor" id="line-42"></span><ul><li style="list-style-type:none"><p class="line891"><em>or</em> <span class="anchor" id="line-43"></span></li></ul><p class="line862">In Gnome, goto menu Gnome &gt; Applications &gt; System tools &gt; VirtualBox OSE <span class="anchor" id="line-44"></span><span class="anchor" id="line-45"></span><p class="line867"><span class="anchor" id="install-testing"></span> <span class="anchor" id="line-46"></span><span class="anchor" id="line-47"></span><p class="line867">
220<h3 id="head-381d74a63252140dca3a479ab2be9ea9e51768e5">Debian/Testing (lenny)</h3>
221<span class="anchor" id="line-48"></span><p class="line862">Testing repository contains some precompiled kernel module. So you don't need to compile it like previous method. Except that, it's the same mechanism. Be carreful, using testing repository could break your system. Note that virtualbox need to update <a class="interwiki" href="http://packages.debian.org/libc6" title="DebPkg">libc6</a> and <a class="interwiki" href="http://packages.debian.org/linux-image-2.6" title="DebPkg">linux-image-2.6</a> <span class="anchor" id="line-49"></span><span class="anchor" id="line-50"></span><p class="line867">
222<h2 id="head-75ef23fc62a634cb6fc26329de9723cac3bda93e">Experience</h2>
223<span class="anchor" id="line-51"></span><p class="line867"><small><strong><span class="u">Legend :</span></strong> </small> <span class="anchor" id="line-52"></span><span class="anchor" id="line-53"></span><ul><li><p class="line891"><small><img alt="{OK}" height="12" src="/htdocs/rightsidebar/img/thumbs-up.png" title="{OK}" width="14" /> = OK </small> <span class="anchor" id="line-54"></span></li><li><p class="line891"><img alt="/!\" height="15" src="/htdocs/rightsidebar/img/alert.png" title="/!\" width="15" /> = Failed <span class="anchor" id="line-55"></span></li></ul><div><table><tbody><tr>  <td><p class="line891"><strong>Who</strong> </td>
224  <td><p class="line891"><strong>Kernel</strong> </td>
225  <td><p class="line891"><strong>Disribution</strong> </td>
226  <td><p class="line891"><strong>Package Version</strong> </td>
227  <td><p class="line891"><strong>Status</strong> </td>
228</tr>
229<tr>  <td><span class="anchor" id="line-56"></span><p class="line862"> -- <a href="/SalokineTerata">SalokineTerata</a> 2008-01-01 19:52:09 </td>
230  <td><p class="line862"> 2.6.22-6~bpo40+1 </td>
231  <td><p class="line862"> Debian/Etch-backports </td>
232  <td><p class="line862"> 1.5.2-dfsg2-4~bpo40+1 </td>
233  <td><p class="line862"> <img alt="{OK}" height="12" src="/htdocs/rightsidebar/img/thumbs-up.png" title="{OK}" width="14" /> </td>
234</tr>
235</tbody></table></div><span class="anchor" id="line-57"></span><p class="line867">
236<h2 id="head-7d4e76488d01c13abf8c2a7b9679320db8dc07e8">Errors</h2>
237<span class="anchor" id="line-58"></span><p class="line867">
238<h3 id="head-839c5976dc6419b8d47b83547f4d0c379d9a7d71">32-bit userland with x64_64 kernel</h3>
239<span class="anchor" id="line-59"></span><p class="line862">It is know bug that VirtualBox does not work in such scenarios: <a class="http" href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456391">http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=456391</a> <span class="anchor" id="line-60"></span><span class="anchor" id="line-61"></span><p class="line862">However VirtualBox version 2.0 promises support for this, but it is not yet packaged in Debian. <span class="anchor" id="line-62"></span><span class="anchor" id="line-63"></span><p class="line867">
240<h3 id="head-cca23c12225b5e5380c0b1b0a7eb970a33366309">-1909 VERR VM DRIVER NOT ACCESSIBLE</h3>
241<span class="anchor" id="line-64"></span><p class="line867"><img src="/VirtualBox?action=AttachFile&amp;do=get&amp;target=error-1909-VERR_VM_DRIVER_NOT_ACCESSIBLE.png" title="attachment:error-1909-VERR_VM_DRIVER_NOT_ACCESSIBLE.png" /> <span class="anchor" id="line-65"></span><span class="anchor" id="line-66"></span><p class="line867"><span class="u">Solution: </span> Add your current user in the group <strong>vboxusers</strong>. <span class="anchor" id="line-67"></span><span class="anchor" id="line-68"></span><ul><li>Under KDE: <span class="anchor" id="line-69"></span><ul><li><p class="line891"><tt>K&nbsp;&gt;&nbsp;Configuration&nbsp;Center&nbsp;&gt;&nbsp;System&nbsp;Administration&nbsp;&gt;&nbsp;User&nbsp;Management</tt> <span class="anchor" id="line-70"></span></li><li>Select your user and edit it <span class="anchor" id="line-71"></span></li><li><p class="line862">Go to <strong>Groups</strong> page <span class="anchor" id="line-72"></span></li><li><p class="line862">Select <strong>vboxusers</strong> group and validate <span class="anchor" id="line-73"></span></li></ul></li><li>Reconnect your session <span class="anchor" id="line-74"></span></li><li>Under GNOME: <span class="anchor" id="line-75"></span><ul><li><p class="line862">System &gt; Administration &gt; Users and Groups <span class="anchor" id="line-76"></span></li><li><p class="line862">Click on "<strong>Manage groups</strong>" <span class="anchor" id="line-77"></span></li><li><p class="line862">Select the <strong>vboxusers</strong> group and click "<strong>Properties</strong>" <span class="anchor" id="line-78"></span></li><li>Check your username in the list and click "Ok" <span class="anchor" id="line-79"></span></li><li>Logout and login again <span class="anchor" id="line-80"></span></li></ul></li><li>On the commandline <span class="anchor" id="line-81"></span><ul><li><p class="line862">l<strong>og as user root </strong>either by su or sudo (su [return] - &lt;give root password&gt; [return] OR sudo su [return]) <span class="anchor" id="line-82"></span></li><li><p class="line862">Use the following command: <strong>adduser &lt;youruser&gt; vboxusers</strong> <span class="anchor" id="line-83"></span></li><li>Logout and login again <span class="anchor" id="line-84"></span></li></ul></li></ul><p class="line874">You can verify if your are really member of this group with this command line: <span class="anchor" id="line-85"></span><span class="anchor" id="line-86"></span><p class="line867"><span class="anchor" id="line-87"></span><pre># id MY_USER
242<span class="anchor" id="line-88"></span>uid=1000(MY_USER) gid=1000(MY_USER) groupes=1000(MY_USER),8(mail),...127(vboxusers)
243<span class="anchor" id="line-89"></span></pre><span class="anchor" id="line-90"></span><p class="line867"><span class="anchor" id="tips"></span> <span class="anchor" id="line-91"></span><span class="anchor" id="line-92"></span><p class="line867">
244<h2 id="head-478541556b984173f1c6a6291711d2a8cc4532f3">Tips &amp; tricks</h2>
245<span class="anchor" id="line-93"></span><p class="line867">
246<h3 id="head-2f3b70cb6bcaf82ecb9c8c1f3d5f42134006dc40">Switching consoles</h3>
247<span class="anchor" id="line-94"></span><p class="line862">The normal way to switch consoles in Linux is to use the <tt>ctrl-alt-Fx</tt> key combination. This does not work for a VirtualBox virtual machine (VM); it will switch consoles for the host system instead. <span class="anchor" id="line-95"></span><span class="anchor" id="line-96"></span><p class="line862">You should use <tt>&lt;Host&nbsp;Key&gt;-Fx</tt> instead, where <tt>&lt;Host&nbsp;Key&gt;</tt> is the key defined in <tt>File-&gt;Preferences-&gt;Input</tt>. <span class="anchor" id="line-97"></span><span class="anchor" id="line-98"></span><p class="line862">This also works for <tt>ctrl-alt-del</tt> and <tt>ctrl-alt-backspace</tt> <span class="anchor" id="line-99"></span><span class="anchor" id="line-100"></span><p class="line862">This is documented in the <a class="http" href="http://www.virtualbox.org/download/UserManual.pdf">VirtualBox user manual</a> in the section "Keyboard and mouse support in virtual machines", subsection "Typing special characters". <span class="anchor" id="line-101"></span><span class="anchor" id="line-102"></span><p class="line862">(An alternative method to switch between text consoles is to use <tt>alt-left</tt> and <tt>alt-right</tt>, but that does not work for graphical consoles like XOrg or DirectFB.) <span class="anchor" id="line-103"></span><span class="anchor" id="line-104"></span><p class="line867">
248<h3 id="head-e56da2b7537c9c6463e86cf2e7ff50d0af51cc62">Setting up bridged networking for VirtualBox (VirtualBox &lt; 2.1.0)</h3>
249<span class="anchor" id="line-105"></span><p class="line862">By default VirtualBox uses NAT for the network interfaces of virtual machines and use an internal DHCP server to obtain an IP address. This works well but the disadvantage is that the machine will not have an IP address visible outside the VM and so you cannot connect to it from the host system or from other systems. <span class="anchor" id="line-106"></span><span class="anchor" id="line-107"></span><p class="line874">By attaching the VM's interface to "Host Interface" and creating a bridge on the host system, the VM can be made visible on the local network. This also allows to do fun stuff like netbooting the VM (boot from LAN using PXE). It is comparable to the "bridged networking" option in VMWare. <span class="anchor" id="line-108"></span><span class="anchor" id="line-109"></span><p class="line867"><strong>NB</strong> To use a wireless host device you need one that has support for Master mode (eg. it can be used as an access point, afaik only the Atheros and Prism drivers has this support) <span class="anchor" id="line-110"></span><span class="anchor" id="line-111"></span><p class="line867">
250<h4 id="head-ac96d1959e6023cb07c51bdedd7e8f0b376dc944">Preparation</h4>
251<span class="anchor" id="line-112"></span><p class="line862">First install the package <tt>bridge-utils</tt>. <span class="anchor" id="line-113"></span><span class="anchor" id="line-114"></span><p class="line874">Next, change the network configuration of the host system so that the network interface becomes part of a bridge. Note that this requires restarting the network, so be careful when doing this on a remote system! <span class="anchor" id="line-115"></span><span class="anchor" id="line-116"></span><p class="line862">Change the file <tt>/etc/network/interfaces</tt> to look something like this: <span class="anchor" id="line-117"></span><span class="anchor" id="line-118"></span><p class="line867"><span class="anchor" id="line-119"></span><pre># The loopback network interface
252<span class="anchor" id="line-120"></span>auto lo
253<span class="anchor" id="line-121"></span>iface lo inet loopback
254<span class="anchor" id="line-122"></span># An entry for eth0 is no longer needed
255<span class="anchor" id="line-123"></span>#auto eth0
256<span class="anchor" id="line-124"></span>#iface eth0 inet dhcp
257<span class="anchor" id="line-125"></span># Create the bridge (with the regular IP address of the host)
258<span class="anchor" id="line-126"></span>auto br0
259<span class="anchor" id="line-127"></span>iface br0 inet dhcp
260<span class="anchor" id="line-128"></span>        bridge_ports eth0
261<span class="anchor" id="line-129"></span>        bridge_fd 2.5
262<span class="anchor" id="line-130"></span></pre><span class="anchor" id="line-131"></span><p class="line862">In this example the bridge gets its IP address and configuration from DHCP. For static configuration see<br />
263<tt>/usr/share/doc/bridge-utils/README.Debian.gz</tt> <span class="anchor" id="line-132"></span><span class="anchor" id="line-133"></span><p class="line862">If you don't find the information for static configuration there, try:<br />
264 <span class="anchor" id="line-134"></span><span class="anchor" id="line-135"></span><p class="line867"><span class="anchor" id="line-136"></span><pre># man bridge-utils-interfaces</pre><span class="anchor" id="line-137"></span><p class="line874">Restart the networking of the host system using: <span class="anchor" id="line-138"></span><span class="anchor" id="line-139"></span><p class="line867"><span class="anchor" id="line-140"></span><pre># /etc/init.d/networking restart</pre><span class="anchor" id="line-141"></span><p class="line862">After this <tt>brctl&nbsp;show</tt> should show the bridge and <tt>ifconfig</tt> should show the bridge has the host's IP address. <span class="anchor" id="line-142"></span><span class="anchor" id="line-143"></span><p class="line862">It is also necessary for your user to own the device <tt>/dev/net/tun&nbsp;</tt> <span class="anchor" id="line-144"></span><span class="anchor" id="line-145"></span><p class="line874">Run the following command to change the owner of that device: <span class="anchor" id="line-146"></span><span class="anchor" id="line-147"></span><p class="line867"><span class="anchor" id="line-148"></span><pre># chown &lt;username&gt; /dev/net/tun</pre><span class="anchor" id="line-149"></span><p class="line867">
265<h4 id="head-2533838514373893e1ca2cac71c13586bf086700">Configuring the VirtualBox VM</h4>
266<span class="anchor" id="line-150"></span><p class="line874">There are different ways the TAP interface for the VM can be created: <span class="anchor" id="line-151"></span><span class="anchor" id="line-152"></span><ul><li><p class="line862">statically (before VirtualBox is even started) <span class="anchor" id="line-153"></span></li><li>on demand (when a VM is being started) <span class="anchor" id="line-154"></span></li></ul><p class="line862">See also the chapter on "Virtual networking" in the <a class="http" href="http://www.virtualbox.org/download/UserManual.pdf">VirtualBox user manual</a>. <span class="anchor" id="line-155"></span><span class="anchor" id="line-156"></span><p class="line867">
267<h5 id="head-45ffe54e63a513dbeb24a9be06d2a4eb2ec16928">Static interfaces</h5>
268<span class="anchor" id="line-157"></span><p class="line862">In this case you only need to "define" an interface for use by a particular user once. All defined interfaces are "remembered" in the file <tt>/etc/vbox/interfaces</tt> and recreated by the VirtualBox init script every time the host system is booted. <span class="anchor" id="line-158"></span><span class="anchor" id="line-159"></span><p class="line874">Example to create an interface for a user: <span class="anchor" id="line-160"></span><span class="anchor" id="line-161"></span><p class="line867"><span class="anchor" id="line-162"></span><pre># VBoxAddIF vbox0 &lt;username&gt; br0
269<span class="anchor" id="line-163"></span></pre><span class="anchor" id="line-164"></span><p class="line874">You can of course create multiple interfaces per users, but all interfaces should have unique names. <span class="anchor" id="line-165"></span><span class="anchor" id="line-166"></span><p class="line874">To configure the VM to use static bridged networking, go to the "network" page of the VM's settings and change the following fields: <span class="anchor" id="line-167"></span><span class="anchor" id="line-168"></span><ul><li><p class="line862">Attached to: <tt>Host&nbsp;Interface</tt> <span class="anchor" id="line-169"></span></li><li><p class="line862">Interface Name: <tt>vbox0</tt> <span class="anchor" id="line-170"></span></li><li><p class="line862">Setup Application: &lt;empty&gt; <span class="anchor" id="line-171"></span></li><li><p class="line862">Terminate Application: &lt;empty&gt; <span class="anchor" id="line-172"></span></li></ul><p class="line867">
270<h5 id="head-1330d340c9d435c41fbd1c04c3d29d61e0a8f195">Dynamic interfaces (on demand)</h5>
271<span class="anchor" id="line-173"></span><p class="line874">The example below shows the second method. This example will allow you to use multiple VM's, but the script assumes that each interface will be named in the form "vbox*". You may need to adapt the script to match your needs.  Note that the script assumes you can execute the needed commands using sudo.  A snippet of a sudoers file is included below as an example. <span class="anchor" id="line-174"></span><span class="anchor" id="line-175"></span><p class="line867"><span class="anchor" id="line-176"></span><pre>#!/bin/sh
272<span class="anchor" id="line-177"></span>set -e
273<span class="anchor" id="line-178"></span>BRIDGE="br0"
274<span class="anchor" id="line-179"></span>case "${1}" in
275<span class="anchor" id="line-180"></span>        "up" )
276<span class="anchor" id="line-181"></span>                # Get the last vbox interface that was created or "" if none
277<span class="anchor" id="line-182"></span>                TAP=$(cat /proc/net/dev | grep vbox | tail -n 1 | cut -d":" -f1 | sed 's/\s*vbox\(\.*\)/\1/')
278<span class="anchor" id="line-183"></span>                # If there was no previous interface then set to -1 (this is so the += works)
279<span class="anchor" id="line-184"></span>                [ "${TAP}" = "" ] &amp;&amp; TAP=-1
280<span class="anchor" id="line-185"></span>                # Increment TAP
281<span class="anchor" id="line-186"></span>                let "TAP+=1"
282<span class="anchor" id="line-187"></span>                # prepend vbox onto the TAP no
283<span class="anchor" id="line-188"></span>                TAP="vbox${TAP}"
284<span class="anchor" id="line-189"></span>                # Create the new TAP device
285<span class="anchor" id="line-190"></span>                sudo VBoxTunctl -b -u $(whoami) -t ${TAP}
286<span class="anchor" id="line-191"></span>                # Bring up the TAP (without an ip)
287<span class="anchor" id="line-192"></span>                sudo ifconfig ${TAP} up
288<span class="anchor" id="line-193"></span>                # Add the TAP to the Bridge
289<span class="anchor" id="line-194"></span>                sudo brctl addif ${BRIDGE} ${TAP}
290<span class="anchor" id="line-195"></span>                # Echo the name of the TAP so VirtualBox knows which one to use
291<span class="anchor" id="line-196"></span>                # on lenny the echo must be commented for virtuabox to work correctly
292<span class="anchor" id="line-197"></span>                echo ${TAP}
293<span class="anchor" id="line-198"></span>                ;;
294<span class="anchor" id="line-199"></span>        "down" )
295<span class="anchor" id="line-200"></span>                # VirtualBox tells us which TAP it used
296<span class="anchor" id="line-201"></span>                TAP=${3}
297<span class="anchor" id="line-202"></span>                # Bring the TAP down
298<span class="anchor" id="line-203"></span>                sudo ifconfig ${TAP} down
299<span class="anchor" id="line-204"></span>                # Remove the TAP
300<span class="anchor" id="line-205"></span>                sudo VBoxTunctl -d ${TAP} &gt; /dev/null 2&gt;&amp;1
301<span class="anchor" id="line-206"></span>                ;;
302<span class="anchor" id="line-207"></span>esac
303<span class="anchor" id="line-208"></span></pre><span class="anchor" id="line-209"></span><p class="line862">Save the script, for example as <tt>~/.VirtualBox/bridge_setup</tt>. The script can be tested by running it from the command line. If successful, <tt>brctl&nbsp;show</tt> should show interface <tt>vbox*</tt> (where * will be a number) added to the bridge. <span class="anchor" id="line-210"></span><span class="anchor" id="line-211"></span><p class="line874">Here is a snippet of a sudoers file to help (replace username and hostname with the appropriate values): <span class="anchor" id="line-212"></span><span class="anchor" id="line-213"></span><p class="line867"><span class="anchor" id="line-214"></span><pre>Cmnd_Alias      VIRTUALBOX = /usr/bin/VBoxTunctl, /sbin/ifconfig vbox* up, /sbin/ifconfig vbox* down, /usr/sbin/brctl addif br0 vbox*
304<span class="anchor" id="line-215"></span>username     ALL=(ALL) PASSWD: ALL
305<span class="anchor" id="line-216"></span>username     hostname = NOPASSWD: VIRTUALBOX
306<span class="anchor" id="line-217"></span></pre><span class="anchor" id="line-218"></span><p class="line874">To configure the VM to use dynamic bridged networking, go to the "network" page of the VM's settings and change the following fields: <span class="anchor" id="line-219"></span><span class="anchor" id="line-220"></span><ul><li><p class="line862">Attached to: <tt>Host&nbsp;Interface</tt> <span class="anchor" id="line-221"></span></li><li><p class="line862">Interface Name: &lt;empty&gt; <span class="anchor" id="line-222"></span></li><li><p class="line862">Setup Application: <tt>~/.VirtualBox/bridge_setup&nbsp;up</tt> <span class="anchor" id="line-223"></span></li><li><p class="line862">Terminate Application: <tt>~/.VirtualBox/bridge_setup&nbsp;down</tt> <span class="anchor" id="line-224"></span></li></ul><p class="line874">When the VM is started after that, the interface should be created automatically and the VM can be used just like it was a system connected directly to your local network. <span class="anchor" id="line-225"></span><span class="anchor" id="line-226"></span><p class="line867">
307<h3 id="head-7878d5314e89905ec3053a9add70589cc016297c">How to remotely start virtual machines using vnc</h3>
308<span class="anchor" id="line-227"></span><p class="line874">Remote: <span class="anchor" id="line-228"></span><span class="anchor" id="line-229"></span><ul><li>log onto your remote box <span class="anchor" id="line-230"></span></li><li>install tightvncserver <span class="anchor" id="line-231"></span></li><li>launch it (you don't need a display), pick a password <span class="anchor" id="line-232"></span></li><li>determine which port it is using, a way to do so: <span class="anchor" id="line-233"></span><ul><li>netstat -tap | grep vnc <span class="anchor" id="line-234"></span></li><li>Let's say it's 5901 <span class="anchor" id="line-235"></span></li></ul></li><li>unlog from there since the server forked in the background <span class="anchor" id="line-236"></span></li></ul><p class="line874">Local: <span class="anchor" id="line-237"></span><span class="anchor" id="line-238"></span><ul><li>install xtightvncviewer <span class="anchor" id="line-239"></span></li><li>create a ssh tunnel to your box: <span class="anchor" id="line-240"></span><ul><li>ssh -L 5901:localhost:5901 you@remote <span class="anchor" id="line-241"></span></li></ul></li><li>use it: (note there are two colons) <span class="anchor" id="line-242"></span><ul><li>xtightvncviewer localhost::5901 <span class="anchor" id="line-243"></span></li></ul></li><li><p class="line862">then VBoxManage startvm $yourvm &amp; <span class="anchor" id="line-244"></span></li><li>and start as many virtual machines as wanted. <span class="anchor" id="line-245"></span></li></ul><p class="line867">
309<h2 id="head-9dafea02d17272b5de1d9a1d15281d44c508605e">External Links</h2>
310<span class="anchor" id="line-246"></span><ul><li><p class="line891"><a class="http" href="http://www.virtualbox.org/download/UserManual.pdf">http://www.virtualbox.org/download/UserManual.pdf</a> Official User Manual <span class="anchor" id="line-247"></span></li><li><p class="line862">Alternative <a href="/SystemVirtualization">SystemVirtualization</a> tools. <span class="anchor" id="line-248"></span></li></ul><span class="anchor" id="bottom"></span></div><p id="pageinfo" class="info" lang="en" dir="ltr">VirtualBox  (last edited 2008-12-29 13:24:45 by <span title="MichaelMeskes @ exit.credativ.com[87.139.82.80]"><a class="nonexistent" href="/MichaelMeskes" title="MichaelMeskes @ exit.credativ.com[87.139.82.80]">MichaelMeskes</a></span>)</p>
311
312<div id="pagebottom"></div>
313</div>
314
315
316<div id="footer">
317<ul id="credits">
318<li><a href="http://moinmoin.wikiwikiweb.de/">MoinMoin Powered</a></li><li><a href="http://www.python.org/">Python Powered</a></li><li><a href="http://validator.w3.org/check?uri=referer">Valid HTML 4.01</a></li>
319</ul>
320
321
322</div>
323</body>
324</html>
325
Note: See TracBrowser for help on using the repository browser.