From: Robert Millan <rmh@aybabtu.com>
To: Guntsche Michael <mike@it-loops.com>
Cc: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [PATCH] Fix prefix problem with LVM on RAID
Date: Sun, 13 Apr 2008 18:40:44 +0200 [thread overview]
Message-ID: <20080413164044.GA29656@thorin> (raw)
In-Reply-To: <AF5DFCD5-7182-449B-8A76-2A1BEF23B851@it-loops.com>
[-- Attachment #1: Type: text/plain, Size: 1586 bytes --]
On Sun, Apr 13, 2008 at 06:07:22PM +0200, Guntsche Michael wrote:
>
> On Apr 13, 2008, at 17:04, Robert Millan wrote:
> >On Sat, Feb 23, 2008 at 09:54:35PM +0100, Michael Guntsche wrote:
> >>Hello,
> >>
> >>While testing a soon to be deployed setup here I noticed that grub-
> >>setup is setting the prefix wrong if you run
> >>LVM on Software RAID
> >>
> >>grub-setup -v /dev/md0
> >>...
> >>grub-setup: info: dos partition is -2, bsd partition is -2, prefix is
> >>(md0)(fatoftheland-main)/boot/grub
> >>...
> >>
> >>As you can see the there is also (md0) in the prefix which does not
> >>work.
> >>Attached a small patch that fixes this problem for me. I am not sure
> >>if it is the best way to fix it so please take a look.
> >>If the root device is on LVM only add the LVM part if it is on RAID
> >>only add the RAID part.
> >
> >Sorry for the delay in repliing. I think it's more correct this
> >way. Does
> >it work for you?
>
> Hello Robert,
>
> Take a look at the for loop later on in the MD case, that is not being
> called with your patch.
> The code gets all RAID disks and calls setup on each of them. I do not
> think the setup call further down is doing the same thing, haven't
> checked it though. With my patch "setup" is still called for each RAID
> member with the correct prefix. In the case of a faulty disk you can
> still boot from the degraded array, by choosing a different disk.
Ok, second try.
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)
[-- Attachment #2: raid.diff --]
[-- Type: text/x-diff, Size: 2078 bytes --]
* util/i386/pc/grub-setup.c (main): When LVM is used on top of RAID,
don't prepend the RAID device in setup()'s `prefix'.
diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp ../grub2/util/i386/pc/grub-setup.c ./util/i386/pc/grub-setup.c
--- ../grub2/util/i386/pc/grub-setup.c 2008-02-19 15:00:11.000000000 +0100
+++ ./util/i386/pc/grub-setup.c 2008-04-13 18:36:42.000000000 +0200
@@ -609,7 +609,7 @@ main (int argc, char *argv[])
char *root_dev = 0;
char *prefix;
char *dest_dev;
- int must_embed = 0;
+ int root_in_lvm = 0;
progname = "grub-setup";
@@ -741,7 +741,7 @@ main (int argc, char *argv[])
if (grub_util_lvm_isvolume (root_dev))
{
char *newprefix;
- must_embed = 1;
+ root_in_lvm = 1;
newprefix = xmalloc (1 + strlen (root_dev) + 1 + strlen (prefix) + 1);
sprintf (newprefix, "(%s)%s", root_dev, prefix);
@@ -753,25 +753,26 @@ main (int argc, char *argv[])
&& dest_dev[2] >= '0' && dest_dev[2] <= '9')
{
char **devicelist;
- char *raid_prefix;
int i;
- raid_prefix = xmalloc (1 + strlen (dest_dev) + 1 + strlen (prefix) + 1);
+ if (! root_in_lvm)
+ {
+ char *newprefix = xmalloc (1 + strlen (dest_dev) + 1 + strlen (prefix) + 1);
+ sprintf (newprefix, "(%s)%s", dest_dev, prefix);
+ free (prefix);
+ prefix = newprefix;
+ }
- sprintf (raid_prefix, "(%s)%s", dest_dev, prefix);
-
devicelist = grub_util_raid_getmembers (dest_dev);
for (i = 0; devicelist[i]; i++)
{
- setup (raid_prefix,
+ setup (prefix,
dir ? : DEFAULT_DIRECTORY,
boot_file ? : DEFAULT_BOOT_FILE,
core_file ? : DEFAULT_CORE_FILE,
root_dev, grub_util_get_grub_dev (devicelist[i]), 1);
}
-
- free (raid_prefix);
}
else
#endif
@@ -780,7 +781,7 @@ main (int argc, char *argv[])
dir ? : DEFAULT_DIRECTORY,
boot_file ? : DEFAULT_BOOT_FILE,
core_file ? : DEFAULT_CORE_FILE,
- root_dev, dest_dev, must_embed);
+ root_dev, dest_dev, root_in_lvm);
/* Free resources. */
grub_fini_all ();
next prev parent reply other threads:[~2008-04-13 16:41 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-23 20:54 [PATCH] Fix prefix problem with LVM on RAID Michael Guntsche
2008-02-24 16:37 ` Michael Guntsche
2008-04-13 15:04 ` Robert Millan
2008-04-13 16:07 ` Guntsche Michael
2008-04-13 16:40 ` Robert Millan [this message]
2008-04-13 17:03 ` Guntsche Michael
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080413164044.GA29656@thorin \
--to=rmh@aybabtu.com \
--cc=grub-devel@gnu.org \
--cc=mike@it-loops.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.