Magellan Linux

Diff of /tags/mkinitrd-6_3_3/mkinitrd.in

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

revision 894 by niro, Wed Aug 5 16:24:23 2009 UTC revision 1140 by niro, Thu Aug 19 12:24:23 2010 UTC
# Line 53  force="" Line 53  force=""
53  verbose=""  verbose=""
54  img_vers=""  img_vers=""
55  builtins=""  builtins=""
56  modulefile=/etc/modules.conf  modulefile="/etc/modules.conf"
57    modprobeconf="/etc/modprobe.d/*"
58  rc=0  rc=0
59    
60  IMAGESIZE=4000  IMAGESIZE=4000
# Line 319  handlelvordev() Line 320  handlelvordev()
320   fi   fi
321  }  }
322    
323    get_blkid()
324    {
325     local UUID
326     local SEC_TYPE
327     local TYPE
328    
329     local dev="$1"
330     [[ -z ${dev} ]] && die "no dev given"
331    
332     # check if given device is already an UUID
333     if [[ ${dev/UUID=/}x != ${dev}x ]]
334     then
335     eval "${dev}"
336     else
337     eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //')
338     fi
339     echo ${UUID}
340    }
341    
342  # need r00t privs  # need r00t privs
343  [[ $(id -u) != 0 ]] && die "you must be r00t."  [[ $(id -u) != 0 ]] && die "you must be r00t."
344    
# Line 453  fi Line 473  fi
473  ####### get modules ##########  ####### get modules ##########
474    
475  echo "Creating ${IMAGE_TYPE} initrd image"  echo "Creating ${IMAGE_TYPE} initrd image"
 modulefile=/etc/modprobe.conf  
476    
477  for n in ${PREMODS}  for n in ${PREMODS}
478  do  do
# Line 468  then Line 487  then
487   for fs in / /boot   for fs in / /boot
488   do   do
489   esc=$(echo ${fs} | sed 's,/,\\/,g')   esc=$(echo ${fs} | sed 's,/,\\/,g')
490   dev=$(mount | awk "/ on ${esc} / { print \$1 }" | sed 's/[0-9]*$//' | cut -d/ -f3)   dev=$(mount | awk "/ on ${esc} / { print \$1 }" | sed 's/[0-9]*$//')
491   if [ "$(echo ${dev} | cut -c1-2)" = sd ]   if [ "$(echo ${dev} | cut -c6-7)" = sd ]
492   then   then
493   if [ $(which kudzu 2>/dev/null) ]   if [ $(which hwinfo 2>/dev/null) ]
494   then   then
495   host=$(kudzu --probe -b scsi |   if [[ -n $(hwinfo --disk --only ${dev} | grep 'Driver Modules' | grep 'usb[_|-]storage') ]]
  gawk '/^device: '${dev}'/,/^host:/ { if (/^host/) { print $2; exit; } }')  
  if [ -d /proc/scsi/usb-storage-${host} -o -f /proc/scsi/usb-storage/${host} ]  
496   then   then
497   needusb=1   needusb=1
498   fi   fi
# Line 749  do Line 766  do
766   module=$(echo ${MODULE} | sed "s|.*/||" | sed "s/.k\?o$//")   module=$(echo ${MODULE} | sed "s|.*/||" | sed "s/.k\?o$//")
767   fullmodule=$(echo ${MODULE} | sed "s|.*/||")   fullmodule=$(echo ${MODULE} | sed "s|.*/||")
768    
769   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modulefile} 2>/dev/null)   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modprobeconf} 2>/dev/null)
770    
771   if [ -n "${options}" ]   if [ -n "${options}" ]
772   then   then
# Line 821  fi Line 838  fi
838    
839  add_initrd 'echo "-- Mounting sysroot ..."'  add_initrd 'echo "-- Mounting sysroot ..."'
840  add_initrd '. /etc/rootdev'  add_initrd '. /etc/rootdev'
 add_initrd '[ ! -e ${device} ] && mknod ${device} b ${major} ${minor}'  
841  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'
842  add_initrd 'mount /sysroot || ash'  add_initrd 'mount /sysroot || ash'
843    
# Line 848  chmod +x ${DEST}/init || die Line 864  chmod +x ${DEST}/init || die
864    
865  # setup root block device  # setup root block device
866  [[ -z ${rootdev} ]] && die "no known rootdev found."  [[ -z ${rootdev} ]] && die "no known rootdev found."
867  echo "device=${rootdev}" > ${DEST}/etc/rootdev || die  echo "device='UUID=$(get_blkid ${rootdev})'" > ${DEST}/etc/rootdev || die
868  echo "major=$(stat -c %t ${rootdev})" >> ${DEST}/etc/rootdev || die  echo "rootfs='${rootfs}'" >> ${DEST}/etc/rootdev || die
 echo "minor=$(stat -c %T ${rootdev})" >> ${DEST}/etc/rootdev || die  
 echo "rootfs=${rootfs}" >> ${DEST}/etc/rootdev || die  
869    
870  # install detected modules  # install detected modules
871  echo "Coping your modules to '${DEST}/lib' ..."  echo "Coping your modules to '${DEST}/lib' ..."

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