autodetecting MBR location
My lilo configuration scripts need to be able to infer the correct location
for the MBR. I am currently using the following algorithm:
take root fs device from /etc/fstab and do the following:
s/[0-9]*//
s/part$/disc/
The latter is for devfs.
Now for the benefit of RAID systems I need to do:
if($device =~ /\/dev\/md/)
{
my $mdname = $device;
$mdname =~ s/\/dev\///;
$mdname =~ s/\///;
my $md = `grep $mdname /proc/mdstat`;
my @devices = split(" ", $md);
@devices = sort(@devices[4..$#devices]);
$root = "/dev/" . $devices[0];
$root =~ s/\[.*$//;
}
Before the part of:
s/[0-9]*//
s/part$/disc/
The debconf code that Gergely Risko <risko@atom.hu> wrote is what I'm
building on. Gergely's code has essentially s/[0-9]*// inlined which is ok
for a non-RAID non-devfs system. But I want to work with all combinations of
RAID and non-RAID, devfs and non-devfs and also expand to LVM in the near
future. So I can't do that. I currently plan to put a program to do this
under /usr/sbin.
Now I have the following questions:
1) Does anyone have any similar code for doing this that I can merge my code
with?
2) Does anyone else need the same code? If so please tell me what you need
and I'll make my code as generic as I can.
3) Can anyone see any obvious bugs in the above?
--
http://www.coker.com.au/bonnie++/ Bonnie++ hard drive benchmark
http://www.coker.com.au/postal/ Postal SMTP/POP benchmark
http://www.coker.com.au/projects.html Projects I am working on
http://www.coker.com.au/~russell/ My home page
Reply to: