옵션 "user"는 마운트 해제가 아닌 마운트에 적용됩니다.

옵션 "user"는 마운트 해제가 아닌 마운트에 적용됩니다.

작성 중인 프로그램의 설치 옵션을 실험하고 있습니다. 저는 Linux Mageia 2를 실행하고 있습니다.

다음 줄을 추가했습니다./etc/fstab

/dev/sr0 /mem  auto user,noauto, 0 0

/dev/sr0DVD 드라이브 장치에 대한 다른 모든 항목을 삭제했습니다 .

그러면 일반 사용자로서 성공적으로

$ mount /dev/sr0

그런데 오류 메시지가 나타납니다("루트만...").

$ umount /dev/sr0

물론 장치는 사용 중이 아닙니다. 마운트와 마운트 해제 사이에 어떠한 작업도 수행하지 않습니다.

해결 후 추가:이 문제 해결에만 관심이 있는 경우 질문의 나머지 부분을 건너뛰고 허용된 답변으로 바로 이동할 수 있습니다. 나머지 질문은 해결책을 찾거나 문제를 더 잘 문서화하려는 나의 노력에 관한 것입니다. 그러나 하나가 있습니다검시질문의 마지막 부분은 내 의견으로 답변을 보완합니다.

파일 소유권:

$ 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/

나는 "cdrom" 그룹의 구성원입니다

루프 장치를 사용하여 파일 시스템 이미지를 마운트할 때도 동일한 문제가 발생했습니다.

그러나 "user"를 "users" 옵션으로 바꾸면 모든 것이 잘 작동합니다. 이는 파일 시스템을 마운트한 사람을 기억할 때 시스템이 혼란스러워지고 있음을 나타내는 것 같습니다.

Rahul Patil의 첫 번째 답변은 제거 프로세스에 대한 이해가 올바른 경우 기본적으로 제가 사용하는 답변과 동일하므로 추가 통찰력을 제공하지 않습니다. 하지만 이를 통해 프로세스(따라서 찬성)에 대해 더 깊이 생각하게 되었고 더 자세한 내용을 얻을 수 있게 되었습니다. Hauke ​​Laging의 리뷰는 이를 더욱 뒷받침합니다. 내가 이해하는 바에 따르면 umount 명령은 해당 인수(장치 또는 마운트 지점)를 가져와 적용 가능한 항목을 식별한 /etc/mtab다음 /etc/fstab요청을 수행할 수 있는지 확인합니다.

~에 따르면mount(8) 매뉴얼 페이지,설치 사용자 이름[해야 한다]파일 시스템을 다시 마운트 해제할 수 있도록 mtab에 기록합니다. 설치 후 확인해 보니 /etc/mtab그런 정보는 발견되지 않았습니다. 어떻게 보관해야 하는지, 어떤 모습이어야 하는지 모르겠습니다.

따라서 질문은 실제로 AND mount가 아닌 AND 입니다 umount.

다른 항목("사용자" 옵션에 대한 무지를 설명하는)을 사용하여 설치하는 데 문제가 없는지 확실히 확인하기 위해 문제 시작 부분의 줄을 제외한 /etc/fstab다른 모든 항목을 제거했습니다 . /etc/fstab그런 다음 설치-제거 순서를 반복했지만 불행하게도 동일한 결과를 얻었습니다.

$ 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이 요청했는데 ls -l /etc/mtab, 내 생각엔 실수였다고 생각하는데, 실제로 요청한 거야 cat /etc/mtab. 하지만 그래도 해냈어...

$ 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

마지막 메시지는 나를 놀라게 했다. 본질적으로 나는 이 컴퓨터의 유일한 사용자이지만 이 파일이 나 또는 루트 자체 이외의 다른 사용자에게 속해야 할 이유가 없습니다. Hauke님 정말 감사합니다. 그런데 왜 이런 질문을 하시나요?

사실 그 파일은 내 것이 아닙니다. 아무래도 더미 파일인 것 같아요. 사용자 "friend"로 요청을 반복한 다음 "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

문제가 무엇인지에 대한 제안이나 시도해 볼 실험을 환영합니다.

감사해요

검시: Hauke ​​Laging이 문제를 해결한 후의 일부 요약입니다.

나는 온라인에서 Hauke의 설명을 따랐습니다.

분명히 이것은 오래된 문제입니다. 그 설명은2000년 10월의 오래된 문서, 다른 옵션과 관련된 몇 가지 문제를 언급했지만 아무 것도 언급하지 않았습니다 user. 이제 커널 안정성 문제 중 일부가 수정되기를 바랍니다.

해당 문제는 버그 섹션에 간략하게 언급되어 있습니다.mount매뉴얼 페이지 그러나 특히 재정의 설정 및 옵션에 미치는 영향에 대한 세부 정보가 충분하지 않습니다.

그러나 매우 긴 매뉴얼 페이지에서는 다음 정보가 손실됩니다.

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**.

user옵션이 설명되어 있는 곳(제가 먼저 살펴보는 곳)에 대한 힌트가 있으면 확실히 유용할 것입니다.

답변1

문제는 귀하의 /etc/mtab파일이 파일이 아니라 /proc/mounts. user당신은 그 이유를 추측했을 것입니다: "누가 파일 시스템을 마운트했는지 기억할 때 시스템이 혼란스러워집니다." 이 정보는 기록되어 있지만 mtab귀하의 경우에는 기록할 수 없습니다. 커널은 사용자 마운트에 대해 신경 쓰지 않습니다(또는 심지어 알고 있습니다)(사용자 공간 기능입니다). 따라서 이 정보는 에 포함되지 않습니다 /proc/mounts.

이 작업을 수행:

cd /etc
cp mtab mtab.file
rm mtab
mv mtab.file mtab

umount사용자는 볼륨이 작동하기 전에 다시 마운트해야 합니다.

답변2

장치( ) 이름 대신 마운트 지점을 사용해 보십시오 /dev/sr0(귀하의 경우 마운트 지점은 입니다 /mem).

따라서 설치에만 사용하십시오.

mount /mem

제거 용도:

umount /mem

테스트를 거쳐 제 편에서 작동합니다. OS는 CentOS 5.8입니다.

관련 정보