On Tue, Jul 29, 2008 at 10:20:29PM +0200, Felix Zielcke wrote: > >#0 0x00000000004015f9 in probe_partmap (disk=0x0) > >at /home/fz/grub/grub2-1.96+20080724/util/grub-probe.c:87 > >87 if (disk->partition == NULL) > > > This is really a good way to get more into this coding and debugging C > stuff in general and especially, into grub2's code. > > As far as I could find out now (more with trying it out then reading the > code) grub itself can handle a raid1 > with one missing device or an unsynced one. > Here's a patch which print an error on "grub-probe -t partmap /" instead of > segfaulting. > I have to find out why "grub-probe -t fs /" fails with one missing device > but succeeds with an unsynced one. > First I thought I let it continue and just print out a warning, but there's > no grub_util_warn() and probable anyway better > to reject installing grub on a not fully synced raid. > > Please comment :) > > > Index: util/grub-probe.c > =================================================================== > --- util/grub-probe.c (Revision 1747) > +++ util/grub-probe.c (Arbeitskopie) > @@ -179,6 +179,8 @@ > list = dev->disk->dev->memberlist (dev->disk); > while (list) > { > + if (! list->disk) > + grub_util_error ("At least one underlying device for %s is > missing.",dev->disk->name);
We generate that list ourselves (I think in util/raid.c), so if one device is linked in the list but just points to NULL that's our own fault, at least up to the util/raid.c layer. -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all." _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel