New API: mdadm-create for creating MD devices.
[libguestfs.git] / regressions / test-mdadm.sh
1 #!/bin/bash -
2 # libguestfs
3 # Copyright (C) 2011 Red Hat Inc.
4 #
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 2 of the License, or
8 # (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with this program; if not, write to the Free Software
17 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
19 # Test guestfish mdadm-create command.
20
21 set -e
22
23 rm -f md-test1.img md-test2.img md-test3.img md-test4.img
24
25 ../fish/guestfish <<EOF
26 # Add four empty disks
27 sparse md-test1.img 100M
28 sparse md-test2.img 100M
29 sparse md-test3.img 100M
30 sparse md-test4.img 100M
31 run
32
33 # Create lots of test partitions.
34 part-init /dev/sda mbr
35 part-add /dev/sda p 4096 8191
36 part-add /dev/sda p 8192 12287
37 part-add /dev/sda p 12288 16383
38 part-add /dev/sda p 16384 20479
39 part-init /dev/sdb mbr
40 part-add /dev/sdb p 4096 8191
41 part-add /dev/sdb p 8192 12287
42 part-add /dev/sdb p 12288 16383
43 part-add /dev/sdb p 16384 20479
44 part-init /dev/sdc mbr
45 part-add /dev/sdc p 4096 8191
46 part-add /dev/sdc p 8192 12287
47 part-add /dev/sdc p 12288 16383
48 part-add /dev/sdc p 16384 20479
49 part-init /dev/sdd mbr
50 part-add /dev/sdd p 4096 8191
51 part-add /dev/sdd p 8192 12287
52 part-add /dev/sdd p 12288 16383
53 part-add /dev/sdd p 16384 20479
54
55 # RAID 1.
56 mdadm-create r1t1 "/dev/sda1 /dev/sdb1"
57 mdadm-create r1t2 "/dev/sdc1 /dev/sdd1" chunk:65536
58
59 # RAID 5.
60 mdadm-create r5t1 "/dev/sda2 /dev/sdb2 /dev/sdc2 /dev/sdd2" \
61   missingbitmap:0x10 nrdevices:4 spare:1 level:5
62
63 mdadm-create r5t2 "/dev/sda3 /dev/sdb3" missingbitmap:0x1 level:5
64
65 mdadm-create r5t3 "/dev/sdc3 /dev/sdd3" \
66   missingbitmap:0x6 nrdevices:2 spare:2 level:5
67
68 # Make some filesystems and put some content on the
69 # new RAID devices to see if they work.
70 mkfs ext2 /dev/md/r1t1
71 mkfs ext2 /dev/md/r1t2
72 mkfs ext2 /dev/md/r5t1
73 mkfs ext2 /dev/md/r5t2
74 mkfs ext2 /dev/md/r5t3
75
76 mkmountpoint /r1t1
77 mount /dev/md/r1t1 /r1t1
78 mkmountpoint /r1t2
79 mount /dev/md/r1t2 /r1t2
80 mkmountpoint /r5t1
81 mount /dev/md/r5t1 /r5t1
82 mkmountpoint /r5t2
83 mount /dev/md/r5t2 /r5t2
84 mkmountpoint /r5t3
85 mount /dev/md/r5t3 /r5t3
86
87 touch /r1t1/foo
88 mkdir /r1t2/bar
89 write /r5t1/foo "hello"
90 write /r5t2/bar "goodbye"
91 write /r5t3/baz "testing"
92
93 EOF
94
95 rm -f md-test1.img md-test2.img md-test3.img md-test4.img