diff options
Diffstat (limited to 'Documentation/device-mapper/linear.txt')
-rw-r--r-- | Documentation/device-mapper/linear.txt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Documentation/device-mapper/linear.txt b/Documentation/device-mapper/linear.txt new file mode 100644 index 000000000000..d5307d380a45 --- /dev/null +++ b/Documentation/device-mapper/linear.txt | |||
@@ -0,0 +1,61 @@ | |||
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 | ]] | ||