• Synthead@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 year ago

    The root filesystem mounted fine. That’s why the init is starting with all the services on the root disk.

    • neidu@feddit.nl
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      Not necessarily. I’ve seen failures like this if the boot partition works, but fails to mount the root partition. systemd then fails to proceed, and shuts down the running services.

      • Synthead@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        1 year ago

        systemd daemons are configured via /etc/systemd, and systemd itself lives in /usr/lib/systemd/systemd. How can systemd run or start the configured services without the root disk mounted? The initrd (from the boot partition) only contains enough of an environment to call the entrypoint for the init system, not contain the entirety of systemd (or the configured services).

        • damium@programming.dev
          link
          fedilink
          English
          arrow-up
          6
          ·
          1 year ago

          Initrd contains the systemd binary and enough libraries, services, and kernel modules to get booted this far. The system failed at switch root which is where the real root disk is mounted. Initrd can contain as much or as little as needed to get a working system which can be a lot of you are using a network filesystem as a root for instance.

        • CameronDev@programming.dev
          link
          fedilink
          arrow-up
          4
          ·
          1 year ago

          Those are all hardware management services (as far as I can tell), and are configured before the root is mounted.

          I have hit this exact error before, that is what failing to mount the root disk looks like. A bunch of services will start, and then you get dropped into a shell (with a login).

          If you want to see it for yourself, change /etc/fstab such that /root is now pointing to the wrong device, and then rebuild your initrd. When you reboot you’ll see exactly that output. To fix it, login to the shell and mount your root on /new_root, and ctrl-d to continue the boot (from memory it has a message telling you to do that anyway). When your system boots you can fix fstab and rebuild initrd. Its reversable, but maybe test on a machine you dont care about to be safe :)

          • Synthead@lemmy.world
            link
            fedilink
            English
            arrow-up
            3
            ·
            1 year ago

            Oh interesting! I suppose I have just been very careful with /etc/fstab and I haven’t seen systemd fail this way. TIL! Thanks for letting me know!