Magellan Linux

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

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

revision 673 by niro, Fri Jan 25 11:12:52 2008 UTC revision 1180 by niro, Wed Dec 15 21:42:48 2010 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd-magellan/livecd/linuxrc.sh,v 1.5 2008-01-25 11:12:52 niro Exp $  # $Id$
3    
4  # loads given kernel modules  # loads given kernel modules
5  load_kernel_modules()  load_kernel_modules()
# 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    
64  ## starts here ##  ## starts here ##
65    
66  # mount essential filesystems  # mount essential filesystems
67  mount -t proc proc /proc  mount -t proc proc /proc
68  mount -t sysfs sysfs /sys  mount -t sysfs sysfs /sys
69    mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024
70    
71    # install all busybox applets
72    busybox --install -s
73    
74  # silencio  # silencio
75  echo 0 > /proc/sys/kernel/printk  echo 0 > /proc/sys/kernel/printk
# Line 73  echo 0 > /proc/sys/kernel/printk Line 78  echo 0 > /proc/sys/kernel/printk
78  for i in $(cat /proc/cmdline)  for i in $(cat /proc/cmdline)
79  do  do
80   case "${i}" in   case "${i}" in
81   doscsi)   doscsi) DOSCSI=yes;;
82   DOSCSI=yes   noscsi) DOSCSI=no;;
83   ;;   dousb) DOUSB=yes;;
84   dousb)   nousb) DOUSB=no;;
85   DOUSB=yes   dosata) DOSATA=yes ;;
86   ;;   nosata) DOSATA=no ;;
87   dosata)   dofb) DOFB=yes;;
88   DOSATA=yes   nofb) DOFB=no;;
89   ;;   dopata) DOPATA=yes;;
90   dofb)   nopata) DOPATA=no;;
91   DOFB=yes   rootfs=*) FORCED_ROOTFS="${i#*=}";;
92   ;;   init=*) INITEXEC="${i#*=}";;
  dopata)  
  DOPATA=yes  
  ;;  
  rootfs=*)  
  FORCED_ROOTFS="${i#*=}"  
  ;;  
93   esac   esac
94  done  done
95    
# Line 102  load_kernel_modules "generic" Line 101  load_kernel_modules "generic"
101  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"
102  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"
103    
104    # populate dev
105    mdev -s
106    # handle hotplug events properly
107    echo /sbin/mdev > /proc/sys/kernel/hotplug
108    
109  # create newroot mount point  # create newroot mount point
110  mkdir -p /sysroot  mkdir -p /sysroot
111  # fake a new filesystem (also needed with an initramfs!!)  # fake a new filesystem (also needed with an initramfs!!)
# Line 127  echo "Searching for a boot device ..." Line 131  echo "Searching for a boot device ..."
131  # searching usbstick  # searching usbstick
132  if [ "${DOUSB}" = "yes" ]; then  if [ "${DOUSB}" = "yes" ]; then
133   ROOTFS="vfat"   ROOTFS="vfat"
134   [[ -n ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"   [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
135   check_drives "/dev/sd*" "${ROOTFS}"   check_drives "/dev/sd*" "${ROOTFS}"
136   check_drives "/dev/sg*" "${ROOTFS}"   check_drives "/dev/sg*" "${ROOTFS}"
137  fi  fi
138    
139  # for cdrom_device in $CDROM_LIST (ide)  # for cdrom_device in $CDROM_LIST (ide)
140  ROOTFS="iso9660"  ROOTFS="iso9660"
141  [[ -n ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"  [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
142  check_drives "/dev/cdroms/*" "${ROOTFS}"  check_drives "/dev/cdroms/*" "${ROOTFS}"
143  check_drives "/dev/hd*" "${ROOTFS}"  check_drives "/dev/hd*" "${ROOTFS}"
144    
145  # scsi cdroms  # scsi cdroms
146  if [ "${DOSCSI}" = "yes" ] || [ "${DOSATA}" = "yes" ]; then  if [ "${DOSCSI}" = "yes" ] || [ "${DOSATA}" = "yes" ]; then
147   ROOTFS="iso9660"   ROOTFS="iso9660"
148   [[ -n ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"   [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
149   check_drives "/dev/sr*" "${ROOTFS}"   check_drives "/dev/sr*" "${ROOTFS}"
150   check_drives "/dev/sg*" "${ROOTFS}"   check_drives "/dev/sg*" "${ROOTFS}"
151   check_drives "/dev/scd*" "${ROOTFS}"   check_drives "/dev/scd*" "${ROOTFS}"
# Line 179  else Line 183  else
183   # make /sysroot/dev/console & /mnt/dev/null   # make /sysroot/dev/console & /mnt/dev/null
184   [ ! -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
185   [ ! -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
186     # only to be safe and to have a log channel
187     [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0
188     # busybox needs this one
189     [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5
190    
191   (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)   (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)
192    
# Line 189  fi Line 197  fi
197    
198  cd /  cd /
199    
200    # unset hotplug event-manager
201    echo > /proc/sys/kernel/hotplug
202    
203  # de-silencio  # de-silencio
204  echo 3 > /proc/sys/kernel/printk  echo 3 > /proc/sys/kernel/printk
205    
206  echo "-- Switching to real sysroot ..."  echo "-- Switching to real sysroot ..."
207    umount /dev
208  umount /sys  umount /sys
209  umount /proc  umount /proc
210    
211  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.673  
changed lines
  Added in v.1180