1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
|
#!/bin/sh
if [ $# -gt 0 ]; then
destdir=$1
shift
else
destdir=testtree
fi
for d in \
/bin \
/etc \
/lib \
/lib32 \
/lib64 \
/root \
/sbin \
/tmp \
/usr/bin \
/usr/lib \
/usr/sbin \
/usr/local/bin
do
mkdir -p $destdir/$d
done
for d in \
/dev \
/proc
do
rm -f $destdir/$d
ln -sf $d $destdir/$d
done
for p in \
'/bin/bash' \
'/bin/busybox' \
'/bin/cat' \
'/bin/chmod' \
'/bin/csh' \
'/bin/cp' \
'/bin/grep' \
'/bin/sh' \
'/bin/ls' \
'/bin/mkdir' \
'/bin/ps' \
'/bin/pwd' \
'/bin/rm' \
'/bin/sh' \
'/bin/touch' \
'/usr/bin/basename' \
'/usr/bin/dirname' \
'/usr/bin/find' \
'/usr/bin/id' \
'/usr/bin/ltrace' \
'/usr/bin/perl' \
'/usr/bin/strace' \
'/usr/bin/touch' \
'/usr/sbin/chroot' \
'/usr/local/bin/bash' \
'/usr/local/bin/strace'
do
for f in $p; do
cp -pf $PREFIX$f $destdir/$(dirname $f) 2>/dev/null
done
done
for p in \
'ld-linux.so.*' \
'ld-linux-x86-64.so.*' \
'ld-uClibc.so.*' \
'libacl.so.*' \
'libattr.so.*' \
'libc.so.*' \
'libcrypt.so.*' \
'libdl.so.*' \
'libgcc_s.so.*' \
'libpthread.so.*' \
'librt.so.*' \
'libselinux.so.*' \
'libm.so.*' \
'libncurses.so.*' \
'linux-vdso.so.*'
do
for a in '' 32 64; do
fp="/lib$a/$p"
for f in $fp; do
cp -pf $PREFIX$f $destdir/$(dirname $f) 2>/dev/null
done
done
done
for p in \
src/test-*
do
test -x $p || continue
cp -pf $p $destdir/bin
done
echo $destdir > $destdir/CHROOT
|