replacing zfs disk (freebsd-boot vs freebsd-efi)

mike tancsa mike at sentex.net
Wed Oct 30 12:53:02 UTC 2019


On 10/30/2019 4:53 AM, Victor Sudakov wrote:
> mike tancsa wrote:
>> In the past when replacing a disk in a zfs pool that I boot from, simply
>> doing
>>
>> gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
>>
>> where
>>     p1 = freebsd-boot
>>     p2 = freebsd-swap
>>     p3 = freebsd-zfs
>>
>>
>> works just fine (ie. replacing ada0).  However, on this one box, I
>> noticed the disk has both freebsd-boot and efi
>>
>>     p1 = efi
>>     p2 = freebsd-boot
>>     p3 = freebsd-swap
>>     p4 = freebsd-zfs
>>
>>
>> If I replace ada0, what do I need to do in order to full restore boot
>> functionality to the disk ?
> May I suggest that if it's really a UEFI system, you probably don't need
> the freebsd-boot partition at all, nor any boot blocks or {P,M,V}BRs.
>
Thanks for the confirmation and explanation.  I wonder if an added note
after a re-sliver would be a good idea

--- zpool_main.c.orig   2019-10-30 08:44:12.688304000 -0400
+++ zpool_main.c        2019-10-30 08:49:40.292540000 -0400
@@ -5856,6 +5856,8 @@
                    "the following command will do it:\n"
                    "\n"
                    "\tgpart bootcode -b /boot/pmbr -p /boot/gptzfsboot
-i 1 da0\n\n",
+                   "\tor for EFI\n\n",
+                   "\tgpart bootcode -p /boot/boot1.efifat -i 1 da0\n\n",
                    cb.cb_poolname);
        }
 


> gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 2 ada0
> The above ^^^^^ should be unnecessary. Your UEFI firmware will find the
> partition of the "efi" type and try to load /EFI/BOOT/BOOTX64.EFI from
> there, which in turn will sniff your ZFS filesystems for the loader.

I think FreeBSD's install added it by default. I wonder if that was done
to make the disks portable between EFI and non EFI systems ? I will have
to test to see if thats the case.

    ---Mike




More information about the freebsd-questions mailing list