mirror of
https://github.com/hardkernel/linux.git
synced 2026-04-05 12:43:09 +09:00
This is a wrap-up of three patches pending upstream approval. I'm bundling them because they are interdependent, and it'll be easier to drop it on rebase later. 1. dm: allow a dm-fs-style device to be shared via dm-ioctl Integrates feedback from Alisdair, Mike, and Kiyoshi. Two main changes occur here: - One function is added which allows for a programmatically created mapped device to be inserted into the dm-ioctl hash table. This binds the device to a name and, optional, uuid which is needed by udev and allows for userspace management of the mapped device. - dm_table_complete() was extended to handle all of the final functional changes required for the table to be operational once called. 2. init: boot to device-mapper targets without an initr* Add a dm= kernel parameter modeled after the md= parameter from do_mounts_md. It allows for device-mapper targets to be configured at boot time for use early in the boot process (as the root device or otherwise). It also replaces /dev/XXX calls with major:minor opportunistically. The format is dm="name uuid ro,table line 1,table line 2,...". The parser expects the comma to be safe to use as a newline substitute but, otherwise, uses the normal separator of space. Some attempt has been made to make it forgiving of additional spaces (using skip_spaces()). A mapped device created during boot will be assigned a minor of 0 and may be access via /dev/dm-0. An example dm-linear root with no uuid may look like: root=/dev/dm-0 dm="lroot none ro, 0 4096 linear /dev/ubdb 0, 4096 4096 linear /dv/ubdc 0" Once udev is started, /dev/dm-0 will become /dev/mapper/lroot. Older upstream threads: http://marc.info/?l=dm-devel&m=127429492521964&w=2 http://marc.info/?l=dm-devel&m=127429499422096&w=2 http://marc.info/?l=dm-devel&m=127429493922000&w=2 Latest upstream threads: https://patchwork.kernel.org/patch/104859/ https://patchwork.kernel.org/patch/104860/ https://patchwork.kernel.org/patch/104861/ Bug: 27175947 Signed-off-by: Will Drewry <wad@chromium.org> Review URL: http://codereview.chromium.org/2020011 Change-Id: I92bd53432a11241228d2e5ac89a3b20d19b05a31
43 lines
1.5 KiB
Plaintext
43 lines
1.5 KiB
Plaintext
Boot time 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.
|
|
|
|
For simple device mapper configurations, it is possible to boot directly
|
|
using the following kernel command line:
|
|
|
|
dm="<name> <uuid> <ro>,table line 1,...,table line n"
|
|
|
|
name = the name to associate with the device
|
|
after boot, udev, if used, will use that name to label
|
|
the device node.
|
|
uuid = may be 'none' or the UUID desired for the device.
|
|
ro = may be "ro" or "rw". If "ro", the device and device table will be
|
|
marked read-only.
|
|
|
|
Each table line may be as normal when using the dmsetup tool except for
|
|
two variations:
|
|
1. Any use of commas will be interpreted as a newline
|
|
2. Quotation marks cannot be escaped and cannot be used without
|
|
terminating the dm= argument.
|
|
|
|
Unless renamed by udev, the device node created will be dm-0 as the
|
|
first minor number for the device-mapper is used during early creation.
|
|
|
|
Example
|
|
=======
|
|
|
|
- Booting to a linear array made up of user-mode linux block devices:
|
|
|
|
dm="lroot none 0, 0 4096 linear 98:16 0, 4096 4096 linear 98:32 0" \
|
|
root=/dev/dm-0
|
|
|
|
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.
|