[lxc-users] lxc-create try rsync data to device instead mount point

mxs kolo kolomaxes at gmail.com
Mon Jul 28 09:37:21 UTC 2014


>> And problem in lxc-centos and other template fixed with small patch:
>>
>> # diff -uN /usr/share/lxc/templates/lxc-centos
>> /usr/share/lxc/templates/lxc-centos.ORIG
>> --- /usr/share/lxc/templates/lxc-centos 2014-07-25 17:52:11.509618392
>> +0400
>> +++ /usr/share/lxc/templates/lxc-centos.ORIG    2014-07-07
>> 12:39:32.430333034 +0400
>> @@ -686,7 +686,7 @@
>>      case "$1" in
>>          -h|--help)      usage $0 && exit 0;;
>>          -p|--path)      path=$2; shift 2;;
>> -        --rootfs)       rootfs_path=$2; shift 2;;
>> +        --rootfs)       rootfs=$2; shift 2;;
>
> That's the wrong way, you should use what lxc passed in as "--rootfs"
> argument
Compare template lxc-download (work in my case)
1) get params
 --rootfs)           LXC_ROOTFS=$2; shift 2;;
2) copy data:
 tar  --anchored ${EXCLUDES} --numeric-owner -xpJf \
    ${LXC_CACHE_PATH}/rootfs.tar.xz -C ${LXC_ROOTFS}


and in lxc-centos:
1) get params
--rootfs)       rootfs=$2; shift 2;;
2) copy data:
rsync -a $cache/rootfs/ $rootfs_path/

In lxc-centos everywhere use variable $rootfs_path, but in getops
created variable  $rootfs
And because rootfs_path is empty, it defined as /dev/data/LVM_NAME  in
case LVM in next block:
if [ -z "$rootfs_path" ]; then
    rootfs_path=$path/rootfs
    # check for 'lxc.rootfs' passed in through default config by lxc-create
    if grep -q '^lxc.rootfs' $path/config 2>/dev/null ; then
        rootfs_path=$(sed -e '/^lxc.rootfs\s*=/!d' -e 's/\s*#.*//' \
            -e 's/^lxc.rootfs\s*=\s*//' -e q $path/config)
    fi
fi

Who must set correct rootfs_path ?

b.r.
 Maxim Kozin


More information about the lxc-users mailing list