Externer lokaler Speicher kann nicht eingebunden werden

Hallo zusammen,
ich bin gerade etwas am Verzweifeln. Seit mehreren Wochen und etlichen intensiven Tagen der Suche nach einer Lösung wende ich mich nun an dieses Hilfeforum. Ich weiß, das Thema ist alles andere als neu und wurde hier und auch netzweit schon mehrmals besprochen, für mich leider ohne Erfolgsergebnis. Ob es an den geringen Linux- oder Englischkenntnissen liegt, lasse ich mal dahingestellt. Ich erhoffe mir deshalb hier von erfahrenen Linux-Nutzern und Nextcloud-Profis wie @JimmyKater eine Hilfestellung für einen ambitionierten Heimanwender mit geringen Kenntnissen. - Ich bin ein Linux-Neuling und komme mit folgendem Problem/Vorhaben nicht weiter:

Ich versuche inzwischen schon seit geraumer Zeit eine externe Festplatte an meine Nextcloud (Vers. 27.0.1), die unter Docker auf Ubuntu Server 22.04 LTS auf einem ThinClient mit 512 GB M.2 SSD im Heimnetz läuft, einzubinden, bedauerlicherweise ohne jeglichen Erfolg. Die Nextcloud wurde mittels Portainer Stack erstellt. Das Volume “/home/sts/portainer/nextcloud” wird im Container auf “/var/www/html” gemappt. Als Datenbank habe ich Postgres verwendet. Ich möchte mein Dateisystem etwas revolutionieren und mit gänzlich sauber neu organisieren. Bislang warten sämtliche Daten noch, auf einem NAS geparkt, bis sie ins neue System einziehen dürfen. :wink:

Mit der App “Externer Speicher” habe ich es geschafft, einen entfernten Ordner via WebDav, sowie einen anderen mittels FTP einzubinden - jedoch die USB-Festplatte (lokal) bekomme ich einfach nicht in die Nextcloud. Auch habe ich einen Beitrag hier im Forum gelesen, wo jemand dasselbe Problem zu haben schien; auch er hat am Ende jedoch keine andere Lösung gehabt als eine SMB-Freigabe über die Fritzbox zu meistern und so konnte leider auch jener Post nicht vollends zu einer adaptierbaren Lösung für meine Problemstellung führen.

Was bisher geschah:

Mountpunkt erstellt und Benutzer/Rechte zugeteilt:

mkdir /media/sts
chown www-data:www-data
chmod -R 0750 /media/sts

Der Ordner ist dann unter Linux auch sichtbar und beschreibbar. Via lsblk sehe ich den Mountpunkt und kann in das Verzeichnis rein. Mittels ls -al sieht es so aus, als wäre überall www-data als Nutzer und Gruppe für /media/sts.

Die externe Festplatte (2x M.2 1 TB RAID-Gehäuse) ist mit ext4 formatiert, partitioniert und funktioniert sonst einwandfrei.
In /etc/fstab setzte ich den Eintrag mit UUID="die-UUID-der-Platte" /media/sts ext4 defaults 0 0, die UUID las ich zuvor mit blkid aus. Anschließend hängte ich mit mount -a die Platte ein.

Leider bekomme ich im Backend der Nextcloud bei der externen Speicherverwaltung nur ein rotes Hexagon mit einem Ausrufezeichen darin ohne weitere Hilfestellung, auch nicht im Protokollbereich des Admins. Die anderen externen Speicher haben einen grünen Haken. - Ich habe an mehreren Stellen im Netz gelesen, dass es oftmals mit den Rechten Schwierigkeiten geben kann und hoffe nun auf einen Fingerzeig von einem Profi, um das Problem loszuwerden und meine externe SSD als erweiterten Datenspeicher nutzen zu können. Ich hätte eigentlich gerne alle Daten auf dem flotten externen Speicher und würde auch das Verschieben des “Data-Verzeichnisses” angehen, wenn ich durch meine bisherigen Fallstricke nicht so verunsichert wäre, dass ich mir das nun gar nicht mehr zutraue und die Cloud inzwischen wie ein rohes Ei von mir behandelt wird. Die Daten umfassen gerade ca. 52 GB auf dem internen M.2 SSD-Speicher. Mir wäre aber wohler, wenn ich alle Daten auf der externen Lösung hätte, um eine gewisse Ausfallsicherheit zu haben, bzw. die Platte im Notfall auch anderweitig ab- und anderswo anstöpseln zu können, im Falle eines selbst verursachten Nextcloud-Crashs. - Das traue ich mir zumindest zum jetzigen Kenntnisstand gerade noch zu. Ich hoffe, Euch ist dieses Problem nicht zu banal und habe soweit alle Infos eingearbeitet, die ich hatte und versucht, mir vorab selbst zu helfen. Doch bleibt mir jetzt nur noch die Bitte um eine Hilfestellung von den eingefleischten Linux-/Nextcloud-Nutzern!

Nextcloud Version: 27.0.1.2
Operating system: Ubuntu Server 22.04 LTS
Apache: 2.4.52
PHP version: 8.2.8

The issue you are facing:

Can´t get external storage “local” to work.

Is this the first time you’ve seen this error?: Y

Output Nextcloud log in Admin > Logging:

Leider kein Log in der Protokollsektion zum Thema.

Output config.php:


<?php
$CONFIG = array (
  'htaccess.RewriteBase' => '/',
  'memcache.local' => '\\OC\\Memcache\\APCu',
  'apps_paths' =>
  array (
    0 =>
    array (
      'path' => '/var/www/html/apps',
      'url' => '/apps',
      'writable' => false,
    ),
    1 =>
    array (
      'path' => '/var/www/html/custom_apps',
      'url' => '/custom_apps',
      'writable' => true,
    ),
  ),
  'instanceid' => 'ocl6rhb29f38',
  'passwordsalt' => '',
  'secret' => '',
  'trusted_domains' =>
  array (
    0 => '192.xxx.yyy.zzz',
  ),
  'datadirectory' => '/var/www/html/data',
  'dbtype' => 'pgsql',
  'version' => '27.0.1.2',
  'overwrite.cli.url' => 'http://192.xxx.yyy.zzz',
  'dbname' => 'nextcloud',
  'dbhost' => 'db',
  'dbport' => '',
  'dbtableprefix' => '',
  'dbuser' => '',
  'dbpassword' => '',
  'installed' => true,
  'mail_smtpmode' => 'smtp',
  'mail_sendmailmode' => 'smtp',
  'mail_from_address' => '',
  'mail_domain' => '',
  'mail_smtphost' => '',
  'mail_smtpport' => '',
  'mail_smtpsecure' => 'ssl',
  'mail_smtpauth' => 1,
  'mail_smtpname' => '',
  'mail_smtppassword' => '',
  'maintenance' => false,
  'theme' => '',
  'loglevel' => 2,
  'updater.secret' => '',
);

Ich hoffe jemand kann mir damit behilflich sein.
Danke im Voraus allerseits und beste Grüße.

Hi @1sts,

You’ve checked it with loglevel 0 (Debug) ?

best regards
sambilanet

https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/logging_configuration.html

Yes, I also ran it in debug and all other modes. Unfortunately no results. But thank you for your quick answer.
Kind regards,
Steffen

Ok, sorry for that.

What is the protocol to connect?

kind regards
sambilanet

Sorry, I don´t know what you mean with protocol

Hi,
it’s ok.
Which kind of external of external storage are you talking about?

I suspect that my initial post was somewhat unfavorable, as I misunderstood the template and you may not have noticed all my text (in German) within the fold-out “Support Intro” section. I’m sorry about that, I’ll try to edit the text later, but I’m not only new to the Linux world. This is my first forum post ever. And I am very glad that someone is trying to help me at all. Thank you!

Ne Deutsch hatte ich wirklich nicht gesehen, aber ist machbar :wink:

Hab heute gar keine Zeit aber kannst Du die Platte nicht mal “nur zum kurz testen” :warning: mit chmod -R 0777 /media/sts testen, und wenn Du was schreiben kannst bzw. der Fehler weg geht, schauen wer da schreibt um danach wieder chmod -R 0750 /media/sts zu setzen.

Und wenn das Problem trotzdem bestehen bleibt schaue ich mal morgen früh mit drauf , ohne was zu versprechen oder bis jetzt verstanden zu haben. :sweat_smile:

Das ist keine schöne Lösung aber ich hatte keine echte Zeit Dein Post zu lesen, das debuggen dauert wahrscheinlich, ich bin gerade auf dem Sprung und Du wüsstest schon mal grob die Richtung?

bis dahin :slight_smile:
sambilanet

Habe ich nun probiert, ohne wirkliches Ergebnis. Fehler bleibt bestehen. Ansonsten kann ich keine Änderung feststellen. Sorry, hatte vorher keine Zeit es zu testen. Danke für die Hilfe, dennoch.

Viele Grüße,
Steffen

Ok ?

Kannst Du so in den mount schreiben?:

sudo -u www-data touch /media/sts/bla

Ansonsonsten im nächsten Schritt die Platte mit einem anderen Gerät pe USB mounten, am besten gleiches OS, und schauen ob ich problemlos und sofort schreiben kann?Und dann mit Hilfe der folgenden Seite ansehen ob alles OK eingebunden ist.

VG
sambilanet

Ja, danke, das schreiben funktioniert. Deshalb zweifle ich ja inzwischen an mir selbst. Ich habe zwischendurch auch in Docker webmin installiert, da ich mit den Rechten via Terminal nicht so ganz sicher war und dort alles nochmal kontrolliert. Die Festplatte hatte ich auch bereits an einem anderen Ubuntu, gleiche Version aber nicht die Serverversion dran. Aber soviel ich verstanden habe, ist es eh das Gleiche nur eben ohne Desktopumgebung, etc. Auch dort funktioniert die Festplatte und läßt sich auch via ftp verwenden. - Ich habe noch einen Versuch unternommen, und habe versucht die Platte irgendwie über WebDav anzusprechen, damit ich die in die Nextcloud reinbekomme. (Andere entfernte Speicher nimmt diese ja über webdav und auf meinen NAS komme ich auch über ftp (oder ftps?) das weiß ich jetzt nicht mehr, da ich schon so viel versucht habe.) Ich kann mir kaum vorstellen, dass dafür niemand eine Lösung in der Schublade hat. Was ich sonst so innerhalb dieses Forums gelesen habe kommen doch eigentlich recht viele Tips und Informationen zusammen. - In meiner Vezweiflung habe ich nun sogar die Variante mit der fritzbox die als Notlösung aufgrund ausbleibender Lösungen gewählt wurde, versucht zu implementieren, aber leider auch ohne Erfolg und oder genaue Rückmeldung in den Logs.

Was mir allerdings inzwischen noch aufgefallen ist: während ich versuche den externen Speicher in der nextcloud-App einzubinden meldet mein Desktop-Syncer “keine ETag” (genau kann ich es leider grade nicht sagen, da ich erst wieder später am Tag an den Windows-Rechner komme. Leider konnte ich zu diesem Stichwort “ETag” nicht wirklich etwas finden, das ich verstanden hätte. Da gibt mir selbst der Wikipedia-Artikel zu wenig Aufschluß.

Schwirren sonst noch Ideen durch den Raum?

Danke!
Steffen

Sorry bin gerade leider knapp in der Zeit und kann nicht drauf schauen aber ich lass mal nen Link hier der eigentlich zum Problem passt :slight_smile:

VG

Danke für den Fingerzeig, ich habe dadurch nun schlußendlich die Möglichkeit aufgetan auch SMB als externen Storage zu wählen, da die Fehlermeldung des smbclient im Backend nun wenigstens behoben ist. Bei dieser Anwendung bin ich nun darauf aufmerksam geworden, dass ich bislang immer nur auf OS-Ebene die Befehle abgefeuert habe und nun erstmals in Portainer die Konsole genutzt wurde, um den php-smbclient installiert zu bekommen, dank Deinem Link.

Leider hat dies jedoch keine positive Auswirkung auf des Problem der USB Platte gehabt. Ich habe versucht in der Container-Console (nennt man die so?) mit lsblk mir die Mountpoints anzeigen zu lassen und festgestellt, dass im Container mein /media/sts gar nicht erscheint. Leider komme ich aber nun nach der Erstellung des Mountponts nicht weiter nach Folgendem:

mount /dev/sdb1 /media/sts
mount: /media/sts: permission denied.
       dmesg(1) may have more information after failed mount system call.

Ich kann mit dmesg so gar nichts anfangen und wenn ich dmesg(1) eingebe kommt:

syntax error near unexpected token `1'

mit dmesg -H
kommt

dmesg -H
dmesg: read kernel buffer failed: Operation not permitted

Wie bspw. komme ich an die dmesg heran, damit ich wenigstens den Fehler einsehen kann? Mir verliert sich leider die Spur, sobald ich an mehr als zwei Stellen Erläuterungen zu mir unbekannten Begriffen suche und ich komme nicht voran. Stagnation an diesem Punkt leider wieder einmal. - Irgendwelche weiteren Vorschläge?

Viele Grüße, Steffen

Ok, erstmal

mount
dmesg

mit:
permission denied

Du bist User root und/oder arbeitest mit sudo ?

Ja, wenn ich in Portainer die Konsole der nextcloud (des Containers ) aufrufe, bin ich automatisch als root angemeldet. Ist das unnormal? Ich kann in der dortigen Konsole allerdings auch nicht mit blkid die uuid der Platte herausfinden, die wird mir nämlich angemeckert, wenn ich mount -a in der Container-Konsole losschicke, weil lsblk keinen Mountpunkt anzeigt.

mount -a
mount: /media/sts: can't find UUID=eeb41a48-1cf0-497d-bd51-9f565880e.

Bin ja schon froh, dass ich als Anfänger nicht ganz alleine dastehe, aber wundere mich auch, dass Dir nicht noch jemand unter die Arme greift. Bin ich irgendwas falsch angegangen bei meinem Eingangsposting?
Vielleicht wird es ja etwas übers Wochenende, da kann ich auch mal schneller reagieren, hoffentlich.

Danke vielmals @sambilanet !
Viele Grüße,
Steffen

:thinking: Jetzt wird es seltsam … Ich habe nun einfach mal versucht per SMB einen externen Speicher einzubinden, doch leider auch wieder ohne Erfolg, dann wollte ich schon aufgeben und dachte, ok, jetzt versuche ich es einfach noch ein letztes Mal vorm Ausschalten. Und siehe da, plötzlich lässt sich der lokale Speicher einbinden und bekommt auch einen grünen Kreis mit Häkchen. Ich sehe den Ordner jetzt auch in der Dateien-App und konnte einmalig eine Bilddatei hochladen. Als ich dann nochmal über das Seitenleistenmenü kontrollieren wollte, ob der Speicher, den ich ja jetzt schon seit Wochen versuche einzubinden, wirklich vorhanden ist und funktioniert … Fehlanzeige. Ich klicke auf den Ordner und sehe für eine Sekunde die Bilddatei, die ich hochgeladen habe, dann bin ich aber plötzlich eine Hierarchieebene höher, zumindest sehe ich alle Ordner dieser. Im Pfad am oberen Rand bin ich allerdings scheinbar in “sts”. Dort sehe ich dann aber auch den Ordner “sts”, kann ihn aber nicht mehr betreten und wenn ich mit der Konsole ins Verzeichnis “/media/sts” schaue, ist das Verzeichnis leer. - Was nun? Bessert das bereits etwas an meiner Situation? Darf ich mich auf einen baldigen Erfolg vorfreuen? :grinning:

Und jetzt gibt es endlich mal etwas im Logbereich zu sehen. Musste dazu aber auf “warning” stellen, mit “debug” und “info” wird weiterhin nichts angezeigt.

[no app in context] Warnung: OCP\Files\StorageAuthException: Storage unauthorized.  at <<closure>>

 0. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 196
    OCA\Files_External\Lib\Storage\SMB->throwUnavailable(["Icewind\\SMB\\ ... "])
 1. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 352
    OCA\Files_External\Lib\Storage\SMB->getFileInfo("/")
 2. /var/www/html/lib/private/Files/Storage/Common.php line 465
    OCA\Files_External\Lib\Storage\SMB->stat("")
 3. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 733
    OC\Files\Storage\Common->test()
 4. /var/www/html/apps/files_external/lib/MountConfig.php line 131
    OCA\Files_External\Lib\Storage\SMB->test("*** sensitive parameters replaced ***", "*** sensitive parameters replaced ***")
 5. /var/www/html/apps/files_external/lib/Controller/StoragesController.php line 287
    OCA\Files_External\MountConfig::getBackendStatus("*** sensitive parameters replaced ***")
 6. /var/www/html/apps/files_external/lib/Controller/GlobalStoragesController.php line 201
    OCA\Files_External\Controller\StoragesController->updateStorageStatus("*** sensitive parameters replaced ***")
 7. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 230
    OCA\Files_External\Controller\GlobalStoragesController->update("*** sensitive parameters replaced ***")
 8. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 137
    OC\AppFramework\Http\Dispatcher->executeController(["OCA\\Files_Ext ... "], "update")
 9. /var/www/html/lib/private/AppFramework/App.php line 183
    OC\AppFramework\Http\Dispatcher->dispatch(["OCA\\Files_Ext ... "], "update")
10. /var/www/html/lib/private/Route/Router.php line 315
    OC\AppFramework\App::main("OCA\\Files_Exte ... r", "update", ["OC\\AppFramewo ... "], ["49","files_ext ... "])
11. /var/www/html/lib/base.php line 1071
    OC\Route\Router->match("/apps/files_external/globalstorages/49")
12. /var/www/html/index.php line 36
    OC::handleRequest()

Caused by:

Icewind\SMB\Exception\ConnectionRefusedException:  at <<closure>>

 0. /var/www/html/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php line 114
    Icewind\SMB\Wrapped\Connection->clearTillPrompt()
 1. /var/www/html/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php line 128
    Icewind\SMB\Wrapped\Share->getConnection()
 2. /var/www/html/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php line 457
    Icewind\SMB\Wrapped\Share->connect()
 3. /var/www/html/apps/files_external/3rdparty/icewind/smb/src/Wrapped/Share.php line 207
    Icewind\SMB\Wrapped\Share->execute("allinfo \"\"")
 4. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 191
    Icewind\SMB\Wrapped\Share->stat("/")
 5. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 352
    OCA\Files_External\Lib\Storage\SMB->getFileInfo("/")
 6. /var/www/html/lib/private/Files/Storage/Common.php line 465
    OCA\Files_External\Lib\Storage\SMB->stat("")
 7. /var/www/html/apps/files_external/lib/Lib/Storage/SMB.php line 733
    OC\Files\Storage\Common->test()
 8. /var/www/html/apps/files_external/lib/MountConfig.php line 131
    OCA\Files_External\Lib\Storage\SMB->test("*** sensitive parameters replaced ***", "*** sensitive parameters replaced ***")
 9. /var/www/html/apps/files_external/lib/Controller/StoragesController.php line 287
    OCA\Files_External\MountConfig::getBackendStatus("*** sensitive parameters replaced ***")
10. /var/www/html/apps/files_external/lib/Controller/GlobalStoragesController.php line 201
    OCA\Files_External\Controller\StoragesController->updateStorageStatus("*** sensitive parameters replaced ***")
11. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 230
    OCA\Files_External\Controller\GlobalStoragesController->update("*** sensitive parameters replaced ***")
12. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 137
    OC\AppFramework\Http\Dispatcher->executeController(["OCA\\Files_Ext ... "], "update")
13. /var/www/html/lib/private/AppFramework/App.php line 183
    OC\AppFramework\Http\Dispatcher->dispatch(["OCA\\Files_Ext ... "], "update")
14. /var/www/html/lib/private/Route/Router.php line 315
    OC\AppFramework\App::main("OCA\\Files_Exte ... r", "update", ["OC\\AppFramewo ... "], ["49","files_ext ... "])
15. /var/www/html/lib/base.php line 1071
    OC\Route\Router->match("/apps/files_external/globalstorages/49")
16. /var/www/html/index.php line 36
    OC::handleRequest()

PUT /apps/files_external/globalstorages/49
from 192.168.xxx.yyy by zzz at 2024-01-25T21:43:58+00:00

Ok, also ich habe nun nochmal etwas herumprobiert und auch im Internet gesucht, kann das Problem allerdings wohl nicht suchmaschinengerecht benennen.

Ich konnte das Bild, welches ich gestern zu Testzwecken hochgeladen hatte, ja vorerst nicht via Konsole sehen, das ist nun nicht mehr der Fall. Zumindest nicht in der Portainer-Konsole. In der OS-Konsole ist die Datei jedoch weiterhin nicht zu sehen. Hingegen ist der Mountpoint “/media/sts” in der OS-Konsole zu sehen, aber in Portainer nicht. Jetzt verstehe ich es langsam gar nicht mehr welche Konsole hier wofür zuständig ist. - Aber wenn ich dennoch so optimistisch sein darf, ist das ja schonmal ein Weiterkommen, dass die Festplatte nun überhaupt im Backend angezeigt wird und mit einem grünen Haken versehen ist.
Das Verzeichnis wird mir in den Dateien (im Backend) angezeigt, läßt sich aber nicht betreten (bei 19 von 20 Versuchen).

Ich würde mich sehr freuen, wenn mir noch jemand einen zielführenden Hinweis geben könnte, oder auch nur ein Stichwort hinwerfen, in welche Richtung ich nun weitersuchen könnte, damit es doch noch etwas wird.

Danke,
Steffen

Also gut, nun ist ohne großes Zutun (ich habe lediglich ein Kernel Update und reboot gemacht) der Ordner im Backend plötzlich erreichbar. Allerdings werden geschriebene Daten, wenn ich mit der Konsole innerhalb von Linux in den Ordner des Mountpoints navigiere nicht gelistet. In Portainer hingegen sind die Dateien zu sehen, jedoch mit lsblk der Mountpoint nicht. - Bevor ich jetzt all meine Daten diesem Ordner anvertraue, wollte ich nochmals fragen, was ich noch tun kann, damit ich weitestgehend sicher bin, dass da nun nichts quer oder gar verloren geht?

Hi,
sorry bin gerade eingebunden. An erster Stelle IMMER ein Backup. Auch auf das Wochenende spekulierend würde ich vorschlagen kurz und bündig den aktuellen Stand zusammen zu fassen. Mit allen aktuellen Infos die zum Debuggen relevant sein könnten . Ich gehe jetzt gerade dringend los aber würde mir das später anschauen.

Hi,

Der Logeintrag und Ähnlichkeiten mit:

Icewind\SMB\Exception\ConnectionRefusedException

taucht hier auf:

Schau mal rein, dazu war auf jedenfall ein Bug dokumentiert.
VG