From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: Multiboot's boot_device field specification + implementation bug
Date: Thu, 11 Feb 2010 04:07:06 +0100 [thread overview]
Message-ID: <4B73745A.1070908@gmail.com> (raw)
In-Reply-To: <4B5E2B44.2060106@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2659 bytes --]
Grégoire Sutre wrote:
> Hi,
>
> I'm trying to understand the specification of the multiboot
> boot_device field. How should this information be interpreted by a
> kernel that uses a native (non-DOS) disk label? For instance, if the
> MBI passed to the NetBSD kernel says part1=5 and part2=part3=0xFF,
> does this mean:
>
> - 6th partition in the NetBSD disk-label, or
> - 6th partition in the DOS disk label (MBR)?
>
> The specification says that part1 specifies the top-level partition
> number. However there may be several top-level disk-labels. For
> instance: take a disk with a DOS disk-label (in the MBR) but without
> any UFS partition in it, and install a NetBSD disk-label on the
> disk. The NetBSD disk-label will be written in the second sector of
> the disk, and both disk-labels will be independent and top-level. For
> a NetBSD kernel, the top-level disklabel will be the NetBSD one, and
> for other kernels the top-level disk-label may be the DOS one.
>
Indeed multiboot1 doesn't specify which label was used. It simply
doesn't pass this information. I suggest to replace partition number
with 64-bit starting_byte field. This way you avoid problems with both
labels and sector sizes,
>
>
> On a related note, experiments with the multiboot example kernel show
> that setting root in GRUB has an impact on the value of the
> boot_device field:
>
> (a) set root=(hd1,2,a) ; multiboot /mbtest ; boot
> --> boot_device = 0x810100ff
>
> (b) multiboot (hd1,2,a)/mbtest ; boot
> --> boot_device = 0x8000ffff
>
> According to the spec, (a) is correct but (b) is wrong. It looks like
> the boot_device field of MBI is set using the value of $root.
>
OS developer doesn't care where the kernel was loaded from: disk,
network, flash or hyperspace. He cares only where the rest of the system
is (optionally containing a copy of the kernel). Consider following case:
You have an operating system O which recognises only filesystem FO and
bootloader B which recognises only filesystem FB. User wants to use O
with B. He copies kernel from FO to FB. But now kernel is loaded from FB
where no rest of the system is present so kernel still expects
boot_device to point to FO. To this end I think spec has to be adjusted.
It shouldn't give any backwards compatibility problems since OSes expect
boot_devices to point to their root.
> Best regards,
>
> Grégoire
>
>
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel
>
--
Regards
Vladimir 'φ-coder/phcoder' Serbinenko
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 293 bytes --]
prev parent reply other threads:[~2010-02-11 3:07 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-25 23:37 Multiboot's boot_device field specification + implementation bug Grégoire Sutre
2010-01-26 20:10 ` Grégoire Sutre
2010-02-11 3:07 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
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=4B73745A.1070908@gmail.com \
--to=phcoder@gmail.com \
--cc=grub-devel@gnu.org \
/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.