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> --- 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 } -- 1.7.1 ------------------------------------------------------------------------------ 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