Magellan Linux

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

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

revision 809 by niro, Fri Apr 24 18:07:17 2009 UTC revision 1512 by niro, Wed Sep 7 17:39:50 2011 UTC
# Line 55  check_drives() Line 55  check_drives()
55  ## some defaults ##  ## some defaults ##
56  DOSCSI=no  DOSCSI=no
57  DOUSB=no  DOUSB=no
58  DOSATA=no  DOSATA=yes
59  DOFB=no  DOFB=no
60  DOPATA=no  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    
70  # mount essential filesystems  # mount essential filesystems
71  mount -t proc proc /proc  mount -t proc proc /proc
72  mount -t sysfs sysfs /sys  mount -t sysfs sysfs /sys
73    mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024
74    
75    # install all busybox applets
76    busybox --install -s
77    
78  # silencio  # silencio
79  echo 0 > /proc/sys/kernel/printk  echo 0 > /proc/sys/kernel/printk
# Line 73  echo 0 > /proc/sys/kernel/printk Line 82  echo 0 > /proc/sys/kernel/printk
82  for i in $(cat /proc/cmdline)  for i in $(cat /proc/cmdline)
83  do  do
84   case "${i}" in   case "${i}" in
85   doscsi)   doscsi) DOSCSI=yes;;
86   DOSCSI=yes   noscsi) DOSCSI=no;;
87   ;;   dousb) DOUSB=yes;;
88   dousb)   nousb) DOUSB=no;;
89   DOUSB=yes   dosata) DOSATA=yes ;;
90   ;;   nosata) DOSATA=no ;;
91   dosata)   dofb) DOFB=yes;;
92   DOSATA=yes   nofb) DOFB=no;;
93   ;;   dopata) DOPATA=yes;;
94   dofb)   nopata) DOPATA=no;;
95   DOFB=yes   rootfs=*) FORCED_ROOTFS="${i#*=}";;
96   ;;   init=*) INITEXEC="${i#*=}";;
97   dopata)   break) BREAK_ENABLED=yes ;;
98   DOPATA=yes   unionfs) UNIONFS=yes;;
99   ;;   unionfs_file=*) UNIONFS_FILE="${i#*=}";;
  rootfs=*)  
  FORCED_ROOTFS="${i#*=}"  
  ;;  
100   esac   esac
101  done  done
102    
# Line 102  load_kernel_modules "generic" Line 108  load_kernel_modules "generic"
108  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"
109  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"
110    
111    # populate dev
112    mdev -s
113    # handle hotplug events properly
114    echo /sbin/mdev > /proc/sys/kernel/hotplug
115    
116  # create newroot mount point  # create newroot mount point
117  mkdir -p /sysroot  mkdir -p /sysroot
118  # fake a new filesystem (also needed with an initramfs!!)  # fake a new filesystem (also needed with an initramfs!!)
# Line 165  else Line 176  else
176   echo -e "Mounting squashfs system image ..."   echo -e "Mounting squashfs system image ..."
177   echo   echo
178   [ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0   [ ! -e /dev/loop0 ] && mknod /dev/loop0 b 7 0
179   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}"
180    
181     # mount unionfs if enabled
182     if [[ ${UNIONFS} = yes ]]
183     then
184     echo -e "Mounting writeable cdbuffer (unionfs) ..."
185    
186     # default setting
187     CLOOPMOUNTDIR="/sysroot/mnt/unionfs"
188     [[ -z ${UNIONFS_FILE} ]] && UNIONFS_FILE="/sysroot/mnt/cdrom/unionfs"
189    
190     [[ ! -d /sysroot/mnt/unionfs ]] && install -d /sysroot/mnt/unionfs
191     mount -t unionfs dirs=${UNIONFS_FILE}=rw:/sysroot/mnt/cloop=ro ${CLOOPMOUNTDIR}
192     fi
193    
194   # symlinking cloop rootfs to /mnt as newroot   # symlinking cloop rootfs to /mnt as newroot
195   cd /sysroot   cd /sysroot
196    
197   for x in bin sbin lib lib64 boot usr opt   for x in bin sbin lib lib64 boot usr opt
198   do   do
199   [ -d mnt/cloop/${x} ] && ln -s mnt/cloop/${x} ${x}   [ -d ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ] && ln -s ${CLOOPMOUNTDIR/\/sysroot\//}/${x} ${x}
200   done   done
201   mkdir -p initrd proc tmp sys var/tmp dev media   mkdir -p initrd proc tmp sys var/tmp dev media
202    
# Line 184  else Line 208  else
208   # busybox needs this one   # busybox needs this one
209   [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5   [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5
210    
211   (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)   (cd ${CLOOPMOUNTDIR}; cp -a etc root home var /sysroot)
212    
213     # ensure that /sysroot/linurc exists
214     [ ! -e /sysroot/linuxrc ] && ln -snf ${INITEXEC} /sysroot/linuxrc
215    
216   # ensure the right permissions   # ensure the right permissions
217   chmod 1777 /sysroot/tmp   chmod 1777 /sysroot/tmp
# Line 193  fi Line 220  fi
220    
221  cd /  cd /
222    
223    # unset hotplug event-manager
224    echo > /proc/sys/kernel/hotplug
225    
226  # de-silencio  # de-silencio
227  echo 3 > /proc/sys/kernel/printk  echo 3 > /proc/sys/kernel/printk
228    
229    if [[ ${BREAK_ENABLED} = yes ]]
230    then
231     echo "-- Break requested, type 'exit' to resume operation ..."
232     ash
233    fi
234    
235  echo "-- Switching to real sysroot ..."  echo "-- Switching to real sysroot ..."
236    umount /dev
237  umount /sys  umount /sys
238  umount /proc  umount /proc
239    
240  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.809  
changed lines
  Added in v.1512