EFI/ZFS Update: successful tests, need more complex vdevs
krad
kraduk at gmail.com
Fri Jan 15 15:00:53 UTC 2016
It get even more awesome 8)
On 15 January 2016 at 14:48, Steven Hartland <killing at multiplay.co.uk>
wrote:
> ZFS Boot Environments (BE) support was also wired up to Beastie last night
> by Allan for those interested in that :)
>
>
> On 15/01/2016 14:42, krad wrote:
>
> Thanks this is useful information. I did have a look at the way pc bsd was
> using grub to boot rootonzfs systems, and they used the Kfreebsd options.
> This looked kind of handy as you might have been able to specify the zfs
> file system to boot off. This would be a real boost the boot environments
> as you could easily choose which one to boot into, making upgrade recovery
> far easier.
>
> Presumably the freebsd@ part in your setup refers to the zfs file system?
> In which case you could have multiple menu entries with different file
> systems specified, this is assuming the grub config is on the efi disk
> though?
>
> I'm also curious how this would his work when the are multiple pools on
> the same disk for some reason.
>
>
>
> On 15 January 2016 at 14:23, Eric McCorkle <eric at metricspace.net> wrote:
>
>> On 01/15/16 06:51, Renato Botelho wrote:
>>
>>> On Jan 15, 2016, at 00:41, Steven Hartland < <killing at multiplay.co.uk>
>>>> killing at multiplay.co.uk> wrote:
>>>>
>>>> Just wanted to let everyone know that I just finished committing these
>>>> changes to the tree.
>>>>
>>>> Huge thanks to Eric's for his work on this, as well as everyone else
>>>> who contributed.
>>>>
>>>> I've set the target for MFC of 2 weeks, so I hope to be able to get
>>>> this into stable/10 before the 10.3 slush, so if you're interested in this
>>>> change please test a head build > r294068 ASAP.
>>>>
>>>
>>> Great work, thanks!
>>>
>>> Is there a way to move a installed ZFS system to EFI?
>>>
>>>
>> (Refer to Steven's guide for the simple case where you can create an EFI
>> partition)
>>
>>
>> == Using GRUB ==
>>
>> GRUB can be used with loader.efi on a ZFS system (I use this myself, as I
>> have a Gentoo install in the same ZFS volume)
>>
>> Make sure you install GRUB with EFI support (the ports collection will
>> handle this). The grub port comes with a script that auto-detects
>> filesystems and sets up a grub.cfg in /boot/grub/. However, that script
>> won't properly detect ZFS partitions, so you'll need to add it manually.
>> The entry is simple.
>>
>> I have a zfs volume called "data", which has the freebsd system root on
>> the filesystem data/freebsd. The GRUB entry then is:
>>
>> menuentry "FreeBSD" {
>> search.fs_label data ZFS_PART
>> chainloader ($ZFS_PART)/freebsd@/boot/loader.efi
>> }
>>
>> The first line searches for the volume "data" and binds its device to the
>> variable ZFS_PART. The second specifies that the chained bootloader is
>> under the filesystem "freebsd" (the @ at the end of the name denotes a
>> filesystem, not a path), with the path /boot/loader.efi
>>
>>
>> == Disks without enough space to make the GPT or EFI partition ==
>>
>> If you have a ZFS filesystem on an MBR disk, or on a GPT disk without
>> enough space to create a workable EFI partition, you can use one of ZFS's
>> lesser-known features: zfs send/recv.
>>
>> ZFS send and recv allow an entire filesystem to be serialized out to a
>> stream, and then read back in. You can use this to dump the entire
>> filesystem out to a removable storage or an NFS mount. Then, use an
>> install disk or memstick and repartition your drive, using zfs recv to
>> recreate the filesystem.
>>
>>
>> == On a Mac ==
>>
>> (Note: this is based on research that is several years old at this
>> point. Also, I never actually field tested this myself.)
>>
>> Macs are wierd, due to their non-standard EFI. The Mac EFI
>> implementation looks for an HFS+ partition, and loads the "blessed" file as
>> the EFI bootloader (this is a special filesystem-level metadata unique to
>> HFS+ filesystems).
>>
>> In order to do an EFI boot on a mac, you'd need some way of manufacturing
>> an HFS+ partition containing only your bootloader, with that file being
>> "blessed". The easiest way to do this would be to use a Mac OS install to
>> create an empty HFS+ filesystem, add your boot loader, then use a shell
>> command to "bless" it (this command exists, but I don't remember what it is
>> offhand). It also wouldn't be too hard to write a tool to create an HFS+
>> image from a file (I have a half-written implementation of that lying
>> around somewhere).
>>
>> Also note that Macs expect a 200MB EFI partition (which isn't actually
>> used for anything), and I've heard reports of the firmware flaking out if
>> it's not there.
>>
>> I believe there are also GRUB and rEFIt options for Mac, if you don't
>> want to go to these lengths.
>>
>> _______________________________________________
>> freebsd-hackers at freebsd.org mailing list
>> https://lists.freebsd.org/mailman/listinfo/freebsd-hackers
>> To unsubscribe, send any mail to "
>> <freebsd-hackers-unsubscribe at freebsd.org>
>> freebsd-hackers-unsubscribe at freebsd.org"
>>
>
>
>
More information about the freebsd-hackers
mailing list