~ubuntu-branches/ubuntu/saucy/lvm2/saucy

« back to all changes in this revision

Viewing changes to test/shell/lvcreate-repair.sh

  • Committer: Package Import Robot
  • Author(s): Dmitrijs Ledkovs
  • Date: 2013-05-30 11:02:10 UTC
  • mfrom: (3.1.28 sid)
  • Revision ID: package-import@ubuntu.com-20130530110210-q8bou4f333ruwhn0
Tags: 2.02.98-1ubuntu1
* Merge from Debian unstable, remaining changes:
  - debian/patches/avoid-dev-block.patch: Prefer any other device name over
    names in /dev/block/ since lvm.conf won't handle this.
  - debian/rules:
    - copy .po file to .pot file for Rosetta (Ubuntu specific).
  - debian/{dmsetup,lvm2}-udeb.install:
    - install initramfs and udev hooks in udebs (Debian bug 504341).
  - auto-start VGs as their PVs are discovered (Ubuntu specific):
    - add debian/tree/lvm2/lib/udev/rules.d/85-lvm2.rules: use watershed plus
      the sledgehammer of vgscan/vgchange to turn on VGs as they come online.
    - debian/tree/lvm2/usr/share/initramfs-tools/scripts/hooks/lvm2:
      - add 85-lvm2.rules to the list of udev rules to copy.
      - depend on udev.
    - debian/control:
      - add versioned Depend on watershed in lvm2 for udev rules.
      - add Depends on watershed-udeb in lvm2-udeb for udev rules.
      - add versioned Depend/Breaks on udev in dmsetup for udev rules.
      - add Depend on initramfs-tools in dmsetup so system is not potentially
        rendered unbootable by out-of-order dpkg configuration.
      - In libdevmapper-event1.02.1 add Breaks: dmeventd
        (<< 2.02.95-4ubuntu1) due to debian symbol rename
    - debian/rules:
      - do not install local-top scripts since Ubuntu mounts root using udev.
      - do not install init scripts for lvm2, since udev starts LVM.
      - continue to build clvm support.
    - debian/lvm2.postinst: handle missing lvm2 init script.
    - debian/tree/dmsetup/lib/udev/rules.d/60-persistent-storage-dm.rules:
      watch dm devices for changes with inotify
  - add mountroot failure hooks to help fix bad boots (Debian bug 468115):
    - debian/tree/lvm2/usr/share/initramfs-tools/scripts/init-premount/lvm2
  - remaining changes to upstream event manager packages (Debian bug 514706):
    - debian/rules:
      - enable dmeventd during configure.
    - debian/dmeventd.{8,manpages}: install dmeventd files.
  - rename debian/clvm.defaults to debian/clvm.default so it is installed
    correctly.
  - debian/control: add dmsetup-udeb to libdevmapper1.02.1-udeb recommends.
  - debian/rules: make sure dmsetup and lvm2 initramfs-tools scripts are
    executable.  When the Ubuntu-specific ones are added with a patch,
    they may lose their executable bit.
  - Add and install clvmd resource agent
  - Add dependency on libudev-dev to libdevmapper-dev so that the .pc file
    works.
  - debian/{clvmd.ra,clvm.init}:
    - create /run/lvm if it doesn't exist.
  - debian/clvm.init:
    - exit 3 if not running on status action.
  - Call dh_installman so that our dmeventd manpage actually gets installed
  - Install the missing fsadm manpage.
  - Complete libdevmapper-dev multiarch:
    - move .so symlinks and pkgconfig files to multiarched locations.
    - mark libdevmapper-dev M-A: same

* Dropped changes, applied upstream:
  - Update Micron PCIe SSD and other device-types to latest available.
  - Cherry pick from upstream, remove unsupported udev_get_dev_path() call.
  - Move thin check to global section.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/bash
2
 
# Copyright (C) 2011 Red Hat, Inc. All rights reserved.
 
1
#!/bin/sh
 
2
# Copyright (C) 2011-2012 Red Hat, Inc. All rights reserved.
3
3
#
4
4
# This copyrighted material is made available to anyone wishing to use,
5
5
# modify, copy, or redistribute it subject to the terms and conditions
14
14
aux prepare_vg 3
15
15
 
16
16
# fail multiple devices
17
 
for i in $dev1 $dev2 $dev3 ; do
18
 
        for j in $dev2 $dev3 ; do
19
 
 
20
 
                if test $i = $j ; then continue ; fi
 
17
for i in "$dev1" "$dev2" "$dev3" ; do
 
18
        for j in "$dev2" "$dev3" ; do
 
19
                if test "$i" = "$j" ; then continue ; fi
21
20
 
22
21
                vgremove -ff $vg
23
 
                vgcreate $vg $dev1 $dev2 $dev3
 
22
                vgcreate $vg "$dev1" "$dev2" "$dev3"
24
23
                # exit 1
25
24
 
26
 
                lvcreate -l1 -n $lv1 $vg $dev1
 
25
                lvcreate -l1 -n $lv1 $vg "$dev1"
27
26
 
28
 
                aux disable_dev $i $j
 
27
                aux disable_dev "$i" "$j"
29
28
 
30
29
                vgreduce --removemissing --force $vg
31
30
 
32
31
                # check if reduced device was removed
33
 
                test $i = $dev1 && dmsetup table | not egrep "$vg-$lv1: *[^ ]+" >/dev/null
 
32
                test "$i" = "$dev1" && dm_table | not egrep "$vg-$lv1: *[^ ]+"
34
33
 
35
34
                lvcreate -l1 -n $lv2 $vg
36
35
 
37
 
                test $i != $dev1 && check lv_exists $vg $lv1
 
36
                test "$i" != "$dev1" && check lv_exists $vg $lv1
38
37
                check lv_exists $vg $lv2
39
38
 
40
 
                aux enable_dev $i $j
 
39
                aux enable_dev "$i" "$j"
41
40
                vgscan
42
41
 
43
 
                test $i != $dev1 && check lv_exists $vg $lv1
 
42
                test "$i" != "$dev1" && check lv_exists $vg $lv1
44
43
                check lv_exists $vg $lv2
45
44
        done
46
45
done
47
46
 
48
47
vgremove -ff $vg
49
 
vgcreate $vg $dev1 $dev2 $dev3
 
48
vgcreate $vg "$dev1" "$dev2" "$dev3"
50
49
 
51
50
# use tricky 'dd'
52
51
for i in "$dev1" "$dev2" "$dev3" ; do
57
56
                dd if="$i" of=backup_i bs=256K count=1
58
57
                dd if="$j" of=backup_j bs=256K count=1
59
58
 
60
 
                lvcreate -l1 -n $lv1 $vg $dev1
 
59
                lvcreate -l1 -n $lv1 $vg "$dev1"
61
60
 
62
61
                dd if=backup_j of="$j" bs=256K count=1
63
62
                dd if=backup_i of="$i" bs=256K count=1
73
72
dd if="$dev1" of=backup_i bs=256K count=1
74
73
dd if="$dev2" of=backup_j bs=256K count=1
75
74
 
76
 
lvcreate -l1 $vg $dev1
 
75
lvcreate -l1 $vg "$dev1"
77
76
 
78
77
dd if=backup_j of="$dev2" bs=256K count=1
79
78
dd if=backup_i of="$dev1" bs=256K count=1
86
85
 
87
86
# dirty game
88
87
dd if=/dev/zero of="$dev3" bs=256K count=1
89
 
aux notify_lvmetad $dev3 # udev be watching you
 
88
aux notify_lvmetad "$dev3" # udev be watching you
90
89
 
91
90
vgreduce --removemissing --force $vg
92
91
 
97
96
# device-mapper: create ioctl failed: Device or resource busy
98
97
# Failed to activate new LV.
99
98
 
100
 
should lvcreate -l1 $vg $dev1
 
99
should lvcreate -l1 $vg "$dev1"