I recently came to learn about a really cool project called Tiny 11 which is a stripped down version of Windows 11 Pro 22H2 that can run with just 2GB of memory and 8GB of storage. While you would probably not use this for production workloads, it could be interesting for those with homelabs and can even for demo purposes.
It's finally here!
Based off of Windows 11 Pro 22H2, tiny11 has everything you need for a comfortable computing experience without the bloat and clutter of a standard Windows installation.
https://t.co/yM1Ip2ljjB pic.twitter.com/Tg5PWUZU1Q— NTDEV (@NTDEV_) February 2, 2023
Disclaimer: Tiny 11 is not an official project from Microsoft, use at your own risk. If you are interested in creating an optimized Windows 10 or 11 image, you can also check out these VMware resources here and here to produce a similiar size image using official Microsoft tools and images.
UPDATE (02/16/23) - There is now an Arm version for Tiny 11, which is great for anyone using the ESXi-Arm Fling and the technique in this blog post would also apply.
🙌 Updated Tiny 11 Arm64 (tiny11a64 r1.iso) now works perfectly with @esxi_arm 💪
Thanks @NTDEV_ for the Arm version & quick fix!#ESXionARM pic.twitter.com/03TV69wMIq
— William Lam (@lamw.bsky.social | @*protected email*) (@lamw) February 16, 2023
After performing a manual installation of Tiny 11, I thought it would be neat if I could build a Virtual Appliance (OVA) for Tiny 11 and also add custom OVF properties, which would allow anyone to customize the OS further without having to rely on any external tooling.
In fact, I had demonstrated this concept back in 2019 using Windows Server 2016 in this blog post and I figure it should be easy enough to also do the same for Tiny 11 or even standard Windows 11! With a bit of trial/error, I was indeed able to create a simple Tiny 11 OVA that includes the following OVF properties as shown in the screenshot below.
My initial goal was to fully automate the building of a Tiny 11 OVA with custom OVF properties using Packer. However, after many attempts, I was not able to figure out the correct autoattended.xml configuration and decided on a semi-manual approach which is detailed in the instructions below. If anyone is able to figure out how to get Tiny 11 installed via Packer, then I may revisit this topic and automate the remainder of the setup.
Note: The instructions below are not specific to Tiny 11 in any way and is also applicable to standard Windows 10 or 11 image.