Magellan Linux

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

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

revision 1808 by niro, Mon Apr 2 11:41:46 2012 UTC revision 1809 by niro, Mon Apr 23 13:07:35 2012 UTC
# Line 63  INITEXEC="/sbin/init" Line 63  INITEXEC="/sbin/init"
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    
# Line 124  mdev -s Line 125  mdev -s
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
# Line 182  then Line 183  then
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 ]]
# Line 200  else Line 201  else
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 /
# Line 249  then Line 250  then
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

Legend:
Removed from v.1808  
changed lines
  Added in v.1809