드라이브와 이미지를 마운트할 수 있지만 마운트 해제할 수는 없습니다. "쉘 수준이 너무 높습니다"라는 메시지가 나타납니다. 나는 일반적으로 스크립트가 자신을 호출할 때 이런 일이 발생할 것으로 예상합니다.
umount로 실행되는 스크립트가 있나요? 왜 이런 일이 발생하는지 이해하지 못합니다.
# alias umount
-bash: alias: umount: not found
# mount -o ro sda1.img /tmp/mm
# umount /tmp/mm
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
/bin/bash: warning: shell level (1000) too high, resetting to 1
(repeat forever)
편집: 잘못된 복사/붙여넣기를 수정했습니다. umount
별칭 없음
결론적으로:
type umount
마운트가 실제 실행 파일 대신 래퍼 스크립트를 실행하고 있는지 모르기 때문에 실행해야 합니다.
답변1
나는 일반적으로 스크립트가 자신을 호출할 때 이런 일이 발생할 것으로 예상합니다.
네, 지금 그런 일이 일어나고 있습니다. bash 스크립트는 계속해서 자신을 재귀적으로 호출합니다(아마도 다른 프로그램과 함께, 즉 다음과 같은 루프가 될 수 있음).스크립트→기타 옵션 1→기타 프로그램 2→스크립트...).
프로그램 umount
자체는 쉘 스크립트를 호출하지 않습니다. 아마도 umount
결함이 있는 래퍼 스크립트로 대체되었을까요? 확인하다
type umount
file /path/displayed/by/the/previous/command
이 문제는 모든 파일 시스템 유형에서 발생합니까, 아니면 하나의 파일 시스템 유형에서만 발생합니까? 제거하려는 이미지는 어떤 파일 시스템을 사용합니까? 만약 그것이라면퓨즈마운트 해제를 포함한 모든 작업에 사용자 공간 코드가 포함되는 파일 시스템입니다. 필요한 경우 이 코드는 bash 스크립트를 실행할 수 있습니다. 어쩌면 이 코드 부분에 문제가 있을 수도 있습니다.