Subject: bug#32313: Failed to boot after reconfiguring with a btrfs drive.

From: Brendan Tildesley <[email-masked]>
Date: Tue, 31 Jul 2018 01:25:22 +1000

I have a second btrfs drive that I normally manually mount as /mnt/1tb.
I decided to add it to my system config and it when I reconfigure it
mounts the drive correctly, but when I reboot I get the error:

WARNING: failed to open /dev/btrfs-control, skipping device
registration: no such file or directory

ERROR: there are 1 errors while registering devices

File system check on /dev/sda1 failed; spawning Bourne-like REPL

Here is my system config:

(use-modules (gnu)
             (gnu system nss)
             (guix packages))
(use-service-modules desktop
                     ssh
                     admin
                     mcron
                     xorg
                     virtualization
                     cups
                     sddm
                     networking
                     ;; avahi
                     ;; dbus
                     )
(use-package-modules certs
                     gnome
                     bootloaders
                     cups
                     ;; libusb
                     ;; networking
                     )

(operating-system
  (kernel-arguments '("modprobe.blacklist=pcspkr,snd_pcsp"))
  (host-name "ui")
  (timezone "Australia/Hobart")
  (locale "en_AU.utf8")

  ;; (locale-definitions '("zh_TW.utf8"
  ;;                       "zh_CN.utf8"
  ;;                       "ja_JP.utf8"
  ;;                       "en_DK.UTF-8"
  ;;                       ))

  ;; Assuming /dev/sdX is the target hard disk, and "my-root"
  ;; is the label of the target root file system.
  (bootloader
   (grub-configuration
    ;;(device "/dev/disk/by-id/ata-Samsung_SSD_850_EVO_1TB_S2PWNX0J204086P")
    (target "/dev/sdc")))

  (users
   (cons*
    (user-account
     (name "b")
     (comment "ore")
     (group "users")
     (supplementary-groups
      '("wheel"   ; To use sudo
        "netdev"
        "audio"   ; To play sound
        "video" ; To access the webcam
        "kvm"
        "disk"
        ;; lp lpadmin, seen in other's configs
        ))
     (home-directory "/home/b"))

    (user-account
     (name "b2")
     (comment "ore too")
     (group "users")
     (supplementary-groups
      '("wheel"   ; To use sudo
        "netdev"
        "audio"   ; To play sound
        "video")) ; To access the webcam
     (home-directory "/home/b2"))
    %base-user-accounts))

  ;;System-wide packages.
  (packages
   (cons
    (specification->package+output "glib" "bin")
    (append
     (map specification->package
          '( "nss-certs"         ; For HTTPS access
             "gvfs"              ; For user mounts
             ;"dconf"             ; NOT SURE IF THIS IS ALSO NEEDED
             "glibc-locales"     ; Locales

             "ecryptfs-utils"
             "exfat-utils"
             "ntfs-3g"
             "btrfs-progs"

             "setxkbmap" ; keyboard mappings
             "xmodmap"

             "i3-wm" "i3status";; "dmenu" ; tiling wm
             "dbus" "pcmanfm"
             ;; We cannot rsync over ssh unless rsync is in the system
profile
             "rsync"))
     %base-packages)))

  (services
   (cons*
    (console-keymap-service "en-latin9")
   
    ;; OpenSSH
    (service openssh-service-type
             (openssh-configuration
              (port-number 22)))
    ;; Probably does something useful
    (service rottlog-service-type)

    (service tor-service-type)
    ;; from the manual, this apparently this lets us emulate building on arm
    (service qemu-binfmt-service-type
             (qemu-binfmt-configuration
              (platforms (lookup-qemu-platforms "arm"))
              (guix-support? #t)))

    ;; Printer stuff
    (service cups-service-type
             (cups-configuration
              (web-interface? #t)
              (extensions
               (list cups-filters hplip))))

    ;; Colemak settings for Xorg that are valid for the login manager
    (let ((colemak
           "Section \"InputClass\"
        Identifier \"evdev keyboard catchall\"
        Driver \"evdev\"
        MatchIsKeyboard \"on\"
        Option \"xkb_layout\" \"us\"
        Option \"xkb_variant\" \"colemak\"
EndSection"))
     
      (modify-services %desktop-services
        ;; (remove-services
        ;;  (list
        ;;   ;ntp-service-type
        ;;   screen-locker-service-type)
        ;;  %desktop-services)

        ;; Enable Colemak layout in Slim login
        (slim-service-type config =>
                           (slim-configuration
                            (inherit config)
                            (startx (xorg-start-command
                                     #:configuration-file
                                     (xorg-configuration-file
                                      #:extra-config
                                      (list colemak))))))))))

  ;; Allow resolution of '.local' host names with mDNS.
  (name-service-switch %mdns-host-lookup-nss))