Ich experimentiere mit Montageoptionen für ein Programm, das ich schreibe. Ich verwende Linux Mageia 2.
Ich habe die folgende Zeile hinzugefügt /etc/fstab
/dev/sr0 /mem auto user,noauto, 0 0
und ich habe alle anderen Einträge entfernt, bei /dev/sr0
denen es sich um das Gerät für mein DVD-Laufwerk handelt.
Dann kann ich als normaler Benutzer erfolgreich handeln
$ mount /dev/sr0
aber ich bekomme dann eine fehlermeldung ("nur root kann ...") für
$ umount /dev/sr0
Natürlich ist das Gerät nicht beschäftigt: Ich mache nichts zwischen mount und umount.
Nach dem Lösen hinzugefügt : Wenn Sie nur an der Lösung dieses Problems interessiert sind, können Sie den Rest der Frage überspringen und direkt zur akzeptierten Antwort wechseln. Der Rest der Frage bezieht sich auf meine Arbeit, um eine Lösung zu finden oder das Problem besser zu dokumentieren. Ganz am Ende der Frage befindet sich jedoch ein Post-Mortem- Abschnitt, der die Antwort durch meine eigenen Bemerkungen ergänzt.
Eigentum an Dateien:
$ ls -ld /mem /dev/sr0
brw-rw----+ 1 root cdrom 11, 0 mai 14 01:01 /dev/sr0
drwxr-xr-x 12 root root 4096 janv. 21 22:34 /mem/
Und ich bin Mitglied der Gruppe "cdrom"
Ich habe das gleiche Problem beim Mounten eines Dateisystem-Images mit einem Loop-Gerät.
Alles funktioniert jedoch einwandfrei, wenn ich "Benutzer" durch die Option "Benutzer" ersetze, was darauf hinweist, dass das System verwirrt ist, wenn ich mich daran erinnere, wer das Dateisystem gemountet hat.
Die erste Antwort von Rahul Patil bringt keine weiteren Erkenntnisse, da sie im Wesentlichen dem entspricht, was ich verwendet habe, wenn mein Verständnis des Umounting-Verfahrens korrekt ist. Es hat mich jedoch dazu gebracht, weiter über diesen Prozess nachzudenken (daher eine Gegenstimme) und mehr Details zu erfahren. Dies wurde durch den Kommentar von Hauke Laging noch mehr unterstützt. Kurz gesagt, der Befehl umount nimmt zusammenfassend sein Argument (ein Gerät oder einen Einhängepunkt) und versucht, zutreffende Einträge in zu identifizieren /etc/mtab
und prüft dann, /etc/fstab
ob er die Anforderung ausführen kann.
Gemäß dem Manpage mount (8) , der Name des Montag Benutzers [sollte] geschrieben , so mtab , dass er wieder das Dateisystem aushängen kann.
Wenn ich /etc/mtab
nach der Montage überprüfe , werden keine solchen Informationen geschrieben, die ich finden kann. Ich weiß nicht, wie es gespeichert werden soll und wie es aussehen soll.
Daher ist das Problem mount
eher mit als mit umount
.
Um absolut sicher zu sein, dass das Problem nicht darin besteht, dass ein anderer /etc/fstab
Eintrag zum Mounten verwendet wird (was die Unkenntnis der Option "Benutzer" erklären würde), habe ich alle anderen Einträge in gelöscht /etc/fstab
und nur die einzelne Zeile am Anfang meiner Frage beibehalten. Dann wiederholte ich die Mount-Umount-Sequenz, leider mit dem gleichen Ergebnis.
$ grep sr0 /etc/mtab
/dev/sr0 /mem udf ro,nosuid,nodev,noexec,relatime,utf8 0 0
$ mount | grep sr0
/dev/sr0 on /mem type udf (ro,nosuid,nodev,noexec,relatime,utf8)
Hauke Laging fragte nach ls -l /etc/mtab
, was ich für einen Fehler hielt und nach dem er wirklich fragte cat /etc/mtab
. Aber ich habe es trotzdem getan ...
$ ls -l /etc/mtab
lrwxrwxrwx 1 root root 12 juin 25 2012 /etc/mtab -> /proc/mounts
$ ls -l /proc/mounts
lrwxrwxrwx 1 root root 11 mai 19 13:21 /proc/mounts -> self/mounts
$ ls -l /proc/self/mounts
-r--r--r-- 1 myself mygroup 0 mai 19 13:22 /proc/self/mounts
Diese letzte Information hat mich überrascht. Obwohl ich im Wesentlichen der einzige Benutzer auf diesem Computer bin, sehe ich keinen Grund, warum diese Datei mir oder einem anderen Benutzer als root selbst gehören sollte. Vielen Dank Hauke, aber warum hast du diese Frage gestellt?
Eigentlich gehört die Datei mir nicht. Ich denke, es muss eine virtuelle Datei sein. Ich wiederholte die Anfrage als Benutzer "Freund" und dann als "root":
$ ls -l /proc/self/mounts
-r--r--r-- 1 friend users 0 mai 19 14:10 /proc/self/mounts
# ls -l /proc/self/mounts
-r--r--r-- 1 root root 0 mai 19 14:10 /proc/self/mounts
Ich würde jeden Vorschlag begrüßen, was das Problem sein könnte, oder Experimente versuchen.
Vielen Dank
Post-mortem : Hier einige abschließende Bemerkungen, nachdem das Problem von Hauke Laging gelöst wurde.
Ich folgte im Internet der Erklärung von Hauke.
Anscheinend ist dies ein altes Problem. Es wird in einem alten Dokument vom Oktober 2000 erklärt , in dem einige Probleme mit anderen Optionen erwähnt werden, jedoch nicht user
. Hoffentlich sind einige der Probleme mit der Kernelzuverlässigkeit jetzt behoben.
Das Problem wird im Fehlerbereich der mount
Manpage kurz erwähnt,
jedoch nicht detailliert genug, insbesondere in Bezug auf alternative Setups und Auswirkungen auf Optionen.
In dieser sehr langen Manpage gehen jedoch die folgenden Informationen verloren:
When the proc filesystem is mounted (say at /proc), the files
/etc/mtab and /proc/mounts have very similar contents. **The
former has somewhat more information, such as the mount options
used**, but is not necessarily up-to-date (cf. the -n option
below). It is possible to replace /etc/mtab by a symbolic link to
/proc/mounts, and especially when you have very large numbers of
mounts things will be much faster with that symlink, but **some
information is lost that way, and in particular using the "user"
option will fail**.
Es wäre sicherlich nützlich gewesen, einen Hinweis darauf zu haben, wo die Option user
beschrieben wird, was der erste Ort ist, an dem ich gesucht habe.
mount
nach der Montage des Geräts? Undls -l /etc/mtab
?ls -l /etc/mtab
?/proc/self
ist nur ein Symlink zum/proc/$PID
aufrufenden Prozess. Über das Manpage-Problem: Sie können den Text jederzeit verbessern. Ich bin sicher, dass die Betreuer glücklich sein werden.Antworten:
Das Problem ist, dass Sie
/etc/mtab
keine Datei, sondern ein Symlink zu sind/proc/mounts
. Dies hat Vorteile, aber auch den Nachteil,user
der nicht funktioniert. Sie haben den Grund dafür bereits richtig erraten: "Das System ist verwirrt, wenn Sie sich daran erinnern, wer das Dateisystem gemountet hat". Diese Informationen sind geschriebenmtab
, können in Ihrem Fall jedoch nicht dort geschrieben werden. Der Kernel kümmert sich nicht um Benutzer-Mounts (dies ist nicht einmal bekannt) (dies ist eine Userspace-Funktion). Somit ist diese Information nicht in enthalten/proc/mounts
.Mach das:
umount
als Benutzer sollte arbeiten, nachdem Sie das Volume erneut gemountet haben.quelle
/dev/sr0
Verwenden Sie anstelle des Gerätenamens ( ) den Mount-Punkt (in Ihrem Fall ist der Mount-Punkt/mem
).Also einfach für Mount verwenden:
mount /mem
Zum Aufheben der Montage:
umount /mem
Ich habe getestet und arbeite auf meiner Seite, OS ist CentOS 5.8
quelle
user,noauto,
Änderung vonuser,noauto
von Ihrem fstab entfernen/etc/fstab
Eintrags, den ich vorgenommen habe, nachdem ich auf das Problem gestoßen bin ... das leider ohne Komma bestehen bleibt. Ihre Bemerkung erlaubte mir jedoch, auch einen anderen Eintrag in Stackexchange zu bereinigen, der meine Frage tatsächlich motivierte.