btrfs_get_block_device_fd() returns -ENOTTY if fstatfs().f_type != BTRFS_SUPER_MAGIC btrfs_get_block_device_fd() is run by verify_fsroot_dir() by verify_xbootldr() by find_xbootldr_and_warn() if statx($presumed-XBOOTLDR).stx_dev_major == 0 ("maybe a btrfs device") Every bootctl verb_install() runs find_xbootldr_and_warn(), by default with /boot If your /boot .stx_dev_major=0 but /not/ btrfs, bootctl install/update quietly exits 1 with no note so as to what exactly failed (debug also empty, and the strace isn't exactly clear since no syscall actually failed) This is the case on ZFS and the Debian filesystem layout: /boot/efi is the ESP, and everything else under / is ZFS: $ sudo env SYSTEMD_LOG_LEVEL=debug bootctl update Found cgroup2 on /sys/fs/cgroup/, full unified hierarchy Found container virtualization none. File system "/boot" is not a FAT EFI System Partition (ESP) file system. Using EFI System Partition at /boot/efi. Checking whether /boot/efi/EFI/systemd/ contains any files… $ echo $? 1 and funnier still: $ sudo bootctl update --graceful $ echo $? 1 Which is great, and also breaks postinst, which runs precisely the latter, with no feedback at all By checking for -ENOTTY we accept that the path being investigated "is not it" if it's on ZFS (and any other filesystem that returns .stx_dev_major == 0 but isn't btrfs) (cherry picked from commit ed89819f8fd7bfe99cd652082076e85e1417e4e9) (cherry picked from commit f6388f561cad25f440c2637ce3f1399ed8ed9b7f)
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list or join our IRC channel.
Stable branches with backported patches are available in the stable repo.