[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] UUID support
From: |
Robert Millan |
Subject: |
Re: [PATCH] UUID support |
Date: |
Fri, 30 May 2008 12:41:15 +0200 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
On Fri, May 30, 2008 at 02:49:22AM +0800, Bean wrote:
> On Fri, May 30, 2008 at 2:17 AM, Robert Millan <address@hidden> wrote:
> > On Fri, May 30, 2008 at 12:50:42AM +0800, Bean wrote:
> >>
> >> BTW, I think we can embed the UUID of the root device in
> >> core.img/grub.elf, so that when the traditional root device fails to
> >> locate normal.mod, it uses the UUID to scan for root device.
> >
> > Good idea. But I'd check for UUID first. When you find a UUID match, it's
> > much more reliable than a filename one.
>
> Here are some thought about how to store it. We can reuse the space
> occupied by prefix. Instead of one variable, we use zero-end strings
> like:
>
> path=/boot/grub \0 uuid=xxx-xxx-xxxx \0 \0
>
> We can also add other variable, for example, debug and default. debug
> is useful as it can show message before grub.cfg is loaded, and
> default is used to control the default menu entry. Other variable
> should be set in grub.cfg, as space is quite limited here.
>
> path=/boot/grub \0 uuid=xxx-xxx-xxxx \0 debug=all \0 default=1 \0 \0
>
> The space need to expand slightly, I guess something about 100 byte is
> more than enough. The whole block is prefixed by a magic number and
> block length, so that it's easy to locate by utility.
>
> This also solve the savedefault issue, we can add a command like this:
>
> save_env /path_to_core.img variable_name ..
>
> It finds the magic number, and store the value of selected variable in
> the embedded environment block.
Then I suppose we could have a module that gets $uuid from environment and
searches for it to set $prefix?
Maybe we could search for everything else in the same module too, this way
we only have to iterate once. It could check for things like:
- filesystem uuid
- partmap uuid (when we support it)
- filename (based on user input via variable, rather than hardcoded
normal.mod?)
- filesystem label
--
Robert Millan
<GPLv2> I know my rights; I want my phone call!
<DRM> What good is a phone call… if you are unable to speak?
(as seen on /.)
Re: [PATCH] UUID support, Robert Millan, 2008/05/30