Smartctl service does not start

For the past few days I got the following error message in the systemd boot log

Process nnnn (smartctl) of user 0 dumped core.
Here nnnn refers to the actual Process ID.

When I looked into the directory /var/lib/systemd/coredump/ sure enough there was a dump file core.smartctl.0.mmm.nnnn.yyyy.zst. Over here mmmm refers to a hexa decimal value. nnnn is the process id and yyyy is another numeric value.

When I checked the status of the service smartd.service it was not active and it was in unloaded state. I tried to set the loglevel to 5, rebuilt the grub.cfg file but still could not locate anything in the systemd boot that would help me to determine the cause of the issue.

How do I resolve this? How do I get the smartctl service to start normally during boot?

See if this section of Archwiki could help you to get more info on that dump:

https://wiki.archlinux.org/title/Core_dump#Managing_the_core_dump_files

You could investigate why the coredump happened, but a proper smartctl shouldn’t dump core ever. This program runs at a lot of places to monitor drives, and shouldn’t show an error like that.

I would uninstall and re-install smartmontools, and also look for hardware issues. Borderline hardware can cause the system to lock up when a drive is accessed. Maybe it is similar to your case. This goes beyond the drive to the controller and the cable.

So I checked the core dump as per the link provided by @cactux. The following is the output

$ coredumpctl info 1120
           PID: 1120 (smartctl)
           UID: 0 (root)
           GID: 0 (root)
        Signal: 6 (ABRT)
     Timestamp: Tue 2025-05-06 07:30:42 
  Command Line: /usr/sbin/smartctl --all --json=c /dev/sdb
    Executable: /usr/bin/smartctl
       Message: Process 1120 (smartctl) of user 0 dumped core.

So when I ran the command /usr/sbin/smartctl --all --json=c /dev/sdb I got the following error message

Smartctl open device: /dev/sdb failed: Permission denied.

So now the question is why at boot time is the bulk device /dev/sdb not readable by smartctl daemon?

Check first if the drive is SMART-supported and if it is, if SMART is enabled:

https://wiki.archlinux.org/title/S.M.A.R.T.#smartctl

You need to be “sudo”.

Running the command with sudo works. And the service smartctl also runs with the root user, i.e. the UID and GID is zero. So it should work at boot up time too. What can be the reason for this failling at boot?