brintos

brintos / linux-shallow public Read only

0
0
Text · 4.6 KiB · 981d6a9 Raw
134 lines · plain
1================================2Early creation of mapped devices3================================4 5It is possible to configure a device-mapper device to act as the root device for6your system in two ways.7 8The first is to build an initial ramdisk which boots to a minimal userspace9which configures the device, then pivot_root(8) in to it.10 11The second is to create one or more device-mappers using the module parameter12"dm-mod.create=" through the kernel boot command line argument.13 14The format is specified as a string of data separated by commas and optionally15semi-colons, where:16 17 - a comma is used to separate fields like name, uuid, flags and table18   (specifies one device)19 - a semi-colon is used to separate devices.20 21So the format will look like this::22 23 dm-mod.create=<name>,<uuid>,<minor>,<flags>,<table>[,<table>+][;<name>,<uuid>,<minor>,<flags>,<table>[,<table>+]+]24 25Where::26 27	<name>		::= The device name.28	<uuid>		::= xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | ""29	<minor>		::= The device minor number | ""30	<flags>		::= "ro" | "rw"31	<table>		::= <start_sector> <num_sectors> <target_type> <target_args>32	<target_type>	::= "verity" | "linear" | ... (see list below)33 34The dm line should be equivalent to the one used by the dmsetup tool with the35`--concise` argument.36 37Target types38============39 40Not all target types are available as there are serious risks in allowing41activation of certain DM targets without first using userspace tools to check42the validity of associated metadata.43 44======================= =======================================================45`cache`			constrained, userspace should verify cache device46`crypt`			allowed47`delay`			allowed48`era`			constrained, userspace should verify metadata device49`flakey`		constrained, meant for test50`linear`		allowed51`log-writes`		constrained, userspace should verify metadata device52`mirror`		constrained, userspace should verify main/mirror device53`raid`			constrained, userspace should verify metadata device54`snapshot`		constrained, userspace should verify src/dst device55`snapshot-origin`	allowed56`snapshot-merge`	constrained, userspace should verify src/dst device57`striped`		allowed58`switch`		constrained, userspace should verify dev path59`thin`			constrained, requires dm target message from userspace60`thin-pool`		constrained, requires dm target message from userspace61`verity`		allowed62`writecache`		constrained, userspace should verify cache device63`zero`			constrained, not meant for rootfs64======================= =======================================================65 66If the target is not listed above, it is constrained by default (not tested).67 68Examples69========70An example of booting to a linear array made up of user-mode linux block71devices::72 73  dm-mod.create="lroot,,,rw, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" root=/dev/dm-074 75This will boot to a rw dm-linear target of 8192 sectors split across two block76devices identified by their major:minor numbers.  After boot, udev will rename77this target to /dev/mapper/lroot (depending on the rules). No uuid was assigned.78 79An example of multiple device-mappers, with the dm-mod.create="..." contents80is shown here split on multiple lines for readability::81 82  dm-linear,,1,rw,83    0 32768 linear 8:1 0,84    32768 1024000 linear 8:2 0;85  dm-verity,,3,ro,86    0 1638400 verity 1 /dev/sdc1 /dev/sdc2 4096 4096 204800 1 sha25687    ac87db56303c9c1da433d7209b5a6ef3e4779df141200cbd7c157dcb8dd89c4288    5ebfe87f7df3235b80a117ebc4078e44f55045487ad4a96581d1adb564615b5189 90Other examples (per target):91 92"crypt"::93 94  dm-crypt,,8,ro,95    0 1048576 crypt aes-xts-plain6496    babebabebabebabebabebabebabebabebabebabebabebabebabebabebabebabe 097    /dev/sda 0 1 allow_discards98 99"delay"::100 101  dm-delay,,4,ro,0 409600 delay /dev/sda1 0 500102 103"linear"::104 105  dm-linear,,,rw,106    0 32768 linear /dev/sda1 0,107    32768 1024000 linear /dev/sda2 0,108    1056768 204800 linear /dev/sda3 0,109    1261568 512000 linear /dev/sda4 0110 111"snapshot-origin"::112 113  dm-snap-orig,,4,ro,0 409600 snapshot-origin 8:2114 115"striped"::116 117  dm-striped,,4,ro,0 1638400 striped 4 4096118  /dev/sda1 0 /dev/sda2 0 /dev/sda3 0 /dev/sda4 0119 120"verity"::121 122  dm-verity,,4,ro,123    0 1638400 verity 1 8:1 8:2 4096 4096 204800 1 sha256124    fb1a5a0f00deb908d8b53cb270858975e76cf64105d412ce764225d53b8f3cfd125    51934789604d1b92399c52e7cb149d1b3a1b74bbbcb103b2a0aaacbed5c08584126 127For setups using device-mapper on top of asynchronously probed block128devices (MMC, USB, ..), it may be necessary to tell dm-init to129explicitly wait for them to become available before setting up the130device-mapper tables. This can be done with the "dm-mod.waitfor="131module parameter, which takes a list of devices to wait for::132 133  dm-mod.waitfor=<device1>[,..,<deviceN>]134