Skip to content

Commit

Permalink
Replace ancient 64-btrfs.rules with newer systemd rules
Browse files Browse the repository at this point in the history
This solves the failure to boot when the root fs is on a btrfs handled
raid set-up. The reason it fails is typically because one or both disks
failure are not initialised before the kernel wants to mount root.

Solves issues #1329 and #1980
  • Loading branch information
Luke Jones committed Nov 1, 2018
1 parent ccbd952 commit 5ed7c5c
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion conf/64-btrfs.rules
Original file line number Diff line number Diff line change
@@ -1 +1,17 @@
RUN+="/bin/mknod /dev/btrfs-control c 10 234"
# do not edit this file, it will be overwritten on update

SUBSYSTEM!="block", GOTO="btrfs_end"
ACTION=="remove", GOTO="btrfs_end"
ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end"
ENV{SYSTEMD_READY}=="0", GOTO="btrfs_end"

# let the kernel know about this btrfs filesystem, and check if it is complete
IMPORT{builtin}="btrfs ready $devnode"

# mark the device as not ready to be used by the system
ENV{ID_BTRFS_READY}=="0", ENV{SYSTEMD_READY}="0"

# reconsider pending devices in case when multidevice volume awaits
ENV{ID_BTRFS_READY}=="1", RUN+="@rootbindir@/udevadm trigger -s block -p ID_BTRFS_READY=0"

LABEL="btrfs_end"

0 comments on commit 5ed7c5c

Please sign in to comment.