grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: normal vs. rescue mode commands


From: Yoshinori K. Okuji
Subject: Re: normal vs. rescue mode commands
Date: Fri, 4 Jun 2004 13:24:41 +0200
User-agent: KMail/1.5.3

On Thursday 03 June 2004 14:50, Tomas Ebenlendr wrote:
> I think that loaders will have common code for both modes. And so
> there can be wrapper (which will be in normal mode) to provide this
> commands to normal mode. And the loaders themself need not to have
> normal mode commands if the rescue commands (including their
> descriptions) will be accessible from normal mode.

That's right, as long as we can use the same loaders...

> Yes there are some restrictions, for example those commands will not
> be such fancy as normal mode commands. But should be commands as
> 'initrd' fancy?

My experience tells me that users will want to have more than expected. 
So I won't be surprised when users send feature requests that initrd 
should do something incredible.

Indeed, there is an unofficial patch for initrd, which makes an initrd 
image dynamically by adding arbitrary kernel modules at run time. This 
makes me afraid that anything possible will happen.

The difficulty in this issue is that most loaders should be identical 
between the two modes but probably not all loaders can be, due to the 
size limitation. For example, Multiboot Specification has many optional 
features now, such as VESA support. If this does not fit to rescue 
mode, we need to use different loaders for Multiboot. I guess this 
probablity is quite high.

So I'd like to propose some solutions for this:

1. Generate two versions for each loader from the same source code.

This case compiles the same source code twice to generate two different 
loaders for rescue mode and normal mode. Basically, the version for 
rescue mode would be a subset of the version for normal mode. This 
makes redundant binary code, but the maintainability is not very bad.

2. Share the same loaders if possible, and make different soure code if 
not possible.

If a loader can be shared between rescue mode and normal mode, we make 
it as a rescue mode loader and use it from normal mode as well. If this 
is not possible, we make a different loader specific for normal mode. 
My intuition is that this is quite unmaintainable, because things are 
not consistent.

3. Use only a chainloader in rescue mode. The others require normal 
mode.

This is what I thought at the beginning of this project. Because 
chainloader can be quite compact and so convenient if you have any 
other boot loader installed in your system, chainload might suffice for 
rescue purpose. In this case, we just forget sharing loaders. Only 
chainloader must be implemented for rescue mode and normal mode.

Any idea?

Okuji





reply via email to

[Prev in Thread] Current Thread [Next in Thread]