How to Fix “mdadm: /etc/mdadm/mdadm.conf defines no arrays” Warning in Ubuntu Linux


2 views

When working with Ubuntu systems (particularly in VM environments like Vagrant), you might encounter this warning during package installations or system updates:

W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

This isn't technically an error - it's a warning from the mdadm (Multiple Device Administration) tool that manages Linux software RAID arrays. The system is simply notifying you that while mdadm is installed and configured, no RAID arrays are currently defined.

The warning commonly appears in these scenarios:

  • Fresh Ubuntu installations (especially minimal/cloud images)
  • Virtual machines created through Vagrant or similar tools
  • Systems without any software RAID configuration
  • After adding swap partitions or making storage changes

Method 1: Create a Minimal mdadm Configuration

For systems that don't use RAID but want to silence the warning:

sudo bash -c "echo 'ARRAY  metadata=1.0' > /etc/mdadm/mdadm.conf"
sudo update-initramfs -u

This creates a dummy configuration that tells mdadm to ignore non-RAID devices.

Method 2: Properly Configure for Your Disk Layout

If you want a more accurate configuration (recommended for production):

# First identify your disk devices
lsblk

# Then generate a proper config (example for /dev/sda)
sudo bash -c "echo 'ARRAY  devices=/dev/sda' > /etc/mdadm/mdadm.conf"

# Update the initramfs
sudo update-initramfs -u

After making changes:

# Check the current mdadm status
cat /proc/mdstat

# Verify the configuration file
cat /etc/mdadm/mdadm.conf

# Test if the warning persists
sudo apt-get install -y linux-image-extra-$(uname -r)

The warning appears because:

  1. Ubuntu's default installation includes mdadm (for RAID support)
  2. The package maintainer scripts check for valid mdadm configurations
  3. Empty or incomplete configurations trigger this non-critical warning

If you're using Vagrant, you might want to add this provisioning script to your Vagrantfile:

config.vm.provision "shell", inline: <<-SHELL
  if [ -f /etc/mdadm/mdadm.conf ]; then
    echo "ARRAY  metadata=1.0" > /etc/mdadm/mdadm.conf
    update-initramfs -u
  fi
SHELL

This automatically handles the configuration for new VM instances.


When installing Linux kernel extras with:

sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

You might encounter:

W: mdadm: /etc/mdadm/mdadm.conf defines no arrays.

This warning appears because:

  • The system checks for software RAID configurations during package installation
  • Your configuration file exists but contains no active array definitions
  • The initramfs generation process expects valid array definitions

For Systems Without RAID

Add this to /etc/mdadm/mdadm.conf:

ARRAY <ignore> devices=/dev/sda1

Then update initramfs:

sudo update-initramfs -u

For Cloud/Virtual Machines

Modify the conf file to explicitly ignore arrays:

# Disable array scanning
DEVICE partitions containers
ARRAY none

Check your current disk layout:

lsblk -o NAME,FSTYPE,MOUNTPOINT
df -h

Create a proper configuration:

sudo /usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf
sudo dpkg-reconfigure mdadm
  • Check mdadm service status: systemctl status mdadm
  • Verify config syntax: mdadm --examine --scan
  • For Vagrant boxes, consider adding to provisioning scripts

Here's a complete working example for non-RAID systems:

# /etc/mdadm/mdadm.conf
DEVICE partitions
ARRAY metadata=1.2 name=hostname:0 UUID=00000000:00000000:00000000:00000000