Skip to content
This repository was archived by the owner on Aug 27, 2018. It is now read-only.
This repository was archived by the owner on Aug 27, 2018. It is now read-only.

Systemd fails to mount btrfs multidevice filesystems in stage 2 #152

Open
@viric

Description

@viric

First, this only affects btrfs fs to be mounted by systemd, thus, stage 2.

As current nixos master, only one block device can be told to be waited for.

In a usual btrfs approach, when all the block devices are ready, "btrfs dev scan" has to be run with the btrfs module loaded, and it will settle down the multidevice information.

I tried to get nixos supporting multiple devices in fileSystems, and having "btrfs dev scan" run as a udev rule, but this doesn't work: viric/nixos@master...systemd_btrfs

Currently, my mount point (mnt-hd.mount) fails to mount this way:

   Loaded: loaded (/nix/store/jjq9jaaq3dgdafqvhmg8cmvcqa452z9c-unit/mnt-hd.mount)
   Active: failed (Result: exit-code) since dc 2013-04-17 00:01:14 CEST; 25min ago
    Where: /mnt/hd
     What: /dev/mapper/seagate-lvol0
  Process: 1473 ExecMount=/nix/store/wbr4qkpf1y1f6hzxs7gp9a1imnypihq7-util-linux-2.22.2/bin/mount /dev/mapper/seagate-lvol0 /mnt/hd -t btrfs -o noatime,autodefrag (code=exited, status=32)

abr 17 00:01:14 nispro mount[1473]: mount: wrong fs type, bad option, bad superblock on /d...l0,
abr 17 00:01:14 nispro mount[1473]: missing codepage or helper program, or other error
abr 17 00:01:14 nispro mount[1473]: In some cases useful info is found in syslog - try
abr 17 00:01:14 nispro mount[1473]: dmesg | tail or so
abr 17 00:01:14 nispro systemd[1]: mnt-hd.mount mount process exited, code=exited status=32
abr 17 00:01:14 nispro systemd[1]: Failed to mount Mount of dev-mapper-seagate\x2dlvol0,d...ol0.
abr 17 00:01:14 nispro systemd[1]: Unit mnt-hd.mount entered failed state

I'm using this config, with my branch:

fileSystems = ...
    { mountPoint = "/mnt/hd";
      devices = [ "/dev/mapper/seagate-lvol0" "/dev/mapper/wdgreen-lvol0" ];
      options = "noatime,autodefrag";
      fsType = "btrfs";
      }

As an additional comment, systemd udev seems to have some magic about btrfs that I don't understand: http://lists.freedesktop.org/archives/systemd-commits/2012-September/002503.html

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions