how to tell when biosboot partition is needed?

Richard Neuboeck hawk at tbi.univie.ac.at
Tue Aug 14 07:08:10 UTC 2012


I've got an answer from David Lehman how the decision process for the
usage of biosboot works in anaconda:

Here is the entire decision tree:

- did the system boot in EFI mode or BIOS mode?
  - EFI
    - use gpt and never make biosboot
  - BIOS
    - is the disk larger than the max for msdos (2TB)?
      - yes
        - use gpt and ensure there's a biosboot partition
      - no
        - use msdos

So in my preinstall script I check for EFI capabilities and the disk size:

  # get disk size in GB
  DISKSIZE=`parted -sm /dev/$DEV unit GB print | grep -e "$DEV" | cut
-d: -f2 | sed -e 's/GB$//'`
  if [ -e /sys/firmware/efi -o $DISKSIZE -gt 2100 ]
  then
    # bios boot partition necessary
    echo "part biosboot --fstype=biosboot --size=1 --ondisk=$DEV" >>
$INCFILE
  fi

HTH
Richard


On 11.08.12 11:36, Richard Neuboeck wrote:
> Thanks!
> 
> I mulled over the sources but didn't find the indicators for the final
> selection of gpt over msdos as partition table label.
> 
> I'm not giving up yet :-)
> Richard
> 
> On 10.08.12 23:41, Steve Rikli wrote:
>> On Fri, Aug 10, 2012 at 09:57:26PM +0200, Richard Neuboeck wrote:
>>> Hi List,
>>>
>>> I'm in the same predicament as Steve. My manual test installs of
>>> Fedora 17 result in msdos and gpt partition table labels. Since I'm
>>> using kickstart and a pre install script to partition the disc I would
>>> also like to find a way to determine if a biosboot partition is
>>> necessary or not.
>>>
>>> The only sure reason to install a biosboot partition I could find was
>>> a disc >= 3TB.
>>>
>>> The UEFI test system I'm using definitely has UEFI enabled and since
>>> the disc has 3TB should use EFI. But I couldn't find efi in sysfs like
>>> anaconda tries to do to determine if it's an EFI capable system.
>>> However this system gets a gpt label in my tests. But I don't know how
>>> anaconda comes to that conclusion.
>>
>> I never heard/found any tips or other ideas, and I couldn't follow how
>> Anaconda decides what to do either; so I simply started grep'ing around
>> during a live %pre session to see what I could find.
>>
>> I came across /tmp/storage.log , which among many other things had a line
>> like this:
>>
>>     storage: registered device format class BIOSBoot as biosboot
>>
>> which was about the only reference I could find to "biosboot" in the
>> live Kickstart session.  I was thinking there might be something in
>> /proc/ or /sys/ or thereabouts, but found nothing I could make use of.
>>
>> In any case, my %pre disk partitioning script looks for that string, and
>> if found then it adds an entry for a biosboot partition similar to:
>>
>>     part biosboot --size 1 --fstype biosboot
>>
>> This method has the advantage of being independent of disk size, and
>> also doesn't perform additional partitioning actions on older releases
>> where /tmp/storage.log reports nothing about biosboot.  So I can keep
>> using the same %pre script to partition old & new Fedoras, CentOS, etc.
>>
>> The obvious peril is Fedora may change/move/etc. the string in some future
>> version of Anaconda, so I still occasionally keep an eye out for something
>> a bit more programmatic/definitive; we'll see how well it holds up.
>>
>> Cheers,
>> sr.
>>
>>
>>> So right now I'm only relying on the disk size to choose the partition
>>> layout in my preinstall script.
>>>
>>> Any pointers where I can find more details or information on how to
>>> make an educated guess on how to partition would be very welcome.
>>>
>>> Thanks!
>>> Richard
>>>
>>>
>>> On 09.06.12 01:00, Steve Rikli wrote:
>>>> Is there some programmatic way within Kickstart %pre to determine
>>>> if a "biosboot" partition is needed, or at least if it is an
>>>> available option/fstype?
>>>>
>>>> Like many folks, we create a "/tmp/partitions.inc" sort of
>>>> %include file in %pre, to partition the disk.
>>>>
>>>> Starting in Fedora16 a "part biosboot ..." partition is required, 
>>>> and ideally we'd like to be able to use the same %pre script to 
>>>> setup partitions on all the different Linux versions we need.
>>>>
>>>> We would be okay with "wasting" 1MB and always creating a biosboot 
>>>> partition for any Linux, but it's not a supported type prior to 
>>>> Fedora16, so that isn't an option.
>>>>
>>>> Thanks, sr.
>>>>
>>
>> _______________________________________________
>> Kickstart-list mailing list
>> Kickstart-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/kickstart-list
>>
> 
> _______________________________________________
> Kickstart-list mailing list
> Kickstart-list at redhat.com
> https://www.redhat.com/mailman/listinfo/kickstart-list
> 




More information about the Kickstart-list mailing list