About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / device-mapper / linear.txt


Based on kernel version 4.16.1. Page generated on 2018-04-09 11:52 EST.

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 --getsz $1` linear $1 0" | dmsetup create identity
20	]]
21	
22	
23	[[
24	#!/bin/sh
25	# Join 2 devices together
26	size1=`blockdev --getsz $1`
27	size2=`blockdev --getsz $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 --getsz $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	]]
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog