patch for FAI disk detection

Bruce Edge bedge at troikanetworks.com
Mon Nov 11 19:41:05 CET 2002


Some kernels report devices in /proc/partitions differently causing the FAI disk detection to fail. I'm sure there's some kernel option for this, but I've no idea what it is.

FAI expects /proc/partitions to be of the format:

pilsner:~# cat /proc/partitions 
major minor  #blocks  name

   3     0   39082680 hda
   3     1      32098 hda1
   3     2     104422 hda2
   3     3          1 hda3
   3     5     530113 hda5
   3     6     104391 hda6
   3     7      16033 hda7
   3     8    2048256 hda8
   3     9    2048256 hda9

Whereas, some kernels report it as:

pilsner:/tmp/fai# cat /proc/partitions
major minor  #blocks  name     rio rmerge rsect ruse wio wmerge wsect wuse running use aveq

   3     0   39082680 hda 6 18 48 110 0 0 0 0 0 110 110
   3     1      32098 hda1 0 0 0 0 0 0 0 0 0 0 0
   3     2     104422 hda2 0 0 0 0 0 0 0 0 0 0 0
   3     3          1 hda3 0 0 0 0 0 0 0 0 0 0 0
   3     5     530113 hda5 0 0 0 0 0 0 0 0 0 0 0
   3     6     104391 hda6 0 0 0 0 0 0 0 0 0 0 0
   3     7      16033 hda7 0 0 0 0 0 0 0 0 0 0 0
   3     8    2048256 hda8 0 0 0 0 0 0 0 0 0 0 0
   3     9    2048256 hda9 0 0 0 0 0 0 0 0 0 0 0

So, here's a patch that works for both cases:

--- /usr/share/fai/subroutines-linux.old        Mon Nov 11 09:14:32 2002
+++ /usr/share/fai/subroutines-linux    Mon Nov 11 10:33:30 2002
@@ -24,7 +24,7 @@
 disk_info() {
 
     # the variable holds a space separated list of devices and their block size
-    device_size=`egrep ' cciss/c.d.$| ida/c.d.$| rd/c.d.$| hd.$| sd.$|/disc$' /proc/partitions | diskandsize`
+    device_size=`egrep ' cciss/c.d.\b| ida/c.d.\b| rd/c.d.\b| hd.\b| sd.\b|/disc\b' /proc/partitions | sed -e "s/\([a-z]\+ \).\+$/\1/" | diskandsize`
 
     # a list of all local disks, without size
     disklist=`list_disks $device_size`


-Bruce.



More information about the linux-fai mailing list