The Template Builder ====================== (applies also to the netvm builder) 1) get a clean image of a Linux install (e.g. by using virt-install) NOTE: We assume that the image will have a two-partition layout: img1 <--- the root fs (/) img2 <--- the swap 2) update symlinks in rpms_to_install so that they point to the current version of rpms to install 3) Now, you can "qubeize" the image. This must be done as root. E.g.: # ./qubeize_image clean_images/some_image.img f12-x64-compact 4) Make sure the symlinks in vm_kernels point to correct kernel and initramfs files. 4a) In order to prepare a patched initramfs file, use the patch_appvm_initramfs.sh program that is installed as part of qubes-core-dom0.rpm: # /usr/lib/qubes/patch_appvm_initramfs.sh \ \ \ /abs_path/vm-initramfs-patches/qubes_cow_setup.sh 4b) Manually adjust the appmenus 5) Finally, build the Template RPM (do it as normal user, not root), e.g.: $./build_rpm The resulting rpm is stored in rpm/noarch directory.