On 11/30/2012 11:49 AM, Dwight Engen wrote:
> I was getting a "Too many links" error when creating a busybox container on
> a btrfs file system. This change has the template create the links as
> symlinks instead. It also generates the list of commands to be symlinked from
> busybox itself instead of a hardcoded list in the template.
> 
> Also set the root password to root, to match what other templates do.
> 
> Signed-off-by: Dwight Engen <dwight.en...@oracle.com>

Looks good, thanks.

Acked-by: Stéphane Graber <stgra...@ubuntu.com>

> ---
>  templates/lxc-busybox.in |   49 +++++++++------------------------------------
>  1 files changed, 10 insertions(+), 39 deletions(-)
> 
> diff --git a/templates/lxc-busybox.in b/templates/lxc-busybox.in
> index f38d77e..91095a3 100644
> --- a/templates/lxc-busybox.in
> +++ b/templates/lxc-busybox.in
> @@ -151,40 +151,6 @@ configure_busybox()
>  {
>      rootfs=$1
>  
> -    functions="\
> -     [ [[ addgroup adduser adjtimex ar arp arping ash awk basename \
> -     brctl bunzip2 bzcat bzip2 cal cat catv chattr chgrp chmod \
> -     chown chpasswd chpst chroot chrt chvt cksum clear cmp comm \
> -     cp cpio crond crontab cryptpw cut date dc dd deallocvt \
> -     delgroup deluser df dhcprelay diff dirname dmesg dnsd dos2unix \
> -     du dumpkmap dumpleases echo ed egrep eject env envdir envuidgid \
> -     ether-wake expand expr fakeidentd false fbset fdformat fdisk \
> -     fetchmail fgrep find findfs fold free freeramdisk fsck \
> -     fsck.minix ftpget ftpput fuser getopt getty grep gunzip gzip \
> -     halt hdparm head hexdump hostid hostname httpd hwclock id \
> -     ifconfig ifdown ifenslave ifup inetd init insmod install ip \
> -     ipaddr ipcalc ipcrm ipcs iplink iproute iprule iptunnel \
> -     kbd_mode kill killall killall5 klogd last length less linux32 \
> -     linux64 linuxrc ln loadfont loadkmap logger login logname \
> -     logread losetup lpd lpq lpr ls lsattr lsmod lzmacat makedevs \
> -     md5sum mdev mesg microcom mkdir mkfifo mkfs.minix mknod mkswap \
> -     mktemp modprobe more mount mountpoint msh mt mv nameif nc \
> -     netstat nice nmeter nohup nslookup od openvt passwd patch \
> -     pgrep pidof ping ping6 pipe_progress pivot_root pkill poweroff \
> -     printenv printf ps pscan pwd raidautorun rdate readahead \
> -     readlink readprofile realpath reboot renice reset resize rm \
> -     rmdir rmmod route rpm rpm2cpio run-parts runlevel runsv \
> -     runsvdir rx script sed sendmail seq setarch setconsole \
> -     setkeycodes setlogcons setsid setuidgid sh sha1sum slattach \
> -     sleep softlimit sort split start-stop-daemon stat strings \
> -     stty su sulogin sum sv svlogd swapoff swapon switch_root \
> -     sync sysctl syslogd tac tail tar taskset tcpsvd tee telnet \
> -     telnetd test tftp tftpd time top touch tr traceroute \
> -     true tty ttysize udhcpc udhcpd udpsvd umount uname uncompress \
> -     unexpand uniq unix2dos unlzma unzip uptime usleep uudecode \
> -     uuencode vconfig vi vlock watch watchdog wc wget which \
> -     who whoami xargs yes zcat zcip"
> -
>      type busybox >/dev/null
>  
>      if [ $? -ne 0 ]; then
> @@ -206,8 +172,14 @@ configure_busybox()
>       return 1
>      fi
>  
> -    # do hardlink to busybox for the different commands
> -    for i in $functions; do ln $rootfs/bin/busybox $rootfs/bin/$i; done
> +    # symlink busybox for the commands it supports
> +    # it would be nice to just use "chroot $rootfs busybox --install -s /bin"
> +    # but that only works right in a chroot with busybox >= 1.19.0
> +    pushd $rootfs/bin > /dev/null || return 1
> +    ./busybox --help | grep 'Currently defined functions:' -A300 | \
> +      grep -v 'Currently defined functions:' | tr , '\n' | \
> +      xargs -n1 ln -s busybox
> +    popd > /dev/null
>  
>      # relink /sbin/init
>      ln $rootfs/bin/busybox $rootfs/sbin/init
> @@ -215,9 +187,8 @@ configure_busybox()
>      # passwd exec must be setuid
>      chmod +s $rootfs/bin/passwd
>      touch $rootfs/etc/shadow
> -    chroot $rootfs /bin/passwd -d root
> -
> -    echo "No password for 'root', please change !"
> +    echo "setting root passwd to root"
> +    echo "root:root" | chroot $rootfs chpasswd
>  
>      return 0
>  }
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

Attachment: signature.asc
Description: OpenPGP digital signature

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
TUNE You got it built. Now make it sing. Tune shows you how.
http://goparallel.sourceforge.net
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to