Chroot가 Suse 9 구조 시스템에서 작동하지 않습니까?

Chroot가 Suse 9 구조 시스템에서 작동하지 않습니까?

Suse 9를 사용하여 서버를 복원해야 하는데 chroot작동하지 않는 매우 일반적인 오류가 발생합니다. 불만은 /bin/bash존재하지 않지만 존재합니다.

내가 사용한 명령은 다음과 같습니다.

mount /dev/dvg/lv00 /mnt
mount -t proc proc /mnt/proc
mount -t sysfs sys /mnt/sys
mount -o bind /dev /mnt/dev

cd /

chroot /mnt

하지만 해당 파일이나 디렉터리가 없기 때문에 실패합니다.

ldd/mnt/bin/bash필요한 각 라이브러리를 사용할 수 있음 을 나타냅니다 .

Strace는 전혀 도움이 되지 않습니다.

/mnt/bin/bash -i오류 없이 작동합니다.

도움이 필요하세요?

답변1

이러한 라이브러리를 사용할 수 있는지 확인해야 합니다 /mnt. 일반적으로 나열된 각 라이브러리의 ldd /mnt/bin/bash상동체가 있습니까 /mnt?

/mnt/bin/bash셸( ldd또는 /mnt/bin/bash -i) 에서 시도 하는 경우에도 /lib또는 에서 라이브러리를 가져올 수 있습니다 /lib64.

당신이 그것을 사용하면 chroot /mnt모든 것이 그것에서 나옵니다 /mnt/*.

일반적으로(Debian에서 제공) 확인해야 할 라이브러리가 4개 있습니다(첫 번째 줄은 포함되지 않음).

        linux-vdso.so.1 (0x00007ffcc8783000)
        libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f1a1000b000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1a10005000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1a0fe30000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f1a1017f000)

이 4개(출력 에 따라 ldd조정됨 )가 있는지 확인해야 합니다 /mnt. 대부분은 심볼릭 링크이며 이들이 가리키는 파일도 사용 가능해야 합니다 /mnt.

라이브러리가 없을 때 시스템 호출이 오류를 반환 strace하므로 이것이 도움이 되지 않는다는 점을 인정해야 합니다 .execve

관련 정보