Installed 5.5.0 on secondary NAS

And I’m having some problems from the start, rockstor-pre.service fails here:

× rockstor-pre.service - Tasks required prior to starting Rockstor
Loaded: loaded (/usr/lib/systemd/system/rockstor-pre.service; disabled; preset: disabled)
Active: failed (Result: exit-code) since Wed 2026-03-25 09:29:59 EET; 2min 57s ago
Process: 23176 ExecStartPre=/usr/bin/gpg --quick-generate-key --batch --passphrase rockstor@localhost (code=exited, status=2)
Process: 23177 ExecStartPre=/usr/bin/pass init rockstor@localhost (code=exited, status=0/SUCCESS)
Process: 23208 ExecStartPre=/usr/bin/pass rename --force python-keyring/rockstor/SECRET_KEY python-keyring/rockstor/SECRET_KEY_FALLBACK (code=exited, status=1/FAILURE)
Process: 23213 ExecStartPre=/usr/bin/pass generate --no-symbols --force python-keyring/rockstor/SECRET_KEY 100 (code=exited, status=1/FAILURE)
CPU: 185ms

Mar 25 09:29:58 offsite-nas systemd[1]: Starting Tasks required prior to starting Rockstor…
Mar 25 09:29:59 offsite-nas systemd[1]: rockstor-pre.service: Control process exited, code=exited, status=1/FAILURE
Mar 25 09:29:59 offsite-nas systemd[1]: rockstor-pre.service: Failed with result ‘exit-code’.
Mar 25 09:29:59 offsite-nas systemd[1]: Failed to start Tasks required prior to starting Rockstor.

@Jorma_Tuomainen hello again. I don’t have a resolution for you, but just wanted to clarify - this is an installation from scratch, correct?

No, stupidly I just upgraded :slight_smile:

So there are some steps probably missing :slight_smile:

So figuring out it was a key error I just deleted the root’s .gnupg and I get little further:

offsite-nas:/opt/rockstor # systemctl status rockstor-pre -l --no-page
× rockstor-pre.service - Tasks required prior to starting Rockstor
     Loaded: loaded (/usr/lib/systemd/system/rockstor-pre.service; disabled; preset: disabled)
     Active: failed (Result: exit-code) since Fri 2026-03-27 14:41:35 EET; 1min 9s ago
    Process: 32582 ExecStartPre=/usr/bin/gpg --quick-generate-key --batch --passphrase  rockstor@localhost (code=exited, status=0/SUCCESS)
    Process: 32590 ExecStartPre=/usr/bin/pass init rockstor@localhost (code=exited, status=0/SUCCESS)
    Process: 32652 ExecStartPre=/usr/bin/pass rename --force python-keyring/rockstor/SECRET_KEY python-keyring/rockstor/SECRET_KEY_FALLBACK (code=exited, status=0/SUCCESS)
    Process: 32692 ExecStartPre=/usr/bin/pass generate --no-symbols --force python-keyring/rockstor/SECRET_KEY 100 (code=exited, status=0/SUCCESS)
    Process: 32708 ExecStartPre=/usr/bin/rpm --erase gpg-pubkey-5f043187 (code=exited, status=0/SUCCESS)
    Process: 32709 ExecStartPre=/usr/bin/rpm --import /opt/rockstor/conf/ROCKSTOR-GPG-KEY (code=exited, status=0/SUCCESS)
    Process: 32710 ExecStart=/usr/local/bin/poetry run initrock (code=exited, status=1/FAILURE)
   Main PID: 32710 (code=exited, status=1/FAILURE)
        CPU: 3.051s

Mar 27 14:41:31 offsite-nas systemd[1]: Starting Tasks required prior to starting Rockstor...
Mar 27 14:41:33 offsite-nas [RPM][32708]: Transaction ID 69c67afd started
Mar 27 14:41:33 offsite-nas [RPM][32708]: erase gpg-pubkey-5f043187-68331efe: success
Mar 27 14:41:33 offsite-nas [RPM][32708]: erase gpg-pubkey-5f043187-68331efe: success
Mar 27 14:41:33 offsite-nas [RPM][32708]: Transaction ID 69c67afd finished: 0
Mar 27 14:41:35 offsite-nas systemd[1]: rockstor-pre.service: Main process exited, code=exited, status=1/FAILURE
Mar 27 14:41:35 offsite-nas systemd[1]: rockstor-pre.service: Failed with result 'exit-code'.
Mar 27 14:41:35 offsite-nas systemd[1]: Failed to start Tasks required prior to starting Rockstor.
Mar 27 14:41:35 offsite-nas systemd[1]: rockstor-pre.service: Consumed 3.051s CPU time.

then when I try manually run that:

offsite-nas:/opt/rockstor # /usr/local/bin/poetry run initrock
gpg: public key decryption failed: No secret key
gpg: decryption failed: No secret key
Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib64/python3.11/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “”, line 1204, in _gcd_import
File “”, line 1176, in _find_and_load
File “”, line 1126, in _find_and_load_unlocked
File “”, line 241, in _call_with_frames_removed
File “”, line 1204, in _gcd_import
File “”, line 1176, in _find_and_load
File “”, line 1147, in _find_and_load_unlocked
File “”, line 690, in _load_unlocked
File “”, line 940, in exec_module
File “”, line 241, in _call_with_frames_removed
File “/opt/rockstor/src/rockstor/scripts/init.py”, line 23, in
django.setup()
File “/opt/rockstor/.venv/lib/python3.11/site-packages/django/init.py”, line 19, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/rockstor/.venv/lib/python3.11/site-packages/django/conf/init.py”, line 102, in getattr
self._setup(name)
File “/opt/rockstor/.venv/lib/python3.11/site-packages/django/conf/init.py”, line 89, in _setup
self._wrapped = Settings(settings_module)
^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/rockstor/.venv/lib/python3.11/site-packages/django/conf/init.py”, line 217, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/importlib/init.py”, line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “”, line 1204, in _gcd_import
File “”, line 1176, in _find_and_load
File “”, line 1147, in _find_and_load_unlocked
File “”, line 690, in _load_unlocked
File “”, line 940, in exec_module
File “”, line 241, in _call_with_frames_removed
File “/opt/rockstor/src/rockstor/settings.py”, line 122, in
secret_key_fallback = keyring.get_password(“rockstor”, “SECRET_KEY_FALLBACK”)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/rockstor/.venv/lib/python3.11/site-packages/keyring/core.py”, line 63, in get_password
return get_keyring().get_password(service_name, username)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/opt/rockstor/.venv/lib/python3.11/site-packages/keyring_pass/init.py”, line 183, in get_password
ret = command(
^^^^^^^^
File “/opt/rockstor/.venv/lib/python3.11/site-packages/keyring_pass/init.py”, line 26, in command
return subprocess.check_output(cmd, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/subprocess.py”, line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/lib64/python3.11/subprocess.py”, line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command ‘[‘pass’, ‘show’, ‘python-keyring/rockstor/SECRET_KEY_FALLBACK’]’ returned non-zero exit status 2.

So this seems to be the current problem on init.

offsite-nas:/opt/rockstor # pass show python-keyring/rockstor/SECRET_KEY_FALLBACK
gpg: public key decryption failed: No secret key
gpg: decryption failed: No secret key

3 Likes

@Jorma_Tuomainen Hello again, and thanks for the feedback re your investigations.

Your initial failure may have been related to a relatively short-lived upstream issue with PGP/GPG. Take a look at the following issue - now closed by the upstream updates as detailed in the issue later on in the discussion.

Your specific problem may now be different due your main key wipe intervention. But take a look at that issues comments and conclusions. You may just have to update as per the details there to ensure you have the upstream GPG fix indicated. Then let rockstor-pre.service re-establish all that is needed re keys etc.

Hope that helps.

2 Likes

Used the workaround, after deleting the client key and running bootstrap it started and mounted the pools etc.

4 Likes