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
|
#!/bin/bash
# Copyright (c) 2012 - OpenSLX GmbH
#
# This program is free software distributed under the GPL version 2.
# See http://openslx.org/COPYING
#
# If you have any feedback please consult http://openslx.org/feedback and
# send your feedback to feedback@openslx.org
#
# General information about OpenSLX can be found at http://openslx.org
#
# Server side script to generate stage3.1,2 initial ramfses for OpenSLX Linux
# stateless clients
#############################################################################
# first parameter is a hash pointing to the target directory
# /srv/openslx/build
# in the future the prefix should be set via slxsettings ...
SLXPREFIX=/srv/openslx
IRTARGET=${SLXPREFIX}/build/$1
# 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}
# produce stage3.1
mkdir -p ${IRTARGET}/stage3.1
# 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
# 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
# add the static stuff for stage3.1
cp -a ${SLXPREFIX}/core/stage3.1 ${IRTARGET}/stage3.1
# finalize the initramfs target
which mksquashfs 2>&1>/dev/null || { echo "Please install SquashFS utilities" ; exit 1 }
mksquashfs -ef ${IRTARGET}/stage3.1 ${IRTARGET} \
${IRTARGET}/stage3.1/mnt/openslx.sqfs -comp xz -b 1M -no-progress -no-recovery 2>/dev/null
(cd ${IRTARGET}/stage3.1; find . | cpio --format="newc" --create | gzip -9 > ${IRTARGET}/initramfs)
|