[Users] More on making an OpenVZ template

Benjamin Henrion bh at udev.org
Sun Aug 21 11:26:43 EDT 2011

On Sun, Aug 21, 2011 at 4:10 PM, Kir Kolyshkin <kir at openvz.org> wrote:
> On 08/20/2011 12:18 AM, Sam Trenholme wrote:
>> I am continuing the work of making a tiny OpenVZ template.  One
>> discovery I have is that, for the OpenVZ tools to work, not only is it
>> mandatory for the system to have the Bash shell, but also that /bin/sh
>> has to be a symlink to Bash.  This is because the "vzctl" program
>> prepends the contents of the Bash-only
>> "/etc/vz/dists/scripts/functions" script to any script used by the
>> container to configure the system, and there does not appear to be any
>> way to configure a container to not use this Bash-only script.
>> In other words, any OpenVZ template without /bin/sh being an alias for
>> Bash can not be configured via the "vzctl" tools (nor the
>> corresponding Proxmox/SolusVM/whataever tools that call "vzctl").
>> This in mind, the next release of TinyVZ will include the Bash shell.
>> I actually prefer Bash over Busybox's "ash" shell; I *really* miss the
>> "!$" and "!*" shortcuts, as well as the "history" command, when using
>> this minimal shell.
> This is one way of doing things. The other way would be to rectify the
> '/etc/dists/scripts/functions' to not be dependent on bash.
> I am currently looking at it, so far I only found that it uses the
> 'function' keyword
> which is bashism. With that removed, it looks like it is working fine in
> either dash
> or busybox sh.
> I have committed the patch:
> http://git.openvz.org/?p=vzctl;a=commit;h=f83b28435f582f2f74fb3267b89b061a551b32e2
> And then a few more (to check it works in Debian without /bin/bash):
> http://git.openvz.org/?p=vzctl;a=commit;h=a86beacde8c1fba4002eaf5bf48a535e7d46ffc0
> http://git.openvz.org/?p=vzctl;a=commit;h=382f306cd0865bb4bcafc4f7a4b5cfe2f809296c

I have compiled it, and I can report it works, I have remove the bash
binary I got from tinyvz, and now it enters well in openwrt rootfs (I
have tested with the original vzctl 3.0.24 where it fails to enter if
there is no /bin/bash):

root at mybox /root/zoobab/openwrt-openvz [46]# ./vzctl --version
vzctl version
root at mybox /root/zoobab/openwrt-openvz [40]# ./vzctl enter 889
entered into CT 889

BusyBox v1.15.3 (2011-07-14 17:03:04 CEST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

  _______                     ________        __
 |       |.-----.-----.-----.|  |  |  |.----.|  |_
 |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
 |_______||   __|_____|__|__||________||__|  |____|
          |__| W I R E L E S S   F R E E D O M
 Backfire (10.03.1-RC5, r27608) --------------------------
  * 1/3 shot Kahlua    In a shot glass, layer Kahlua
  * 1/3 shot Bailey's  on the bottom, then Bailey's,
  * 1/3 shot Vodka     then Vodka.
root at OpenWrt:/#

Benjamin Henrion <bhenrion at ffii.org>
FFII Brussels - +32-484-566109 - +32-2-4148403
"In July 2005, after several failed attempts to legalise software
patents in Europe, the patent establishment changed its strategy.
Instead of explicitly seeking to sanction the patentability of
software, they are now seeking to create a central European patent
court, which would establish and enforce patentability rules in their
favor, without any possibility of correction by competing courts or
democratically elected legislators."

More information about the Users mailing list