1
0
Fork 0
mirror of https://git.kernel.org/pub/scm/utils/mdadm/mdadm.git synced 2025-12-06 02:49:16 +00:00
No description
Find a file
Mariusz Tkaczyk 3822896af2 github: disable self-runners
Runners are not avaialable, disable them. There are actions to get new
runners so keep a code for a while.

Signed-off-by: Mariusz Tkaczyk <mtkaczyk@kernel.org>
2025-10-29 08:26:46 +01:00
.github github: disable self-runners 2025-10-29 08:26:46 +01:00
clustermd_tests tests: increase sleeps from 1s to 2s 2024-12-13 10:08:10 +01:00
documentation Fix 'meaing' typo in mdadm.conf-example 2025-10-02 09:25:06 +02:00
misc mdcheck: make sure signals are processed immediately 2025-08-28 15:49:34 +08:00
systemd systemd: start mdcheck_continue.timer before mdcheck_start.timer 2025-08-28 15:49:34 +08:00
tests mdadm: remove POSIX check 2025-05-14 08:28:59 +02:00
.gitignore mdadm: Respect config file location in man 2022-04-04 21:12:54 -04:00
Assemble.c mdadm/Assemble: alloc superblock in Assemble 2025-10-27 22:26:16 +08:00
bitmap.c Coverity fixes resources leaks 2024-12-16 10:10:45 +01:00
bitmap.h bitmap.h: Minor fixes 2025-02-05 12:18:37 +01:00
Build.c Allow RAID0 to be created with v0.90 metadata #161 2025-04-10 11:35:36 +02:00
CHANGELOG.md Release mdadm-4.4 2024-12-13 10:54:53 +01:00
config.c mdadm: remove POSIX check 2025-05-14 08:28:59 +02:00
COPYING Update COPYING file. 2011-08-18 12:55:24 +10:00
coverity-gcc-hack.h gcc-8 coverity hack 2018-06-04 14:49:59 -04:00
crc32.c Add zlib license to crc32.c 2012-10-03 18:17:26 +10:00
crc32.h Add crc32 files. 2008-05-15 16:48:10 +10:00
crc32c.c add crc32c and use it for r5l checksum 2015-10-30 17:38:28 +11:00
Create.c mdadm: enable sync file for udev rules 2025-05-09 17:07:57 +08:00
Detail.c mdadm: use kernel raid headers 2025-04-28 09:55:30 +02:00
dlink.c Examine.c: Fix memory leaks in Examine() 2024-09-10 10:56:56 +02:00
dlink.h dlink.h: Fix checkpatch warnings for function args 2024-09-10 12:18:32 +02:00
drive_encryption.c drive_encryption: Fix ata passthrough12 verify 2024-07-24 13:13:32 +02:00
drive_encryption.h imsm: print disk encryption information 2024-04-02 08:29:15 +02:00
Dump.c add checking of return status on fstat calls 2024-05-21 09:11:31 +02:00
Examine.c mdadm: use kernel raid headers 2025-04-28 09:55:30 +02:00
Grow.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
Incremental.c mdadm/Incremental: wait a while before removing a member 2025-10-21 08:06:49 -04:00
Kill.c mdadm: use kernel raid headers 2025-04-28 09:55:30 +02:00
lib.c mdadm: use standard libc nftw 2025-05-08 23:30:38 +08:00
MAINTAINERS.md Rework MAINTAINERS file 2025-02-18 09:02:18 -05:00
Makefile mdadm: Remove klibc and uclibc support 2025-04-28 09:55:30 +02:00
Manage.c mdadm: Fix memory leak issue in Manage_stop() 2025-10-16 22:02:02 +08:00
managemon.c mdmon: imsm: fix metadata corruption when managing new array 2025-03-03 15:15:26 +01:00
mapfile.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
maps.c Allow RAID0 to be created with v0.90 metadata #161 2025-04-10 11:35:36 +02:00
md.4 md.man: Remove refferences to not supported kernel 2024-11-05 13:36:43 +01:00
md5.h mdadm fix compilation for uClibc 2009-02-02 09:53:51 +11:00
md_p.h imsm: PPL support 2017-03-29 11:32:49 -04:00
md_u.h Remove last traces of HOT_ADD_DISK 2019-11-27 10:19:54 -05:00
mdadm.8.in mdadm: remove POSIX check 2025-05-14 08:28:59 +02:00
mdadm.c mdadm/Assemble: alloc superblock in Assemble 2025-10-27 22:26:16 +08:00
mdadm.conf.5.in mdadm.conf: remove refferences to old kernels. 2024-11-05 13:36:43 +01:00
mdadm.h mdadm/Assemble: alloc superblock in Assemble 2025-10-27 22:26:16 +08:00
mdadm_status.h mdadm: Do not start reshape before switchroot 2025-01-13 10:24:49 +01:00
mdmon.8 Release mdadm-4.4 2024-12-13 10:54:53 +01:00
mdmon.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
mdmon.h mdmon: delegate removal to managemon 2024-11-04 10:29:52 +01:00
mdmonitor.c Re-enable mdadm --monitor ... for /dev/mdX 2025-09-24 11:13:38 +08:00
mdopen.c mdadm: Create array with sync del gendisk mode 2025-10-27 22:24:50 +08:00
mdstat.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
monitor.c sysfs: functions for writing md/<memb>/state 2024-12-16 10:11:31 +01:00
msg.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
msg.h Remove lots of unnecessary white space. 2013-06-19 12:31:45 +10:00
part.h Fix bus error when accessing MBR partition records 2016-10-19 12:38:02 -04:00
platform-intel.c platform-intel: Disable legacy option ROM scan on UEFI machines 2025-02-03 11:17:15 +01:00
platform-intel.h mdadm: add attribute nonstring for signature 2025-05-08 23:30:38 +08:00
policy.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
probe_roms.c Replace error prone signal() with sigaction() 2022-04-04 11:13:02 -04:00
probe_roms.h probe_roms: allow to probe expansion ROMs using vendor and device id. 2011-03-10 11:41:46 +11:00
pwgr.c Improve compiling for static binaries. 2006-05-29 04:09:21 +00:00
Query.c mdadm: use kernel raid headers 2025-04-28 09:55:30 +02:00
raid5extend.c Remove spaces/tabs from ends of lines. 2007-12-14 20:13:43 +11:00
raid6check.8 Update raid6check man page 2025-10-07 07:27:47 +02:00
raid6check.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
ReadMe.c Remove --freeze-reshape logic 2025-01-13 10:24:49 +01:00
README.md Update README.md 2025-10-27 10:08:14 +01:00
restripe.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
sha1.c Define alignof using _Alignof when using C11 or newer 2023-03-19 12:15:52 -04:00
sha1.h Remove lots of unnecessary white space. 2013-06-19 12:31:45 +10:00
super-ddf.c mdadm: Fix memory leak issue in load_ddf_local() 2025-10-16 22:02:02 +08:00
super-gpt.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
super-intel.c mdadm: modify the order of free_super_xxx() to avoid memory leak 2025-10-16 22:02:02 +08:00
super-mbr.c mdadm: add xmalloc.h 2024-09-27 11:16:22 +02:00
super0.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
super1.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
swap_super.c mdadm: use lseek consistently 2025-07-09 11:40:08 -04:00
sysfs.c mdadm/sysfs: close fd before return 2025-10-21 08:06:49 -04:00
test Regression fix (#156) 2025-03-18 08:18:04 +08:00
udev-md-clustered-confirm-device.rules udev rules: introduce rules for cluster-md to confirm device 2017-08-02 09:30:51 -04:00
udev-md-raid-arrays.rules udev: persist properties of MD devices after switch_root 2025-01-27 10:15:32 +01:00
udev-md-raid-assembly.rules Incremental: support devnode in IncrementalRemove. 2024-09-10 12:24:25 +02:00
udev-md-raid-creating.rules Fix typo in new udev rule. 2017-05-05 11:07:00 -04:00
udev-md-raid-safe-timeouts.rules udev: adapt rules to systemd v247 2022-03-31 11:41:09 -04:00
udev.c udev: Fix memleak 2025-10-14 07:25:44 +02:00
udev.h udev: Move udev_block() and udev_unblock() into udev.c 2023-11-21 11:12:06 -05:00
util.c mdadm: Create array with sync del gendisk mode 2025-10-27 22:24:50 +08:00
uuid.c uuid.c: split uuid stuffs from util.c 2020-05-18 20:10:39 -04:00
xmalloc.c super-ddf: optimize DDF header search for widely used RAID controllers 2025-02-03 11:19:00 +01:00
xmalloc.h super-ddf: optimize DDF header search for widely used RAID controllers 2025-02-03 11:19:00 +01:00

mdadm is a utility used to create and manage software RAID devices implemented through Multiple devices driver (MD) in kernel. It supports following RAID metadata formats:

  • Linux native RAID:

    Known as native or native RAID. First and default metadata format. Metadata management is implemented in MD driver.

  • Matrix Storage Manager Support (no reference, metadata format documentation is proprietary).

    Known as IMSM. Metadata format developed and maintained by Intel® as a part of VROC solution. There are some functional differences between native and imsm. The most important difference is that the metadata is managed from userspace.

    CAUTION: imsm is compatible with Intel RST, however it is not officially supported. You are using it on your own risk.

  • Common RAID DDF Specification Revision

    IMPORTANT: DDF is in maintenance only mode. There is no active development around it. Please do not use it in new solutions.

Questions and Support

This Github site is not right place to ask if your are looking for:

  • support from Linux Raid Community;
  • support with kernel issues;

This is the place where development of mdadm application is done. Please, do not use for looking for support. You should always ask on Mailing List.

Please use issues if you have confirmation that issue you are experiencing is related to mdadm components:

  • mdadm;
  • mdmon;
  • raid6check;
  • swap_super;
  • test_stripe;
  • systemd services ( see systemd/);
  • udev rules;
  • manual pages (including md.man)

For example:

  • mdadm issues (e.g segfaults, memory leaks, crashes, bad communication with MD driver);
  • feature requests for mdadm;
  • suggestions or minor fixes requested (e.g. better error messages);

Generally, if you are not sure it is better to ask on Mailing List first.

How to Contribute

Effective immediately Github is the primary location for mdadm. Please use pull requests to contribute.

It was originally hosted on kernel.org. You can access the old repository here.

While this is the preferred contribution method, mailing list submissions are still welcome and will be handled as has always been the case for mdadm. Please add "mdadm:" to the subject to allow automation to create Github Pull Request and run checks.

NOTE: Maintainers may ask you to send RFC to mailing list if the proposed code requires consultation with kernel developers.

Kernel coding style is used. Please familiarize with general kernel submitting patches documentation. Formatting, tags and commit message guidelines applies to mdadm.

Checkpatch script is run on every patch in pull request so be sure that your commits are not generating issues. There are some excludes, so the best is to follow github checkpatch action result.

Pull Request are closed by Rebase and Merge option, so it requires to keep every commit meaningful. Kernel style requires that. The review changes must be pushed with push --force to the chosen branch, then Pull Request will be automatically updated.

Maintainers of mdadm repository on kernel.org

See Maintainers File.

Minimal supported kernel version

We do not support kernel versions below v3.10. Please be aware that maintainers may remove workarounds and fixes for legacy issues.

Dependencies

The following packages are required for compilation:

RHEL SLES Debian/Ubuntu
pkgconf pkg-config pkg-config
gcc gcc gcc
make make make
libudev-devel libudev-devel libudev-dev

Compiling mdadm

Run make command to compile mdadm.

Specifying more jobs e.g. make -j4 can decrease compilation time significantly.

Various values can be specified for the CXFLAGS variable to customize the build process:

  • Run make CXFLAGS=-ggdb to include gdb debugging information.
  • Run make CXFLAGS=-DDEBUG to enable additional debug information through dprintf statements and call traces.
  • Run make CXFLAGS=-DNO_LIBUDEV to compile without libudev.

To build with more than one option specified in CXFLAGS, separate each option with a space, e.g. make CXFLAGS="-ggdb -DDEBUG".

Additionally, the EXTRAVERSION variable can be set to build with user-friendly version label, useful when customizing mdadm builds or labeling some instance in between major releases, e.g. make EXTRAVERSION="custom-label".

Installing mdadm

Before installing mdadm, it is advised to uninstall vendor-provided packages (mdadm.deb, mdadm.rpm etc.) in order to avoid configuration issues.

Run make install command to install mdadm. This command invokes the following targets:

  • install-bin
  • install-man
  • install-udev

After installing mdadm, consider rebuilding initramfs to ensure the changes take effect.

List of installation targets:

  • Run make install-bin to install the mdadm and mdmon binary files.
  • Run make install-systemd to install the systemd services.
  • Run make install-udev to install the udev rules.
  • Run make install-man to install the manual pages (mdadm.8, md.4, mdadm.conf.5, mdmon.8).

The following targets are deprecated and should not be used:

  • install-static

License

It is released under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.