From 7054456eb757991006cfcec4da7f1e7378be4132 Mon Sep 17 00:00:00 2001 From: Marek Marczykowski Date: Fri, 18 Mar 2011 22:30:23 -0400 Subject: [PATCH] Create template with plain root.img without partitions (#118) Additionaly provide clean-volatile.img --- clean_images/clean-starter.img.tar | Bin 389120 -> 0 bytes clean_images/clean-volatile.img.tar | Bin 0 -> 10240 bytes cleanup_image | 2 +- fedorize_image | 11 ++++++----- qubeize_image | 2 +- templates.spec | 7 +++++++ vm_conf_files/appvm-template.conf | 3 +-- vm_conf_files/netvm-template.conf | 3 +-- vm_conf_files/standalone-template.conf | 1 + vm_conf_files/templatevm.conf | 1 + vm_initramfs_patches/qubes_cow_setup.sh | 12 +++--------- 11 files changed, 22 insertions(+), 20 deletions(-) delete mode 100644 clean_images/clean-starter.img.tar create mode 100644 clean_images/clean-volatile.img.tar diff --git a/clean_images/clean-starter.img.tar b/clean_images/clean-starter.img.tar deleted file mode 100644 index 8f61c178ccaf9a63e9aa8a7bee1c9307d57b00c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 389120 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 diff --git a/clean_images/clean-volatile.img.tar b/clean_images/clean-volatile.img.tar new file mode 100644 index 0000000000000000000000000000000000000000..81622f2945e8fe0e15632de724661f91a3bebffc GIT binary patch literal 10240 zcmeIuF-yZx5Ww+MmoCn(PbVGJq>V{8sp4J;B91|V6rw`YI%@=79lE(W=2JNP0sIyY zf`d-=UTUj^QW3fY{s(#QxVt3p{Z5iNI^Vp!NTOaRiMKjur!x0&G<@F^y9cFROAUR* zb$2}1aq0~}5W9N5m~ieVnexGY+KalzNI#9cQ`(c#U;WA8e-o?n9fgqQ3gHyFry}FL zR1eDatI>}apLEyWI7EIoMl-CH7q}g)q Image file already exists, assuming *update*..." - mount -o loop,offset=$((63*512)) $IMG mnt || exit 1 + mount -o loop $IMG mnt || exit 1 INSTALLDIR=`pwd`/mnt/ else - echo "-> Initializing empty image with part table and filesystems..." - tar kOxf clean_images/clean-starter.img.tar > $IMG + echo "-> Initializing empty image..." + truncate -s 10G $IMG || exit 1 - touch $IMG || exit 1 + echo "-> Creating filesystem..." + mkfs.ext4 -F $IMG || exit 1 mkdir -p mnt - mount -o loop,offset=$((63*512)) $IMG mnt || exit 1 + mount -o loop $IMG mnt || exit 1 INSTALLDIR=`pwd`/mnt/ diff --git a/qubeize_image b/qubeize_image index a586921..bb38218 100755 --- a/qubeize_image +++ b/qubeize_image @@ -33,7 +33,7 @@ cp $CLEANIMG $IMG || exit 1 echo "--> Mouting $IMG" mkdir -p mnt -mount -o loop,offset=$((63*512)) $IMG mnt || exit 1 +mount -o loop $IMG mnt || exit 1 echo "--> Installing RPMs..." rpm --force --root=$(pwd)/mnt -ihv rpms_to_install/* diff --git a/templates.spec b/templates.spec index ea8c481..48e2412 100644 --- a/templates.spec +++ b/templates.spec @@ -40,6 +40,8 @@ for i in qubeized_images/root.img.part.* ; do ln $i $RPM_BUILD_ROOT/%{dest_dir}/ touch $RPM_BUILD_ROOT/%{dest_dir}/root.img # we will create the real file in %post touch $RPM_BUILD_ROOT/%{dest_dir}/private.img # we will create the real file in %post +cp clean_images/clean-volatile.img.tar $RPM_BUILD_ROOT/%{dest_dir}/clean-volatile.img.tar + cp vm_conf_files/appvm-template.conf $RPM_BUILD_ROOT/%{dest_dir}/appvm-template.conf cp vm_conf_files/netvm-template.conf $RPM_BUILD_ROOT/%{dest_dir}/netvm-template.conf cp vm_conf_files/templatevm.conf $RPM_BUILD_ROOT/%{dest_dir}/templatevm.conf @@ -78,6 +80,9 @@ mv %{dest_dir}/%{template_name}-root.img %{dest_dir}/root.img chown root.qubes %{dest_dir}/root.img chmod 0660 %{dest_dir}/root.img +echo "--> Processing the clean-volatile.img..." +tar --sparse -xf {dest_dir}/clean-volatile.img.tar -C %{dest_dir} + if [ "$1" = 1 ] ; then # installing for the first time echo "--> Creating private.img..." @@ -126,6 +131,8 @@ rm -rf $RPM_BUILD_ROOT %dir %{dest_dir} %ghost %{dest_dir}/root.img %{dest_dir}/root.img.part.* +%ghost %{dest_dir}/clean-volatile.img +%{dest_dir}/clean-volatile.img.tar %ghost %{dest_dir}/private.img %{dest_dir}/appvm-template.conf %{dest_dir}/netvm-template.conf diff --git a/vm_conf_files/appvm-template.conf b/vm_conf_files/appvm-template.conf index efccaa7..4301188 100644 --- a/vm_conf_files/appvm-template.conf +++ b/vm_conf_files/appvm-template.conf @@ -12,8 +12,7 @@ name = "%VMNAME%" disk = [ 'snapshot:%TEMPLATEDIR%/root.img:%TEMPLATEDIR%/root-cow.img,xvda,r', 'file:%VMDIR%/private.img,xvdb,w', - 'file:%VMDIR%/root-cow.img,xvdc,w', - 'file:%VMDIR%/swap-cow.img,xvdd,w' + 'file:%VMDIR%/volatile.img,xvdc,w', ] vcpus = %VCPUS% diff --git a/vm_conf_files/netvm-template.conf b/vm_conf_files/netvm-template.conf index 266c861..56091e0 100644 --- a/vm_conf_files/netvm-template.conf +++ b/vm_conf_files/netvm-template.conf @@ -14,8 +14,7 @@ pci = [ %PCIDEVS% ] disk = [ 'snapshot:%TEMPLATEDIR%/root.img:%TEMPLATEDIR%/root-cow.img,xvda,r', 'file:%VMDIR%/private.img,xvdb,w', - 'file:%VMDIR%/root-cow.img,xvdc,w', - 'file:%VMDIR%/swap-cow.img,xvdd,w' + 'file:%VMDIR%/volatile.img,xvdc,w', ] vcpus = %VCPUS% diff --git a/vm_conf_files/standalone-template.conf b/vm_conf_files/standalone-template.conf index 024f476..ccbcd4d 100644 --- a/vm_conf_files/standalone-template.conf +++ b/vm_conf_files/standalone-template.conf @@ -12,6 +12,7 @@ name = "%VMNAME%" disk = [ 'file:%VMDIR%/root.img,xvda,w', 'file:%VMDIR%/private.img,xvdb,w' + 'file:%VMDIR%/volatile.img,xvdc,w' ] vcpus = %VCPUS% diff --git a/vm_conf_files/templatevm.conf b/vm_conf_files/templatevm.conf index 2cc51de..f4ae0e4 100644 --- a/vm_conf_files/templatevm.conf +++ b/vm_conf_files/templatevm.conf @@ -12,6 +12,7 @@ name = "%TEMPLATENAME%" disk = [ 'origin:/var/lib/qubes/vm-templates/%TEMPLATENAME%/root.img:/var/lib/qubes/vm-templates/%TEMPLATENAME%/root-cow.img,xvda,w', 'file:/var/lib/qubes/vm-templates/%TEMPLATENAME%/private.img,xvdb,w', + 'file:/var/lib/qubes/vm-templates/%TEMPLATENAME%/volatile.img,xvdc,w', ] vcpus = 1 diff --git a/vm_initramfs_patches/qubes_cow_setup.sh b/vm_initramfs_patches/qubes_cow_setup.sh index 0944da9..117d257 100755 --- a/vm_initramfs_patches/qubes_cow_setup.sh +++ b/vm_initramfs_patches/qubes_cow_setup.sh @@ -13,25 +13,19 @@ modprobe xenblk || modprobe xen-blkfront || echo "Qubes: Cannot load Xen Block F echo "Waiting for /dev/xvda* devices..." while ! [ -e /dev/xvda ]; do sleep 0.1; done -while ! [ -e /dev/xvda1 ] ; do sleep 0.1; done -while ! [ -e /dev/xvda2 ] ; do sleep 0.1; done if [ `blockdev --getro /dev/xvda` = 1 ] ; then echo "Qubes: Doing COW setup for AppVM..." while ! [ -e /dev/xvdc ]; do sleep 0.1; done - while ! [ -e /dev/xvdd ]; do sleep 0.1; done + while ! [ -e /dev/xvdc2 ]; do sleep 0.1; done - echo "0 `blockdev --getsz /dev/xvda1` snapshot /dev/xvda1 /dev/xvdc P 16" | \ + echo "0 `blockdev --getsz /dev/xvda` snapshot /dev/xvda /dev/xvdc2 P 16" | \ dmsetup create dmroot || { echo "Qubes: FATAL: cannot create dmroot!"; } - echo "0 `blockdev --getsz /dev/xvda2` snapshot /dev/xvda2 /dev/xvdd P 16" | \ - dmsetup create dmswap || { echo "Qubes: FATAL: cannot create dmswap!"; } echo Qubes: done. else echo "Qubes: Doing R/W setup for TemplateVM..." - echo "0 `blockdev --getsz /dev/xvda1` linear /dev/xvda1 0" | \ + echo "0 `blockdev --getsz /dev/xvda` linear /dev/xvda 0" | \ dmsetup create dmroot || { echo "Qubes: FATAL: cannot create dmroot!"; exit 1; } - echo "0 `blockdev --getsz /dev/xvda2` linear /dev/xvda2 0" | \ - dmsetup create dmswap || { echo "Qubes: FATAL: cannot create dmswap!"; exit 1; } echo Qubes: done. fi