To avoid all the nasty messages you'll get trying to redefine existing
device nodes:

for dasd in `sed -e '1,2d' -e 's/.* dasd/dasd/' /proc/partitions`;do
  if [ ! -b /dev/$dasd ]; then
    grep "$dasd"$ /proc/partitions | \
      awk '{print "mknod -m 600 /dev/" $4 " b " $1 " " $2}' | sh -x
  fi
done

But neither the orignal, nor this addresses the case of DASD being
available, but with no partitions (yet).  Since this is the most likely case
where something like this would be needed, then:
for dasd in `sed -e 's/.* is \(dasd.*\).* :.*$/\1/' /proc/dasd/devices`;do
 if [ ! -b /dev/$dasd ];then
   grep $dasd /proc/dasd/devices | \
   sed -e 's/.* at (/(/' -e 's/:/ /' -e 's/)/ )/' | \
     awk '{print "mknod -m 600 /dev/" $6 "  b  " $2 " " $3; \
       minor=$3; \
       print "mknod -m 600 /dev/" $6 "1 b  " $2 " " minor+1 ; \
       print "mknod -m 600 /dev/" $6 "2 b  " $2 " " minor+2 ; \
       print "mknod -m 600 /dev/" $6 "3 b  " $2 " " minor+3}' | \
     sh -x
  fi
done

Note that I'm very, very new to awk, so this may be a horrible example, but
it seemed to work for me.


Mark Post

-----Original Message-----
From: Richard Troth [mailto:[EMAIL PROTECTED]
Sent: Tuesday, January 06, 2004 10:35 AM
To: [EMAIL PROTECTED]
Subject: Re: New Linux User


        cat /proc/partitions | tail +2 | grep -v '^$' \
        | awk '{print "mknod -m 600 /dev/" $4 " b " $1 " " $2}' \
        | sh -x

No warranties implied or expressed.   :-)

-- R;

Reply via email to