123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- ================================
- Early creation of mapped devices
- ================================
- It is possible to configure a device-mapper device to act as the root device for
- your system in two ways.
- The first is to build an initial ramdisk which boots to a minimal userspace
- which configures the device, then pivot_root(8) in to it.
- The second is to create one or more device-mappers using the module parameter
- "dm-mod.create=" through the kernel boot command line argument.
- The format is specified as a string of data separated by commas and optionally
- semi-colons, where:
- - a comma is used to separate fields like name, uuid, flags and table
- (specifies one device)
- - a semi-colon is used to separate devices.
- So the format will look like this::
- dm-mod.create=<name>,<uuid>,<minor>,<flags>,<table>[,<table>+][;<name>,<uuid>,<minor>,<flags>,<table>[,<table>+]+]
- Where::
- <name> ::= The device name.
- <uuid> ::= xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx | ""
- <minor> ::= The device minor number | ""
- <flags> ::= "ro" | "rw"
- <table> ::= <start_sector> <num_sectors> <target_type> <target_args>
- <target_type> ::= "verity" | "linear" | ... (see list below)
- The dm line should be equivalent to the one used by the dmsetup tool with the
- `--concise` argument.
- Target types
- ============
- Not all target types are available as there are serious risks in allowing
- activation of certain DM targets without first using userspace tools to check
- the validity of associated metadata.
- ======================= =======================================================
- `cache` constrained, userspace should verify cache device
- `crypt` allowed
- `delay` allowed
- `era` constrained, userspace should verify metadata device
- `flakey` constrained, meant for test
- `linear` allowed
- `log-writes` constrained, userspace should verify metadata device
- `mirror` constrained, userspace should verify main/mirror device
- `raid` constrained, userspace should verify metadata device
- `snapshot` constrained, userspace should verify src/dst device
- `snapshot-origin` allowed
- `snapshot-merge` constrained, userspace should verify src/dst device
- `striped` allowed
- `switch` constrained, userspace should verify dev path
- `thin` constrained, requires dm target message from userspace
- `thin-pool` constrained, requires dm target message from userspace
- `verity` allowed
- `writecache` constrained, userspace should verify cache device
- `zero` constrained, not meant for rootfs
- ======================= =======================================================
- If the target is not listed above, it is constrained by default (not tested).
- Examples
- ========
- An example of booting to a linear array made up of user-mode linux block
- devices::
- dm-mod.create="lroot,,,rw, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" root=/dev/dm-0
- This will boot to a rw dm-linear target of 8192 sectors split across two block
- devices identified by their major:minor numbers. After boot, udev will rename
- this target to /dev/mapper/lroot (depending on the rules). No uuid was assigned.
- An example of multiple device-mappers, with the dm-mod.create="..." contents
- is shown here split on multiple lines for readability::
- dm-linear,,1,rw,
- 0 32768 linear 8:1 0,
- 32768 1024000 linear 8:2 0;
- dm-verity,,3,ro,
- 0 1638400 verity 1 /dev/sdc1 /dev/sdc2 4096 4096 204800 1 sha256
- ac87db56303c9c1da433d7209b5a6ef3e4779df141200cbd7c157dcb8dd89c42
- 5ebfe87f7df3235b80a117ebc4078e44f55045487ad4a96581d1adb564615b51
- Other examples (per target):
- "crypt"::
- dm-crypt,,8,ro,
- 0 1048576 crypt aes-xts-plain64
- babebabebabebabebabebabebabebabebabebabebabebabebabebabebabebabe 0
- /dev/sda 0 1 allow_discards
- "delay"::
- dm-delay,,4,ro,0 409600 delay /dev/sda1 0 500
- "linear"::
- dm-linear,,,rw,
- 0 32768 linear /dev/sda1 0,
- 32768 1024000 linear /dev/sda2 0,
- 1056768 204800 linear /dev/sda3 0,
- 1261568 512000 linear /dev/sda4 0
- "snapshot-origin"::
- dm-snap-orig,,4,ro,0 409600 snapshot-origin 8:2
- "striped"::
- dm-striped,,4,ro,0 1638400 striped 4 4096
- /dev/sda1 0 /dev/sda2 0 /dev/sda3 0 /dev/sda4 0
- "verity"::
- dm-verity,,4,ro,
- 0 1638400 verity 1 8:1 8:2 4096 4096 204800 1 sha256
- fb1a5a0f00deb908d8b53cb270858975e76cf64105d412ce764225d53b8f3cfd
- 51934789604d1b92399c52e7cb149d1b3a1b74bbbcb103b2a0aaacbed5c08584
|