Linux 시스템을 부팅하는 데 문제가 있습니다.
시작 단계에서 /init
스크립트를 실행할 때 찾을 수 없다는 메시지가 나타납니다 mount
. 내 PATH
변수는 /sbin
및 으로 설정되어 있습니다 /bin
.
직접 전화 해봤는데 /bin/mount
실패하고 존재하지 않는다고 하더군요.
그런 다음 그것을 포함시켰고 find .
발견되어 /bin/mount
실제로 액세스할 수 있음을 보여주었습니다.
나는 무엇을 해야할지 모르겠습니다. 이것이 initramfs
기본적으로 쉘이라는 것을 읽었는데 busybox
문제가 있을 수 있습니까?
고쳐 쓰다
이것은 mount
찾을 수 없는 유일한 명령/파일인 것 같습니다. 부팅 프로세스 중에 시작 했습니다 sh
. 탭에서 설치를 완료하고 find
.
그러나 실행하려고 하면 아래와 같이 동일한 "찾을 수 없음" 오류 메시지가 나타납니다.
업데이트 2
mount
/init
내 모든 인스턴스 를 /bin/busybox mount
. 그것이 작동하는 방식입니다.
답변1
스크립트를 DOS(windows) 모드로 저장했는데, 이는 각 줄 끝에 불필요한 반환 문자가 있음을 의미합니다.
이 문제를 해결하는 가장 쉬운 방법은 아마도 파일을 로드하고 vim
변경 모드를 사용한 :set notx
다음 파일을 저장하는 것입니다(예: :wq
.
답변2
/bin/mount
깨진 기호 링크 일 수 있습니다. 모든 디렉토리 항목을 보여주기 때문에 찾을 수 있지만 find .
, 프로그램을 실행하려고 하면 무지개 끝에 파일이 없기 때문에 작동하지 않습니다. BusyBox 애플릿 이름은 일반적으로 BusyBox 실행 파일에 대한 링크입니다. mount -> busybox
또는 mount -> /bin/busybox
( busybox
에 있는 경우 /bin
)
또 다른 가능성은 mount
바이너리가 실제 시스템에서 온 것일 수도 있습니다. 이 바이너리는 동적 로더를 사용하는 동적 링크 라이브러리이며 initramfs에 없을 수도 있습니다. 바라보다64비트 시스템에서 32비트 바이너리를 실행할 때 "찾을 수 없음" 메시지 수신유사한 사례에 대한 설명.