cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dm-init.rst (4353B)


      1================================
      2Early creation of mapped devices
      3================================
      4
      5It is possible to configure a device-mapper device to act as the root device for
      6your system in two ways.
      7
      8The first is to build an initial ramdisk which boots to a minimal userspace
      9which configures the device, then pivot_root(8) in to it.
     10
     11The second is to create one or more device-mappers using the module parameter
     12"dm-mod.create=" through the kernel boot command line argument.
     13
     14The format is specified as a string of data separated by commas and optionally
     15semi-colons, where:
     16
     17 - a comma is used to separate fields like name, uuid, flags and table
     18   (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 the
     35`--concise` argument.
     36
     37Target types
     38============
     39
     40Not all target types are available as there are serious risks in allowing
     41activation of certain DM targets without first using userspace tools to check
     42the validity of associated metadata.
     43
     44======================= =======================================================
     45`cache`			constrained, userspace should verify cache device
     46`crypt`			allowed
     47`delay`			allowed
     48`era`			constrained, userspace should verify metadata device
     49`flakey`		constrained, meant for test
     50`linear`		allowed
     51`log-writes`		constrained, userspace should verify metadata device
     52`mirror`		constrained, userspace should verify main/mirror device
     53`raid`			constrained, userspace should verify metadata device
     54`snapshot`		constrained, userspace should verify src/dst device
     55`snapshot-origin`	allowed
     56`snapshot-merge`	constrained, userspace should verify src/dst device
     57`striped`		allowed
     58`switch`		constrained, userspace should verify dev path
     59`thin`			constrained, requires dm target message from userspace
     60`thin-pool`		constrained, requires dm target message from userspace
     61`verity`		allowed
     62`writecache`		constrained, userspace should verify cache device
     63`zero`			constrained, not meant for rootfs
     64======================= =======================================================
     65
     66If the target is not listed above, it is constrained by default (not tested).
     67
     68Examples
     69========
     70An example of booting to a linear array made up of user-mode linux block
     71devices::
     72
     73  dm-mod.create="lroot,,,rw, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" root=/dev/dm-0
     74
     75This will boot to a rw dm-linear target of 8192 sectors split across two block
     76devices identified by their major:minor numbers.  After boot, udev will rename
     77this 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="..." contents
     80is 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 sha256
     87    ac87db56303c9c1da433d7209b5a6ef3e4779df141200cbd7c157dcb8dd89c42
     88    5ebfe87f7df3235b80a117ebc4078e44f55045487ad4a96581d1adb564615b51
     89
     90Other examples (per target):
     91
     92"crypt"::
     93
     94  dm-crypt,,8,ro,
     95    0 1048576 crypt aes-xts-plain64
     96    babebabebabebabebabebabebabebabebabebabebabebabebabebabebabebabe 0
     97    /dev/sda 0 1 allow_discards
     98
     99"delay"::
    100
    101  dm-delay,,4,ro,0 409600 delay /dev/sda1 0 500
    102
    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 0
    110
    111"snapshot-origin"::
    112
    113  dm-snap-orig,,4,ro,0 409600 snapshot-origin 8:2
    114
    115"striped"::
    116
    117  dm-striped,,4,ro,0 1638400 striped 4 4096
    118  /dev/sda1 0 /dev/sda2 0 /dev/sda3 0 /dev/sda4 0
    119
    120"verity"::
    121
    122  dm-verity,,4,ro,
    123    0 1638400 verity 1 8:1 8:2 4096 4096 204800 1 sha256
    124    fb1a5a0f00deb908d8b53cb270858975e76cf64105d412ce764225d53b8f3cfd
    125    51934789604d1b92399c52e7cb149d1b3a1b74bbbcb103b2a0aaacbed5c08584