Jochen Haeberle writes:
 > If there is the problem you describe, why is lilo then able to 
 > install a working boot sector on one of
 > the disks???

I looked at the strace output:

stat("/tmp/dev.0", 0xbfffde70)          = -1 ENOENT (No such file or directory)
mknod("/tmp/dev.0", S_IFBLK|0600, makedev(0, 0)) = 0
stat("/tmp/dev.0", {st_mode=S_IFBLK|0600, st_rdev=makedev(0, 0), ...}) = 0
open("/tmp/dev.0", 0x4)                 = -1 ENODEV (No such device)
open("/usr/share/locale/locale.alias", O_RDONLY) = 7

I suspect the makedev(0, 0)

The lilo.raid1 patch does this:

device = (md_disk_info.major << 8) | md_disk_info.minor;
disk_fd = dev_open(&dev,device,O_NOACCESS);

and dev_open comes from lilo/device.c:

int dev_open(DEVICE *dev,int number,int flags)
{
 ...

  if (mknod(name,0600 | S_IFBLK,number) < 0)
    die("mknod %s: %s",name,strerror(errno));
  if (stat(name,&dev->st) < 0)
    die("stat %s: %s",name,strerror(errno))

 ...
  if (flags == -1) dev->fd = -1;
    else if ((dev->fd = open(name,flags)) < 0)
            die("open %s: %s",name,strerror(errno))   <-- lilo dies here
}


I would like to know who made the patch...


Dirk

Reply via email to