]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Fix paths in the lxc-busybox template
authorDaniel Lezcano <daniel.lezcano@free.fr>
Thu, 27 Jan 2011 23:24:54 +0000 (00:24 +0100)
committerDaniel Lezcano <dlezcano@fr.ibm.com>
Thu, 27 Jan 2011 23:24:54 +0000 (00:24 +0100)
Author of the patch : Jonathan Liu <???> posted as a bug fix on the lxc
sourceforge website.

OS: Arch Linux 32-bit

/etc/init.d/rcS do not use full path to syslogd, mount and udhcpc executables.
As busybox requires /proc mounted if CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
to run these commands without full path, the full path should be used in the
startup script as /proc is mounted later in the script.

It also fails to start the machine if /lib64 does not exist on the host system
as there is a mount entry for /lib64 in the config.

The attached patch changes commands in /etc/init.d/rcS to use full path and
adds a check for /lib64 on host before adding lib64 mount entries to config.

Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
templates/lxc-busybox.in

index 62088df75f31127568dc3dc348f780ac0ae3f855..720ceef64c2a19c361041281c31656170da4a1bf 100644 (file)
@@ -78,9 +78,9 @@ EOF
     # mount everything
     cat <<EOF >> $rootfs/etc/init.d/rcS
 #!/bin/sh
-syslogd
-mount -a
-udhcpc
+/bin/syslogd
+/bin/mount -a
+/bin/udhcpc
 EOF
 
     # executable
@@ -242,7 +242,7 @@ lxc.mount.entry=/usr/lib $rootfs/usr/lib none ro,bind 0 0
 EOF
 fi
 
-if [ -d "$rootfs/lib64" ]; then
+if [ -d "/lib64" ] && [ -d "$rootfs/lib64" ]; then
 cat <<EOF >> $path/config
 lxc.mount.entry=/lib64 $rootfs/lib64 none ro,bind 0 0
 lxc.mount.entry=/usr/lib64 $rootfs/usr/lib64 none ro,bind 0 0