http://www.linux-vserver.org/api.php?action=feedcontributions&user=X&feedformat=atomLinux-VServer - User contributions [en]2024-03-29T15:33:25ZUser contributionsMediaWiki 1.20.2http://www.linux-vserver.org/Upstart_issuesUpstart issues2010-01-07T04:44:14Z<p>X: /* fake low level events inside the guest */</p>
<hr />
<div>== running an upstart based guest ==<br />
<br />
currently upstart based guests need some manual tweaking to make them work inside a vserver guest.<br />
<br />
=== prepare the host ===<br />
First of all you need to set the init style of your vserver to plain<br />
# echo plain > /etc/vservers/<vservername>/apps/init/style<br />
<br />
I'd also strongly recommend to mount <code>/var/run</code> and <code>/var/lock</code> of the guest as tmpfs. So add the following lines to<br />
<code>/etc/vservers/<vservername>/fstab</code><br />
none /var/run tmpfs size=16m,nosuid,mode=0755 0 0<br />
none /var/lock tmpfs size=16m,noexec,nosuid,nodev 0 0<br />
<br />
=== remove low level services inside the guest ===<br />
Then you need to get rid of anything in <code>/etc/init/</code> that tries to fiddle with your Server's Hardware or other low-level Stuff that's already handled by your host's kernel/system. Having one such scriptlet still enabled might cause the whole upstart system to fail (like not beeing able to open <code>/dev/console</code> or failing to start the udev system).<br />
Just remove these scriptlets, move them out of the way or rename them to something not ending in <code>.conf</code>. Be aware that upstart also parses subfolders of <code>/etc/init/</code> for <code>.conf</code> files.<br />
<br />
This is what I deleted on a basic Ubuntu 9.10 guest:<br />
dmesg.conf<br />
hostname.conf<br />
hwclock-save.conf<br />
hwclock.conf<br />
mountall-net.conf<br />
mountall-reboot.conf<br />
mountall-shell.conf<br />
mountall.conf<br />
network-interface.conf<br />
networking.conf<br />
procps.conf<br />
rsyslog-kmsg.conf<br />
tty1.conf<br />
tty2.conf<br />
tty3.conf<br />
tty4.conf<br />
tty5.conf<br />
tty6.conf<br />
upstart-udev-bridge.conf<br />
<br />
=== fake low level events inside the guest ===<br />
Finally you need to fake emit the events that some of these scripts would do during regular boot. Probably the cleanest approach is to add a scriptlet <code>vserver.conf</code> to <code>/etc/init/</code> with this content:<br />
start on startup<br />
script<br />
touch /var/run/utmp<br />
chown root:utmp /var/run/utmp<br />
chmod 664 /var/run/utmp<br />
initctl emit virtual-filesystems<br />
initctl emit local-filesystems<br />
initctl emit remote-filesystems<br />
initctl emit filesystem<br />
end script<br />
<br />
The utmp stuff is needed if you mount <code>/var/run</code> as tmpfs and you don't create utmp anywhere else.<br />
<br />
=== adapt /etc/init/rc-sysinit.conf inside the guest ===<br />
<br />
This depends on net-device-up IFACE=lo, remove this from the start line so that it reads:<br/><br />
<code>start on filesystem</code><br />
<br />
This scriptlet tries to parse <code>/proc/cmdline</code> which will not work and probably isn't needed inside a vserver.<br/><br />
Simply comment out or delete the whole <code>for ARG in $(cat /proc/cmdline) do...done</code> loop.<br />
<br />
=== Notes for older kernels ===<br />
If you encounter upstart errors like this:<br />
<br />
$ vserver foo start<br />
init: missing runlevel<br />
Try `init --help' for more information.<br />
<br />
or<br />
<br />
$ vserver foo start<br />
telinit: Failed to connect to socket /com/ubuntu/upstart: Connection refused<br />
<br />
then you're probably running the current stable version <code>2.6.22.19-vs2.2.0.7</code>.<br />
<br />
Upstart's <code>/sbin/init</code> implementation requires to be PID 1. It is linked against NPTL (in contrast to sysvinit), which has a bug in it's caching <code>getpid(2)</code> wrapper. With this kernel version <code>getpid(2)</code> returns the cached PID to init, resulting in init replacing itself with telinit. You can fix this by upgrading to a <code>2.6.26+</code> kernel and a newer vserver patch, or by patching upstart:<br />
<br />
diff --git a/init/main.c b/init/main.c<br />
index bfcd528..c6c9304 100644<br />
--- a/init/main.c<br />
+++ b/init/main.c<br />
@@ -37,6 +37,7 @@<br />
#include <string.h><br />
#include <syslog.h><br />
#include <unistd.h><br />
+#include <syscall.h><br />
<br />
#include <linux/kd.h><br />
<br />
@@ -131,7 +132,7 @@ main (int argc,<br />
}<br />
<br />
/* Check we're process #1 */<br />
- if (getpid () > 1) {<br />
+ if (syscall(SYS_getpid) > 1) {<br />
execv (TELINIT, argv);<br />
/* Ignore failure, probably just that telinit doesn't exist */<br />
<br />
For more information see the man pages of <code>getpid(2)</code> (NOTES) and <code>clone(2)</code> (BUGS).</div>Xhttp://www.linux-vserver.org/Upstart_issuesUpstart issues2010-01-07T04:40:59Z<p>X: /* prepare the host */</p>
<hr />
<div>== running an upstart based guest ==<br />
<br />
currently upstart based guests need some manual tweaking to make them work inside a vserver guest.<br />
<br />
=== prepare the host ===<br />
First of all you need to set the init style of your vserver to plain<br />
# echo plain > /etc/vservers/<vservername>/apps/init/style<br />
<br />
I'd also strongly recommend to mount <code>/var/run</code> and <code>/var/lock</code> of the guest as tmpfs. So add the following lines to<br />
<code>/etc/vservers/<vservername>/fstab</code><br />
none /var/run tmpfs size=16m,nosuid,mode=0755 0 0<br />
none /var/lock tmpfs size=16m,noexec,nosuid,nodev 0 0<br />
<br />
=== remove low level services inside the guest ===<br />
Then you need to get rid of anything in <code>/etc/init/</code> that tries to fiddle with your Server's Hardware or other low-level Stuff that's already handled by your host's kernel/system. Having one such scriptlet still enabled might cause the whole upstart system to fail (like not beeing able to open <code>/dev/console</code> or failing to start the udev system).<br />
Just remove these scriptlets, move them out of the way or rename them to something not ending in <code>.conf</code>. Be aware that upstart also parses subfolders of <code>/etc/init/</code> for <code>.conf</code> files.<br />
<br />
This is what I deleted on a basic Ubuntu 9.10 guest:<br />
dmesg.conf<br />
hostname.conf<br />
hwclock-save.conf<br />
hwclock.conf<br />
mountall-net.conf<br />
mountall-reboot.conf<br />
mountall-shell.conf<br />
mountall.conf<br />
network-interface.conf<br />
networking.conf<br />
procps.conf<br />
rsyslog-kmsg.conf<br />
tty1.conf<br />
tty2.conf<br />
tty3.conf<br />
tty4.conf<br />
tty5.conf<br />
tty6.conf<br />
upstart-udev-bridge.conf<br />
<br />
=== fake low level events inside the guest ===<br />
Finally you need to fake emit the events that some of these scripts would do during regular boot. Probably the cleanest approach is to add a scriptlet <code>vserver.conf</code> to <code>/etc/init/</code> with this content:<br />
start on startup<br />
script<br />
initctl emit virtual-filesystems<br />
initctl emit local-filesystems<br />
initctl emit remote-filesystems<br />
initctl emit filesystem<br />
end script<br />
<br />
=== adapt /etc/init/rc-sysinit.conf inside the guest ===<br />
<br />
This depends on net-device-up IFACE=lo, remove this from the start line so that it reads:<br/><br />
<code>start on filesystem</code><br />
<br />
This scriptlet tries to parse <code>/proc/cmdline</code> which will not work and probably isn't needed inside a vserver.<br/><br />
Simply comment out or delete the whole <code>for ARG in $(cat /proc/cmdline) do...done</code> loop.<br />
<br />
=== Notes for older kernels ===<br />
If you encounter upstart errors like this:<br />
<br />
$ vserver foo start<br />
init: missing runlevel<br />
Try `init --help' for more information.<br />
<br />
or<br />
<br />
$ vserver foo start<br />
telinit: Failed to connect to socket /com/ubuntu/upstart: Connection refused<br />
<br />
then you're probably running the current stable version <code>2.6.22.19-vs2.2.0.7</code>.<br />
<br />
Upstart's <code>/sbin/init</code> implementation requires to be PID 1. It is linked against NPTL (in contrast to sysvinit), which has a bug in it's caching <code>getpid(2)</code> wrapper. With this kernel version <code>getpid(2)</code> returns the cached PID to init, resulting in init replacing itself with telinit. You can fix this by upgrading to a <code>2.6.26+</code> kernel and a newer vserver patch, or by patching upstart:<br />
<br />
diff --git a/init/main.c b/init/main.c<br />
index bfcd528..c6c9304 100644<br />
--- a/init/main.c<br />
+++ b/init/main.c<br />
@@ -37,6 +37,7 @@<br />
#include <string.h><br />
#include <syslog.h><br />
#include <unistd.h><br />
+#include <syscall.h><br />
<br />
#include <linux/kd.h><br />
<br />
@@ -131,7 +132,7 @@ main (int argc,<br />
}<br />
<br />
/* Check we're process #1 */<br />
- if (getpid () > 1) {<br />
+ if (syscall(SYS_getpid) > 1) {<br />
execv (TELINIT, argv);<br />
/* Ignore failure, probably just that telinit doesn't exist */<br />
<br />
For more information see the man pages of <code>getpid(2)</code> (NOTES) and <code>clone(2)</code> (BUGS).</div>Xhttp://www.linux-vserver.org/Upstart_issuesUpstart issues2010-01-07T03:09:58Z<p>X: /* adapt /etc/init/rc-sysinit.conf inside the guest */</p>
<hr />
<div>== running an upstart based guest ==<br />
<br />
currently upstart based guests need some manual tweaking to make them work inside a vserver guest.<br />
<br />
=== prepare the host ===<br />
First of all you need to set the init style of your vserver to plain<br />
# echo plain > /etc/vservers/<vservername>/apps/init/style<br />
<br />
=== remove low level services inside the guest ===<br />
Then you need to get rid of anything in <code>/etc/init/</code> that tries to fiddle with your Server's Hardware or other low-level Stuff that's already handled by your host's kernel/system. Having one such scriptlet still enabled might cause the whole upstart system to fail (like not beeing able to open <code>/dev/console</code> or failing to start the udev system).<br />
Just remove these scriptlets, move them out of the way or rename them to something not ending in <code>.conf</code>. Be aware that upstart also parses subfolders of <code>/etc/init/</code> for <code>.conf</code> files.<br />
<br />
This is what I deleted on a basic Ubuntu 9.10 guest:<br />
dmesg.conf<br />
hostname.conf<br />
hwclock-save.conf<br />
hwclock.conf<br />
mountall-net.conf<br />
mountall-reboot.conf<br />
mountall-shell.conf<br />
mountall.conf<br />
network-interface.conf<br />
networking.conf<br />
procps.conf<br />
rsyslog-kmsg.conf<br />
tty1.conf<br />
tty2.conf<br />
tty3.conf<br />
tty4.conf<br />
tty5.conf<br />
tty6.conf<br />
upstart-udev-bridge.conf<br />
<br />
=== fake low level events inside the guest ===<br />
Finally you need to fake emit the events that some of these scripts would do during regular boot. Probably the cleanest approach is to add a scriptlet <code>vserver.conf</code> to <code>/etc/init/</code> with this content:<br />
start on startup<br />
script<br />
initctl emit virtual-filesystems<br />
initctl emit local-filesystems<br />
initctl emit remote-filesystems<br />
initctl emit filesystem<br />
end script<br />
<br />
=== adapt /etc/init/rc-sysinit.conf inside the guest ===<br />
<br />
This depends on net-device-up IFACE=lo, remove this from the start line so that it reads:<br/><br />
<code>start on filesystem</code><br />
<br />
This scriptlet tries to parse <code>/proc/cmdline</code> which will not work and probably isn't needed inside a vserver.<br/><br />
Simply comment out or delete the whole <code>for ARG in $(cat /proc/cmdline) do...done</code> loop.<br />
<br />
=== Notes for older kernels ===<br />
If you encounter upstart errors like this:<br />
<br />
$ vserver foo start<br />
init: missing runlevel<br />
Try `init --help' for more information.<br />
<br />
or<br />
<br />
$ vserver foo start<br />
telinit: Failed to connect to socket /com/ubuntu/upstart: Connection refused<br />
<br />
then you're probably running the current stable version <code>2.6.22.19-vs2.2.0.7</code>.<br />
<br />
Upstart's <code>/sbin/init</code> implementation requires to be PID 1. It is linked against NPTL (in contrast to sysvinit), which has a bug in it's caching <code>getpid(2)</code> wrapper. With this kernel version <code>getpid(2)</code> returns the cached PID to init, resulting in init replacing itself with telinit. You can fix this by upgrading to a <code>2.6.26+</code> kernel and a newer vserver patch, or by patching upstart:<br />
<br />
diff --git a/init/main.c b/init/main.c<br />
index bfcd528..c6c9304 100644<br />
--- a/init/main.c<br />
+++ b/init/main.c<br />
@@ -37,6 +37,7 @@<br />
#include <string.h><br />
#include <syslog.h><br />
#include <unistd.h><br />
+#include <syscall.h><br />
<br />
#include <linux/kd.h><br />
<br />
@@ -131,7 +132,7 @@ main (int argc,<br />
}<br />
<br />
/* Check we're process #1 */<br />
- if (getpid () > 1) {<br />
+ if (syscall(SYS_getpid) > 1) {<br />
execv (TELINIT, argv);<br />
/* Ignore failure, probably just that telinit doesn't exist */<br />
<br />
For more information see the man pages of <code>getpid(2)</code> (NOTES) and <code>clone(2)</code> (BUGS).</div>Xhttp://www.linux-vserver.org/Upstart_issuesUpstart issues2010-01-07T02:57:07Z<p>X: new rc-sysinit.conf section</p>
<hr />
<div>== running an upstart based guest ==<br />
<br />
currently upstart based guests need some manual tweaking to make them work inside a vserver guest.<br />
<br />
=== prepare the host ===<br />
First of all you need to set the init style of your vserver to plain<br />
# echo plain > /etc/vservers/<vservername>/apps/init/style<br />
<br />
=== remove low level services inside the guest ===<br />
Then you need to get rid of anything in <code>/etc/init/</code> that tries to fiddle with your Server's Hardware or other low-level Stuff that's already handled by your host's kernel/system. Having one such scriptlet still enabled might cause the whole upstart system to fail (like not beeing able to open <code>/dev/console</code> or failing to start the udev system).<br />
Just remove these scriptlets, move them out of the way or rename them to something not ending in <code>.conf</code>. Be aware that upstart also parses subfolders of <code>/etc/init/</code> for <code>.conf</code> files.<br />
<br />
This is what I deleted on a basic Ubuntu 9.10 guest:<br />
dmesg.conf<br />
hostname.conf<br />
hwclock-save.conf<br />
hwclock.conf<br />
mountall-net.conf<br />
mountall-reboot.conf<br />
mountall-shell.conf<br />
mountall.conf<br />
network-interface.conf<br />
networking.conf<br />
procps.conf<br />
rsyslog-kmsg.conf<br />
tty1.conf<br />
tty2.conf<br />
tty3.conf<br />
tty4.conf<br />
tty5.conf<br />
tty6.conf<br />
upstart-udev-bridge.conf<br />
<br />
=== fake low level events inside the guest ===<br />
Finally you need to fake emit the events that some of these scripts would do during regular boot. Probably the cleanest approach is to add a scriptlet <code>vserver.conf</code> to <code>/etc/init/</code> with this content:<br />
start on startup<br />
script<br />
initctl emit virtual-filesystems<br />
initctl emit local-filesystems<br />
initctl emit remote-filesystems<br />
initctl emit filesystem<br />
end script<br />
<br />
=== adapt /etc/init/rc-sysinit.conf inside the guest ===<br />
This scriptlet tries to parse <code>/proc/cmdline</code> which will not work and probably isn't needed inside a vserver.<br />
<br />
Simply comment out or delete the whole <code>for ARG in $(cat /proc/cmdline) do...done</code> loop.<br />
<br />
=== Notes for older kernels ===<br />
If you encounter upstart errors like this:<br />
<br />
$ vserver foo start<br />
init: missing runlevel<br />
Try `init --help' for more information.<br />
<br />
or<br />
<br />
$ vserver foo start<br />
telinit: Failed to connect to socket /com/ubuntu/upstart: Connection refused<br />
<br />
then you're probably running the current stable version <code>2.6.22.19-vs2.2.0.7</code>.<br />
<br />
Upstart's <code>/sbin/init</code> implementation requires to be PID 1. It is linked against NPTL (in contrast to sysvinit), which has a bug in it's caching <code>getpid(2)</code> wrapper. With this kernel version <code>getpid(2)</code> returns the cached PID to init, resulting in init replacing itself with telinit. You can fix this by upgrading to a <code>2.6.26+</code> kernel and a newer vserver patch, or by patching upstart:<br />
<br />
diff --git a/init/main.c b/init/main.c<br />
index bfcd528..c6c9304 100644<br />
--- a/init/main.c<br />
+++ b/init/main.c<br />
@@ -37,6 +37,7 @@<br />
#include <string.h><br />
#include <syslog.h><br />
#include <unistd.h><br />
+#include <syscall.h><br />
<br />
#include <linux/kd.h><br />
<br />
@@ -131,7 +132,7 @@ main (int argc,<br />
}<br />
<br />
/* Check we're process #1 */<br />
- if (getpid () > 1) {<br />
+ if (syscall(SYS_getpid) > 1) {<br />
execv (TELINIT, argv);<br />
/* Ignore failure, probably just that telinit doesn't exist */<br />
<br />
For more information see the man pages of <code>getpid(2)</code> (NOTES) and <code>clone(2)</code> (BUGS).</div>Xhttp://www.linux-vserver.org/DocumentationDocumentation2009-11-09T20:14:09Z<p>X: /* Guides and Howtos */ removed underscore in Upstart issues Link</p>
<hr />
<div><div style="margin: 2em auto 2em auto; padding: 10px; background-color: #F9ECCD; border: 1px solid #004433; text-align: center;"><br />
[[Image:Icon-Caution.png|left]]<br />
We are currently migrating to MediaWiki from our old system, but not all content has been migrated yet. Take a look at the [[Wiki Team]] page for instructions how to help or look at the [http://oldwiki.linux-vserver.org old wiki] to find the information not migrated yet.<br />
<br />
'''To ease migration we created a [[List of old Documentation pages]].'''<br />
</div><br />
<br />
== Introduction ==<br />
<br />
* [[Overview|Virtualization Overview]]<br />
* [[Usage Scenarios]]<br />
* [[Feature Matrix]]<br />
<br />
== Installation ==<br />
<br />
* [[Installation Considerations]]<br />
* [[Installation on Linux 2.6]]: from source, both the kernel and util-vserver<br />
* [[Installation on ArchLinux]]<br />
* [[Installation on CentOS]]<br />
* [[Installation on Debian]]<br />
* [[Installation on Fedora]]<br />
* [[Installation on Gentoo]]<br />
* [[Installation on Mandrake]]<br />
* [http://pld-linux.org/Vserver Installation on PLD-Linux]<br />
* [[Installation on Redhat]]<br />
* [[Installation on Slackware]]<br />
* [[Installation on SuSE/OpenSUSE]]<br />
* [[Installation on Ubuntu]]<br />
<br />
== Configuration ==<br />
<br />
* [[Util-vserver:Documentation|util-vserver Documentation]]<br />
* [[vcd:Documentation|VServer Control Daemon Documentation]]<br />
* [[Share a directory among multiple guests]]<br />
<br />
== Guides and Howtos ==<br />
<br />
* [[Building Guest Systems]]<br />
* [[util-vserver:Howto virtualize an exisiting Linux server|Howto virtualize an existing Linux server]]<br />
* [[VCMD HowTo]]<br />
* [[Howto make bsd-style init sysv-compatible|Howto make Bsd-style init sysv-compatible (archlinux guest system)]]<br />
* [[Installing 32-bit Fedora on 64-bit Debian]]<br />
* [[Installing Ubuntu on Debian]]<br />
* [[Installing an openSUSE vserver guest]]<br />
* [[Networking vserver guests]]<br />
* [[Howto HostAuth]]<br />
* [[Fuse_GlusterFS| Fuse and GlusterFS]]<br />
* [[yum-patch|How to patch vyum]]<br />
* [[yum-upgrade-3.2.4|Upgrading existing installations to yum-3.2.4]]<br />
* [[Migrating from OpenVZ to Linux-Vserver]]<br />
* [[Getting_high_with_lenny]]<br />
* [[Installing_Ubuntu_8.04_Hardy_as_guest]]<br />
* [[Applying CPU Limits]]<br />
* [[Upgrading from Etch to Lenny]]<br />
* [[Upstart issues]]<br />
<br />
== Lists &amp; Theory ==<br />
<br />
* Basic configuration<br />
** [[Capabilities and Flags]]<br />
** [[CPU Scheduler]]<br />
** [[Disk Limits and Quota]]<br />
** [[Resource Limits]]<br />
*** [[Memory Limits]]<br />
*** [[Network Bandwidth Management]]<br />
** [[Virtual System Information]]<br />
** [[Unification]]<br />
<br />
* Security Considerations<br />
** [[Secure Capabilities]]<br />
** [[Secure chroot Barrier]]<br />
** [[Secure Device Nodes]]<br />
** [[Secure ProcFS Entries]]<br />
<br />
* Performance and Stability<br />
** [[Virtualization Overhead]]<br />
<br />
* Implementation Details<br />
** [[Context Accounting]]<br />
** [[Filesystem Attributes]]<br />
** [[Filesystem Tagging]]<br />
** [[Filesystem Namespaces]]<br />
** [[Kernel Userspace Helper]]<br />
** [[Mainline Kernel Virtualization]]<br />
** [[ProcFS]]<br />
** [[Syscall Command Switch]]<br />
<br />
== External Resources ==<br />
<br />
* [http://vserver.13thfloor.at/Remote-Reset/ Simple Remote reset] (remote reset/power your vserver box)<br />
* [http://vserver.13thfloor.at/Null-Modem/ NullModem cables] [http://www.loop-back.com/null-mod.html II] [http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-pc-terminal.html III] (cable required for serial console)</div>Xhttp://www.linux-vserver.org/DocumentationDocumentation2009-11-09T20:13:23Z<p>X: /* Guides and Howtos */ added Link to Upstart Issues</p>
<hr />
<div><div style="margin: 2em auto 2em auto; padding: 10px; background-color: #F9ECCD; border: 1px solid #004433; text-align: center;"><br />
[[Image:Icon-Caution.png|left]]<br />
We are currently migrating to MediaWiki from our old system, but not all content has been migrated yet. Take a look at the [[Wiki Team]] page for instructions how to help or look at the [http://oldwiki.linux-vserver.org old wiki] to find the information not migrated yet.<br />
<br />
'''To ease migration we created a [[List of old Documentation pages]].'''<br />
</div><br />
<br />
== Introduction ==<br />
<br />
* [[Overview|Virtualization Overview]]<br />
* [[Usage Scenarios]]<br />
* [[Feature Matrix]]<br />
<br />
== Installation ==<br />
<br />
* [[Installation Considerations]]<br />
* [[Installation on Linux 2.6]]: from source, both the kernel and util-vserver<br />
* [[Installation on ArchLinux]]<br />
* [[Installation on CentOS]]<br />
* [[Installation on Debian]]<br />
* [[Installation on Fedora]]<br />
* [[Installation on Gentoo]]<br />
* [[Installation on Mandrake]]<br />
* [http://pld-linux.org/Vserver Installation on PLD-Linux]<br />
* [[Installation on Redhat]]<br />
* [[Installation on Slackware]]<br />
* [[Installation on SuSE/OpenSUSE]]<br />
* [[Installation on Ubuntu]]<br />
<br />
== Configuration ==<br />
<br />
* [[Util-vserver:Documentation|util-vserver Documentation]]<br />
* [[vcd:Documentation|VServer Control Daemon Documentation]]<br />
* [[Share a directory among multiple guests]]<br />
<br />
== Guides and Howtos ==<br />
<br />
* [[Building Guest Systems]]<br />
* [[util-vserver:Howto virtualize an exisiting Linux server|Howto virtualize an existing Linux server]]<br />
* [[VCMD HowTo]]<br />
* [[Howto make bsd-style init sysv-compatible|Howto make Bsd-style init sysv-compatible (archlinux guest system)]]<br />
* [[Installing 32-bit Fedora on 64-bit Debian]]<br />
* [[Installing Ubuntu on Debian]]<br />
* [[Installing an openSUSE vserver guest]]<br />
* [[Networking vserver guests]]<br />
* [[Howto HostAuth]]<br />
* [[Fuse_GlusterFS| Fuse and GlusterFS]]<br />
* [[yum-patch|How to patch vyum]]<br />
* [[yum-upgrade-3.2.4|Upgrading existing installations to yum-3.2.4]]<br />
* [[Migrating from OpenVZ to Linux-Vserver]]<br />
* [[Getting_high_with_lenny]]<br />
* [[Installing_Ubuntu_8.04_Hardy_as_guest]]<br />
* [[Applying CPU Limits]]<br />
* [[Upgrading from Etch to Lenny]]<br />
* [[Upstart_issues]]<br />
<br />
== Lists &amp; Theory ==<br />
<br />
* Basic configuration<br />
** [[Capabilities and Flags]]<br />
** [[CPU Scheduler]]<br />
** [[Disk Limits and Quota]]<br />
** [[Resource Limits]]<br />
*** [[Memory Limits]]<br />
*** [[Network Bandwidth Management]]<br />
** [[Virtual System Information]]<br />
** [[Unification]]<br />
<br />
* Security Considerations<br />
** [[Secure Capabilities]]<br />
** [[Secure chroot Barrier]]<br />
** [[Secure Device Nodes]]<br />
** [[Secure ProcFS Entries]]<br />
<br />
* Performance and Stability<br />
** [[Virtualization Overhead]]<br />
<br />
* Implementation Details<br />
** [[Context Accounting]]<br />
** [[Filesystem Attributes]]<br />
** [[Filesystem Tagging]]<br />
** [[Filesystem Namespaces]]<br />
** [[Kernel Userspace Helper]]<br />
** [[Mainline Kernel Virtualization]]<br />
** [[ProcFS]]<br />
** [[Syscall Command Switch]]<br />
<br />
== External Resources ==<br />
<br />
* [http://vserver.13thfloor.at/Remote-Reset/ Simple Remote reset] (remote reset/power your vserver box)<br />
* [http://vserver.13thfloor.at/Null-Modem/ NullModem cables] [http://www.loop-back.com/null-mod.html II] [http://www.tldp.org/HOWTO/Remote-Serial-Console-HOWTO/serial-pc-terminal.html III] (cable required for serial console)</div>Xhttp://www.linux-vserver.org/Upstart_issuesUpstart issues2009-11-09T20:10:38Z<p>X: page created</p>
<hr />
<div>== running an upstart based guest ==<br />
<br />
currently upstart based guests need some manual tweaking to make them work inside a vserver guest.<br />
<br />
=== prepare the host ===<br />
First of all you need to set the init style of your vserver to plain<br />
# echo plain > /etc/vservers/<vservername>/apps/init/style<br />
<br />
=== remove low level services inside the guest ===<br />
Then you need to get rid of anything in <code>/etc/init/</code> that tries to fiddle with your Server's Hardware or other low-level Stuff that's already handled by your host's kernel/system. Having one such scriptlet still enabled might cause the whole upstart system to fail (like not beeing able to open <code>/dev/console</code> or failing to start the udev system).<br />
Just remove these scriptlets, move them out of the way or rename them to something not ending in <code>.conf</code>. Be aware that upstart also parses subfolders of <code>/etc/init/</code> for <code>.conf</code> files.<br />
<br />
This is what I deleted on a basic Ubuntu 9.10 guest:<br />
control-alt-delete.conf<br />
dmesg.conf<br />
hostname.conf<br />
hwclock-save.conf<br />
hwclock.conf<br />
mountall-net.conf<br />
mountall-reboot.conf<br />
mountall-shell.conf<br />
mountall.conf<br />
network-interface.conf<br />
networking.conf<br />
procps.conf<br />
rsyslog-kmsg.conf<br />
tty1.conf<br />
tty2.conf<br />
tty3.conf<br />
tty4.conf<br />
tty5.conf<br />
tty6.conf<br />
upstart-udev-bridge.conf<br />
<br />
=== fake low level events inside the guest ===<br />
Finally you need to fake emit the events that some of these scripts would do during regular boot. Probably the cleanest approach is to add a scriptlet <code>vserver.conf</code> to <code>/etc/init/</code> with this content:<br />
start on startup<br />
script<br />
initctl emit virtual-filesystems<br />
initctl emit local-filesystems<br />
initctl emit remote-filesystems<br />
initctl emit filesystem<br />
end script</div>X