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

« back to all changes in this revision

Viewing changes to doc/kernel/linear.txt

  • Committer: Package Import Robot
  • Author(s): Dmitrijs Ledkovs
  • Date: 2012-08-14 14:35:57 UTC
  • mfrom: (3.1.25 sid)
  • Revision ID: package-import@ubuntu.com-20120814143557-93aill2tp3kf3o30
Tags: 2.02.95-4ubuntu1
* 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.
    - 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.
    - 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.

 * libdevmapper-dev:
  - move .so symlinks and pkgconfig files to multiarched locations.
  - mark libdevmapper-dev M-A: same

 * libdevmapper-event1.02.1:
  - Add Breaks: dmeventd (<< 2.02.95-4ubuntu1) due to debian symbol rename

 * debian/lvm2.{preinst,postinst,postrm}:
  - Implement removal of obsolete /etc/init.d/lvm2 conffile, which
    should not have been re-introduced in Quantal.

 * Dropped Changes, included in Debian:
  - Mostly included packages for upstream event manager (Debian bug 514706).
  - debian/patches/rules-subdir.patch: removed as reordering will cause
    build failure with dmeventd.
  - debian/patches/libdm-event-static.patch: removed as other static libs
    aren't being built anymore either.
  - Update symbols for libdevmapper-event.
  - Update libdevmapper-event, dmeventd descriptions to match Debian
    boilerplate.

 * Disappeared Changes:
  - Don't install documentation in udebs. No diff found, but no docs are
    installed into udebs either.

 * Resurected Changes:
  - corrected dropping the wrong init script. Now clvm.init is shipped
    and lvm2.init is dropped in favor of udev rules as per original
    intention (LP: #1037033).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dm-linear
 
2
=========
 
3
 
 
4
Device-Mapper's "linear" target maps a linear range of the Device-Mapper
 
5
device onto a linear range of another device.  This is the basic building
 
6
block of logical volume managers.
 
7
 
 
8
Parameters: <dev path> <offset>
 
9
    <dev path>: Full pathname to the underlying block-device, or a
 
10
                "major:minor" device-number.
 
11
    <offset>: Starting sector within the device.
 
12
 
 
13
 
 
14
Example scripts
 
15
===============
 
16
[[
 
17
#!/bin/sh
 
18
# Create an identity mapping for a device
 
19
echo "0 `blockdev --getsize $1` linear $1 0" | dmsetup create identity
 
20
]]
 
21
 
 
22
 
 
23
[[
 
24
#!/bin/sh
 
25
# Join 2 devices together
 
26
size1=`blockdev --getsize $1`
 
27
size2=`blockdev --getsize $2`
 
28
echo "0 $size1 linear $1 0
 
29
$size1 $size2 linear $2 0" | dmsetup create joined
 
30
]]
 
31
 
 
32
 
 
33
[[
 
34
#!/usr/bin/perl -w
 
35
# Split a device into 4M chunks and then join them together in reverse order.
 
36
 
 
37
my $name = "reverse";
 
38
my $extent_size = 4 * 1024 * 2;
 
39
my $dev = $ARGV[0];
 
40
my $table = "";
 
41
my $count = 0;
 
42
 
 
43
if (!defined($dev)) {
 
44
        die("Please specify a device.\n");
 
45
}
 
46
 
 
47
my $dev_size = `blockdev --getsize $dev`;
 
48
my $extents = int($dev_size / $extent_size) -
 
49
              (($dev_size % $extent_size) ? 1 : 0);
 
50
 
 
51
while ($extents > 0) {
 
52
        my $this_start = $count * $extent_size;
 
53
        $extents--;
 
54
        $count++;
 
55
        my $this_offset = $extents * $extent_size;
 
56
 
 
57
        $table .= "$this_start $extent_size linear $dev $this_offset\n";
 
58
}
 
59
 
 
60
`echo \"$table\" | dmsetup create $name`;
 
61
]]