2010-04-05 22:25:37 +00:00
|
|
|
The Template Builder
|
|
|
|
======================
|
|
|
|
|
|
|
|
(applies also to the netvm builder)
|
|
|
|
|
2010-06-18 23:41:29 +00:00
|
|
|
1) First, create a clean image of Fedora Linux install. You can use the fedoraize_image
|
|
|
|
script for this:
|
|
|
|
|
|
|
|
fedorize_image <image> <file-with-packets-lists>
|
|
|
|
|
|
|
|
NOTE: The fedorize_image script can be also used to update an image -- it
|
|
|
|
automatically assumes the update mode if the <image> already exists.
|
|
|
|
|
|
|
|
The fedorize image takes care about creating proper partition table, that
|
|
|
|
contains root and swap partitions, to create the initial rpm database, and
|
|
|
|
install some core packages.
|
|
|
|
|
|
|
|
We assume that the image will have a two-partition layout:
|
2010-04-05 22:25:37 +00:00
|
|
|
|
|
|
|
img1 <--- the root fs (/)
|
|
|
|
img2 <--- the swap
|
|
|
|
|
2010-06-18 23:41:29 +00:00
|
|
|
2) Update symlinks in rpms_to_install_XXX/ so that they point to the current version
|
|
|
|
of Qubes-specific rpms to install you want to use (e.g. qubes-gui-vm, etc).
|
2010-04-05 22:25:37 +00:00
|
|
|
|
|
|
|
3) Now, you can "qubeize" the image. This must be done as root. E.g.:
|
|
|
|
|
2010-06-18 23:41:29 +00:00
|
|
|
# ./qubeize_image <img> <template-name>
|
2010-04-05 22:25:37 +00:00
|
|
|
|
2010-06-18 23:41:29 +00:00
|
|
|
4) Make sure the symlinks in vm_kernels_XXX/ point to correct kernel and initramfs
|
|
|
|
files you want to use for the template:
|
2010-04-05 22:25:37 +00:00
|
|
|
|
|
|
|
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 \
|
|
|
|
<original_initrafms> \
|
|
|
|
<filename_for_patched_initramfs> \
|
|
|
|
/abs_path/vm-initramfs-patches/qubes_cow_setup.sh
|
|
|
|
|
|
|
|
|
|
|
|
5) Finally, build the Template RPM (do it as normal user, not root), e.g.:
|
|
|
|
|
|
|
|
$./build_rpm <name>
|
|
|
|
|
|
|
|
The resulting rpm is stored in rpm/noarch directory.
|
|
|
|
|