You are not logged in.

#1 2015-10-18 11:07:25

madman_xxx
Member
From: PL
Registered: 2013-07-31
Posts: 28

[SOLVED] Can't boot from dmraid after recent upgrade

Hello,

my arch system worked till yesterday, but after upgrade it no longer does. The problem is that although the software RAID device is recognized (/dev/dm-0 and /dev/mapper/isw_(hash)_(name) are visible), the partitions nodes are not created and I'm dropped to an emergency shell.
The arch wiki (kind of) addresses this issue (https://wiki.archlinux.org/index.php/In … RAID_array), but after the upgrade my gparted (on a USB stick, separate installation) also stopped working (some problem with libstdc++6, not to be elaborated in this post).
How can this be fixed, or at least investigated further?

I am using Intel's fake RAID embedded on my MSI Z97 Gaaming 3 mainboard.
Unfortunately, I cannot paste any configs, because my filesystems are no longer accessible. As far as I remember, the mkinitcpio.conf included the dmraid hook.

Last edited by madman_xxx (2015-10-20 22:39:54)

Offline

#2 2015-10-20 22:39:15

madman_xxx
Member
From: PL
Registered: 2013-07-31
Posts: 28

Re: [SOLVED] Can't boot from dmraid after recent upgrade

OK, this was hell, but I got around it.

For starters - the solution here is more of a workaround, because it does not address the actual problem. Mostly because I still don't fully understand what the problem is, I only have the general idea. Also, the discussion on Arch's FakeRAID wiki suggest using mdadm instead of dmraid, but in my case it doesn't work and also I dual-boot Windows.

The configuration: I have been using dmraid + mdadm on Intel's FakeRAID. Worked till recent update
The problem: RAID seems to be detected, but there are no partition nodes (missing /dev/mapper/isw_(hash)_(name)p(x) and /dev/dm-[1-9])
The solution: Use dmraid only and force the system to recheck the devices for partitions after assembling an array. For that we must inculde partprobe in initramfs and invoke it upon loading the dmraid hook

  1. run Arch installation medium for recovery, review the Installation Guide

  2. assemble the array, but it should work out of the box

  3. make sure you have parted installed on your crippled system. Use arch-chroot to install it if you don't. We will need the partprobe binary from that package

  4. modify /usr/lib/initcpio/install/dmraid. This will include partprobe in the initramfs

    #!/bin/bash
    
    build() {
        add_module 'dm-mod'
        add_module 'dm-mirror'
    
        add_binary 'dmraid'
        add_binary 'dmsetup'
        add_binary 'partprobe'
        add_file "/usr/lib/device-mapper/libdmraid-events-isw.so"
        add_file "/usr/lib/udev/rules.d/10-dm.rules"
        add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
        add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
        add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
    
        add_runscript
    }
    
    help() {
        cat <<HELPEOF
    This hook loads the necessary modules for a dmraid root device.
    HELPEOF
    }
  5. modify /usr/lib/initcpio/hooks/dmraid. This will execute the included partprobe after assembling the array

    #!/usr/bin/ash
    
    run_hook() {
        modprobe -a -q dm-mod dm-mirror >/dev/null 2>&1
        msg ":: Activating dmraid arrays..."
        # prevent any event monitoring calls with -I
        if [ "$quiet" = "y" ]; then
            dmraid -ay -I -Z >/dev/null
        else
            dmraid -ay -I -Z
        fi
        partprobe
    }
  6. modify /etc/mkinitcpio.conf. Make sure there is the dmraid hook before filesystems and mdadm_udev should be removed if it's there

  7. regenerate the initramfs with

    mkinitcpio -p linux

    and you're done. Make sure that /etc/fstab is UUID-mapped, otherwise the system may still not boot because of the node name change, especially when you were using mdadm.

Offline

#3 2021-06-07 17:16:37

andrea993
Member
Registered: 2015-02-19
Posts: 12

Re: [SOLVED] Can't boot from dmraid after recent upgrade

Hi, this guide is very helpfull. Only one thing, I suggest you to copy also the file to /etc

 cp /usr/lib/initcpio/install/dmraid /etc/initcpio/install/ 

This is because updating dmraid the file on /usr will be replaced and mkinticpio looks at /etc first.

I can suggest you to add this workaround in the dmraid wiki,

Offline

#4 2021-06-07 17:18:48

Scimmia
Fellow
Registered: 2012-09-01
Posts: 8,633

Re: [SOLVED] Can't boot from dmraid after recent upgrade

So add it instead of bumping a thread that's more than 5 years old.

Offline

#5 2021-06-07 17:24:32

ewaller
Administrator
From: Pasadena, CA
Registered: 2009-07-13
Posts: 17,918

Re: [SOLVED] Can't boot from dmraid after recent upgrade

Using this opportunity to close this old thread.


Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way

Offline

Board footer

Powered by FluxBB