61 |
FORCED_ROOTFS="" |
FORCED_ROOTFS="" |
62 |
INITEXEC="/sbin/init" |
INITEXEC="/sbin/init" |
63 |
BREAK_ENABLED=no |
BREAK_ENABLED=no |
64 |
|
UNIONFS=no |
65 |
|
UNIONFS_FILE="" |
66 |
|
CLOOPMOUNTDIR="/sysroot/mnt/cloop" |
67 |
|
|
68 |
## starts here ## |
## starts here ## |
69 |
|
|
95 |
rootfs=*) FORCED_ROOTFS="${i#*=}";; |
rootfs=*) FORCED_ROOTFS="${i#*=}";; |
96 |
init=*) INITEXEC="${i#*=}";; |
init=*) INITEXEC="${i#*=}";; |
97 |
break) BREAK_ENABLED=yes ;; |
break) BREAK_ENABLED=yes ;; |
98 |
|
unionfs) UNIONFS=yes;; |
99 |
|
unionfs_file=*) UNIONFS_FILE="${i#*=}";; |
100 |
|
rootdelay=*) ROOTDELAY="${i#*=}";; |
101 |
esac |
esac |
102 |
done |
done |
103 |
|
|
130 |
sleep 8 |
sleep 8 |
131 |
fi |
fi |
132 |
|
|
133 |
|
# respect rootdelay kernel param |
134 |
|
if [ ! -z "${ROOTDELAY}" ]; then |
135 |
|
echo "-- Requested a rootdelay of ${ROOTDELAY} seconds ..." |
136 |
|
sleep ${ROOTDELAY} |
137 |
|
fi |
138 |
|
|
139 |
# searching cdrom with cdid |
# searching cdrom with cdid |
140 |
BOOT_DEVICE="" |
BOOT_DEVICE="" |
141 |
FSTYPE="" |
FSTYPE="" |
183 |
echo -e "Mounting squashfs system image ..." |
echo -e "Mounting squashfs system image ..." |
184 |
echo |
echo |
185 |
[ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0 |
[ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0 |
186 |
mount -o loop,ro -t squashfs /sysroot/mnt/cdrom/livecdrootfs.sqsh /sysroot/mnt/cloop |
mount -o loop,ro -t squashfs /sysroot/mnt/cdrom/livecdrootfs.sqsh "${CLOOPMOUNTDIR}" |
187 |
|
|
188 |
|
# mount unionfs if enabled |
189 |
|
if [[ ${UNIONFS} = yes ]] |
190 |
|
then |
191 |
|
echo -e "Mounting writeable cdbuffer (unionfs) ..." |
192 |
|
|
193 |
|
# default setting |
194 |
|
CLOOPMOUNTDIR="/sysroot/mnt/unionfs" |
195 |
|
[[ -z ${UNIONFS_FILE} ]] && UNIONFS_FILE="/sysroot/mnt/cdrom/unionfs" |
196 |
|
|
197 |
|
[[ ! -d /sysroot/mnt/unionfs ]] && install -d /sysroot/mnt/unionfs |
198 |
|
mount -t unionfs dirs=${UNIONFS_FILE}=rw:/sysroot/mnt/cloop=ro ${CLOOPMOUNTDIR} |
199 |
|
fi |
200 |
|
|
201 |
# symlinking cloop rootfs to /mnt as newroot |
# symlinking cloop rootfs to /mnt as newroot |
202 |
cd /sysroot |
cd /sysroot |
203 |
|
|
204 |
for x in bin sbin lib lib64 boot usr opt |
for x in bin sbin lib lib64 boot usr opt |
205 |
do |
do |
206 |
[ -d mnt/cloop/${x} ] && ln -s mnt/cloop/${x} ${x} |
[ -d ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ] && ln -s ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ${x} |
207 |
done |
done |
208 |
mkdir -p initrd proc tmp sys var/tmp dev media |
mkdir -p initrd proc tmp sys var/tmp dev media |
209 |
|
|
210 |
# make /sysroot/dev/console & /mnt/dev/null |
# use devtmpfs if supported |
211 |
[ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 |
if [ "$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)" = "devtmpfs" ] |
212 |
[ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3 |
then |
213 |
# only to be safe and to have a log channel |
mount -t devtmpfs dev /sysroot/dev |
214 |
[ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0 |
else |
215 |
# busybox needs this one |
# make /sysroot/dev/console & /mnt/dev/null |
216 |
[ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5 |
[ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1 |
217 |
|
[ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3 |
218 |
|
# only to be safe and to have a log channel |
219 |
|
[ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0 |
220 |
|
# busybox needs this one |
221 |
|
[ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5 |
222 |
|
fi |
223 |
|
|
224 |
|
(cd ${CLOOPMOUNTDIR}; cp -a etc root home var /sysroot) |
225 |
|
|
226 |
(cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot) |
# ensure that /sysroot/linurc exists |
227 |
|
[ ! -e /sysroot/linuxrc ] && ln -snf ${INITEXEC} /sysroot/linuxrc |
228 |
|
|
229 |
# ensure the right permissions |
# ensure the right permissions |
230 |
chmod 1777 /sysroot/tmp |
chmod 1777 /sysroot/tmp |