63 |
BREAK_ENABLED=no |
BREAK_ENABLED=no |
64 |
UNIONFS=no |
UNIONFS=no |
65 |
UNIONFS_FILE="" |
UNIONFS_FILE="" |
66 |
CLOOPMOUNTDIR="/sysroot/mnt/cloop" |
SYSROOT="/sysroot" |
67 |
|
CLOOPMOUNTDIR="${SYSROOT}/mnt/cloop" |
68 |
|
|
69 |
## starts here ## |
## starts here ## |
70 |
|
|
125 |
echo /sbin/mdev > /proc/sys/kernel/hotplug |
echo /sbin/mdev > /proc/sys/kernel/hotplug |
126 |
|
|
127 |
# create newroot mount point |
# create newroot mount point |
128 |
mkdir -p /sysroot |
mkdir -p ${SYSROOT} |
129 |
# fake a new filesystem (also needed with an initramfs!!) |
# fake a new filesystem (also needed with an initramfs!!) |
130 |
mount -t tmpfs tmpfs /sysroot |
mount -t tmpfs tmpfs ${SYSROOT} |
131 |
|
|
132 |
mkdir -p /sysroot/mnt/cdrom |
mkdir -p ${SYSROOT}/mnt/cdrom |
133 |
mkdir -p /sysroot/mnt/cloop |
mkdir -p ${SYSROOT}/mnt/cloop |
134 |
mkdir -p /sysroot/mnt/magellan |
mkdir -p ${SYSROOT}/mnt/magellan |
135 |
|
|
136 |
|
|
137 |
# needed for the usbstick, the timeout maybe to short |
# needed for the usbstick, the timeout maybe to short |
183 |
exit 1 |
exit 1 |
184 |
else |
else |
185 |
echo -e "Booting from: $BOOT_DEVICE ..." |
echo -e "Booting from: $BOOT_DEVICE ..." |
186 |
mount -o ro -t "${FSTYPE}" "${BOOT_DEVICE}" /sysroot/mnt/cdrom >/dev/null 2>&1 |
mount -o ro -t "${FSTYPE}" "${BOOT_DEVICE}" ${SYSROOT}/mnt/cdrom >/dev/null 2>&1 |
187 |
|
|
188 |
# write our boot_device to /mnt/.bootdev for later use (mtab) |
# write our boot_device to /mnt/.bootdev for later use (mtab) |
189 |
echo "BOOTDEV=${BOOT_DEVICE}" > /sysroot/.bootdev |
echo "BOOTDEV=${BOOT_DEVICE}" > ${SYSROOT}/.bootdev |
190 |
echo "FSTYPE=${FSTYPE}" >> /sysroot/.bootdev |
echo "FSTYPE=${FSTYPE}" >> ${SYSROOT}/.bootdev |
191 |
|
|
192 |
# mount squashfs |
# mount squashfs |
193 |
echo -e "Mounting squashfs system image ..." |
echo -e "Mounting squashfs system image ..." |
194 |
echo |
echo |
195 |
[ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0 |
[ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0 |
196 |
mount -o loop,ro -t squashfs /sysroot/mnt/cdrom/livecdrootfs.sqsh "${CLOOPMOUNTDIR}" |
mount -o loop,ro -t squashfs ${SYSROOT}/mnt/cdrom/livecdrootfs.sqsh "${CLOOPMOUNTDIR}" |
197 |
|
|
198 |
# mount unionfs if enabled |
# mount unionfs if enabled |
199 |
if [[ ${UNIONFS} = yes ]] |
if [[ ${UNIONFS} = yes ]] |
201 |
echo -e "Mounting writeable cdbuffer (unionfs) ..." |
echo -e "Mounting writeable cdbuffer (unionfs) ..." |
202 |
|
|
203 |
# default setting |
# default setting |
204 |
CLOOPMOUNTDIR="/sysroot/mnt/unionfs" |
CLOOPMOUNTDIR="${SYSROOT}/mnt/unionfs" |
205 |
[[ -z ${UNIONFS_FILE} ]] && UNIONFS_FILE="/sysroot/mnt/cdrom/unionfs" |
[[ -z ${UNIONFS_FILE} ]] && UNIONFS_FILE="${SYSROOT}/mnt/cdrom/unionfs" |
206 |
|
|
207 |
[[ ! -d /sysroot/mnt/unionfs ]] && install -d /sysroot/mnt/unionfs |
[[ ! -d ${SYSROOT}/mnt/unionfs ]] && install -d ${SYSROOT}/mnt/unionfs |
208 |
mount -t unionfs dirs=${UNIONFS_FILE}=rw:/sysroot/mnt/cloop=ro ${CLOOPMOUNTDIR} |
mount -t unionfs dirs=${UNIONFS_FILE}=rw:${SYSROOT}/mnt/cloop=ro ${CLOOPMOUNTDIR} |
209 |
fi |
fi |
210 |
|
|
211 |
# symlinking cloop rootfs to /mnt as newroot |
# symlinking cloop rootfs to /mnt as newroot |
212 |
cd /sysroot |
cd ${SYSROOT} |
213 |
|
|
214 |
for x in bin sbin lib lib64 boot usr opt |
for x in bin sbin lib lib64 boot usr opt |
215 |
do |
do |
216 |
[ -d ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ] && ln -s ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ${x} |
[ -d ${CLOOPMOUNTDIR}/${x} ] && ln -s ${CLOOPMOUNTDIR#${SYSROOT}}/${x} ${x} |
217 |
done |
done |
218 |
mkdir -p initrd proc tmp sys var/tmp dev media |
mkdir -p initrd proc tmp sys var/tmp dev media |
219 |
|
|
220 |
# make /sysroot/dev/console & /mnt/dev/null |
# make ${SYSROOT}/dev/console & /mnt/dev/null |
221 |
[ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 |
[ ! -e ${SYSROOT}/dev/console ] && mknod -m 600 ${SYSROOT}/dev/console c 5 1 |
222 |
[ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3 |
[ ! -e ${SYSROOT}/dev/null ] && mknod -m 666 ${SYSROOT}/dev/null c 1 3 |
223 |
# only to be safe and to have a log channel |
# only to be safe and to have a log channel |
224 |
[ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0 |
[ ! -e ${SYSROOT}/dev/tty ] && mknod ${SYSROOT}/dev/tty c 5 0 |
225 |
# busybox needs this one |
# busybox needs this one |
226 |
[ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5 |
[ ! -e ${SYSROOT}/dev/tty5 ] && mknod ${SYSROOT}/dev/tty5 c 4 5 |
227 |
|
|
228 |
(cd ${CLOOPMOUNTDIR}; cp -a etc root home var /sysroot) |
(cd ${CLOOPMOUNTDIR}; cp -a etc root home var ${SYSROOT}) |
229 |
|
|
230 |
# ensure that /sysroot/linurc exists |
# ensure that ${SYSROOT}/linurc exists |
231 |
[ ! -e /sysroot/linuxrc ] && ln -snf ${INITEXEC} /sysroot/linuxrc |
[ ! -e ${SYSROOT}/linuxrc ] && ln -snf ${INITEXEC} ${SYSROOT}/linuxrc |
232 |
|
|
233 |
# ensure the right permissions |
# ensure the right permissions |
234 |
chmod 1777 /sysroot/tmp |
chmod 1777 ${SYSROOT}/tmp |
235 |
chmod 1777 /sysroot/var/tmp |
chmod 1777 ${SYSROOT}/var/tmp |
236 |
fi |
fi |
237 |
|
|
238 |
cd / |
cd / |
250 |
fi |
fi |
251 |
|
|
252 |
echo "-- Switching to real sysroot ..." |
echo "-- Switching to real sysroot ..." |
253 |
mount --move /dev /sysroot/dev |
mount --move /dev ${SYSROOT}/dev |
254 |
mount --move /sys /sysroot/sys |
mount --move /sys ${SYSROOT}/sys |
255 |
mount --move /proc /sysroot/proc |
mount --move /proc ${SYSROOT}/proc |
256 |
|
|
257 |
exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console |
exec run-init ${SYSROOT} ${INITEXEC} $@ < ${SYSROOT}/dev/console > ${SYSROOT}/dev/console |