[PATCH] liblxc: lxc-debian expects missing directories

Daniel Lezcano daniel.lezcano at free.fr
Thu Feb 5 01:20:55 PST 2009


Matt Helsley wrote:
> lxc-debian fails unless the directories a given rootfs needs already
> exist. To fix this without relying on any particular function call order
> we can do: mkdir -p `dirname PATH/TO/FILE`
> before actually making the file.
>
> Signed-off-by: Matt Helsley <matthltc at us.ibm.com>
> ---
>   
Do you have an example on how that happens ?
When the script is called for creation, the rootfs is created with 
debootstrap, making sure the expected directories are there, no ?
It is not a big deal to make sure the directories are there, but I would 
like to understand :)

>  scripts/lxc-debian.in |    7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> Index: lxc/scripts/lxc-debian.in
> ===================================================================
> --- lxc.orig/scripts/lxc-debian.in
> +++ lxc/scripts/lxc-debian.in
> @@ -24,13 +24,14 @@ SSHD_CONFIG="/etc/ssh/sshd_config"
>  # custom selinux
>  
>  write_debian_selinux() {
> -    mkdir $ROOTFS/selinux
> +    mkdir -p $ROOTFS/selinux
>      echo 0 > $ROOTFS/selinux/enforce
>  }
>  
>  # custom fstab
>  
>  write_debian_fstab() {
> +mkdir -p `dirname $ROOTFS/$FSTAB`
>  cat <<EOF > $ROOTFS/$FSTAB
>  tmpfs  /dev/shm   tmpfs  defaults  0 0
>  EOF
> @@ -39,6 +40,7 @@ EOF
>  # custom inittab
>  
>  write_debian_inittab() {
> +mkdir -p `dirname $ROOTFS/$INITTAB`
>  cat <<EOF > $ROOTFS/$INITTAB
>  id:3:initdefault:
>  si::sysinit:/etc/init.d/rcS
> @@ -62,6 +64,7 @@ EOF
>  # custom network configuration
>  
>  write_debian_network() {
> +mkdir -p `dirname $ROOTFS/$INTERFACES`
>  cat <<EOF > $ROOTFS/$INTERFACES
>  auto eth0 lo
>  iface eth0 inet static
> @@ -76,6 +79,7 @@ EOF
>  # custom hostname
>  
>  write_debian_hostname() {
> +mkdir -p `dirname $ROOTFS/$HOSTNAME`
>  cat <<EOF > $ROOTFS/$HOSTNAME
>  $UTSNAME
>  EOF
> @@ -84,6 +88,7 @@ EOF
>  # custom sshd configuration file
>  
>  write_debian_sshd_config() {
> +mkdir -p `dirname $ROOTFS/$SSHD_CONFIG`
>  cat <<EOF > $ROOTFS/$SSHD_CONFIG
>  Port 22
>  Protocol 2
>
>
>
>
>   



More information about the Containers mailing list