arm7에 임베디드 리눅스가 있습니다.
플래시 장치인 MTD 파티션 10(예: /dev/mtd10)에 rootfs가 마운트되어 있습니다. 볼륨은 UBIFS 디바이스 UBI0(/dev/ubi0)입니다.
나는 대략 다음 지침에 따라 Pivot_root(chroot와 유사) tmpfs를 설정했습니다.라이브 루트 파일 시스템의 크기를 조정하는 것은 어떻습니까?.
mtd10(UBI0)을 삭제/재포맷하고 싶습니다. 제가 겪고 있는 문제는 UBI0이 사용 중이라는 메시지가 표시되기 전까지는 UBI0을 분리/포맷할 수 없다는 것입니다. 그래서 다음 명령을 사용합니다.
fuser -vm /dev/mtd10
이를 통해 종료될 수 있는 프로세스 목록이 제공되었으므로 모든 작업을 수행한 다음 UBI0에 마운트된 모든 파티션을 마운트 해제(또는 umount -l)했습니다.
따라서 내 시스템은 더 이상 내가 실행 중인 셸 외에 UBI0에 대한 종속성을 갖지 않습니다. 나는 많은 방법 조합을 시도했지만 작동하는 것처럼 보이는 유일한 방법은 ( exit
명령을 사용하여) 로그 아웃하고 다시 로그인하는 것입니다 (저는 단지 내 사용자 이름을 입력합니다 root
).
이 시점 telinit u
에서 로그아웃/실행하면 UBI0이 사라지고 분리할 수 있습니다.
고쳐 쓰다:Kill은 rc_mxc.S
로그아웃과 비슷한 효과를 갖습니다(즉, 쉘이 종료되고 다시 로그인해야 합니다. 하지만 이로 인해 스크립트도 종료됩니다. :(
여기서 문제는 스크립트를 작성하는 방법을 모른다는 것입니다. 스크립트 내에서 실행하면 exit
스크립트가 종료됩니다.
답변1
find /proc/$$ -type l -ls
FS가 열린 상태에서 셸에서 실행합니다. 이 FS에 대한 각 링크에 대해 적절한 조치를 취하십시오.
fd
하위 디렉터리 에서 : run 은 파일 설명자 번호이고,exec n>replacement
가리키는 파일이거나 해당 설명자를 닫습니다.n
replacement
&-
- 또는 하위 디렉토리: run
exe
에서 tmpfs 루트 디렉토리에 있는 원하는 쉘의 경로를 대체하십시오 .map_files
exec /bin/sh
/bin/sh
- As
cwd
:cd
다른 디렉토리로. - As
root
: tmpfs 루트 디렉토리로 이동하고chroot .
.