grub-devel
[Top][All Lists]
Advanced

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

Re: Questions regarding bzr Install Branch


From: KESHAV P.R.
Subject: Re: Questions regarding bzr Install Branch
Date: Wed, 8 Sep 2010 18:19:00 +0530

Sorry for the late reply. How about implementing grub-probe support
for efisys atleast in linux systems. Linux has fairly mature UEFI
support, while FreeBSD and OpenSolaris are set to implement efi
support (in which case grub2 will be their default boot manager). A
new "parttype-guid" search option in grub-probe will allow accurate
search of efisys partition (atleast in a linux system) if possible.

Regarding /proc/efi or /sys/firmware/efi dirs for detecting efi boot
in configure, these dirs exist in case of linux only. I do not know
how FreeBSD or Solaris (or any other *unix OSes) respond to efi boot.
Also a custom grubprefix in grub-install will be great for efi systems
as multiple grub2 folders can coexist in the ESP using grub-install
(although it is not much difficult to manually copy *.mod and *.lst
files to a custom dir in ESP and generating a grub.efi from the BUILD
dir itself).

Regards.

Keshav

On Sat, Sep 4, 2010 at 23:29, Seth Goldberg <address@hidden> wrote:
> Hi,
>
>  Great question-- the answer is: this will be very OS-specific.
>
>  --S
>
> On Sep 4, 2010, at 2:27 AM, "KESHAV P.R." <address@hidden> wrote:
>
>> How to detect whether a system has booted using (U)EFI and if so what
>> is the efi processor arch? This is not only for the grub-install
>> script but also the configure script.
>>
>> If configure is run in a non-Apple UEFI system (mostly x86_64-efi and
>> without bios compatibility) configure still sets up the makefiles as
>> i386-pc. My suggestion would be to test for existence of either
>> /proc/efi dir or /sys/firmware/efi dir to confirm that the kernel has
>> booted in efi. Even if the dir(s) exist(s), I do not know of any way
>> how to detect the booted efi arch (which can be independent of linux
>> kernel arch).  My question is if a linux system is booted using grub2
>> efi (arch unknown to the user) and he/she runs configure in that
>> system, is it possible for the configure system to detect the platform
>> (efi) and the efi arch (whatever it is) correctly.
>>
>> If the user runs ./configure in a non-Apple Pure UEFI system it should
>> automatically setup
>>
>> ./configure --with-platform=efi --target=(detected efi arch)
>>
>> instead of
>>
>> ./configure --with-platform=pc --target-i386
>>
>> which is what happens currently. Another question would be detecting
>> efi boot when "noefi" kernel parameter is used (in which case the
>> /rpoc/efi or /sys/firmware/efi dirs will not exist). In such a cease
>> dmesg output may be useful.
>>
>> Regarding grub-install in install branch, does it detect the efisys
>> partition by checking the partition guids of the device (in case of
>> GPT) or checking for 0xEF type code (in case of MBR) or does it use
>> parted to check for existence of "boot" flag on any partition of a GPT
>> disk and then checking for FAT16/32 FS? I suggest adding guid
>> detection functionality in grub-probe for this purpose as that would
>> be the most accurate way of detecting efisys part (atleast in a GPT
>> disk). Also UEFI spec does not enforce any  "only 1 efisys partition
>> per disk" rule. So if there are multiple FAT32 efisys partitions in a
>> disk, it is better to use the first such partition in the disk for
>> setting grub2 efi.
>>
>> Finally since efi allows multiple bootloaders, apart from the
>> <EFISYS_PART>/EFI/BOOT or <EFISYS_PART>/EFI/GRUB or
>> <EFISYS_PART>/EFI/<VENDOR or DISTRIBUTOR>, I would like to setupgrub2
>> in the following way :-
>>
>> <EFISYS_PART>/EFI/GRUB2 and  <EFISYS_PART>/EFI/GRUB2_EXP and such.
>>
>> I suggest a slight modification in grub-install script like below -
>>
>> grub-install --modules="<My list of modules for grub2 efi app>"
>> --root-directory="<EFISYS_PART_MountPoint>"
>> --grub-prefix="/EFI/grub2_Keshav" /dev/sda
>>
>> such that --grub-prefix overrides all grubprefix env variables in the
>> grub-install script and allow the user to specify in which folder in
>> the efisys should grub2 be installed. I may want to install grub2
>> mainline in <EFISYS_PART>/EFI/grub2 and grub2 experimental branch in
>> <EFISYS_PART>/EFI/grub2_exp and the install branch in
>> <EFISYS_PART>/EFI/grub2_ins etc.
>>
>> The current grub-install script sets up grub2 in /boot/grub or
>> /boot/<program_transformed_name>. This --grub-prefix parameter in grub
>> install will enable the grub2 dir naming independent of the renaming
>> if the grub utils according to program_transform_name parameter passed
>> to configure.
>>
>> Regards.
>>
>> Keshav
>>
>> _______________________________________________
>> Grub-devel mailing list
>> address@hidden
>> http://lists.gnu.org/mailman/listinfo/grub-devel
>
> _______________________________________________
> Grub-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/grub-devel
>



reply via email to

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