No Gui, No SSH, No samba

Hello,
i got the message in the Gui that someting was wrong and i should download the log file. i did that. After that i did a reboot but the server starts nu rokstor does not. no gui, no ssh no nothing.

I have no problem installing Rocktor again but i do not want to format my disks…
below some error message from the logs. But i got many more…

[22/Apr/2022 15:04:08] ERROR [storageadmin.middleware:33] Exception occurred while processing a request. Path: /api/disks/scan method: POST
[22/Apr/2022 15:04:08] ERROR [storageadmin.middleware:34] FATAL: could not open relation mapping file “global/pg_filenode.map”: Permission denied
Traceback (most recent call last):
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/core/handlers/base.py”, line 132, in get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/views/decorators/csrf.py”, line 58, in wrapped_view
return view_func(*args, **kwargs)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/views/generic/base.py”, line 71, in view
return self.dispatch(request, *args, **kwargs)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 452, in dispatch
response = self.handle_exception(exc)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 440, in dispatch
self.initial(request, *args, **kwargs)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 354, in initial
self.perform_authentication(request)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/views.py”, line 292, in perform_authentication
request.user
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/request.py”, line 491, in getattribute
return super(Request, self).getattribute(attr)
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/request.py”, line 266, in user
self._authenticate()
File “/opt/rockstor/eggs/djangorestframework-3.1.1-py2.7.egg/rest_framework/request.py”, line 454, in _authenticate
user_auth_tuple = authenticator.authenticate(self)
File “/opt/rockstor/src/rockstor/rest_framework_custom/oauth_wrapper.py”, line 29, in authenticate
creds = super(RockstorOAuth2Authentication, self).authenticate(request)
File “/opt/rockstor/eggs/django_oauth_toolkit-0.9.0-py2.7.egg/oauth2_provider/ext/rest_framework/authentication.py”, line 18, in authenticate
valid, r = oauthlib_core.verify_request(request, scopes=[])
File “/opt/rockstor/eggs/django_oauth_toolkit-0.9.0-py2.7.egg/oauth2_provider/oauth2_backends.py”, line 155, in verify_request
valid, r = self.server.verify_request(uri, http_method, body, headers, scopes=scopes)
File “/opt/rockstor/eggs/oauthlib-1.0.1-py2.7.egg/oauthlib/oauth2/rfc6749/endpoints/base.py”, line 64, in wrapper
return f(endpoint, uri, *args, **kwargs)
File “/opt/rockstor/eggs/oauthlib-1.0.1-py2.7.egg/oauthlib/oauth2/rfc6749/endpoints/resource.py”, line 75, in verify_request
return token_type_handler.validate_request(request), request
File “/opt/rockstor/eggs/oauthlib-1.0.1-py2.7.egg/oauthlib/oauth2/rfc6749/tokens.py”, line 286, in validate_request
token, request.scopes, request)
File “/opt/rockstor/eggs/django_oauth_toolkit-0.9.0-py2.7.egg/oauth2_provider/oauth2_validators.py”, line 224, in validate_bearer_token
token=token)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/query.py”, line 328, in get
num = len(clone)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/query.py”, line 144, in len
self._fetch_all()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/query.py”, line 965, in _fetch_all
self._result_cache = list(self.iterator())
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/query.py”, line 238, in iterator
results = compiler.execute_sql()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/models/sql/compiler.py”, line 838, in execute_sql
cursor = self.connection.cursor()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/base/base.py”, line 164, in cursor
cursor = self.make_cursor(self._cursor())
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/base/base.py”, line 135, in _cursor
self.ensure_connection()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/base/base.py”, line 130, in ensure_connection
self.connect()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/utils.py”, line 98, in exit
six.reraise(dj_exc_type, dj_exc_value, traceback)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/base/base.py”, line 130, in ensure_connection
self.connect()
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/base/base.py”, line 119, in connect
self.connection = self.get_new_connection(conn_params)
File “/opt/rockstor/eggs/Django-1.8.16-py2.7.egg/django/db/backends/postgresql_psycopg2/base.py”, line 176, in get_new_connection
connection = Database.connect(**conn_params)
File “/opt/rockstor/eggs/psycopg2-2.7.4-py2.7-linux-x86_64.egg/psycopg2/init.py”, line 130, in connect
conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
OperationalError: FATAL: could not open relation mapping file “global/pg_filenode.map”: Permission denied

@R0yk3 Welcome to the Rockstor community.

You error messages, specifically:

and

Would suggest some kind of permissions issue.

What version of Rockstor are you experiencing this with, and have you recently used the system drive for a Rock-on. We did have an old failure on our v3 where we inadvertently exposed the “root” subvolume and some folks then used this for a Rock-on. The Rock-on then proceeded to change permissions breaking the entire system. The permissions error you see may have been caused by this. In our new v4 we no longer surface the equivalent of the entire system as a subvolume.

With regard to:

If all your important data is not on the system disk, but as is encouraged by the Web-UI, it’s on a data only pool, then you can simply import that exact same pool into a new install. This holds true for moving from v3 to v4 also.

We have a new HowTo on this v3 to v4 move if that is actually what you are looking at here:
Migrating from Legacy V3 to V4 “Built on openSUSE
https://rockstor.com/docs/howtos/v3_to_v4.html

Hope that helps.

2 Likes

Hello, Thanks for your reply,
I’m already at the latest install.
Is there a way to restore the backup from the cli?
I can access the commandline directly on the machine nog via ssh. But that is ok.
I can see the bckupfile in the opt directory. is there any way to use it from there. since i do not have a webui.

@R0yk3 Re:

Not that I’m aware of unfortunately. Thought it may be possible.

So if you can retrieve this config backup file from:
https://rockstor.com/docs/interface/system/config_backup.html
That is scp it from the Rockstor machine to your client machine. Then you will have it ready to upload to a fresh install and then apply it. Note however that you must first import your pool/pools before applying a config backup as then the shares referenced in the config backup exist. So:

  1. Retrieve the file (location is also noted in above doc)
  2. Reinstall but take great care in the selection of the system disk. You don’t want to be overwriting a data pool member.
  3. Import prior data pool/pools.
  4. Upload and and then apply the config backup.

By the way that config backup file is human readable. Although you may have to pop it in a json parser (although it’s not quite json but near enough to mostly be formatted to make for easier reading). As you risk restoring what may have wrecked the system privileges in the first place. Although this is very likely to be only a Rock-on. Still not sure what’s happened here unfortunately.

Hope that helps and let us know how it goes.

2 Likes