2

Fresh Arch Linux install on (hardware) RAID0 under 64-bit UEFI system with GPT partitions. Had to add

MODULES="ext4 dm_mod raid0"

HOOKS="base udev autodetect modconf block mdadm_udev filesystems keyboard fsck"

into /etc/mkinitcpio.conf so that partitions on RAID0 are recognized properly on boot. Otherwise,

ERROR: device 'UUID=<uuid>' not found. Skipping fsck.
ERROR: Unable to find root device 'UUID=<uuid>'.
...

would be issued.

There is one peculiarity however, and I don't know how to explain it. On the one hand, when /etc/fstab contains either /dev/* or UUID=* sources, Arch Linux boots normally. On the other hand, when it contains PARTUUID=* sources, a bunch of the corresponding Dependency failed errors (regarding mounting of those sources from /etc/fstab) happen on boot and it hangs.

Could you explain what's wrong about having PARTUUID=* in /etc/fstab in this case? Does that have something to do with RAID0?


$ cat /proc/mdstat
Personalities : [raid0] 
md126 : active raid0 sda[1] sdb[0]
      976768000 blocks super external:/md127/0 128k chunks

md127 : inactive sda[1](S) sdb[0](S)
      4904 blocks super external:imsm

unused devices: <none>

$ dmsetup table
No devices found

$ lsblk
NAME          MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda             8:0    0 465.8G  0 disk  
└─md126         9:126  0 931.5G  0 raid0 
  ├─md126p1   259:0    0     1G  0 md    /boot/efi
  ├─md126p2   259:1    0     1G  0 md    
  ├─md126p3   259:2    0     1G  0 md    
  ├─md126p4   259:3    0   256G  0 md    
  ├─md126p102 259:4    0    16G  0 md    [SWAP]
  ├─md126p103 259:5    0    16G  0 md    /
  ├─md126p104 259:6    0    16G  0 md    /var
  └─md126p105 259:7    0   256G  0 md    /home
sdb             8:16   0 465.8G  0 disk  
└─md126         9:126  0 931.5G  0 raid0 
  ├─md126p1   259:0    0     1G  0 md    /boot/efi
  ├─md126p2   259:1    0     1G  0 md    
  ├─md126p3   259:2    0     1G  0 md    
  ├─md126p4   259:3    0   256G  0 md    
  ├─md126p102 259:4    0    16G  0 md    [SWAP]
  ├─md126p103 259:5    0    16G  0 md    /
  ├─md126p104 259:6    0    16G  0 md    /var
  └─md126p105 259:7    0   256G  0 md    /home
sr0            11:0    1  1024M  0 rom

$ blkid
/dev/sda: TYPE="isw_raid_member"
/dev/sdb: TYPE="isw_raid_member"
/dev/md126p1: LABEL="EFI" UUID="722E-E4AB" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="a8e94657-e6ea-4712-be06-ac9ffe6e2258"
/dev/md126p3: LABEL="Windows PE 5.0 (x64)" UUID="181C2F991C2F7144" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="15848c79-1456-418b-a243-830d0db894ce"
/dev/md126p4: LABEL="Windows 8.1 (x64)" UUID="AAB83149B83114F3" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="7d3a06f5-4c67-4299-80b0-029501e14f18"
/dev/md126p102: UUID="6a2d4998-3ac8-4135-9d72-47960b201d5d" TYPE="swap" PARTLABEL="Swap" PARTUUID="d418edd6-44eb-4058-921f-c68aa191c5ac"
/dev/md126p103: UUID="2c241730-a076-48d9-8d1f-6e10573a994f" TYPE="ext4" PARTLABEL="Arch Linux" PARTUUID="37200e1e-dea4-435a-a873-427e3ee8c494"
/dev/md126p104: UUID="8d4eff47-3a2b-46b4-9263-7bbf00d8d0db" TYPE="ext4" PARTLABEL="Variable" PARTUUID="cd15b1f0-e948-4975-9218-591efa5b9b95"
/dev/md126p105: UUID="e0b15e56-3846-4e75-96f8-4f75058b4a6b" TYPE="ext4" PARTLABEL="Home" PARTUUID="54e85323-522c-415a-b7bd-2eb83b6b4ee6"
/dev/md126: PTUUID="e4e1b9b8-c26f-416d-82d9-e9350d0b5ac2" PTTYPE="gpt"
/dev/md126p2: PARTLABEL="Microsoft reserved partition" PARTUUID="6e9264fd-da04-4966-b8e0-8f3124f47050"
  • The fact that you had to add raid0 and dm_mod to your initramfs strongly suggests that you're not using hardware RAID, but rather software RAID. – derobert Jan 8 '16 at 17:03
  • @derobert, I do use hardware RAID0. – Alexander Shukaev Jan 8 '16 at 20:04
  • Are you sure? Because if so, you should need to add modules to drive the hardware RAID card, not modules for software RAID. Which RAID card is this? After booted, what do cat /proc/mdstat and dmsetup table show? Also, which block devices do you have, just /dev/sda or do you have multiple? – derobert Jan 8 '16 at 20:05
  • @derobert, Updated. I believe I have ASUS ROG G75VW-T1040V. Unfortunately, I could not find the name of the RAID controller in specifications. – Alexander Shukaev Jan 8 '16 at 20:29
  • You're running software RAID. The cat /proc/mdstat is quite definitive on that. – derobert Jan 8 '16 at 21:14
1

Since it's now clear you're running software raid ("fake raid", where the firmware/BIOS also has a software RAID implementation to make booting Windows off of it easier—in this case, Intel Matrix Storage), you're probably seeing some bug in Arch's initramfs w/r/t partitioning md arrays.

True hardware raid is almost entirely transparent to the OS; e.g., you would see only one device, the RAID array, not one device per disk. A hardware RAID array looks just like a normal disk to the OS, at least once you've got the RAID driver installed (without it, the OS just doesn't see it at all).

For quite a while, you couldn't partition md arrays at all (it was common—still is—to use LVM on top of them, or to create multiple arrays); later, you could set up a partitionable one, but it wasn't the default; nowadays they can all be partitioned. But probably something still has an assumption about them not being partitionable, and is looking for that partuuid on a physical disk, not the RAID array.

Personally, I'd not worry about it and just use the UUID instead. Also, in general, for a Linux-only box, is usually better to not use the "fake raid" at all, and just use Linux mdraid directly with its native formats. With RAID-0, I'm sure you'll have a chance to rebuild the box soon enough...

  • Thank you so much for this enlightenment. I was always under impression that if RAID configuration happens in BIOS, then it should be on hardware level. By the way does your last sentence imply that my system is very prone to unrecoverable failure? I've been using this RAID0 since 2012 (when I bought this laptop), but mostly on Windows, and never had any problem every since. Arch Linux is now running for three months without issues as well. – Alexander Shukaev Jan 9 '16 at 12:36
  • @AlexanderShukaev RAID 0 means if any disk fails, everything is lost. It is less reliable than a single non-RAIDed disk. So, yes, your system is prone to unrecoverable failure. (But it's fast! It should be used when speed is the only thing you care about) – derobert Jan 9 '16 at 20:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.