X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=caution%2Fqemu-snapshot-isolation.sh;fp=caution%2Fqemu-snapshot-isolation.sh;h=0000000000000000000000000000000000000000;hb=72f5487be2df82277021d61f01884381ed9efbc5;hp=384706c2b732571c72490e9d4c7b33b09c5dfa11;hpb=c09db4e834ab0efb93588d0427aba110a1f234e8;p=libguestfs.git diff --git a/caution/qemu-snapshot-isolation.sh b/caution/qemu-snapshot-isolation.sh deleted file mode 100755 index 384706c..0000000 --- a/caution/qemu-snapshot-isolation.sh +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/bash - -# libguestfs -# Copyright (C) 2011 Red Hat Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -# Test that qemu snapshots are really isolating writes from the -# underlying disk image. If this test were to fail, you could expect -# libguestfs to cause massive disk corruption on live guests. - -set -e - -rm -f test1.img test2.img test3.img - -truncate -s 100M test1.img -test1_md5sum="$(md5sum test1.img | awk '{print $1}')" -truncate -s 100M test2.img -test2_md5sum="$(md5sum test2.img | awk '{print $1}')" -qemu-img create -f qcow2 test3.img 100M -test3_md5sum="$(md5sum test3.img | awk '{print $1}')" - -# The vitally important calls are 'add-drive-ro' and -# 'add-drive-opts ... readonly:true'. -../fish/guestfish <<'EOF' -add-drive-ro test1.img -add-drive-opts test2.img format:raw readonly:true -add-drive-opts test3.img format:qcow2 readonly:true -run - -part-disk /dev/sda mbr -part-disk /dev/sdb mbr -part-disk /dev/sdc mbr - -mkfs ext2 /dev/sda1 -copy-size /dev/sda1 /dev/sdb1 5M -pvcreate /dev/sdc1 -vgcreate VG /dev/sdc1 -lvcreate LV VG 80 -mkfs ext3 /dev/VG/LV - -mkmountpoint /a -mount-options "" /dev/sda1 /a -mkmountpoint /b -mount-options "" /dev/sdb1 /b -mkmountpoint /c -mount-options "" /dev/VG/LV /c - -write /a/test "This is a test" -write /b/test "This is a test" -write /c/test "This is a test" - -# Really try hard to force writes to the disk. -umount-all -sync - -EOF - -# Now verify that the original disks have not been touched. -function serious_error -{ - echo - echo - echo "***** SERIOUS ERROR *****" - echo "qemu's snapshot isolation does not appear to be working." - echo "Running libguestfs could cause disk corruption on live guests." - echo - echo "DO NOT USE libguestfs before you have resolved this problem." - echo - exit 1 -} - -if [ "$(md5sum test1.img | awk '{print $1}')" != "$test1_md5sum" ]; then - serious_error -fi -if [ "$(md5sum test2.img | awk '{print $1}')" != "$test2_md5sum" ]; then - serious_error -fi -if [ "$(md5sum test3.img | awk '{print $1}')" != "$test3_md5sum" ]; then - serious_error -fi - -rm test1.img test2.img test3.img