[Top][All Lists]

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

Re: [PATCH] grub + FreeBSD's loader(8) + ZFS root

From: Navdeep Parhar
Subject: Re: [PATCH] grub + FreeBSD's loader(8) + ZFS root
Date: Wed, 7 Apr 2010 13:21:01 -0700

2010/4/7 Vladimir 'φ-coder/phcoder' Serbinenko <address@hidden>:
> Navdeep Parhar wrote:
>> Hello grub-devel,
>> Right now it's not possible to boot using FreeBSD's loader(8) from a ZFS
>> root filesystem.  Grub doesn't indicate to the loader that there is a
>> ZFS root involved and consequently the loader fails to find the kernel.
>> The attached patch fixes this.  It does not affect those that boot the
>> kernel directly.  This is only for users that want to boot using
>> FreeBSD's loader.
>> Why would you want to?  IMHO it is much simpler to boot indirectly using
>> the loader because in that case grub does not have to deal with
>> device.hints, kernel modules, style variables,
>> /boot/zfs/zpool.cache, etc.  As a FreeBSD user, I'm used to putting this
>> information in the "normal" config files (/boot/loader.conf, device.hints,
>> etc.) and not in a grub.cfg file. Grub only needs to know where the loader
>> is, nothing else:
>> menuentry "FreeBSD 8" {
>>        search -s -l fbsd8
>>        kfreebsd -D /@/boot/zfsloader
>> }
>> (fbsd8 is the name of the ZFS root pool)
> Eternal chainloading isn't the way to go. It limits grub usefullness and
> scope and is to be used only when no alternative exists. In this case
> the right direction would be to make a small C module to parse boot(8)
> config or a shell script for to do the same job

Sure, chainloading doesn't have to be the preferred way of booting an
OS, but it shouldn't fail without a good reason either.  Right now
FreeBSD can be chainloaded from a UFS root but not from ZFS root.
That's all that I'm trying to fix here.  This patch doesn't imply that
chainloading is *the* way to load FreeBSD - just that it is a usable
alternate to direct loading, even from a ZFS root.


reply via email to

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