Re: changes to the zfs boot (was: Re: git: 72a1cb05cd23 - main - rc(8): Add a zpoolupgrade rc.d script)

From: Alexander Leidinger <Alexander_at_leidinger.net>
Date: Wed, 09 Nov 2022 21:12:19 UTC
  Quoting Warner Losh <imp@bsdimp.com> (from Wed, 9 Nov 2022 13:53:59 -0700):

>  
>
>        On Wed, Nov 9, 2022 at 12:47 PM Alexander Leidinger  
> <Alexander@leidinger.net> wrote:
>
>> Quoting Warner Losh <imp@bsdimp.com> (from Wed, 9 Nov 2022 08:54:33 -0700):
>>
>>> as well. I'd settle for a good script that could be run as root (better
>>> would be not as root) that would take a filesystem that was created
>>> by makefs -t zfs and turn on these features after an zpool upgrade.
>>> I have the vague outlines of a test suite for the boot loader that I
>>> could see about integrating something like that into, but most of my
>>> time these days is chasing after 'the last bug' in some kboot stuff I'm
>>> working on (which includes issues with our ZFS in the boot loader
>>> integration).
>>
>> How would you test a given image? bhyve/qemu/...?
>
>      
>     I have a script that creates a number of image files and a  
> number of qemu scripts that look
>     like the following:
>      
> /home/imp/git/qemu/00-build/qemu-system-aarch64 -nographic -machine  
> virt,gic-version=3 -m 512M -smp 4 \
>         -cpu cortex-a57 \
>         -drive  
> file=/home/imp/stand-test-root/images/arm64-aarch64/linuxboot-arm64-aarch64-zfs.img,if=none,id=drive0,cache=writeback  
> \
>         -device virtio-blk,drive=drive0,bootindex=0 \
>         -drive  
> file=/home/imp/stand-test-root/bios/edk2-arm64-aarch64-code.fd,format=raw,if=pflash  
> \
>         -drive  
> file=/home/imp/stand-test-root/bios/edk2-arm64-aarch64-vars.fd,format=raw,if=pflash  
> \
>         -monitor telnet::4444,server,nowait \
>             -serial stdio $*
>      
>     There's a list of these files that's generated and looks to see  
> if it gets to the 'success' echo in the minimal root I have for them.
>      

So a little script which makes a copy of a source image, enables  
features on the copies and spits out a list of image files would suit  
your needs?
e.g.:
for feature A B C; do
   # ignoring inter-feature dependencies for a moment
  cp $source_image zfs_feature_$feature.img
  pool_name = import_pool zfs_feature_$feature.img
  enable_feature $pool_name $feature
  export_pool $pool_name
  echo zfs_feature_$feature.img
done

Bye,
Alexander.
-- 
http://www.Leidinger.net Alexander@Leidinger.net: PGP 0x8F31830F9F2772BF
http://www.FreeBSD.org    netchild@FreeBSD.org  : PGP 0x8F31830F9F2772BF