Magellan Linux

Diff of /trunk/mkinitrd-magellan/livecd/linuxrc.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 894 by niro, Wed Aug 5 16:24:23 2009 UTC revision 1514 by niro, Wed Sep 7 17:45:14 2011 UTC
# Line 59  DOSATA=yes Line 59  DOSATA=yes
59  DOFB=no  DOFB=no
60  DOPATA=yes  DOPATA=yes
61  FORCED_ROOTFS=""  FORCED_ROOTFS=""
62    INITEXEC="/sbin/init"
63    BREAK_ENABLED=no
64    UNIONFS=no
65    UNIONFS_FILE=""
66    CLOOPMOUNTDIR="/sysroot/mnt/cloop"
67    
68  ## starts here ##  ## starts here ##
69    
# Line 88  do Line 93  do
93   dopata) DOPATA=yes;;   dopata) DOPATA=yes;;
94   nopata) DOPATA=no;;   nopata) DOPATA=no;;
95   rootfs=*) FORCED_ROOTFS="${i#*=}";;   rootfs=*) FORCED_ROOTFS="${i#*=}";;
96     init=*) INITEXEC="${i#*=}";;
97     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    
# Line 120  if [ "${DOUSB}" = "yes" ]; then Line 130  if [ "${DOUSB}" = "yes" ]; then
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=""
# Line 167  else Line 183  else
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
# Line 201  echo > /proc/sys/kernel/hotplug Line 239  echo > /proc/sys/kernel/hotplug
239  # de-silencio  # de-silencio
240  echo 3 > /proc/sys/kernel/printk  echo 3 > /proc/sys/kernel/printk
241    
242    if [[ ${BREAK_ENABLED} = yes ]]
243    then
244     echo "-- Break requested, type 'exit' to resume operation ..."
245     ash
246    fi
247    
248  echo "-- Switching to real sysroot ..."  echo "-- Switching to real sysroot ..."
249  umount /dev  umount /dev
250  umount /sys  umount /sys
251  umount /proc  umount /proc
252    
253  exec run-init /sysroot /sbin/init $@ </sysroot/dev/console >/sysroot/dev/console  exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console

Legend:
Removed from v.894  
changed lines
  Added in v.1514