NixOS / nixos

OBSOLETE (go to NixOS/nixpkgs) - NixOS, a Linux distribution based on the Nix package manager - OBSOLETE (go to NixOS/nixpkgs)
MIT License
173 stars 101 forks source link

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

Open viric opened 11 years ago

viric commented 11 years ago

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: https://github.com/viric/nixos/compare/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

vcunat commented 11 years ago

From the first look it seems to me that the udev "magic" is connected to multi-device btrfs filesystems.

My btrfs /home partition mounts fine (it's in stage2, isn't it?), but I only have systemd-200 and it's one-device only.

viric commented 11 years ago

On Tue, Apr 23, 2013 at 12:50:42PM -0700, Vladimír Čunát wrote:

From the first look it seems to me that the udev "magic" is connected to multi-device btrfs filesystems.

Yes, to me too, but as something doesn't work for me, I'm a bit lost.

My btrfs /home partition mounts fine (it's in stage2, isn't it?), but I only have systemd-200.

I tried that in 199, 200 and 201, to no difference. Is your /home partition multi-device, and over LVM?

vcunat commented 11 years ago

No, just regular one-device (I added this info straight after posting the previous comment, but you only read the e-mail).

viric commented 11 years ago

Ok, I think it's definitely a multidevice trouble :)

domenkozar commented 8 years ago

Is this still an issue?