mkdir: Verzeichnis kann nicht erstellt werden: Funktion nicht implementiert

9

Ich bin im College und muss meine cs-Hausaufgaben von einem Schul-Linux-Computer einreichen, aber ich mache die Hausaufgaben gerne auf meinem Laptop (Mac). Anstatt meine Dateien jedes Mal zu kopieren und dann zu senden, habe ich beschlossen, ein Skript zu erstellen, um dies mit scpund für mich zu tun ssh. Als ich mein Skript zum ersten Mal getestet habe, hat der scpBefehl das Verzeichnis hw3auf dem anderen Computer erstellt. Beim nächsten Test wurde das Verzeichnis erstellt hw4. In beiden Verzeichnissen befanden sich meine Programmdateien. Da beide Verzeichnisse nur zum Testen erstellt wurden, habe ich beide mit gelöscht rm -r. Aber hier tritt das Problem auf.

Beim späteren Testen meines Skripts und anderen Debugging-Vorgängen stellte ich fest, dass ich jetzt keine Datei oder keinen Ordner mit dem Namen hw3 oder hw4 auf dem anderen Computer erstellen kann, während ich über verbunden bin ssh. Ich kann einen Ordner mit einem anderen Namen erstellen, nur nicht hw3oder hw4. Ich kann sie nicht über machen mkdir, mv, cp, oder berühren, mich zu machen scheint , dass etwas nicht stimmt mit dem Dateisystem ist. Allerdings kann ich machen hw3und hw4Dateien in dem übergeordneten Verzeichnis. Niemand, mit dem ich gesprochen habe, weiß, was das ist, und hat es noch nie gesehen, und das Googeln des Problems hat keine Ergebnisse erbracht.

An meiner Schule gibt es viele verschiedene Maschinen, auf denen ich mich anmelden kann, und ich habe mehrere ausprobiert, aber das Problem besteht weiterhin bei allen. Dies ist sinnvoll, da ich von einem Netzwerklaufwerk aus arbeite (SDRIVE im Pfad). Um das Skript zum Laufen zu bringen, habe ich die Problemumgehung verwendet, indem ich es nur erstellt habe, hww#anstatt es zu erstellen hw#, aber ich würde trotzdem gerne wissen, was los ist und wie es behoben werden kann.

Dies ist meine Terminalausgabe, wenn ich mich über sshund meine Befehle anmelde.

Last login: Tue Mar  3 11:40:18 2015 from r03ane3md.device.mst.edu
You are currenly one of 7 users on this host!
ane3md@rc07xcs213:~$ cd SDRIVE/cs1510
ane3md@rc07xcs213:~/SDRIVE/cs1510$ ls -l
total 0
drwxr-xr-x 2 ane3md mst_users 0 Mar  3 12:01 hw1
drwxr-xr-x 2 ane3md mst_users 0 Feb 21 21:37 hw2
drwxr-xr-x 2 ane3md mst_users 0 Mar  3 11:59 hww3
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mkdir hw3
mkdir: cannot create directory ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ touch hw3
touch: cannot touch ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$ mv hww3 hw3
mv: failed to access ‘hw3’: Function not implemented
ane3md@rc07xcs213:~/SDRIVE/cs1510$

BEARBEITEN: Wenn Sie "stat -f ~ / SDRIVE" ausführen, wird wie gewünscht Folgendes ausgegeben:

ane3md@rc07xcs213:~$ stat -f ~/SDRIVE
  File: "/usr/local/home/ane3md/SDRIVE"
    ID: 0        Namelen: 4096    Type: fuseblk
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 0          Free: 0          Available: 0
Inodes: Total: 314572031  Free: 66717154

EDIT - WORKAROUND: Ich habe ein bisschen geschnüffelt und festgestellt, dass unsere Schule dfshack (Sie können es auf github googeln) verwendet, um Windows- und Unix / Linux-Dateisysteme zu verknüpfen. Es wurde von einem Schüler hier erstellt, daher hat es natürlich Fehler. Anscheinend habe ich einen von ihnen gefunden. Ich habe auch einige weitere Tests durchgeführt und festgestellt, dass der folgende Prozess funktioniert, damit ich die Verzeichnisse erneut erstellen kann. Ich habe einen Mac, daher bin ich mir nicht sicher, ob dies für Windows funktionieren würde.

  1. Ordnen Sie das Netzwerklaufwerk Mac OS zu, damit Sie über den Finder darauf zugreifen können
  2. Erstellen Sie über den Finder das Verzeichnis, das zuvor nicht erstellt werden konnte.
  3. Stellen Sie über ssh eine Verbindung zum Remote-Computer her und navigieren Sie zu dem Verzeichnis, in dem Sie die Ordner oder Dateien nicht erstellen konnten.
  4. Art mv dirCreatedViaFinder newName
  5. Sie können jetzt Verzeichnisse und Dateien mit dem Namen erstellen, die zuvor nicht erstellt werden konnten. Es gibt jedoch einen Nachteil. Wenn Sie dies tun rm -r newName, können Sie jetzt keine newNameDateien und Ordner erstellen . Ich denke, das ganze Problem wird durch das Entfernen von Verzeichnissen verursacht.
Adam Evans
quelle

Antworten:

11

Das ~/SDRIVEVerzeichnis wird als Sicherungsdateisystem bereitgestellt, was bedeutet, dass die Dateisystemoperationen von einem Userspace-Programm und nicht vom Kernel ausgeführt werden. Diese Fehler stammen aus der Dateisystemimplementierung, die alles Mögliche sein kann und wahrscheinlich eine Art Site-Custom-Software ist.

Dies ist eine dieser Zeiten, in denen Sie wahrscheinlich Ihre Sysadmins abhören und sie fragen müssen, was los ist. Man könnte vermuten, dass entweder etwas repariert werden muss, möglicherweise nur mit Ihrem Konto, oder dass dies eine seltsame interne Methode ist, um mit versehentlichem Löschen umzugehen.

Celada
quelle