작성 중인 프로그램의 설치 옵션을 실험하고 있습니다. 저는 Linux Mageia 2를 실행하고 있습니다.
다음 줄을 추가했습니다./etc/fstab
/dev/sr0 /mem auto user,noauto, 0 0
/dev/sr0
DVD 드라이브 장치에 대한 다른 모든 항목을 삭제했습니다 .
그러면 일반 사용자로서 성공적으로
$ 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입니다.