Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 18 Jul 2019 19:53:42 -0700
From:      Pete Wright <pete@nomadlogic.org>
To:        freebsd-virtualization@freebsd.org
Subject:   Re: Custom Qcow2 Images
Message-ID:  <95a027df-46c3-24ba-8acd-ddb24579885e@nomadlogic.org>
In-Reply-To: <459c53d0-f00b-6ce3-dfab-de3ddac1c0bb@nomadlogic.org>
References:  <459c53d0-f00b-6ce3-dfab-de3ddac1c0bb@nomadlogic.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On 7/14/19 4:37 PM, Pete Wright wrote:
> Hey there folks,
> I am wondering if anyone has any pointers on creating a custom Qcow2 
> FreeBSD that is akin in size to nanobsd.  I have an environment where 
> we need to run a single binary and want to keep our disk image as 
> small as possible.  It will run inside a user-mode Qemu process.  
> Reading through the nanobsd script it seems that it expects a raw disk 
> for installation, so I do think using the nanobsd script itself well 
> work well.  Has anyone else done something similar?  My goal is to 
> have a disk image that is around 500MB.
>
> Thanks in advance!
> -pete
>


I wanted to close the loop on this discussion as I think I've found a 
workable solution for my use-case.  I'm using a three step process:

1) generate a raw disk image using "poudriere image".  This phase 
references a Jail I've built that has disabled lots of uneeded features 
as per the docs here:
https://bsdrp.net/documentation/technical_docs/poudriere

2) next I use mkimg(1) to convert the raw disk image to a bootable qcow2 
image that I can boot from Qemu.  this results in a disk image that's 
about 800MB.

3) the final phase is to use qemu-img to create a compressed qcow2 
image.  the resulting artifact of that process is a ~325MB Qcow2 
diskimage that actually has decent performance (on my SSD backed zfs 
filesystem).

I attempted to use poudriere image to generate a usb image directly, and 
while that did work well sizing wise i ran into an issue where 
insufficient inodes were allocated.  I reference what I ran into in this 
github issue:
https://github.com/freebsd/poudriere/issues/701

For me this current setup is fine for my purposes, although I'm sure 
others can optimize this workflow a bit :)

Also, thanks again Allan and Dave Cottlehuber (who pinged me offlist) 
for giving me some hints and pointing me in the right direction!

Cheers,
-pete

-- 
Pete Wright
pete@nomadlogic.org
@nomadlogicLA




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?95a027df-46c3-24ba-8acd-ddb24579885e>