부팅 프로세스의 사용자 공간 부분을 디버깅해야 하며 sh -x
부팅 프로세스 중에 무슨 일이 일어나는지 관찰할 수 있도록 모든 스크립트가 기본적으로 실행되기를 원합니다.
busybox에서 제공하는 임베디드 시스템입니다 sh
. /bin/sh
은 에 대한 링크입니다 buysbox
.
sh
에서 까지 인터프리터를 시스템적으로 변경할 수 있습니까 sh -x
?
답변1
내 시스템에는 대시에 대한 링크가 있으므로 /bin/sh
해당 링크를 명령줄 인수를 실행하고 전달하는 프로그램으로 대체할 수 있습니다./bin/dash -x
/bin/sh
귀하의 파일이 바이너리 파일인 경우 . 그런 다음 에 복사하여 /bin/sh.org
위와 동일한 작업을 수행합니다. 단 /bin/sh.org -x
, dash
.
이러한 변경을 수행하려면 루트여야 합니다.
/bin/sh
링크인 경우 busybox
위의 작업을 계속 수행할 수 있습니다. 이동 busybox
하여 busybox.org
바이너리를 생성하여 busybox
호출되었는지 확인합니다 sh
(본질적으로 원래 비지박스가 다양한 ID를 얻기 위해 수행한 작업입니다). 그렇다면 -x
명령줄 인수의 나머지 부분 앞에 삽입하고 호출하세요. busybox
그렇지 않은 경우(즉, 로 호출되지 않는 경우 sh
) 명령줄 인수를 사용하여 busybox를 호출하세요.
그러나 이 시점에서는 busybox의 소스 코드를 다운로드하고 소스를 항상 호출, 컴파일 및 설치(원래 busybox 바이너리 백업)로 가정하도록 변경하는 것이 -x
더 쉬울 수 있습니다 sh
.