On Mon, Mar 5, 2012 at 10:28 PM, <rha...@informatiq.org> wrote: > From: InformatiQ <rha...@informatiq.org> > > > Signed-off-by: InformatiQ <rha...@informatiq.org> > --- > templates/lxc-fedora.in | 35 +++++++++++++++++++++++++++-------- > 1 files changed, 27 insertions(+), 8 deletions(-) > > diff --git a/templates/lxc-fedora.in b/templates/lxc-fedora.in > index e7f42a6..3f50895 100644 > --- a/templates/lxc-fedora.in > +++ b/templates/lxc-fedora.in > @@ -69,11 +69,6 @@ EOF > 127.0.0.1 localhost $name > EOF > > - sed -i 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.sysinit > - sed -i 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.d/rc.sysinit > - chroot ${rootfs_path} chkconfig udev-post off > - chroot ${rootfs_path} chkconfig network on > - > dev_path="${rootfs_path}/dev" > rm -rf $dev_path > mkdir -p $dev_path > @@ -99,6 +94,23 @@ EOF > > return 0 > } > +configure_fedora_init() > +{ > + sed -i 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.sysinit > + sed -i 's|.sbin.start_udev||' ${rootfs_path}/etc/rc.d/rc.sysinit > + chroot ${rootfs_path} chkconfig udev-post off > + chroot ${rootfs_path} chkconfig network on > +} > + > +configure_fedora_systemd() > +{ > + unlink ${rootfs_path}/etc/systemd/system/default.target > + touch ${rootfs_path}/etc/fstab > + chroot ${rootfs_path} ln -s /dev/null //etc/systemd/system/udev.service > + chroot ${rootfs_path} ln -s /lib/systemd/system/multi-user.target > /etc/systemd/system/default.target > + #dependency on a device unit fails it specially that we disabled udev > + sed -i 's/After=dev-%i.device/After=/' > ${rootfs_path}/lib/systemd/system/getty\@.service > +} > > download_fedora() > { > @@ -170,7 +182,8 @@ copy_fedora() > > update_fedora() > { > - chroot $cache/rootfs yum -y update > + YUM="yum --installroot $cache/rootfs -y --nogpgcheck" > + $YUM update > } > > install_fedora() > @@ -353,7 +366,7 @@ if [ "$(id -u)" != "0" ]; then > fi > > > -rootfs_path=$path/$name/rootfs > +rootfs_path=$path/rootfs > config_path=$default_path/$name > cache=$cache_base/$release > > @@ -362,7 +375,7 @@ revert() > echo "Interrupted, so cleaning up" > lxc-destroy -n $name > # maybe was interrupted before copy config > - rm -rf $path/$name > + rm -rf $path > rm -rf $default_path/$name > echo "exiting..." > exit 1 > @@ -388,6 +401,12 @@ if [ $? -ne 0 ]; then > exit 1 > fi > > +type /bin/systemd >/dev/null 2>&1 > +if [ $? -ne 0 ]; then > + configure_fedora_init > +else > + configure_fedora_systemd > +fi > > if [ ! -z $clean ]; then > clean || exit 1 > -- > 1.7.7.6 >
there is only problem about systemd not addressed by this script is that it does mount /dev which stops getty from starting on tty1 so either make it start on any tty higher than what your host is using and allow that in your lxc cgroup conf or mount the $rootfs/dev to a different block dev that way systemd won't mount /dev the script below does it nicely in the case you don't have a free block device. the script create a non persistant mount which you don't need if you are using lvm [rhanna@hovercraft bin]$ cat lxc-start-fedora #! /bin/bash options=$(getopt -o n: -l name: -- "$@") eval set -- "$options" while true do case "$1" in -n|--name) name=$2; shift 2;; --) shift break;; *) break ;; esac done if [ -z $name ]; then echo "container name must be set, use -n|--name" exit 1 fi lxc-ls |grep $name >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "Container does not exist" exit 1 fi lxc-info -s -n$name|grep RUNNING >/dev/null 2>&1 if [ $? -eq 0 ]; then echo "container already started" exit 1 fi mount |grep /tmp/lxc/$name > /dev/null 2>&1 if [ $? -eq 0 ]; then umount /tmp/lxc/$name fi rm -rf /tmp/lxc/$name mkdir -p /tmp/lxc/$name mount none /tmp/lxc/$name -t tmpfs rsync -a /var/lib/lxc/$name/rootfs/dev/ /tmp/lxc/$name mount /tmp/lxc/$name f16/rootfs/dev/ -obind lxc-start $* -n $name -- BR RH http://informatiq.org ------------------------------------------------------------------------------ Keep Your Developer Skills Current with LearnDevNow! The most comprehensive online learning library for Microsoft developers is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro Style Apps, more. Free future releases when you subscribe now! http://p.sf.net/sfu/learndevnow-d2d _______________________________________________ Lxc-users mailing list Lxc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-users