/proc를 "마운트 해제"하는 방법은 무엇입니까?

/proc를 "마운트 해제"하는 방법은 무엇입니까?

나는 팔로우하고 있다이것NAND 플래시 메모리의 펌웨어 업데이트를 수행하는 방법에 대한 튜토리얼입니다. 새 루트 디렉터리가 있는 디렉터리만 변경하여 따라갔습니다. /bin /dev /sbin /usr모든 폴더를 tmpfs내가 있는 곳에 복사하고 있습니다 RAM.

다음 명령에서 문제가 발생하기 시작합니다.

umount /sys
umount /proc

제거 하면 killall5 sys문제가 없지만 proc을 제거하려고 하면 다음과 같은 메시지가 나타납니다.

umount: can't umount /proc: Device or resource busy

chroot나는 다음과 같은 것을 사용해 보았습니다 .이것비슷한 질문에 대한 링크입니다. 하지만 별로 도움이 되지 않는 것 같습니다.

다음 명령을 사용하여 새 루트로 chrooting을 시도했지만 더 많은 슬픔을 느꼈습니다.

chroot /tmp/newroot /bin/ash

실수:

umount: can't umount /proc: Invalid argument

누구든지 올바른 방향으로 나를 가리킬 수 있습니까? 종종 그렇듯이 사소한 것을 놓치고 있는 것 같은 느낌이 듭니다.

답변1

글쎄, 아마도 /proc. 프로세스는 다음과 같습니다.실제 파일 시스템도 아님, 그러나 메모리 내용과 현재 실행 중인 프로세스를 나타냅니다. 당신이 원하는 것은 아마도바인드 마운트chroot 내의 위치로:

# mkdir -m 0555 /tmp/newroot/proc
# mount --bind /proc /tmp/newroot/proc

답변2

lsof아직 설치되지 않은 경우 설치한 다음 단일 사용자 모드로 재부팅하고 를 입력합니다 lsof | grep /proc. 아직 사용 중인 모든 프로그램을 종료합니다 /proc. 그런 다음 제거할 수 있습니다.

답변3

지연된 마운트 해제를 사용하면 umount -l /proc모든 참조가 제거될 때까지 마운트가 유지되지만 루트를 마운트 해제할 수 있도록 연결이 끊어집니다(사용 후 pivot_root).

또는 모바일 마운트 지점을 사용할 수도 있습니다 mount --move.

관련 정보