diff options
Diffstat (limited to 'server/build_core')
| -rwxr-xr-x[-rw-r--r--] | server/build_core | 60 |
1 files changed, 32 insertions, 28 deletions
diff --git a/server/build_core b/server/build_core index e761eb2e..69687454 100644..100755 --- a/server/build_core +++ b/server/build_core @@ -17,48 +17,52 @@ # /srv/openslx/build # in the future the prefix should be set via slxsettings ... -SLXPREFIX=/srv/openslx -IRTARGET=${SLXPREFIX}/build/$1 + +ROOT_DIR=$(dirname $(readlink -f $0)) +SELF=$(readlink -f $0) + +if [ "x$(whoami)" != "xroot" ]; then + echo "ERROR: You need to have root rights to install packages." + exit 1 +fi # add openslx distro (in)dependent data to the initramfs target DISTRONAME=ubuntu DISTROVER=12.04 -for content in ${SLXPREFIX}/core/base - ${SLXPREFIX}/core/${DISTRONAME}/base - ${SLXPREFIX}/core/${DISTRONAME}/${DISTROVER} ; do - cp -a $content ${IRTARGET} -done - -# add kernel stuff to the initramfs target -KERNELVER= -mkdir -p ${IRTARGET}/lib/modules -cp -a ${SLXPREFIX}/kernel/${KERNELVER}/modules \ - ${IRTARGET}/lib/modules/${KERNELVER} +STAGE31_DIR=${ROOT_DIR}/stage3.1 +STAGE32_DIR=${ROOT_DIR}/../remote/stage3.2 # produce stage3.1 -mkdir -p ${IRTARGET}/stage3.1 +#mkdir -p ${STAGE31_DIR} -# create the base directory structure for stage3.1 -mkdir -p ${IRTARGET}/stage3.1/{bin,dev,proc,run,lib,etc,mnt,sys} -cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \ - ${IRTARGET}/stage3.1/dev -cp ${IRTARGET}/openslx/bin/busybox ${IRTARGET}/stage3.1/bin +#Copy Busybox to Stage3.1 +#[ ! -e ${STAGE32_DIR/openslx/bin/busybox} ] && echo "Busybox not found under stage3.2/openslx. Please run setup_tools first." && return + +#cp ${STAGE32_DIR}/openslx/bin/busybox ${STAGE31_DIR}/bin # link the required busybox applets for stage3.1 -for app in insmod modprobe mount mkdir umount sh switch_root ; do - ln -s /bin/busybox ${IRTARGET}/stage3.1/bin/${app} -done +#for app in insmod modprobe mount mkdir umount sh switch_root ; do +# ln -s /bin/busybox ${IRTARGET}/stage3.1/bin/${app} +#done + +# copy stage3.1 base from data directory +[ ! -d ${ROOT_DIR}/../data/stage3.1 ] && echo "No stage3.1 directory found." && exit 1 +cp -a ${ROOT_DIR}/../data/stage3.1 ${ROOT_DIR} -# add the static stuff for stage3.1 -cp -a ${SLXPREFIX}/core/stage3.1 ${IRTARGET}/stage3.1 +# create the base directory structure for stage3.2 +mkdir -p ${STAGE32_DIR}/{bin,dev,proc,run,lib,etc,mnt,sys} +cp -a /dev/{console,kmsg,mem,null,tty,tty0,tty1,tty9,urandom,zero} \ + ${STAGE32_DIR}/dev # finalize the initramfs target -which mksquashfs 2>&1>/dev/null || { echo "Please install SquashFS utilities" ; exit 1 } +which mksquashfs 2>&1>/dev/null || echo "Please install SquashFS utilities" -mksquashfs -ef ${IRTARGET}/stage3.1 ${IRTARGET} \ - ${IRTARGET}/stage3.1/mnt/openslx.sqfs -comp xz -b 1M -no-progress -no-recovery 2>/dev/null +[ ! -d ${STAGE32_DIR} ] && echo "No stage3.2 directory found. Please run setup_tools first." && exit 1 -(cd ${IRTARGET}/stage3.1; find . | cpio --format="newc" --create | gzip -9 > ${IRTARGET}/initramfs) +[ -e ${STAGE31_DIR}/mnt/openslx.sqfs ] && rm ${STAGE31_DIR}/mnt/openslx.sqfs +mksquashfs ${STAGE32_DIR} ${STAGE31_DIR}/mnt/openslx.sqfs -comp xz -b 1M -no-progress -no-recovery 2>/dev/null +cd ${STAGE31_DIR} +find . | cpio --format="newc" --create | gzip -9 > ${ROOT_DIR}/initramfs |
