Tôi đang thử nghiệm các tùy chọn gắn kết cho một chương trình tôi đang viết. Tôi đang chạy Linux Mageia 2.
Tôi đã thêm dòng sau vào /etc/fstab
/dev/sr0 /mem auto user,noauto, 0 0
và tôi đã xóa tất cả các mục khác liên quan đến /dev/sr0
thiết bị cho ổ đĩa DVD của tôi.
Sau đó, hoạt động như người dùng bình thường, tôi có thể thành công
$ mount /dev/sr0
nhưng sau đó tôi nhận được thông báo lỗi ("Chỉ root mới có thể ...") cho
$ umount /dev/sr0
Tất nhiên, thiết bị không bận: Tôi không làm gì giữa mount và umount.
Đã thêm sau khi giải : Nếu bạn chỉ quan tâm đến việc giải quyết vấn đề đó, bạn có thể bỏ qua phần còn lại của câu hỏi và đi thẳng đến câu trả lời được chấp nhận. Phần còn lại của câu hỏi là về công việc của tôi để tìm một giải pháp hoặc tài liệu tốt hơn cho vấn đề. Tuy nhiên, có một phần sau khi chết ở cuối câu hỏi bổ sung cho câu trả lời bằng nhận xét của riêng tôi.
Quyền sở hữu của các tập tin:
$ 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/
Và tôi là thành viên của nhóm "cdrom"
Tôi có cùng một vấn đề khi gắn một hình ảnh hệ thống tập tin với một thiết bị vòng lặp.
Tuy nhiên, mọi thứ hoạt động tốt khi tôi thay thế "người dùng" bằng tùy chọn "người dùng", điều này dường như cho thấy hệ thống bị nhầm lẫn khi nhớ ai đã gắn hệ thống tệp.
Câu trả lời đầu tiên của Rahul Patil không mang lại cái nhìn sâu sắc hơn vì về cơ bản nó tương đương với những gì tôi đã sử dụng, nếu sự hiểu biết của tôi về thủ tục vượt qua là chính xác. Tuy nhiên, điều đó khiến tôi phải suy nghĩ thêm về quá trình này (do đó, một upvote) và để biết thêm chi tiết. Điều này thậm chí còn được hỗ trợ nhiều hơn bởi bình luận của Hauke Laging. Theo tôi hiểu, cuối cùng, lệnh umount lấy đối số của nó (một thiết bị hoặc điểm gắn kết) và cố gắng xác định các mục có thể áp dụng /etc/mtab
và sau đó kiểm tra /etc/fstab
xem liệu nó có thể thực hiện yêu cầu hay không.
Theo trang man cho mount (8) , tên của người dùng gắn [nên] được ghi vào mtab để anh ta có thể ngắt kết nối lại hệ thống tập tin.
Khi tôi kiểm tra /etc/mtab
sau khi lắp, không có thông tin nào được viết mà tôi có thể tìm thấy. Tôi không biết làm thế nào nó được lưu trữ và nó sẽ trông như thế nào.
Do đó, vấn đề là thực sự với mount
chứ không phải với umount
.
Để chắc chắn rằng vấn đề không phải là một /etc/fstab
mục khác được sử dụng để gắn kết (điều này sẽ giải thích sự thiếu hiểu biết của tùy chọn "người dùng"), tôi đã xóa tất cả các mục khác trong /etc/fstab
, chỉ giữ lại một dòng duy nhất ở đầu câu hỏi của tôi. Sau đó, tôi lặp lại trình tự gắn kết, không may với kết quả tương tự.
$ 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 đã yêu cầu ls -l /etc/mtab
, điều mà tôi nghĩ là có lỗi và anh ta thực sự đang yêu cầu cat /etc/mtab
. Nhưng dù sao thì tôi cũng đã làm được ...
$ 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
Thông tin cuối cùng này làm tôi ngạc nhiên. Mặc dù về cơ bản tôi là người dùng duy nhất trên máy tính đó, tôi không thấy lý do tại sao tệp này nên thuộc về tôi hoặc bất kỳ người dùng nào khác ngoài chính root. Rất cám ơn Hauke, nhưng tại sao bạn lại hỏi câu hỏi đó?
Thật ra tập tin không thuộc về tôi. Tôi đoán nó phải là một tập tin ảo. Tôi đã lặp lại yêu cầu là "người bạn" của người dùng, và sau đó là "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
Tôi sẽ hoan nghênh bất kỳ đề xuất nào về vấn đề có thể xảy ra hoặc để thử nghiệm.
Cảm ơn
Hậu kỳ : đây là một số nhận xét cuối cùng sau khi vấn đề được giải quyết bởi Hauke Laging.
Tôi theo dõi trên web lời dẫn của lời giải thích của Hauke.
Rõ ràng đây là một vấn đề cũ. Nó được giải thích trong một tài liệu cũ từ tháng 10 năm 2000 , đề cập đến một số vấn đề với các lựa chọn khác, nhưng không user
. Hy vọng rằng một số vấn đề độ tin cậy kernel hiện đã được sửa chữa.
Vấn đề được đề cập ngắn gọn trong phần lỗi của mount
trang man
nhưng không đủ chi tiết, đặc biệt là liên quan đến các thiết lập và hiệu ứng thay thế trên các tùy chọn.
Tuy nhiên, bị mất trong trang người đàn ông rất dài đó là thông tin sau:
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**.
Chắc chắn sẽ rất hữu ích khi có một gợi ý về điều này trong đó tùy chọn user
được mô tả, đó là nơi đầu tiên tôi nhìn.
mount
sau khi thiết bị đã được gắn là gì? Và ls -l /etc/mtab
?
ls -l /etc/mtab
?
/proc/self
chỉ là một liên kết đến /proc/$PID
quá trình gọi. Về vấn đề trang nam: Hãy thoải mái cải thiện văn bản. Tôi chắc chắn những người duy trì sẽ được hạnh phúc.